From 1f90d0c7fae6c3c1967f3033bca5f2e53cb5b9bd Mon Sep 17 00:00:00 2001 From: Denis Pushkarev Date: Sat, 9 Nov 2019 19:00:26 +0700 Subject: [PATCH] move iOS check to a separate file --- packages/core-js/internals/is-ios.js | 3 +++ packages/core-js/internals/microtask.js | 4 ++-- packages/core-js/internals/task.js | 4 ++-- 3 files changed, 7 insertions(+), 4 deletions(-) create mode 100644 packages/core-js/internals/is-ios.js diff --git a/packages/core-js/internals/is-ios.js b/packages/core-js/internals/is-ios.js new file mode 100644 index 000000000000..d14fc2966399 --- /dev/null +++ b/packages/core-js/internals/is-ios.js @@ -0,0 +1,3 @@ +var userAgent = require('../internals/user-agent'); + +module.exports = /(iphone|ipod|ipad).*applewebkit/i.test(userAgent); diff --git a/packages/core-js/internals/microtask.js b/packages/core-js/internals/microtask.js index 1a3cd74fb33a..479ff84197cf 100644 --- a/packages/core-js/internals/microtask.js +++ b/packages/core-js/internals/microtask.js @@ -2,7 +2,7 @@ var global = require('../internals/global'); var getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f; var classof = require('../internals/classof-raw'); var macrotask = require('../internals/task').set; -var userAgent = require('../internals/user-agent'); +var IS_IOS = require('../internals/is-ios'); var MutationObserver = global.MutationObserver || global.WebKitMutationObserver; var process = global.process; @@ -39,7 +39,7 @@ if (!queueMicrotask) { process.nextTick(flush); }; // browsers with MutationObserver, except iOS - https://github.com/zloirock/core-js/issues/339 - } else if (MutationObserver && !/(iphone|ipod|ipad).*applewebkit/i.test(userAgent)) { + } else if (MutationObserver && !IS_IOS) { toggle = true; node = document.createTextNode(''); new MutationObserver(flush).observe(node, { characterData: true }); diff --git a/packages/core-js/internals/task.js b/packages/core-js/internals/task.js index bddba5be12e5..d1aa586f30b6 100644 --- a/packages/core-js/internals/task.js +++ b/packages/core-js/internals/task.js @@ -4,7 +4,7 @@ var classof = require('../internals/classof-raw'); var bind = require('../internals/bind-context'); var html = require('../internals/html'); var createElement = require('../internals/document-create-element'); -var userAgent = require('../internals/user-agent'); +var IS_IOS = require('../internals/is-ios'); var location = global.location; var set = global.setImmediate; @@ -69,7 +69,7 @@ if (!set || !clear) { }; // Browsers with MessageChannel, includes WebWorkers // except iOS - https://github.com/zloirock/core-js/issues/624 - } else if (MessageChannel && !/(iphone|ipod|ipad).*applewebkit/i.test(userAgent)) { + } else if (MessageChannel && !IS_IOS) { channel = new MessageChannel(); port = channel.port2; channel.port1.onmessage = listener;