Skip to content

Commit 3d47872

Browse files
gurgundayaduh95
authored andcommitted
timers: avoid generating holey internal arrays
PR-URL: #54771 Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com>
1 parent 375cbb5 commit 3d47872

File tree

1 file changed

+4
-3
lines changed

1 file changed

+4
-3
lines changed

lib/timers.js

+4-3
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222
'use strict';
2323

2424
const {
25+
ArrayPrototypePush,
2526
MathTrunc,
2627
ObjectDefineProperties,
2728
ObjectDefineProperty,
@@ -154,7 +155,7 @@ function setTimeout(callback, after, arg1, arg2, arg3) {
154155
args = [arg1, arg2, arg3];
155156
for (i = 5; i < arguments.length; i++) {
156157
// Extend array dynamically, makes .apply run much faster in v6.0.0
157-
args[i - 2] = arguments[i];
158+
ArrayPrototypePush(args, arguments[i]);
158159
}
159160
break;
160161
}
@@ -224,7 +225,7 @@ function setInterval(callback, repeat, arg1, arg2, arg3) {
224225
args = [arg1, arg2, arg3];
225226
for (i = 5; i < arguments.length; i++) {
226227
// Extend array dynamically, makes .apply run much faster in v6.0.0
227-
args[i - 2] = arguments[i];
228+
ArrayPrototypePush(args, arguments[i]);
228229
}
229230
break;
230231
}
@@ -296,7 +297,7 @@ function setImmediate(callback, arg1, arg2, arg3) {
296297
args = [arg1, arg2, arg3];
297298
for (i = 4; i < arguments.length; i++) {
298299
// Extend array dynamically, makes .apply run much faster in v6.0.0
299-
args[i - 1] = arguments[i];
300+
ArrayPrototypePush(args, arguments[i]);
300301
}
301302
break;
302303
}

0 commit comments

Comments
 (0)