From de6d2fc374680707dcf87b7df4b1a2d39a93a7ed Mon Sep 17 00:00:00 2001 From: leo60228 Date: Mon, 2 Aug 2021 18:24:12 -0400 Subject: [PATCH] fix microtasks on iOS Pebble --- packages/core-js/internals/engine-is-ios-pebble.js | 4 ++++ packages/core-js/internals/microtask.js | 3 ++- 2 files changed, 6 insertions(+), 1 deletion(-) create mode 100644 packages/core-js/internals/engine-is-ios-pebble.js diff --git a/packages/core-js/internals/engine-is-ios-pebble.js b/packages/core-js/internals/engine-is-ios-pebble.js new file mode 100644 index 000000000000..82a030ae950d --- /dev/null +++ b/packages/core-js/internals/engine-is-ios-pebble.js @@ -0,0 +1,4 @@ +var userAgent = require('../internals/engine-user-agent'); +var global = require('../internals/global'); + +module.exports = /iphone|ipod|ipad/i.test(userAgent) && global.Pebble !== undefined; diff --git a/packages/core-js/internals/microtask.js b/packages/core-js/internals/microtask.js index 6c3a51fdb474..c6e5d96dfa71 100644 --- a/packages/core-js/internals/microtask.js +++ b/packages/core-js/internals/microtask.js @@ -2,6 +2,7 @@ var global = require('../internals/global'); var getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f; var macrotask = require('../internals/task').set; var IS_IOS = require('../internals/engine-is-ios'); +var IS_IOS_PEBBLE = require('../internals/engine-is-ios-pebble'); var IS_WEBOS_WEBKIT = require('../internals/engine-is-webos-webkit'); var IS_NODE = require('../internals/engine-is-node'); @@ -44,7 +45,7 @@ if (!queueMicrotask) { node.data = toggle = !toggle; }; // environments with maybe non-completely correct, but existent Promise - } else if (Promise && Promise.resolve) { + } else if (!IS_IOS_PEBBLE && Promise && Promise.resolve) { // Promise.resolve without an argument throws an error in LG WebOS 2 promise = Promise.resolve(undefined); // workaround of WebKit ~ iOS Safari 10.1 bug