timers: setImmediate v8 optimization fix
authorpflannery <pflannery@users.noreply.github.com>
Tue, 10 Dec 2013 05:01:25 +0000 (05:01 +0000)
committerTrevor Norris <trev.norris@gmail.com>
Mon, 30 Dec 2013 22:58:38 +0000 (14:58 -0800)
Prevent v8 disabling optimization for scenario "bad value context for
arguments value".

Solves #6631

Signed-off-by: Trevor Norris <trev.norris@gmail.com>
lib/timers.js

index 00bbdc9..5612184 100644 (file)
@@ -424,14 +424,16 @@ Immediate.prototype._idlePrev = undefined;
 
 exports.setImmediate = function(callback) {
   var immediate = new Immediate();
-  var args;
+  var args, index;
 
   L.init(immediate);
 
   immediate._onImmediate = callback;
 
   if (arguments.length > 1) {
-    args = Array.prototype.slice.call(arguments, 1);
+    args = [];
+    for (index = 1; index < arguments.length; index++)
+      args.push(arguments[index]);
 
     immediate._onImmediate = function() {
       callback.apply(immediate, args);