From 6eae88eba693ff2a738ba6637d306d3d39c0ffae Mon Sep 17 00:00:00 2001 From: ptolomeus Date: Thu, 21 May 2020 00:14:53 +0200 Subject: [PATCH] #252 Make "setImmediate" browser compatible Fix exported `setImmediate` polyfill, which was broken especially in IE11 (and maybe also earlier), which has actually supports it natively. --- packages/fbjs/src/__forks__/setImmediate.js | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/packages/fbjs/src/__forks__/setImmediate.js b/packages/fbjs/src/__forks__/setImmediate.js index 7d13a997..67ffa94c 100644 --- a/packages/fbjs/src/__forks__/setImmediate.js +++ b/packages/fbjs/src/__forks__/setImmediate.js @@ -12,4 +12,11 @@ // setimmediate adds setImmediate to the global. We want to make sure we export // the actual function. require('setimmediate') -module.exports = global.setImmediate; + +var _global = typeof self === 'undefined' + ? typeof global === 'undefined' + ? this || globalThis // fallback, which is also used by setimmediate itself + : global // the global object in node + : self; // the global object in browsers/webworkers + +module.exports = _global.setImmediate.bind(_global); // bind to keep the context