diff --git a/packages/core-js/internals/engine-is-webos-webkit.js b/packages/core-js/internals/engine-is-webos-webkit.js new file mode 100644 index 000000000000..7c67ab0abd29 --- /dev/null +++ b/packages/core-js/internals/engine-is-webos-webkit.js @@ -0,0 +1,3 @@ +var userAgent = require('../internals/engine-user-agent'); + +module.exports = /web0s(?!.*chrome)/i.test(userAgent); diff --git a/packages/core-js/internals/microtask.js b/packages/core-js/internals/microtask.js index 2da2c24a46ed..b7c1e6ef4eda 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_WEBOS_WEBKIT = require('../internals/engine-is-webos-webkit'); var IS_NODE = require('../internals/engine-is-node'); var MutationObserver = global.MutationObserver || global.WebKitMutationObserver; @@ -34,7 +35,8 @@ if (!queueMicrotask) { }; // browsers with MutationObserver, except iOS - https://github.com/zloirock/core-js/issues/339 - if (!IS_IOS && !IS_NODE && MutationObserver && document) { + // also except WebOS Webkit https://github.com/zloirock/core-js/issues/898 + if (!IS_IOS && !IS_NODE && !IS_WEBOS_WEBKIT && MutationObserver && document) { toggle = true; node = document.createTextNode(''); new MutationObserver(flush).observe(node, { characterData: true });