mirror of
https://github.com/nodejs/node.git
synced 2024-12-01 16:10:02 +01:00
9ff7ed23cd
Commit c5b07d4
("lib: fix beforeExit not working with -e") runs the
to-be-evaluated code at a later time than before because it switches
from `process.nextTick()` to `setImmediate()`.
It affects `-e 'process.on("message", ...)'` because there is now a
larger time gap between startup and attaching the event listener,
increasing the chances of missing early messages. I'm reasonably
sure `process.nextTick()` was also susceptible to that, only less
pronounced.
Avoid the problem altogether by evaluating the code synchronously.
Harmonizes the logic with `Module.runMain()` from lib/module.js
which also calls `process._tickCallback()` afterwards.
PR-URL: https://github.com/nodejs/node/pull/11958
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Jeremiah Senkpiel <fishrock123@rocketmail.com>
Reviewed-By: Michael Dawson <michael_dawson@ca.ibm.com>
Reviewed-By: Daijiro Wachi <daijiro.wachi@gmail.com>
75 lines
2.2 KiB
Plaintext
75 lines
2.2 KiB
Plaintext
[stdin]
|
|
[stdin]:1
|
|
with(this){__filename}
|
|
^^^^
|
|
SyntaxError: Strict mode code may not include a with statement
|
|
at createScript (vm.js:*)
|
|
at Object.runInThisContext (vm.js:*)
|
|
at Object.<anonymous> ([stdin]-wrapper:*:*)
|
|
at Module._compile (module.js:*:*)
|
|
at evalScript (bootstrap_node.js:*:*)
|
|
at Socket.<anonymous> (bootstrap_node.js:*:*)
|
|
at emitNone (events.js:*:*)
|
|
at Socket.emit (events.js:*:*)
|
|
at endReadableNT (_stream_readable.js:*:*)
|
|
at _combinedTickCallback (internal/process/next_tick.js:*:*)
|
|
42
|
|
42
|
|
[stdin]:1
|
|
throw new Error("hello")
|
|
^
|
|
|
|
Error: hello
|
|
at [stdin]:1:7
|
|
at ContextifyScript.Script.runInThisContext (vm.js:*)
|
|
at Object.runInThisContext (vm.js:*)
|
|
at Object.<anonymous> ([stdin]-wrapper:*:*)
|
|
at Module._compile (module.js:*:*)
|
|
at evalScript (bootstrap_node.js:*:*)
|
|
at Socket.<anonymous> (bootstrap_node.js:*:*)
|
|
at emitNone (events.js:*:*)
|
|
at Socket.emit (events.js:*:*)
|
|
at endReadableNT (_stream_readable.js:*:*)
|
|
[stdin]:1
|
|
throw new Error("hello")
|
|
^
|
|
|
|
Error: hello
|
|
at [stdin]:1:*
|
|
at ContextifyScript.Script.runInThisContext (vm.js:*)
|
|
at Object.runInThisContext (vm.js:*)
|
|
at Object.<anonymous> ([stdin]-wrapper:*:*)
|
|
at Module._compile (module.js:*:*)
|
|
at evalScript (bootstrap_node.js:*:*)
|
|
at Socket.<anonymous> (bootstrap_node.js:*:*)
|
|
at emitNone (events.js:*:*)
|
|
at Socket.emit (events.js:*:*)
|
|
at endReadableNT (_stream_readable.js:*:*)
|
|
100
|
|
[stdin]:1
|
|
var x = 100; y = x;
|
|
^
|
|
|
|
ReferenceError: y is not defined
|
|
at [stdin]:1:16
|
|
at ContextifyScript.Script.runInThisContext (vm.js:*)
|
|
at Object.runInThisContext (vm.js:*)
|
|
at Object.<anonymous> ([stdin]-wrapper:*:*)
|
|
at Module._compile (module.js:*:*)
|
|
at evalScript (bootstrap_node.js:*:*)
|
|
at Socket.<anonymous> (bootstrap_node.js:*:*)
|
|
at emitNone (events.js:*:*)
|
|
at Socket.emit (events.js:*:*)
|
|
at endReadableNT (_stream_readable.js:*:*)
|
|
|
|
[stdin]:1
|
|
var ______________________________________________; throw 10
|
|
^
|
|
10
|
|
|
|
[stdin]:1
|
|
var ______________________________________________; throw 10
|
|
^
|
|
10
|
|
done
|