From 4e249666f1a5d71f908a81ab26650e85c3a42f01 Mon Sep 17 00:00:00 2001 From: Alexander Grimalovsky Date: Thu, 8 Dec 2016 16:08:07 +0700 Subject: [PATCH] - Updated global object choosing to avoid passing freezed objects into script - Updated postMessage test to avoid false positive inside Firefox Add-on SDK based extensions Should fix #58 --- setImmediate.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/setImmediate.js b/setImmediate.js index 3c1b06e..db4eb1f 100644 --- a/setImmediate.js +++ b/setImmediate.js @@ -84,7 +84,7 @@ function canUsePostMessage() { // The test against `importScripts` prevents this implementation from being installed inside a web worker, // where `global.postMessage` means something completely different and can't be used for this purpose. - if (global.postMessage && !global.importScripts) { + if (global.postMessage && !global.importScripts && !(global.port && global.port.emit)) { var postMessageIsAsynchronous = true; var oldOnMessage = global.onmessage; global.onmessage = function() { @@ -183,4 +183,4 @@ attachTo.setImmediate = setImmediate; attachTo.clearImmediate = clearImmediate; -}(typeof self === "undefined" ? typeof global === "undefined" ? this : global : self)); +}(typeof self === "undefined" || !Object.isExtensible(self) ? typeof global === "undefined" || !Object.isExtensible(global) ? this : global : self));