MCPcopy Create free account
hub / github.com/nodejs/node / loadFile

Function loadFile

deps/v8/tools/turbolizer/src/turbo-visualizer.ts:43–130  ·  view source on GitHub ↗
(txtRes: string)

Source from the content-addressed store, hash-verified

41 sourceTabs.activateTab(infoTab);
42
43 function loadFile(txtRes: string): void {
44 sourceTabs.clearTabsAndContent();
45 disassemblyTabs.clearTabsAndContent();
46 // If the JSON isn't properly terminated, assume compiler crashed and
47 // add best-guess empty termination
48 if (txtRes[txtRes.length - 2] === ",") {
49 txtRes += '{"name":"disassembly","type":"disassembly","data":""}]}';
50 }
51 try {
52 sourceViews.forEach(sv => sv.hide());
53 bytecodeSourceViews.forEach(bsv => bsv.hide());
54 multiview?.hide();
55 multiview = null;
56 document.getElementById("ranges").innerHTML = "";
57 document.getElementById("ranges").style.visibility = "hidden";
58 document.getElementById("show-hide-ranges").style.visibility = "hidden";
59 disassemblyView?.hide();
60 historyView?.hide();
61 sourceViews = new Array<CodeView>();
62 bytecodeSourceViews = new Array<BytecodeSourceView>();
63 sourceResolver = new SourceResolver();
64 selectionBroker = new SelectionBroker(sourceResolver);
65
66 const jsonObj = JSON.parse(txtRes);
67 const mainFunction = sourceResolver.getMainFunction(jsonObj);
68
69 sourceResolver.setInlinings(jsonObj.inlinings);
70 sourceResolver.setSourceLineToBytecodePosition(jsonObj.sourceLineToBytecodePosition);
71 sourceResolver.setSources(jsonObj.sources, mainFunction);
72 sourceResolver.setBytecodeSources(jsonObj.bytecodeSources);
73 sourceResolver.setFinalNodeOrigins(jsonObj.nodeOrigins);
74 sourceResolver.parsePhases(jsonObj.phases);
75
76 const [sourceTab, sourceContainer] = sourceTabs.addTabAndContent("Source");
77 sourceContainer.classList.add("viewpane", "scrollable");
78 sourceTabs.activateTab(sourceTab);
79
80 const sourceView = new CodeView(sourceContainer, selectionBroker, mainFunction,
81 sourceResolver, CodeMode.MainSource);
82 sourceView.show();
83 sourceViews.push(sourceView);
84
85 for (const source of sourceResolver.sources) {
86 const sourceView = new CodeView(sourceContainer, selectionBroker, source,
87 sourceResolver, CodeMode.InlinedSource);
88 sourceView.show();
89 sourceViews.push(sourceView);
90 }
91
92 if (sourceResolver.bytecodeSources.size > 0) {
93 const [_, bytecodeContainer] = sourceTabs.addTabAndContent("Bytecode");
94 bytecodeContainer.classList.add("viewpane", "scrollable");
95
96 const bytecodeSources = Array.from(sourceResolver.bytecodeSources.values()).reverse();
97 for (const source of bytecodeSources) {
98 const codeMode = source.sourceId == -1 ? CodeMode.MainSource : CodeMode.InlinedSource;
99 const bytecodeSourceView = new BytecodeSourceView(bytecodeContainer, selectionBroker,
100 source, sourceResolver, codeMode);

Callers 1

initializeUploadHandlersFunction · 0.85

Calls 15

clearTabsAndContentMethod · 0.80
getMainFunctionMethod · 0.80
setInliningsMethod · 0.80
setSourcesMethod · 0.80
setBytecodeSourcesMethod · 0.80
setFinalNodeOriginsMethod · 0.80
parsePhasesMethod · 0.80
addTabAndContentMethod · 0.80
activateTabMethod · 0.80
initializePerfProfileMethod · 0.80
showContentMethod · 0.80

Tested by

no test coverage detected