'use strict' const render = require('nanohtml') const ticksToTree = require('../../lib/ticks-to-tree.js') const { v8cats } = require('../../visualizer/cmp/graph.js')(render) function getType (frame, inlined) { const processedFrame = Object.assign({}, frame, { name: getProcessedName(frame, inlined) }) return getTypeProcessed(processedFrame) } function getTypeProcessed (frame, rmFrameType = true) { if (rmFrameType) delete frame.type return v8cats(frame).type } function getProcessedName (frame, inlined) { const { name } = frame if (inlined) { const parentName = 'evalParent :1:2' const key = name.split(':')[0] const options = { inlined: {} } options.inlined[key] = [{ caller: { key: parentName.split(':')[0] } }] const tree = ticksToTree([[{ name: parentName }, frame]], options) return tree.unmerged.children[0].children[0].name } else { const tree = ticksToTree([[frame]]) return tree.unmerged.children[0].name } } module.exports = { getType, getProcessedName }