From a54caa5e5c5583ec9cc354b4cd7dcf8a059b6f72 Mon Sep 17 00:00:00 2001 From: Denis Pushkarev Date: Sun, 7 May 2023 02:06:45 +0700 Subject: [PATCH] 3.30.2 --- CHANGELOG.md | 5 ++- README.md | 6 ++-- deno/corejs/README.md | 2 +- deno/corejs/index.js | 52 ++++++++++++++++----------- docs/compat/compat-data.js | 28 ++++++++++++++- package-lock.json | 18 +++++----- package.json | 2 +- packages/core-js-builder/package.json | 6 ++-- packages/core-js-bundle/package.json | 2 +- packages/core-js-compat/package.json | 2 +- packages/core-js-pure/package.json | 2 +- packages/core-js/internals/shared.js | 4 +-- packages/core-js/package.json | 2 +- 13 files changed, 85 insertions(+), 46 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index d044a541c74f..14f3d5deb4f3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,12 +1,15 @@ ## Changelog ##### Unreleased +- Nothing + +##### [3.30.2 - 2023.05.07](https://github.com/zloirock/core-js/releases/tag/v3.30.2) - Added a fix for a NodeJS 20.0.0 [bug](https://github.com/nodejs/node/issues/47612) with cloning `File` via `structuredClone` - Added protection from Terser unsafe `String` optimization, [#1242](https://github.com/zloirock/core-js/issues/1242) - Added a workaround for getting proper global object in Figma plugins, [#1231](https://github.com/zloirock/core-js/issues/1231) - Compat data improvements: - Added NodeJS 20.0 compat data mapping - - [`URL.canParse`](https://url.spec.whatwg.org/#dom-url-canparse) marked as supported (fixed) from [NodeJS 20.1.0](https://github.com/nodejs/node/pull/47513) and [Deno 1.33.2](https://github.com/denoland/deno/pull/18896) - Added Deno 1.33 compat data mapping + - [`URL.canParse`](https://url.spec.whatwg.org/#dom-url-canparse) marked as supported (fixed) from [NodeJS 20.1.0](https://github.com/nodejs/node/pull/47513) and [Deno 1.33.2](https://github.com/denoland/deno/pull/18896) ##### [3.30.1 - 2023.04.14](https://github.com/zloirock/core-js/releases/tag/v3.30.1) - Added a fix for a NodeJS 19.9.0 `URL.canParse` [bug](https://github.com/nodejs/node/issues/47505) diff --git a/README.md b/README.md index b55ab3939202..e441b21211c6 100644 --- a/README.md +++ b/README.md @@ -208,11 +208,11 @@ structuredClone(new Set([1, 2, 3])); // => new Set([1, 2, 3]) ### Installation:[⬆](#index) ```sh // global version -npm install --save core-js@3.30.1 +npm install --save core-js@3.30.2 // version without global namespace pollution -npm install --save core-js-pure@3.30.1 +npm install --save core-js-pure@3.30.2 // bundled global version -npm install --save core-js-bundle@3.30.1 +npm install --save core-js-bundle@3.30.2 ``` Or you can use `core-js` [from CDN](https://www.jsdelivr.com/package/npm/core-js-bundle). diff --git a/deno/corejs/README.md b/deno/corejs/README.md index e22713420487..cd7be3fd5ef5 100644 --- a/deno/corejs/README.md +++ b/deno/corejs/README.md @@ -29,7 +29,7 @@ *Example*: ```js -import 'https://deno.land/x/corejs@v3.30.1/index.js'; // <- at the top of your entry point +import 'https://deno.land/x/corejs@v3.30.2/index.js'; // <- at the top of your entry point Object.hasOwn({ foo: 42 }, 'foo'); // => true diff --git a/deno/corejs/index.js b/deno/corejs/index.js index 70bb65e2d6fc..38dcab9ff893 100644 --- a/deno/corejs/index.js +++ b/deno/corejs/index.js @@ -1,7 +1,7 @@ /** - * core-js 3.30.1 + * core-js 3.30.2 * © 2014-2023 Denis Pushkarev (zloirock.ru) - * license: https://github.com/zloirock/core-js/blob/v3.30.1/LICENSE + * license: https://github.com/zloirock/core-js/blob/v3.30.2/LICENSE * source: https://github.com/zloirock/core-js */ !function (undefined) { 'use strict'; /******/ (function(modules) { // webpackBootstrap @@ -422,7 +422,7 @@ module.exports = check(typeof self == 'object' && self) || check(typeof global == 'object' && global) || // eslint-disable-next-line no-new-func -- fallback - (function () { return this; })() || Function('return this')(); + (function () { return this; })() || this || Function('return this')(); /***/ }), @@ -791,13 +791,18 @@ module.exports = NATIVE_SYMBOL /* eslint-disable es/no-symbol -- required for testing */ var V8_VERSION = __webpack_require__(27); var fails = __webpack_require__(6); +var global = __webpack_require__(3); + +var $String = global.String; // eslint-disable-next-line es/no-object-getownpropertysymbols -- required for testing module.exports = !!Object.getOwnPropertySymbols && !fails(function () { var symbol = Symbol(); // Chrome 38 Symbol has incorrect toString conversion // `get-own-property-symbols` polyfill symbols converted to object are not Symbol instances - return !String(symbol) || !(Object(symbol) instanceof Symbol) || + // nb: Do not call `String` directly to avoid this being optimized out to `symbol+''` which will, + // of course, fail. + return !$String(symbol) || !(Object(symbol) instanceof Symbol) || // Chrome 38-40 symbols are not inherited from DOM collections prototypes to instances !Symbol.sham && V8_VERSION && V8_VERSION < 41; }); @@ -944,10 +949,10 @@ var store = __webpack_require__(36); (module.exports = function (key, value) { return store[key] || (store[key] = value !== undefined ? value : {}); })('versions', []).push({ - version: '3.30.1', + version: '3.30.2', mode: IS_PURE ? 'pure' : 'global', copyright: '© 2014-2023 Denis Pushkarev (zloirock.ru)', - license: 'https://github.com/zloirock/core-js/blob/v3.30.1/LICENSE', + license: 'https://github.com/zloirock/core-js/blob/v3.30.2/LICENSE', source: 'https://github.com/zloirock/core-js' }); @@ -13939,6 +13944,11 @@ var throwUnpolyfillable = function (type, action) { throw new DOMException((action || 'Cloning') + ' of ' + type + ' cannot be properly polyfilled in this engine', DATA_CLONE_ERROR); }; +var tryNativeRestrictedStructuredClone = function (value, type) { + if (!nativeRestrictedStructuredClone) throwUnpolyfillable(type); + return nativeRestrictedStructuredClone(value); +}; + var createDataTransfer = function () { var dataTransfer; try { @@ -14059,11 +14069,20 @@ var structuredCloneInternal = function (value, map) { structuredCloneInternal(value.p4, map) ); } catch (error) { - if (nativeRestrictedStructuredClone) { - cloned = nativeRestrictedStructuredClone(value); - } else throwUnpolyfillable(type); + cloned = tryNativeRestrictedStructuredClone(value, type); } break; + case 'File': + if (nativeRestrictedStructuredClone) try { + cloned = nativeRestrictedStructuredClone(value); + // NodeJS 20.0.0 bug, https://github.com/nodejs/node/issues/47612 + if (classof(cloned) !== type) cloned = undefined; + } catch (error) { /* empty */ } + if (!cloned) try { + cloned = new File([value], value.name, value); + } catch (error) { /* empty */ } + if (!cloned) throwUnpolyfillable(type); + break; case 'FileList': dataTransfer = createDataTransfer(); if (dataTransfer) { @@ -14071,9 +14090,7 @@ var structuredCloneInternal = function (value, map) { dataTransfer.items.add(structuredCloneInternal(value[i], map)); } cloned = dataTransfer.files; - } else if (nativeRestrictedStructuredClone) { - cloned = nativeRestrictedStructuredClone(value); - } else throwUnpolyfillable(type); + } else cloned = tryNativeRestrictedStructuredClone(value, type); break; case 'ImageData': // Safari 9 ImageData is a constructor, but typeof ImageData is 'object' @@ -14085,9 +14102,7 @@ var structuredCloneInternal = function (value, map) { { colorSpace: value.colorSpace } ); } catch (error) { - if (nativeRestrictedStructuredClone) { - cloned = nativeRestrictedStructuredClone(value); - } else throwUnpolyfillable(type); + cloned = tryNativeRestrictedStructuredClone(value, type); } break; default: if (nativeRestrictedStructuredClone) { @@ -14179,12 +14194,6 @@ var structuredCloneInternal = function (value, map) { } catch (error) { throwUncloneable(type); } break; - case 'File': - try { - cloned = new File([value], value.name, value); - } catch (error) { - throwUnpolyfillable(type); - } break; case 'CropTarget': case 'CryptoKey': case 'FileSystemDirectoryHandle': @@ -14330,6 +14339,7 @@ var USE_NATIVE_URL = __webpack_require__(443); var URL = getBuiltIn('URL'); // https://github.com/nodejs/node/issues/47505 +// https://github.com/denoland/deno/issues/18893 var THROWS_WITHOUT_ARGUMENTS = USE_NATIVE_URL && fails(function () { URL.canParse(); }); diff --git a/docs/compat/compat-data.js b/docs/compat/compat-data.js index c52339537439..c0732daecb95 100644 --- a/docs/compat/compat-data.js +++ b/docs/compat/compat-data.js @@ -1180,6 +1180,7 @@ "edge": "110", "electron": "23.0", "ios": "16.0", + "node": "20.0", "oculus": "26.0", "opera": "96", "opera-android": "74", @@ -1197,6 +1198,7 @@ "edge": "110", "electron": "23.0", "ios": "16.0", + "node": "20.0", "oculus": "26.0", "opera": "96", "opera-android": "74", @@ -1214,6 +1216,7 @@ "edge": "110", "electron": "23.0", "ios": "16.0", + "node": "20.0", "oculus": "26.0", "opera": "96", "opera-android": "74", @@ -1294,6 +1297,7 @@ "edge": "110", "electron": "23.0", "ios": "16.0", + "node": "20.0", "oculus": "26.0", "opera": "96", "opera-android": "74", @@ -3815,6 +3819,7 @@ "firefox-android": "78", "hermes": "0.4", "ios": "11.3", + "node": "20.0", "opera": "97", "react-native": "0.69", "safari": "11.1" @@ -5501,6 +5506,7 @@ "edge": "110", "electron": "23.0", "ios": "16.0", + "node": "20.0", "oculus": "26.0", "opera": "96", "opera-android": "74", @@ -5518,6 +5524,7 @@ "edge": "110", "electron": "23.0", "ios": "16.0", + "node": "20.0", "oculus": "26.0", "opera": "96", "opera-android": "74", @@ -5557,6 +5564,7 @@ "edge": "110", "electron": "23.0", "ios": "16.4", + "node": "20.0", "oculus": "26.0", "opera": "96", "opera-android": "74", @@ -5791,6 +5799,7 @@ "edge": "110", "electron": "23.0", "ios": "16.0", + "node": "20.0", "oculus": "26.0", "opera": "96", "opera-android": "74", @@ -5808,6 +5817,7 @@ "edge": "110", "electron": "23.0", "ios": "16.0", + "node": "20.0", "oculus": "26.0", "opera": "96", "opera-android": "74", @@ -5825,6 +5835,7 @@ "edge": "110", "electron": "23.0", "ios": "16.0", + "node": "20.0", "oculus": "26.0", "opera": "96", "opera-android": "74", @@ -5843,6 +5854,7 @@ "edge": "110", "electron": "23.0", "ios": "16.0", + "node": "20.0", "oculus": "26.0", "opera": "96", "opera-android": "74", @@ -5855,6 +5867,7 @@ "android": "114", "chrome": "114", "chrome-android": "114", + "deno": "1.33", "edge": "114", "electron": "25.0", "opera": "100" @@ -5863,6 +5876,7 @@ "android": "114", "chrome": "114", "chrome-android": "114", + "deno": "1.33", "edge": "114", "electron": "25.0", "opera": "100" @@ -5871,6 +5885,7 @@ "android": "114", "chrome": "114", "chrome-android": "114", + "deno": "1.33", "edge": "114", "electron": "25.0", "opera": "100" @@ -5945,6 +5960,7 @@ "android": "114", "chrome": "114", "chrome-android": "114", + "deno": "1.33", "edge": "114", "electron": "25.0", "opera": "100" @@ -5953,6 +5969,7 @@ "android": "114", "chrome": "114", "chrome-android": "114", + "deno": "1.33", "edge": "114", "electron": "25.0", "opera": "100" @@ -5961,6 +5978,7 @@ "android": "114", "chrome": "114", "chrome-android": "114", + "deno": "1.33", "edge": "114", "electron": "25.0", "opera": "100" @@ -6129,6 +6147,7 @@ "edge": "111", "electron": "24.0", "ios": "16.4", + "node": "20.0", "opera": "97", "safari": "16.4" }, @@ -6185,6 +6204,7 @@ "edge": "111", "electron": "24.0", "ios": "16.4", + "node": "20.0", "opera": "97", "safari": "16.4" }, @@ -6276,6 +6296,7 @@ "edge": "110", "electron": "23.0", "ios": "16.0", + "node": "20.0", "oculus": "26.0", "opera": "96", "opera-android": "74", @@ -6293,6 +6314,7 @@ "edge": "110", "electron": "23.0", "ios": "16.0", + "node": "20.0", "oculus": "26.0", "opera": "96", "opera-android": "74", @@ -6312,6 +6334,7 @@ "edge": "110", "electron": "23.0", "ios": "16.4", + "node": "20.0", "oculus": "26.0", "opera": "96", "opera-android": "74", @@ -6631,7 +6654,10 @@ "safari": "14.0", "samsung": "9.0" }, - "web.url.can-parse": {}, + "web.url.can-parse": { + "deno": "1.33.2", + "node": "20.1.0" + }, "web.url.to-json": { "android": "71", "bun": "0.1.1", diff --git a/package-lock.json b/package-lock.json index 4bd91dfa2512..6ec997a247e2 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,11 +1,11 @@ { "name": "core-js", - "version": "3.30.1", + "version": "3.30.2", "lockfileVersion": 3, "requires": true, "packages": { "": { - "version": "3.30.1", + "version": "3.30.2", "license": "MIT", "workspaces": [ "./packages/*" @@ -6257,7 +6257,7 @@ } }, "packages/core-js": { - "version": "3.30.1", + "version": "3.30.2", "hasInstallScript": true, "license": "MIT", "funding": { @@ -6266,11 +6266,11 @@ } }, "packages/core-js-builder": { - "version": "3.30.1", + "version": "3.30.2", "license": "MIT", "dependencies": { - "core-js": "3.30.1", - "core-js-compat": "3.30.1", + "core-js": "3.30.2", + "core-js-compat": "3.30.2", "mkdirp": ">=0.5.5 <1", "webpack": ">=4.46.0 <5" }, @@ -6283,7 +6283,7 @@ } }, "packages/core-js-bundle": { - "version": "3.30.1", + "version": "3.30.2", "hasInstallScript": true, "license": "MIT", "funding": { @@ -6292,7 +6292,7 @@ } }, "packages/core-js-compat": { - "version": "3.30.1", + "version": "3.30.2", "license": "MIT", "dependencies": { "browserslist": "^4.21.5" @@ -6303,7 +6303,7 @@ } }, "packages/core-js-pure": { - "version": "3.30.1", + "version": "3.30.2", "hasInstallScript": true, "license": "MIT", "funding": { diff --git a/package.json b/package.json index 621018df5841..eb7753982c6b 100644 --- a/package.json +++ b/package.json @@ -1,5 +1,5 @@ { - "version": "3.30.1", + "version": "3.30.2", "repository": { "type": "git", "url": "https://github.com/zloirock/core-js.git" diff --git a/packages/core-js-builder/package.json b/packages/core-js-builder/package.json index c706cbbcf503..3af5833ce181 100644 --- a/packages/core-js-builder/package.json +++ b/packages/core-js-builder/package.json @@ -1,6 +1,6 @@ { "name": "core-js-builder", - "version": "3.30.1", + "version": "3.30.2", "description": "core-js builder", "repository": { "type": "git", @@ -21,8 +21,8 @@ "main": "index.js", "types": "index.d.ts", "dependencies": { - "core-js": "3.30.1", - "core-js-compat": "3.30.1", + "core-js": "3.30.2", + "core-js-compat": "3.30.2", "mkdirp": ">=0.5.5 <1", "webpack": ">=4.46.0 <5" }, diff --git a/packages/core-js-bundle/package.json b/packages/core-js-bundle/package.json index 78e36aab86f4..91e16575a9cd 100644 --- a/packages/core-js-bundle/package.json +++ b/packages/core-js-bundle/package.json @@ -1,6 +1,6 @@ { "name": "core-js-bundle", - "version": "3.30.1", + "version": "3.30.2", "description": "Standard library", "keywords": [ "ES3", diff --git a/packages/core-js-compat/package.json b/packages/core-js-compat/package.json index 9636b7c0cb72..4a4ea247974a 100644 --- a/packages/core-js-compat/package.json +++ b/packages/core-js-compat/package.json @@ -1,6 +1,6 @@ { "name": "core-js-compat", - "version": "3.30.1", + "version": "3.30.2", "description": "core-js compat", "repository": { "type": "git", diff --git a/packages/core-js-pure/package.json b/packages/core-js-pure/package.json index 40c990d9a8b6..8d31adf35dd7 100644 --- a/packages/core-js-pure/package.json +++ b/packages/core-js-pure/package.json @@ -1,6 +1,6 @@ { "name": "core-js-pure", - "version": "3.30.1", + "version": "3.30.2", "description": "Standard library", "keywords": [ "ES3", diff --git a/packages/core-js/internals/shared.js b/packages/core-js/internals/shared.js index 3acc233491a2..c0e7984528b0 100644 --- a/packages/core-js/internals/shared.js +++ b/packages/core-js/internals/shared.js @@ -4,9 +4,9 @@ var store = require('../internals/shared-store'); (module.exports = function (key, value) { return store[key] || (store[key] = value !== undefined ? value : {}); })('versions', []).push({ - version: '3.30.1', + version: '3.30.2', mode: IS_PURE ? 'pure' : 'global', copyright: '© 2014-2023 Denis Pushkarev (zloirock.ru)', - license: 'https://github.com/zloirock/core-js/blob/v3.30.1/LICENSE', + license: 'https://github.com/zloirock/core-js/blob/v3.30.2/LICENSE', source: 'https://github.com/zloirock/core-js' }); diff --git a/packages/core-js/package.json b/packages/core-js/package.json index ac1641802abd..15a4b2cede43 100644 --- a/packages/core-js/package.json +++ b/packages/core-js/package.json @@ -1,6 +1,6 @@ { "name": "core-js", - "version": "3.30.1", + "version": "3.30.2", "description": "Standard library", "keywords": [ "ES3",