|
22 | 22 | 'use strict';
|
23 | 23 |
|
24 | 24 | const {
|
25 |
| - ArrayPrototypePush, |
26 | 25 | MathTrunc,
|
27 | 26 | ObjectDefineProperties,
|
28 | 27 | ObjectDefineProperty,
|
@@ -113,38 +112,13 @@ function unenroll(item) {
|
113 | 112 | * after `after` milliseconds.
|
114 | 113 | * @param {Function} callback
|
115 | 114 | * @param {number} [after]
|
116 |
| - * @param {any} [arg1] |
117 |
| - * @param {any} [arg2] |
118 |
| - * @param {any} [arg3] |
| 115 | + * @param {...any} [args] |
119 | 116 | * @returns {Timeout}
|
120 | 117 | */
|
121 |
| -function setTimeout(callback, after, arg1, arg2, arg3) { |
| 118 | +function setTimeout(callback, after, ...args) { |
122 | 119 | validateFunction(callback, 'callback');
|
123 |
| - |
124 |
| - let i, args; |
125 |
| - switch (arguments.length) { |
126 |
| - // fast cases |
127 |
| - case 1: |
128 |
| - case 2: |
129 |
| - break; |
130 |
| - case 3: |
131 |
| - args = [arg1]; |
132 |
| - break; |
133 |
| - case 4: |
134 |
| - args = [arg1, arg2]; |
135 |
| - break; |
136 |
| - default: |
137 |
| - args = [arg1, arg2, arg3]; |
138 |
| - for (i = 5; i < arguments.length; i++) { |
139 |
| - // Extend array dynamically, makes .apply run much faster in v6.0.0 |
140 |
| - ArrayPrototypePush(args, arguments[i]); |
141 |
| - } |
142 |
| - break; |
143 |
| - } |
144 |
| - |
145 |
| - const timeout = new Timeout(callback, after, args, false, true); |
| 120 | + const timeout = new Timeout(callback, after, args.length ? args : undefined, false, true); |
146 | 121 | insert(timeout, timeout._idleTimeout);
|
147 |
| - |
148 | 122 | return timeout;
|
149 | 123 | }
|
150 | 124 |
|
@@ -182,38 +156,13 @@ function clearTimeout(timer) {
|
182 | 156 | * every `repeat` milliseconds.
|
183 | 157 | * @param {Function} callback
|
184 | 158 | * @param {number} [repeat]
|
185 |
| - * @param {any} [arg1] |
186 |
| - * @param {any} [arg2] |
187 |
| - * @param {any} [arg3] |
| 159 | + * @param {...any} [args] |
188 | 160 | * @returns {Timeout}
|
189 | 161 | */
|
190 |
| -function setInterval(callback, repeat, arg1, arg2, arg3) { |
| 162 | +function setInterval(callback, repeat, ...args) { |
191 | 163 | validateFunction(callback, 'callback');
|
192 |
| - |
193 |
| - let i, args; |
194 |
| - switch (arguments.length) { |
195 |
| - // fast cases |
196 |
| - case 1: |
197 |
| - case 2: |
198 |
| - break; |
199 |
| - case 3: |
200 |
| - args = [arg1]; |
201 |
| - break; |
202 |
| - case 4: |
203 |
| - args = [arg1, arg2]; |
204 |
| - break; |
205 |
| - default: |
206 |
| - args = [arg1, arg2, arg3]; |
207 |
| - for (i = 5; i < arguments.length; i++) { |
208 |
| - // Extend array dynamically, makes .apply run much faster in v6.0.0 |
209 |
| - ArrayPrototypePush(args, arguments[i]); |
210 |
| - } |
211 |
| - break; |
212 |
| - } |
213 |
| - |
214 |
| - const timeout = new Timeout(callback, repeat, args, true, true); |
| 164 | + const timeout = new Timeout(callback, repeat, args.length ? args : undefined, true, true); |
215 | 165 | insert(timeout, timeout._idleTimeout);
|
216 |
| - |
217 | 166 | return timeout;
|
218 | 167 | }
|
219 | 168 |
|
@@ -255,35 +204,12 @@ Timeout.prototype[SymbolToPrimitive] = function() {
|
255 | 204 | * Schedules the immediate execution of `callback`
|
256 | 205 | * after I/O events' callbacks.
|
257 | 206 | * @param {Function} callback
|
258 |
| - * @param {any} [arg1] |
259 |
| - * @param {any} [arg2] |
260 |
| - * @param {any} [arg3] |
| 207 | + * @param {...any} [args] |
261 | 208 | * @returns {Immediate}
|
262 | 209 | */
|
263 |
| -function setImmediate(callback, arg1, arg2, arg3) { |
| 210 | +function setImmediate(callback, ...args) { |
264 | 211 | validateFunction(callback, 'callback');
|
265 |
| - |
266 |
| - let i, args; |
267 |
| - switch (arguments.length) { |
268 |
| - // fast cases |
269 |
| - case 1: |
270 |
| - break; |
271 |
| - case 2: |
272 |
| - args = [arg1]; |
273 |
| - break; |
274 |
| - case 3: |
275 |
| - args = [arg1, arg2]; |
276 |
| - break; |
277 |
| - default: |
278 |
| - args = [arg1, arg2, arg3]; |
279 |
| - for (i = 4; i < arguments.length; i++) { |
280 |
| - // Extend array dynamically, makes .apply run much faster in v6.0.0 |
281 |
| - ArrayPrototypePush(args, arguments[i]); |
282 |
| - } |
283 |
| - break; |
284 |
| - } |
285 |
| - |
286 |
| - return new Immediate(callback, args); |
| 212 | + return new Immediate(callback, args.length ? args : undefined); |
287 | 213 | }
|
288 | 214 |
|
289 | 215 | ObjectDefineProperty(setImmediate, customPromisify, {
|
|
0 commit comments