Corrupted stack trace · Issue #31218 · nodejs/node

  • Version: v13.5.0
  • Platform: windows
  • Subsystem: exceptions
(a => ~{get[a](){
  a();
}}[a])('X\x00Y');

produces this stack trace:

C:\1.js:6
  a();
  ^

TypeError: a is not a function
    at Object.get X

As you can see, function name is incorrect (it displays only X but not Y) and all previous functions are missing on the stack. It is not a console issue, because if you add

process.on('uncaughtException', console.log);

before this code, it works as expected:

TypeError: a is not a function
    at Object.get X Y [as X Y] (C:\1.js:6:3)
    at C:\1.js:7:3
    at Object.<anonymous> (C:\1.js:7:7)
    at Module._compile (internal/modules/cjs/loader.js:1139:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:1159:10)
    at Module.load (internal/modules/cjs/loader.js:988:32)
    at Function.Module._load (internal/modules/cjs/loader.js:896:14)
    at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:71:12)
    at internal/main/run_main_module.js:17:47 uncaughtException