Comparing version 4.5.0 to 4.5.1
'use strict' | ||
// Initialize console | ||
console.log // eslint-disable-line no-unused-expressions | ||
Error.stackTraceLimit = Infinity | ||
throw new Error('Load phase') | ||
Error.stackTraceLimit = Infinity; | ||
try { | ||
throw new Error(); | ||
} catch (err) { | ||
process.nextTick(() => { | ||
Error.stackTraceLimit = 2; | ||
try { | ||
throw new Error(); | ||
} catch (innerErr) { | ||
const filterNextTick = innerErr.stack.split('\n')[2].match(/ \(.+?:/g)[0].slice(2); | ||
const stacks = err.stack | ||
.match(/ \(.+?:/g) | ||
.map((e) => e.slice(2)) | ||
// Filter Everything that has nothing to do with Node core and next | ||
// ticks. | ||
.filter((e) => e[0] !== '/' && e[0] !== '\\' && e !== filterNextTick); | ||
let regExpStr = ''; | ||
let separator = ''; | ||
for (const frame of new Set(stacks)) { | ||
regExpStr += `${separator} ${frame.replace(/\\/g, '\\\\').replace(/\./g, '\\.')}\\d+:\\d+`; | ||
separator = '|'; | ||
} | ||
regExpStr += '$'; | ||
console.log(regExpStr); | ||
} | ||
}); | ||
} |
@@ -6,2 +6,3 @@ 'use strict' | ||
const debug = require('debug')('0x: ticks-to-tree') | ||
const assert = require('assert') | ||
@@ -32,19 +33,12 @@ const preloadDirRx = RegExp(join(__dirname, 'preload')) | ||
// Then create a regular expression that matches all those files. | ||
let childStderr = spawnSync(pathToNodeBinary, ['--experimental-modules', join(__dirname, 'loading-stacks')]).stderr.toString() | ||
if (childStderr.includes('--experimental-modules')) { | ||
const stackArgs = ['--experimental-modules', '--no-warnings', join(__dirname, 'loading-stacks')] | ||
let stackChild = spawnSync(pathToNodeBinary, stackArgs) | ||
if (stackChild.stderr.toString().includes('--experimental-modules')) { | ||
// Future proof to make sure it works even if the `experimental-modules` flag is removed. | ||
childStderr = spawnSync(pathToNodeBinary, [join(__dirname, 'loading-stacks')]) | ||
stackArgs.shift() | ||
stackChild = spawnSync(pathToNodeBinary, stackArgs) | ||
} | ||
const stacks = childStderr | ||
.match(/ \(.+?:/g) | ||
.map((e) => e.slice(2)) | ||
.filter((e) => e[0] !== '/' && e[0] !== '\\') | ||
let regExpStr = '(' | ||
let separator = '' | ||
for (const frame of new Set(stacks)) { | ||
regExpStr += `${separator} ${frame.replace(/\\/g, '\\\\').replace(/\./g, '\\.')}\\d+:\\d+` | ||
separator = '|' | ||
} | ||
regExpStr += ')$' | ||
const regExp = new RegExp(regExpStr) | ||
const stackRegExpStr = stackChild.stdout.toString() | ||
assert(stackRegExpStr) | ||
const regExp = new RegExp(stackRegExpStr) | ||
@@ -51,0 +45,0 @@ ticks.forEach((stack) => { |
{ | ||
"name": "0x", | ||
"version": "4.5.0", | ||
"version": "4.5.1", | ||
"description": "🔥 single-command flamegraph profiling 🔥", | ||
@@ -5,0 +5,0 @@ "main": "index.js", |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
229981
3693