diff --git a/doc/api/cli.md b/doc/api/cli.md index 57623d8a38ae03..57754c57614847 100644 --- a/doc/api/cli.md +++ b/doc/api/cli.md @@ -1052,6 +1052,7 @@ Node.js options that are allowed are: V8 options that are allowed are: - `--abort-on-uncaught-exception` +- `--interpreted-frames-native-stack` - `--max-old-space-size` - `--perf-basic-prof-only-functions` - `--perf-basic-prof` diff --git a/src/node_options.cc b/src/node_options.cc index 80d6f99770cf08..286218fb19f4f7 100644 --- a/src/node_options.cc +++ b/src/node_options.cc @@ -558,6 +558,9 @@ PerIsolateOptionsParser::PerIsolateOptionsParser( "for analysis", V8Option{}, kAllowedInEnvironment); + AddOption("--interpreted-frames-native-stack", + "help system profilers to translate JavaScript interpreted frames", + V8Option{}, kAllowedInEnvironment); AddOption("--max-old-space-size", "", V8Option{}, kAllowedInEnvironment); AddOption("--perf-basic-prof", "", V8Option{}, kAllowedInEnvironment); AddOption("--perf-basic-prof-only-functions", diff --git a/test/parallel/test-cli-node-options.js b/test/parallel/test-cli-node-options.js index 07b69c5b130ea5..7e42139470e964 100644 --- a/test/parallel/test-cli-node-options.js +++ b/test/parallel/test-cli-node-options.js @@ -65,6 +65,9 @@ expect('--stack-trace-limit=100', /(\s*at f \(\[eval\]:1:\d*\)\r?\n){100}/, '(function f() { f(); })();', true); +// Unsupported on arm. See https://crbug.com/v8/8713. +if (!['arm', 'arm64'].includes(process.arch)) + expect('--interpreted-frames-native-stack', 'B\n'); function expect(opt, want, command = 'console.log("B")', wantsError = false) { const argv = ['-e', command];