Files
node/test/parallel/test-debugger-extract-function-name.mjs
T
Filip Skokan 45fef372fc test: deflake debugger function name extraction
Evaluating expressions against the running target can trigger a V8
scope assertion. Keep the target paused and wait for the initial break
before checking the function formatting. Await debugger teardown.

Signed-off-by: Filip Skokan <panva.ip@gmail.com>
Assisted-by: Codex
PR-URL: https://github.com/nodejs/node/pull/66231
Reviewed-By: Aviv Keller <me@aviv.sh>
Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com>
2026-09-26 07:57:16 +00:00

36 lines
1.4 KiB
JavaScript

import { skipIfInspectorDisabled } from '../common/index.mjs';
skipIfInspectorDisabled();
import * as fixtures from '../common/fixtures.mjs';
import startCLI from '../common/debugger.js';
import assert from 'assert';
// Evaluating while the target is running can trigger a V8 scope assertion.
// Keep it paused for these formatting checks.
const cli = startCLI([fixtures.path('debugger', 'three-lines.js')]);
try {
await cli.waitForInitialBreak();
await cli.waitForPrompt();
await cli.command('exec a = function func() {}; a;');
assert.match(cli.output, /\[Function: func\]/);
await cli.command('exec a = function func () {}; a;');
assert.match(cli.output, /\[Function\]/);
await cli.command('exec a = function() {}; a;');
assert.match(cli.output, /\[Function: function\]/);
await cli.command('exec a = () => {}; a;');
assert.match(cli.output, /\[Function\]/);
await cli.command('exec a = function* func() {}; a;');
assert.match(cli.output, /\[GeneratorFunction: func\]/);
await cli.command('exec a = function *func() {}; a;');
assert.match(cli.output, /\[GeneratorFunction: \*func\]/);
await cli.command('exec a = function*func() {}; a;');
assert.match(cli.output, /\[GeneratorFunction: function\*func\]/);
await cli.command('exec a = function * func() {}; a;');
assert.match(cli.output, /\[GeneratorFunction\]/);
} finally {
await cli.quit();
}