Skip to content

Commit 2178227

Browse files
committed
src: use node:moduleName as builtin module filename
This change allows for easier recognition of builtin modules in stack traces. Refs: #11893 PR-URL: #35498 Reviewed-By: Joyee Cheung <[email protected]> Reviewed-By: Antoine du Hamel <[email protected]> Reviewed-By: Rich Trott <[email protected]> Reviewed-By: Zeyu Yang <[email protected]>
1 parent 19f1451 commit 2178227

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

47 files changed

+306
-304
lines changed

lib/assert.js

+4-2
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,8 @@ const {
3030
NumberIsNaN,
3131
RegExpPrototypeTest,
3232
String,
33+
StringPrototypeSlice,
34+
StringPrototypeStartsWith,
3335
} = primordials;
3436

3537
const { Buffer } = require('buffer');
@@ -289,8 +291,8 @@ function getErrMessage(message, fn) {
289291
identifier = `${filename}${line}${column}`;
290292

291293
// Skip Node.js modules!
292-
if (filename.endsWith('.js') &&
293-
NativeModule.exists(filename.slice(0, -3))) {
294+
if (StringPrototypeStartsWith(filename, 'node:') &&
295+
NativeModule.exists(StringPrototypeSlice(filename, 5))) {
294296
errorCache.set(identifier, undefined);
295297
return;
296298
}

lib/internal/util/inspect.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -183,7 +183,7 @@ const strEscapeSequencesReplacerSingle = /[\x00-\x1f\x5c\x7f-\x9f]/g;
183183
const keyStrRegExp = /^[a-zA-Z_][a-zA-Z_0-9]*$/;
184184
const numberRegExp = /^(0|[1-9][0-9]*)$/;
185185

186-
const coreModuleRegExp = /^ at (?:[^/\\(]+ \(|)((?<![/\\]).+)\.js:\d+:\d+\)?$/;
186+
const coreModuleRegExp = /^ at (?:[^/\\(]+ \(|)node:(.+):\d+:\d+\)?$/;
187187
const nodeModulesRegExp = /[/\\]node_modules[/\\](.+?)(?=[/\\])/g;
188188

189189
const classRegExp = /^(\s+[^(]*?)\s*{/;

src/node_native_module.cc

+1-1
Original file line numberDiff line numberDiff line change
@@ -260,7 +260,7 @@ MaybeLocal<Function> NativeModuleLoader::LookupAndCompile(
260260
return {};
261261
}
262262

263-
std::string filename_s = id + std::string(".js");
263+
std::string filename_s = std::string("node:") + id;
264264
Local<String> filename =
265265
OneByteString(isolate, filename_s.c_str(), filename_s.size());
266266
Local<Integer> line_offset = Integer::New(isolate, 0);

test/message/assert_throws_stack.out

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
assert.js:*
1+
node:assert:*
22
throw err;
33
^
44

@@ -20,8 +20,8 @@ AssertionError [ERR_ASSERTION]: Expected values to be strictly deep-equal:
2020
code: 'ERR_ASSERTION',
2121
actual: Error: foo
2222
at assert.throws.bar (*assert_throws_stack.js:*)
23-
at getActual (assert.js:*)
24-
at Function.throws (assert.js:*)
23+
at getActual (node:assert:*)
24+
at Function.throws (node:assert:*)
2525
at Object.<anonymous> (*assert_throws_stack.js:*:*)
2626
at *
2727
at *
+1-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
Error: test
22
at one (*fixtures*async-error.js:4:9)
33
at two (*fixtures*async-error.js:17:9)
4-
at processTicksAndRejections (internal/process/task_queues.js:*:*)
4+
at processTicksAndRejections (node:internal/process/task_queues:*:*)
55
at async three (*fixtures*async-error.js:20:3)
66
at async four (*fixtures*async-error.js:24:3)
77
at async main (*message*async_error_nexttick_main.js:7:5)

test/message/core_line_numbers.out

+9-9
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,14 @@
1-
punycode.js:42
1+
node:punycode:42
22
throw new RangeError(errors[type]);
33
^
44

55
RangeError: Invalid input
6-
at error (punycode.js:42:8)
7-
at Object.decode (punycode.js:*:*)
6+
at error (node:punycode:42:8)
7+
at Object.decode (node:punycode:*:*)
88
at Object.<anonymous> (*test*message*core_line_numbers.js:*:*)
9-
at Module._compile (internal/modules/cjs/loader.js:*:*)
10-
at Object.Module._extensions..js (internal/modules/cjs/loader.js:*:*)
11-
at Module.load (internal/modules/cjs/loader.js:*:*)
12-
at Function.Module._load (internal/modules/cjs/loader.js:*:*)
13-
at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:*:*)
14-
at internal/main/run_main_module.js:*:*
9+
at Module._compile (node:internal/modules/cjs/loader:*:*)
10+
at Object.Module._extensions..js (node:internal/modules/cjs/loader:*:*)
11+
at Module.load (node:internal/modules/cjs/loader:*:*)
12+
at Function.Module._load (node:internal/modules/cjs/loader:*:*)
13+
at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:*:*)
14+
at node:internal/main/run_main_module:*:*

test/message/error_exit.out

+7-7
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
Exiting with code=1
2-
assert.js:*
2+
node:assert:*
33
throw new AssertionError(obj);
44
^
55

@@ -8,12 +8,12 @@ AssertionError [ERR_ASSERTION]: Expected values to be strictly equal:
88
1 !== 2
99

1010
at Object.<anonymous> (*test*message*error_exit.js:*:*)
11-
at Module._compile (internal/modules/cjs/loader.js:*:*)
12-
at Object.Module._extensions..js (internal/modules/cjs/loader.js:*:*)
13-
at Module.load (internal/modules/cjs/loader.js:*:*)
14-
at Function.Module._load (internal/modules/cjs/loader.js:*:*)
15-
at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:*:*)
16-
at internal/main/run_main_module.js:*:* {
11+
at Module._compile (node:internal/modules/cjs/loader:*:*)
12+
at Object.Module._extensions..js (node:internal/modules/cjs/loader:*:*)
13+
at Module.load (node:internal/modules/cjs/loader:*:*)
14+
at Function.Module._load (node:internal/modules/cjs/loader:*:*)
15+
at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:*:*)
16+
at node:internal/main/run_main_module:*:* {
1717
generatedMessage: true,
1818
code: 'ERR_ASSERTION',
1919
actual: 1,

test/message/error_with_nul.out

12 Bytes
Binary file not shown.

test/message/esm_display_syntax_error.out

+2-2
Original file line numberDiff line numberDiff line change
@@ -3,5 +3,5 @@ await async () => 0;
33
^^^^^
44

55
SyntaxError: Unexpected reserved word
6-
at Loader.moduleStrategy (internal/modules/esm/translators.js:*:*)
7-
at async link (internal/modules/esm/module_job.js:*:*)
6+
at Loader.moduleStrategy (node:internal/modules/esm/translators:*:*)
7+
at async link (node:internal/modules/esm/module_job:*:*)

test/message/esm_display_syntax_error_import.out

+4-4
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ file:///*/test/message/esm_display_syntax_error_import.mjs:5
22
notfound
33
^^^^^^^^
44
SyntaxError: The requested module '../fixtures/es-module-loaders/module-named-exports.mjs' does not provide an export named 'notfound'
5-
at ModuleJob._instantiate (internal/modules/esm/module_job.js:*:*)
6-
at async ModuleJob.run (internal/modules/esm/module_job.js:*:*)
7-
at async Loader.import (internal/modules/esm/loader.js:*:*)
8-
at async Object.loadESM (internal/process/esm_loader.js:*:*)
5+
at ModuleJob._instantiate (node:internal/modules/esm/module_job:*:*)
6+
at async ModuleJob.run (node:internal/modules/esm/module_job:*:*)
7+
at async Loader.import (node:internal/modules/esm/loader:*:*)
8+
at async Object.loadESM (node:internal/process/esm_loader:*:*)

test/message/esm_display_syntax_error_import_module.out

+4-4
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ file:///*/test/fixtures/es-module-loaders/syntax-error-import.mjs:1
22
import { foo, notfound } from './module-named-exports.mjs';
33
^^^^^^^^
44
SyntaxError: The requested module './module-named-exports.mjs' does not provide an export named 'notfound'
5-
at ModuleJob._instantiate (internal/modules/esm/module_job.js:*:*)
6-
at async ModuleJob.run (internal/modules/esm/module_job.js:*:*)
7-
at async Loader.import (internal/modules/esm/loader.js:*:*)
8-
at async Object.loadESM (internal/process/esm_loader.js:*:*)
5+
at ModuleJob._instantiate (node:internal/modules/esm/module_job:*:*)
6+
at async ModuleJob.run (node:internal/modules/esm/module_job:*:*)
7+
at async Loader.import (node:internal/modules/esm/loader:*:*)
8+
at async Object.loadESM (node:internal/process/esm_loader:*:*)

test/message/esm_display_syntax_error_module.out

+1-1
Original file line numberDiff line numberDiff line change
@@ -3,4 +3,4 @@ await async () => 0;
33
^^^^^^^^^^^^^
44

55
SyntaxError: Malformed arrow function parameter list
6-
at Loader.moduleStrategy (internal/modules/esm/translators.js:*:*)
6+
at Loader.moduleStrategy (node:internal/modules/esm/translators:*:*)

test/message/esm_loader_not_found.out

+11-11
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,18 @@
11
(node:*) ExperimentalWarning: --experimental-loader is an experimental feature. This feature could change at any time
22
(Use `* --trace-warnings ...` to show where the warning was created)
3-
internal/process/esm_loader.js:*
3+
node:internal/process/esm_loader:*
44
internalBinding('errors').triggerUncaughtException(
55
^
66
Error [ERR_MODULE_NOT_FOUND]: Cannot find package 'i-dont-exist' imported from *
7-
at new NodeError (internal/errors.js:*:*)
8-
at packageResolve (internal/modules/esm/resolve.js:*:*)
9-
at moduleResolve (internal/modules/esm/resolve.js:*:*)
10-
at Loader.defaultResolve [as _resolve] (internal/modules/esm/resolve.js:*:*)
11-
at Loader.resolve (internal/modules/esm/loader.js:*:*)
12-
at Loader.getModuleJob (internal/modules/esm/loader.js:*:*)
13-
at Loader.import (internal/modules/esm/loader.js:*:*)
14-
at internal/process/esm_loader.js:*:*
15-
at initializeLoader (internal/process/esm_loader.js:*:*)
16-
at Object.loadESM (internal/process/esm_loader.js:*:*) {
7+
at new NodeError (node:internal/errors:*:*)
8+
at packageResolve (node:internal/modules/esm/resolve:*:*)
9+
at moduleResolve (node:internal/modules/esm/resolve:*:*)
10+
at Loader.defaultResolve [as _resolve] (node:internal/modules/esm/resolve:*:*)
11+
at Loader.resolve (node:internal/modules/esm/loader:*:*)
12+
at Loader.getModuleJob (node:internal/modules/esm/loader:*:*)
13+
at Loader.import (node:internal/modules/esm/loader:*:*)
14+
at node:internal/process/esm_loader:*:*
15+
at initializeLoader (node:internal/process/esm_loader:*:*)
16+
at Object.loadESM (node:internal/process/esm_loader:*:*) {
1717
code: 'ERR_MODULE_NOT_FOUND'
1818
}
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,16 @@
1-
internal/process/esm_loader.js:*
1+
node:internal/process/esm_loader:*
22
internalBinding('errors').triggerUncaughtException(
33
^
44

55
Error [ERR_MODULE_NOT_FOUND]: Cannot find module '*test*fixtures*node_modules*some_module*obj' imported from *test*fixtures*esm_loader_not_found_cjs_hint_bare.mjs
66
Did you mean to import some_module/obj.js?
7-
at new NodeError (internal/errors.js:*:*)
8-
at finalizeResolution (internal/modules/esm/resolve.js:*:*)
9-
at moduleResolve (internal/modules/esm/resolve.js:*:*)
10-
at Loader.defaultResolve [as _resolve] (internal/modules/esm/resolve.js:*:*)
11-
at Loader.resolve (internal/modules/esm/loader.js:*:*)
12-
at Loader.getModuleJob (internal/modules/esm/loader.js:*:*)
13-
at ModuleWrap.<anonymous> (internal/modules/esm/module_job.js:*:*)
14-
at link (internal/modules/esm/module_job.js:*:*) {
7+
at new NodeError (node:internal/errors:*:*)
8+
at finalizeResolution (node:internal/modules/esm/resolve:*:*)
9+
at moduleResolve (node:internal/modules/esm/resolve:*:*)
10+
at Loader.defaultResolve [as _resolve] (node:internal/modules/esm/resolve:*:*)
11+
at Loader.resolve (node:internal/modules/esm/loader:*:*)
12+
at Loader.getModuleJob (node:internal/modules/esm/loader:*:*)
13+
at ModuleWrap.<anonymous> (node:internal/modules/esm/module_job:*:*)
14+
at link (node:internal/modules/esm/module_job:*:*) {
1515
code: 'ERR_MODULE_NOT_FOUND'
1616
}
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,20 @@
11
(node:*) ExperimentalWarning: --experimental-loader is an experimental feature. This feature could change at any time
22
(Use `* --trace-warnings ...` to show where the warning was created)
3-
internal/process/esm_loader.js:*
3+
node:internal/process/esm_loader:*
44
internalBinding('errors').triggerUncaughtException(
55
^
66

77
Error [ERR_MODULE_NOT_FOUND]: Cannot find module '*test*common*fixtures' imported from *
88
Did you mean to import ./test/common/fixtures.js?
9-
at new NodeError (internal/errors.js:*:*)
10-
at finalizeResolution (internal/modules/esm/resolve.js:*:*)
11-
at moduleResolve (internal/modules/esm/resolve.js:*:*)
12-
at Loader.defaultResolve [as _resolve] (internal/modules/esm/resolve.js:*:*)
13-
at Loader.resolve (internal/modules/esm/loader.js:*:*)
14-
at Loader.getModuleJob (internal/modules/esm/loader.js:*:*)
15-
at Loader.import (internal/modules/esm/loader.js:*:*)
16-
at internal/process/esm_loader.js:*:*
17-
at initializeLoader (internal/process/esm_loader.js:*:*)
18-
at Object.loadESM (internal/process/esm_loader.js:*:*) {
9+
at new NodeError (node:internal/errors:*:*)
10+
at finalizeResolution (node:internal/modules/esm/resolve:*:*)
11+
at moduleResolve (node:internal/modules/esm/resolve:*:*)
12+
at Loader.defaultResolve [as _resolve] (node:internal/modules/esm/resolve:*:*)
13+
at Loader.resolve (node:internal/modules/esm/loader:*:*)
14+
at Loader.getModuleJob (node:internal/modules/esm/loader:*:*)
15+
at Loader.import (node:internal/modules/esm/loader:*:*)
16+
at node:internal/process/esm_loader:*:*
17+
at initializeLoader (node:internal/process/esm_loader:*:*)
18+
at Object.loadESM (node:internal/process/esm_loader:*:*) {
1919
code: 'ERR_MODULE_NOT_FOUND'
2020
}

test/message/esm_loader_syntax_error.out

+2-2
Original file line numberDiff line numberDiff line change
@@ -5,5 +5,5 @@ await async () => 0;
55
^^^^^^^^^^^^^
66

77
SyntaxError: Malformed arrow function parameter list
8-
at Loader.moduleStrategy (internal/modules/esm/translators.js:*:*)
9-
at async link (internal/modules/esm/module_job.js:*:*)
8+
at Loader.moduleStrategy (node:internal/modules/esm/translators:*:*)
9+
at async link (node:internal/modules/esm/module_job:*:*)

test/message/eval_messages.out

+21-21
Original file line numberDiff line numberDiff line change
@@ -3,13 +3,13 @@
33
with(this){__filename}
44
^^^^
55
SyntaxError: Strict mode code may not include a with statement
6-
at new Script (vm.js:*:*)
7-
at createScript (vm.js:*:*)
8-
at Object.runInThisContext (vm.js:*:*)
9-
at internal/process/execution.js:*:*
6+
at new Script (node:vm:*:*)
7+
at createScript (node:vm:*:*)
8+
at Object.runInThisContext (node:vm:*:*)
9+
at node:internal/process/execution:*:*
1010
at [eval]-wrapper:*:*
11-
at evalScript (internal/process/execution.js:*:*)
12-
at internal/main/eval_string.js:*:*
11+
at evalScript (node:internal/process/execution:*:*)
12+
at node:internal/main/eval_string:*:*
1313
42
1414
42
1515
[eval]:1
@@ -18,38 +18,38 @@ throw new Error("hello")
1818

1919
Error: hello
2020
at [eval]:1:7
21-
at Script.runInThisContext (vm.js:*:*)
22-
at Object.runInThisContext (vm.js:*:*)
23-
at internal/process/execution.js:*:*
21+
at Script.runInThisContext (node:vm:*:*)
22+
at Object.runInThisContext (node:vm:*:*)
23+
at node:internal/process/execution:*:*
2424
at [eval]-wrapper:*:*
25-
at evalScript (internal/process/execution.js:*:*)
26-
at internal/main/eval_string.js:*:*
25+
at evalScript (node:internal/process/execution:*:*)
26+
at node:internal/main/eval_string:*:*
2727

2828
[eval]:1
2929
throw new Error("hello")
3030
^
3131

3232
Error: hello
3333
at [eval]:1:7
34-
at Script.runInThisContext (vm.js:*:*)
35-
at Object.runInThisContext (vm.js:*:*)
36-
at internal/process/execution.js:*:*
34+
at Script.runInThisContext (node:vm:*:*)
35+
at Object.runInThisContext (node:vm:*:*)
36+
at node:internal/process/execution:*:*
3737
at [eval]-wrapper:*:*
38-
at evalScript (internal/process/execution.js:*:*)
39-
at internal/main/eval_string.js:*:*
38+
at evalScript (node:internal/process/execution:*:*)
39+
at node:internal/main/eval_string:*:*
4040
100
4141
[eval]:1
4242
var x = 100; y = x;
4343
^
4444

4545
ReferenceError: y is not defined
4646
at [eval]:1:16
47-
at Script.runInThisContext (vm.js:*:*)
48-
at Object.runInThisContext (vm.js:*:*)
49-
at internal/process/execution.js:*:*
47+
at Script.runInThisContext (node:vm:*:*)
48+
at Object.runInThisContext (node:vm:*:*)
49+
at node:internal/process/execution:*:*
5050
at [eval]-wrapper:*:*
51-
at evalScript (internal/process/execution.js:*:*)
52-
at internal/main/eval_string.js:*:*
51+
at evalScript (node:internal/process/execution:*:*)
52+
at node:internal/main/eval_string:*:*
5353

5454
[eval]:1
5555
var ______________________________________________; throw 10
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,20 @@
1-
events.js:*
1+
node:events:*
22
throw er; // Unhandled 'error' event
33
^
44

55
Error: foo:bar
66
at bar (*events_unhandled_error_common_trace.js:*:*)
77
at foo (*events_unhandled_error_common_trace.js:*:*)
88
at Object.<anonymous> (*events_unhandled_error_common_trace.js:*:*)
9-
at Module._compile (internal/modules/cjs/loader.js:*:*)
10-
at Object.Module._extensions..js (internal/modules/cjs/loader.js:*:*)
11-
at Module.load (internal/modules/cjs/loader.js:*:*)
12-
at Function.Module._load (internal/modules/cjs/loader.js:*:*)
13-
at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:*:*)
14-
at internal/main/run_main_module.js:*:*
9+
at Module._compile (node:internal/modules/cjs/loader:*:*)
10+
at Object.Module._extensions..js (node:internal/modules/cjs/loader:*:*)
11+
at Module.load (node:internal/modules/cjs/loader:*:*)
12+
at Function.Module._load (node:internal/modules/cjs/loader:*:*)
13+
at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:*:*)
14+
at node:internal/main/run_main_module:*:*
1515
Emitted 'error' event at:
1616
at quux (*events_unhandled_error_common_trace.js:*:*)
1717
at Object.<anonymous> (*events_unhandled_error_common_trace.js:*:*)
18-
at Module._compile (internal/modules/cjs/loader.js:*:*)
18+
at Module._compile (node:internal/modules/cjs/loader:*:*)
1919
[... lines matching original stack trace ...]
20-
at internal/main/run_main_module.js:*:*
20+
at node:internal/main/run_main_module:*:*
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,15 @@
1-
events.js:*
1+
node:events:*
22
throw er; // Unhandled 'error' event
33
^
44

55
Error
66
at Object.<anonymous> (*events_unhandled_error_nexttick.js:*:*)
7-
at Module._compile (internal/modules/cjs/loader.js:*:*)
8-
at Object.Module._extensions..js (internal/modules/cjs/loader.js:*:*)
9-
at Module.load (internal/modules/cjs/loader.js:*:*)
10-
at Function.Module._load (internal/modules/cjs/loader.js:*:*)
11-
at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:*:*)
12-
at internal/main/run_main_module.js:*:*
7+
at Module._compile (node:internal/modules/cjs/loader:*:*)
8+
at Object.Module._extensions..js (node:internal/modules/cjs/loader:*:*)
9+
at Module.load (node:internal/modules/cjs/loader:*:*)
10+
at Function.Module._load (node:internal/modules/cjs/loader:*:*)
11+
at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:*:*)
12+
at node:internal/main/run_main_module:*:*
1313
Emitted 'error' event at:
1414
at *events_unhandled_error_nexttick.js:*:*
15-
at processTicksAndRejections (internal/process/task_queues.js:*:*)
15+
at processTicksAndRejections (node:internal/process/task_queues:*:*)

0 commit comments

Comments
 (0)