From 4d4900fc65104604820c99faeaf439f958634451 Mon Sep 17 00:00:00 2001
From: Ben Noordhuis <info@bnoordhuis.nl>
Date: Mon, 31 Oct 2011 22:31:12 +0100
Subject: [PATCH] process: optimize process.nextTick()

33% performance boost on large nextTick queues.
---
 src/node.js | 12 +++++-------
 1 file changed, 5 insertions(+), 7 deletions(-)

diff --git a/src/node.js b/src/node.js
index 520ddae5e..a874bd55c 100644
--- a/src/node.js
+++ b/src/node.js
@@ -185,20 +185,18 @@
       var l = nextTickQueue.length;
       if (l === 0) return;
 
+      var q = nextTickQueue;
+      nextTickQueue = [];
+
       try {
-        for (var i = 0; i < l; i++) {
-          nextTickQueue[i]();
-        }
+        for (var i = 0; i < l; i++) q[i]();
       }
       catch (e) {
-        nextTickQueue.splice(0, i + 1);
-        if (i + 1 < l) {
+        if (nextTickQueue.length) {
           process._needTickCallback();
         }
         throw e; // process.nextTick error, or 'error' event on first tick
       }
-
-      nextTickQueue.splice(0, l);
     };
 
     process.nextTick = function(callback) {
-- 
2.34.1