From a50d455163aef7d5af6bea2e8433df60206fbe9d Mon Sep 17 00:00:00 2001 From: Ben Newman Date: Tue, 22 Apr 2014 11:51:43 -0400 Subject: [PATCH] Inline canUseNextTick and installNextTickImplementation. A savings of 71 bytes uglified. --- setImmediate.js | 28 ++++++++-------------------- 1 file changed, 8 insertions(+), 20 deletions(-) diff --git a/setImmediate.js b/setImmediate.js index 6a5c45e..c339fd3 100644 --- a/setImmediate.js +++ b/setImmediate.js @@ -41,12 +41,6 @@ delete tasksByHandle[handle]; } - function canUseNextTick() { - // Don't get fooled by e.g. browserify environments. - return typeof process === "object" && - Object.prototype.toString.call(process) === "[object process]"; - } - function canUseMessageChannel() { return !!global.MessageChannel; } @@ -74,18 +68,6 @@ return "document" in global && "onreadystatechange" in global.document.createElement("script"); } - function installNextTickImplementation(attachTo) { - attachTo.setImmediate = function () { - var handle = addFromSetImmediateArguments(arguments); - - process.nextTick(function () { - runIfPresent(handle); - }); - - return handle; - }; - } - function installMessageChannelImplementation(attachTo) { var channel = new global.MessageChannel(); channel.port1.onmessage = function (event) { @@ -175,9 +157,15 @@ var attachTo = getProto && getProto(global); attachTo = attachTo && attachTo.setTimeout ? attachTo : global; - if (canUseNextTick()) { + // Don't get fooled by e.g. browserify environments. + if (Object.prototype.toString.call(global.process) === "[object process]") { // For Node.js before 0.9 - installNextTickImplementation(attachTo); + attachTo.setImmediate = function() { + var handle = addFromSetImmediateArguments(arguments); + process.nextTick(runIfPresent.bind(undefined, handle)); + return handle; + }; + } else if (canUsePostMessage()) { // For non-IE10 modern browsers installPostMessageImplementation(attachTo);