Skip to content

Commit 839faae

Browse files
Fishrock123targos
authored andcommitted
timers: cleanup extraneous property on Immediates
This was originally changed in 6f75b66 but it appears unnecessary and benhcmark results show little difference without the extra property. Refs: #6436 PR-URL: #16355 Reviewed-By: Luigi Pinca <[email protected]> Reviewed-By: Jeremiah Senkpiel <[email protected]> Reviewed-By: Anna Henningsen <[email protected]> Reviewed-By: Anatoli Papirovski <[email protected]> Reviewed-By: James M Snell <[email protected]> Reviewed-By: Refael Ackermann <[email protected]>
1 parent 27e12e7 commit 839faae

File tree

2 files changed

+12
-15
lines changed

2 files changed

+12
-15
lines changed

lib/timers.js

+11-14
Original file line numberDiff line numberDiff line change
@@ -727,8 +727,6 @@ function processImmediate() {
727727
if (domain)
728728
domain.enter();
729729

730-
immediate._callback = immediate._onImmediate;
731-
732730
// Save next in case `clearImmediate(immediate)` is called from callback
733731
var next = immediate._idleNext;
734732

@@ -764,8 +762,8 @@ function tryOnImmediate(immediate, oldTail) {
764762
runCallback(immediate);
765763
threw = false;
766764
} finally {
767-
// clearImmediate checks _callback === null for kDestroy hooks.
768-
immediate._callback = null;
765+
// clearImmediate checks _onImmediate === null for kDestroy hooks.
766+
immediate._onImmediate = null;
769767
if (!threw)
770768
emitAfter(immediate[async_id_symbol]);
771769
if (async_hook_fields[kDestroy] > 0 && !immediate._destroyed) {
@@ -794,21 +792,21 @@ function tryOnImmediate(immediate, oldTail) {
794792
function runCallback(timer) {
795793
const argv = timer._argv;
796794
const argc = argv ? argv.length : 0;
797-
if (typeof timer._callback !== 'function')
798-
return promiseResolve(timer._callback, argv[0]);
795+
if (typeof timer._onImmediate !== 'function')
796+
return promiseResolve(timer._onImmediate, argv[0]);
799797
switch (argc) {
800798
// fast-path callbacks with 0-3 arguments
801799
case 0:
802-
return timer._callback();
800+
return timer._onImmediate();
803801
case 1:
804-
return timer._callback(argv[0]);
802+
return timer._onImmediate(argv[0]);
805803
case 2:
806-
return timer._callback(argv[0], argv[1]);
804+
return timer._onImmediate(argv[0], argv[1]);
807805
case 3:
808-
return timer._callback(argv[0], argv[1], argv[2]);
806+
return timer._onImmediate(argv[0], argv[1], argv[2]);
809807
// more than 3 arguments run slower with .apply
810808
default:
811-
return Function.prototype.apply.call(timer._callback, timer, argv);
809+
return Function.prototype.apply.call(timer._onImmediate, timer, argv);
812810
}
813811
}
814812

@@ -818,7 +816,7 @@ function Immediate() {
818816
// so have caller annotate the object (node v6.0.0, v8 5.0.71.35)
819817
this._idleNext = null;
820818
this._idlePrev = null;
821-
this._callback = null;
819+
this._onImmediate = null;
822820
this._argv = null;
823821
this._onImmediate = null;
824822
this._destroyed = false;
@@ -869,7 +867,6 @@ exports.setImmediate = setImmediate;
869867
function createImmediate(args, callback) {
870868
// declaring it `const immediate` causes v6.0.0 to deoptimize this function
871869
var immediate = new Immediate();
872-
immediate._callback = callback;
873870
immediate._argv = args;
874871
immediate._onImmediate = callback;
875872

@@ -888,7 +885,7 @@ exports.clearImmediate = function(immediate) {
888885
if (!immediate) return;
889886

890887
if (async_hook_fields[kDestroy] > 0 &&
891-
immediate._callback !== null &&
888+
immediate._onImmediate !== null &&
892889
!immediate._destroyed) {
893890
emitDestroy(immediate[async_id_symbol]);
894891
immediate._destroyed = true;

test/message/unhandled_promise_trace_warnings.out

+1-1
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222
at rejectionHandled (internal/process/promises.js:*)
2323
at *
2424
at Promise.catch *
25-
at Immediate.setImmediate [as _onImmediate] (*test*message*unhandled_promise_trace_warnings.js:*)
25+
at Immediate.setImmediate (*test*message*unhandled_promise_trace_warnings.js:*)
2626
at *
2727
at *
2828
at *

0 commit comments

Comments
 (0)