|
22 | 22 | 'use strict';
|
23 | 23 |
|
24 | 24 | const {
|
25 |
| - ArrayPrototypePush, |
26 | 25 | MathTrunc,
|
27 | 26 | ObjectDefineProperties,
|
28 | 27 | ObjectDefineProperty,
|
@@ -131,38 +130,13 @@ function enroll(item, msecs) {
|
131 | 130 | * after `after` milliseconds.
|
132 | 131 | * @param {Function} callback
|
133 | 132 | * @param {number} [after]
|
134 |
| - * @param {any} [arg1] |
135 |
| - * @param {any} [arg2] |
136 |
| - * @param {any} [arg3] |
| 133 | + * @param {...any} [args] |
137 | 134 | * @returns {Timeout}
|
138 | 135 | */
|
139 |
| -function setTimeout(callback, after, arg1, arg2, arg3) { |
| 136 | +function setTimeout(callback, after, ...args) { |
140 | 137 | validateFunction(callback, 'callback');
|
141 |
| - |
142 |
| - let i, args; |
143 |
| - switch (arguments.length) { |
144 |
| - // fast cases |
145 |
| - case 1: |
146 |
| - case 2: |
147 |
| - break; |
148 |
| - case 3: |
149 |
| - args = [arg1]; |
150 |
| - break; |
151 |
| - case 4: |
152 |
| - args = [arg1, arg2]; |
153 |
| - break; |
154 |
| - default: |
155 |
| - args = [arg1, arg2, arg3]; |
156 |
| - for (i = 5; i < arguments.length; i++) { |
157 |
| - // Extend array dynamically, makes .apply run much faster in v6.0.0 |
158 |
| - ArrayPrototypePush(args, arguments[i]); |
159 |
| - } |
160 |
| - break; |
161 |
| - } |
162 |
| - |
163 |
| - const timeout = new Timeout(callback, after, args, false, true); |
| 138 | + const timeout = new Timeout(callback, after, args.length ? args : undefined, false, true); |
164 | 139 | insert(timeout, timeout._idleTimeout);
|
165 |
| - |
166 | 140 | return timeout;
|
167 | 141 | }
|
168 | 142 |
|
@@ -200,38 +174,13 @@ function clearTimeout(timer) {
|
200 | 174 | * every `repeat` milliseconds.
|
201 | 175 | * @param {Function} callback
|
202 | 176 | * @param {number} [repeat]
|
203 |
| - * @param {any} [arg1] |
204 |
| - * @param {any} [arg2] |
205 |
| - * @param {any} [arg3] |
| 177 | + * @param {...any} [args] |
206 | 178 | * @returns {Timeout}
|
207 | 179 | */
|
208 |
| -function setInterval(callback, repeat, arg1, arg2, arg3) { |
| 180 | +function setInterval(callback, repeat, ...args) { |
209 | 181 | validateFunction(callback, 'callback');
|
210 |
| - |
211 |
| - let i, args; |
212 |
| - switch (arguments.length) { |
213 |
| - // fast cases |
214 |
| - case 1: |
215 |
| - case 2: |
216 |
| - break; |
217 |
| - case 3: |
218 |
| - args = [arg1]; |
219 |
| - break; |
220 |
| - case 4: |
221 |
| - args = [arg1, arg2]; |
222 |
| - break; |
223 |
| - default: |
224 |
| - args = [arg1, arg2, arg3]; |
225 |
| - for (i = 5; i < arguments.length; i++) { |
226 |
| - // Extend array dynamically, makes .apply run much faster in v6.0.0 |
227 |
| - ArrayPrototypePush(args, arguments[i]); |
228 |
| - } |
229 |
| - break; |
230 |
| - } |
231 |
| - |
232 |
| - const timeout = new Timeout(callback, repeat, args, true, true); |
| 182 | + const timeout = new Timeout(callback, repeat, args.length ? args : undefined, true, true); |
233 | 183 | insert(timeout, timeout._idleTimeout);
|
234 |
| - |
235 | 184 | return timeout;
|
236 | 185 | }
|
237 | 186 |
|
@@ -273,35 +222,12 @@ Timeout.prototype[SymbolToPrimitive] = function() {
|
273 | 222 | * Schedules the immediate execution of `callback`
|
274 | 223 | * after I/O events' callbacks.
|
275 | 224 | * @param {Function} callback
|
276 |
| - * @param {any} [arg1] |
277 |
| - * @param {any} [arg2] |
278 |
| - * @param {any} [arg3] |
| 225 | + * @param {...any} [args] |
279 | 226 | * @returns {Immediate}
|
280 | 227 | */
|
281 |
| -function setImmediate(callback, arg1, arg2, arg3) { |
| 228 | +function setImmediate(callback, ...args) { |
282 | 229 | validateFunction(callback, 'callback');
|
283 |
| - |
284 |
| - let i, args; |
285 |
| - switch (arguments.length) { |
286 |
| - // fast cases |
287 |
| - case 1: |
288 |
| - break; |
289 |
| - case 2: |
290 |
| - args = [arg1]; |
291 |
| - break; |
292 |
| - case 3: |
293 |
| - args = [arg1, arg2]; |
294 |
| - break; |
295 |
| - default: |
296 |
| - args = [arg1, arg2, arg3]; |
297 |
| - for (i = 4; i < arguments.length; i++) { |
298 |
| - // Extend array dynamically, makes .apply run much faster in v6.0.0 |
299 |
| - ArrayPrototypePush(args, arguments[i]); |
300 |
| - } |
301 |
| - break; |
302 |
| - } |
303 |
| - |
304 |
| - return new Immediate(callback, args); |
| 230 | + return new Immediate(callback, args.length ? args : undefined); |
305 | 231 | }
|
306 | 232 |
|
307 | 233 | ObjectDefineProperty(setImmediate, customPromisify, {
|
|
0 commit comments