• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1'use strict';
2
3const {
4  JSONStringify,
5} = primordials;
6
7const vm = require('vm');
8
9const scriptFiles = [
10  'internal/v8_prof_polyfill',
11  'internal/deps/v8/tools/splaytree',
12  'internal/deps/v8/tools/codemap',
13  'internal/deps/v8/tools/csvparser',
14  'internal/deps/v8/tools/consarray',
15  'internal/deps/v8/tools/profile',
16  'internal/deps/v8/tools/profile_view',
17  'internal/deps/v8/tools/logreader',
18  'internal/deps/v8/tools/arguments',
19  'internal/deps/v8/tools/tickprocessor',
20  'internal/deps/v8/tools/SourceMap',
21  'internal/deps/v8/tools/tickprocessor-driver'
22];
23let script = '';
24
25scriptFiles.forEach((s) => {
26  script += internalBinding('natives')[s] + '\n';
27});
28
29const tickArguments = [];
30if (process.platform === 'darwin') {
31  tickArguments.push('--mac');
32} else if (process.platform === 'win32') {
33  tickArguments.push('--windows');
34}
35tickArguments.push.apply(tickArguments, process.argv.slice(1));
36script = `(function(module, require) {
37  arguments = ${JSONStringify(tickArguments)};
38  function write (s) { process.stdout.write(s) }
39  function printErr(err) { console.error(err); }
40  ${script}
41})`;
42vm.runInThisContext(script)(module, require);
43