From 42d3bb65cc57016aa4489beed35f2bbce70c527e Mon Sep 17 00:00:00 2001 From: Denis Pushkarev Date: Tue, 3 Oct 2023 02:13:45 +0700 Subject: [PATCH 001/428] drop `esnext.aggregate-error` (moved to stable es) --- LICENSE | 50 ++++++++++++------- deno/corejs/LICENSE | 50 ++++++++++++------- packages/core-js-compat/src/data.mjs | 3 -- packages/core-js/full/aggregate-error.js | 3 -- packages/core-js/full/promise/any.js | 1 - packages/core-js/full/promise/index.js | 1 - .../core-js/modules/esnext.aggregate-error.js | 3 -- packages/core-js/proposals/promise-any.js | 2 +- packages/core-js/stable/aggregate-error.js | 3 -- tests/compat-data/tests-coverage.mjs | 1 - tests/entries/content.mjs | 16 +++--- 11 files changed, 71 insertions(+), 62 deletions(-) delete mode 100644 packages/core-js/modules/esnext.aggregate-error.js diff --git a/LICENSE b/LICENSE index 5cc1d065c701..d5028486f13e 100644 --- a/LICENSE +++ b/LICENSE @@ -1,19 +1,31 @@ -Copyright (c) 2014-2025 Denis Pushkarev, 2025 CoreJS Company - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. +## core-js experimental version license + +### Copyright (c) 2014-2025 Denis Pushkarev, 2025 CoreJS Company + +### Non-Commercial Use Only +* The Software may be used strictly for non-commercial purposes. Any commercial use — including but not limited to selling, sublicensing, using in commercial services, or including in commercial products — is expressly prohibited. + +### Experimental Use Only +* The Software is provided solely for experimental, research, and evaluation purposes. The user acknowledges that the Software is in a pre-release or developmental stage and may be unstable, contain bugs, or be incomplete. + +### Term of the License +* This license is valid only until an official stable version 4 of core-js is released. +* Within 7 calendar days of such release, the user must either: + - Transition to the stable version under its applicable license, or + - Cease all use of this experimental version. +* Continued use beyond this period is strictly prohibited. + +### Disclaimer of Warranty +* The Software is provided "as is", without warranty of any kind, express or implied, including but not limited to warranties of merchantability, fitness for a particular purpose, or non-infringement. + +### Limited Redistribution +* Redistribution of the Software as part of a non-commercial website or web-based project is permitted, provided that: + - The Software is not modified, and + - It is used solely in accordance with the terms of this license. +* Any other form of redistribution, sublicense, or share is prohibited without prior written permission from the copyright holder. + +### Prohibition on Use for AI Training +* The Software, including its source code and any derived works, may not be used, in whole or in part, for the training or fine-tuning of machine learning models or artificial intelligence systems, whether commercial or non-commercial, without explicit prior written permission from the copyright holder. + +### Governing Law +* This license shall be governed by and construed in accordance with the laws of the State of Delaware, United States of America, without regard to its conflict of law principles. diff --git a/deno/corejs/LICENSE b/deno/corejs/LICENSE index 5cc1d065c701..d5028486f13e 100644 --- a/deno/corejs/LICENSE +++ b/deno/corejs/LICENSE @@ -1,19 +1,31 @@ -Copyright (c) 2014-2025 Denis Pushkarev, 2025 CoreJS Company - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. +## core-js experimental version license + +### Copyright (c) 2014-2025 Denis Pushkarev, 2025 CoreJS Company + +### Non-Commercial Use Only +* The Software may be used strictly for non-commercial purposes. Any commercial use — including but not limited to selling, sublicensing, using in commercial services, or including in commercial products — is expressly prohibited. + +### Experimental Use Only +* The Software is provided solely for experimental, research, and evaluation purposes. The user acknowledges that the Software is in a pre-release or developmental stage and may be unstable, contain bugs, or be incomplete. + +### Term of the License +* This license is valid only until an official stable version 4 of core-js is released. +* Within 7 calendar days of such release, the user must either: + - Transition to the stable version under its applicable license, or + - Cease all use of this experimental version. +* Continued use beyond this period is strictly prohibited. + +### Disclaimer of Warranty +* The Software is provided "as is", without warranty of any kind, express or implied, including but not limited to warranties of merchantability, fitness for a particular purpose, or non-infringement. + +### Limited Redistribution +* Redistribution of the Software as part of a non-commercial website or web-based project is permitted, provided that: + - The Software is not modified, and + - It is used solely in accordance with the terms of this license. +* Any other form of redistribution, sublicense, or share is prohibited without prior written permission from the copyright holder. + +### Prohibition on Use for AI Training +* The Software, including its source code and any derived works, may not be used, in whole or in part, for the training or fine-tuning of machine learning models or artificial intelligence systems, whether commercial or non-commercial, without explicit prior written permission from the copyright holder. + +### Governing Law +* This license shall be governed by and construed in accordance with the laws of the State of Delaware, United States of America, without regard to its conflict of law principles. diff --git a/packages/core-js-compat/src/data.mjs b/packages/core-js-compat/src/data.mjs index 5f06d473e32e..2fa2df2255fd 100644 --- a/packages/core-js-compat/src/data.mjs +++ b/packages/core-js-compat/src/data.mjs @@ -2368,8 +2368,6 @@ export const data = { safari: '10.0', }, // TODO: Remove from `core-js@4` - 'esnext.aggregate-error': null, - // TODO: Remove from `core-js@4` 'esnext.suppressed-error.constructor': null, // TODO: Remove from `core-js@4` 'esnext.array.from-async': null, @@ -3138,7 +3136,6 @@ export const renamed = new Map([ ['es.set', 'es.set.constructor'], ['es.weak-map', 'es.weak-map.constructor'], ['es.weak-set', 'es.weak-set.constructor'], - ['esnext.aggregate-error', 'es.aggregate-error'], ['esnext.array.at', 'es.array.at'], ['esnext.array.find-last', 'es.array.find-last'], ['esnext.array.find-last-index', 'es.array.find-last-index'], diff --git a/packages/core-js/full/aggregate-error.js b/packages/core-js/full/aggregate-error.js index 53ba5cf5a232..9808782e3685 100644 --- a/packages/core-js/full/aggregate-error.js +++ b/packages/core-js/full/aggregate-error.js @@ -1,7 +1,4 @@ 'use strict'; -// TODO: remove from `core-js@4` -require('../modules/esnext.aggregate-error'); - var parent = require('../actual/aggregate-error'); module.exports = parent; diff --git a/packages/core-js/full/promise/any.js b/packages/core-js/full/promise/any.js index ab2a7da15865..21b5b0791e12 100644 --- a/packages/core-js/full/promise/any.js +++ b/packages/core-js/full/promise/any.js @@ -2,7 +2,6 @@ var parent = require('../../actual/promise/any'); // TODO: Remove from `core-js@4` -require('../../modules/esnext.aggregate-error'); require('../../modules/esnext.promise.any'); module.exports = parent; diff --git a/packages/core-js/full/promise/index.js b/packages/core-js/full/promise/index.js index f6789691962e..ece4f5e02131 100644 --- a/packages/core-js/full/promise/index.js +++ b/packages/core-js/full/promise/index.js @@ -1,7 +1,6 @@ 'use strict'; var parent = require('../../actual/promise'); // TODO: Remove from `core-js@4` -require('../../modules/esnext.aggregate-error'); require('../../modules/esnext.promise.all-settled'); require('../../modules/esnext.promise.any'); diff --git a/packages/core-js/modules/esnext.aggregate-error.js b/packages/core-js/modules/esnext.aggregate-error.js deleted file mode 100644 index 677193d2373c..000000000000 --- a/packages/core-js/modules/esnext.aggregate-error.js +++ /dev/null @@ -1,3 +0,0 @@ -'use strict'; -// TODO: Remove from `core-js@4` -require('../modules/es.aggregate-error'); diff --git a/packages/core-js/proposals/promise-any.js b/packages/core-js/proposals/promise-any.js index 3ed7f7c004f3..af9401d998ea 100644 --- a/packages/core-js/proposals/promise-any.js +++ b/packages/core-js/proposals/promise-any.js @@ -1,4 +1,4 @@ 'use strict'; // https://github.com/tc39/proposal-promise-any -require('../modules/esnext.aggregate-error'); +require('../modules/es.aggregate-error'); require('../modules/esnext.promise.any'); diff --git a/packages/core-js/stable/aggregate-error.js b/packages/core-js/stable/aggregate-error.js index 2a6c436565ed..e7e331f27961 100644 --- a/packages/core-js/stable/aggregate-error.js +++ b/packages/core-js/stable/aggregate-error.js @@ -1,7 +1,4 @@ 'use strict'; -// TODO: remove from `core-js@4` -require('../modules/esnext.aggregate-error'); - var parent = require('../es/aggregate-error'); require('../modules/web.dom-collections.iterator'); diff --git a/tests/compat-data/tests-coverage.mjs b/tests/compat-data/tests-coverage.mjs index 36189d3b01dd..e38ad0a2434e 100644 --- a/tests/compat-data/tests-coverage.mjs +++ b/tests/compat-data/tests-coverage.mjs @@ -15,7 +15,6 @@ const ignore = new Set([ 'es.set', 'es.weak-map', 'es.weak-set', - 'esnext.aggregate-error', 'esnext.array.filter-out', 'esnext.array.group', 'esnext.array.group-by', diff --git a/tests/entries/content.mjs b/tests/entries/content.mjs index 1e343fde9d26..540eeb6b0b8c 100644 --- a/tests/entries/content.mjs +++ b/tests/entries/content.mjs @@ -128,14 +128,14 @@ superset('core-js/full/url', /^web\.url(?:\.|$)/); superset('core-js/full/url-search-params', /^web\.url-search-params/); superset('core-js/full/weak-map', /^(?:es|esnext)\.weak-map/); superset('core-js/full/weak-set', /^(?:es|esnext)\.weak-set/); -subset('core-js/proposals', /^(?:es\.(?:map|string\.at)|esnext\.|web\.url)/); -subset('core-js/stage', /^(?:es\.(?:map|string\.at)|esnext\.|web\.url)/); -subset('core-js/stage/pre', /^(?:es\.(?:map|string\.at)|esnext\.|web\.url)/); -subset('core-js/stage/0', /^(?:es\.(?:map|string\.at)|esnext\.|web\.url)/); -subset('core-js/stage/1', /^(?:es\.(?:map|string\.at)|esnext\.|web\.url)/); -subset('core-js/stage/2', /^(?:es\.string\.at|esnext\.)/); -subset('core-js/stage/3', /^(?:es\.string\.at|esnext\.)/); -subset('core-js/stage/4', /^(?:es\.string\.at|esnext\.)/); +subset('core-js/proposals', /^(?:es\.|esnext\.|web\.url)/); +subset('core-js/stage', /^(?:es\.|esnext\.|web\.url)/); +subset('core-js/stage/pre', /^(?:es\.|esnext\.|web\.url)/); +subset('core-js/stage/0', /^(?:es\.|esnext\.|web\.url)/); +subset('core-js/stage/1', /^(?:es\.|esnext\.|web\.url)/); +subset('core-js/stage/2', /^(?:es\.|esnext\.)/); +subset('core-js/stage/3', /^(?:es\.|esnext\.)/); +subset('core-js/stage/4', /^(?:es\.|esnext\.)/); async function unexpectedInnerNamespace(namespace, unexpected) { const paths = await glob(`packages/core-js/${ namespace }/**/*.js`); From fec0432f0a49cbe4852ad253a97861f90611e196 Mon Sep 17 00:00:00 2001 From: Denis Pushkarev Date: Tue, 3 Oct 2023 02:37:44 +0700 Subject: [PATCH 002/428] drop `esnext.promise.any` (moved to stable es) --- packages/core-js-compat/src/data.mjs | 3 --- packages/core-js/full/promise/any.js | 3 --- packages/core-js/full/promise/index.js | 1 - packages/core-js/modules/esnext.promise.any.js | 3 --- packages/core-js/proposals/promise-any.js | 2 +- 5 files changed, 1 insertion(+), 11 deletions(-) delete mode 100644 packages/core-js/modules/esnext.promise.any.js diff --git a/packages/core-js-compat/src/data.mjs b/packages/core-js-compat/src/data.mjs index 2fa2df2255fd..30053814cf21 100644 --- a/packages/core-js-compat/src/data.mjs +++ b/packages/core-js-compat/src/data.mjs @@ -2682,8 +2682,6 @@ export const data = { // TODO: Remove from `core-js@4` 'esnext.promise.all-settled': null, // TODO: Remove from `core-js@4` - 'esnext.promise.any': null, - // TODO: Remove from `core-js@4` 'esnext.promise.try': null, // TODO: Remove from `core-js@4` 'esnext.promise.with-resolvers': null, @@ -3174,7 +3172,6 @@ export const renamed = new Map([ ['esnext.object.has-own', 'es.object.has-own'], ['esnext.object.group-by', 'es.object.group-by'], ['esnext.promise.all-settled', 'es.promise.all-settled'], - ['esnext.promise.any', 'es.promise.any'], ['esnext.promise.try', 'es.promise.try'], ['esnext.promise.with-resolvers', 'es.promise.with-resolvers'], ['esnext.regexp.escape', 'es.regexp.escape'], diff --git a/packages/core-js/full/promise/any.js b/packages/core-js/full/promise/any.js index 21b5b0791e12..778ae8c8e534 100644 --- a/packages/core-js/full/promise/any.js +++ b/packages/core-js/full/promise/any.js @@ -1,7 +1,4 @@ 'use strict'; var parent = require('../../actual/promise/any'); -// TODO: Remove from `core-js@4` -require('../../modules/esnext.promise.any'); - module.exports = parent; diff --git a/packages/core-js/full/promise/index.js b/packages/core-js/full/promise/index.js index ece4f5e02131..f3584985d6e5 100644 --- a/packages/core-js/full/promise/index.js +++ b/packages/core-js/full/promise/index.js @@ -2,6 +2,5 @@ var parent = require('../../actual/promise'); // TODO: Remove from `core-js@4` require('../../modules/esnext.promise.all-settled'); -require('../../modules/esnext.promise.any'); module.exports = parent; diff --git a/packages/core-js/modules/esnext.promise.any.js b/packages/core-js/modules/esnext.promise.any.js deleted file mode 100644 index b50dede41c22..000000000000 --- a/packages/core-js/modules/esnext.promise.any.js +++ /dev/null @@ -1,3 +0,0 @@ -'use strict'; -// TODO: Remove from `core-js@4` -require('../modules/es.promise.any'); diff --git a/packages/core-js/proposals/promise-any.js b/packages/core-js/proposals/promise-any.js index af9401d998ea..c75b3f48a6a0 100644 --- a/packages/core-js/proposals/promise-any.js +++ b/packages/core-js/proposals/promise-any.js @@ -1,4 +1,4 @@ 'use strict'; // https://github.com/tc39/proposal-promise-any require('../modules/es.aggregate-error'); -require('../modules/esnext.promise.any'); +require('../modules/es.promise.any'); From 69c9a63427b39334d1e811123a6d07df85f01a5d Mon Sep 17 00:00:00 2001 From: Denis Pushkarev Date: Tue, 3 Oct 2023 02:42:11 +0700 Subject: [PATCH 003/428] drop `esnext.promise.all-settled` (moved to stable es) --- packages/core-js-compat/src/data.mjs | 3 --- packages/core-js/full/promise/all-settled.js | 3 --- packages/core-js/full/promise/index.js | 2 -- packages/core-js/modules/esnext.promise.all-settled.js | 3 --- packages/core-js/proposals/promise-all-settled.js | 2 +- 5 files changed, 1 insertion(+), 12 deletions(-) delete mode 100644 packages/core-js/modules/esnext.promise.all-settled.js diff --git a/packages/core-js-compat/src/data.mjs b/packages/core-js-compat/src/data.mjs index 30053814cf21..b60b07992896 100644 --- a/packages/core-js-compat/src/data.mjs +++ b/packages/core-js-compat/src/data.mjs @@ -2680,8 +2680,6 @@ export const data = { 'esnext.observable.of': { }, // TODO: Remove from `core-js@4` - 'esnext.promise.all-settled': null, - // TODO: Remove from `core-js@4` 'esnext.promise.try': null, // TODO: Remove from `core-js@4` 'esnext.promise.with-resolvers': null, @@ -3171,7 +3169,6 @@ export const renamed = new Map([ ['esnext.math.sum-precise', 'es.math.sum-precise'], ['esnext.object.has-own', 'es.object.has-own'], ['esnext.object.group-by', 'es.object.group-by'], - ['esnext.promise.all-settled', 'es.promise.all-settled'], ['esnext.promise.try', 'es.promise.try'], ['esnext.promise.with-resolvers', 'es.promise.with-resolvers'], ['esnext.regexp.escape', 'es.regexp.escape'], diff --git a/packages/core-js/full/promise/all-settled.js b/packages/core-js/full/promise/all-settled.js index 5279cbada731..f7db09b2576b 100644 --- a/packages/core-js/full/promise/all-settled.js +++ b/packages/core-js/full/promise/all-settled.js @@ -1,7 +1,4 @@ 'use strict'; -// TODO: Remove from `core-js@4` -require('../../modules/esnext.promise.all-settled'); - var parent = require('../../actual/promise/all-settled'); module.exports = parent; diff --git a/packages/core-js/full/promise/index.js b/packages/core-js/full/promise/index.js index f3584985d6e5..712d40d15b19 100644 --- a/packages/core-js/full/promise/index.js +++ b/packages/core-js/full/promise/index.js @@ -1,6 +1,4 @@ 'use strict'; var parent = require('../../actual/promise'); -// TODO: Remove from `core-js@4` -require('../../modules/esnext.promise.all-settled'); module.exports = parent; diff --git a/packages/core-js/modules/esnext.promise.all-settled.js b/packages/core-js/modules/esnext.promise.all-settled.js deleted file mode 100644 index d7ba53d16675..000000000000 --- a/packages/core-js/modules/esnext.promise.all-settled.js +++ /dev/null @@ -1,3 +0,0 @@ -'use strict'; -// TODO: Remove from `core-js@4` -require('../modules/es.promise.all-settled.js'); diff --git a/packages/core-js/proposals/promise-all-settled.js b/packages/core-js/proposals/promise-all-settled.js index 4e5f41a91f4b..b9ddff04807d 100644 --- a/packages/core-js/proposals/promise-all-settled.js +++ b/packages/core-js/proposals/promise-all-settled.js @@ -1,3 +1,3 @@ 'use strict'; // https://github.com/tc39/proposal-promise-allSettled -require('../modules/esnext.promise.all-settled'); +require('../modules/es.promise.all-settled'); From 513f9a59b108572c5c619f2259161b4fd75af405 Mon Sep 17 00:00:00 2001 From: Denis Pushkarev Date: Tue, 3 Oct 2023 02:50:53 +0700 Subject: [PATCH 004/428] drop `esnext.array.at` (moved to stable es) --- packages/core-js-compat/src/data.mjs | 3 --- packages/core-js-compat/src/modules-by-versions.mjs | 1 - packages/core-js/full/array/at.js | 3 --- packages/core-js/full/array/index.js | 2 -- packages/core-js/full/array/virtual/at.js | 3 --- packages/core-js/full/array/virtual/index.js | 2 -- packages/core-js/modules/esnext.array.at.js | 3 --- packages/core-js/proposals/relative-indexing-method.js | 2 +- tests/compat-tools/compat.mjs | 3 ++- 9 files changed, 3 insertions(+), 19 deletions(-) delete mode 100644 packages/core-js/modules/esnext.array.at.js diff --git a/packages/core-js-compat/src/data.mjs b/packages/core-js-compat/src/data.mjs index b60b07992896..a78f97458b68 100644 --- a/packages/core-js-compat/src/data.mjs +++ b/packages/core-js-compat/src/data.mjs @@ -2372,8 +2372,6 @@ export const data = { // TODO: Remove from `core-js@4` 'esnext.array.from-async': null, // TODO: Remove from `core-js@4` - 'esnext.array.at': null, - // TODO: Remove from `core-js@4` 'esnext.array.filter-out': { }, 'esnext.array.filter-reject': { @@ -3132,7 +3130,6 @@ export const renamed = new Map([ ['es.set', 'es.set.constructor'], ['es.weak-map', 'es.weak-map.constructor'], ['es.weak-set', 'es.weak-set.constructor'], - ['esnext.array.at', 'es.array.at'], ['esnext.array.find-last', 'es.array.find-last'], ['esnext.array.find-last-index', 'es.array.find-last-index'], ['esnext.array.from-async', 'es.array.from-async'], diff --git a/packages/core-js-compat/src/modules-by-versions.mjs b/packages/core-js-compat/src/modules-by-versions.mjs index 3e040789d55c..83de2a977f79 100644 --- a/packages/core-js-compat/src/modules-by-versions.mjs +++ b/packages/core-js-compat/src/modules-by-versions.mjs @@ -64,7 +64,6 @@ export default { 'esnext.weak-map.emplace', ], 3.8: [ - 'esnext.array.at', 'esnext.array.filter-out', 'esnext.array.unique-by', 'esnext.bigint.range', diff --git a/packages/core-js/full/array/at.js b/packages/core-js/full/array/at.js index edc75eac1e26..6576c713dc12 100644 --- a/packages/core-js/full/array/at.js +++ b/packages/core-js/full/array/at.js @@ -1,7 +1,4 @@ 'use strict'; var parent = require('../../actual/array/at'); -// TODO: Remove from `core-js@4` -require('../../modules/esnext.array.at'); - module.exports = parent; diff --git a/packages/core-js/full/array/index.js b/packages/core-js/full/array/index.js index a6de170ffa54..5f4901a404fa 100644 --- a/packages/core-js/full/array/index.js +++ b/packages/core-js/full/array/index.js @@ -2,8 +2,6 @@ var parent = require('../../actual/array'); require('../../modules/es.map'); // TODO: Remove from `core-js@4` -require('../../modules/esnext.array.at'); -// TODO: Remove from `core-js@4` require('../../modules/esnext.array.filter-out'); require('../../modules/esnext.array.filter-reject'); require('../../modules/esnext.array.is-template-object'); diff --git a/packages/core-js/full/array/virtual/at.js b/packages/core-js/full/array/virtual/at.js index 3780e7418640..28ca65ce9ba5 100644 --- a/packages/core-js/full/array/virtual/at.js +++ b/packages/core-js/full/array/virtual/at.js @@ -1,7 +1,4 @@ 'use strict'; var parent = require('../../../actual/array/virtual/at'); -// TODO: Remove from `core-js@4` -require('../../../modules/esnext.array.at'); - module.exports = parent; diff --git a/packages/core-js/full/array/virtual/index.js b/packages/core-js/full/array/virtual/index.js index 540a9c5eda03..ecf598f40d75 100644 --- a/packages/core-js/full/array/virtual/index.js +++ b/packages/core-js/full/array/virtual/index.js @@ -1,8 +1,6 @@ 'use strict'; var parent = require('../../../actual/array/virtual'); // TODO: Remove from `core-js@4` -require('../../../modules/esnext.array.at'); -// TODO: Remove from `core-js@4` require('../../../modules/esnext.array.filter-out'); require('../../../modules/esnext.array.filter-reject'); require('../../../modules/esnext.array.unique-by'); diff --git a/packages/core-js/modules/esnext.array.at.js b/packages/core-js/modules/esnext.array.at.js deleted file mode 100644 index 13a671b5ca4b..000000000000 --- a/packages/core-js/modules/esnext.array.at.js +++ /dev/null @@ -1,3 +0,0 @@ -'use strict'; -// TODO: Remove from `core-js@4` -require('../modules/es.array.at'); diff --git a/packages/core-js/proposals/relative-indexing-method.js b/packages/core-js/proposals/relative-indexing-method.js index 640d0146bea3..0ae204120ec1 100644 --- a/packages/core-js/proposals/relative-indexing-method.js +++ b/packages/core-js/proposals/relative-indexing-method.js @@ -1,5 +1,5 @@ 'use strict'; // https://github.com/tc39/proposal-relative-indexing-method require('../modules/es.string.at-alternative'); -require('../modules/esnext.array.at'); +require('../modules/es.array.at'); require('../modules/esnext.typed-array.at'); diff --git a/tests/compat-tools/compat.mjs b/tests/compat-tools/compat.mjs index 16884a330d96..9735047ce56d 100644 --- a/tests/compat-tools/compat.mjs +++ b/tests/compat-tools/compat.mjs @@ -135,7 +135,8 @@ const { list: inverted1 } = compat({ targets: { esmodules: true }, inverse: true ok(inverted1.includes('es.symbol.iterator'), 'inverse #1'); ok(!inverted1.includes('esnext.iterator.from'), 'inverse #2'); -ok(!inverted1.includes('esnext.array.at'), 'inverse #3'); +// TODO: enable after adding new stabilized aliases in `core-js@4` +// ok(!inverted1.includes('esnext.array.at'), 'inverse #3'); const { list: inverted2 } = compat({ modules: 'core-js/es/math', targets: { esmodules: true }, inverse: true }); From 046ba795d63f7108af5499e1e1e52f9f0c66b335 Mon Sep 17 00:00:00 2001 From: Denis Pushkarev Date: Tue, 3 Oct 2023 03:04:10 +0700 Subject: [PATCH 005/428] drop `esnext.typed-array.at` (moved to stable es) --- packages/core-js-compat/src/data.mjs | 3 --- packages/core-js-compat/src/modules-by-versions.mjs | 1 - .../core-js-pure/override/modules/esnext.typed-array.at.js | 1 - packages/core-js/full/typed-array/at.js | 3 --- packages/core-js/full/typed-array/index.js | 2 -- packages/core-js/full/typed-array/methods.js | 2 -- packages/core-js/modules/esnext.typed-array.at.js | 3 --- packages/core-js/proposals/relative-indexing-method.js | 2 +- 8 files changed, 1 insertion(+), 16 deletions(-) delete mode 100644 packages/core-js-pure/override/modules/esnext.typed-array.at.js delete mode 100644 packages/core-js/modules/esnext.typed-array.at.js diff --git a/packages/core-js-compat/src/data.mjs b/packages/core-js-compat/src/data.mjs index a78f97458b68..da0a8dbd7036 100644 --- a/packages/core-js-compat/src/data.mjs +++ b/packages/core-js-compat/src/data.mjs @@ -2822,8 +2822,6 @@ export const data = { 'esnext.typed-array.from-async': { }, // TODO: Remove from `core-js@4` - 'esnext.typed-array.at': null, - // TODO: Remove from `core-js@4` 'esnext.typed-array.filter-out': { }, 'esnext.typed-array.filter-reject': { @@ -3181,7 +3179,6 @@ export const renamed = new Map([ ['esnext.string.replace-all', 'es.string.replace-all'], ['esnext.string.to-well-formed', 'es.string.to-well-formed'], ['esnext.suppressed-error.constructor', 'es.suppressed-error.constructor'], - ['esnext.typed-array.at', 'es.typed-array.at'], ['esnext.symbol.async-dispose', 'es.symbol.async-dispose'], ['esnext.symbol.dispose', 'es.symbol.dispose'], ['esnext.typed-array.find-last', 'es.typed-array.find-last'], diff --git a/packages/core-js-compat/src/modules-by-versions.mjs b/packages/core-js-compat/src/modules-by-versions.mjs index 83de2a977f79..a99338e1ac19 100644 --- a/packages/core-js-compat/src/modules-by-versions.mjs +++ b/packages/core-js-compat/src/modules-by-versions.mjs @@ -68,7 +68,6 @@ export default { 'esnext.array.unique-by', 'esnext.bigint.range', 'esnext.number.range', - 'esnext.typed-array.at', 'esnext.typed-array.filter-out', ], 3.9: [ diff --git a/packages/core-js-pure/override/modules/esnext.typed-array.at.js b/packages/core-js-pure/override/modules/esnext.typed-array.at.js deleted file mode 100644 index 8b1a393741c9..000000000000 --- a/packages/core-js-pure/override/modules/esnext.typed-array.at.js +++ /dev/null @@ -1 +0,0 @@ -// empty diff --git a/packages/core-js/full/typed-array/at.js b/packages/core-js/full/typed-array/at.js index ee0919ff6518..ffecd7512184 100644 --- a/packages/core-js/full/typed-array/at.js +++ b/packages/core-js/full/typed-array/at.js @@ -1,7 +1,4 @@ 'use strict'; var parent = require('../../actual/typed-array/at'); -// TODO: Remove from `core-js@4` -require('../../modules/esnext.typed-array.at'); - module.exports = parent; diff --git a/packages/core-js/full/typed-array/index.js b/packages/core-js/full/typed-array/index.js index 2a1f04365748..88f429844d9f 100644 --- a/packages/core-js/full/typed-array/index.js +++ b/packages/core-js/full/typed-array/index.js @@ -4,8 +4,6 @@ require('../../modules/es.map'); require('../../modules/es.promise'); require('../../modules/esnext.typed-array.from-async'); // TODO: Remove from `core-js@4` -require('../../modules/esnext.typed-array.at'); -// TODO: Remove from `core-js@4` require('../../modules/esnext.typed-array.filter-out'); require('../../modules/esnext.typed-array.filter-reject'); require('../../modules/esnext.typed-array.group-by'); diff --git a/packages/core-js/full/typed-array/methods.js b/packages/core-js/full/typed-array/methods.js index 1e85c5fa7f5a..c9949eb05d44 100644 --- a/packages/core-js/full/typed-array/methods.js +++ b/packages/core-js/full/typed-array/methods.js @@ -4,8 +4,6 @@ require('../../modules/es.map'); require('../../modules/es.promise'); require('../../modules/esnext.typed-array.from-async'); // TODO: Remove from `core-js@4` -require('../../modules/esnext.typed-array.at'); -// TODO: Remove from `core-js@4` require('../../modules/esnext.typed-array.filter-out'); require('../../modules/esnext.typed-array.filter-reject'); require('../../modules/esnext.typed-array.group-by'); diff --git a/packages/core-js/modules/esnext.typed-array.at.js b/packages/core-js/modules/esnext.typed-array.at.js deleted file mode 100644 index e9d808c49a0b..000000000000 --- a/packages/core-js/modules/esnext.typed-array.at.js +++ /dev/null @@ -1,3 +0,0 @@ -'use strict'; -// TODO: Remove from `core-js@4` -require('../modules/es.typed-array.at'); diff --git a/packages/core-js/proposals/relative-indexing-method.js b/packages/core-js/proposals/relative-indexing-method.js index 0ae204120ec1..2b5d3d5f368d 100644 --- a/packages/core-js/proposals/relative-indexing-method.js +++ b/packages/core-js/proposals/relative-indexing-method.js @@ -2,4 +2,4 @@ // https://github.com/tc39/proposal-relative-indexing-method require('../modules/es.string.at-alternative'); require('../modules/es.array.at'); -require('../modules/esnext.typed-array.at'); +require('../modules/es.typed-array.at'); From 38955150a92e88279aae156a4f3c49283c819c94 Mon Sep 17 00:00:00 2001 From: Denis Pushkarev Date: Tue, 3 Oct 2023 03:10:53 +0700 Subject: [PATCH 006/428] drop `esnext.array.find-last` (moved to stable es) --- packages/core-js-compat/src/data.mjs | 3 --- packages/core-js-compat/src/modules-by-versions.mjs | 1 - packages/core-js/actual/array/find-last.js | 1 - packages/core-js/actual/array/index.js | 1 - packages/core-js/actual/array/virtual/find-last.js | 1 - packages/core-js/actual/array/virtual/index.js | 1 - packages/core-js/modules/esnext.array.find-last.js | 3 --- packages/core-js/proposals/array-find-from-last.js | 2 +- 8 files changed, 1 insertion(+), 12 deletions(-) delete mode 100644 packages/core-js/modules/esnext.array.find-last.js diff --git a/packages/core-js-compat/src/data.mjs b/packages/core-js-compat/src/data.mjs index da0a8dbd7036..66eeb568a576 100644 --- a/packages/core-js-compat/src/data.mjs +++ b/packages/core-js-compat/src/data.mjs @@ -2377,8 +2377,6 @@ export const data = { 'esnext.array.filter-reject': { }, // TODO: Remove from `core-js@4` - 'esnext.array.find-last': null, - // TODO: Remove from `core-js@4` 'esnext.array.find-last-index': null, 'esnext.array.group': { // disabled from Bun 0.6.2 @@ -3128,7 +3126,6 @@ export const renamed = new Map([ ['es.set', 'es.set.constructor'], ['es.weak-map', 'es.weak-map.constructor'], ['es.weak-set', 'es.weak-set.constructor'], - ['esnext.array.find-last', 'es.array.find-last'], ['esnext.array.find-last-index', 'es.array.find-last-index'], ['esnext.array.from-async', 'es.array.from-async'], ['esnext.array.to-reversed', 'es.array.to-reversed'], diff --git a/packages/core-js-compat/src/modules-by-versions.mjs b/packages/core-js-compat/src/modules-by-versions.mjs index a99338e1ac19..98cb8563431e 100644 --- a/packages/core-js-compat/src/modules-by-versions.mjs +++ b/packages/core-js-compat/src/modules-by-versions.mjs @@ -71,7 +71,6 @@ export default { 'esnext.typed-array.filter-out', ], 3.9: [ - 'esnext.array.find-last', 'esnext.array.find-last-index', 'esnext.typed-array.find-last', 'esnext.typed-array.find-last-index', diff --git a/packages/core-js/actual/array/find-last.js b/packages/core-js/actual/array/find-last.js index c215b31a9c1c..5a6c000d7be2 100644 --- a/packages/core-js/actual/array/find-last.js +++ b/packages/core-js/actual/array/find-last.js @@ -1,5 +1,4 @@ 'use strict'; -require('../../modules/esnext.array.find-last'); var parent = require('../../stable/array/find-last'); module.exports = parent; diff --git a/packages/core-js/actual/array/index.js b/packages/core-js/actual/array/index.js index 95d083e59d50..7e00537ffe44 100644 --- a/packages/core-js/actual/array/index.js +++ b/packages/core-js/actual/array/index.js @@ -4,7 +4,6 @@ require('../../modules/esnext.array.from-async'); require('../../modules/esnext.array.group'); require('../../modules/esnext.array.group-to-map'); // TODO: Remove from `core-js@4` -require('../../modules/esnext.array.find-last'); require('../../modules/esnext.array.find-last-index'); require('../../modules/esnext.array.group-by'); require('../../modules/esnext.array.group-by-to-map'); diff --git a/packages/core-js/actual/array/virtual/find-last.js b/packages/core-js/actual/array/virtual/find-last.js index ab53b1c2ce2f..b677ee46b6c0 100644 --- a/packages/core-js/actual/array/virtual/find-last.js +++ b/packages/core-js/actual/array/virtual/find-last.js @@ -1,5 +1,4 @@ 'use strict'; -require('../../../modules/esnext.array.find-last'); var parent = require('../../../stable/array/virtual/find-last'); module.exports = parent; diff --git a/packages/core-js/actual/array/virtual/index.js b/packages/core-js/actual/array/virtual/index.js index 5c738434761c..7595fb5cb0a8 100644 --- a/packages/core-js/actual/array/virtual/index.js +++ b/packages/core-js/actual/array/virtual/index.js @@ -5,7 +5,6 @@ require('../../../modules/es.object.to-string'); require('../../../modules/esnext.array.group'); require('../../../modules/esnext.array.group-to-map'); // TODO: Remove from `core-js@4` -require('../../../modules/esnext.array.find-last'); require('../../../modules/esnext.array.find-last-index'); require('../../../modules/esnext.array.group-by'); require('../../../modules/esnext.array.group-by-to-map'); diff --git a/packages/core-js/modules/esnext.array.find-last.js b/packages/core-js/modules/esnext.array.find-last.js deleted file mode 100644 index 04f1cd823bad..000000000000 --- a/packages/core-js/modules/esnext.array.find-last.js +++ /dev/null @@ -1,3 +0,0 @@ -'use strict'; -// TODO: Remove from `core-js@4` -require('../modules/es.array.find-last'); diff --git a/packages/core-js/proposals/array-find-from-last.js b/packages/core-js/proposals/array-find-from-last.js index a60804bf1b90..04c4911f24a4 100644 --- a/packages/core-js/proposals/array-find-from-last.js +++ b/packages/core-js/proposals/array-find-from-last.js @@ -1,6 +1,6 @@ 'use strict'; // https://github.com/tc39/proposal-array-find-from-last/ -require('../modules/esnext.array.find-last'); +require('../modules/es.array.find-last'); require('../modules/esnext.array.find-last-index'); require('../modules/esnext.typed-array.find-last'); require('../modules/esnext.typed-array.find-last-index'); From 3562b9f29ca25570bedf00b0cf3d636481301e4d Mon Sep 17 00:00:00 2001 From: Denis Pushkarev Date: Tue, 3 Oct 2023 03:16:24 +0700 Subject: [PATCH 007/428] drop `esnext.array.find-last-index` (moved to stable es) --- packages/core-js-compat/src/data.mjs | 3 --- packages/core-js-compat/src/modules-by-versions.mjs | 1 - packages/core-js/actual/array/find-last-index.js | 1 - packages/core-js/actual/array/index.js | 1 - packages/core-js/actual/array/virtual/find-last-index.js | 1 - packages/core-js/actual/array/virtual/index.js | 1 - packages/core-js/modules/esnext.array.find-last-index.js | 3 --- packages/core-js/proposals/array-find-from-last.js | 2 +- 8 files changed, 1 insertion(+), 12 deletions(-) delete mode 100644 packages/core-js/modules/esnext.array.find-last-index.js diff --git a/packages/core-js-compat/src/data.mjs b/packages/core-js-compat/src/data.mjs index 66eeb568a576..b4e837dc522e 100644 --- a/packages/core-js-compat/src/data.mjs +++ b/packages/core-js-compat/src/data.mjs @@ -2376,8 +2376,6 @@ export const data = { }, 'esnext.array.filter-reject': { }, - // TODO: Remove from `core-js@4` - 'esnext.array.find-last-index': null, 'esnext.array.group': { // disabled from Bun 0.6.2 // bun: '0.1.9', @@ -3126,7 +3124,6 @@ export const renamed = new Map([ ['es.set', 'es.set.constructor'], ['es.weak-map', 'es.weak-map.constructor'], ['es.weak-set', 'es.weak-set.constructor'], - ['esnext.array.find-last-index', 'es.array.find-last-index'], ['esnext.array.from-async', 'es.array.from-async'], ['esnext.array.to-reversed', 'es.array.to-reversed'], ['esnext.array.to-sorted', 'es.array.to-sorted'], diff --git a/packages/core-js-compat/src/modules-by-versions.mjs b/packages/core-js-compat/src/modules-by-versions.mjs index 98cb8563431e..cd007aff69eb 100644 --- a/packages/core-js-compat/src/modules-by-versions.mjs +++ b/packages/core-js-compat/src/modules-by-versions.mjs @@ -71,7 +71,6 @@ export default { 'esnext.typed-array.filter-out', ], 3.9: [ - 'esnext.array.find-last-index', 'esnext.typed-array.find-last', 'esnext.typed-array.find-last-index', 'esnext.typed-array.unique-by', diff --git a/packages/core-js/actual/array/find-last-index.js b/packages/core-js/actual/array/find-last-index.js index 1c29cfcbd92f..da62c96e6429 100644 --- a/packages/core-js/actual/array/find-last-index.js +++ b/packages/core-js/actual/array/find-last-index.js @@ -1,5 +1,4 @@ 'use strict'; -require('../../modules/esnext.array.find-last-index'); var parent = require('../../stable/array/find-last-index'); module.exports = parent; diff --git a/packages/core-js/actual/array/index.js b/packages/core-js/actual/array/index.js index 7e00537ffe44..163dedf8ae3f 100644 --- a/packages/core-js/actual/array/index.js +++ b/packages/core-js/actual/array/index.js @@ -4,7 +4,6 @@ require('../../modules/esnext.array.from-async'); require('../../modules/esnext.array.group'); require('../../modules/esnext.array.group-to-map'); // TODO: Remove from `core-js@4` -require('../../modules/esnext.array.find-last-index'); require('../../modules/esnext.array.group-by'); require('../../modules/esnext.array.group-by-to-map'); require('../../modules/esnext.array.to-reversed'); diff --git a/packages/core-js/actual/array/virtual/find-last-index.js b/packages/core-js/actual/array/virtual/find-last-index.js index 3c0397f15a24..1985a301bc0a 100644 --- a/packages/core-js/actual/array/virtual/find-last-index.js +++ b/packages/core-js/actual/array/virtual/find-last-index.js @@ -1,5 +1,4 @@ 'use strict'; -require('../../../modules/esnext.array.find-last-index'); var parent = require('../../../stable/array/virtual/find-last-index'); module.exports = parent; diff --git a/packages/core-js/actual/array/virtual/index.js b/packages/core-js/actual/array/virtual/index.js index 7595fb5cb0a8..db043da588e1 100644 --- a/packages/core-js/actual/array/virtual/index.js +++ b/packages/core-js/actual/array/virtual/index.js @@ -5,7 +5,6 @@ require('../../../modules/es.object.to-string'); require('../../../modules/esnext.array.group'); require('../../../modules/esnext.array.group-to-map'); // TODO: Remove from `core-js@4` -require('../../../modules/esnext.array.find-last-index'); require('../../../modules/esnext.array.group-by'); require('../../../modules/esnext.array.group-by-to-map'); require('../../../modules/esnext.array.to-reversed'); diff --git a/packages/core-js/modules/esnext.array.find-last-index.js b/packages/core-js/modules/esnext.array.find-last-index.js deleted file mode 100644 index bc997fede941..000000000000 --- a/packages/core-js/modules/esnext.array.find-last-index.js +++ /dev/null @@ -1,3 +0,0 @@ -'use strict'; -// TODO: Remove from `core-js@4` -require('../modules/es.array.find-last-index'); diff --git a/packages/core-js/proposals/array-find-from-last.js b/packages/core-js/proposals/array-find-from-last.js index 04c4911f24a4..255eaa260461 100644 --- a/packages/core-js/proposals/array-find-from-last.js +++ b/packages/core-js/proposals/array-find-from-last.js @@ -1,6 +1,6 @@ 'use strict'; // https://github.com/tc39/proposal-array-find-from-last/ require('../modules/es.array.find-last'); -require('../modules/esnext.array.find-last-index'); +require('../modules/es.array.find-last-index'); require('../modules/esnext.typed-array.find-last'); require('../modules/esnext.typed-array.find-last-index'); From 1238d77ca58b2869ec3d873a5692dd48f2ccb7ee Mon Sep 17 00:00:00 2001 From: Denis Pushkarev Date: Tue, 3 Oct 2023 03:22:36 +0700 Subject: [PATCH 008/428] drop `esnext.typed-array.find-last` (moved to stable es) --- packages/core-js-compat/src/data.mjs | 3 --- packages/core-js-compat/src/modules-by-versions.mjs | 1 - .../override/modules/esnext.typed-array.find-last.js | 1 - packages/core-js/actual/typed-array/find-last.js | 1 - packages/core-js/actual/typed-array/index.js | 1 - packages/core-js/actual/typed-array/methods.js | 1 - packages/core-js/modules/esnext.typed-array.find-last.js | 3 --- packages/core-js/proposals/array-find-from-last.js | 2 +- 8 files changed, 1 insertion(+), 12 deletions(-) delete mode 100644 packages/core-js-pure/override/modules/esnext.typed-array.find-last.js delete mode 100644 packages/core-js/modules/esnext.typed-array.find-last.js diff --git a/packages/core-js-compat/src/data.mjs b/packages/core-js-compat/src/data.mjs index b4e837dc522e..7faf9d0b70bf 100644 --- a/packages/core-js-compat/src/data.mjs +++ b/packages/core-js-compat/src/data.mjs @@ -2823,8 +2823,6 @@ export const data = { 'esnext.typed-array.filter-reject': { }, // TODO: Remove from `core-js@4` - 'esnext.typed-array.find-last': null, - // TODO: Remove from `core-js@4` 'esnext.typed-array.find-last-index': null, // TODO: Remove from `core-js@4` 'esnext.typed-array.group-by': { @@ -3175,7 +3173,6 @@ export const renamed = new Map([ ['esnext.suppressed-error.constructor', 'es.suppressed-error.constructor'], ['esnext.symbol.async-dispose', 'es.symbol.async-dispose'], ['esnext.symbol.dispose', 'es.symbol.dispose'], - ['esnext.typed-array.find-last', 'es.typed-array.find-last'], ['esnext.typed-array.find-last-index', 'es.typed-array.find-last-index'], ['esnext.typed-array.to-reversed', 'es.typed-array.to-reversed'], ['esnext.typed-array.to-sorted', 'es.typed-array.to-sorted'], diff --git a/packages/core-js-compat/src/modules-by-versions.mjs b/packages/core-js-compat/src/modules-by-versions.mjs index cd007aff69eb..72d7128dedc8 100644 --- a/packages/core-js-compat/src/modules-by-versions.mjs +++ b/packages/core-js-compat/src/modules-by-versions.mjs @@ -71,7 +71,6 @@ export default { 'esnext.typed-array.filter-out', ], 3.9: [ - 'esnext.typed-array.find-last', 'esnext.typed-array.find-last-index', 'esnext.typed-array.unique-by', ], diff --git a/packages/core-js-pure/override/modules/esnext.typed-array.find-last.js b/packages/core-js-pure/override/modules/esnext.typed-array.find-last.js deleted file mode 100644 index 8b1a393741c9..000000000000 --- a/packages/core-js-pure/override/modules/esnext.typed-array.find-last.js +++ /dev/null @@ -1 +0,0 @@ -// empty diff --git a/packages/core-js/actual/typed-array/find-last.js b/packages/core-js/actual/typed-array/find-last.js index f7608b1756d6..83341b037157 100644 --- a/packages/core-js/actual/typed-array/find-last.js +++ b/packages/core-js/actual/typed-array/find-last.js @@ -1,5 +1,4 @@ 'use strict'; -require('../../modules/esnext.typed-array.find-last'); var parent = require('../../stable/typed-array/find-last'); module.exports = parent; diff --git a/packages/core-js/actual/typed-array/index.js b/packages/core-js/actual/typed-array/index.js index 92212e8f223d..0702d0e1e206 100644 --- a/packages/core-js/actual/typed-array/index.js +++ b/packages/core-js/actual/typed-array/index.js @@ -7,7 +7,6 @@ require('../../modules/esnext.uint8-array.set-from-base64'); require('../../modules/esnext.uint8-array.set-from-hex'); require('../../modules/esnext.uint8-array.to-base64'); require('../../modules/esnext.uint8-array.to-hex'); -require('../../modules/esnext.typed-array.find-last'); require('../../modules/esnext.typed-array.find-last-index'); require('../../modules/esnext.typed-array.to-reversed'); require('../../modules/esnext.typed-array.to-sorted'); diff --git a/packages/core-js/actual/typed-array/methods.js b/packages/core-js/actual/typed-array/methods.js index c9f680c0cc13..92ba876a4236 100644 --- a/packages/core-js/actual/typed-array/methods.js +++ b/packages/core-js/actual/typed-array/methods.js @@ -7,7 +7,6 @@ require('../../modules/esnext.uint8-array.set-from-hex'); require('../../modules/esnext.uint8-array.to-base64'); require('../../modules/esnext.uint8-array.to-hex'); // TODO: Remove from `core-js@4` -require('../../modules/esnext.typed-array.find-last'); require('../../modules/esnext.typed-array.find-last-index'); require('../../modules/esnext.typed-array.to-reversed'); require('../../modules/esnext.typed-array.to-sorted'); diff --git a/packages/core-js/modules/esnext.typed-array.find-last.js b/packages/core-js/modules/esnext.typed-array.find-last.js deleted file mode 100644 index ed44d5300e8a..000000000000 --- a/packages/core-js/modules/esnext.typed-array.find-last.js +++ /dev/null @@ -1,3 +0,0 @@ -'use strict'; -// TODO: Remove from `core-js@4` -require('../modules/es.typed-array.find-last'); diff --git a/packages/core-js/proposals/array-find-from-last.js b/packages/core-js/proposals/array-find-from-last.js index 255eaa260461..f2580e6b0014 100644 --- a/packages/core-js/proposals/array-find-from-last.js +++ b/packages/core-js/proposals/array-find-from-last.js @@ -2,5 +2,5 @@ // https://github.com/tc39/proposal-array-find-from-last/ require('../modules/es.array.find-last'); require('../modules/es.array.find-last-index'); -require('../modules/esnext.typed-array.find-last'); +require('../modules/es.typed-array.find-last'); require('../modules/esnext.typed-array.find-last-index'); From 878060b3743ce2a914d763eec60e3eb575d0c493 Mon Sep 17 00:00:00 2001 From: Denis Pushkarev Date: Tue, 3 Oct 2023 03:27:57 +0700 Subject: [PATCH 009/428] drop `esnext.typed-array.find-last-index` (moved to stable es) --- packages/core-js-compat/src/data.mjs | 3 --- packages/core-js-compat/src/modules-by-versions.mjs | 1 - .../override/modules/esnext.typed-array.find-last-index.js | 1 - packages/core-js/actual/typed-array/find-last-index.js | 1 - packages/core-js/actual/typed-array/index.js | 1 - packages/core-js/actual/typed-array/methods.js | 1 - packages/core-js/modules/esnext.typed-array.find-last-index.js | 3 --- packages/core-js/proposals/array-find-from-last.js | 2 +- 8 files changed, 1 insertion(+), 12 deletions(-) delete mode 100644 packages/core-js-pure/override/modules/esnext.typed-array.find-last-index.js delete mode 100644 packages/core-js/modules/esnext.typed-array.find-last-index.js diff --git a/packages/core-js-compat/src/data.mjs b/packages/core-js-compat/src/data.mjs index 7faf9d0b70bf..e0c4cc5c8166 100644 --- a/packages/core-js-compat/src/data.mjs +++ b/packages/core-js-compat/src/data.mjs @@ -2823,8 +2823,6 @@ export const data = { 'esnext.typed-array.filter-reject': { }, // TODO: Remove from `core-js@4` - 'esnext.typed-array.find-last-index': null, - // TODO: Remove from `core-js@4` 'esnext.typed-array.group-by': { }, // TODO: Remove from `core-js@4` @@ -3173,7 +3171,6 @@ export const renamed = new Map([ ['esnext.suppressed-error.constructor', 'es.suppressed-error.constructor'], ['esnext.symbol.async-dispose', 'es.symbol.async-dispose'], ['esnext.symbol.dispose', 'es.symbol.dispose'], - ['esnext.typed-array.find-last-index', 'es.typed-array.find-last-index'], ['esnext.typed-array.to-reversed', 'es.typed-array.to-reversed'], ['esnext.typed-array.to-sorted', 'es.typed-array.to-sorted'], ['esnext.typed-array.with', 'es.typed-array.with'], diff --git a/packages/core-js-compat/src/modules-by-versions.mjs b/packages/core-js-compat/src/modules-by-versions.mjs index 72d7128dedc8..0b3a47317e77 100644 --- a/packages/core-js-compat/src/modules-by-versions.mjs +++ b/packages/core-js-compat/src/modules-by-versions.mjs @@ -71,7 +71,6 @@ export default { 'esnext.typed-array.filter-out', ], 3.9: [ - 'esnext.typed-array.find-last-index', 'esnext.typed-array.unique-by', ], 3.11: [ diff --git a/packages/core-js-pure/override/modules/esnext.typed-array.find-last-index.js b/packages/core-js-pure/override/modules/esnext.typed-array.find-last-index.js deleted file mode 100644 index 8b1a393741c9..000000000000 --- a/packages/core-js-pure/override/modules/esnext.typed-array.find-last-index.js +++ /dev/null @@ -1 +0,0 @@ -// empty diff --git a/packages/core-js/actual/typed-array/find-last-index.js b/packages/core-js/actual/typed-array/find-last-index.js index eb7cd4824241..395c751d282e 100644 --- a/packages/core-js/actual/typed-array/find-last-index.js +++ b/packages/core-js/actual/typed-array/find-last-index.js @@ -1,5 +1,4 @@ 'use strict'; -require('../../modules/esnext.typed-array.find-last-index'); var parent = require('../../stable/typed-array/find-last-index'); module.exports = parent; diff --git a/packages/core-js/actual/typed-array/index.js b/packages/core-js/actual/typed-array/index.js index 0702d0e1e206..f265c3287dd9 100644 --- a/packages/core-js/actual/typed-array/index.js +++ b/packages/core-js/actual/typed-array/index.js @@ -7,7 +7,6 @@ require('../../modules/esnext.uint8-array.set-from-base64'); require('../../modules/esnext.uint8-array.set-from-hex'); require('../../modules/esnext.uint8-array.to-base64'); require('../../modules/esnext.uint8-array.to-hex'); -require('../../modules/esnext.typed-array.find-last-index'); require('../../modules/esnext.typed-array.to-reversed'); require('../../modules/esnext.typed-array.to-sorted'); require('../../modules/esnext.typed-array.to-spliced'); diff --git a/packages/core-js/actual/typed-array/methods.js b/packages/core-js/actual/typed-array/methods.js index 92ba876a4236..0cc85de31de8 100644 --- a/packages/core-js/actual/typed-array/methods.js +++ b/packages/core-js/actual/typed-array/methods.js @@ -7,7 +7,6 @@ require('../../modules/esnext.uint8-array.set-from-hex'); require('../../modules/esnext.uint8-array.to-base64'); require('../../modules/esnext.uint8-array.to-hex'); // TODO: Remove from `core-js@4` -require('../../modules/esnext.typed-array.find-last-index'); require('../../modules/esnext.typed-array.to-reversed'); require('../../modules/esnext.typed-array.to-sorted'); require('../../modules/esnext.typed-array.to-spliced'); diff --git a/packages/core-js/modules/esnext.typed-array.find-last-index.js b/packages/core-js/modules/esnext.typed-array.find-last-index.js deleted file mode 100644 index 9b35fb38f41e..000000000000 --- a/packages/core-js/modules/esnext.typed-array.find-last-index.js +++ /dev/null @@ -1,3 +0,0 @@ -'use strict'; -// TODO: Remove from `core-js@4` -require('../modules/es.typed-array.find-last-index'); diff --git a/packages/core-js/proposals/array-find-from-last.js b/packages/core-js/proposals/array-find-from-last.js index f2580e6b0014..154d75e95a8e 100644 --- a/packages/core-js/proposals/array-find-from-last.js +++ b/packages/core-js/proposals/array-find-from-last.js @@ -3,4 +3,4 @@ require('../modules/es.array.find-last'); require('../modules/es.array.find-last-index'); require('../modules/es.typed-array.find-last'); -require('../modules/esnext.typed-array.find-last-index'); +require('../modules/es.typed-array.find-last-index'); From c3b010d0965aab2269f4199b5c589ad9a484283b Mon Sep 17 00:00:00 2001 From: Denis Pushkarev Date: Tue, 3 Oct 2023 03:39:40 +0700 Subject: [PATCH 010/428] drop `esnext.array.to-reversed` (moved to stable es) --- packages/core-js-compat/src/data.mjs | 3 --- packages/core-js-compat/src/modules-by-versions.mjs | 1 - packages/core-js/actual/array/index.js | 1 - packages/core-js/actual/array/to-reversed.js | 2 -- packages/core-js/actual/array/virtual/index.js | 1 - packages/core-js/actual/array/virtual/to-reversed.js | 2 -- packages/core-js/modules/esnext.array.to-reversed.js | 3 --- packages/core-js/proposals/change-array-by-copy-stage-4.js | 2 +- packages/core-js/proposals/change-array-by-copy.js | 2 +- 9 files changed, 2 insertions(+), 15 deletions(-) delete mode 100644 packages/core-js/modules/esnext.array.to-reversed.js diff --git a/packages/core-js-compat/src/data.mjs b/packages/core-js-compat/src/data.mjs index e0c4cc5c8166..0046bc40b76d 100644 --- a/packages/core-js-compat/src/data.mjs +++ b/packages/core-js-compat/src/data.mjs @@ -2405,8 +2405,6 @@ export const data = { 'esnext.array.last-item': { }, // TODO: Remove from `core-js@4` - 'esnext.array.to-reversed': null, - // TODO: Remove from `core-js@4` 'esnext.array.to-sorted': null, // TODO: Remove from `core-js@4` 'esnext.array.to-spliced': null, @@ -3121,7 +3119,6 @@ export const renamed = new Map([ ['es.weak-map', 'es.weak-map.constructor'], ['es.weak-set', 'es.weak-set.constructor'], ['esnext.array.from-async', 'es.array.from-async'], - ['esnext.array.to-reversed', 'es.array.to-reversed'], ['esnext.array.to-sorted', 'es.array.to-sorted'], ['esnext.array.to-spliced', 'es.array.to-spliced'], ['esnext.array.with', 'es.array.with'], diff --git a/packages/core-js-compat/src/modules-by-versions.mjs b/packages/core-js-compat/src/modules-by-versions.mjs index 0b3a47317e77..69ad552c14a6 100644 --- a/packages/core-js-compat/src/modules-by-versions.mjs +++ b/packages/core-js-compat/src/modules-by-versions.mjs @@ -111,7 +111,6 @@ export default { 'es.aggregate-error.cause', 'es.number.to-exponential', 'esnext.array.group-by-to-map', - 'esnext.array.to-reversed', 'esnext.array.to-sorted', 'esnext.array.to-spliced', 'esnext.array.with', diff --git a/packages/core-js/actual/array/index.js b/packages/core-js/actual/array/index.js index 163dedf8ae3f..f71b3c660555 100644 --- a/packages/core-js/actual/array/index.js +++ b/packages/core-js/actual/array/index.js @@ -6,7 +6,6 @@ require('../../modules/esnext.array.group-to-map'); // TODO: Remove from `core-js@4` require('../../modules/esnext.array.group-by'); require('../../modules/esnext.array.group-by-to-map'); -require('../../modules/esnext.array.to-reversed'); require('../../modules/esnext.array.to-sorted'); require('../../modules/esnext.array.to-spliced'); require('../../modules/esnext.array.with'); diff --git a/packages/core-js/actual/array/to-reversed.js b/packages/core-js/actual/array/to-reversed.js index 459dc5d18b81..b0be52bb69e0 100644 --- a/packages/core-js/actual/array/to-reversed.js +++ b/packages/core-js/actual/array/to-reversed.js @@ -1,6 +1,4 @@ 'use strict'; var parent = require('../../stable/array/to-reversed'); -// TODO: Remove from `core-js@4` -require('../../modules/esnext.array.to-reversed'); module.exports = parent; diff --git a/packages/core-js/actual/array/virtual/index.js b/packages/core-js/actual/array/virtual/index.js index db043da588e1..9552b27ca230 100644 --- a/packages/core-js/actual/array/virtual/index.js +++ b/packages/core-js/actual/array/virtual/index.js @@ -7,7 +7,6 @@ require('../../../modules/esnext.array.group-to-map'); // TODO: Remove from `core-js@4` require('../../../modules/esnext.array.group-by'); require('../../../modules/esnext.array.group-by-to-map'); -require('../../../modules/esnext.array.to-reversed'); require('../../../modules/esnext.array.to-sorted'); require('../../../modules/esnext.array.to-spliced'); require('../../../modules/esnext.array.with'); diff --git a/packages/core-js/actual/array/virtual/to-reversed.js b/packages/core-js/actual/array/virtual/to-reversed.js index 025a3c5ba485..43031c32ab18 100644 --- a/packages/core-js/actual/array/virtual/to-reversed.js +++ b/packages/core-js/actual/array/virtual/to-reversed.js @@ -1,6 +1,4 @@ 'use strict'; var parent = require('../../../stable/array/virtual/to-reversed'); -// TODO: Remove from `core-js@4` -require('../../../modules/esnext.array.to-reversed'); module.exports = parent; diff --git a/packages/core-js/modules/esnext.array.to-reversed.js b/packages/core-js/modules/esnext.array.to-reversed.js deleted file mode 100644 index 258a90a87503..000000000000 --- a/packages/core-js/modules/esnext.array.to-reversed.js +++ /dev/null @@ -1,3 +0,0 @@ -'use strict'; -// TODO: Remove from `core-js@4` -require('../modules/es.array.to-reversed'); diff --git a/packages/core-js/proposals/change-array-by-copy-stage-4.js b/packages/core-js/proposals/change-array-by-copy-stage-4.js index d93aa8a0488e..db612d489a41 100644 --- a/packages/core-js/proposals/change-array-by-copy-stage-4.js +++ b/packages/core-js/proposals/change-array-by-copy-stage-4.js @@ -1,6 +1,6 @@ 'use strict'; // https://github.com/tc39/proposal-change-array-by-copy -require('../modules/esnext.array.to-reversed'); +require('../modules/es.array.to-reversed'); require('../modules/esnext.array.to-sorted'); require('../modules/esnext.array.to-spliced'); require('../modules/esnext.array.with'); diff --git a/packages/core-js/proposals/change-array-by-copy.js b/packages/core-js/proposals/change-array-by-copy.js index 02188ee481da..b1d73597b395 100644 --- a/packages/core-js/proposals/change-array-by-copy.js +++ b/packages/core-js/proposals/change-array-by-copy.js @@ -1,6 +1,6 @@ 'use strict'; // https://github.com/tc39/proposal-change-array-by-copy -require('../modules/esnext.array.to-reversed'); +require('../modules/es.array.to-reversed'); require('../modules/esnext.array.to-sorted'); require('../modules/esnext.array.to-spliced'); require('../modules/esnext.array.with'); From 4bead5c9f88a2e925abe00edb1b5b82b0c5c681e Mon Sep 17 00:00:00 2001 From: Denis Pushkarev Date: Tue, 3 Oct 2023 03:55:17 +0700 Subject: [PATCH 011/428] drop `esnext.array.to-sorted` (moved to stable es) --- packages/core-js-compat/src/data.mjs | 3 --- packages/core-js-compat/src/modules-by-versions.mjs | 1 - packages/core-js/actual/array/index.js | 1 - packages/core-js/actual/array/to-sorted.js | 2 -- packages/core-js/actual/array/virtual/index.js | 1 - packages/core-js/actual/array/virtual/to-sorted.js | 2 -- packages/core-js/modules/esnext.array.to-sorted.js | 3 --- packages/core-js/proposals/change-array-by-copy-stage-4.js | 2 +- packages/core-js/proposals/change-array-by-copy.js | 2 +- 9 files changed, 2 insertions(+), 15 deletions(-) delete mode 100644 packages/core-js/modules/esnext.array.to-sorted.js diff --git a/packages/core-js-compat/src/data.mjs b/packages/core-js-compat/src/data.mjs index 0046bc40b76d..e058d6fc1626 100644 --- a/packages/core-js-compat/src/data.mjs +++ b/packages/core-js-compat/src/data.mjs @@ -2405,8 +2405,6 @@ export const data = { 'esnext.array.last-item': { }, // TODO: Remove from `core-js@4` - 'esnext.array.to-sorted': null, - // TODO: Remove from `core-js@4` 'esnext.array.to-spliced': null, 'esnext.array.unique-by': { }, @@ -3119,7 +3117,6 @@ export const renamed = new Map([ ['es.weak-map', 'es.weak-map.constructor'], ['es.weak-set', 'es.weak-set.constructor'], ['esnext.array.from-async', 'es.array.from-async'], - ['esnext.array.to-sorted', 'es.array.to-sorted'], ['esnext.array.to-spliced', 'es.array.to-spliced'], ['esnext.array.with', 'es.array.with'], ['esnext.array-buffer.detached', 'es.array-buffer.detached'], diff --git a/packages/core-js-compat/src/modules-by-versions.mjs b/packages/core-js-compat/src/modules-by-versions.mjs index 69ad552c14a6..828e84b68ca0 100644 --- a/packages/core-js-compat/src/modules-by-versions.mjs +++ b/packages/core-js-compat/src/modules-by-versions.mjs @@ -111,7 +111,6 @@ export default { 'es.aggregate-error.cause', 'es.number.to-exponential', 'esnext.array.group-by-to-map', - 'esnext.array.to-sorted', 'esnext.array.to-spliced', 'esnext.array.with', 'esnext.function.is-callable', diff --git a/packages/core-js/actual/array/index.js b/packages/core-js/actual/array/index.js index f71b3c660555..88af54833696 100644 --- a/packages/core-js/actual/array/index.js +++ b/packages/core-js/actual/array/index.js @@ -6,7 +6,6 @@ require('../../modules/esnext.array.group-to-map'); // TODO: Remove from `core-js@4` require('../../modules/esnext.array.group-by'); require('../../modules/esnext.array.group-by-to-map'); -require('../../modules/esnext.array.to-sorted'); require('../../modules/esnext.array.to-spliced'); require('../../modules/esnext.array.with'); diff --git a/packages/core-js/actual/array/to-sorted.js b/packages/core-js/actual/array/to-sorted.js index 00444f0464e1..59dc5bf17579 100644 --- a/packages/core-js/actual/array/to-sorted.js +++ b/packages/core-js/actual/array/to-sorted.js @@ -1,6 +1,4 @@ 'use strict'; var parent = require('../../stable/array/to-sorted'); -// TODO: Remove from `core-js@4` -require('../../modules/esnext.array.to-sorted'); module.exports = parent; diff --git a/packages/core-js/actual/array/virtual/index.js b/packages/core-js/actual/array/virtual/index.js index 9552b27ca230..8963e3dcc3e2 100644 --- a/packages/core-js/actual/array/virtual/index.js +++ b/packages/core-js/actual/array/virtual/index.js @@ -7,7 +7,6 @@ require('../../../modules/esnext.array.group-to-map'); // TODO: Remove from `core-js@4` require('../../../modules/esnext.array.group-by'); require('../../../modules/esnext.array.group-by-to-map'); -require('../../../modules/esnext.array.to-sorted'); require('../../../modules/esnext.array.to-spliced'); require('../../../modules/esnext.array.with'); diff --git a/packages/core-js/actual/array/virtual/to-sorted.js b/packages/core-js/actual/array/virtual/to-sorted.js index 27c5c968e20b..2400b32e4f5b 100644 --- a/packages/core-js/actual/array/virtual/to-sorted.js +++ b/packages/core-js/actual/array/virtual/to-sorted.js @@ -1,6 +1,4 @@ 'use strict'; var parent = require('../../../stable/array/virtual/to-sorted'); -// TODO: Remove from `core-js@4` -require('../../../modules/esnext.array.to-sorted'); module.exports = parent; diff --git a/packages/core-js/modules/esnext.array.to-sorted.js b/packages/core-js/modules/esnext.array.to-sorted.js deleted file mode 100644 index 4ef39e50fb44..000000000000 --- a/packages/core-js/modules/esnext.array.to-sorted.js +++ /dev/null @@ -1,3 +0,0 @@ -'use strict'; -// TODO: Remove from `core-js@4` -require('../modules/es.array.to-sorted'); diff --git a/packages/core-js/proposals/change-array-by-copy-stage-4.js b/packages/core-js/proposals/change-array-by-copy-stage-4.js index db612d489a41..4e7f76f12182 100644 --- a/packages/core-js/proposals/change-array-by-copy-stage-4.js +++ b/packages/core-js/proposals/change-array-by-copy-stage-4.js @@ -1,7 +1,7 @@ 'use strict'; // https://github.com/tc39/proposal-change-array-by-copy require('../modules/es.array.to-reversed'); -require('../modules/esnext.array.to-sorted'); +require('../modules/es.array.to-sorted'); require('../modules/esnext.array.to-spliced'); require('../modules/esnext.array.with'); require('../modules/esnext.typed-array.to-reversed'); diff --git a/packages/core-js/proposals/change-array-by-copy.js b/packages/core-js/proposals/change-array-by-copy.js index b1d73597b395..957a7557793f 100644 --- a/packages/core-js/proposals/change-array-by-copy.js +++ b/packages/core-js/proposals/change-array-by-copy.js @@ -1,7 +1,7 @@ 'use strict'; // https://github.com/tc39/proposal-change-array-by-copy require('../modules/es.array.to-reversed'); -require('../modules/esnext.array.to-sorted'); +require('../modules/es.array.to-sorted'); require('../modules/esnext.array.to-spliced'); require('../modules/esnext.array.with'); require('../modules/esnext.typed-array.to-reversed'); From 24e5c455ce0b254a4b356071708005f9f70553d2 Mon Sep 17 00:00:00 2001 From: Denis Pushkarev Date: Tue, 3 Oct 2023 04:03:24 +0700 Subject: [PATCH 012/428] drop `esnext.array.to-spliced` (moved to stable es) --- packages/core-js-compat/src/data.mjs | 3 --- packages/core-js-compat/src/modules-by-versions.mjs | 1 - packages/core-js/actual/array/index.js | 1 - packages/core-js/actual/array/to-spliced.js | 2 -- packages/core-js/actual/array/virtual/index.js | 1 - packages/core-js/actual/array/virtual/to-spliced.js | 2 -- packages/core-js/modules/esnext.array.to-spliced.js | 3 --- packages/core-js/proposals/change-array-by-copy-stage-4.js | 2 +- packages/core-js/proposals/change-array-by-copy.js | 2 +- 9 files changed, 2 insertions(+), 15 deletions(-) delete mode 100644 packages/core-js/modules/esnext.array.to-spliced.js diff --git a/packages/core-js-compat/src/data.mjs b/packages/core-js-compat/src/data.mjs index e058d6fc1626..7ba3872a16ab 100644 --- a/packages/core-js-compat/src/data.mjs +++ b/packages/core-js-compat/src/data.mjs @@ -2404,8 +2404,6 @@ export const data = { // TODO: Remove from `core-js@4` 'esnext.array.last-item': { }, - // TODO: Remove from `core-js@4` - 'esnext.array.to-spliced': null, 'esnext.array.unique-by': { }, // TODO: Remove from `core-js@4` @@ -3117,7 +3115,6 @@ export const renamed = new Map([ ['es.weak-map', 'es.weak-map.constructor'], ['es.weak-set', 'es.weak-set.constructor'], ['esnext.array.from-async', 'es.array.from-async'], - ['esnext.array.to-spliced', 'es.array.to-spliced'], ['esnext.array.with', 'es.array.with'], ['esnext.array-buffer.detached', 'es.array-buffer.detached'], ['esnext.array-buffer.transfer', 'es.array-buffer.transfer'], diff --git a/packages/core-js-compat/src/modules-by-versions.mjs b/packages/core-js-compat/src/modules-by-versions.mjs index 828e84b68ca0..f3845a54a11a 100644 --- a/packages/core-js-compat/src/modules-by-versions.mjs +++ b/packages/core-js-compat/src/modules-by-versions.mjs @@ -111,7 +111,6 @@ export default { 'es.aggregate-error.cause', 'es.number.to-exponential', 'esnext.array.group-by-to-map', - 'esnext.array.to-spliced', 'esnext.array.with', 'esnext.function.is-callable', 'esnext.function.is-constructor', diff --git a/packages/core-js/actual/array/index.js b/packages/core-js/actual/array/index.js index 88af54833696..66d079bfa205 100644 --- a/packages/core-js/actual/array/index.js +++ b/packages/core-js/actual/array/index.js @@ -6,7 +6,6 @@ require('../../modules/esnext.array.group-to-map'); // TODO: Remove from `core-js@4` require('../../modules/esnext.array.group-by'); require('../../modules/esnext.array.group-by-to-map'); -require('../../modules/esnext.array.to-spliced'); require('../../modules/esnext.array.with'); module.exports = parent; diff --git a/packages/core-js/actual/array/to-spliced.js b/packages/core-js/actual/array/to-spliced.js index 18fea6928ba5..8ac41c0874b3 100644 --- a/packages/core-js/actual/array/to-spliced.js +++ b/packages/core-js/actual/array/to-spliced.js @@ -1,6 +1,4 @@ 'use strict'; var parent = require('../../stable/array/to-spliced'); -// TODO: Remove from `core-js@4` -require('../../modules/esnext.array.to-spliced'); module.exports = parent; diff --git a/packages/core-js/actual/array/virtual/index.js b/packages/core-js/actual/array/virtual/index.js index 8963e3dcc3e2..36a34bef0047 100644 --- a/packages/core-js/actual/array/virtual/index.js +++ b/packages/core-js/actual/array/virtual/index.js @@ -7,7 +7,6 @@ require('../../../modules/esnext.array.group-to-map'); // TODO: Remove from `core-js@4` require('../../../modules/esnext.array.group-by'); require('../../../modules/esnext.array.group-by-to-map'); -require('../../../modules/esnext.array.to-spliced'); require('../../../modules/esnext.array.with'); module.exports = parent; diff --git a/packages/core-js/actual/array/virtual/to-spliced.js b/packages/core-js/actual/array/virtual/to-spliced.js index a6da4dad764d..a3770641c79d 100644 --- a/packages/core-js/actual/array/virtual/to-spliced.js +++ b/packages/core-js/actual/array/virtual/to-spliced.js @@ -1,6 +1,4 @@ 'use strict'; var parent = require('../../../stable/array/virtual/to-spliced'); -// TODO: Remove from `core-js@4` -require('../../../modules/esnext.array.to-spliced'); module.exports = parent; diff --git a/packages/core-js/modules/esnext.array.to-spliced.js b/packages/core-js/modules/esnext.array.to-spliced.js deleted file mode 100644 index f8d18fb7cfe5..000000000000 --- a/packages/core-js/modules/esnext.array.to-spliced.js +++ /dev/null @@ -1,3 +0,0 @@ -'use strict'; -// TODO: Remove from `core-js@4` -require('../modules/es.array.to-spliced'); diff --git a/packages/core-js/proposals/change-array-by-copy-stage-4.js b/packages/core-js/proposals/change-array-by-copy-stage-4.js index 4e7f76f12182..17e139a001da 100644 --- a/packages/core-js/proposals/change-array-by-copy-stage-4.js +++ b/packages/core-js/proposals/change-array-by-copy-stage-4.js @@ -2,7 +2,7 @@ // https://github.com/tc39/proposal-change-array-by-copy require('../modules/es.array.to-reversed'); require('../modules/es.array.to-sorted'); -require('../modules/esnext.array.to-spliced'); +require('../modules/es.array.to-spliced'); require('../modules/esnext.array.with'); require('../modules/esnext.typed-array.to-reversed'); require('../modules/esnext.typed-array.to-sorted'); diff --git a/packages/core-js/proposals/change-array-by-copy.js b/packages/core-js/proposals/change-array-by-copy.js index 957a7557793f..324d4affe110 100644 --- a/packages/core-js/proposals/change-array-by-copy.js +++ b/packages/core-js/proposals/change-array-by-copy.js @@ -2,7 +2,7 @@ // https://github.com/tc39/proposal-change-array-by-copy require('../modules/es.array.to-reversed'); require('../modules/es.array.to-sorted'); -require('../modules/esnext.array.to-spliced'); +require('../modules/es.array.to-spliced'); require('../modules/esnext.array.with'); require('../modules/esnext.typed-array.to-reversed'); require('../modules/esnext.typed-array.to-sorted'); From 89acf0733168a1d15d0d3194de0a0de473b51f96 Mon Sep 17 00:00:00 2001 From: Denis Pushkarev Date: Tue, 3 Oct 2023 04:08:58 +0700 Subject: [PATCH 013/428] drop `esnext.array.with` (moved to stable es) --- packages/core-js-compat/src/data.mjs | 3 --- packages/core-js-compat/src/modules-by-versions.mjs | 1 - packages/core-js/actual/array/index.js | 1 - packages/core-js/actual/array/virtual/index.js | 1 - packages/core-js/actual/array/virtual/with.js | 2 -- packages/core-js/actual/array/with.js | 2 -- packages/core-js/modules/esnext.array.with.js | 3 --- packages/core-js/proposals/change-array-by-copy-stage-4.js | 2 +- packages/core-js/proposals/change-array-by-copy.js | 2 +- 9 files changed, 2 insertions(+), 15 deletions(-) delete mode 100644 packages/core-js/modules/esnext.array.with.js diff --git a/packages/core-js-compat/src/data.mjs b/packages/core-js-compat/src/data.mjs index 7ba3872a16ab..236b639893fe 100644 --- a/packages/core-js-compat/src/data.mjs +++ b/packages/core-js-compat/src/data.mjs @@ -2407,8 +2407,6 @@ export const data = { 'esnext.array.unique-by': { }, // TODO: Remove from `core-js@4` - 'esnext.array.with': null, - // TODO: Remove from `core-js@4` 'esnext.array-buffer.detached': null, // TODO: Remove from `core-js@4` 'esnext.array-buffer.transfer': null, @@ -3115,7 +3113,6 @@ export const renamed = new Map([ ['es.weak-map', 'es.weak-map.constructor'], ['es.weak-set', 'es.weak-set.constructor'], ['esnext.array.from-async', 'es.array.from-async'], - ['esnext.array.with', 'es.array.with'], ['esnext.array-buffer.detached', 'es.array-buffer.detached'], ['esnext.array-buffer.transfer', 'es.array-buffer.transfer'], ['esnext.array-buffer.transfer-to-fixed-length', 'es.array-buffer.transfer-to-fixed-length'], diff --git a/packages/core-js-compat/src/modules-by-versions.mjs b/packages/core-js-compat/src/modules-by-versions.mjs index f3845a54a11a..de7fc858d3c0 100644 --- a/packages/core-js-compat/src/modules-by-versions.mjs +++ b/packages/core-js-compat/src/modules-by-versions.mjs @@ -111,7 +111,6 @@ export default { 'es.aggregate-error.cause', 'es.number.to-exponential', 'esnext.array.group-by-to-map', - 'esnext.array.with', 'esnext.function.is-callable', 'esnext.function.is-constructor', 'esnext.function.un-this', diff --git a/packages/core-js/actual/array/index.js b/packages/core-js/actual/array/index.js index 66d079bfa205..7dad994d8c36 100644 --- a/packages/core-js/actual/array/index.js +++ b/packages/core-js/actual/array/index.js @@ -6,6 +6,5 @@ require('../../modules/esnext.array.group-to-map'); // TODO: Remove from `core-js@4` require('../../modules/esnext.array.group-by'); require('../../modules/esnext.array.group-by-to-map'); -require('../../modules/esnext.array.with'); module.exports = parent; diff --git a/packages/core-js/actual/array/virtual/index.js b/packages/core-js/actual/array/virtual/index.js index 36a34bef0047..ef744138a776 100644 --- a/packages/core-js/actual/array/virtual/index.js +++ b/packages/core-js/actual/array/virtual/index.js @@ -7,6 +7,5 @@ require('../../../modules/esnext.array.group-to-map'); // TODO: Remove from `core-js@4` require('../../../modules/esnext.array.group-by'); require('../../../modules/esnext.array.group-by-to-map'); -require('../../../modules/esnext.array.with'); module.exports = parent; diff --git a/packages/core-js/actual/array/virtual/with.js b/packages/core-js/actual/array/virtual/with.js index ab70a39c7945..eaac4b1bf54e 100644 --- a/packages/core-js/actual/array/virtual/with.js +++ b/packages/core-js/actual/array/virtual/with.js @@ -1,6 +1,4 @@ 'use strict'; var parent = require('../../../stable/array/virtual/with'); -// TODO: Remove from `core-js@4` -require('../../../modules/esnext.array.with'); module.exports = parent; diff --git a/packages/core-js/actual/array/with.js b/packages/core-js/actual/array/with.js index 324e998d1922..1a12862169c5 100644 --- a/packages/core-js/actual/array/with.js +++ b/packages/core-js/actual/array/with.js @@ -1,6 +1,4 @@ 'use strict'; var parent = require('../../stable/array/with'); -// TODO: Remove from `core-js@4` -require('../../modules/esnext.array.with'); module.exports = parent; diff --git a/packages/core-js/modules/esnext.array.with.js b/packages/core-js/modules/esnext.array.with.js deleted file mode 100644 index a1e20a1711fe..000000000000 --- a/packages/core-js/modules/esnext.array.with.js +++ /dev/null @@ -1,3 +0,0 @@ -'use strict'; -// TODO: Remove from `core-js@4` -require('../modules/es.array.with'); diff --git a/packages/core-js/proposals/change-array-by-copy-stage-4.js b/packages/core-js/proposals/change-array-by-copy-stage-4.js index 17e139a001da..a2fa413639e1 100644 --- a/packages/core-js/proposals/change-array-by-copy-stage-4.js +++ b/packages/core-js/proposals/change-array-by-copy-stage-4.js @@ -3,7 +3,7 @@ require('../modules/es.array.to-reversed'); require('../modules/es.array.to-sorted'); require('../modules/es.array.to-spliced'); -require('../modules/esnext.array.with'); +require('../modules/es.array.with'); require('../modules/esnext.typed-array.to-reversed'); require('../modules/esnext.typed-array.to-sorted'); require('../modules/esnext.typed-array.with'); diff --git a/packages/core-js/proposals/change-array-by-copy.js b/packages/core-js/proposals/change-array-by-copy.js index 324d4affe110..693a4c3584ee 100644 --- a/packages/core-js/proposals/change-array-by-copy.js +++ b/packages/core-js/proposals/change-array-by-copy.js @@ -3,7 +3,7 @@ require('../modules/es.array.to-reversed'); require('../modules/es.array.to-sorted'); require('../modules/es.array.to-spliced'); -require('../modules/esnext.array.with'); +require('../modules/es.array.with'); require('../modules/esnext.typed-array.to-reversed'); require('../modules/esnext.typed-array.to-sorted'); // TODO: Remove from `core-js@4` From 96bb729483457c8d6737ad3c87b9b8616b366c60 Mon Sep 17 00:00:00 2001 From: Denis Pushkarev Date: Tue, 3 Oct 2023 04:15:28 +0700 Subject: [PATCH 014/428] drop `esnext.typed-array.to-reversed` (moved to stable es) --- packages/core-js-compat/src/data.mjs | 3 --- packages/core-js-compat/src/modules-by-versions.mjs | 1 - packages/core-js/actual/typed-array/index.js | 1 - packages/core-js/actual/typed-array/methods.js | 1 - packages/core-js/actual/typed-array/to-reversed.js | 2 -- packages/core-js/modules/esnext.typed-array.to-reversed.js | 3 --- packages/core-js/proposals/change-array-by-copy-stage-4.js | 2 +- packages/core-js/proposals/change-array-by-copy.js | 2 +- 8 files changed, 2 insertions(+), 13 deletions(-) delete mode 100644 packages/core-js/modules/esnext.typed-array.to-reversed.js diff --git a/packages/core-js-compat/src/data.mjs b/packages/core-js-compat/src/data.mjs index 236b639893fe..5e117548eae8 100644 --- a/packages/core-js-compat/src/data.mjs +++ b/packages/core-js-compat/src/data.mjs @@ -2818,8 +2818,6 @@ export const data = { 'esnext.typed-array.group-by': { }, // TODO: Remove from `core-js@4` - 'esnext.typed-array.to-reversed': null, - // TODO: Remove from `core-js@4` 'esnext.typed-array.to-sorted': null, // TODO: Remove from `core-js@4` 'esnext.typed-array.to-spliced': { @@ -3159,7 +3157,6 @@ export const renamed = new Map([ ['esnext.suppressed-error.constructor', 'es.suppressed-error.constructor'], ['esnext.symbol.async-dispose', 'es.symbol.async-dispose'], ['esnext.symbol.dispose', 'es.symbol.dispose'], - ['esnext.typed-array.to-reversed', 'es.typed-array.to-reversed'], ['esnext.typed-array.to-sorted', 'es.typed-array.to-sorted'], ['esnext.typed-array.with', 'es.typed-array.with'], ['esnext.uint8-array.from-base64', 'es.uint8-array.from-base64'], diff --git a/packages/core-js-compat/src/modules-by-versions.mjs b/packages/core-js-compat/src/modules-by-versions.mjs index de7fc858d3c0..926d1369862f 100644 --- a/packages/core-js-compat/src/modules-by-versions.mjs +++ b/packages/core-js-compat/src/modules-by-versions.mjs @@ -116,7 +116,6 @@ export default { 'esnext.function.un-this', 'esnext.iterator.to-async', 'esnext.string.cooked', - 'esnext.typed-array.to-reversed', 'esnext.typed-array.to-sorted', 'esnext.typed-array.to-spliced', 'esnext.typed-array.with', diff --git a/packages/core-js/actual/typed-array/index.js b/packages/core-js/actual/typed-array/index.js index f265c3287dd9..349a5cc3caab 100644 --- a/packages/core-js/actual/typed-array/index.js +++ b/packages/core-js/actual/typed-array/index.js @@ -7,7 +7,6 @@ require('../../modules/esnext.uint8-array.set-from-base64'); require('../../modules/esnext.uint8-array.set-from-hex'); require('../../modules/esnext.uint8-array.to-base64'); require('../../modules/esnext.uint8-array.to-hex'); -require('../../modules/esnext.typed-array.to-reversed'); require('../../modules/esnext.typed-array.to-sorted'); require('../../modules/esnext.typed-array.to-spliced'); require('../../modules/esnext.typed-array.with'); diff --git a/packages/core-js/actual/typed-array/methods.js b/packages/core-js/actual/typed-array/methods.js index 0cc85de31de8..b2c8ac470935 100644 --- a/packages/core-js/actual/typed-array/methods.js +++ b/packages/core-js/actual/typed-array/methods.js @@ -7,7 +7,6 @@ require('../../modules/esnext.uint8-array.set-from-hex'); require('../../modules/esnext.uint8-array.to-base64'); require('../../modules/esnext.uint8-array.to-hex'); // TODO: Remove from `core-js@4` -require('../../modules/esnext.typed-array.to-reversed'); require('../../modules/esnext.typed-array.to-sorted'); require('../../modules/esnext.typed-array.to-spliced'); require('../../modules/esnext.typed-array.with'); diff --git a/packages/core-js/actual/typed-array/to-reversed.js b/packages/core-js/actual/typed-array/to-reversed.js index 81a473bc7f15..09f490f3c226 100644 --- a/packages/core-js/actual/typed-array/to-reversed.js +++ b/packages/core-js/actual/typed-array/to-reversed.js @@ -1,6 +1,4 @@ 'use strict'; var parent = require('../../stable/typed-array/to-reversed'); -// TODO: Remove from `core-js@4` -require('../../modules/esnext.typed-array.to-reversed'); module.exports = parent; diff --git a/packages/core-js/modules/esnext.typed-array.to-reversed.js b/packages/core-js/modules/esnext.typed-array.to-reversed.js deleted file mode 100644 index ba5bcd554f10..000000000000 --- a/packages/core-js/modules/esnext.typed-array.to-reversed.js +++ /dev/null @@ -1,3 +0,0 @@ -'use strict'; -// TODO: Remove from `core-js@4` -require('../modules/es.typed-array.to-reversed'); diff --git a/packages/core-js/proposals/change-array-by-copy-stage-4.js b/packages/core-js/proposals/change-array-by-copy-stage-4.js index a2fa413639e1..d90644e063e0 100644 --- a/packages/core-js/proposals/change-array-by-copy-stage-4.js +++ b/packages/core-js/proposals/change-array-by-copy-stage-4.js @@ -4,6 +4,6 @@ require('../modules/es.array.to-reversed'); require('../modules/es.array.to-sorted'); require('../modules/es.array.to-spliced'); require('../modules/es.array.with'); -require('../modules/esnext.typed-array.to-reversed'); +require('../modules/es.typed-array.to-reversed'); require('../modules/esnext.typed-array.to-sorted'); require('../modules/esnext.typed-array.with'); diff --git a/packages/core-js/proposals/change-array-by-copy.js b/packages/core-js/proposals/change-array-by-copy.js index 693a4c3584ee..214daf3c2ced 100644 --- a/packages/core-js/proposals/change-array-by-copy.js +++ b/packages/core-js/proposals/change-array-by-copy.js @@ -4,7 +4,7 @@ require('../modules/es.array.to-reversed'); require('../modules/es.array.to-sorted'); require('../modules/es.array.to-spliced'); require('../modules/es.array.with'); -require('../modules/esnext.typed-array.to-reversed'); +require('../modules/es.typed-array.to-reversed'); require('../modules/esnext.typed-array.to-sorted'); // TODO: Remove from `core-js@4` require('../modules/esnext.typed-array.to-spliced'); From 0f7b878b600c19148461406120dd31c94ae51ef3 Mon Sep 17 00:00:00 2001 From: Denis Pushkarev Date: Tue, 3 Oct 2023 04:21:30 +0700 Subject: [PATCH 015/428] drop `esnext.typed-array.to-sorted` (moved to stable es) --- packages/core-js-compat/src/data.mjs | 3 --- packages/core-js-compat/src/modules-by-versions.mjs | 1 - packages/core-js/actual/typed-array/index.js | 1 - packages/core-js/actual/typed-array/methods.js | 1 - packages/core-js/actual/typed-array/to-sorted.js | 2 -- packages/core-js/modules/esnext.typed-array.to-sorted.js | 3 --- packages/core-js/proposals/change-array-by-copy-stage-4.js | 2 +- packages/core-js/proposals/change-array-by-copy.js | 2 +- 8 files changed, 2 insertions(+), 13 deletions(-) delete mode 100644 packages/core-js/modules/esnext.typed-array.to-sorted.js diff --git a/packages/core-js-compat/src/data.mjs b/packages/core-js-compat/src/data.mjs index 5e117548eae8..347492fc04cb 100644 --- a/packages/core-js-compat/src/data.mjs +++ b/packages/core-js-compat/src/data.mjs @@ -2818,8 +2818,6 @@ export const data = { 'esnext.typed-array.group-by': { }, // TODO: Remove from `core-js@4` - 'esnext.typed-array.to-sorted': null, - // TODO: Remove from `core-js@4` 'esnext.typed-array.to-spliced': { }, 'esnext.typed-array.unique-by': { @@ -3157,7 +3155,6 @@ export const renamed = new Map([ ['esnext.suppressed-error.constructor', 'es.suppressed-error.constructor'], ['esnext.symbol.async-dispose', 'es.symbol.async-dispose'], ['esnext.symbol.dispose', 'es.symbol.dispose'], - ['esnext.typed-array.to-sorted', 'es.typed-array.to-sorted'], ['esnext.typed-array.with', 'es.typed-array.with'], ['esnext.uint8-array.from-base64', 'es.uint8-array.from-base64'], ['esnext.uint8-array.from-hex', 'es.uint8-array.from-hex'], diff --git a/packages/core-js-compat/src/modules-by-versions.mjs b/packages/core-js-compat/src/modules-by-versions.mjs index 926d1369862f..ba22f4594723 100644 --- a/packages/core-js-compat/src/modules-by-versions.mjs +++ b/packages/core-js-compat/src/modules-by-versions.mjs @@ -116,7 +116,6 @@ export default { 'esnext.function.un-this', 'esnext.iterator.to-async', 'esnext.string.cooked', - 'esnext.typed-array.to-sorted', 'esnext.typed-array.to-spliced', 'esnext.typed-array.with', 'web.dom-exception.constructor', diff --git a/packages/core-js/actual/typed-array/index.js b/packages/core-js/actual/typed-array/index.js index 349a5cc3caab..a81d0ea73a32 100644 --- a/packages/core-js/actual/typed-array/index.js +++ b/packages/core-js/actual/typed-array/index.js @@ -7,7 +7,6 @@ require('../../modules/esnext.uint8-array.set-from-base64'); require('../../modules/esnext.uint8-array.set-from-hex'); require('../../modules/esnext.uint8-array.to-base64'); require('../../modules/esnext.uint8-array.to-hex'); -require('../../modules/esnext.typed-array.to-sorted'); require('../../modules/esnext.typed-array.to-spliced'); require('../../modules/esnext.typed-array.with'); diff --git a/packages/core-js/actual/typed-array/methods.js b/packages/core-js/actual/typed-array/methods.js index b2c8ac470935..6e502b17eae7 100644 --- a/packages/core-js/actual/typed-array/methods.js +++ b/packages/core-js/actual/typed-array/methods.js @@ -7,7 +7,6 @@ require('../../modules/esnext.uint8-array.set-from-hex'); require('../../modules/esnext.uint8-array.to-base64'); require('../../modules/esnext.uint8-array.to-hex'); // TODO: Remove from `core-js@4` -require('../../modules/esnext.typed-array.to-sorted'); require('../../modules/esnext.typed-array.to-spliced'); require('../../modules/esnext.typed-array.with'); diff --git a/packages/core-js/actual/typed-array/to-sorted.js b/packages/core-js/actual/typed-array/to-sorted.js index fd51ddfa0ded..3fa15b4d3c71 100644 --- a/packages/core-js/actual/typed-array/to-sorted.js +++ b/packages/core-js/actual/typed-array/to-sorted.js @@ -1,6 +1,4 @@ 'use strict'; var parent = require('../../stable/typed-array/to-sorted'); -// TODO: Remove from `core-js@4` -require('../../modules/esnext.typed-array.to-sorted'); module.exports = parent; diff --git a/packages/core-js/modules/esnext.typed-array.to-sorted.js b/packages/core-js/modules/esnext.typed-array.to-sorted.js deleted file mode 100644 index c38f3b8d3120..000000000000 --- a/packages/core-js/modules/esnext.typed-array.to-sorted.js +++ /dev/null @@ -1,3 +0,0 @@ -'use strict'; -// TODO: Remove from `core-js@4` -require('../modules/es.typed-array.to-sorted'); diff --git a/packages/core-js/proposals/change-array-by-copy-stage-4.js b/packages/core-js/proposals/change-array-by-copy-stage-4.js index d90644e063e0..9919eb26506b 100644 --- a/packages/core-js/proposals/change-array-by-copy-stage-4.js +++ b/packages/core-js/proposals/change-array-by-copy-stage-4.js @@ -5,5 +5,5 @@ require('../modules/es.array.to-sorted'); require('../modules/es.array.to-spliced'); require('../modules/es.array.with'); require('../modules/es.typed-array.to-reversed'); -require('../modules/esnext.typed-array.to-sorted'); +require('../modules/es.typed-array.to-sorted'); require('../modules/esnext.typed-array.with'); diff --git a/packages/core-js/proposals/change-array-by-copy.js b/packages/core-js/proposals/change-array-by-copy.js index 214daf3c2ced..f3e4236f7d2c 100644 --- a/packages/core-js/proposals/change-array-by-copy.js +++ b/packages/core-js/proposals/change-array-by-copy.js @@ -5,7 +5,7 @@ require('../modules/es.array.to-sorted'); require('../modules/es.array.to-spliced'); require('../modules/es.array.with'); require('../modules/es.typed-array.to-reversed'); -require('../modules/esnext.typed-array.to-sorted'); +require('../modules/es.typed-array.to-sorted'); // TODO: Remove from `core-js@4` require('../modules/esnext.typed-array.to-spliced'); require('../modules/esnext.typed-array.with'); From 5e6f608068f97210ba959198ee739beceb342275 Mon Sep 17 00:00:00 2001 From: Denis Pushkarev Date: Tue, 3 Oct 2023 04:27:16 +0700 Subject: [PATCH 016/428] drop `esnext.typed-array.with` (moved to stable es) --- packages/core-js-compat/src/data.mjs | 3 --- packages/core-js-compat/src/modules-by-versions.mjs | 1 - packages/core-js/actual/typed-array/index.js | 1 - packages/core-js/actual/typed-array/methods.js | 1 - packages/core-js/actual/typed-array/with.js | 2 -- packages/core-js/modules/esnext.typed-array.with.js | 3 --- packages/core-js/proposals/change-array-by-copy-stage-4.js | 2 +- packages/core-js/proposals/change-array-by-copy.js | 2 +- 8 files changed, 2 insertions(+), 13 deletions(-) delete mode 100644 packages/core-js/modules/esnext.typed-array.with.js diff --git a/packages/core-js-compat/src/data.mjs b/packages/core-js-compat/src/data.mjs index 347492fc04cb..441a4f24a8d4 100644 --- a/packages/core-js-compat/src/data.mjs +++ b/packages/core-js-compat/src/data.mjs @@ -2823,8 +2823,6 @@ export const data = { 'esnext.typed-array.unique-by': { }, // TODO: Remove from `core-js@4` - 'esnext.typed-array.with': null, - // TODO: Remove from `core-js@4` 'esnext.uint8-array.from-base64': null, // TODO: Remove from `core-js@4` 'esnext.uint8-array.from-hex': null, @@ -3155,7 +3153,6 @@ export const renamed = new Map([ ['esnext.suppressed-error.constructor', 'es.suppressed-error.constructor'], ['esnext.symbol.async-dispose', 'es.symbol.async-dispose'], ['esnext.symbol.dispose', 'es.symbol.dispose'], - ['esnext.typed-array.with', 'es.typed-array.with'], ['esnext.uint8-array.from-base64', 'es.uint8-array.from-base64'], ['esnext.uint8-array.from-hex', 'es.uint8-array.from-hex'], ['esnext.uint8-array.set-from-base64', 'es.uint8-array.set-from-base64'], diff --git a/packages/core-js-compat/src/modules-by-versions.mjs b/packages/core-js-compat/src/modules-by-versions.mjs index ba22f4594723..946474719893 100644 --- a/packages/core-js-compat/src/modules-by-versions.mjs +++ b/packages/core-js-compat/src/modules-by-versions.mjs @@ -117,7 +117,6 @@ export default { 'esnext.iterator.to-async', 'esnext.string.cooked', 'esnext.typed-array.to-spliced', - 'esnext.typed-array.with', 'web.dom-exception.constructor', 'web.dom-exception.stack', 'web.dom-exception.to-string-tag', diff --git a/packages/core-js/actual/typed-array/index.js b/packages/core-js/actual/typed-array/index.js index a81d0ea73a32..849a8e4e5c3f 100644 --- a/packages/core-js/actual/typed-array/index.js +++ b/packages/core-js/actual/typed-array/index.js @@ -8,6 +8,5 @@ require('../../modules/esnext.uint8-array.set-from-hex'); require('../../modules/esnext.uint8-array.to-base64'); require('../../modules/esnext.uint8-array.to-hex'); require('../../modules/esnext.typed-array.to-spliced'); -require('../../modules/esnext.typed-array.with'); module.exports = parent; diff --git a/packages/core-js/actual/typed-array/methods.js b/packages/core-js/actual/typed-array/methods.js index 6e502b17eae7..94757248f3f4 100644 --- a/packages/core-js/actual/typed-array/methods.js +++ b/packages/core-js/actual/typed-array/methods.js @@ -8,6 +8,5 @@ require('../../modules/esnext.uint8-array.to-base64'); require('../../modules/esnext.uint8-array.to-hex'); // TODO: Remove from `core-js@4` require('../../modules/esnext.typed-array.to-spliced'); -require('../../modules/esnext.typed-array.with'); module.exports = parent; diff --git a/packages/core-js/actual/typed-array/with.js b/packages/core-js/actual/typed-array/with.js index 080d19dcb433..eccec21a6b60 100644 --- a/packages/core-js/actual/typed-array/with.js +++ b/packages/core-js/actual/typed-array/with.js @@ -1,6 +1,4 @@ 'use strict'; var parent = require('../../stable/typed-array/with'); -// TODO: Remove from `core-js@4` -require('../../modules/esnext.typed-array.with'); module.exports = parent; diff --git a/packages/core-js/modules/esnext.typed-array.with.js b/packages/core-js/modules/esnext.typed-array.with.js deleted file mode 100644 index 14bc75c8c9d7..000000000000 --- a/packages/core-js/modules/esnext.typed-array.with.js +++ /dev/null @@ -1,3 +0,0 @@ -'use strict'; -// TODO: Remove from `core-js@4` -require('../modules/es.typed-array.with'); diff --git a/packages/core-js/proposals/change-array-by-copy-stage-4.js b/packages/core-js/proposals/change-array-by-copy-stage-4.js index 9919eb26506b..7e12d6b5ea99 100644 --- a/packages/core-js/proposals/change-array-by-copy-stage-4.js +++ b/packages/core-js/proposals/change-array-by-copy-stage-4.js @@ -6,4 +6,4 @@ require('../modules/es.array.to-spliced'); require('../modules/es.array.with'); require('../modules/es.typed-array.to-reversed'); require('../modules/es.typed-array.to-sorted'); -require('../modules/esnext.typed-array.with'); +require('../modules/es.typed-array.with'); diff --git a/packages/core-js/proposals/change-array-by-copy.js b/packages/core-js/proposals/change-array-by-copy.js index f3e4236f7d2c..3c56bf576c3e 100644 --- a/packages/core-js/proposals/change-array-by-copy.js +++ b/packages/core-js/proposals/change-array-by-copy.js @@ -8,4 +8,4 @@ require('../modules/es.typed-array.to-reversed'); require('../modules/es.typed-array.to-sorted'); // TODO: Remove from `core-js@4` require('../modules/esnext.typed-array.to-spliced'); -require('../modules/esnext.typed-array.with'); +require('../modules/es.typed-array.with'); From 3b456f0ef0a440a4e79555c41da99ff6ac7043d9 Mon Sep 17 00:00:00 2001 From: Denis Pushkarev Date: Tue, 3 Oct 2023 04:34:01 +0700 Subject: [PATCH 017/428] drop `esnext.global-this` (moved to stable es) --- packages/core-js-compat/src/data.mjs | 3 --- packages/core-js/full/global-this.js | 3 --- packages/core-js/modules/esnext.global-this.js | 3 --- packages/core-js/proposals/global-this.js | 2 +- 4 files changed, 1 insertion(+), 10 deletions(-) delete mode 100644 packages/core-js/modules/esnext.global-this.js diff --git a/packages/core-js-compat/src/data.mjs b/packages/core-js-compat/src/data.mjs index 441a4f24a8d4..8de5445bb657 100644 --- a/packages/core-js-compat/src/data.mjs +++ b/packages/core-js-compat/src/data.mjs @@ -2478,8 +2478,6 @@ export const data = { 'esnext.function.un-this': { }, // TODO: Remove from `core-js@4` - 'esnext.global-this': null, - // TODO: Remove from `core-js@4` 'esnext.iterator.constructor': null, // TODO: Remove from `core-js@4` 'esnext.iterator.as-indexed-pairs': { @@ -3116,7 +3114,6 @@ export const renamed = new Map([ ['esnext.data-view.set-float16', 'es.data-view.set-float16'], ['esnext.disposable-stack.constructor', 'es.disposable-stack.constructor'], ['esnext.error.is-error', 'es.error.is-error'], - ['esnext.global-this', 'es.global-this'], ['esnext.iterator.constructor', 'es.iterator.constructor'], ['esnext.iterator.dispose', 'es.iterator.dispose'], ['esnext.iterator.drop', 'es.iterator.drop'], diff --git a/packages/core-js/full/global-this.js b/packages/core-js/full/global-this.js index fd3dec9bdd84..d27e0e3e0c7d 100644 --- a/packages/core-js/full/global-this.js +++ b/packages/core-js/full/global-this.js @@ -1,7 +1,4 @@ 'use strict'; -// TODO: remove from `core-js@4` -require('../modules/esnext.global-this'); - var parent = require('../actual/global-this'); module.exports = parent; diff --git a/packages/core-js/modules/esnext.global-this.js b/packages/core-js/modules/esnext.global-this.js deleted file mode 100644 index 1115dfa30cf0..000000000000 --- a/packages/core-js/modules/esnext.global-this.js +++ /dev/null @@ -1,3 +0,0 @@ -'use strict'; -// TODO: Remove from `core-js@4` -require('../modules/es.global-this'); diff --git a/packages/core-js/proposals/global-this.js b/packages/core-js/proposals/global-this.js index aa3a21007473..86687fe6c46a 100644 --- a/packages/core-js/proposals/global-this.js +++ b/packages/core-js/proposals/global-this.js @@ -1,6 +1,6 @@ 'use strict'; // https://github.com/tc39/proposal-global -require('../modules/esnext.global-this'); +require('../modules/es.global-this'); var globalThis = require('../internals/global-this'); module.exports = globalThis; From eb019082ea2ef05b700d22f5c42a094ac3dc8bd1 Mon Sep 17 00:00:00 2001 From: Denis Pushkarev Date: Tue, 3 Oct 2023 04:39:23 +0700 Subject: [PATCH 018/428] drop `esnext.object.has-own` (moved to stable es) --- packages/core-js-compat/src/data.mjs | 3 --- packages/core-js-compat/src/modules-by-versions.mjs | 3 --- packages/core-js/full/object/has-own.js | 3 --- packages/core-js/full/object/index.js | 1 - packages/core-js/modules/esnext.object.has-own.js | 3 --- packages/core-js/proposals/accessible-object-hasownproperty.js | 2 +- 6 files changed, 1 insertion(+), 14 deletions(-) delete mode 100644 packages/core-js/modules/esnext.object.has-own.js diff --git a/packages/core-js-compat/src/data.mjs b/packages/core-js-compat/src/data.mjs index 8de5445bb657..b115c68996eb 100644 --- a/packages/core-js-compat/src/data.mjs +++ b/packages/core-js-compat/src/data.mjs @@ -2642,8 +2642,6 @@ export const data = { 'esnext.number.range': { }, // TODO: Remove from `core-js@4` - 'esnext.object.has-own': null, - // TODO: Remove from `core-js@4` 'esnext.object.iterate-entries': { }, // TODO: Remove from `core-js@4` @@ -3131,7 +3129,6 @@ export const renamed = new Map([ ['esnext.map.group-by', 'es.map.group-by'], ['esnext.math.f16round', 'es.math.f16round'], ['esnext.math.sum-precise', 'es.math.sum-precise'], - ['esnext.object.has-own', 'es.object.has-own'], ['esnext.object.group-by', 'es.object.group-by'], ['esnext.promise.try', 'es.promise.try'], ['esnext.promise.with-resolvers', 'es.promise.with-resolvers'], diff --git a/packages/core-js-compat/src/modules-by-versions.mjs b/packages/core-js-compat/src/modules-by-versions.mjs index 946474719893..b7643271b380 100644 --- a/packages/core-js-compat/src/modules-by-versions.mjs +++ b/packages/core-js-compat/src/modules-by-versions.mjs @@ -73,9 +73,6 @@ export default { 3.9: [ 'esnext.typed-array.unique-by', ], - 3.11: [ - 'esnext.object.has-own', - ], 3.12: [ 'esnext.symbol.matcher', 'esnext.symbol.metadata', diff --git a/packages/core-js/full/object/has-own.js b/packages/core-js/full/object/has-own.js index 3d2c4edd69ac..9878b182b2ea 100644 --- a/packages/core-js/full/object/has-own.js +++ b/packages/core-js/full/object/has-own.js @@ -1,7 +1,4 @@ 'use strict'; var parent = require('../../actual/object/has-own'); -// TODO: Remove from `core-js@4` -require('../../modules/esnext.object.has-own'); - module.exports = parent; diff --git a/packages/core-js/full/object/index.js b/packages/core-js/full/object/index.js index 6720214e425a..becfb8a32dc9 100644 --- a/packages/core-js/full/object/index.js +++ b/packages/core-js/full/object/index.js @@ -1,7 +1,6 @@ 'use strict'; var parent = require('../../actual/object'); // TODO: Remove from `core-js@4` -require('../../modules/esnext.object.has-own'); require('../../modules/esnext.object.iterate-entries'); require('../../modules/esnext.object.iterate-keys'); require('../../modules/esnext.object.iterate-values'); diff --git a/packages/core-js/modules/esnext.object.has-own.js b/packages/core-js/modules/esnext.object.has-own.js deleted file mode 100644 index 12bf558947c8..000000000000 --- a/packages/core-js/modules/esnext.object.has-own.js +++ /dev/null @@ -1,3 +0,0 @@ -'use strict'; -// TODO: Remove from `core-js@4` -require('../modules/es.object.has-own'); diff --git a/packages/core-js/proposals/accessible-object-hasownproperty.js b/packages/core-js/proposals/accessible-object-hasownproperty.js index aad09888f6ff..c6a950402def 100644 --- a/packages/core-js/proposals/accessible-object-hasownproperty.js +++ b/packages/core-js/proposals/accessible-object-hasownproperty.js @@ -1,3 +1,3 @@ 'use strict'; // https://github.com/tc39/proposal-accessible-object-hasownproperty -require('../modules/esnext.object.has-own'); +require('../modules/es.object.has-own'); From cdaf76d24bf7ecdcf312a731c9867f53f176193b Mon Sep 17 00:00:00 2001 From: Denis Pushkarev Date: Tue, 3 Oct 2023 04:44:21 +0700 Subject: [PATCH 019/428] drop `esnext.string.at-alternative` (moved to stable es) --- packages/core-js/modules/esnext.string.at-alternative.js | 3 --- scripts/check-unused-modules.mjs | 2 -- tests/entries/unit.mjs | 2 -- 3 files changed, 7 deletions(-) delete mode 100644 packages/core-js/modules/esnext.string.at-alternative.js diff --git a/packages/core-js/modules/esnext.string.at-alternative.js b/packages/core-js/modules/esnext.string.at-alternative.js deleted file mode 100644 index 50bc7d13a04e..000000000000 --- a/packages/core-js/modules/esnext.string.at-alternative.js +++ /dev/null @@ -1,3 +0,0 @@ -'use strict'; -// TODO: Remove from `core-js@4` -require('../modules/es.string.at-alternative'); diff --git a/scripts/check-unused-modules.mjs b/scripts/check-unused-modules.mjs index dba2e1f3b8bc..8bc5ac186215 100644 --- a/scripts/check-unused-modules.mjs +++ b/scripts/check-unused-modules.mjs @@ -17,8 +17,6 @@ const globalModules = await jsModulesFrom('packages/core-js/modules'); const definedModules = new Set([ ...modules, ...ignored, - // TODO: Drop from core-js@4 - 'esnext.string.at-alternative', ]); globalModules.forEach(it => definedModules.has(it) && globalModules.delete(it)); diff --git a/tests/entries/unit.mjs b/tests/entries/unit.mjs index c91ff6693576..45d550f820be 100644 --- a/tests/entries/unit.mjs +++ b/tests/entries/unit.mjs @@ -1117,8 +1117,6 @@ for (const NS of ['full', 'features']) { load(NS, 'typed-array/unique-by'); } -load('modules/esnext.string.at-alternative'); - echo(chalk.green(`tested ${ chalk.cyan(tested.size) } commonjs entry points`)); if (expected.size) { From 051330494b6c79a886eba44a7fe539a3621a089d Mon Sep 17 00:00:00 2001 From: Denis Pushkarev Date: Tue, 3 Oct 2023 04:49:17 +0700 Subject: [PATCH 020/428] drop `esnext.string.is-well-formed` (moved to stable es) --- packages/core-js-compat/src/data.mjs | 3 --- packages/core-js-compat/src/modules-by-versions.mjs | 1 - packages/core-js/actual/string/index.js | 1 - packages/core-js/actual/string/is-well-formed.js | 3 --- packages/core-js/actual/string/virtual/index.js | 1 - packages/core-js/actual/string/virtual/is-well-formed.js | 3 --- packages/core-js/modules/esnext.string.is-well-formed.js | 3 --- packages/core-js/proposals/well-formed-unicode-strings.js | 2 +- 8 files changed, 1 insertion(+), 16 deletions(-) delete mode 100644 packages/core-js/modules/esnext.string.is-well-formed.js diff --git a/packages/core-js-compat/src/data.mjs b/packages/core-js-compat/src/data.mjs index b115c68996eb..2ea9a2a0a4aa 100644 --- a/packages/core-js-compat/src/data.mjs +++ b/packages/core-js-compat/src/data.mjs @@ -2761,8 +2761,6 @@ export const data = { 'esnext.string.dedent': { }, // TODO: Remove from `core-js@4` - 'esnext.string.is-well-formed': null, - // TODO: Remove from `core-js@4` 'esnext.string.match-all': null, // TODO: Remove from `core-js@4` 'esnext.string.replace-all': null, @@ -3140,7 +3138,6 @@ export const renamed = new Map([ ['esnext.set.is-superset-of.v2', 'es.set.is-superset-of.v2'], ['esnext.set.symmetric-difference.v2', 'es.set.symmetric-difference.v2'], ['esnext.set.union.v2', 'es.set.union.v2'], - ['esnext.string.is-well-formed', 'es.string.is-well-formed'], ['esnext.string.match-all', 'es.string.match-all'], ['esnext.string.replace-all', 'es.string.replace-all'], ['esnext.string.to-well-formed', 'es.string.to-well-formed'], diff --git a/packages/core-js-compat/src/modules-by-versions.mjs b/packages/core-js-compat/src/modules-by-versions.mjs index b7643271b380..2876b64743e7 100644 --- a/packages/core-js-compat/src/modules-by-versions.mjs +++ b/packages/core-js-compat/src/modules-by-versions.mjs @@ -142,7 +142,6 @@ export default { 'es.object.proto', ], 3.26: [ - 'esnext.string.is-well-formed', 'esnext.string.to-well-formed', 'web.self', ], diff --git a/packages/core-js/actual/string/index.js b/packages/core-js/actual/string/index.js index d1357b5e4520..c158744970bf 100644 --- a/packages/core-js/actual/string/index.js +++ b/packages/core-js/actual/string/index.js @@ -2,7 +2,6 @@ var parent = require('../../stable/string'); // TODO: Remove from `core-js@4` -require('../../modules/esnext.string.is-well-formed'); require('../../modules/esnext.string.to-well-formed'); module.exports = parent; diff --git a/packages/core-js/actual/string/is-well-formed.js b/packages/core-js/actual/string/is-well-formed.js index 9e91f47d3491..f73d58a76417 100644 --- a/packages/core-js/actual/string/is-well-formed.js +++ b/packages/core-js/actual/string/is-well-formed.js @@ -1,7 +1,4 @@ 'use strict'; -// TODO: Remove from `core-js@4` -require('../../modules/esnext.string.is-well-formed'); - var parent = require('../../stable/string/is-well-formed'); module.exports = parent; diff --git a/packages/core-js/actual/string/virtual/index.js b/packages/core-js/actual/string/virtual/index.js index 19afd9378dab..af130ec10371 100644 --- a/packages/core-js/actual/string/virtual/index.js +++ b/packages/core-js/actual/string/virtual/index.js @@ -2,7 +2,6 @@ var parent = require('../../../stable/string/virtual'); // TODO: Remove from `core-js@4` -require('../../../modules/esnext.string.is-well-formed'); require('../../../modules/esnext.string.to-well-formed'); module.exports = parent; diff --git a/packages/core-js/actual/string/virtual/is-well-formed.js b/packages/core-js/actual/string/virtual/is-well-formed.js index e3702f4f028b..564ad18f2755 100644 --- a/packages/core-js/actual/string/virtual/is-well-formed.js +++ b/packages/core-js/actual/string/virtual/is-well-formed.js @@ -1,7 +1,4 @@ 'use strict'; -// TODO: Remove from `core-js@4` -require('../../../modules/esnext.string.is-well-formed'); - var parent = require('../../../stable/string/virtual/is-well-formed'); module.exports = parent; diff --git a/packages/core-js/modules/esnext.string.is-well-formed.js b/packages/core-js/modules/esnext.string.is-well-formed.js deleted file mode 100644 index f6205b491ce9..000000000000 --- a/packages/core-js/modules/esnext.string.is-well-formed.js +++ /dev/null @@ -1,3 +0,0 @@ -'use strict'; -// TODO: Remove from `core-js@4` -require('../modules/es.string.is-well-formed'); diff --git a/packages/core-js/proposals/well-formed-unicode-strings.js b/packages/core-js/proposals/well-formed-unicode-strings.js index bdbaec8ef6d2..7e1934279c31 100644 --- a/packages/core-js/proposals/well-formed-unicode-strings.js +++ b/packages/core-js/proposals/well-formed-unicode-strings.js @@ -1,4 +1,4 @@ 'use strict'; // https://github.com/tc39/proposal-is-usv-string -require('../modules/esnext.string.is-well-formed'); +require('../modules/es.string.is-well-formed'); require('../modules/esnext.string.to-well-formed'); From f4c2f7f3ff217580146bccb724ec9c8de2a3a134 Mon Sep 17 00:00:00 2001 From: Denis Pushkarev Date: Tue, 3 Oct 2023 04:54:05 +0700 Subject: [PATCH 021/428] drop `esnext.string.to-well-formed` (moved to stable es) --- packages/core-js-compat/src/data.mjs | 3 --- packages/core-js-compat/src/modules-by-versions.mjs | 1 - packages/core-js/actual/string/index.js | 3 --- packages/core-js/actual/string/to-well-formed.js | 3 --- packages/core-js/actual/string/virtual/index.js | 3 --- packages/core-js/actual/string/virtual/to-well-formed.js | 3 --- packages/core-js/modules/esnext.string.to-well-formed.js | 3 --- packages/core-js/proposals/well-formed-unicode-strings.js | 2 +- 8 files changed, 1 insertion(+), 20 deletions(-) delete mode 100644 packages/core-js/modules/esnext.string.to-well-formed.js diff --git a/packages/core-js-compat/src/data.mjs b/packages/core-js-compat/src/data.mjs index 2ea9a2a0a4aa..c4d8da186039 100644 --- a/packages/core-js-compat/src/data.mjs +++ b/packages/core-js-compat/src/data.mjs @@ -2765,8 +2765,6 @@ export const data = { // TODO: Remove from `core-js@4` 'esnext.string.replace-all': null, // TODO: Remove from `core-js@4` - 'esnext.string.to-well-formed': null, - // TODO: Remove from `core-js@4` 'esnext.symbol.async-dispose': null, 'esnext.symbol.custom-matcher': { }, @@ -3140,7 +3138,6 @@ export const renamed = new Map([ ['esnext.set.union.v2', 'es.set.union.v2'], ['esnext.string.match-all', 'es.string.match-all'], ['esnext.string.replace-all', 'es.string.replace-all'], - ['esnext.string.to-well-formed', 'es.string.to-well-formed'], ['esnext.suppressed-error.constructor', 'es.suppressed-error.constructor'], ['esnext.symbol.async-dispose', 'es.symbol.async-dispose'], ['esnext.symbol.dispose', 'es.symbol.dispose'], diff --git a/packages/core-js-compat/src/modules-by-versions.mjs b/packages/core-js-compat/src/modules-by-versions.mjs index 2876b64743e7..8ee33a21d317 100644 --- a/packages/core-js-compat/src/modules-by-versions.mjs +++ b/packages/core-js-compat/src/modules-by-versions.mjs @@ -142,7 +142,6 @@ export default { 'es.object.proto', ], 3.26: [ - 'esnext.string.to-well-formed', 'web.self', ], 3.27: [ diff --git a/packages/core-js/actual/string/index.js b/packages/core-js/actual/string/index.js index c158744970bf..98035ec76894 100644 --- a/packages/core-js/actual/string/index.js +++ b/packages/core-js/actual/string/index.js @@ -1,7 +1,4 @@ 'use strict'; var parent = require('../../stable/string'); -// TODO: Remove from `core-js@4` -require('../../modules/esnext.string.to-well-formed'); - module.exports = parent; diff --git a/packages/core-js/actual/string/to-well-formed.js b/packages/core-js/actual/string/to-well-formed.js index 67ad9e4ff3ef..2b7fc952f32f 100644 --- a/packages/core-js/actual/string/to-well-formed.js +++ b/packages/core-js/actual/string/to-well-formed.js @@ -1,7 +1,4 @@ 'use strict'; -// TODO: Remove from `core-js@4` -require('../../modules/esnext.string.to-well-formed'); - var parent = require('../../stable/string/to-well-formed'); module.exports = parent; diff --git a/packages/core-js/actual/string/virtual/index.js b/packages/core-js/actual/string/virtual/index.js index af130ec10371..565b7cb3eb4d 100644 --- a/packages/core-js/actual/string/virtual/index.js +++ b/packages/core-js/actual/string/virtual/index.js @@ -1,7 +1,4 @@ 'use strict'; var parent = require('../../../stable/string/virtual'); -// TODO: Remove from `core-js@4` -require('../../../modules/esnext.string.to-well-formed'); - module.exports = parent; diff --git a/packages/core-js/actual/string/virtual/to-well-formed.js b/packages/core-js/actual/string/virtual/to-well-formed.js index 86db8e6d9836..8c1128f75f0f 100644 --- a/packages/core-js/actual/string/virtual/to-well-formed.js +++ b/packages/core-js/actual/string/virtual/to-well-formed.js @@ -1,7 +1,4 @@ 'use strict'; -// TODO: Remove from `core-js@4` -require('../../../modules/esnext.string.to-well-formed'); - var parent = require('../../../stable/string/virtual/to-well-formed'); module.exports = parent; diff --git a/packages/core-js/modules/esnext.string.to-well-formed.js b/packages/core-js/modules/esnext.string.to-well-formed.js deleted file mode 100644 index 4fcdcf21b859..000000000000 --- a/packages/core-js/modules/esnext.string.to-well-formed.js +++ /dev/null @@ -1,3 +0,0 @@ -'use strict'; -// TODO: Remove from `core-js@4` -require('../modules/es.string.to-well-formed'); diff --git a/packages/core-js/proposals/well-formed-unicode-strings.js b/packages/core-js/proposals/well-formed-unicode-strings.js index 7e1934279c31..9e98c50c228a 100644 --- a/packages/core-js/proposals/well-formed-unicode-strings.js +++ b/packages/core-js/proposals/well-formed-unicode-strings.js @@ -1,4 +1,4 @@ 'use strict'; // https://github.com/tc39/proposal-is-usv-string require('../modules/es.string.is-well-formed'); -require('../modules/esnext.string.to-well-formed'); +require('../modules/es.string.to-well-formed'); From 4cd5f02aef89a02f22e5c04c2361bb97b4d3353a Mon Sep 17 00:00:00 2001 From: Denis Pushkarev Date: Tue, 3 Oct 2023 04:59:46 +0700 Subject: [PATCH 022/428] drop `esnext.string.match-all` (moved to stable es) --- packages/core-js-compat/src/data.mjs | 3 --- packages/core-js/full/instance/match-all.js | 3 --- packages/core-js/full/string/index.js | 1 - packages/core-js/full/string/match-all.js | 3 --- packages/core-js/full/string/virtual/index.js | 1 - packages/core-js/full/string/virtual/match-all.js | 3 --- packages/core-js/modules/esnext.string.match-all.js | 3 --- packages/core-js/proposals/string-match-all.js | 2 +- 8 files changed, 1 insertion(+), 18 deletions(-) delete mode 100644 packages/core-js/modules/esnext.string.match-all.js diff --git a/packages/core-js-compat/src/data.mjs b/packages/core-js-compat/src/data.mjs index c4d8da186039..be82e4202cd0 100644 --- a/packages/core-js-compat/src/data.mjs +++ b/packages/core-js-compat/src/data.mjs @@ -2761,8 +2761,6 @@ export const data = { 'esnext.string.dedent': { }, // TODO: Remove from `core-js@4` - 'esnext.string.match-all': null, - // TODO: Remove from `core-js@4` 'esnext.string.replace-all': null, // TODO: Remove from `core-js@4` 'esnext.symbol.async-dispose': null, @@ -3136,7 +3134,6 @@ export const renamed = new Map([ ['esnext.set.is-superset-of.v2', 'es.set.is-superset-of.v2'], ['esnext.set.symmetric-difference.v2', 'es.set.symmetric-difference.v2'], ['esnext.set.union.v2', 'es.set.union.v2'], - ['esnext.string.match-all', 'es.string.match-all'], ['esnext.string.replace-all', 'es.string.replace-all'], ['esnext.suppressed-error.constructor', 'es.suppressed-error.constructor'], ['esnext.symbol.async-dispose', 'es.symbol.async-dispose'], diff --git a/packages/core-js/full/instance/match-all.js b/packages/core-js/full/instance/match-all.js index 0207313ddbf5..c7d0d28d52e9 100644 --- a/packages/core-js/full/instance/match-all.js +++ b/packages/core-js/full/instance/match-all.js @@ -1,7 +1,4 @@ 'use strict'; -// TODO: remove from `core-js@4` -require('../../modules/esnext.string.match-all'); - var parent = require('../../actual/instance/match-all'); module.exports = parent; diff --git a/packages/core-js/full/string/index.js b/packages/core-js/full/string/index.js index 708cbe65bd19..2bd7858a0d1d 100644 --- a/packages/core-js/full/string/index.js +++ b/packages/core-js/full/string/index.js @@ -6,7 +6,6 @@ require('../../modules/esnext.string.at'); require('../../modules/esnext.string.cooked'); require('../../modules/esnext.string.code-points'); require('../../modules/esnext.string.dedent'); -require('../../modules/esnext.string.match-all'); require('../../modules/esnext.string.replace-all'); module.exports = parent; diff --git a/packages/core-js/full/string/match-all.js b/packages/core-js/full/string/match-all.js index 9d23a4af9a4f..0c0d9aeb189a 100644 --- a/packages/core-js/full/string/match-all.js +++ b/packages/core-js/full/string/match-all.js @@ -1,7 +1,4 @@ 'use strict'; -// TODO: remove from `core-js@4` -require('../../modules/esnext.string.match-all'); - var parent = require('../../actual/string/match-all'); module.exports = parent; diff --git a/packages/core-js/full/string/virtual/index.js b/packages/core-js/full/string/virtual/index.js index 261c940e6562..694b6d356e7b 100644 --- a/packages/core-js/full/string/virtual/index.js +++ b/packages/core-js/full/string/virtual/index.js @@ -4,7 +4,6 @@ var parent = require('../../../actual/string/virtual'); require('../../../modules/esnext.string.at'); require('../../../modules/esnext.string.code-points'); // TODO: remove from `core-js@4` -require('../../../modules/esnext.string.match-all'); require('../../../modules/esnext.string.replace-all'); module.exports = parent; diff --git a/packages/core-js/full/string/virtual/match-all.js b/packages/core-js/full/string/virtual/match-all.js index 26e80f63e488..056535c0571e 100644 --- a/packages/core-js/full/string/virtual/match-all.js +++ b/packages/core-js/full/string/virtual/match-all.js @@ -1,7 +1,4 @@ 'use strict'; -// TODO: remove from `core-js@4` -require('../../../modules/esnext.string.match-all'); - var parent = require('../../../actual/string/virtual/match-all'); module.exports = parent; diff --git a/packages/core-js/modules/esnext.string.match-all.js b/packages/core-js/modules/esnext.string.match-all.js deleted file mode 100644 index 420374c412c5..000000000000 --- a/packages/core-js/modules/esnext.string.match-all.js +++ /dev/null @@ -1,3 +0,0 @@ -'use strict'; -// TODO: Remove from `core-js@4` -require('../modules/es.string.match-all'); diff --git a/packages/core-js/proposals/string-match-all.js b/packages/core-js/proposals/string-match-all.js index 36dab4f09823..775f41726408 100644 --- a/packages/core-js/proposals/string-match-all.js +++ b/packages/core-js/proposals/string-match-all.js @@ -1,3 +1,3 @@ 'use strict'; // https://github.com/tc39/proposal-string-matchall -require('../modules/esnext.string.match-all'); +require('../modules/es.string.match-all'); From 1598d33761ce538deb4895c3ed59273a77db6019 Mon Sep 17 00:00:00 2001 From: Denis Pushkarev Date: Tue, 3 Oct 2023 05:05:05 +0700 Subject: [PATCH 023/428] drop `esnext.string.replace-all` (moved to stable es) --- packages/core-js-compat/src/data.mjs | 3 --- packages/core-js/full/instance/replace-all.js | 3 --- packages/core-js/full/string/index.js | 1 - packages/core-js/full/string/replace-all.js | 3 --- packages/core-js/full/string/virtual/index.js | 2 -- packages/core-js/full/string/virtual/replace-all.js | 3 --- packages/core-js/modules/esnext.string.replace-all.js | 3 --- packages/core-js/proposals/string-replace-all-stage-4.js | 2 +- packages/core-js/proposals/string-replace-all.js | 2 +- 9 files changed, 2 insertions(+), 20 deletions(-) delete mode 100644 packages/core-js/modules/esnext.string.replace-all.js diff --git a/packages/core-js-compat/src/data.mjs b/packages/core-js-compat/src/data.mjs index be82e4202cd0..ad368a02e98f 100644 --- a/packages/core-js-compat/src/data.mjs +++ b/packages/core-js-compat/src/data.mjs @@ -2761,8 +2761,6 @@ export const data = { 'esnext.string.dedent': { }, // TODO: Remove from `core-js@4` - 'esnext.string.replace-all': null, - // TODO: Remove from `core-js@4` 'esnext.symbol.async-dispose': null, 'esnext.symbol.custom-matcher': { }, @@ -3134,7 +3132,6 @@ export const renamed = new Map([ ['esnext.set.is-superset-of.v2', 'es.set.is-superset-of.v2'], ['esnext.set.symmetric-difference.v2', 'es.set.symmetric-difference.v2'], ['esnext.set.union.v2', 'es.set.union.v2'], - ['esnext.string.replace-all', 'es.string.replace-all'], ['esnext.suppressed-error.constructor', 'es.suppressed-error.constructor'], ['esnext.symbol.async-dispose', 'es.symbol.async-dispose'], ['esnext.symbol.dispose', 'es.symbol.dispose'], diff --git a/packages/core-js/full/instance/replace-all.js b/packages/core-js/full/instance/replace-all.js index f218e3e94bd3..224e9b0ba242 100644 --- a/packages/core-js/full/instance/replace-all.js +++ b/packages/core-js/full/instance/replace-all.js @@ -1,7 +1,4 @@ 'use strict'; -// TODO: remove from `core-js@4` -require('../../modules/esnext.string.replace-all'); - var parent = require('../../actual/instance/replace-all'); module.exports = parent; diff --git a/packages/core-js/full/string/index.js b/packages/core-js/full/string/index.js index 2bd7858a0d1d..9010f755d01c 100644 --- a/packages/core-js/full/string/index.js +++ b/packages/core-js/full/string/index.js @@ -6,6 +6,5 @@ require('../../modules/esnext.string.at'); require('../../modules/esnext.string.cooked'); require('../../modules/esnext.string.code-points'); require('../../modules/esnext.string.dedent'); -require('../../modules/esnext.string.replace-all'); module.exports = parent; diff --git a/packages/core-js/full/string/replace-all.js b/packages/core-js/full/string/replace-all.js index 1bbb65106eeb..4f7be3e4ac9a 100644 --- a/packages/core-js/full/string/replace-all.js +++ b/packages/core-js/full/string/replace-all.js @@ -1,7 +1,4 @@ 'use strict'; -// TODO: remove from `core-js@4` -require('../../modules/esnext.string.replace-all'); - var parent = require('../../actual/string/replace-all'); module.exports = parent; diff --git a/packages/core-js/full/string/virtual/index.js b/packages/core-js/full/string/virtual/index.js index 694b6d356e7b..111fd580f88b 100644 --- a/packages/core-js/full/string/virtual/index.js +++ b/packages/core-js/full/string/virtual/index.js @@ -3,7 +3,5 @@ var parent = require('../../../actual/string/virtual'); // TODO: remove from `core-js@4` require('../../../modules/esnext.string.at'); require('../../../modules/esnext.string.code-points'); -// TODO: remove from `core-js@4` -require('../../../modules/esnext.string.replace-all'); module.exports = parent; diff --git a/packages/core-js/full/string/virtual/replace-all.js b/packages/core-js/full/string/virtual/replace-all.js index cdf4c9d233fb..c8daad1215df 100644 --- a/packages/core-js/full/string/virtual/replace-all.js +++ b/packages/core-js/full/string/virtual/replace-all.js @@ -1,7 +1,4 @@ 'use strict'; -// TODO: remove from `core-js@4` -require('../../../modules/esnext.string.replace-all'); - var parent = require('../../../actual/string/virtual/replace-all'); module.exports = parent; diff --git a/packages/core-js/modules/esnext.string.replace-all.js b/packages/core-js/modules/esnext.string.replace-all.js deleted file mode 100644 index 74d6117bfeb0..000000000000 --- a/packages/core-js/modules/esnext.string.replace-all.js +++ /dev/null @@ -1,3 +0,0 @@ -'use strict'; -// TODO: Remove from `core-js@4` -require('../modules/es.string.replace-all'); diff --git a/packages/core-js/proposals/string-replace-all-stage-4.js b/packages/core-js/proposals/string-replace-all-stage-4.js index ab7d05bc33e7..71354d6d8bf0 100644 --- a/packages/core-js/proposals/string-replace-all-stage-4.js +++ b/packages/core-js/proposals/string-replace-all-stage-4.js @@ -1,3 +1,3 @@ 'use strict'; // https://github.com/tc39/proposal-string-replaceall -require('../modules/esnext.string.replace-all'); +require('../modules/es.string.replace-all'); diff --git a/packages/core-js/proposals/string-replace-all.js b/packages/core-js/proposals/string-replace-all.js index 6ad7e75b704b..b7409ea6d491 100644 --- a/packages/core-js/proposals/string-replace-all.js +++ b/packages/core-js/proposals/string-replace-all.js @@ -1,5 +1,5 @@ 'use strict'; // https://github.com/tc39/proposal-string-replaceall -require('../modules/esnext.string.replace-all'); +require('../modules/es.string.replace-all'); // TODO: remove from `core-js@4` require('../modules/esnext.symbol.replace-all'); From 7a059ebca30f5c6cee712049790effc1c356d55d Mon Sep 17 00:00:00 2001 From: Denis Pushkarev Date: Tue, 3 Oct 2023 05:13:01 +0700 Subject: [PATCH 024/428] drop `esnext.object.iterate-entries` (withdrawn) --- packages/core-js-compat/src/data.mjs | 3 -- .../src/modules-by-versions.mjs | 1 - packages/core-js/full/object/index.js | 1 - .../core-js/full/object/iterate-entries.js | 5 --- .../modules/esnext.object.iterate-entries.js | 12 ------- .../core-js/proposals/object-iteration.js | 1 - scripts/bundle-package/bundle-package.mjs | 1 - tests/compat-data/tests-coverage.mjs | 1 - tests/entries/unit.mjs | 1 - .../esnext.object.iterate-entries.js | 31 ------------------- .../esnext.object.iterate-entries.js | 31 ------------------- 11 files changed, 88 deletions(-) delete mode 100644 packages/core-js/full/object/iterate-entries.js delete mode 100644 packages/core-js/modules/esnext.object.iterate-entries.js delete mode 100644 tests/unit-global/esnext.object.iterate-entries.js delete mode 100644 tests/unit-pure/esnext.object.iterate-entries.js diff --git a/packages/core-js-compat/src/data.mjs b/packages/core-js-compat/src/data.mjs index ad368a02e98f..0a200bd07bd0 100644 --- a/packages/core-js-compat/src/data.mjs +++ b/packages/core-js-compat/src/data.mjs @@ -2642,9 +2642,6 @@ export const data = { 'esnext.number.range': { }, // TODO: Remove from `core-js@4` - 'esnext.object.iterate-entries': { - }, - // TODO: Remove from `core-js@4` 'esnext.object.iterate-keys': { }, // TODO: Remove from `core-js@4` diff --git a/packages/core-js-compat/src/modules-by-versions.mjs b/packages/core-js-compat/src/modules-by-versions.mjs index 8ee33a21d317..45187943254a 100644 --- a/packages/core-js-compat/src/modules-by-versions.mjs +++ b/packages/core-js-compat/src/modules-by-versions.mjs @@ -47,7 +47,6 @@ export default { 'es.json.stringify', ], 3.5: [ - 'esnext.object.iterate-entries', 'esnext.object.iterate-keys', 'esnext.object.iterate-values', ], diff --git a/packages/core-js/full/object/index.js b/packages/core-js/full/object/index.js index becfb8a32dc9..9b034f5bb3ce 100644 --- a/packages/core-js/full/object/index.js +++ b/packages/core-js/full/object/index.js @@ -1,7 +1,6 @@ 'use strict'; var parent = require('../../actual/object'); // TODO: Remove from `core-js@4` -require('../../modules/esnext.object.iterate-entries'); require('../../modules/esnext.object.iterate-keys'); require('../../modules/esnext.object.iterate-values'); diff --git a/packages/core-js/full/object/iterate-entries.js b/packages/core-js/full/object/iterate-entries.js deleted file mode 100644 index e46f8810095b..000000000000 --- a/packages/core-js/full/object/iterate-entries.js +++ /dev/null @@ -1,5 +0,0 @@ -'use strict'; -require('../../modules/esnext.object.iterate-entries'); -var path = require('../../internals/path'); - -module.exports = path.Object.iterateEntries; diff --git a/packages/core-js/modules/esnext.object.iterate-entries.js b/packages/core-js/modules/esnext.object.iterate-entries.js deleted file mode 100644 index f93b68415fe6..000000000000 --- a/packages/core-js/modules/esnext.object.iterate-entries.js +++ /dev/null @@ -1,12 +0,0 @@ -'use strict'; -// TODO: Remove from `core-js@4` -var $ = require('../internals/export'); -var ObjectIterator = require('../internals/object-iterator'); - -// `Object.iterateEntries` method -// https://github.com/tc39/proposal-object-iteration -$({ target: 'Object', stat: true, forced: true }, { - iterateEntries: function iterateEntries(object) { - return new ObjectIterator(object, 'entries'); - } -}); diff --git a/packages/core-js/proposals/object-iteration.js b/packages/core-js/proposals/object-iteration.js index 5d406023aa51..28484d7853c0 100644 --- a/packages/core-js/proposals/object-iteration.js +++ b/packages/core-js/proposals/object-iteration.js @@ -1,6 +1,5 @@ 'use strict'; // TODO: remove from `core-js@4` as withdrawn // https://github.com/tc39/proposal-object-iteration -require('../modules/esnext.object.iterate-entries'); require('../modules/esnext.object.iterate-keys'); require('../modules/esnext.object.iterate-values'); diff --git a/scripts/bundle-package/bundle-package.mjs b/scripts/bundle-package/bundle-package.mjs index 5da15ca15eec..4c3723604f0c 100644 --- a/scripts/bundle-package/bundle-package.mjs +++ b/scripts/bundle-package/bundle-package.mjs @@ -67,7 +67,6 @@ await bundle(DENO ? { 'esnext.math.isubh', // withdrawn 'esnext.math.seeded-prng', // changing of the API, waiting for the spec text 'esnext.math.umulh', // withdrawn - 'esnext.object.iterate-entries', // withdrawn 'esnext.object.iterate-keys', // withdrawn 'esnext.object.iterate-values', // withdrawn 'esnext.string.at', // withdrawn diff --git a/tests/compat-data/tests-coverage.mjs b/tests/compat-data/tests-coverage.mjs index e38ad0a2434e..282471726602 100644 --- a/tests/compat-data/tests-coverage.mjs +++ b/tests/compat-data/tests-coverage.mjs @@ -39,7 +39,6 @@ const ignore = new Set([ 'esnext.math.seeded-prng', 'esnext.math.umulh', 'esnext.number.range', - 'esnext.object.iterate-entries', 'esnext.object.iterate-keys', 'esnext.object.iterate-values', 'esnext.observable', diff --git a/tests/entries/unit.mjs b/tests/entries/unit.mjs index 45d550f820be..c2014f74e952 100644 --- a/tests/entries/unit.mjs +++ b/tests/entries/unit.mjs @@ -818,7 +818,6 @@ for (PATH of ['core-js-pure', 'core-js']) { ok(load(NS, 'number/virtual/clamp').call(6, 2, 4) === 4); ok(load(NS, 'number/from-string')('12', 3) === 5); ok(load(NS, 'number/range')(1, 2).next().value === 1); - ok(typeof load(NS, 'object/iterate-entries')({}).next == 'function'); ok(typeof load(NS, 'object/iterate-keys')({}).next == 'function'); ok(typeof load(NS, 'object/iterate-values')({}).next == 'function'); ok('from' in load(NS, 'observable')); diff --git a/tests/unit-global/esnext.object.iterate-entries.js b/tests/unit-global/esnext.object.iterate-entries.js deleted file mode 100644 index 62709ddbd0ee..000000000000 --- a/tests/unit-global/esnext.object.iterate-entries.js +++ /dev/null @@ -1,31 +0,0 @@ -QUnit.test('Object.iterateEntries', assert => { - const { iterateEntries } = Object; - assert.isFunction(iterateEntries); - assert.name(iterateEntries, 'iterateEntries'); - assert.arity(iterateEntries, 1); - assert.looksNative(iterateEntries); - assert.nonEnumerable(Object, 'iterateEntries'); - - const object = { - q: 1, - w: 2, - e: 3, - }; - const iterator = iterateEntries(object); - assert.isIterator(iterator); - assert.isIterable(iterator); - assert.same(iterator[Symbol.toStringTag], 'Object Iterator'); - assert.deepEqual(iterator.next(), { - value: ['q', 1], - done: false, - }); - delete object.w; - assert.deepEqual(iterator.next(), { - value: ['e', 3], - done: false, - }); - assert.deepEqual(iterator.next(), { - value: undefined, - done: true, - }); -}); diff --git a/tests/unit-pure/esnext.object.iterate-entries.js b/tests/unit-pure/esnext.object.iterate-entries.js deleted file mode 100644 index 37f3fa480010..000000000000 --- a/tests/unit-pure/esnext.object.iterate-entries.js +++ /dev/null @@ -1,31 +0,0 @@ -import Symbol from 'core-js-pure/es/symbol'; -import iterateEntries from 'core-js-pure/full/object/iterate-entries'; - -QUnit.test('Object.iterateEntries', assert => { - assert.isFunction(iterateEntries); - assert.name(iterateEntries, 'iterateEntries'); - assert.arity(iterateEntries, 1); - - const object = { - q: 1, - w: 2, - e: 3, - }; - const iterator = iterateEntries(object); - assert.isIterator(iterator); - assert.isIterable(iterator); - assert.same(iterator[Symbol.toStringTag], 'Object Iterator'); - assert.deepEqual(iterator.next(), { - value: ['q', 1], - done: false, - }); - delete object.w; - assert.deepEqual(iterator.next(), { - value: ['e', 3], - done: false, - }); - assert.deepEqual(iterator.next(), { - value: undefined, - done: true, - }); -}); From 3d7a1c5fdf66818cc9911e871ce6de93c07841a0 Mon Sep 17 00:00:00 2001 From: Denis Pushkarev Date: Tue, 3 Oct 2023 05:19:07 +0700 Subject: [PATCH 025/428] drop `esnext.object.iterate-keys` (withdrawn) --- packages/core-js-compat/src/data.mjs | 3 -- .../src/modules-by-versions.mjs | 1 - packages/core-js/full/object/index.js | 1 - packages/core-js/full/object/iterate-keys.js | 5 --- .../modules/esnext.object.iterate-keys.js | 12 ------- .../core-js/proposals/object-iteration.js | 1 - scripts/bundle-package/bundle-package.mjs | 1 - tests/compat-data/tests-coverage.mjs | 1 - tests/entries/unit.mjs | 1 - .../unit-global/esnext.object.iterate-keys.js | 31 ------------------- tests/unit-pure/esnext.object.iterate-keys.js | 31 ------------------- 11 files changed, 88 deletions(-) delete mode 100644 packages/core-js/full/object/iterate-keys.js delete mode 100644 packages/core-js/modules/esnext.object.iterate-keys.js delete mode 100644 tests/unit-global/esnext.object.iterate-keys.js delete mode 100644 tests/unit-pure/esnext.object.iterate-keys.js diff --git a/packages/core-js-compat/src/data.mjs b/packages/core-js-compat/src/data.mjs index 0a200bd07bd0..fe102366cf02 100644 --- a/packages/core-js-compat/src/data.mjs +++ b/packages/core-js-compat/src/data.mjs @@ -2642,9 +2642,6 @@ export const data = { 'esnext.number.range': { }, // TODO: Remove from `core-js@4` - 'esnext.object.iterate-keys': { - }, - // TODO: Remove from `core-js@4` 'esnext.object.iterate-values': { }, // TODO: Remove from `core-js@4` diff --git a/packages/core-js-compat/src/modules-by-versions.mjs b/packages/core-js-compat/src/modules-by-versions.mjs index 45187943254a..115c959a446c 100644 --- a/packages/core-js-compat/src/modules-by-versions.mjs +++ b/packages/core-js-compat/src/modules-by-versions.mjs @@ -47,7 +47,6 @@ export default { 'es.json.stringify', ], 3.5: [ - 'esnext.object.iterate-keys', 'esnext.object.iterate-values', ], 3.6: [ diff --git a/packages/core-js/full/object/index.js b/packages/core-js/full/object/index.js index 9b034f5bb3ce..d9e1adca351b 100644 --- a/packages/core-js/full/object/index.js +++ b/packages/core-js/full/object/index.js @@ -1,7 +1,6 @@ 'use strict'; var parent = require('../../actual/object'); // TODO: Remove from `core-js@4` -require('../../modules/esnext.object.iterate-keys'); require('../../modules/esnext.object.iterate-values'); module.exports = parent; diff --git a/packages/core-js/full/object/iterate-keys.js b/packages/core-js/full/object/iterate-keys.js deleted file mode 100644 index 68afc74528ca..000000000000 --- a/packages/core-js/full/object/iterate-keys.js +++ /dev/null @@ -1,5 +0,0 @@ -'use strict'; -require('../../modules/esnext.object.iterate-keys'); -var path = require('../../internals/path'); - -module.exports = path.Object.iterateKeys; diff --git a/packages/core-js/modules/esnext.object.iterate-keys.js b/packages/core-js/modules/esnext.object.iterate-keys.js deleted file mode 100644 index 41e5de9ae1a6..000000000000 --- a/packages/core-js/modules/esnext.object.iterate-keys.js +++ /dev/null @@ -1,12 +0,0 @@ -'use strict'; -// TODO: Remove from `core-js@4` -var $ = require('../internals/export'); -var ObjectIterator = require('../internals/object-iterator'); - -// `Object.iterateKeys` method -// https://github.com/tc39/proposal-object-iteration -$({ target: 'Object', stat: true, forced: true }, { - iterateKeys: function iterateKeys(object) { - return new ObjectIterator(object, 'keys'); - } -}); diff --git a/packages/core-js/proposals/object-iteration.js b/packages/core-js/proposals/object-iteration.js index 28484d7853c0..e3a72de41e4d 100644 --- a/packages/core-js/proposals/object-iteration.js +++ b/packages/core-js/proposals/object-iteration.js @@ -1,5 +1,4 @@ 'use strict'; // TODO: remove from `core-js@4` as withdrawn // https://github.com/tc39/proposal-object-iteration -require('../modules/esnext.object.iterate-keys'); require('../modules/esnext.object.iterate-values'); diff --git a/scripts/bundle-package/bundle-package.mjs b/scripts/bundle-package/bundle-package.mjs index 4c3723604f0c..d9ab1d7da832 100644 --- a/scripts/bundle-package/bundle-package.mjs +++ b/scripts/bundle-package/bundle-package.mjs @@ -67,7 +67,6 @@ await bundle(DENO ? { 'esnext.math.isubh', // withdrawn 'esnext.math.seeded-prng', // changing of the API, waiting for the spec text 'esnext.math.umulh', // withdrawn - 'esnext.object.iterate-keys', // withdrawn 'esnext.object.iterate-values', // withdrawn 'esnext.string.at', // withdrawn 'esnext.symbol.pattern-match', // is not a part of actual proposal, replaced by esnext.symbol.matcher diff --git a/tests/compat-data/tests-coverage.mjs b/tests/compat-data/tests-coverage.mjs index 282471726602..07c3bc6dea08 100644 --- a/tests/compat-data/tests-coverage.mjs +++ b/tests/compat-data/tests-coverage.mjs @@ -39,7 +39,6 @@ const ignore = new Set([ 'esnext.math.seeded-prng', 'esnext.math.umulh', 'esnext.number.range', - 'esnext.object.iterate-keys', 'esnext.object.iterate-values', 'esnext.observable', 'esnext.observable.constructor', diff --git a/tests/entries/unit.mjs b/tests/entries/unit.mjs index c2014f74e952..dc3a8faca615 100644 --- a/tests/entries/unit.mjs +++ b/tests/entries/unit.mjs @@ -818,7 +818,6 @@ for (PATH of ['core-js-pure', 'core-js']) { ok(load(NS, 'number/virtual/clamp').call(6, 2, 4) === 4); ok(load(NS, 'number/from-string')('12', 3) === 5); ok(load(NS, 'number/range')(1, 2).next().value === 1); - ok(typeof load(NS, 'object/iterate-keys')({}).next == 'function'); ok(typeof load(NS, 'object/iterate-values')({}).next == 'function'); ok('from' in load(NS, 'observable')); ok(typeof load(NS, 'reflect/define-metadata') == 'function'); diff --git a/tests/unit-global/esnext.object.iterate-keys.js b/tests/unit-global/esnext.object.iterate-keys.js deleted file mode 100644 index 9593bdba1400..000000000000 --- a/tests/unit-global/esnext.object.iterate-keys.js +++ /dev/null @@ -1,31 +0,0 @@ -QUnit.test('Object.iterateKeys', assert => { - const { iterateKeys } = Object; - assert.isFunction(iterateKeys); - assert.name(iterateKeys, 'iterateKeys'); - assert.arity(iterateKeys, 1); - assert.looksNative(iterateKeys); - assert.nonEnumerable(Object, 'iterateKeys'); - - const object = { - q: 1, - w: 2, - e: 3, - }; - const iterator = iterateKeys(object); - assert.isIterator(iterator); - assert.isIterable(iterator); - assert.same(iterator[Symbol.toStringTag], 'Object Iterator'); - assert.deepEqual(iterator.next(), { - value: 'q', - done: false, - }); - delete object.w; - assert.deepEqual(iterator.next(), { - value: 'e', - done: false, - }); - assert.deepEqual(iterator.next(), { - value: undefined, - done: true, - }); -}); diff --git a/tests/unit-pure/esnext.object.iterate-keys.js b/tests/unit-pure/esnext.object.iterate-keys.js deleted file mode 100644 index b020d33e92d1..000000000000 --- a/tests/unit-pure/esnext.object.iterate-keys.js +++ /dev/null @@ -1,31 +0,0 @@ -import Symbol from 'core-js-pure/es/symbol'; -import iterateKeys from 'core-js-pure/full/object/iterate-keys'; - -QUnit.test('Object.iterateKeys', assert => { - assert.isFunction(iterateKeys); - assert.name(iterateKeys, 'iterateKeys'); - assert.arity(iterateKeys, 1); - - const object = { - q: 1, - w: 2, - e: 3, - }; - const iterator = iterateKeys(object); - assert.isIterator(iterator); - assert.isIterable(iterator); - assert.same(iterator[Symbol.toStringTag], 'Object Iterator'); - assert.deepEqual(iterator.next(), { - value: 'q', - done: false, - }); - delete object.w; - assert.deepEqual(iterator.next(), { - value: 'e', - done: false, - }); - assert.deepEqual(iterator.next(), { - value: undefined, - done: true, - }); -}); From 9517556b384a0ba3be74ae3d1db3163b0eefbfd2 Mon Sep 17 00:00:00 2001 From: Denis Pushkarev Date: Tue, 3 Oct 2023 05:27:59 +0700 Subject: [PATCH 026/428] drop `esnext.object.iterate-values` (withdrawn) --- packages/core-js-compat/src/data.mjs | 3 -- .../src/modules-by-versions.mjs | 3 -- packages/core-js/full/object/index.js | 2 - .../core-js/full/object/iterate-values.js | 5 --- packages/core-js/internals/object-iterator.js | 38 ------------------- .../modules/esnext.object.iterate-values.js | 12 ------ .../core-js/proposals/object-iteration.js | 4 -- packages/core-js/stage/1.js | 1 - scripts/bundle-package/bundle-package.mjs | 1 - tests/compat-data/tests-coverage.mjs | 1 - tests/entries/unit.mjs | 2 - .../esnext.object.iterate-values.js | 31 --------------- .../unit-pure/esnext.object.iterate-values.js | 31 --------------- 13 files changed, 134 deletions(-) delete mode 100644 packages/core-js/full/object/iterate-values.js delete mode 100644 packages/core-js/internals/object-iterator.js delete mode 100644 packages/core-js/modules/esnext.object.iterate-values.js delete mode 100644 packages/core-js/proposals/object-iteration.js delete mode 100644 tests/unit-global/esnext.object.iterate-values.js delete mode 100644 tests/unit-pure/esnext.object.iterate-values.js diff --git a/packages/core-js-compat/src/data.mjs b/packages/core-js-compat/src/data.mjs index fe102366cf02..e3b319245ec8 100644 --- a/packages/core-js-compat/src/data.mjs +++ b/packages/core-js-compat/src/data.mjs @@ -2642,9 +2642,6 @@ export const data = { 'esnext.number.range': { }, // TODO: Remove from `core-js@4` - 'esnext.object.iterate-values': { - }, - // TODO: Remove from `core-js@4` 'esnext.object.group-by': null, // TODO: Remove this module from `core-js@4` since it's split to modules listed below 'esnext.observable': { diff --git a/packages/core-js-compat/src/modules-by-versions.mjs b/packages/core-js-compat/src/modules-by-versions.mjs index 115c959a446c..4045683fcd39 100644 --- a/packages/core-js-compat/src/modules-by-versions.mjs +++ b/packages/core-js-compat/src/modules-by-versions.mjs @@ -46,9 +46,6 @@ export default { 3.4: [ 'es.json.stringify', ], - 3.5: [ - 'esnext.object.iterate-values', - ], 3.6: [ 'es.regexp.sticky', 'es.regexp.test', diff --git a/packages/core-js/full/object/index.js b/packages/core-js/full/object/index.js index d9e1adca351b..64394c7ac95d 100644 --- a/packages/core-js/full/object/index.js +++ b/packages/core-js/full/object/index.js @@ -1,6 +1,4 @@ 'use strict'; var parent = require('../../actual/object'); -// TODO: Remove from `core-js@4` -require('../../modules/esnext.object.iterate-values'); module.exports = parent; diff --git a/packages/core-js/full/object/iterate-values.js b/packages/core-js/full/object/iterate-values.js deleted file mode 100644 index 2a351275e57d..000000000000 --- a/packages/core-js/full/object/iterate-values.js +++ /dev/null @@ -1,5 +0,0 @@ -'use strict'; -require('../../modules/esnext.object.iterate-values'); -var path = require('../../internals/path'); - -module.exports = path.Object.iterateValues; diff --git a/packages/core-js/internals/object-iterator.js b/packages/core-js/internals/object-iterator.js deleted file mode 100644 index a2f04434e7e3..000000000000 --- a/packages/core-js/internals/object-iterator.js +++ /dev/null @@ -1,38 +0,0 @@ -'use strict'; -var InternalStateModule = require('../internals/internal-state'); -var createIteratorConstructor = require('../internals/iterator-create-constructor'); -var createIterResultObject = require('../internals/create-iter-result-object'); -var hasOwn = require('../internals/has-own-property'); -var objectKeys = require('../internals/object-keys'); -var toObject = require('../internals/to-object'); - -var OBJECT_ITERATOR = 'Object Iterator'; -var setInternalState = InternalStateModule.set; -var getInternalState = InternalStateModule.getterFor(OBJECT_ITERATOR); - -module.exports = createIteratorConstructor(function ObjectIterator(source, mode) { - var object = toObject(source); - setInternalState(this, { - type: OBJECT_ITERATOR, - mode: mode, - object: object, - keys: objectKeys(object), - index: 0 - }); -}, 'Object', function next() { - var state = getInternalState(this); - var keys = state.keys; - while (true) { - if (keys === null || state.index >= keys.length) { - state.object = state.keys = null; - return createIterResultObject(undefined, true); - } - var key = keys[state.index++]; - var object = state.object; - if (!hasOwn(object, key)) continue; - switch (state.mode) { - case 'keys': return createIterResultObject(key, false); - case 'values': return createIterResultObject(object[key], false); - } /* entries */ return createIterResultObject([key, object[key]], false); - } -}); diff --git a/packages/core-js/modules/esnext.object.iterate-values.js b/packages/core-js/modules/esnext.object.iterate-values.js deleted file mode 100644 index 490abc8be1fd..000000000000 --- a/packages/core-js/modules/esnext.object.iterate-values.js +++ /dev/null @@ -1,12 +0,0 @@ -'use strict'; -// TODO: Remove from `core-js@4` -var $ = require('../internals/export'); -var ObjectIterator = require('../internals/object-iterator'); - -// `Object.iterateValues` method -// https://github.com/tc39/proposal-object-iteration -$({ target: 'Object', stat: true, forced: true }, { - iterateValues: function iterateValues(object) { - return new ObjectIterator(object, 'values'); - } -}); diff --git a/packages/core-js/proposals/object-iteration.js b/packages/core-js/proposals/object-iteration.js deleted file mode 100644 index e3a72de41e4d..000000000000 --- a/packages/core-js/proposals/object-iteration.js +++ /dev/null @@ -1,4 +0,0 @@ -'use strict'; -// TODO: remove from `core-js@4` as withdrawn -// https://github.com/tc39/proposal-object-iteration -require('../modules/esnext.object.iterate-values'); diff --git a/packages/core-js/stage/1.js b/packages/core-js/stage/1.js index 67c1f83ccb9a..f70c13532b81 100644 --- a/packages/core-js/stage/1.js +++ b/packages/core-js/stage/1.js @@ -11,7 +11,6 @@ require('../proposals/keys-composition'); require('../proposals/math-extensions'); require('../proposals/math-signbit'); require('../proposals/number-from-string'); -require('../proposals/object-iteration'); require('../proposals/observable'); require('../proposals/pattern-matching-v2'); require('../proposals/seeded-random'); diff --git a/scripts/bundle-package/bundle-package.mjs b/scripts/bundle-package/bundle-package.mjs index d9ab1d7da832..e3ca2af4901d 100644 --- a/scripts/bundle-package/bundle-package.mjs +++ b/scripts/bundle-package/bundle-package.mjs @@ -67,7 +67,6 @@ await bundle(DENO ? { 'esnext.math.isubh', // withdrawn 'esnext.math.seeded-prng', // changing of the API, waiting for the spec text 'esnext.math.umulh', // withdrawn - 'esnext.object.iterate-values', // withdrawn 'esnext.string.at', // withdrawn 'esnext.symbol.pattern-match', // is not a part of actual proposal, replaced by esnext.symbol.matcher 'esnext.symbol.replace-all', // obsolete diff --git a/tests/compat-data/tests-coverage.mjs b/tests/compat-data/tests-coverage.mjs index 07c3bc6dea08..01e9f13a74f2 100644 --- a/tests/compat-data/tests-coverage.mjs +++ b/tests/compat-data/tests-coverage.mjs @@ -39,7 +39,6 @@ const ignore = new Set([ 'esnext.math.seeded-prng', 'esnext.math.umulh', 'esnext.number.range', - 'esnext.object.iterate-values', 'esnext.observable', 'esnext.observable.constructor', 'esnext.observable.from', diff --git a/tests/entries/unit.mjs b/tests/entries/unit.mjs index dc3a8faca615..d37fc7fad3c7 100644 --- a/tests/entries/unit.mjs +++ b/tests/entries/unit.mjs @@ -818,7 +818,6 @@ for (PATH of ['core-js-pure', 'core-js']) { ok(load(NS, 'number/virtual/clamp').call(6, 2, 4) === 4); ok(load(NS, 'number/from-string')('12', 3) === 5); ok(load(NS, 'number/range')(1, 2).next().value === 1); - ok(typeof load(NS, 'object/iterate-values')({}).next == 'function'); ok('from' in load(NS, 'observable')); ok(typeof load(NS, 'reflect/define-metadata') == 'function'); ok(typeof load(NS, 'reflect/delete-metadata') == 'function'); @@ -969,7 +968,6 @@ for (PATH of ['core-js-pure', 'core-js']) { load('proposals/number-from-string'); load('proposals/number-range'); load('proposals/object-from-entries'); - load('proposals/object-iteration'); load('proposals/object-getownpropertydescriptors'); load('proposals/object-values-entries'); load('proposals/observable'); diff --git a/tests/unit-global/esnext.object.iterate-values.js b/tests/unit-global/esnext.object.iterate-values.js deleted file mode 100644 index 76518b259ce5..000000000000 --- a/tests/unit-global/esnext.object.iterate-values.js +++ /dev/null @@ -1,31 +0,0 @@ -QUnit.test('Object.iterateValues', assert => { - const { iterateValues } = Object; - assert.isFunction(iterateValues); - assert.name(iterateValues, 'iterateValues'); - assert.arity(iterateValues, 1); - assert.looksNative(iterateValues); - assert.nonEnumerable(Object, 'iterateValues'); - - const object = { - q: 1, - w: 2, - e: 3, - }; - const iterator = iterateValues(object); - assert.isIterator(iterator); - assert.isIterable(iterator); - assert.same(iterator[Symbol.toStringTag], 'Object Iterator'); - assert.deepEqual(iterator.next(), { - value: 1, - done: false, - }); - delete object.w; - assert.deepEqual(iterator.next(), { - value: 3, - done: false, - }); - assert.deepEqual(iterator.next(), { - value: undefined, - done: true, - }); -}); diff --git a/tests/unit-pure/esnext.object.iterate-values.js b/tests/unit-pure/esnext.object.iterate-values.js deleted file mode 100644 index 709f94e544a0..000000000000 --- a/tests/unit-pure/esnext.object.iterate-values.js +++ /dev/null @@ -1,31 +0,0 @@ -import Symbol from 'core-js-pure/es/symbol'; -import iterateValues from 'core-js-pure/full/object/iterate-values'; - -QUnit.test('Object.iterateValues', assert => { - assert.isFunction(iterateValues); - assert.name(iterateValues, 'iterateValues'); - assert.arity(iterateValues, 1); - - const object = { - q: 1, - w: 2, - e: 3, - }; - const iterator = iterateValues(object); - assert.isIterator(iterator); - assert.isIterable(iterator); - assert.same(iterator[Symbol.toStringTag], 'Object Iterator'); - assert.deepEqual(iterator.next(), { - value: 1, - done: false, - }); - delete object.w; - assert.deepEqual(iterator.next(), { - value: 3, - done: false, - }); - assert.deepEqual(iterator.next(), { - value: undefined, - done: true, - }); -}); From e6e8c3634a48ec2bf033d360cb468de655d96ac9 Mon Sep 17 00:00:00 2001 From: Denis Pushkarev Date: Tue, 3 Oct 2023 05:43:58 +0700 Subject: [PATCH 027/428] drop `esnext.math.seeded-prng` (changing of the API, waiting for the spec text) --- packages/core-js-compat/src/data.mjs | 3 -- packages/core-js/full/math/index.js | 1 - packages/core-js/full/math/seeded-prng.js | 5 --- .../modules/esnext.math.seeded-prng.js | 36 ------------------- packages/core-js/proposals/seeded-random.js | 3 -- packages/core-js/stage/1.js | 1 - scripts/bundle-package/bundle-package.mjs | 1 - tests/compat-data/tests-coverage.mjs | 1 - tests/entries/unit.mjs | 2 -- tests/unit-global/esnext.math.seeded-prng.js | 28 --------------- tests/unit-pure/esnext.math.seeded-prng.js | 26 -------------- 11 files changed, 107 deletions(-) delete mode 100644 packages/core-js/full/math/seeded-prng.js delete mode 100644 packages/core-js/modules/esnext.math.seeded-prng.js delete mode 100644 packages/core-js/proposals/seeded-random.js delete mode 100644 tests/unit-global/esnext.math.seeded-prng.js delete mode 100644 tests/unit-pure/esnext.math.seeded-prng.js diff --git a/packages/core-js-compat/src/data.mjs b/packages/core-js-compat/src/data.mjs index e3b319245ec8..591d3e86a3ff 100644 --- a/packages/core-js-compat/src/data.mjs +++ b/packages/core-js-compat/src/data.mjs @@ -2624,9 +2624,6 @@ export const data = { }, 'esnext.math.scale': { }, - // TODO: Remove from `core-js@4` - 'esnext.math.seeded-prng': { - }, 'esnext.math.signbit': { }, // TODO: Remove from `core-js@4` diff --git a/packages/core-js/full/math/index.js b/packages/core-js/full/math/index.js index a9fc873539f1..861e438eea04 100644 --- a/packages/core-js/full/math/index.js +++ b/packages/core-js/full/math/index.js @@ -8,7 +8,6 @@ require('../../modules/esnext.math.fscale'); require('../../modules/esnext.math.rad-per-deg'); require('../../modules/esnext.math.radians'); require('../../modules/esnext.math.scale'); -require('../../modules/esnext.math.seeded-prng'); require('../../modules/esnext.math.signbit'); // TODO: Remove from `core-js@4` require('../../modules/esnext.math.iaddh'); diff --git a/packages/core-js/full/math/seeded-prng.js b/packages/core-js/full/math/seeded-prng.js deleted file mode 100644 index 513140a63287..000000000000 --- a/packages/core-js/full/math/seeded-prng.js +++ /dev/null @@ -1,5 +0,0 @@ -'use strict'; -require('../../modules/esnext.math.seeded-prng'); -var path = require('../../internals/path'); - -module.exports = path.Math.seededPRNG; diff --git a/packages/core-js/modules/esnext.math.seeded-prng.js b/packages/core-js/modules/esnext.math.seeded-prng.js deleted file mode 100644 index 3ca520dea4ce..000000000000 --- a/packages/core-js/modules/esnext.math.seeded-prng.js +++ /dev/null @@ -1,36 +0,0 @@ -'use strict'; -var $ = require('../internals/export'); -var anObject = require('../internals/an-object'); -var numberIsFinite = require('../internals/number-is-finite'); -var createIteratorConstructor = require('../internals/iterator-create-constructor'); -var createIterResultObject = require('../internals/create-iter-result-object'); -var InternalStateModule = require('../internals/internal-state'); - -var SEEDED_RANDOM = 'Seeded Random'; -var SEEDED_RANDOM_GENERATOR = SEEDED_RANDOM + ' Generator'; -var SEED_TYPE_ERROR = 'Math.seededPRNG() argument should have a "seed" field with a finite value.'; -var setInternalState = InternalStateModule.set; -var getInternalState = InternalStateModule.getterFor(SEEDED_RANDOM_GENERATOR); -var $TypeError = TypeError; - -var $SeededRandomGenerator = createIteratorConstructor(function SeededRandomGenerator(seed) { - setInternalState(this, { - type: SEEDED_RANDOM_GENERATOR, - seed: seed % 2147483647 - }); -}, SEEDED_RANDOM, function next() { - var state = getInternalState(this); - var seed = state.seed = (state.seed * 1103515245 + 12345) % 2147483647; - return createIterResultObject((seed & 1073741823) / 1073741823, false); -}); - -// `Math.seededPRNG` method -// https://github.com/tc39/proposal-seeded-random -// based on https://github.com/tc39/proposal-seeded-random/blob/78b8258835b57fc2100d076151ab506bc3202ae6/demo.html -$({ target: 'Math', stat: true, forced: true }, { - seededPRNG: function seededPRNG(it) { - var seed = anObject(it).seed; - if (!numberIsFinite(seed)) throw new $TypeError(SEED_TYPE_ERROR); - return new $SeededRandomGenerator(seed); - } -}); diff --git a/packages/core-js/proposals/seeded-random.js b/packages/core-js/proposals/seeded-random.js deleted file mode 100644 index fa0a58143fb7..000000000000 --- a/packages/core-js/proposals/seeded-random.js +++ /dev/null @@ -1,3 +0,0 @@ -'use strict'; -// https://github.com/tc39/proposal-seeded-random -require('../modules/esnext.math.seeded-prng'); diff --git a/packages/core-js/stage/1.js b/packages/core-js/stage/1.js index f70c13532b81..8dbaab23bd33 100644 --- a/packages/core-js/stage/1.js +++ b/packages/core-js/stage/1.js @@ -13,7 +13,6 @@ require('../proposals/math-signbit'); require('../proposals/number-from-string'); require('../proposals/observable'); require('../proposals/pattern-matching-v2'); -require('../proposals/seeded-random'); require('../proposals/string-code-points'); require('../proposals/string-cooked'); // TODO: Obsolete versions, remove from `core-js@4`: diff --git a/scripts/bundle-package/bundle-package.mjs b/scripts/bundle-package/bundle-package.mjs index e3ca2af4901d..017c72de4fe7 100644 --- a/scripts/bundle-package/bundle-package.mjs +++ b/scripts/bundle-package/bundle-package.mjs @@ -65,7 +65,6 @@ await bundle(DENO ? { 'esnext.math.iaddh', // withdrawn 'esnext.math.imulh', // withdrawn 'esnext.math.isubh', // withdrawn - 'esnext.math.seeded-prng', // changing of the API, waiting for the spec text 'esnext.math.umulh', // withdrawn 'esnext.string.at', // withdrawn 'esnext.symbol.pattern-match', // is not a part of actual proposal, replaced by esnext.symbol.matcher diff --git a/tests/compat-data/tests-coverage.mjs b/tests/compat-data/tests-coverage.mjs index 01e9f13a74f2..77a46763fa48 100644 --- a/tests/compat-data/tests-coverage.mjs +++ b/tests/compat-data/tests-coverage.mjs @@ -36,7 +36,6 @@ const ignore = new Set([ 'esnext.math.iaddh', 'esnext.math.imulh', 'esnext.math.isubh', - 'esnext.math.seeded-prng', 'esnext.math.umulh', 'esnext.number.range', 'esnext.observable', diff --git a/tests/entries/unit.mjs b/tests/entries/unit.mjs index d37fc7fad3c7..38db486f1a0d 100644 --- a/tests/entries/unit.mjs +++ b/tests/entries/unit.mjs @@ -807,7 +807,6 @@ for (PATH of ['core-js-pure', 'core-js']) { ok(load(NS, 'math/rad-per-deg') === 180 / Math.PI); ok(load(NS, 'math/radians')(180) === Math.PI); ok(load(NS, 'math/scale')(3, 1, 2, 1, 2) === 3); - ok(typeof load(NS, 'math/seeded-prng')({ seed: 42 }).next().value === 'number'); ok(load(NS, 'math/signbit')(-2) === true); ok(load(NS, 'math/umulh')(0xFFFFFFFF, 7) === 6); ok(load(NS, 'map/of')([1, 2], [3, 4]) instanceof Map); @@ -983,7 +982,6 @@ for (PATH of ['core-js-pure', 'core-js']) { load('proposals/regexp-escaping'); load('proposals/regexp-named-groups'); load('proposals/relative-indexing-method'); - load('proposals/seeded-random'); load('proposals/set-methods'); load('proposals/set-methods-v2'); load('proposals/string-at'); diff --git a/tests/unit-global/esnext.math.seeded-prng.js b/tests/unit-global/esnext.math.seeded-prng.js deleted file mode 100644 index d140dc6f9780..000000000000 --- a/tests/unit-global/esnext.math.seeded-prng.js +++ /dev/null @@ -1,28 +0,0 @@ -QUnit.test('Math.seededPRNG', assert => { - const { seededPRNG } = Math; - assert.isFunction(seededPRNG); - assert.name(seededPRNG, 'seededPRNG'); - assert.arity(seededPRNG, 1); - assert.looksNative(seededPRNG); - assert.nonEnumerable(Math, 'seededPRNG'); - - for (const gen of [seededPRNG({ seed: 42 }), seededPRNG({ seed: 42 })]) { - assert.deepEqual(gen.next(), { value: 0.16461519912315087, done: false }); - assert.deepEqual(gen.next(), { value: 0.2203933906000046, done: false }); - assert.deepEqual(gen.next(), { value: 0.8249682894209105, done: false }); - assert.deepEqual(gen.next(), { value: 0.10750079537509083, done: false }); - assert.deepEqual(gen.next(), { value: 0.004673248161257476, done: false }); - } - - for (const gen of [seededPRNG({ seed: 43 }), seededPRNG({ seed: 43 })]) { - assert.deepEqual(gen.next(), { value: 0.1923438591811283, done: false }); - assert.deepEqual(gen.next(), { value: 0.7896811578326683, done: false }); - assert.deepEqual(gen.next(), { value: 0.9518230761883996, done: false }); - assert.deepEqual(gen.next(), { value: 0.1414634102410296, done: false }); - assert.deepEqual(gen.next(), { value: 0.7379838030207752, done: false }); - } - - assert.throws(() => seededPRNG(), TypeError); - assert.throws(() => seededPRNG(5), TypeError); - assert.throws(() => seededPRNG({ seed: null }), TypeError); -}); diff --git a/tests/unit-pure/esnext.math.seeded-prng.js b/tests/unit-pure/esnext.math.seeded-prng.js deleted file mode 100644 index f6556eb7ded3..000000000000 --- a/tests/unit-pure/esnext.math.seeded-prng.js +++ /dev/null @@ -1,26 +0,0 @@ -import seededPRNG from 'core-js-pure/full/math/seeded-prng'; - -QUnit.test('Math.seededPRNG', assert => { - assert.isFunction(seededPRNG); - assert.arity(seededPRNG, 1); - - for (const gen of [seededPRNG({ seed: 42 }), seededPRNG({ seed: 42 })]) { - assert.deepEqual(gen.next(), { value: 0.16461519912315087, done: false }); - assert.deepEqual(gen.next(), { value: 0.2203933906000046, done: false }); - assert.deepEqual(gen.next(), { value: 0.8249682894209105, done: false }); - assert.deepEqual(gen.next(), { value: 0.10750079537509083, done: false }); - assert.deepEqual(gen.next(), { value: 0.004673248161257476, done: false }); - } - - for (const gen of [seededPRNG({ seed: 43 }), seededPRNG({ seed: 43 })]) { - assert.deepEqual(gen.next(), { value: 0.1923438591811283, done: false }); - assert.deepEqual(gen.next(), { value: 0.7896811578326683, done: false }); - assert.deepEqual(gen.next(), { value: 0.9518230761883996, done: false }); - assert.deepEqual(gen.next(), { value: 0.1414634102410296, done: false }); - assert.deepEqual(gen.next(), { value: 0.7379838030207752, done: false }); - } - - assert.throws(() => seededPRNG(), TypeError); - assert.throws(() => seededPRNG(5), TypeError); - assert.throws(() => seededPRNG({ seed: null }), TypeError); -}); From c36a2e6e998389a67c861c06389cf2cff3a7215e Mon Sep 17 00:00:00 2001 From: Denis Pushkarev Date: Tue, 3 Oct 2023 05:52:38 +0700 Subject: [PATCH 028/428] drop `esnext.math.iaddh` (withdrawn) --- packages/core-js-compat/src/data.mjs | 3 --- packages/core-js/full/math/iaddh.js | 5 ----- packages/core-js/full/math/index.js | 1 - packages/core-js/modules/esnext.math.iaddh.js | 14 -------------- .../proposals/efficient-64-bit-arithmetic.js | 1 - scripts/bundle-package/bundle-package.mjs | 1 - tests/compat-data/tests-coverage.mjs | 1 - tests/entries/unit.mjs | 1 - tests/unit-global/esnext.math.iaddh.js | 13 ------------- tests/unit-pure/esnext.math.iaddh.js | 11 ----------- 10 files changed, 51 deletions(-) delete mode 100644 packages/core-js/full/math/iaddh.js delete mode 100644 packages/core-js/modules/esnext.math.iaddh.js delete mode 100644 tests/unit-global/esnext.math.iaddh.js delete mode 100644 tests/unit-pure/esnext.math.iaddh.js diff --git a/packages/core-js-compat/src/data.mjs b/packages/core-js-compat/src/data.mjs index 591d3e86a3ff..813ced6405cd 100644 --- a/packages/core-js-compat/src/data.mjs +++ b/packages/core-js-compat/src/data.mjs @@ -2610,9 +2610,6 @@ export const data = { // TODO: Remove from `core-js@4` 'esnext.math.f16round': null, // TODO: Remove from `core-js@4` - 'esnext.math.iaddh': { - }, - // TODO: Remove from `core-js@4` 'esnext.math.imulh': { }, // TODO: Remove from `core-js@4` diff --git a/packages/core-js/full/math/iaddh.js b/packages/core-js/full/math/iaddh.js deleted file mode 100644 index a0c35436cc6c..000000000000 --- a/packages/core-js/full/math/iaddh.js +++ /dev/null @@ -1,5 +0,0 @@ -'use strict'; -require('../../modules/esnext.math.iaddh'); -var path = require('../../internals/path'); - -module.exports = path.Math.iaddh; diff --git a/packages/core-js/full/math/index.js b/packages/core-js/full/math/index.js index 861e438eea04..e36fa8c49ec5 100644 --- a/packages/core-js/full/math/index.js +++ b/packages/core-js/full/math/index.js @@ -10,7 +10,6 @@ require('../../modules/esnext.math.radians'); require('../../modules/esnext.math.scale'); require('../../modules/esnext.math.signbit'); // TODO: Remove from `core-js@4` -require('../../modules/esnext.math.iaddh'); require('../../modules/esnext.math.isubh'); require('../../modules/esnext.math.imulh'); require('../../modules/esnext.math.umulh'); diff --git a/packages/core-js/modules/esnext.math.iaddh.js b/packages/core-js/modules/esnext.math.iaddh.js deleted file mode 100644 index f446d88772be..000000000000 --- a/packages/core-js/modules/esnext.math.iaddh.js +++ /dev/null @@ -1,14 +0,0 @@ -'use strict'; -var $ = require('../internals/export'); - -// `Math.iaddh` method -// https://gist.github.com/BrendanEich/4294d5c212a6d2254703 -// TODO: Remove from `core-js@4` -$({ target: 'Math', stat: true, forced: true }, { - iaddh: function iaddh(x0, x1, y0, y1) { - var $x0 = x0 >>> 0; - var $x1 = x1 >>> 0; - var $y0 = y0 >>> 0; - return $x1 + (y1 >>> 0) + (($x0 & $y0 | ($x0 | $y0) & ~($x0 + $y0 >>> 0)) >>> 31) | 0; - } -}); diff --git a/packages/core-js/proposals/efficient-64-bit-arithmetic.js b/packages/core-js/proposals/efficient-64-bit-arithmetic.js index f9af1339e665..abd649ad2cf2 100644 --- a/packages/core-js/proposals/efficient-64-bit-arithmetic.js +++ b/packages/core-js/proposals/efficient-64-bit-arithmetic.js @@ -1,7 +1,6 @@ 'use strict'; // TODO: remove from `core-js@4` as withdrawn // https://gist.github.com/BrendanEich/4294d5c212a6d2254703 -require('../modules/esnext.math.iaddh'); require('../modules/esnext.math.isubh'); require('../modules/esnext.math.imulh'); require('../modules/esnext.math.umulh'); diff --git a/scripts/bundle-package/bundle-package.mjs b/scripts/bundle-package/bundle-package.mjs index 017c72de4fe7..fb34016cc465 100644 --- a/scripts/bundle-package/bundle-package.mjs +++ b/scripts/bundle-package/bundle-package.mjs @@ -62,7 +62,6 @@ await bundle(DENO ? { 'esnext.array.filter-out', // obsolete 'esnext.map.update-or-insert', // obsolete 'esnext.map.upsert', // obsolete - 'esnext.math.iaddh', // withdrawn 'esnext.math.imulh', // withdrawn 'esnext.math.isubh', // withdrawn 'esnext.math.umulh', // withdrawn diff --git a/tests/compat-data/tests-coverage.mjs b/tests/compat-data/tests-coverage.mjs index 77a46763fa48..4b25125c3023 100644 --- a/tests/compat-data/tests-coverage.mjs +++ b/tests/compat-data/tests-coverage.mjs @@ -33,7 +33,6 @@ const ignore = new Set([ 'esnext.map.update-or-insert', 'esnext.map.upsert', 'esnext.math.clamp', - 'esnext.math.iaddh', 'esnext.math.imulh', 'esnext.math.isubh', 'esnext.math.umulh', diff --git a/tests/entries/unit.mjs b/tests/entries/unit.mjs index 38db486f1a0d..289eca22173e 100644 --- a/tests/entries/unit.mjs +++ b/tests/entries/unit.mjs @@ -801,7 +801,6 @@ for (PATH of ['core-js-pure', 'core-js']) { ok(load(NS, 'math/deg-per-rad') === Math.PI / 180); ok(load(NS, 'math/degrees')(Math.PI) === 180); ok(load(NS, 'math/fscale')(3, 1, 2, 1, 2) === 3); - ok(load(NS, 'math/iaddh')(3, 2, 0xFFFFFFFF, 4) === 7); ok(load(NS, 'math/isubh')(3, 4, 0xFFFFFFFF, 2) === 1); ok(load(NS, 'math/imulh')(0xFFFFFFFF, 7) === -1); ok(load(NS, 'math/rad-per-deg') === 180 / Math.PI); diff --git a/tests/unit-global/esnext.math.iaddh.js b/tests/unit-global/esnext.math.iaddh.js deleted file mode 100644 index 040a763f0b71..000000000000 --- a/tests/unit-global/esnext.math.iaddh.js +++ /dev/null @@ -1,13 +0,0 @@ -QUnit.test('Math.iaddh', assert => { - const { iaddh } = Math; - assert.isFunction(iaddh); - assert.name(iaddh, 'iaddh'); - assert.arity(iaddh, 4); - assert.looksNative(iaddh); - assert.nonEnumerable(Math, 'iaddh'); - assert.same(iaddh(0, 2, 1, 0), 2); - assert.same(iaddh(0, 4, 1, 1), 5); - assert.same(iaddh(2, 4, 1, 1), 5); - assert.same(iaddh(0xFFFFFFFF, 4, 1, 1), 6); - assert.same(iaddh(1, 4, 0xFFFFFFFF, 1), 6); -}); diff --git a/tests/unit-pure/esnext.math.iaddh.js b/tests/unit-pure/esnext.math.iaddh.js deleted file mode 100644 index bc9f8be567f1..000000000000 --- a/tests/unit-pure/esnext.math.iaddh.js +++ /dev/null @@ -1,11 +0,0 @@ -import iaddh from 'core-js-pure/full/math/iaddh'; - -QUnit.test('Math.iaddh', assert => { - assert.isFunction(iaddh); - assert.arity(iaddh, 4); - assert.same(iaddh(0, 2, 1, 0), 2); - assert.same(iaddh(0, 4, 1, 1), 5); - assert.same(iaddh(2, 4, 1, 1), 5); - assert.same(iaddh(0xFFFFFFFF, 4, 1, 1), 6); - assert.same(iaddh(1, 4, 0xFFFFFFFF, 1), 6); -}); From c592bbbe425954d42b6c1762f6189b75764c073d Mon Sep 17 00:00:00 2001 From: Denis Pushkarev Date: Tue, 3 Oct 2023 06:00:34 +0700 Subject: [PATCH 029/428] drop `esnext.math.imulh` (withdrawn) --- packages/core-js-compat/src/data.mjs | 3 --- packages/core-js/full/math/imulh.js | 5 ----- packages/core-js/full/math/index.js | 1 - packages/core-js/modules/esnext.math.imulh.js | 19 ------------------- .../proposals/efficient-64-bit-arithmetic.js | 1 - scripts/bundle-package/bundle-package.mjs | 1 - tests/compat-data/tests-coverage.mjs | 1 - tests/entries/unit.mjs | 1 - tests/unit-global/esnext.math.imulh.js | 12 ------------ tests/unit-pure/esnext.math.imulh.js | 10 ---------- 10 files changed, 54 deletions(-) delete mode 100644 packages/core-js/full/math/imulh.js delete mode 100644 packages/core-js/modules/esnext.math.imulh.js delete mode 100644 tests/unit-global/esnext.math.imulh.js delete mode 100644 tests/unit-pure/esnext.math.imulh.js diff --git a/packages/core-js-compat/src/data.mjs b/packages/core-js-compat/src/data.mjs index 813ced6405cd..7b6a5f68517b 100644 --- a/packages/core-js-compat/src/data.mjs +++ b/packages/core-js-compat/src/data.mjs @@ -2610,9 +2610,6 @@ export const data = { // TODO: Remove from `core-js@4` 'esnext.math.f16round': null, // TODO: Remove from `core-js@4` - 'esnext.math.imulh': { - }, - // TODO: Remove from `core-js@4` 'esnext.math.isubh': { }, 'esnext.math.rad-per-deg': { diff --git a/packages/core-js/full/math/imulh.js b/packages/core-js/full/math/imulh.js deleted file mode 100644 index ee0b2675400e..000000000000 --- a/packages/core-js/full/math/imulh.js +++ /dev/null @@ -1,5 +0,0 @@ -'use strict'; -require('../../modules/esnext.math.imulh'); -var path = require('../../internals/path'); - -module.exports = path.Math.imulh; diff --git a/packages/core-js/full/math/index.js b/packages/core-js/full/math/index.js index e36fa8c49ec5..0f1dc96d7f17 100644 --- a/packages/core-js/full/math/index.js +++ b/packages/core-js/full/math/index.js @@ -11,7 +11,6 @@ require('../../modules/esnext.math.scale'); require('../../modules/esnext.math.signbit'); // TODO: Remove from `core-js@4` require('../../modules/esnext.math.isubh'); -require('../../modules/esnext.math.imulh'); require('../../modules/esnext.math.umulh'); module.exports = parent; diff --git a/packages/core-js/modules/esnext.math.imulh.js b/packages/core-js/modules/esnext.math.imulh.js deleted file mode 100644 index b3c8ad6f63c6..000000000000 --- a/packages/core-js/modules/esnext.math.imulh.js +++ /dev/null @@ -1,19 +0,0 @@ -'use strict'; -var $ = require('../internals/export'); - -// `Math.imulh` method -// https://gist.github.com/BrendanEich/4294d5c212a6d2254703 -// TODO: Remove from `core-js@4` -$({ target: 'Math', stat: true, forced: true }, { - imulh: function imulh(u, v) { - var UINT16 = 0xFFFF; - var $u = +u; - var $v = +v; - var u0 = $u & UINT16; - var v0 = $v & UINT16; - var u1 = $u >> 16; - var v1 = $v >> 16; - var t = (u1 * v0 >>> 0) + (u0 * v0 >>> 16); - return u1 * v1 + (t >> 16) + ((u0 * v1 >>> 0) + (t & UINT16) >> 16); - } -}); diff --git a/packages/core-js/proposals/efficient-64-bit-arithmetic.js b/packages/core-js/proposals/efficient-64-bit-arithmetic.js index abd649ad2cf2..674b08d73657 100644 --- a/packages/core-js/proposals/efficient-64-bit-arithmetic.js +++ b/packages/core-js/proposals/efficient-64-bit-arithmetic.js @@ -2,5 +2,4 @@ // TODO: remove from `core-js@4` as withdrawn // https://gist.github.com/BrendanEich/4294d5c212a6d2254703 require('../modules/esnext.math.isubh'); -require('../modules/esnext.math.imulh'); require('../modules/esnext.math.umulh'); diff --git a/scripts/bundle-package/bundle-package.mjs b/scripts/bundle-package/bundle-package.mjs index fb34016cc465..b4d33b223c89 100644 --- a/scripts/bundle-package/bundle-package.mjs +++ b/scripts/bundle-package/bundle-package.mjs @@ -62,7 +62,6 @@ await bundle(DENO ? { 'esnext.array.filter-out', // obsolete 'esnext.map.update-or-insert', // obsolete 'esnext.map.upsert', // obsolete - 'esnext.math.imulh', // withdrawn 'esnext.math.isubh', // withdrawn 'esnext.math.umulh', // withdrawn 'esnext.string.at', // withdrawn diff --git a/tests/compat-data/tests-coverage.mjs b/tests/compat-data/tests-coverage.mjs index 4b25125c3023..96ba1e7dda4d 100644 --- a/tests/compat-data/tests-coverage.mjs +++ b/tests/compat-data/tests-coverage.mjs @@ -33,7 +33,6 @@ const ignore = new Set([ 'esnext.map.update-or-insert', 'esnext.map.upsert', 'esnext.math.clamp', - 'esnext.math.imulh', 'esnext.math.isubh', 'esnext.math.umulh', 'esnext.number.range', diff --git a/tests/entries/unit.mjs b/tests/entries/unit.mjs index 289eca22173e..6b3d44a0584f 100644 --- a/tests/entries/unit.mjs +++ b/tests/entries/unit.mjs @@ -802,7 +802,6 @@ for (PATH of ['core-js-pure', 'core-js']) { ok(load(NS, 'math/degrees')(Math.PI) === 180); ok(load(NS, 'math/fscale')(3, 1, 2, 1, 2) === 3); ok(load(NS, 'math/isubh')(3, 4, 0xFFFFFFFF, 2) === 1); - ok(load(NS, 'math/imulh')(0xFFFFFFFF, 7) === -1); ok(load(NS, 'math/rad-per-deg') === 180 / Math.PI); ok(load(NS, 'math/radians')(180) === Math.PI); ok(load(NS, 'math/scale')(3, 1, 2, 1, 2) === 3); diff --git a/tests/unit-global/esnext.math.imulh.js b/tests/unit-global/esnext.math.imulh.js deleted file mode 100644 index 3c4fa472089f..000000000000 --- a/tests/unit-global/esnext.math.imulh.js +++ /dev/null @@ -1,12 +0,0 @@ -QUnit.test('Math.imulh', assert => { - const { imulh } = Math; - assert.isFunction(imulh); - assert.name(imulh, 'imulh'); - assert.arity(imulh, 2); - assert.looksNative(imulh); - assert.nonEnumerable(Math, 'imulh'); - assert.same(imulh(0xFFFFFFFF, 7), -1); - assert.same(imulh(0xFFFFFFF, 77), 4); - assert.same(imulh(1, 7), 0); - assert.same(imulh(-1, 7), -1); -}); diff --git a/tests/unit-pure/esnext.math.imulh.js b/tests/unit-pure/esnext.math.imulh.js deleted file mode 100644 index 96e01346e86f..000000000000 --- a/tests/unit-pure/esnext.math.imulh.js +++ /dev/null @@ -1,10 +0,0 @@ -import imulh from 'core-js-pure/full/math/imulh'; - -QUnit.test('Math.imulh', assert => { - assert.isFunction(imulh); - assert.arity(imulh, 2); - assert.same(imulh(0xFFFFFFFF, 7), -1); - assert.same(imulh(0xFFFFFFF, 77), 4); - assert.same(imulh(1, 7), 0); - assert.same(imulh(-1, 7), -1); -}); From dd4323a3b8b86c442708b388e7d8ad96f9b5d281 Mon Sep 17 00:00:00 2001 From: Denis Pushkarev Date: Tue, 3 Oct 2023 06:06:30 +0700 Subject: [PATCH 030/428] drop `esnext.math.isubh` (withdrawn) --- packages/core-js-compat/src/data.mjs | 4 ---- packages/core-js/full/math/index.js | 1 - packages/core-js/full/math/isubh.js | 5 ----- packages/core-js/modules/esnext.math.isubh.js | 14 -------------- .../proposals/efficient-64-bit-arithmetic.js | 1 - scripts/bundle-package/bundle-package.mjs | 1 - tests/compat-data/tests-coverage.mjs | 1 - tests/entries/unit.mjs | 1 - tests/unit-global/esnext.math.isubh.js | 13 ------------- tests/unit-pure/esnext.math.isubh.js | 11 ----------- 10 files changed, 52 deletions(-) delete mode 100644 packages/core-js/full/math/isubh.js delete mode 100644 packages/core-js/modules/esnext.math.isubh.js delete mode 100644 tests/unit-global/esnext.math.isubh.js delete mode 100644 tests/unit-pure/esnext.math.isubh.js diff --git a/packages/core-js-compat/src/data.mjs b/packages/core-js-compat/src/data.mjs index 7b6a5f68517b..aeaa0c7fca42 100644 --- a/packages/core-js-compat/src/data.mjs +++ b/packages/core-js-compat/src/data.mjs @@ -2607,11 +2607,7 @@ export const data = { }, 'esnext.math.fscale': { }, - // TODO: Remove from `core-js@4` 'esnext.math.f16round': null, - // TODO: Remove from `core-js@4` - 'esnext.math.isubh': { - }, 'esnext.math.rad-per-deg': { }, 'esnext.math.radians': { diff --git a/packages/core-js/full/math/index.js b/packages/core-js/full/math/index.js index 0f1dc96d7f17..f84af6977276 100644 --- a/packages/core-js/full/math/index.js +++ b/packages/core-js/full/math/index.js @@ -10,7 +10,6 @@ require('../../modules/esnext.math.radians'); require('../../modules/esnext.math.scale'); require('../../modules/esnext.math.signbit'); // TODO: Remove from `core-js@4` -require('../../modules/esnext.math.isubh'); require('../../modules/esnext.math.umulh'); module.exports = parent; diff --git a/packages/core-js/full/math/isubh.js b/packages/core-js/full/math/isubh.js deleted file mode 100644 index 57ff251a018f..000000000000 --- a/packages/core-js/full/math/isubh.js +++ /dev/null @@ -1,5 +0,0 @@ -'use strict'; -require('../../modules/esnext.math.isubh'); -var path = require('../../internals/path'); - -module.exports = path.Math.isubh; diff --git a/packages/core-js/modules/esnext.math.isubh.js b/packages/core-js/modules/esnext.math.isubh.js deleted file mode 100644 index 92674e515faf..000000000000 --- a/packages/core-js/modules/esnext.math.isubh.js +++ /dev/null @@ -1,14 +0,0 @@ -'use strict'; -var $ = require('../internals/export'); - -// `Math.isubh` method -// https://gist.github.com/BrendanEich/4294d5c212a6d2254703 -// TODO: Remove from `core-js@4` -$({ target: 'Math', stat: true, forced: true }, { - isubh: function isubh(x0, x1, y0, y1) { - var $x0 = x0 >>> 0; - var $x1 = x1 >>> 0; - var $y0 = y0 >>> 0; - return $x1 - (y1 >>> 0) - ((~$x0 & $y0 | ~($x0 ^ $y0) & $x0 - $y0 >>> 0) >>> 31) | 0; - } -}); diff --git a/packages/core-js/proposals/efficient-64-bit-arithmetic.js b/packages/core-js/proposals/efficient-64-bit-arithmetic.js index 674b08d73657..6a0fa7aadf3b 100644 --- a/packages/core-js/proposals/efficient-64-bit-arithmetic.js +++ b/packages/core-js/proposals/efficient-64-bit-arithmetic.js @@ -1,5 +1,4 @@ 'use strict'; // TODO: remove from `core-js@4` as withdrawn // https://gist.github.com/BrendanEich/4294d5c212a6d2254703 -require('../modules/esnext.math.isubh'); require('../modules/esnext.math.umulh'); diff --git a/scripts/bundle-package/bundle-package.mjs b/scripts/bundle-package/bundle-package.mjs index b4d33b223c89..e21372d483ec 100644 --- a/scripts/bundle-package/bundle-package.mjs +++ b/scripts/bundle-package/bundle-package.mjs @@ -62,7 +62,6 @@ await bundle(DENO ? { 'esnext.array.filter-out', // obsolete 'esnext.map.update-or-insert', // obsolete 'esnext.map.upsert', // obsolete - 'esnext.math.isubh', // withdrawn 'esnext.math.umulh', // withdrawn 'esnext.string.at', // withdrawn 'esnext.symbol.pattern-match', // is not a part of actual proposal, replaced by esnext.symbol.matcher diff --git a/tests/compat-data/tests-coverage.mjs b/tests/compat-data/tests-coverage.mjs index 96ba1e7dda4d..388697733688 100644 --- a/tests/compat-data/tests-coverage.mjs +++ b/tests/compat-data/tests-coverage.mjs @@ -33,7 +33,6 @@ const ignore = new Set([ 'esnext.map.update-or-insert', 'esnext.map.upsert', 'esnext.math.clamp', - 'esnext.math.isubh', 'esnext.math.umulh', 'esnext.number.range', 'esnext.observable', diff --git a/tests/entries/unit.mjs b/tests/entries/unit.mjs index 6b3d44a0584f..7c4adc5b9ae2 100644 --- a/tests/entries/unit.mjs +++ b/tests/entries/unit.mjs @@ -801,7 +801,6 @@ for (PATH of ['core-js-pure', 'core-js']) { ok(load(NS, 'math/deg-per-rad') === Math.PI / 180); ok(load(NS, 'math/degrees')(Math.PI) === 180); ok(load(NS, 'math/fscale')(3, 1, 2, 1, 2) === 3); - ok(load(NS, 'math/isubh')(3, 4, 0xFFFFFFFF, 2) === 1); ok(load(NS, 'math/rad-per-deg') === 180 / Math.PI); ok(load(NS, 'math/radians')(180) === Math.PI); ok(load(NS, 'math/scale')(3, 1, 2, 1, 2) === 3); diff --git a/tests/unit-global/esnext.math.isubh.js b/tests/unit-global/esnext.math.isubh.js deleted file mode 100644 index 468b697804eb..000000000000 --- a/tests/unit-global/esnext.math.isubh.js +++ /dev/null @@ -1,13 +0,0 @@ -QUnit.test('Math.isubh', assert => { - const { isubh } = Math; - assert.isFunction(isubh); - assert.name(isubh, 'isubh'); - assert.arity(isubh, 4); - assert.looksNative(isubh); - assert.nonEnumerable(Math, 'isubh'); - assert.same(isubh(0, 2, 1, 0), 1); - assert.same(isubh(0, 4, 1, 1), 2); - assert.same(isubh(2, 4, 1, 1), 3); - assert.same(isubh(0xFFFFFFFF, 4, 1, 1), 3); - assert.same(isubh(1, 4, 0xFFFFFFFF, 1), 2); -}); diff --git a/tests/unit-pure/esnext.math.isubh.js b/tests/unit-pure/esnext.math.isubh.js deleted file mode 100644 index e0e6b8e00313..000000000000 --- a/tests/unit-pure/esnext.math.isubh.js +++ /dev/null @@ -1,11 +0,0 @@ -import isubh from 'core-js-pure/full/math/isubh'; - -QUnit.test('Math.isubh', assert => { - assert.isFunction(isubh); - assert.arity(isubh, 4); - assert.same(isubh(0, 2, 1, 0), 1); - assert.same(isubh(0, 4, 1, 1), 2); - assert.same(isubh(2, 4, 1, 1), 3); - assert.same(isubh(0xFFFFFFFF, 4, 1, 1), 3); - assert.same(isubh(1, 4, 0xFFFFFFFF, 1), 2); -}); From d8b3346f77883c5c2566bcc48a55d89a2bc4fa10 Mon Sep 17 00:00:00 2001 From: Denis Pushkarev Date: Tue, 3 Oct 2023 06:13:44 +0700 Subject: [PATCH 031/428] drop `esnext.math.umulh` (withdrawn) --- packages/core-js-compat/src/data.mjs | 3 --- packages/core-js/full/math/index.js | 2 -- packages/core-js/full/math/umulh.js | 5 ----- packages/core-js/modules/esnext.math.umulh.js | 19 ------------------- .../proposals/efficient-64-bit-arithmetic.js | 4 ---- packages/core-js/stage/0.js | 1 - scripts/bundle-package/bundle-package.mjs | 1 - tests/compat-data/tests-coverage.mjs | 1 - tests/entries/unit.mjs | 2 -- tests/unit-global/esnext.math.umulh.js | 12 ------------ tests/unit-pure/esnext.math.umulh.js | 10 ---------- 11 files changed, 60 deletions(-) delete mode 100644 packages/core-js/full/math/umulh.js delete mode 100644 packages/core-js/modules/esnext.math.umulh.js delete mode 100644 packages/core-js/proposals/efficient-64-bit-arithmetic.js delete mode 100644 tests/unit-global/esnext.math.umulh.js delete mode 100644 tests/unit-pure/esnext.math.umulh.js diff --git a/packages/core-js-compat/src/data.mjs b/packages/core-js-compat/src/data.mjs index aeaa0c7fca42..483571ec849d 100644 --- a/packages/core-js-compat/src/data.mjs +++ b/packages/core-js-compat/src/data.mjs @@ -2618,9 +2618,6 @@ export const data = { }, // TODO: Remove from `core-js@4` 'esnext.math.sum-precise': null, - // TODO: Remove from `core-js@4` - 'esnext.math.umulh': { - }, 'esnext.number.clamp': { }, 'esnext.number.from-string': { diff --git a/packages/core-js/full/math/index.js b/packages/core-js/full/math/index.js index f84af6977276..b3d9fc020c7a 100644 --- a/packages/core-js/full/math/index.js +++ b/packages/core-js/full/math/index.js @@ -9,7 +9,5 @@ require('../../modules/esnext.math.rad-per-deg'); require('../../modules/esnext.math.radians'); require('../../modules/esnext.math.scale'); require('../../modules/esnext.math.signbit'); -// TODO: Remove from `core-js@4` -require('../../modules/esnext.math.umulh'); module.exports = parent; diff --git a/packages/core-js/full/math/umulh.js b/packages/core-js/full/math/umulh.js deleted file mode 100644 index 2cdd561de5fd..000000000000 --- a/packages/core-js/full/math/umulh.js +++ /dev/null @@ -1,5 +0,0 @@ -'use strict'; -require('../../modules/esnext.math.umulh'); -var path = require('../../internals/path'); - -module.exports = path.Math.umulh; diff --git a/packages/core-js/modules/esnext.math.umulh.js b/packages/core-js/modules/esnext.math.umulh.js deleted file mode 100644 index db995ce87142..000000000000 --- a/packages/core-js/modules/esnext.math.umulh.js +++ /dev/null @@ -1,19 +0,0 @@ -'use strict'; -var $ = require('../internals/export'); - -// `Math.umulh` method -// https://gist.github.com/BrendanEich/4294d5c212a6d2254703 -// TODO: Remove from `core-js@4` -$({ target: 'Math', stat: true, forced: true }, { - umulh: function umulh(u, v) { - var UINT16 = 0xFFFF; - var $u = +u; - var $v = +v; - var u0 = $u & UINT16; - var v0 = $v & UINT16; - var u1 = $u >>> 16; - var v1 = $v >>> 16; - var t = (u1 * v0 >>> 0) + (u0 * v0 >>> 16); - return u1 * v1 + (t >>> 16) + ((u0 * v1 >>> 0) + (t & UINT16) >>> 16); - } -}); diff --git a/packages/core-js/proposals/efficient-64-bit-arithmetic.js b/packages/core-js/proposals/efficient-64-bit-arithmetic.js deleted file mode 100644 index 6a0fa7aadf3b..000000000000 --- a/packages/core-js/proposals/efficient-64-bit-arithmetic.js +++ /dev/null @@ -1,4 +0,0 @@ -'use strict'; -// TODO: remove from `core-js@4` as withdrawn -// https://gist.github.com/BrendanEich/4294d5c212a6d2254703 -require('../modules/esnext.math.umulh'); diff --git a/packages/core-js/stage/0.js b/packages/core-js/stage/0.js index 888b810b1601..a1d8f7388a0f 100644 --- a/packages/core-js/stage/0.js +++ b/packages/core-js/stage/0.js @@ -1,7 +1,6 @@ 'use strict'; var parent = require('./1'); -require('../proposals/efficient-64-bit-arithmetic'); require('../proposals/function-demethodize'); require('../proposals/function-is-callable-is-constructor'); require('../proposals/string-at'); diff --git a/scripts/bundle-package/bundle-package.mjs b/scripts/bundle-package/bundle-package.mjs index e21372d483ec..b84590746dea 100644 --- a/scripts/bundle-package/bundle-package.mjs +++ b/scripts/bundle-package/bundle-package.mjs @@ -62,7 +62,6 @@ await bundle(DENO ? { 'esnext.array.filter-out', // obsolete 'esnext.map.update-or-insert', // obsolete 'esnext.map.upsert', // obsolete - 'esnext.math.umulh', // withdrawn 'esnext.string.at', // withdrawn 'esnext.symbol.pattern-match', // is not a part of actual proposal, replaced by esnext.symbol.matcher 'esnext.symbol.replace-all', // obsolete diff --git a/tests/compat-data/tests-coverage.mjs b/tests/compat-data/tests-coverage.mjs index 388697733688..8a5c1a6efbac 100644 --- a/tests/compat-data/tests-coverage.mjs +++ b/tests/compat-data/tests-coverage.mjs @@ -33,7 +33,6 @@ const ignore = new Set([ 'esnext.map.update-or-insert', 'esnext.map.upsert', 'esnext.math.clamp', - 'esnext.math.umulh', 'esnext.number.range', 'esnext.observable', 'esnext.observable.constructor', diff --git a/tests/entries/unit.mjs b/tests/entries/unit.mjs index 7c4adc5b9ae2..64ec7b5bac54 100644 --- a/tests/entries/unit.mjs +++ b/tests/entries/unit.mjs @@ -805,7 +805,6 @@ for (PATH of ['core-js-pure', 'core-js']) { ok(load(NS, 'math/radians')(180) === Math.PI); ok(load(NS, 'math/scale')(3, 1, 2, 1, 2) === 3); ok(load(NS, 'math/signbit')(-2) === true); - ok(load(NS, 'math/umulh')(0xFFFFFFFF, 7) === 6); ok(load(NS, 'map/of')([1, 2], [3, 4]) instanceof Map); ok(load(NS, 'map/reduce')(new Map([[1, 2], [2, 3], [3, 4]]), (a, b) => a + b) === 9); ok(load(NS, 'map/some')(new Map([[1, 2], [2, 3], [3, 4]]), it => it % 2) === true); @@ -932,7 +931,6 @@ for (PATH of ['core-js-pure', 'core-js']) { load('proposals/decorator-metadata'); load('proposals/decorator-metadata-v2'); load('proposals/decorators'); - load('proposals/efficient-64-bit-arithmetic'); load('proposals/error-cause'); load('proposals/explicit-resource-management'); load('proposals/extractors'); diff --git a/tests/unit-global/esnext.math.umulh.js b/tests/unit-global/esnext.math.umulh.js deleted file mode 100644 index 41fd5405059c..000000000000 --- a/tests/unit-global/esnext.math.umulh.js +++ /dev/null @@ -1,12 +0,0 @@ -QUnit.test('Math.umulh', assert => { - const { umulh } = Math; - assert.isFunction(umulh); - assert.name(umulh, 'umulh'); - assert.arity(umulh, 2); - assert.looksNative(umulh); - assert.nonEnumerable(Math, 'umulh'); - assert.same(umulh(0xFFFFFFFF, 7), 6); - assert.same(umulh(0xFFFFFFF, 77), 4); - assert.same(umulh(1, 7), 0); - assert.same(umulh(-1, 7), 6); -}); diff --git a/tests/unit-pure/esnext.math.umulh.js b/tests/unit-pure/esnext.math.umulh.js deleted file mode 100644 index 0d123a815976..000000000000 --- a/tests/unit-pure/esnext.math.umulh.js +++ /dev/null @@ -1,10 +0,0 @@ -import umulh from 'core-js-pure/full/math/umulh'; - -QUnit.test('Math.umulh', assert => { - assert.isFunction(umulh); - assert.arity(umulh, 2); - assert.same(umulh(0xFFFFFFFF, 7), 6); - assert.same(umulh(0xFFFFFFF, 77), 4); - assert.same(umulh(1, 7), 0); - assert.same(umulh(-1, 7), 6); -}); From 18308b42ba3f3e45658160173f2fa0c7db55f62b Mon Sep 17 00:00:00 2001 From: Denis Pushkarev Date: Tue, 3 Oct 2023 06:26:54 +0700 Subject: [PATCH 032/428] drop `esnext.string.at` (old version, replace by module with the same name with actual behavior) --- packages/core-js-compat/src/data.mjs | 3 - packages/core-js/full/string/at.js | 2 - packages/core-js/full/string/index.js | 2 - packages/core-js/full/string/virtual/at.js | 7 +- packages/core-js/full/string/virtual/index.js | 2 - packages/core-js/modules/esnext.string.at.js | 19 ---- packages/core-js/proposals/string-at.js | 3 - packages/core-js/stage/0.js | 1 - scripts/bundle-package/bundle-package.mjs | 1 - tests/compat-data/tests-coverage.mjs | 1 - tests/entries/unit.mjs | 1 - tests/unit-global/es.string.at-alternative.js | 3 +- tests/unit-global/esnext.string.at.js | 97 ------------------- tests/unit-pure/es.string.at-alternative.js | 3 +- tests/unit-pure/esnext.string.at.js | 94 ------------------ 15 files changed, 4 insertions(+), 235 deletions(-) delete mode 100644 packages/core-js/modules/esnext.string.at.js delete mode 100644 packages/core-js/proposals/string-at.js delete mode 100644 tests/unit-global/esnext.string.at.js delete mode 100644 tests/unit-pure/esnext.string.at.js diff --git a/packages/core-js-compat/src/data.mjs b/packages/core-js-compat/src/data.mjs index 483571ec849d..81ad488b6d23 100644 --- a/packages/core-js-compat/src/data.mjs +++ b/packages/core-js-compat/src/data.mjs @@ -2726,9 +2726,6 @@ export const data = { // TODO: Remove from `core-js@4` 'esnext.set.union': { }, - // TODO: Remove from `core-js@4` - 'esnext.string.at': { - }, 'esnext.string.cooked': { }, 'esnext.string.code-points': { diff --git a/packages/core-js/full/string/at.js b/packages/core-js/full/string/at.js index a3903ea1e232..9082fcb86f9b 100644 --- a/packages/core-js/full/string/at.js +++ b/packages/core-js/full/string/at.js @@ -1,6 +1,4 @@ 'use strict'; require('../../actual/string/at'); -// TODO: Remove from `core-js@4` -require('../../modules/esnext.string.at'); module.exports = require('../../internals/entry-unbind')('String', 'at'); diff --git a/packages/core-js/full/string/index.js b/packages/core-js/full/string/index.js index 9010f755d01c..214c4e60d0cf 100644 --- a/packages/core-js/full/string/index.js +++ b/packages/core-js/full/string/index.js @@ -1,8 +1,6 @@ 'use strict'; var parent = require('../../actual/string'); require('../../modules/es.weak-map'); -// TODO: remove from `core-js@4` -require('../../modules/esnext.string.at'); require('../../modules/esnext.string.cooked'); require('../../modules/esnext.string.code-points'); require('../../modules/esnext.string.dedent'); diff --git a/packages/core-js/full/string/virtual/at.js b/packages/core-js/full/string/virtual/at.js index 68c432c4f028..a65a53acc79f 100644 --- a/packages/core-js/full/string/virtual/at.js +++ b/packages/core-js/full/string/virtual/at.js @@ -1,7 +1,4 @@ 'use strict'; -require('../../../actual/string/virtual/at'); -// TODO: Remove from `core-js@4` -require('../../../modules/esnext.string.at'); -var getBuiltInPrototypeMethod = require('../../../internals/get-built-in-prototype-method'); +var parent = require('../../../actual/string/virtual/at'); -module.exports = getBuiltInPrototypeMethod('String', 'at'); +module.exports = parent; diff --git a/packages/core-js/full/string/virtual/index.js b/packages/core-js/full/string/virtual/index.js index 111fd580f88b..e1eb46c29a2d 100644 --- a/packages/core-js/full/string/virtual/index.js +++ b/packages/core-js/full/string/virtual/index.js @@ -1,7 +1,5 @@ 'use strict'; var parent = require('../../../actual/string/virtual'); -// TODO: remove from `core-js@4` -require('../../../modules/esnext.string.at'); require('../../../modules/esnext.string.code-points'); module.exports = parent; diff --git a/packages/core-js/modules/esnext.string.at.js b/packages/core-js/modules/esnext.string.at.js deleted file mode 100644 index 88d4c951abb0..000000000000 --- a/packages/core-js/modules/esnext.string.at.js +++ /dev/null @@ -1,19 +0,0 @@ -'use strict'; -// TODO: Remove from `core-js@4` -var $ = require('../internals/export'); -var charAt = require('../internals/string-multibyte').charAt; -var requireObjectCoercible = require('../internals/require-object-coercible'); -var toIntegerOrInfinity = require('../internals/to-integer-or-infinity'); -var toString = require('../internals/to-string'); - -// `String.prototype.at` method -// https://github.com/mathiasbynens/String.prototype.at -$({ target: 'String', proto: true, forced: true }, { - at: function at(index) { - var S = toString(requireObjectCoercible(this)); - var len = S.length; - var relativeIndex = toIntegerOrInfinity(index); - var k = relativeIndex >= 0 ? relativeIndex : len + relativeIndex; - return (k < 0 || k >= len) ? undefined : charAt(S, k); - } -}); diff --git a/packages/core-js/proposals/string-at.js b/packages/core-js/proposals/string-at.js deleted file mode 100644 index bf57aab304a3..000000000000 --- a/packages/core-js/proposals/string-at.js +++ /dev/null @@ -1,3 +0,0 @@ -'use strict'; -// https://github.com/mathiasbynens/String.prototype.at -require('../modules/esnext.string.at'); diff --git a/packages/core-js/stage/0.js b/packages/core-js/stage/0.js index a1d8f7388a0f..0e2e1bf62d15 100644 --- a/packages/core-js/stage/0.js +++ b/packages/core-js/stage/0.js @@ -3,7 +3,6 @@ var parent = require('./1'); require('../proposals/function-demethodize'); require('../proposals/function-is-callable-is-constructor'); -require('../proposals/string-at'); require('../proposals/url'); // TODO: Obsolete versions, remove from `core-js@4`: require('../proposals/array-filtering'); diff --git a/scripts/bundle-package/bundle-package.mjs b/scripts/bundle-package/bundle-package.mjs index b84590746dea..52ce51c002de 100644 --- a/scripts/bundle-package/bundle-package.mjs +++ b/scripts/bundle-package/bundle-package.mjs @@ -62,7 +62,6 @@ await bundle(DENO ? { 'esnext.array.filter-out', // obsolete 'esnext.map.update-or-insert', // obsolete 'esnext.map.upsert', // obsolete - 'esnext.string.at', // withdrawn 'esnext.symbol.pattern-match', // is not a part of actual proposal, replaced by esnext.symbol.matcher 'esnext.symbol.replace-all', // obsolete 'esnext.typed-array.filter-out', // obsolete diff --git a/tests/compat-data/tests-coverage.mjs b/tests/compat-data/tests-coverage.mjs index 8a5c1a6efbac..45c914a02db9 100644 --- a/tests/compat-data/tests-coverage.mjs +++ b/tests/compat-data/tests-coverage.mjs @@ -54,7 +54,6 @@ const ignore = new Set([ 'esnext.set.is-superset-of', 'esnext.set.symmetric-difference', 'esnext.set.union', - 'esnext.string.at', 'esnext.symbol.is-registered', 'esnext.symbol.is-well-known', 'esnext.symbol.matcher', diff --git a/tests/entries/unit.mjs b/tests/entries/unit.mjs index 64ec7b5bac54..140c54b1205e 100644 --- a/tests/entries/unit.mjs +++ b/tests/entries/unit.mjs @@ -979,7 +979,6 @@ for (PATH of ['core-js-pure', 'core-js']) { load('proposals/relative-indexing-method'); load('proposals/set-methods'); load('proposals/set-methods-v2'); - load('proposals/string-at'); load('proposals/string-cooked'); load('proposals/string-code-points'); load('proposals/string-dedent'); diff --git a/tests/unit-global/es.string.at-alternative.js b/tests/unit-global/es.string.at-alternative.js index b776df5c085a..f3b5901ec813 100644 --- a/tests/unit-global/es.string.at-alternative.js +++ b/tests/unit-global/es.string.at-alternative.js @@ -21,8 +21,7 @@ QUnit.test('String#at', assert => { assert.same('1', '1'.at(NaN)); assert.same('1', '1'.at()); assert.same('1', '123'.at(-0)); - // TODO: disabled by default because of the conflict with old proposal - // assert.same('\uD842', '𠮷'.at()); + assert.same('\uD842', '𠮷'.at()); assert.same('1', at.call({ toString() { return '123'; } }, 0)); assert.throws(() => at.call(Symbol('at-alternative test'), 0), 'throws on symbol context'); diff --git a/tests/unit-global/esnext.string.at.js b/tests/unit-global/esnext.string.at.js deleted file mode 100644 index fefa1a37dd42..000000000000 --- a/tests/unit-global/esnext.string.at.js +++ /dev/null @@ -1,97 +0,0 @@ -import { STRICT } from '../helpers/constants.js'; - -QUnit.test('String#at', assert => { - const { at } = String.prototype; - assert.isFunction(at); - assert.arity(at, 1); - assert.name(at, 'at'); - assert.looksNative(at); - assert.nonEnumerable(String.prototype, 'at'); - // String that starts with a BMP symbol - // assert.same('abc\uD834\uDF06def'.at(-Infinity), ''); - // assert.same('abc\uD834\uDF06def'.at(-1), ''); - assert.same('abc\uD834\uDF06def'.at(-0), 'a'); - assert.same('abc\uD834\uDF06def'.at(+0), 'a'); - assert.same('abc\uD834\uDF06def'.at(1), 'b'); - assert.same('abc\uD834\uDF06def'.at(3), '\uD834\uDF06'); - assert.same('abc\uD834\uDF06def'.at(4), '\uDF06'); - assert.same('abc\uD834\uDF06def'.at(5), 'd'); - // assert.same('abc\uD834\uDF06def'.at(42), ''); - // assert.same('abc\uD834\uDF06def'.at(Infinity), ''); - assert.same('abc\uD834\uDF06def'.at(null), 'a'); - assert.same('abc\uD834\uDF06def'.at(undefined), 'a'); - assert.same('abc\uD834\uDF06def'.at(), 'a'); - assert.same('abc\uD834\uDF06def'.at(false), 'a'); - assert.same('abc\uD834\uDF06def'.at(NaN), 'a'); - assert.same('abc\uD834\uDF06def'.at(''), 'a'); - assert.same('abc\uD834\uDF06def'.at('_'), 'a'); - assert.same('abc\uD834\uDF06def'.at('1'), 'b'); - assert.same('abc\uD834\uDF06def'.at([]), 'a'); - assert.same('abc\uD834\uDF06def'.at({}), 'a'); - assert.same('abc\uD834\uDF06def'.at(-0.9), 'a'); - assert.same('abc\uD834\uDF06def'.at(1.9), 'b'); - assert.same('abc\uD834\uDF06def'.at(7.9), 'f'); - // assert.same('abc\uD834\uDF06def'.at(2 ** 32), ''); - // String that starts with an astral symbol - // assert.same('\uD834\uDF06def'.at(-Infinity), ''); - // assert.same('\uD834\uDF06def'.at(-1), ''); - assert.same('\uD834\uDF06def'.at(-0), '\uD834\uDF06'); - assert.same('\uD834\uDF06def'.at(0), '\uD834\uDF06'); - assert.same('\uD834\uDF06def'.at(1), '\uDF06'); - assert.same('\uD834\uDF06def'.at(2), 'd'); - assert.same('\uD834\uDF06def'.at(3), 'e'); - assert.same('\uD834\uDF06def'.at(4), 'f'); - // assert.same('\uD834\uDF06def'.at(42), ''); - // assert.same('\uD834\uDF06def'.at(Infinity), ''); - assert.same('\uD834\uDF06def'.at(null), '\uD834\uDF06'); - assert.same('\uD834\uDF06def'.at(undefined), '\uD834\uDF06'); - assert.same('\uD834\uDF06def'.at(), '\uD834\uDF06'); - assert.same('\uD834\uDF06def'.at(false), '\uD834\uDF06'); - assert.same('\uD834\uDF06def'.at(NaN), '\uD834\uDF06'); - assert.same('\uD834\uDF06def'.at(''), '\uD834\uDF06'); - assert.same('\uD834\uDF06def'.at('_'), '\uD834\uDF06'); - assert.same('\uD834\uDF06def'.at('1'), '\uDF06'); - // Lone high surrogates - // assert.same('\uD834abc'.at(-Infinity), ''); - // assert.same('\uD834abc'.at(-1), ''); - assert.same('\uD834abc'.at(-0), '\uD834'); - assert.same('\uD834abc'.at(0), '\uD834'); - assert.same('\uD834abc'.at(1), 'a'); - // assert.same('\uD834abc'.at(42), ''); - // assert.same('\uD834abc'.at(Infinity), ''); - assert.same('\uD834abc'.at(null), '\uD834'); - assert.same('\uD834abc'.at(undefined), '\uD834'); - assert.same('\uD834abc'.at(), '\uD834'); - assert.same('\uD834abc'.at(false), '\uD834'); - assert.same('\uD834abc'.at(NaN), '\uD834'); - assert.same('\uD834abc'.at(''), '\uD834'); - assert.same('\uD834abc'.at('_'), '\uD834'); - assert.same('\uD834abc'.at('1'), 'a'); - // Lone low surrogates - // assert.same('\uDF06abc'.at(-Infinity), ''); - // assert.same('\uDF06abc'.at(-1), ''); - assert.same('\uDF06abc'.at(-0), '\uDF06'); - assert.same('\uDF06abc'.at(0), '\uDF06'); - assert.same('\uDF06abc'.at(1), 'a'); - // assert.same('\uDF06abc'.at(42), ''); - // assert.same('\uDF06abc'.at(Infinity), ''); - assert.same('\uDF06abc'.at(null), '\uDF06'); - assert.same('\uDF06abc'.at(undefined), '\uDF06'); - assert.same('\uDF06abc'.at(), '\uDF06'); - assert.same('\uDF06abc'.at(false), '\uDF06'); - assert.same('\uDF06abc'.at(NaN), '\uDF06'); - assert.same('\uDF06abc'.at(''), '\uDF06'); - assert.same('\uDF06abc'.at('_'), '\uDF06'); - assert.same('\uDF06abc'.at('1'), 'a'); - assert.same(at.call(42, 0), '4'); - assert.same(at.call(42, 1), '2'); - assert.same(at.call({ - toString() { - return 'abc'; - }, - }, 2), 'c'); - if (STRICT) { - assert.throws(() => at.call(null, 0), TypeError); - assert.throws(() => at.call(undefined, 0), TypeError); - } -}); diff --git a/tests/unit-pure/es.string.at-alternative.js b/tests/unit-pure/es.string.at-alternative.js index 3cde48369907..f8ac7c819395 100644 --- a/tests/unit-pure/es.string.at-alternative.js +++ b/tests/unit-pure/es.string.at-alternative.js @@ -19,8 +19,7 @@ QUnit.test('String#at', assert => { assert.same('1', at('1', NaN)); assert.same('1', at('1')); assert.same('1', at('123', -0)); - // TODO: disabled by default because of the conflict with old proposal - // assert.same('\uD842', at('𠮷')); + assert.same('\uD842', at('𠮷')); assert.same('1', at({ toString() { return '123'; } }, 0)); assert.throws(() => at(Symbol('at-alternative test'), 0), 'throws on symbol context'); diff --git a/tests/unit-pure/esnext.string.at.js b/tests/unit-pure/esnext.string.at.js deleted file mode 100644 index 69d247a3d462..000000000000 --- a/tests/unit-pure/esnext.string.at.js +++ /dev/null @@ -1,94 +0,0 @@ -import { STRICT } from '../helpers/constants.js'; - -import at from 'core-js-pure/full/string/at'; - -QUnit.test('String#at', assert => { - assert.isFunction(at); - // String that starts with a BMP symbol - // assert.same(at('abc\uD834\uDF06def', -Infinity), ''); - // assert.same(at('abc\uD834\uDF06def', -1), ''); - assert.same(at('abc\uD834\uDF06def', -0), 'a'); - assert.same(at('abc\uD834\uDF06def', +0), 'a'); - assert.same(at('abc\uD834\uDF06def', 1), 'b'); - assert.same(at('abc\uD834\uDF06def', 3), '\uD834\uDF06'); - assert.same(at('abc\uD834\uDF06def', 4), '\uDF06'); - assert.same(at('abc\uD834\uDF06def', 5), 'd'); - // assert.same(at('abc\uD834\uDF06def', 42), ''); - // assert.same(at('abc\uD834\uDF06def', Infinity), ''); - assert.same(at('abc\uD834\uDF06def', null), 'a'); - assert.same(at('abc\uD834\uDF06def', undefined), 'a'); - assert.same(at('abc\uD834\uDF06def'), 'a'); - assert.same(at('abc\uD834\uDF06def', false), 'a'); - assert.same(at('abc\uD834\uDF06def', NaN), 'a'); - assert.same(at('abc\uD834\uDF06def', ''), 'a'); - assert.same(at('abc\uD834\uDF06def', '_'), 'a'); - assert.same(at('abc\uD834\uDF06def', '1'), 'b'); - assert.same(at('abc\uD834\uDF06def', []), 'a'); - assert.same(at('abc\uD834\uDF06def', {}), 'a'); - assert.same(at('abc\uD834\uDF06def', -0.9), 'a'); - assert.same(at('abc\uD834\uDF06def', 1.9), 'b'); - assert.same(at('abc\uD834\uDF06def', 7.9), 'f'); - // assert.same(at('abc\uD834\uDF06def', 2 ** 32), ''); - // String that starts with an astral symbol - // assert.same(at('\uD834\uDF06def', -Infinity), ''); - // assert.same(at('\uD834\uDF06def', -1), ''); - assert.same(at('\uD834\uDF06def', -0), '\uD834\uDF06'); - assert.same(at('\uD834\uDF06def', 0), '\uD834\uDF06'); - assert.same(at('\uD834\uDF06def', 1), '\uDF06'); - assert.same(at('\uD834\uDF06def', 2), 'd'); - assert.same(at('\uD834\uDF06def', 3), 'e'); - assert.same(at('\uD834\uDF06def', 4), 'f'); - // assert.same(at('\uD834\uDF06def', 42), ''); - // assert.same(at('\uD834\uDF06def', Infinity), ''); - assert.same(at('\uD834\uDF06def', null), '\uD834\uDF06'); - assert.same(at('\uD834\uDF06def', undefined), '\uD834\uDF06'); - assert.same(at('\uD834\uDF06def'), '\uD834\uDF06'); - assert.same(at('\uD834\uDF06def', false), '\uD834\uDF06'); - assert.same(at('\uD834\uDF06def', NaN), '\uD834\uDF06'); - assert.same(at('\uD834\uDF06def', ''), '\uD834\uDF06'); - assert.same(at('\uD834\uDF06def', '_'), '\uD834\uDF06'); - assert.same(at('\uD834\uDF06def', '1'), '\uDF06'); - // Lone high surrogates - // assert.same(at('\uD834abc', -Infinity), ''); - // assert.same(at('\uD834abc', -1), ''); - assert.same(at('\uD834abc', -0), '\uD834'); - assert.same(at('\uD834abc', 0), '\uD834'); - assert.same(at('\uD834abc', 1), 'a'); - // assert.same(at('\uD834abc', 42), ''); - // assert.same(at('\uD834abc', Infinity), ''); - assert.same(at('\uD834abc', null), '\uD834'); - assert.same(at('\uD834abc', undefined), '\uD834'); - assert.same(at('\uD834abc'), '\uD834'); - assert.same(at('\uD834abc', false), '\uD834'); - assert.same(at('\uD834abc', NaN), '\uD834'); - assert.same(at('\uD834abc', ''), '\uD834'); - assert.same(at('\uD834abc', '_'), '\uD834'); - assert.same(at('\uD834abc', '1'), 'a'); - // Lone low surrogates - // assert.same(at('\uDF06abc', -Infinity), ''); - // assert.same(at('\uDF06abc', -1), ''); - assert.same(at('\uDF06abc', -0), '\uDF06'); - assert.same(at('\uDF06abc', 0), '\uDF06'); - assert.same(at('\uDF06abc', 1), 'a'); - // assert.same(at('\uDF06abc', 42), ''); - // assert.same(at('\uDF06abc', Infinity), ''); - assert.same(at('\uDF06abc', null), '\uDF06'); - assert.same(at('\uDF06abc', undefined), '\uDF06'); - assert.same(at('\uDF06abc'), '\uDF06'); - assert.same(at('\uDF06abc', false), '\uDF06'); - assert.same(at('\uDF06abc', NaN), '\uDF06'); - assert.same(at('\uDF06abc', ''), '\uDF06'); - assert.same(at('\uDF06abc', '_'), '\uDF06'); - assert.same(at('\uDF06abc', '1'), 'a'); - assert.same(at(42, 0), '4'); - assert.same(at(42, 1), '2'); - assert.same(at({ - toString() { - return 'abc'; - }, - }, 2), 'c'); - if (STRICT) { - assert.throws(() => at(null, 0), TypeError); - assert.throws(() => at(undefined, 0), TypeError); - } -}); From e7c95da9358cb5f52a077994b531397a2223c741 Mon Sep 17 00:00:00 2001 From: Denis Pushkarev Date: Tue, 3 Oct 2023 06:49:20 +0700 Subject: [PATCH 033/428] drop `esnext.array.group` (obsolete) --- packages/core-js-compat/src/data.mjs | 7 ---- .../src/modules-by-versions.mjs | 1 - packages/core-js/actual/array/group.js | 5 --- packages/core-js/actual/array/index.js | 1 - .../core-js/actual/array/virtual/group.js | 5 --- .../core-js/actual/array/virtual/index.js | 1 - packages/core-js/actual/instance/group.js | 10 ----- packages/core-js/full/array/group.js | 4 -- packages/core-js/full/array/virtual/group.js | 4 -- packages/core-js/full/instance/group.js | 4 -- .../core-js/modules/esnext.array.group.js | 15 ------- .../proposals/array-grouping-stage-3-2.js | 1 - tests/builder/builder.mjs | 9 +++-- tests/compat-data/tests-coverage.mjs | 1 - tests/entries/unit.mjs | 8 ---- tests/unit-global/esnext.array.group.js | 39 ------------------- tests/unit-pure/esnext.array.group.js | 36 ----------------- 17 files changed, 5 insertions(+), 146 deletions(-) delete mode 100644 packages/core-js/actual/array/group.js delete mode 100644 packages/core-js/actual/array/virtual/group.js delete mode 100644 packages/core-js/actual/instance/group.js delete mode 100644 packages/core-js/full/array/group.js delete mode 100644 packages/core-js/full/array/virtual/group.js delete mode 100644 packages/core-js/full/instance/group.js delete mode 100644 packages/core-js/modules/esnext.array.group.js delete mode 100644 tests/unit-global/esnext.array.group.js delete mode 100644 tests/unit-pure/esnext.array.group.js diff --git a/packages/core-js-compat/src/data.mjs b/packages/core-js-compat/src/data.mjs index 81ad488b6d23..7a13edb7d3d9 100644 --- a/packages/core-js-compat/src/data.mjs +++ b/packages/core-js-compat/src/data.mjs @@ -2376,13 +2376,6 @@ export const data = { }, 'esnext.array.filter-reject': { }, - 'esnext.array.group': { - // disabled from Bun 0.6.2 - // bun: '0.1.9', - // https://github.com/tc39/proposal-array-grouping/issues/44#issuecomment-1306311107 - // chrome: '108', - // safari: '16.4', - }, // TODO: Remove from `core-js@4` 'esnext.array.group-by': { }, diff --git a/packages/core-js-compat/src/modules-by-versions.mjs b/packages/core-js-compat/src/modules-by-versions.mjs index 4045683fcd39..fc780ae5ccb2 100644 --- a/packages/core-js-compat/src/modules-by-versions.mjs +++ b/packages/core-js-compat/src/modules-by-versions.mjs @@ -125,7 +125,6 @@ export default { 'es.array.unshift', 'es.typed-array.find-last', 'es.typed-array.find-last-index', - 'esnext.array.group', 'esnext.array.group-to-map', 'esnext.symbol.metadata-key', ], diff --git a/packages/core-js/actual/array/group.js b/packages/core-js/actual/array/group.js deleted file mode 100644 index 0e3ac6991a72..000000000000 --- a/packages/core-js/actual/array/group.js +++ /dev/null @@ -1,5 +0,0 @@ -'use strict'; -require('../../modules/esnext.array.group'); -var entryUnbind = require('../../internals/entry-unbind'); - -module.exports = entryUnbind('Array', 'group'); diff --git a/packages/core-js/actual/array/index.js b/packages/core-js/actual/array/index.js index 7dad994d8c36..c24adfff1419 100644 --- a/packages/core-js/actual/array/index.js +++ b/packages/core-js/actual/array/index.js @@ -1,7 +1,6 @@ 'use strict'; var parent = require('../../stable/array'); require('../../modules/esnext.array.from-async'); -require('../../modules/esnext.array.group'); require('../../modules/esnext.array.group-to-map'); // TODO: Remove from `core-js@4` require('../../modules/esnext.array.group-by'); diff --git a/packages/core-js/actual/array/virtual/group.js b/packages/core-js/actual/array/virtual/group.js deleted file mode 100644 index ab3beace3707..000000000000 --- a/packages/core-js/actual/array/virtual/group.js +++ /dev/null @@ -1,5 +0,0 @@ -'use strict'; -require('../../../modules/esnext.array.group'); -var getBuiltInPrototypeMethod = require('../../../internals/get-built-in-prototype-method'); - -module.exports = getBuiltInPrototypeMethod('Array', 'group'); diff --git a/packages/core-js/actual/array/virtual/index.js b/packages/core-js/actual/array/virtual/index.js index ef744138a776..832cd6e13e0b 100644 --- a/packages/core-js/actual/array/virtual/index.js +++ b/packages/core-js/actual/array/virtual/index.js @@ -2,7 +2,6 @@ var parent = require('../../../stable/array/virtual'); require('../../../modules/es.map'); require('../../../modules/es.object.to-string'); -require('../../../modules/esnext.array.group'); require('../../../modules/esnext.array.group-to-map'); // TODO: Remove from `core-js@4` require('../../../modules/esnext.array.group-by'); diff --git a/packages/core-js/actual/instance/group.js b/packages/core-js/actual/instance/group.js deleted file mode 100644 index e2ec5d407695..000000000000 --- a/packages/core-js/actual/instance/group.js +++ /dev/null @@ -1,10 +0,0 @@ -'use strict'; -var isPrototypeOf = require('../../internals/object-is-prototype-of'); -var method = require('../array/virtual/group'); - -var ArrayPrototype = Array.prototype; - -module.exports = function (it) { - var own = it.group; - return it === ArrayPrototype || (isPrototypeOf(ArrayPrototype, it) && own === ArrayPrototype.group) ? method : own; -}; diff --git a/packages/core-js/full/array/group.js b/packages/core-js/full/array/group.js deleted file mode 100644 index 597fe8ea67b2..000000000000 --- a/packages/core-js/full/array/group.js +++ /dev/null @@ -1,4 +0,0 @@ -'use strict'; -var parent = require('../../actual/array/group'); - -module.exports = parent; diff --git a/packages/core-js/full/array/virtual/group.js b/packages/core-js/full/array/virtual/group.js deleted file mode 100644 index e207bea34608..000000000000 --- a/packages/core-js/full/array/virtual/group.js +++ /dev/null @@ -1,4 +0,0 @@ -'use strict'; -var parent = require('../../../actual/array/virtual/group'); - -module.exports = parent; diff --git a/packages/core-js/full/instance/group.js b/packages/core-js/full/instance/group.js deleted file mode 100644 index 9fc4fd1473cc..000000000000 --- a/packages/core-js/full/instance/group.js +++ /dev/null @@ -1,4 +0,0 @@ -'use strict'; -var parent = require('../../actual/instance/group'); - -module.exports = parent; diff --git a/packages/core-js/modules/esnext.array.group.js b/packages/core-js/modules/esnext.array.group.js deleted file mode 100644 index 9afca8c998b4..000000000000 --- a/packages/core-js/modules/esnext.array.group.js +++ /dev/null @@ -1,15 +0,0 @@ -'use strict'; -var $ = require('../internals/export'); -var $group = require('../internals/array-group'); -var addToUnscopables = require('../internals/add-to-unscopables'); - -// `Array.prototype.group` method -// https://github.com/tc39/proposal-array-grouping -$({ target: 'Array', proto: true }, { - group: function group(callbackfn /* , thisArg */) { - var thisArg = arguments.length > 1 ? arguments[1] : undefined; - return $group(this, callbackfn, thisArg); - } -}); - -addToUnscopables('group'); diff --git a/packages/core-js/proposals/array-grouping-stage-3-2.js b/packages/core-js/proposals/array-grouping-stage-3-2.js index b4bc7423ea6e..b743a3001f6d 100644 --- a/packages/core-js/proposals/array-grouping-stage-3-2.js +++ b/packages/core-js/proposals/array-grouping-stage-3-2.js @@ -1,4 +1,3 @@ 'use strict'; // https://github.com/tc39/proposal-array-grouping -require('../modules/esnext.array.group'); require('../modules/esnext.array.group-to-map'); diff --git a/tests/builder/builder.mjs b/tests/builder/builder.mjs index 15ba6fe810fc..072dcaaa02ef 100644 --- a/tests/builder/builder.mjs +++ b/tests/builder/builder.mjs @@ -3,17 +3,18 @@ import builder from 'core-js-builder'; const polyfills = await builder({ modules: 'core-js/actual', - exclude: [/group-by/, 'esnext.typed-array.to-spliced'], + exclude: [/group-by/, 'es.typed-array.with'], targets: { node: 16 }, format: 'esm', }); ok(polyfills.includes("import 'core-js/modules/es.error.cause.js';"), 'actual node 16 #1'); ok(polyfills.includes("import 'core-js/modules/es.array.push.js';"), 'actual node 16 #2'); -ok(polyfills.includes("import 'core-js/modules/esnext.array.group.js';"), 'actual node 16 #3'); +ok(polyfills.includes("import 'core-js/modules/esnext.json.parse.js';"), 'actual node 16 #3'); ok(polyfills.includes("import 'core-js/modules/web.structured-clone.js';"), 'actual node 16 #4'); ok(!polyfills.includes("import 'core-js/modules/es.weak-set.js';"), 'actual node 16 #5'); -ok(!polyfills.includes("import 'core-js/modules/esnext.weak-set.from.js';"), 'actual node 16 #6'); -ok(!polyfills.includes("import 'core-js/modules/esnext.array.group-by.js';"), 'actual node 16 #7'); +ok(!polyfills.includes("import 'core-js/modules/es.typed-array.with.js';"), 'actual node 16 #6'); +ok(!polyfills.includes("import 'core-js/modules/esnext.object.group-by.js';"), 'actual node 16 #7'); +ok(!polyfills.includes("import 'core-js/modules/esnext.weak-set.from.js';"), 'actual node 16 #8'); echo(chalk.green('builder tested')); diff --git a/tests/compat-data/tests-coverage.mjs b/tests/compat-data/tests-coverage.mjs index 45c914a02db9..113ec286ae28 100644 --- a/tests/compat-data/tests-coverage.mjs +++ b/tests/compat-data/tests-coverage.mjs @@ -16,7 +16,6 @@ const ignore = new Set([ 'es.weak-map', 'es.weak-set', 'esnext.array.filter-out', - 'esnext.array.group', 'esnext.array.group-by', 'esnext.array.group-by-to-map', 'esnext.array.group-to-map', diff --git a/tests/entries/unit.mjs b/tests/entries/unit.mjs index 140c54b1205e..ba8f615797df 100644 --- a/tests/entries/unit.mjs +++ b/tests/entries/unit.mjs @@ -688,11 +688,9 @@ for (PATH of ['core-js-pure', 'core-js']) { } for (const NS of ['actual', 'full', 'features']) { - ok(typeof load(NS, 'array/group') == 'function'); ok(typeof load(NS, 'array/group-to-map') == 'function'); ok(typeof load(NS, 'array/group-by') == 'function'); ok(typeof load(NS, 'array/group-by-to-map') == 'function'); - ok(typeof load(NS, 'array/virtual/group') == 'function'); ok(typeof load(NS, 'array/virtual/group-to-map') == 'function'); ok(typeof load(NS, 'array/virtual/group-by') == 'function'); ok(typeof load(NS, 'array/virtual/group-by-to-map') == 'function'); @@ -721,12 +719,6 @@ for (PATH of ['core-js-pure', 'core-js']) { ok(load(NS, 'weak-map/get-or-insert')(new WeakMap([[{}, 2]]), {}, 3) === 3); ok(load(NS, 'weak-map/get-or-insert-computed')(new WeakMap([[{}, 2]]), {}, () => 3) === 3); - const instanceGroup = load(NS, 'instance/group'); - ok(typeof instanceGroup == 'function'); - ok(instanceGroup({}) === undefined); - ok(typeof instanceGroup([]) == 'function'); - ok(instanceGroup([]).call([1, 2, 3], it => it % 2)[1].length === 2); - const instanceGroupToMap = load(NS, 'instance/group-to-map'); ok(typeof instanceGroupToMap == 'function'); ok(instanceGroupToMap({}) === undefined); diff --git a/tests/unit-global/esnext.array.group.js b/tests/unit-global/esnext.array.group.js deleted file mode 100644 index b0eb27b740fb..000000000000 --- a/tests/unit-global/esnext.array.group.js +++ /dev/null @@ -1,39 +0,0 @@ -import { STRICT } from '../helpers/constants.js'; - -const { getPrototypeOf } = Object; - -QUnit.test('Array#group', assert => { - const { group } = Array.prototype; - assert.isFunction(group); - assert.arity(group, 1); - assert.name(group, 'group'); - assert.looksNative(group); - assert.nonEnumerable(Array.prototype, 'group'); - let array = [1]; - const context = {}; - array.group(function (value, key, that) { - assert.same(arguments.length, 3, 'correct number of callback arguments'); - assert.same(value, 1, 'correct value in callback'); - assert.same(key, 0, 'correct index in callback'); - assert.same(that, array, 'correct link to array in callback'); - assert.same(this, context, 'correct callback context'); - }, context); - assert.same(getPrototypeOf([].group(it => it)), null, 'null proto'); - assert.deepEqual([1, 2, 3].group(it => it % 2), { 1: [1, 3], 0: [2] }, '#1'); - assert.deepEqual( - [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12].group(it => `i${ it % 5 }`), - { i1: [1, 6, 11], i2: [2, 7, 12], i3: [3, 8], i4: [4, 9], i0: [5, 10] }, - '#2', - ); - assert.deepEqual(Array(3).group(it => it), { undefined: [undefined, undefined, undefined] }, '#3'); - if (STRICT) { - assert.throws(() => group.call(null, () => { /* empty */ }), TypeError, 'null this -> TypeError'); - assert.throws(() => group.call(undefined, () => { /* empty */ }), TypeError, 'undefined this -> TypeError'); - } - array = [1]; - // eslint-disable-next-line object-shorthand -- constructor - array.constructor = { [Symbol.species]: function () { - return { foo: 1 }; - } }; - assert.same(array.group(Boolean).true.foo, undefined, 'no @@species'); -}); diff --git a/tests/unit-pure/esnext.array.group.js b/tests/unit-pure/esnext.array.group.js deleted file mode 100644 index 8881b6790294..000000000000 --- a/tests/unit-pure/esnext.array.group.js +++ /dev/null @@ -1,36 +0,0 @@ -import { STRICT } from '../helpers/constants.js'; - -import Symbol from 'core-js-pure/es/symbol'; -import getPrototypeOf from 'core-js-pure/es/object/get-prototype-of'; -import group from 'core-js-pure/actual/array/group'; - -QUnit.test('Array#group', assert => { - assert.isFunction(group); - let array = [1]; - const context = {}; - group(array, function (value, key, that) { - assert.same(arguments.length, 3, 'correct number of callback arguments'); - assert.same(value, 1, 'correct value in callback'); - assert.same(key, 0, 'correct index in callback'); - assert.same(that, array, 'correct link to array in callback'); - assert.same(this, context, 'correct callback context'); - }, context); - assert.same(getPrototypeOf(group([], it => it)), null, 'null proto'); - assert.deepEqual(group([1, 2, 3], it => it % 2), { 1: [1, 3], 0: [2] }, '#1'); - assert.deepEqual( - group([1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], it => `i${ it % 5 }`), - { i1: [1, 6, 11], i2: [2, 7, 12], i3: [3, 8], i4: [4, 9], i0: [5, 10] }, - '#2', - ); - assert.deepEqual(group(Array(3), it => it), { undefined: [undefined, undefined, undefined] }, '#3'); - if (STRICT) { - assert.throws(() => group(null, () => { /* empty */ }), TypeError, 'null this -> TypeError'); - assert.throws(() => group(undefined, () => { /* empty */ }), TypeError, 'undefined this -> TypeError'); - } - array = [1]; - // eslint-disable-next-line object-shorthand -- constructor - array.constructor = { [Symbol.species]: function () { - return { foo: 1 }; - } }; - assert.same(group(array, Boolean).true.foo, undefined, 'no @@species'); -}); From 9d2611c38677871444d513d6b92b24b23ecc40f4 Mon Sep 17 00:00:00 2001 From: Denis Pushkarev Date: Tue, 3 Oct 2023 06:59:17 +0700 Subject: [PATCH 034/428] drop `esnext.array.group-by` (obsolete) --- packages/core-js-compat/src/data.mjs | 3 -- .../src/modules-by-versions.mjs | 1 - packages/core-js/actual/array/group-by.js | 5 --- packages/core-js/actual/array/index.js | 1 - .../core-js/actual/array/virtual/group-by.js | 5 --- .../core-js/actual/array/virtual/index.js | 1 - packages/core-js/actual/instance/group-by.js | 10 ----- packages/core-js/full/array/group-by.js | 4 -- .../core-js/full/array/virtual/group-by.js | 4 -- packages/core-js/full/instance/group-by.js | 4 -- .../core-js/modules/esnext.array.group-by.js | 18 --------- .../proposals/array-grouping-stage-3.js | 1 - packages/core-js/proposals/array-grouping.js | 1 - tests/compat-data/tests-coverage.mjs | 1 - tests/entries/unit.mjs | 8 ---- tests/unit-global/esnext.array.group-by.js | 39 ------------------- tests/unit-pure/esnext.array.group-by.js | 36 ----------------- 17 files changed, 142 deletions(-) delete mode 100644 packages/core-js/actual/array/group-by.js delete mode 100644 packages/core-js/actual/array/virtual/group-by.js delete mode 100644 packages/core-js/actual/instance/group-by.js delete mode 100644 packages/core-js/full/array/group-by.js delete mode 100644 packages/core-js/full/array/virtual/group-by.js delete mode 100644 packages/core-js/full/instance/group-by.js delete mode 100644 packages/core-js/modules/esnext.array.group-by.js delete mode 100644 tests/unit-global/esnext.array.group-by.js delete mode 100644 tests/unit-pure/esnext.array.group-by.js diff --git a/packages/core-js-compat/src/data.mjs b/packages/core-js-compat/src/data.mjs index 7a13edb7d3d9..c07d06adea32 100644 --- a/packages/core-js-compat/src/data.mjs +++ b/packages/core-js-compat/src/data.mjs @@ -2377,9 +2377,6 @@ export const data = { 'esnext.array.filter-reject': { }, // TODO: Remove from `core-js@4` - 'esnext.array.group-by': { - }, - // TODO: Remove from `core-js@4` 'esnext.array.group-by-to-map': { }, 'esnext.array.group-to-map': { diff --git a/packages/core-js-compat/src/modules-by-versions.mjs b/packages/core-js-compat/src/modules-by-versions.mjs index fc780ae5ccb2..c9837291db3c 100644 --- a/packages/core-js-compat/src/modules-by-versions.mjs +++ b/packages/core-js-compat/src/modules-by-versions.mjs @@ -83,7 +83,6 @@ export default { ], 3.16: [ 'esnext.array.filter-reject', - 'esnext.array.group-by', 'esnext.typed-array.filter-reject', 'esnext.typed-array.group-by', ], diff --git a/packages/core-js/actual/array/group-by.js b/packages/core-js/actual/array/group-by.js deleted file mode 100644 index 0044399e3c98..000000000000 --- a/packages/core-js/actual/array/group-by.js +++ /dev/null @@ -1,5 +0,0 @@ -'use strict'; -require('../../modules/esnext.array.group-by'); -var entryUnbind = require('../../internals/entry-unbind'); - -module.exports = entryUnbind('Array', 'groupBy'); diff --git a/packages/core-js/actual/array/index.js b/packages/core-js/actual/array/index.js index c24adfff1419..aea78ade1045 100644 --- a/packages/core-js/actual/array/index.js +++ b/packages/core-js/actual/array/index.js @@ -3,7 +3,6 @@ var parent = require('../../stable/array'); require('../../modules/esnext.array.from-async'); require('../../modules/esnext.array.group-to-map'); // TODO: Remove from `core-js@4` -require('../../modules/esnext.array.group-by'); require('../../modules/esnext.array.group-by-to-map'); module.exports = parent; diff --git a/packages/core-js/actual/array/virtual/group-by.js b/packages/core-js/actual/array/virtual/group-by.js deleted file mode 100644 index af7eb764e45f..000000000000 --- a/packages/core-js/actual/array/virtual/group-by.js +++ /dev/null @@ -1,5 +0,0 @@ -'use strict'; -require('../../../modules/esnext.array.group-by'); -var getBuiltInPrototypeMethod = require('../../../internals/get-built-in-prototype-method'); - -module.exports = getBuiltInPrototypeMethod('Array', 'groupBy'); diff --git a/packages/core-js/actual/array/virtual/index.js b/packages/core-js/actual/array/virtual/index.js index 832cd6e13e0b..4be5dcf755be 100644 --- a/packages/core-js/actual/array/virtual/index.js +++ b/packages/core-js/actual/array/virtual/index.js @@ -4,7 +4,6 @@ require('../../../modules/es.map'); require('../../../modules/es.object.to-string'); require('../../../modules/esnext.array.group-to-map'); // TODO: Remove from `core-js@4` -require('../../../modules/esnext.array.group-by'); require('../../../modules/esnext.array.group-by-to-map'); module.exports = parent; diff --git a/packages/core-js/actual/instance/group-by.js b/packages/core-js/actual/instance/group-by.js deleted file mode 100644 index 2d52f6ea7628..000000000000 --- a/packages/core-js/actual/instance/group-by.js +++ /dev/null @@ -1,10 +0,0 @@ -'use strict'; -var isPrototypeOf = require('../../internals/object-is-prototype-of'); -var method = require('../array/virtual/group-by'); - -var ArrayPrototype = Array.prototype; - -module.exports = function (it) { - var own = it.groupBy; - return it === ArrayPrototype || (isPrototypeOf(ArrayPrototype, it) && own === ArrayPrototype.groupBy) ? method : own; -}; diff --git a/packages/core-js/full/array/group-by.js b/packages/core-js/full/array/group-by.js deleted file mode 100644 index 12da2650234a..000000000000 --- a/packages/core-js/full/array/group-by.js +++ /dev/null @@ -1,4 +0,0 @@ -'use strict'; -var parent = require('../../actual/array/group-by'); - -module.exports = parent; diff --git a/packages/core-js/full/array/virtual/group-by.js b/packages/core-js/full/array/virtual/group-by.js deleted file mode 100644 index 69cb4325160e..000000000000 --- a/packages/core-js/full/array/virtual/group-by.js +++ /dev/null @@ -1,4 +0,0 @@ -'use strict'; -var parent = require('../../../actual/array/virtual/group-by'); - -module.exports = parent; diff --git a/packages/core-js/full/instance/group-by.js b/packages/core-js/full/instance/group-by.js deleted file mode 100644 index 0162d6dc5549..000000000000 --- a/packages/core-js/full/instance/group-by.js +++ /dev/null @@ -1,4 +0,0 @@ -'use strict'; -var parent = require('../../actual/instance/group-by'); - -module.exports = parent; diff --git a/packages/core-js/modules/esnext.array.group-by.js b/packages/core-js/modules/esnext.array.group-by.js deleted file mode 100644 index f5b9abf8ef76..000000000000 --- a/packages/core-js/modules/esnext.array.group-by.js +++ /dev/null @@ -1,18 +0,0 @@ -'use strict'; -// TODO: Remove from `core-js@4` -var $ = require('../internals/export'); -var $group = require('../internals/array-group'); -var arrayMethodIsStrict = require('../internals/array-method-is-strict'); -var addToUnscopables = require('../internals/add-to-unscopables'); - -// `Array.prototype.groupBy` method -// https://github.com/tc39/proposal-array-grouping -// https://bugs.webkit.org/show_bug.cgi?id=236541 -$({ target: 'Array', proto: true, forced: !arrayMethodIsStrict('groupBy') }, { - groupBy: function groupBy(callbackfn /* , thisArg */) { - var thisArg = arguments.length > 1 ? arguments[1] : undefined; - return $group(this, callbackfn, thisArg); - } -}); - -addToUnscopables('groupBy'); diff --git a/packages/core-js/proposals/array-grouping-stage-3.js b/packages/core-js/proposals/array-grouping-stage-3.js index 338c26e8378a..cd87a4423aa3 100644 --- a/packages/core-js/proposals/array-grouping-stage-3.js +++ b/packages/core-js/proposals/array-grouping-stage-3.js @@ -1,5 +1,4 @@ 'use strict'; // https://github.com/tc39/proposal-array-grouping // TODO: Remove from `core-js@4` -require('../modules/esnext.array.group-by'); require('../modules/esnext.array.group-by-to-map'); diff --git a/packages/core-js/proposals/array-grouping.js b/packages/core-js/proposals/array-grouping.js index 8ee49a01acf1..21a82d29d17f 100644 --- a/packages/core-js/proposals/array-grouping.js +++ b/packages/core-js/proposals/array-grouping.js @@ -1,6 +1,5 @@ 'use strict'; // https://github.com/tc39/proposal-array-grouping -require('../modules/esnext.array.group-by'); require('../modules/esnext.array.group-by-to-map'); // TODO: Remove from `core-js@4` require('../modules/esnext.typed-array.group-by'); diff --git a/tests/compat-data/tests-coverage.mjs b/tests/compat-data/tests-coverage.mjs index 113ec286ae28..dcc891344106 100644 --- a/tests/compat-data/tests-coverage.mjs +++ b/tests/compat-data/tests-coverage.mjs @@ -16,7 +16,6 @@ const ignore = new Set([ 'es.weak-map', 'es.weak-set', 'esnext.array.filter-out', - 'esnext.array.group-by', 'esnext.array.group-by-to-map', 'esnext.array.group-to-map', 'esnext.array.last-index', diff --git a/tests/entries/unit.mjs b/tests/entries/unit.mjs index ba8f615797df..81d2a34c4a10 100644 --- a/tests/entries/unit.mjs +++ b/tests/entries/unit.mjs @@ -689,10 +689,8 @@ for (PATH of ['core-js-pure', 'core-js']) { for (const NS of ['actual', 'full', 'features']) { ok(typeof load(NS, 'array/group-to-map') == 'function'); - ok(typeof load(NS, 'array/group-by') == 'function'); ok(typeof load(NS, 'array/group-by-to-map') == 'function'); ok(typeof load(NS, 'array/virtual/group-to-map') == 'function'); - ok(typeof load(NS, 'array/virtual/group-by') == 'function'); ok(typeof load(NS, 'array/virtual/group-by-to-map') == 'function'); ok(typeof load(NS, 'async-iterator') == 'function'); ok(typeof load(NS, 'async-iterator/drop') == 'function'); @@ -725,12 +723,6 @@ for (PATH of ['core-js-pure', 'core-js']) { ok(typeof instanceGroupToMap([]) == 'function'); ok(instanceGroupToMap([]).call([1, 2, 3], it => it % 2).get(1).length === 2); - const instanceGroupBy = load(NS, 'instance/group-by'); - ok(typeof instanceGroupBy == 'function'); - ok(instanceGroupBy({}) === undefined); - ok(typeof instanceGroupBy([]) == 'function'); - ok(instanceGroupBy([]).call([1, 2, 3], it => it % 2)[1].length === 2); - const instanceGroupByToMap = load(NS, 'instance/group-by-to-map'); ok(typeof instanceGroupByToMap == 'function'); ok(instanceGroupByToMap({}) === undefined); diff --git a/tests/unit-global/esnext.array.group-by.js b/tests/unit-global/esnext.array.group-by.js deleted file mode 100644 index e6ff0c60f081..000000000000 --- a/tests/unit-global/esnext.array.group-by.js +++ /dev/null @@ -1,39 +0,0 @@ -import { STRICT } from '../helpers/constants.js'; - -const { getPrototypeOf } = Object; - -QUnit.test('Array#groupBy', assert => { - const { groupBy } = Array.prototype; - assert.isFunction(groupBy); - assert.arity(groupBy, 1); - assert.name(groupBy, 'groupBy'); - assert.looksNative(groupBy); - assert.nonEnumerable(Array.prototype, 'groupBy'); - let array = [1]; - const context = {}; - array.groupBy(function (value, key, that) { - assert.same(arguments.length, 3, 'correct number of callback arguments'); - assert.same(value, 1, 'correct value in callback'); - assert.same(key, 0, 'correct index in callback'); - assert.same(that, array, 'correct link to array in callback'); - assert.same(this, context, 'correct callback context'); - }, context); - assert.same(getPrototypeOf([].groupBy(it => it)), null, 'null proto'); - assert.deepEqual([1, 2, 3].groupBy(it => it % 2), { 1: [1, 3], 0: [2] }, '#1'); - assert.deepEqual( - [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12].groupBy(it => `i${ it % 5 }`), - { i1: [1, 6, 11], i2: [2, 7, 12], i3: [3, 8], i4: [4, 9], i0: [5, 10] }, - '#2', - ); - assert.deepEqual(Array(3).groupBy(it => it), { undefined: [undefined, undefined, undefined] }, '#3'); - if (STRICT) { - assert.throws(() => groupBy.call(null, () => { /* empty */ }), TypeError, 'null this -> TypeError'); - assert.throws(() => groupBy.call(undefined, () => { /* empty */ }), TypeError, 'undefined this -> TypeError'); - } - array = [1]; - // eslint-disable-next-line object-shorthand -- constructor - array.constructor = { [Symbol.species]: function () { - return { foo: 1 }; - } }; - assert.same(array.groupBy(Boolean).true.foo, undefined, 'no @@species'); -}); diff --git a/tests/unit-pure/esnext.array.group-by.js b/tests/unit-pure/esnext.array.group-by.js deleted file mode 100644 index 7f10b6654f1f..000000000000 --- a/tests/unit-pure/esnext.array.group-by.js +++ /dev/null @@ -1,36 +0,0 @@ -import { STRICT } from '../helpers/constants.js'; - -import Symbol from 'core-js-pure/es/symbol'; -import getPrototypeOf from 'core-js-pure/es/object/get-prototype-of'; -import groupBy from 'core-js-pure/actual/array/group-by'; - -QUnit.test('Array#groupBy', assert => { - assert.isFunction(groupBy); - let array = [1]; - const context = {}; - groupBy(array, function (value, key, that) { - assert.same(arguments.length, 3, 'correct number of callback arguments'); - assert.same(value, 1, 'correct value in callback'); - assert.same(key, 0, 'correct index in callback'); - assert.same(that, array, 'correct link to array in callback'); - assert.same(this, context, 'correct callback context'); - }, context); - assert.same(getPrototypeOf(groupBy([], it => it)), null, 'null proto'); - assert.deepEqual(groupBy([1, 2, 3], it => it % 2), { 1: [1, 3], 0: [2] }, '#1'); - assert.deepEqual( - groupBy([1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], it => `i${ it % 5 }`), - { i1: [1, 6, 11], i2: [2, 7, 12], i3: [3, 8], i4: [4, 9], i0: [5, 10] }, - '#2', - ); - assert.deepEqual(groupBy(Array(3), it => it), { undefined: [undefined, undefined, undefined] }, '#3'); - if (STRICT) { - assert.throws(() => groupBy(null, () => { /* empty */ }), TypeError, 'null this -> TypeError'); - assert.throws(() => groupBy(undefined, () => { /* empty */ }), TypeError, 'undefined this -> TypeError'); - } - array = [1]; - // eslint-disable-next-line object-shorthand -- constructor - array.constructor = { [Symbol.species]: function () { - return { foo: 1 }; - } }; - assert.same(groupBy(array, Boolean).true.foo, undefined, 'no @@species'); -}); From 113c556c61f0094c53a51fec05d429ab594ceea0 Mon Sep 17 00:00:00 2001 From: Denis Pushkarev Date: Tue, 3 Oct 2023 07:12:45 +0700 Subject: [PATCH 035/428] drop `esnext.array.group-by-to-map` (obsolete) --- packages/core-js-compat/src/data.mjs | 3 -- .../src/modules-by-versions.mjs | 1 - .../core-js/actual/array/group-by-to-map.js | 7 ---- packages/core-js/actual/array/index.js | 2 - .../actual/array/virtual/group-by-to-map.js | 7 ---- .../core-js/actual/array/virtual/index.js | 2 - .../actual/instance/group-by-to-map.js | 10 ----- .../core-js/full/array/group-by-to-map.js | 4 -- .../full/array/virtual/group-by-to-map.js | 4 -- .../core-js/full/instance/group-by-to-map.js | 4 -- .../modules/esnext.array.group-by-to-map.js | 16 -------- .../proposals/array-grouping-stage-3.js | 4 -- packages/core-js/proposals/array-grouping.js | 1 - packages/core-js/stage/3.js | 1 - tests/compat-data/tests-coverage.mjs | 1 - tests/entries/unit.mjs | 9 ----- .../esnext.array.group-by-to-map.js | 38 ------------------- .../unit-pure/esnext.array.group-by-to-map.js | 37 ------------------ 18 files changed, 151 deletions(-) delete mode 100644 packages/core-js/actual/array/group-by-to-map.js delete mode 100644 packages/core-js/actual/array/virtual/group-by-to-map.js delete mode 100644 packages/core-js/actual/instance/group-by-to-map.js delete mode 100644 packages/core-js/full/array/group-by-to-map.js delete mode 100644 packages/core-js/full/array/virtual/group-by-to-map.js delete mode 100644 packages/core-js/full/instance/group-by-to-map.js delete mode 100644 packages/core-js/modules/esnext.array.group-by-to-map.js delete mode 100644 packages/core-js/proposals/array-grouping-stage-3.js delete mode 100644 tests/unit-global/esnext.array.group-by-to-map.js delete mode 100644 tests/unit-pure/esnext.array.group-by-to-map.js diff --git a/packages/core-js-compat/src/data.mjs b/packages/core-js-compat/src/data.mjs index c07d06adea32..44121194e5b1 100644 --- a/packages/core-js-compat/src/data.mjs +++ b/packages/core-js-compat/src/data.mjs @@ -2376,9 +2376,6 @@ export const data = { }, 'esnext.array.filter-reject': { }, - // TODO: Remove from `core-js@4` - 'esnext.array.group-by-to-map': { - }, 'esnext.array.group-to-map': { // disabled from Bun 0.6.2 // bun: '0.1.9', diff --git a/packages/core-js-compat/src/modules-by-versions.mjs b/packages/core-js-compat/src/modules-by-versions.mjs index c9837291db3c..e1ec279ea7c1 100644 --- a/packages/core-js-compat/src/modules-by-versions.mjs +++ b/packages/core-js-compat/src/modules-by-versions.mjs @@ -101,7 +101,6 @@ export default { 'es.error.to-string', 'es.aggregate-error.cause', 'es.number.to-exponential', - 'esnext.array.group-by-to-map', 'esnext.function.is-callable', 'esnext.function.is-constructor', 'esnext.function.un-this', diff --git a/packages/core-js/actual/array/group-by-to-map.js b/packages/core-js/actual/array/group-by-to-map.js deleted file mode 100644 index d29af8765af7..000000000000 --- a/packages/core-js/actual/array/group-by-to-map.js +++ /dev/null @@ -1,7 +0,0 @@ -'use strict'; -require('../../modules/es.map'); -require('../../modules/es.object.to-string'); -require('../../modules/esnext.array.group-by-to-map'); -var entryUnbind = require('../../internals/entry-unbind'); - -module.exports = entryUnbind('Array', 'groupByToMap'); diff --git a/packages/core-js/actual/array/index.js b/packages/core-js/actual/array/index.js index aea78ade1045..992653abd638 100644 --- a/packages/core-js/actual/array/index.js +++ b/packages/core-js/actual/array/index.js @@ -2,7 +2,5 @@ var parent = require('../../stable/array'); require('../../modules/esnext.array.from-async'); require('../../modules/esnext.array.group-to-map'); -// TODO: Remove from `core-js@4` -require('../../modules/esnext.array.group-by-to-map'); module.exports = parent; diff --git a/packages/core-js/actual/array/virtual/group-by-to-map.js b/packages/core-js/actual/array/virtual/group-by-to-map.js deleted file mode 100644 index 617aaa30135b..000000000000 --- a/packages/core-js/actual/array/virtual/group-by-to-map.js +++ /dev/null @@ -1,7 +0,0 @@ -'use strict'; -require('../../../modules/es.map'); -require('../../../modules/es.object.to-string'); -require('../../../modules/esnext.array.group-by-to-map'); -var getBuiltInPrototypeMethod = require('../../../internals/get-built-in-prototype-method'); - -module.exports = getBuiltInPrototypeMethod('Array', 'groupByToMap'); diff --git a/packages/core-js/actual/array/virtual/index.js b/packages/core-js/actual/array/virtual/index.js index 4be5dcf755be..910b8f88dbf1 100644 --- a/packages/core-js/actual/array/virtual/index.js +++ b/packages/core-js/actual/array/virtual/index.js @@ -3,7 +3,5 @@ var parent = require('../../../stable/array/virtual'); require('../../../modules/es.map'); require('../../../modules/es.object.to-string'); require('../../../modules/esnext.array.group-to-map'); -// TODO: Remove from `core-js@4` -require('../../../modules/esnext.array.group-by-to-map'); module.exports = parent; diff --git a/packages/core-js/actual/instance/group-by-to-map.js b/packages/core-js/actual/instance/group-by-to-map.js deleted file mode 100644 index 3786d420913e..000000000000 --- a/packages/core-js/actual/instance/group-by-to-map.js +++ /dev/null @@ -1,10 +0,0 @@ -'use strict'; -var isPrototypeOf = require('../../internals/object-is-prototype-of'); -var method = require('../array/virtual/group-by-to-map'); - -var ArrayPrototype = Array.prototype; - -module.exports = function (it) { - var own = it.groupByToMap; - return it === ArrayPrototype || (isPrototypeOf(ArrayPrototype, it) && own === ArrayPrototype.groupByToMap) ? method : own; -}; diff --git a/packages/core-js/full/array/group-by-to-map.js b/packages/core-js/full/array/group-by-to-map.js deleted file mode 100644 index 70ca4cc8026b..000000000000 --- a/packages/core-js/full/array/group-by-to-map.js +++ /dev/null @@ -1,4 +0,0 @@ -'use strict'; -var parent = require('../../actual/array/group-by-to-map'); - -module.exports = parent; diff --git a/packages/core-js/full/array/virtual/group-by-to-map.js b/packages/core-js/full/array/virtual/group-by-to-map.js deleted file mode 100644 index 5ef4d2cc798d..000000000000 --- a/packages/core-js/full/array/virtual/group-by-to-map.js +++ /dev/null @@ -1,4 +0,0 @@ -'use strict'; -var parent = require('../../../actual/array/virtual/group-by-to-map'); - -module.exports = parent; diff --git a/packages/core-js/full/instance/group-by-to-map.js b/packages/core-js/full/instance/group-by-to-map.js deleted file mode 100644 index 35da2a73f847..000000000000 --- a/packages/core-js/full/instance/group-by-to-map.js +++ /dev/null @@ -1,4 +0,0 @@ -'use strict'; -var parent = require('../../actual/instance/group-by-to-map'); - -module.exports = parent; diff --git a/packages/core-js/modules/esnext.array.group-by-to-map.js b/packages/core-js/modules/esnext.array.group-by-to-map.js deleted file mode 100644 index f2919a2d17ba..000000000000 --- a/packages/core-js/modules/esnext.array.group-by-to-map.js +++ /dev/null @@ -1,16 +0,0 @@ -'use strict'; -// TODO: Remove from `core-js@4` -var $ = require('../internals/export'); -var arrayMethodIsStrict = require('../internals/array-method-is-strict'); -var addToUnscopables = require('../internals/add-to-unscopables'); -var $groupToMap = require('../internals/array-group-to-map'); -var IS_PURE = require('../internals/is-pure'); - -// `Array.prototype.groupByToMap` method -// https://github.com/tc39/proposal-array-grouping -// https://bugs.webkit.org/show_bug.cgi?id=236541 -$({ target: 'Array', proto: true, name: 'groupToMap', forced: IS_PURE || !arrayMethodIsStrict('groupByToMap') }, { - groupByToMap: $groupToMap -}); - -addToUnscopables('groupByToMap'); diff --git a/packages/core-js/proposals/array-grouping-stage-3.js b/packages/core-js/proposals/array-grouping-stage-3.js deleted file mode 100644 index cd87a4423aa3..000000000000 --- a/packages/core-js/proposals/array-grouping-stage-3.js +++ /dev/null @@ -1,4 +0,0 @@ -'use strict'; -// https://github.com/tc39/proposal-array-grouping -// TODO: Remove from `core-js@4` -require('../modules/esnext.array.group-by-to-map'); diff --git a/packages/core-js/proposals/array-grouping.js b/packages/core-js/proposals/array-grouping.js index 21a82d29d17f..6856713c75ae 100644 --- a/packages/core-js/proposals/array-grouping.js +++ b/packages/core-js/proposals/array-grouping.js @@ -1,5 +1,4 @@ 'use strict'; // https://github.com/tc39/proposal-array-grouping -require('../modules/esnext.array.group-by-to-map'); // TODO: Remove from `core-js@4` require('../modules/esnext.typed-array.group-by'); diff --git a/packages/core-js/stage/3.js b/packages/core-js/stage/3.js index 47e235747de6..de8afb82e7cf 100644 --- a/packages/core-js/stage/3.js +++ b/packages/core-js/stage/3.js @@ -6,7 +6,6 @@ require('../proposals/iterator-sequencing'); require('../proposals/json-parse-with-source'); require('../proposals/map-upsert-v4'); // TODO: Obsolete versions, remove from `core-js@4` -require('../proposals/array-grouping-stage-3'); require('../proposals/array-grouping-stage-3-2'); require('../proposals/change-array-by-copy'); require('../proposals/iterator-helpers-stage-3'); diff --git a/tests/compat-data/tests-coverage.mjs b/tests/compat-data/tests-coverage.mjs index dcc891344106..89df8f402074 100644 --- a/tests/compat-data/tests-coverage.mjs +++ b/tests/compat-data/tests-coverage.mjs @@ -16,7 +16,6 @@ const ignore = new Set([ 'es.weak-map', 'es.weak-set', 'esnext.array.filter-out', - 'esnext.array.group-by-to-map', 'esnext.array.group-to-map', 'esnext.array.last-index', 'esnext.array.last-item', diff --git a/tests/entries/unit.mjs b/tests/entries/unit.mjs index 81d2a34c4a10..c7b2a3e09343 100644 --- a/tests/entries/unit.mjs +++ b/tests/entries/unit.mjs @@ -689,9 +689,7 @@ for (PATH of ['core-js-pure', 'core-js']) { for (const NS of ['actual', 'full', 'features']) { ok(typeof load(NS, 'array/group-to-map') == 'function'); - ok(typeof load(NS, 'array/group-by-to-map') == 'function'); ok(typeof load(NS, 'array/virtual/group-to-map') == 'function'); - ok(typeof load(NS, 'array/virtual/group-by-to-map') == 'function'); ok(typeof load(NS, 'async-iterator') == 'function'); ok(typeof load(NS, 'async-iterator/drop') == 'function'); ok(typeof load(NS, 'async-iterator/every') == 'function'); @@ -722,12 +720,6 @@ for (PATH of ['core-js-pure', 'core-js']) { ok(instanceGroupToMap({}) === undefined); ok(typeof instanceGroupToMap([]) == 'function'); ok(instanceGroupToMap([]).call([1, 2, 3], it => it % 2).get(1).length === 2); - - const instanceGroupByToMap = load(NS, 'instance/group-by-to-map'); - ok(typeof instanceGroupByToMap == 'function'); - ok(instanceGroupByToMap({}) === undefined); - ok(typeof instanceGroupByToMap([]) == 'function'); - ok(instanceGroupByToMap([]).call([1, 2, 3], it => it % 2).get(1).length === 2); } for (const NS of ['full', 'features']) { @@ -895,7 +887,6 @@ for (PATH of ['core-js-pure', 'core-js']) { load('proposals/array-from-async'); load('proposals/array-from-async-stage-2'); load('proposals/array-grouping'); - load('proposals/array-grouping-stage-3'); load('proposals/array-grouping-stage-3-2'); load('proposals/array-grouping-v2'); load('proposals/array-includes'); diff --git a/tests/unit-global/esnext.array.group-by-to-map.js b/tests/unit-global/esnext.array.group-by-to-map.js deleted file mode 100644 index 10489b8e9a99..000000000000 --- a/tests/unit-global/esnext.array.group-by-to-map.js +++ /dev/null @@ -1,38 +0,0 @@ -import { STRICT } from '../helpers/constants.js'; - -const { from } = Array; - -QUnit.test('Array#groupByToMap', assert => { - const { groupByToMap } = Array.prototype; - assert.isFunction(groupByToMap); - assert.arity(groupByToMap, 1); - assert.looksNative(groupByToMap); - assert.nonEnumerable(Array.prototype, 'groupByToMap'); - let array = [1]; - const context = {}; - array.groupByToMap(function (value, key, that) { - assert.same(arguments.length, 3, 'correct number of callback arguments'); - assert.same(value, 1, 'correct value in callback'); - assert.same(key, 0, 'correct index in callback'); - assert.same(that, array, 'correct link to array in callback'); - assert.same(this, context, 'correct callback context'); - }, context); - assert.true([].groupByToMap(it => it) instanceof Map, 'returns Map'); - assert.deepEqual(from([1, 2, 3].groupByToMap(it => it % 2)), [[1, [1, 3]], [0, [2]]], '#1'); - assert.deepEqual( - from([1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12].groupByToMap(it => `i${ it % 5 }`)), - [['i1', [1, 6, 11]], ['i2', [2, 7, 12]], ['i3', [3, 8]], ['i4', [4, 9]], ['i0', [5, 10]]], - '#2', - ); - assert.deepEqual(from(Array(3).groupByToMap(it => it)), [[undefined, [undefined, undefined, undefined]]], '#3'); - if (STRICT) { - assert.throws(() => groupByToMap.call(null, () => { /* empty */ }), TypeError, 'null this -> TypeError'); - assert.throws(() => groupByToMap.call(undefined, () => { /* empty */ }), TypeError, 'undefined this -> TypeError'); - } - array = [1]; - // eslint-disable-next-line object-shorthand -- constructor - array.constructor = { [Symbol.species]: function () { - return { foo: 1 }; - } }; - assert.same(array.groupByToMap(Boolean).get(true).foo, undefined, 'no @@species'); -}); diff --git a/tests/unit-pure/esnext.array.group-by-to-map.js b/tests/unit-pure/esnext.array.group-by-to-map.js deleted file mode 100644 index b7185d973cb1..000000000000 --- a/tests/unit-pure/esnext.array.group-by-to-map.js +++ /dev/null @@ -1,37 +0,0 @@ -import { STRICT } from '../helpers/constants.js'; - -import Map from 'core-js-pure/es/map'; -import Symbol from 'core-js-pure/es/symbol'; -import from from 'core-js-pure/es/array/from'; -import groupByToMap from 'core-js-pure/actual/array/group-by-to-map'; - -QUnit.test('Array#groupByToMap', assert => { - assert.isFunction(groupByToMap); - let array = [1]; - const context = {}; - groupByToMap(array, function (value, key, that) { - assert.same(arguments.length, 3, 'correct number of callback arguments'); - assert.same(value, 1, 'correct value in callback'); - assert.same(key, 0, 'correct index in callback'); - assert.same(that, array, 'correct link to array in callback'); - assert.same(this, context, 'correct callback context'); - }, context); - assert.true(groupByToMap([], it => it) instanceof Map, 'returns Map'); - assert.deepEqual(from(groupByToMap([1, 2, 3], it => it % 2)), [[1, [1, 3]], [0, [2]]], '#1'); - assert.deepEqual( - from(groupByToMap([1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], it => `i${ it % 5 }`)), - [['i1', [1, 6, 11]], ['i2', [2, 7, 12]], ['i3', [3, 8]], ['i4', [4, 9]], ['i0', [5, 10]]], - '#2', - ); - assert.deepEqual(from(groupByToMap(Array(3), it => it)), [[undefined, [undefined, undefined, undefined]]], '#3'); - if (STRICT) { - assert.throws(() => groupByToMap(null, () => { /* empty */ }), TypeError, 'null this -> TypeError'); - assert.throws(() => groupByToMap(undefined, () => { /* empty */ }), TypeError, 'undefined this -> TypeError'); - } - array = [1]; - // eslint-disable-next-line object-shorthand -- constructor - array.constructor = { [Symbol.species]: function () { - return { foo: 1 }; - } }; - assert.same(groupByToMap(array, Boolean).get(true).foo, undefined, 'no @@species'); -}); From 06103fdf46526e9b60fabd39b62eda1f9eaa07b6 Mon Sep 17 00:00:00 2001 From: Denis Pushkarev Date: Tue, 3 Oct 2023 07:25:14 +0700 Subject: [PATCH 036/428] drop `esnext.array.group-to-map` (obsolete) --- packages/core-js-compat/src/data.mjs | 7 ---- .../src/modules-by-versions.mjs | 1 - packages/core-js/actual/array/group-to-map.js | 7 ---- packages/core-js/actual/array/index.js | 1 - .../actual/array/virtual/group-to-map.js | 7 ---- .../core-js/actual/array/virtual/index.js | 1 - .../core-js/actual/instance/group-to-map.js | 10 ----- packages/core-js/full/array/group-to-map.js | 4 -- .../full/array/virtual/group-to-map.js | 4 -- .../core-js/full/instance/group-to-map.js | 4 -- .../core-js/internals/array-group-to-map.js | 31 --------------- .../modules/esnext.array.group-to-map.js | 13 ------- .../proposals/array-grouping-stage-3-2.js | 3 -- packages/core-js/stage/3.js | 1 - tests/compat-data/tests-coverage.mjs | 1 - tests/entries/unit.mjs | 9 ----- .../unit-global/esnext.array.group-to-map.js | 39 ------------------- tests/unit-pure/esnext.array.group-to-map.js | 37 ------------------ 18 files changed, 180 deletions(-) delete mode 100644 packages/core-js/actual/array/group-to-map.js delete mode 100644 packages/core-js/actual/array/virtual/group-to-map.js delete mode 100644 packages/core-js/actual/instance/group-to-map.js delete mode 100644 packages/core-js/full/array/group-to-map.js delete mode 100644 packages/core-js/full/array/virtual/group-to-map.js delete mode 100644 packages/core-js/full/instance/group-to-map.js delete mode 100644 packages/core-js/internals/array-group-to-map.js delete mode 100644 packages/core-js/modules/esnext.array.group-to-map.js delete mode 100644 packages/core-js/proposals/array-grouping-stage-3-2.js delete mode 100644 tests/unit-global/esnext.array.group-to-map.js delete mode 100644 tests/unit-pure/esnext.array.group-to-map.js diff --git a/packages/core-js-compat/src/data.mjs b/packages/core-js-compat/src/data.mjs index 44121194e5b1..77759ade544b 100644 --- a/packages/core-js-compat/src/data.mjs +++ b/packages/core-js-compat/src/data.mjs @@ -2376,13 +2376,6 @@ export const data = { }, 'esnext.array.filter-reject': { }, - 'esnext.array.group-to-map': { - // disabled from Bun 0.6.2 - // bun: '0.1.9', - // https://github.com/tc39/proposal-array-grouping/issues/44#issuecomment-1306311107 - // chrome: '108', - // safari: '16.4', - }, 'esnext.array.is-template-object': { }, // TODO: Remove from `core-js@4` diff --git a/packages/core-js-compat/src/modules-by-versions.mjs b/packages/core-js-compat/src/modules-by-versions.mjs index e1ec279ea7c1..7657e7cbe187 100644 --- a/packages/core-js-compat/src/modules-by-versions.mjs +++ b/packages/core-js-compat/src/modules-by-versions.mjs @@ -123,7 +123,6 @@ export default { 'es.array.unshift', 'es.typed-array.find-last', 'es.typed-array.find-last-index', - 'esnext.array.group-to-map', 'esnext.symbol.metadata-key', ], 3.24: [ diff --git a/packages/core-js/actual/array/group-to-map.js b/packages/core-js/actual/array/group-to-map.js deleted file mode 100644 index 67d3e71ea8a9..000000000000 --- a/packages/core-js/actual/array/group-to-map.js +++ /dev/null @@ -1,7 +0,0 @@ -'use strict'; -require('../../modules/es.map'); -require('../../modules/es.object.to-string'); -require('../../modules/esnext.array.group-to-map'); -var entryUnbind = require('../../internals/entry-unbind'); - -module.exports = entryUnbind('Array', 'groupToMap'); diff --git a/packages/core-js/actual/array/index.js b/packages/core-js/actual/array/index.js index 992653abd638..5678565c7009 100644 --- a/packages/core-js/actual/array/index.js +++ b/packages/core-js/actual/array/index.js @@ -1,6 +1,5 @@ 'use strict'; var parent = require('../../stable/array'); require('../../modules/esnext.array.from-async'); -require('../../modules/esnext.array.group-to-map'); module.exports = parent; diff --git a/packages/core-js/actual/array/virtual/group-to-map.js b/packages/core-js/actual/array/virtual/group-to-map.js deleted file mode 100644 index 6cfad20977c3..000000000000 --- a/packages/core-js/actual/array/virtual/group-to-map.js +++ /dev/null @@ -1,7 +0,0 @@ -'use strict'; -require('../../../modules/es.map'); -require('../../../modules/es.object.to-string'); -require('../../../modules/esnext.array.group-to-map'); -var getBuiltInPrototypeMethod = require('../../../internals/get-built-in-prototype-method'); - -module.exports = getBuiltInPrototypeMethod('Array', 'groupToMap'); diff --git a/packages/core-js/actual/array/virtual/index.js b/packages/core-js/actual/array/virtual/index.js index 910b8f88dbf1..1c42a78cb489 100644 --- a/packages/core-js/actual/array/virtual/index.js +++ b/packages/core-js/actual/array/virtual/index.js @@ -2,6 +2,5 @@ var parent = require('../../../stable/array/virtual'); require('../../../modules/es.map'); require('../../../modules/es.object.to-string'); -require('../../../modules/esnext.array.group-to-map'); module.exports = parent; diff --git a/packages/core-js/actual/instance/group-to-map.js b/packages/core-js/actual/instance/group-to-map.js deleted file mode 100644 index 627a20e57d2d..000000000000 --- a/packages/core-js/actual/instance/group-to-map.js +++ /dev/null @@ -1,10 +0,0 @@ -'use strict'; -var isPrototypeOf = require('../../internals/object-is-prototype-of'); -var method = require('../array/virtual/group-to-map'); - -var ArrayPrototype = Array.prototype; - -module.exports = function (it) { - var own = it.groupToMap; - return it === ArrayPrototype || (isPrototypeOf(ArrayPrototype, it) && own === ArrayPrototype.groupToMap) ? method : own; -}; diff --git a/packages/core-js/full/array/group-to-map.js b/packages/core-js/full/array/group-to-map.js deleted file mode 100644 index 46b881d1ec5a..000000000000 --- a/packages/core-js/full/array/group-to-map.js +++ /dev/null @@ -1,4 +0,0 @@ -'use strict'; -var parent = require('../../actual/array/group-to-map'); - -module.exports = parent; diff --git a/packages/core-js/full/array/virtual/group-to-map.js b/packages/core-js/full/array/virtual/group-to-map.js deleted file mode 100644 index f40039260054..000000000000 --- a/packages/core-js/full/array/virtual/group-to-map.js +++ /dev/null @@ -1,4 +0,0 @@ -'use strict'; -var parent = require('../../../actual/array/virtual/group-to-map'); - -module.exports = parent; diff --git a/packages/core-js/full/instance/group-to-map.js b/packages/core-js/full/instance/group-to-map.js deleted file mode 100644 index 62d9a1fc73f8..000000000000 --- a/packages/core-js/full/instance/group-to-map.js +++ /dev/null @@ -1,4 +0,0 @@ -'use strict'; -var parent = require('../../actual/instance/group-to-map'); - -module.exports = parent; diff --git a/packages/core-js/internals/array-group-to-map.js b/packages/core-js/internals/array-group-to-map.js deleted file mode 100644 index 608d45ad58ad..000000000000 --- a/packages/core-js/internals/array-group-to-map.js +++ /dev/null @@ -1,31 +0,0 @@ -'use strict'; -var bind = require('../internals/function-bind-context'); -var uncurryThis = require('../internals/function-uncurry-this'); -var IndexedObject = require('../internals/indexed-object'); -var toObject = require('../internals/to-object'); -var lengthOfArrayLike = require('../internals/length-of-array-like'); -var MapHelpers = require('../internals/map-helpers'); - -var Map = MapHelpers.Map; -var mapGet = MapHelpers.get; -var mapHas = MapHelpers.has; -var mapSet = MapHelpers.set; -var push = uncurryThis([].push); - -// `Array.prototype.groupToMap` method -// https://github.com/tc39/proposal-array-grouping -module.exports = function groupToMap(callbackfn /* , thisArg */) { - var O = toObject(this); - var self = IndexedObject(O); - var boundFunction = bind(callbackfn, arguments.length > 1 ? arguments[1] : undefined); - var map = new Map(); - var length = lengthOfArrayLike(self); - var index = 0; - var key, value; - for (;length > index; index++) { - value = self[index]; - key = boundFunction(value, index, O); - if (mapHas(map, key)) push(mapGet(map, key), value); - else mapSet(map, key, [value]); - } return map; -}; diff --git a/packages/core-js/modules/esnext.array.group-to-map.js b/packages/core-js/modules/esnext.array.group-to-map.js deleted file mode 100644 index 42502649069c..000000000000 --- a/packages/core-js/modules/esnext.array.group-to-map.js +++ /dev/null @@ -1,13 +0,0 @@ -'use strict'; -var $ = require('../internals/export'); -var addToUnscopables = require('../internals/add-to-unscopables'); -var $groupToMap = require('../internals/array-group-to-map'); -var IS_PURE = require('../internals/is-pure'); - -// `Array.prototype.groupToMap` method -// https://github.com/tc39/proposal-array-grouping -$({ target: 'Array', proto: true, forced: IS_PURE }, { - groupToMap: $groupToMap -}); - -addToUnscopables('groupToMap'); diff --git a/packages/core-js/proposals/array-grouping-stage-3-2.js b/packages/core-js/proposals/array-grouping-stage-3-2.js deleted file mode 100644 index b743a3001f6d..000000000000 --- a/packages/core-js/proposals/array-grouping-stage-3-2.js +++ /dev/null @@ -1,3 +0,0 @@ -'use strict'; -// https://github.com/tc39/proposal-array-grouping -require('../modules/esnext.array.group-to-map'); diff --git a/packages/core-js/stage/3.js b/packages/core-js/stage/3.js index de8afb82e7cf..b445216f9e33 100644 --- a/packages/core-js/stage/3.js +++ b/packages/core-js/stage/3.js @@ -6,7 +6,6 @@ require('../proposals/iterator-sequencing'); require('../proposals/json-parse-with-source'); require('../proposals/map-upsert-v4'); // TODO: Obsolete versions, remove from `core-js@4` -require('../proposals/array-grouping-stage-3-2'); require('../proposals/change-array-by-copy'); require('../proposals/iterator-helpers-stage-3'); diff --git a/tests/compat-data/tests-coverage.mjs b/tests/compat-data/tests-coverage.mjs index 89df8f402074..3fad9c81b849 100644 --- a/tests/compat-data/tests-coverage.mjs +++ b/tests/compat-data/tests-coverage.mjs @@ -16,7 +16,6 @@ const ignore = new Set([ 'es.weak-map', 'es.weak-set', 'esnext.array.filter-out', - 'esnext.array.group-to-map', 'esnext.array.last-index', 'esnext.array.last-item', 'esnext.async-iterator.as-indexed-pairs', diff --git a/tests/entries/unit.mjs b/tests/entries/unit.mjs index c7b2a3e09343..c04869135d7d 100644 --- a/tests/entries/unit.mjs +++ b/tests/entries/unit.mjs @@ -688,8 +688,6 @@ for (PATH of ['core-js-pure', 'core-js']) { } for (const NS of ['actual', 'full', 'features']) { - ok(typeof load(NS, 'array/group-to-map') == 'function'); - ok(typeof load(NS, 'array/virtual/group-to-map') == 'function'); ok(typeof load(NS, 'async-iterator') == 'function'); ok(typeof load(NS, 'async-iterator/drop') == 'function'); ok(typeof load(NS, 'async-iterator/every') == 'function'); @@ -714,12 +712,6 @@ for (PATH of ['core-js-pure', 'core-js']) { ok(load(NS, 'symbol/metadata')); ok(load(NS, 'weak-map/get-or-insert')(new WeakMap([[{}, 2]]), {}, 3) === 3); ok(load(NS, 'weak-map/get-or-insert-computed')(new WeakMap([[{}, 2]]), {}, () => 3) === 3); - - const instanceGroupToMap = load(NS, 'instance/group-to-map'); - ok(typeof instanceGroupToMap == 'function'); - ok(instanceGroupToMap({}) === undefined); - ok(typeof instanceGroupToMap([]) == 'function'); - ok(instanceGroupToMap([]).call([1, 2, 3], it => it % 2).get(1).length === 2); } for (const NS of ['full', 'features']) { @@ -887,7 +879,6 @@ for (PATH of ['core-js-pure', 'core-js']) { load('proposals/array-from-async'); load('proposals/array-from-async-stage-2'); load('proposals/array-grouping'); - load('proposals/array-grouping-stage-3-2'); load('proposals/array-grouping-v2'); load('proposals/array-includes'); load('proposals/array-is-template-object'); diff --git a/tests/unit-global/esnext.array.group-to-map.js b/tests/unit-global/esnext.array.group-to-map.js deleted file mode 100644 index 09784a52ace9..000000000000 --- a/tests/unit-global/esnext.array.group-to-map.js +++ /dev/null @@ -1,39 +0,0 @@ -import { STRICT } from '../helpers/constants.js'; - -const { from } = Array; - -QUnit.test('Array#groupToMap', assert => { - const { groupToMap } = Array.prototype; - assert.isFunction(groupToMap); - assert.arity(groupToMap, 1); - assert.name(groupToMap, 'groupToMap'); - assert.looksNative(groupToMap); - assert.nonEnumerable(Array.prototype, 'groupToMap'); - let array = [1]; - const context = {}; - array.groupToMap(function (value, key, that) { - assert.same(arguments.length, 3, 'correct number of callback arguments'); - assert.same(value, 1, 'correct value in callback'); - assert.same(key, 0, 'correct index in callback'); - assert.same(that, array, 'correct link to array in callback'); - assert.same(this, context, 'correct callback context'); - }, context); - assert.true([].groupToMap(it => it) instanceof Map, 'returns Map'); - assert.deepEqual(from([1, 2, 3].groupToMap(it => it % 2)), [[1, [1, 3]], [0, [2]]], '#1'); - assert.deepEqual( - from([1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12].groupToMap(it => `i${ it % 5 }`)), - [['i1', [1, 6, 11]], ['i2', [2, 7, 12]], ['i3', [3, 8]], ['i4', [4, 9]], ['i0', [5, 10]]], - '#2', - ); - assert.deepEqual(from(Array(3).groupToMap(it => it)), [[undefined, [undefined, undefined, undefined]]], '#3'); - if (STRICT) { - assert.throws(() => groupToMap.call(null, () => { /* empty */ }), TypeError, 'null this -> TypeError'); - assert.throws(() => groupToMap.call(undefined, () => { /* empty */ }), TypeError, 'undefined this -> TypeError'); - } - array = [1]; - // eslint-disable-next-line object-shorthand -- constructor - array.constructor = { [Symbol.species]: function () { - return { foo: 1 }; - } }; - assert.same(array.groupToMap(Boolean).get(true).foo, undefined, 'no @@species'); -}); diff --git a/tests/unit-pure/esnext.array.group-to-map.js b/tests/unit-pure/esnext.array.group-to-map.js deleted file mode 100644 index ee7450928268..000000000000 --- a/tests/unit-pure/esnext.array.group-to-map.js +++ /dev/null @@ -1,37 +0,0 @@ -import { STRICT } from '../helpers/constants.js'; - -import Map from 'core-js-pure/es/map'; -import Symbol from 'core-js-pure/es/symbol'; -import from from 'core-js-pure/es/array/from'; -import groupToMap from 'core-js-pure/actual/array/group-to-map'; - -QUnit.test('Array#groupToMap', assert => { - assert.isFunction(groupToMap); - let array = [1]; - const context = {}; - groupToMap(array, function (value, key, that) { - assert.same(arguments.length, 3, 'correct number of callback arguments'); - assert.same(value, 1, 'correct value in callback'); - assert.same(key, 0, 'correct index in callback'); - assert.same(that, array, 'correct link to array in callback'); - assert.same(this, context, 'correct callback context'); - }, context); - assert.true(groupToMap([], it => it) instanceof Map, 'returns Map'); - assert.deepEqual(from(groupToMap([1, 2, 3], it => it % 2)), [[1, [1, 3]], [0, [2]]], '#1'); - assert.deepEqual( - from(groupToMap([1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], it => `i${ it % 5 }`)), - [['i1', [1, 6, 11]], ['i2', [2, 7, 12]], ['i3', [3, 8]], ['i4', [4, 9]], ['i0', [5, 10]]], - '#2', - ); - assert.deepEqual(from(groupToMap(Array(3), it => it)), [[undefined, [undefined, undefined, undefined]]], '#3'); - if (STRICT) { - assert.throws(() => groupToMap(null, () => { /* empty */ }), TypeError, 'null this -> TypeError'); - assert.throws(() => groupToMap(undefined, () => { /* empty */ }), TypeError, 'undefined this -> TypeError'); - } - array = [1]; - // eslint-disable-next-line object-shorthand -- constructor - array.constructor = { [Symbol.species]: function () { - return { foo: 1 }; - } }; - assert.same(groupToMap(array, Boolean).get(true).foo, undefined, 'no @@species'); -}); From 12a6426f1d4497d35c1484a77ae62e50fcf7a7f8 Mon Sep 17 00:00:00 2001 From: Denis Pushkarev Date: Tue, 3 Oct 2023 07:37:01 +0700 Subject: [PATCH 037/428] drop `esnext.typed-array.group-by` (obsolete) --- packages/core-js-compat/src/data.mjs | 3 -- .../src/modules-by-versions.mjs | 1 - .../modules/esnext.typed-array.group-by.js | 1 - packages/core-js/full/typed-array/group-by.js | 2 - packages/core-js/full/typed-array/index.js | 1 - packages/core-js/full/typed-array/methods.js | 1 - packages/core-js/internals/array-group.js | 37 ----------------- .../modules/esnext.typed-array.group-by.js | 15 ------- packages/core-js/proposals/array-grouping.js | 4 -- packages/core-js/stage/2.js | 1 - tests/compat-data/tests-coverage.mjs | 1 - tests/entries/unit.mjs | 2 - .../esnext.typed-array.group-by.js | 41 ------------------- 13 files changed, 110 deletions(-) delete mode 100644 packages/core-js-pure/override/modules/esnext.typed-array.group-by.js delete mode 100644 packages/core-js/full/typed-array/group-by.js delete mode 100644 packages/core-js/internals/array-group.js delete mode 100644 packages/core-js/modules/esnext.typed-array.group-by.js delete mode 100644 packages/core-js/proposals/array-grouping.js delete mode 100644 tests/unit-global/esnext.typed-array.group-by.js diff --git a/packages/core-js-compat/src/data.mjs b/packages/core-js-compat/src/data.mjs index 77759ade544b..f86c0e0364a5 100644 --- a/packages/core-js-compat/src/data.mjs +++ b/packages/core-js-compat/src/data.mjs @@ -2755,9 +2755,6 @@ export const data = { 'esnext.typed-array.filter-reject': { }, // TODO: Remove from `core-js@4` - 'esnext.typed-array.group-by': { - }, - // TODO: Remove from `core-js@4` 'esnext.typed-array.to-spliced': { }, 'esnext.typed-array.unique-by': { diff --git a/packages/core-js-compat/src/modules-by-versions.mjs b/packages/core-js-compat/src/modules-by-versions.mjs index 7657e7cbe187..09d026af85d0 100644 --- a/packages/core-js-compat/src/modules-by-versions.mjs +++ b/packages/core-js-compat/src/modules-by-versions.mjs @@ -84,7 +84,6 @@ export default { 3.16: [ 'esnext.array.filter-reject', 'esnext.typed-array.filter-reject', - 'esnext.typed-array.group-by', ], 3.17: [ 'es.array.at', diff --git a/packages/core-js-pure/override/modules/esnext.typed-array.group-by.js b/packages/core-js-pure/override/modules/esnext.typed-array.group-by.js deleted file mode 100644 index 8b1a393741c9..000000000000 --- a/packages/core-js-pure/override/modules/esnext.typed-array.group-by.js +++ /dev/null @@ -1 +0,0 @@ -// empty diff --git a/packages/core-js/full/typed-array/group-by.js b/packages/core-js/full/typed-array/group-by.js deleted file mode 100644 index cea8d665b4f7..000000000000 --- a/packages/core-js/full/typed-array/group-by.js +++ /dev/null @@ -1,2 +0,0 @@ -'use strict'; -require('../../modules/esnext.typed-array.group-by'); diff --git a/packages/core-js/full/typed-array/index.js b/packages/core-js/full/typed-array/index.js index 88f429844d9f..68fedb8fa54a 100644 --- a/packages/core-js/full/typed-array/index.js +++ b/packages/core-js/full/typed-array/index.js @@ -6,7 +6,6 @@ require('../../modules/esnext.typed-array.from-async'); // TODO: Remove from `core-js@4` require('../../modules/esnext.typed-array.filter-out'); require('../../modules/esnext.typed-array.filter-reject'); -require('../../modules/esnext.typed-array.group-by'); require('../../modules/esnext.typed-array.unique-by'); module.exports = parent; diff --git a/packages/core-js/full/typed-array/methods.js b/packages/core-js/full/typed-array/methods.js index c9949eb05d44..804858d291b6 100644 --- a/packages/core-js/full/typed-array/methods.js +++ b/packages/core-js/full/typed-array/methods.js @@ -6,7 +6,6 @@ require('../../modules/esnext.typed-array.from-async'); // TODO: Remove from `core-js@4` require('../../modules/esnext.typed-array.filter-out'); require('../../modules/esnext.typed-array.filter-reject'); -require('../../modules/esnext.typed-array.group-by'); require('../../modules/esnext.typed-array.unique-by'); module.exports = parent; diff --git a/packages/core-js/internals/array-group.js b/packages/core-js/internals/array-group.js deleted file mode 100644 index dbec5a4d6433..000000000000 --- a/packages/core-js/internals/array-group.js +++ /dev/null @@ -1,37 +0,0 @@ -'use strict'; -var bind = require('../internals/function-bind-context'); -var uncurryThis = require('../internals/function-uncurry-this'); -var IndexedObject = require('../internals/indexed-object'); -var toObject = require('../internals/to-object'); -var toPropertyKey = require('../internals/to-property-key'); -var lengthOfArrayLike = require('../internals/length-of-array-like'); -var objectCreate = require('../internals/object-create'); -var arrayFromConstructorAndList = require('../internals/array-from-constructor-and-list'); - -var $Array = Array; -var push = uncurryThis([].push); - -module.exports = function ($this, callbackfn, that, specificConstructor) { - var O = toObject($this); - var self = IndexedObject(O); - var boundFunction = bind(callbackfn, that); - var target = objectCreate(null); - var length = lengthOfArrayLike(self); - var index = 0; - var Constructor, key, value; - for (;length > index; index++) { - value = self[index]; - key = toPropertyKey(boundFunction(value, index, O)); - // in some IE versions, `hasOwnProperty` returns incorrect result on integer keys - // but since it's a `null` prototype object, we can safely use `in` - if (key in target) push(target[key], value); - else target[key] = [value]; - } - // TODO: Remove this block from `core-js@4` - if (specificConstructor) { - Constructor = specificConstructor(O); - if (Constructor !== $Array) { - for (key in target) target[key] = arrayFromConstructorAndList(Constructor, target[key]); - } - } return target; -}; diff --git a/packages/core-js/modules/esnext.typed-array.group-by.js b/packages/core-js/modules/esnext.typed-array.group-by.js deleted file mode 100644 index 9fe6354a7bfb..000000000000 --- a/packages/core-js/modules/esnext.typed-array.group-by.js +++ /dev/null @@ -1,15 +0,0 @@ -'use strict'; -// TODO: Remove from `core-js@4` -var ArrayBufferViewCore = require('../internals/array-buffer-view-core'); -var $group = require('../internals/array-group'); - -var aTypedArray = ArrayBufferViewCore.aTypedArray; -var getTypedArrayConstructor = ArrayBufferViewCore.getTypedArrayConstructor; -var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod; - -// `%TypedArray%.prototype.groupBy` method -// https://github.com/tc39/proposal-array-grouping -exportTypedArrayMethod('groupBy', function groupBy(callbackfn /* , thisArg */) { - var thisArg = arguments.length > 1 ? arguments[1] : undefined; - return $group(aTypedArray(this), callbackfn, thisArg, getTypedArrayConstructor); -}, true); diff --git a/packages/core-js/proposals/array-grouping.js b/packages/core-js/proposals/array-grouping.js deleted file mode 100644 index 6856713c75ae..000000000000 --- a/packages/core-js/proposals/array-grouping.js +++ /dev/null @@ -1,4 +0,0 @@ -'use strict'; -// https://github.com/tc39/proposal-array-grouping -// TODO: Remove from `core-js@4` -require('../modules/esnext.typed-array.group-by'); diff --git a/packages/core-js/stage/2.js b/packages/core-js/stage/2.js index 6d0921b25f91..d4299d1044ea 100644 --- a/packages/core-js/stage/2.js +++ b/packages/core-js/stage/2.js @@ -8,7 +8,6 @@ require('../proposals/iterator-range'); require('../proposals/string-dedent'); require('../proposals/symbol-predicates-v2'); // TODO: Obsolete versions, remove from `core-js@4` -require('../proposals/array-grouping'); require('../proposals/async-explicit-resource-management'); require('../proposals/decorators'); require('../proposals/decorator-metadata'); diff --git a/tests/compat-data/tests-coverage.mjs b/tests/compat-data/tests-coverage.mjs index 3fad9c81b849..dfa7e6796199 100644 --- a/tests/compat-data/tests-coverage.mjs +++ b/tests/compat-data/tests-coverage.mjs @@ -58,7 +58,6 @@ const ignore = new Set([ 'esnext.symbol.replace-all', 'esnext.typed-array.from-async', 'esnext.typed-array.filter-out', - 'esnext.typed-array.group-by', 'esnext.typed-array.to-spliced', 'esnext.weak-map.emplace', 'esnext.weak-map.upsert', diff --git a/tests/entries/unit.mjs b/tests/entries/unit.mjs index c04869135d7d..0274a798b5a9 100644 --- a/tests/entries/unit.mjs +++ b/tests/entries/unit.mjs @@ -878,7 +878,6 @@ for (PATH of ['core-js-pure', 'core-js']) { load('proposals/array-flat-map'); load('proposals/array-from-async'); load('proposals/array-from-async-stage-2'); - load('proposals/array-grouping'); load('proposals/array-grouping-v2'); load('proposals/array-includes'); load('proposals/array-is-template-object'); @@ -1067,7 +1066,6 @@ for (const NS of ['full', 'features']) { load(NS, 'typed-array/from-async'); load(NS, 'typed-array/filter-out'); load(NS, 'typed-array/filter-reject'); - load(NS, 'typed-array/group-by'); load(NS, 'typed-array/unique-by'); } diff --git a/tests/unit-global/esnext.typed-array.group-by.js b/tests/unit-global/esnext.typed-array.group-by.js deleted file mode 100644 index 2e44023452fa..000000000000 --- a/tests/unit-global/esnext.typed-array.group-by.js +++ /dev/null @@ -1,41 +0,0 @@ -import { DESCRIPTORS, TYPED_ARRAYS } from '../helpers/constants.js'; - -const { getPrototypeOf } = Object; - -if (DESCRIPTORS) QUnit.test('%TypedArrayPrototype%.groupBy', assert => { - // we can't implement %TypedArrayPrototype% in all engines, so run all tests for each typed array constructor - for (const { name, TypedArray } of TYPED_ARRAYS) { - const { groupBy } = TypedArray.prototype; - assert.isFunction(groupBy, `${ name }::groupBy is function`); - assert.arity(groupBy, 1, `${ name }::groupBy arity is 1`); - assert.name(groupBy, 'groupBy', `${ name }::groupBy name is 'groupBy'`); - assert.looksNative(groupBy, `${ name }::groupBy looks native`); - const array = new TypedArray([1]); - const context = {}; - array.groupBy(function (value, key, that) { - assert.same(arguments.length, 3, 'correct number of callback arguments'); - assert.same(value, 1, 'correct value in callback'); - assert.same(key, 0, 'correct index in callback'); - assert.same(that, array, 'correct link to array in callback'); - assert.same(this, context, 'correct callback context'); - }, context); - - assert.same(getPrototypeOf(new TypedArray([1]).groupBy(it => it)), null, 'null proto'); - assert.true(new TypedArray([1]).groupBy(it => it)[1] instanceof TypedArray, 'instance'); - assert.deepEqual( - new TypedArray([1, 2, 3]).groupBy(it => it % 2), - { 1: new TypedArray([1, 3]), 0: new TypedArray([2]) }, - '#1', - ); - assert.deepEqual(new TypedArray([1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]).groupBy(it => `i${ it % 5 }`), { - i1: new TypedArray([1, 6, 11]), - i2: new TypedArray([2, 7, 12]), - i3: new TypedArray([3, 8]), - i4: new TypedArray([4, 9]), - i0: new TypedArray([5, 10]), - }, '#2'); - - assert.throws(() => groupBy.call([0], () => { /* empty */ }), "isn't generic"); - } -}); - From 52e37cb2e2036a75c07484d8ae61edb62ae5fbba Mon Sep 17 00:00:00 2001 From: Denis Pushkarev Date: Tue, 3 Oct 2023 07:51:35 +0700 Subject: [PATCH 038/428] drop `esnext.array.filter-out` (obsolete) --- packages/core-js-compat/src/data.mjs | 3 -- .../src/modules-by-versions.mjs | 1 - packages/core-js/full/array/filter-out.js | 6 --- packages/core-js/full/array/index.js | 2 - .../core-js/full/array/virtual/filter-out.js | 6 --- packages/core-js/full/array/virtual/index.js | 2 - packages/core-js/full/instance/filter-out.js | 11 ------ .../modules/esnext.array.filter-out.js | 15 -------- packages/core-js/proposals/array-filtering.js | 2 - scripts/bundle-package/bundle-package.mjs | 1 - tests/compat-data/tests-coverage.mjs | 1 - tests/entries/unit.mjs | 8 ---- tests/unit-global/esnext.array.filter-out.js | 37 ------------------- tests/unit-pure/esnext.array.filter-out.js | 29 --------------- 14 files changed, 124 deletions(-) delete mode 100644 packages/core-js/full/array/filter-out.js delete mode 100644 packages/core-js/full/array/virtual/filter-out.js delete mode 100644 packages/core-js/full/instance/filter-out.js delete mode 100644 packages/core-js/modules/esnext.array.filter-out.js delete mode 100644 tests/unit-global/esnext.array.filter-out.js delete mode 100644 tests/unit-pure/esnext.array.filter-out.js diff --git a/packages/core-js-compat/src/data.mjs b/packages/core-js-compat/src/data.mjs index f86c0e0364a5..c6111b6aec07 100644 --- a/packages/core-js-compat/src/data.mjs +++ b/packages/core-js-compat/src/data.mjs @@ -2371,9 +2371,6 @@ export const data = { 'esnext.suppressed-error.constructor': null, // TODO: Remove from `core-js@4` 'esnext.array.from-async': null, - // TODO: Remove from `core-js@4` - 'esnext.array.filter-out': { - }, 'esnext.array.filter-reject': { }, 'esnext.array.is-template-object': { diff --git a/packages/core-js-compat/src/modules-by-versions.mjs b/packages/core-js-compat/src/modules-by-versions.mjs index 09d026af85d0..417777bfde50 100644 --- a/packages/core-js-compat/src/modules-by-versions.mjs +++ b/packages/core-js-compat/src/modules-by-versions.mjs @@ -59,7 +59,6 @@ export default { 'esnext.weak-map.emplace', ], 3.8: [ - 'esnext.array.filter-out', 'esnext.array.unique-by', 'esnext.bigint.range', 'esnext.number.range', diff --git a/packages/core-js/full/array/filter-out.js b/packages/core-js/full/array/filter-out.js deleted file mode 100644 index 21169a1c24fa..000000000000 --- a/packages/core-js/full/array/filter-out.js +++ /dev/null @@ -1,6 +0,0 @@ -'use strict'; -// TODO: Remove from `core-js@4` -require('../../modules/esnext.array.filter-out'); -var entryUnbind = require('../../internals/entry-unbind'); - -module.exports = entryUnbind('Array', 'filterOut'); diff --git a/packages/core-js/full/array/index.js b/packages/core-js/full/array/index.js index 5f4901a404fa..64d74459caa6 100644 --- a/packages/core-js/full/array/index.js +++ b/packages/core-js/full/array/index.js @@ -1,8 +1,6 @@ 'use strict'; var parent = require('../../actual/array'); require('../../modules/es.map'); -// TODO: Remove from `core-js@4` -require('../../modules/esnext.array.filter-out'); require('../../modules/esnext.array.filter-reject'); require('../../modules/esnext.array.is-template-object'); require('../../modules/esnext.array.last-item'); diff --git a/packages/core-js/full/array/virtual/filter-out.js b/packages/core-js/full/array/virtual/filter-out.js deleted file mode 100644 index 8bf9a24c3d29..000000000000 --- a/packages/core-js/full/array/virtual/filter-out.js +++ /dev/null @@ -1,6 +0,0 @@ -'use strict'; -// TODO: Remove from `core-js@4` -require('../../../modules/esnext.array.filter-out'); -var getBuiltInPrototypeMethod = require('../../../internals/get-built-in-prototype-method'); - -module.exports = getBuiltInPrototypeMethod('Array', 'filterOut'); diff --git a/packages/core-js/full/array/virtual/index.js b/packages/core-js/full/array/virtual/index.js index ecf598f40d75..64b1153214bb 100644 --- a/packages/core-js/full/array/virtual/index.js +++ b/packages/core-js/full/array/virtual/index.js @@ -1,7 +1,5 @@ 'use strict'; var parent = require('../../../actual/array/virtual'); -// TODO: Remove from `core-js@4` -require('../../../modules/esnext.array.filter-out'); require('../../../modules/esnext.array.filter-reject'); require('../../../modules/esnext.array.unique-by'); diff --git a/packages/core-js/full/instance/filter-out.js b/packages/core-js/full/instance/filter-out.js deleted file mode 100644 index ea5fb5b62847..000000000000 --- a/packages/core-js/full/instance/filter-out.js +++ /dev/null @@ -1,11 +0,0 @@ -'use strict'; -// TODO: Remove from `core-js@4` -var isPrototypeOf = require('../../internals/object-is-prototype-of'); -var method = require('../array/virtual/filter-out'); - -var ArrayPrototype = Array.prototype; - -module.exports = function (it) { - var own = it.filterOut; - return it === ArrayPrototype || (isPrototypeOf(ArrayPrototype, it) && own === ArrayPrototype.filterOut) ? method : own; -}; diff --git a/packages/core-js/modules/esnext.array.filter-out.js b/packages/core-js/modules/esnext.array.filter-out.js deleted file mode 100644 index fc737f2427dc..000000000000 --- a/packages/core-js/modules/esnext.array.filter-out.js +++ /dev/null @@ -1,15 +0,0 @@ -'use strict'; -// TODO: remove from `core-js@4` -var $ = require('../internals/export'); -var $filterReject = require('../internals/array-iteration').filterReject; -var addToUnscopables = require('../internals/add-to-unscopables'); - -// `Array.prototype.filterOut` method -// https://github.com/tc39/proposal-array-filtering -$({ target: 'Array', proto: true, forced: true }, { - filterOut: function filterOut(callbackfn /* , thisArg */) { - return $filterReject(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined); - } -}); - -addToUnscopables('filterOut'); diff --git a/packages/core-js/proposals/array-filtering.js b/packages/core-js/proposals/array-filtering.js index 624b1a9fb0ee..34eabad9f456 100644 --- a/packages/core-js/proposals/array-filtering.js +++ b/packages/core-js/proposals/array-filtering.js @@ -1,7 +1,5 @@ 'use strict'; // https://github.com/tc39/proposal-array-filtering -// TODO: Remove from `core-js@4` -require('../modules/esnext.array.filter-out'); require('../modules/esnext.array.filter-reject'); // TODO: Remove from `core-js@4` require('../modules/esnext.typed-array.filter-out'); diff --git a/scripts/bundle-package/bundle-package.mjs b/scripts/bundle-package/bundle-package.mjs index 52ce51c002de..a91452f61e57 100644 --- a/scripts/bundle-package/bundle-package.mjs +++ b/scripts/bundle-package/bundle-package.mjs @@ -59,7 +59,6 @@ await bundle(DENO ? { options: { targets: { deno: '1.0' }, exclude: [ - 'esnext.array.filter-out', // obsolete 'esnext.map.update-or-insert', // obsolete 'esnext.map.upsert', // obsolete 'esnext.symbol.pattern-match', // is not a part of actual proposal, replaced by esnext.symbol.matcher diff --git a/tests/compat-data/tests-coverage.mjs b/tests/compat-data/tests-coverage.mjs index dfa7e6796199..1d9b4c981ed6 100644 --- a/tests/compat-data/tests-coverage.mjs +++ b/tests/compat-data/tests-coverage.mjs @@ -15,7 +15,6 @@ const ignore = new Set([ 'es.set', 'es.weak-map', 'es.weak-set', - 'esnext.array.filter-out', 'esnext.array.last-index', 'esnext.array.last-item', 'esnext.async-iterator.as-indexed-pairs', diff --git a/tests/entries/unit.mjs b/tests/entries/unit.mjs index 0274a798b5a9..a7a58240be76 100644 --- a/tests/entries/unit.mjs +++ b/tests/entries/unit.mjs @@ -719,13 +719,11 @@ for (PATH of ['core-js-pure', 'core-js']) { const Set = load(NS, 'set'); const WeakMap = load(NS, 'weak-map'); const WeakSet = load(NS, 'weak-set'); - ok(typeof load(NS, 'array/filter-out') == 'function'); ok(typeof load(NS, 'array/filter-reject') == 'function'); ok(typeof load(NS, 'array/is-template-object') == 'function'); load(NS, 'array/last-item'); load(NS, 'array/last-index'); ok(typeof load(NS, 'array/unique-by') == 'function'); - ok(typeof load(NS, 'array/virtual/filter-out') == 'function'); ok(typeof load(NS, 'array/virtual/filter-reject') == 'function'); ok(typeof load(NS, 'array/virtual/unique-by') == 'function'); ok(typeof load(NS, 'async-iterator/as-indexed-pairs') == 'function'); @@ -846,12 +844,6 @@ for (PATH of ['core-js-pure', 'core-js']) { ok(typeof instanceDemethodize([].slice) == 'function'); ok(instanceDemethodize([].slice).call([].slice)([1, 2, 3], 1)[0] === 2); - const instanceFilterOut = load(NS, 'instance/filter-out'); - ok(typeof instanceFilterOut == 'function'); - ok(instanceFilterOut({}) === undefined); - ok(typeof instanceFilterOut([]) == 'function'); - ok(instanceFilterOut([]).call([1, 2, 3], it => it % 2).length === 1); - const instanceFilterReject = load(NS, 'instance/filter-reject'); ok(typeof instanceFilterReject == 'function'); ok(instanceFilterReject({}) === undefined); diff --git a/tests/unit-global/esnext.array.filter-out.js b/tests/unit-global/esnext.array.filter-out.js deleted file mode 100644 index 2eb185f78044..000000000000 --- a/tests/unit-global/esnext.array.filter-out.js +++ /dev/null @@ -1,37 +0,0 @@ -// TODO: Remove from `core-js@4` -import { STRICT } from '../helpers/constants.js'; - -QUnit.test('Array#filterOut', assert => { - const { filterOut } = Array.prototype; - assert.isFunction(filterOut); - assert.arity(filterOut, 1); - assert.name(filterOut, 'filterOut'); - assert.looksNative(filterOut); - assert.nonEnumerable(Array.prototype, 'filterOut'); - let array = [1]; - const context = {}; - array.filterOut(function (value, key, that) { - assert.same(arguments.length, 3, 'correct number of callback arguments'); - assert.same(value, 1, 'correct value in callback'); - assert.same(key, 0, 'correct index in callback'); - assert.same(that, array, 'correct link to array in callback'); - assert.same(this, context, 'correct callback context'); - }, context); - assert.deepEqual([1, 2, 3, 4, 5], [1, 2, 3, 'q', {}, 4, true, 5].filterOut(it => typeof it != 'number')); - if (STRICT) { - assert.throws(() => filterOut.call(null, () => { /* empty */ }), TypeError); - assert.throws(() => filterOut.call(undefined, () => { /* empty */ }), TypeError); - } - assert.notThrows(() => filterOut.call({ - length: -1, - 0: 1, - }, () => { - throw new Error(); - }), 'uses ToLength'); - array = []; - // eslint-disable-next-line object-shorthand -- constructor - array.constructor = { [Symbol.species]: function () { - return { foo: 1 }; - } }; - assert.same(array.filterOut(Boolean).foo, 1, '@@species'); -}); diff --git a/tests/unit-pure/esnext.array.filter-out.js b/tests/unit-pure/esnext.array.filter-out.js deleted file mode 100644 index 2025b33f61ba..000000000000 --- a/tests/unit-pure/esnext.array.filter-out.js +++ /dev/null @@ -1,29 +0,0 @@ -// TODO: Remove from `core-js@4` -import { STRICT } from '../helpers/constants.js'; - -import Symbol from 'core-js-pure/es/symbol'; -import filterOut from 'core-js-pure/full/array/filter-out'; - -QUnit.test('Array#filterOut', assert => { - assert.isFunction(filterOut); - let array = [1]; - const context = {}; - filterOut(array, function (value, key, that) { - assert.same(arguments.length, 3, 'correct number of callback arguments'); - assert.same(value, 1, 'correct value in callback'); - assert.same(key, 0, 'correct index in callback'); - assert.same(that, array, 'correct link to array in callback'); - assert.same(this, context, 'correct callback context'); - }, context); - assert.deepEqual([1, 2, 3, 4, 5], filterOut([1, 2, 3, 'q', {}, 4, true, 5], it => typeof it != 'number')); - if (STRICT) { - assert.throws(() => filterOut(null, () => { /* empty */ }), TypeError); - assert.throws(() => filterOut(undefined, () => { /* empty */ }), TypeError); - } - array = []; - // eslint-disable-next-line object-shorthand -- constructor - array.constructor = { [Symbol.species]: function () { - return { foo: 1 }; - } }; - assert.same(filterOut(array, Boolean).foo, 1, '@@species'); -}); From 900d9b841735c4526a0bc4d19f52f64f62f50d4c Mon Sep 17 00:00:00 2001 From: Denis Pushkarev Date: Tue, 3 Oct 2023 07:59:10 +0700 Subject: [PATCH 039/428] drop `esnext.typed-array.filter-out` (obsolete) --- packages/core-js-compat/src/data.mjs | 3 -- .../src/modules-by-versions.mjs | 1 - .../modules/esnext.typed-array.filter-out.js | 2 -- .../core-js/full/typed-array/filter-out.js | 3 -- packages/core-js/full/typed-array/index.js | 2 -- packages/core-js/full/typed-array/methods.js | 2 -- .../modules/esnext.typed-array.filter-out.js | 15 -------- packages/core-js/proposals/array-filtering.js | 2 -- scripts/bundle-package/bundle-package.mjs | 1 - tests/compat-data/tests-coverage.mjs | 1 - tests/entries/unit.mjs | 1 - .../esnext.typed-array.filter-out.js | 34 ------------------- 12 files changed, 67 deletions(-) delete mode 100644 packages/core-js-pure/override/modules/esnext.typed-array.filter-out.js delete mode 100644 packages/core-js/full/typed-array/filter-out.js delete mode 100644 packages/core-js/modules/esnext.typed-array.filter-out.js delete mode 100644 tests/unit-global/esnext.typed-array.filter-out.js diff --git a/packages/core-js-compat/src/data.mjs b/packages/core-js-compat/src/data.mjs index c6111b6aec07..1600f827240c 100644 --- a/packages/core-js-compat/src/data.mjs +++ b/packages/core-js-compat/src/data.mjs @@ -2746,9 +2746,6 @@ export const data = { // TODO: Remove from `core-js@4` 'esnext.typed-array.from-async': { }, - // TODO: Remove from `core-js@4` - 'esnext.typed-array.filter-out': { - }, 'esnext.typed-array.filter-reject': { }, // TODO: Remove from `core-js@4` diff --git a/packages/core-js-compat/src/modules-by-versions.mjs b/packages/core-js-compat/src/modules-by-versions.mjs index 417777bfde50..a2a899fbe653 100644 --- a/packages/core-js-compat/src/modules-by-versions.mjs +++ b/packages/core-js-compat/src/modules-by-versions.mjs @@ -62,7 +62,6 @@ export default { 'esnext.array.unique-by', 'esnext.bigint.range', 'esnext.number.range', - 'esnext.typed-array.filter-out', ], 3.9: [ 'esnext.typed-array.unique-by', diff --git a/packages/core-js-pure/override/modules/esnext.typed-array.filter-out.js b/packages/core-js-pure/override/modules/esnext.typed-array.filter-out.js deleted file mode 100644 index 5436a3228e0e..000000000000 --- a/packages/core-js-pure/override/modules/esnext.typed-array.filter-out.js +++ /dev/null @@ -1,2 +0,0 @@ -'use strict'; -// TODO: Remove from `core-js@4` diff --git a/packages/core-js/full/typed-array/filter-out.js b/packages/core-js/full/typed-array/filter-out.js deleted file mode 100644 index a6726b79c487..000000000000 --- a/packages/core-js/full/typed-array/filter-out.js +++ /dev/null @@ -1,3 +0,0 @@ -'use strict'; -// TODO: Remove from `core-js@4` -require('../../modules/esnext.typed-array.filter-out'); diff --git a/packages/core-js/full/typed-array/index.js b/packages/core-js/full/typed-array/index.js index 68fedb8fa54a..ac78149c04bd 100644 --- a/packages/core-js/full/typed-array/index.js +++ b/packages/core-js/full/typed-array/index.js @@ -3,8 +3,6 @@ var parent = require('../../actual/typed-array'); require('../../modules/es.map'); require('../../modules/es.promise'); require('../../modules/esnext.typed-array.from-async'); -// TODO: Remove from `core-js@4` -require('../../modules/esnext.typed-array.filter-out'); require('../../modules/esnext.typed-array.filter-reject'); require('../../modules/esnext.typed-array.unique-by'); diff --git a/packages/core-js/full/typed-array/methods.js b/packages/core-js/full/typed-array/methods.js index 804858d291b6..ae6c37cd97c5 100644 --- a/packages/core-js/full/typed-array/methods.js +++ b/packages/core-js/full/typed-array/methods.js @@ -3,8 +3,6 @@ var parent = require('../../actual/typed-array/methods'); require('../../modules/es.map'); require('../../modules/es.promise'); require('../../modules/esnext.typed-array.from-async'); -// TODO: Remove from `core-js@4` -require('../../modules/esnext.typed-array.filter-out'); require('../../modules/esnext.typed-array.filter-reject'); require('../../modules/esnext.typed-array.unique-by'); diff --git a/packages/core-js/modules/esnext.typed-array.filter-out.js b/packages/core-js/modules/esnext.typed-array.filter-out.js deleted file mode 100644 index ce5ec730dc14..000000000000 --- a/packages/core-js/modules/esnext.typed-array.filter-out.js +++ /dev/null @@ -1,15 +0,0 @@ -'use strict'; -// TODO: Remove from `core-js@4` -var ArrayBufferViewCore = require('../internals/array-buffer-view-core'); -var $filterReject = require('../internals/array-iteration').filterReject; -var fromSameTypeAndList = require('../internals/typed-array-from-same-type-and-list'); - -var aTypedArray = ArrayBufferViewCore.aTypedArray; -var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod; - -// `%TypedArray%.prototype.filterOut` method -// https://github.com/tc39/proposal-array-filtering -exportTypedArrayMethod('filterOut', function filterOut(callbackfn /* , thisArg */) { - var list = $filterReject(aTypedArray(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined); - return fromSameTypeAndList(this, list); -}, true); diff --git a/packages/core-js/proposals/array-filtering.js b/packages/core-js/proposals/array-filtering.js index 34eabad9f456..de07b81b6104 100644 --- a/packages/core-js/proposals/array-filtering.js +++ b/packages/core-js/proposals/array-filtering.js @@ -1,6 +1,4 @@ 'use strict'; // https://github.com/tc39/proposal-array-filtering require('../modules/esnext.array.filter-reject'); -// TODO: Remove from `core-js@4` -require('../modules/esnext.typed-array.filter-out'); require('../modules/esnext.typed-array.filter-reject'); diff --git a/scripts/bundle-package/bundle-package.mjs b/scripts/bundle-package/bundle-package.mjs index a91452f61e57..3b04d9cc209b 100644 --- a/scripts/bundle-package/bundle-package.mjs +++ b/scripts/bundle-package/bundle-package.mjs @@ -63,7 +63,6 @@ await bundle(DENO ? { 'esnext.map.upsert', // obsolete 'esnext.symbol.pattern-match', // is not a part of actual proposal, replaced by esnext.symbol.matcher 'esnext.symbol.replace-all', // obsolete - 'esnext.typed-array.filter-out', // obsolete 'esnext.weak-map.upsert', // obsolete ], }, diff --git a/tests/compat-data/tests-coverage.mjs b/tests/compat-data/tests-coverage.mjs index 1d9b4c981ed6..3f00de13a3b2 100644 --- a/tests/compat-data/tests-coverage.mjs +++ b/tests/compat-data/tests-coverage.mjs @@ -56,7 +56,6 @@ const ignore = new Set([ 'esnext.symbol.pattern-match', 'esnext.symbol.replace-all', 'esnext.typed-array.from-async', - 'esnext.typed-array.filter-out', 'esnext.typed-array.to-spliced', 'esnext.weak-map.emplace', 'esnext.weak-map.upsert', diff --git a/tests/entries/unit.mjs b/tests/entries/unit.mjs index a7a58240be76..ff4dd890cb3a 100644 --- a/tests/entries/unit.mjs +++ b/tests/entries/unit.mjs @@ -1056,7 +1056,6 @@ for (const NS of ['actual', 'full', 'features']) { for (const NS of ['full', 'features']) { load(NS, 'typed-array/from-async'); - load(NS, 'typed-array/filter-out'); load(NS, 'typed-array/filter-reject'); load(NS, 'typed-array/unique-by'); } diff --git a/tests/unit-global/esnext.typed-array.filter-out.js b/tests/unit-global/esnext.typed-array.filter-out.js deleted file mode 100644 index 9cdc7311a512..000000000000 --- a/tests/unit-global/esnext.typed-array.filter-out.js +++ /dev/null @@ -1,34 +0,0 @@ -// TODO: Remove from `core-js@4` -import { DESCRIPTORS, TYPED_ARRAYS } from '../helpers/constants.js'; - -if (DESCRIPTORS) QUnit.test('%TypedArrayPrototype%.filterOut', assert => { - // we can't implement %TypedArrayPrototype% in all engines, so run all tests for each typed array constructor - for (const { name, TypedArray } of TYPED_ARRAYS) { - const { filterOut } = TypedArray.prototype; - assert.isFunction(filterOut, `${ name }::filterOut is function`); - assert.arity(filterOut, 1, `${ name }::filterOut arity is 1`); - assert.name(filterOut, 'filterOut', `${ name }::filterOut name is 'filterOut'`); - assert.looksNative(filterOut, `${ name }::filterOut looks native`); - const array = new TypedArray([1]); - const context = {}; - array.filterOut(function (value, key, that) { - assert.same(arguments.length, 3, 'correct number of callback arguments'); - assert.same(value, 1, 'correct value in callback'); - assert.same(key, 0, 'correct index in callback'); - assert.same(that, array, 'correct link to array in callback'); - assert.same(this, context, 'correct callback context'); - }, context); - const instance = new TypedArray([1, 2, 3, 4, 5, 6, 7, 8, 9]).filterOut(it => it % 2); - assert.true(instance instanceof TypedArray, 'correct instance'); - assert.arrayEqual(instance, [2, 4, 6, 8], 'works'); - let values = ''; - let keys = ''; - new TypedArray([1, 2, 3]).filterOut((value, key) => { - values += value; - keys += key; - }); - assert.same(values, '123'); - assert.same(keys, '012'); - assert.throws(() => filterOut.call([0], () => { /* empty */ }), "isn't generic"); - } -}); From 5c9c7e7920b8220d23960877ea128f51c7e9ffc0 Mon Sep 17 00:00:00 2001 From: Denis Pushkarev Date: Tue, 3 Oct 2023 08:13:46 +0700 Subject: [PATCH 040/428] drop `esnext.typed-array.to-spliced` (obsolete) --- packages/core-js-compat/src/data.mjs | 3 -- .../src/modules-by-versions.mjs | 1 - .../modules/esnext.typed-array.to-spliced.js | 1 - packages/core-js/actual/typed-array/index.js | 1 - .../core-js/actual/typed-array/methods.js | 2 - .../core-js/actual/typed-array/to-spliced.js | 3 -- .../core-js/full/typed-array/to-spliced.js | 5 -- .../modules/esnext.typed-array.to-spliced.js | 52 ------------------- .../core-js/proposals/change-array-by-copy.js | 11 ---- packages/core-js/stage/3.js | 1 - tests/compat-data/tests-coverage.mjs | 1 - tests/entries/unit.mjs | 5 -- .../esnext.typed-array.to-spliced.js | 36 ------------- 13 files changed, 122 deletions(-) delete mode 100644 packages/core-js-pure/override/modules/esnext.typed-array.to-spliced.js delete mode 100644 packages/core-js/actual/typed-array/to-spliced.js delete mode 100644 packages/core-js/full/typed-array/to-spliced.js delete mode 100644 packages/core-js/modules/esnext.typed-array.to-spliced.js delete mode 100644 packages/core-js/proposals/change-array-by-copy.js delete mode 100644 tests/unit-global/esnext.typed-array.to-spliced.js diff --git a/packages/core-js-compat/src/data.mjs b/packages/core-js-compat/src/data.mjs index 1600f827240c..e9b41c24d7c4 100644 --- a/packages/core-js-compat/src/data.mjs +++ b/packages/core-js-compat/src/data.mjs @@ -2748,9 +2748,6 @@ export const data = { }, 'esnext.typed-array.filter-reject': { }, - // TODO: Remove from `core-js@4` - 'esnext.typed-array.to-spliced': { - }, 'esnext.typed-array.unique-by': { }, // TODO: Remove from `core-js@4` diff --git a/packages/core-js-compat/src/modules-by-versions.mjs b/packages/core-js-compat/src/modules-by-versions.mjs index a2a899fbe653..70700ad51366 100644 --- a/packages/core-js-compat/src/modules-by-versions.mjs +++ b/packages/core-js-compat/src/modules-by-versions.mjs @@ -103,7 +103,6 @@ export default { 'esnext.function.un-this', 'esnext.iterator.to-async', 'esnext.string.cooked', - 'esnext.typed-array.to-spliced', 'web.dom-exception.constructor', 'web.dom-exception.stack', 'web.dom-exception.to-string-tag', diff --git a/packages/core-js-pure/override/modules/esnext.typed-array.to-spliced.js b/packages/core-js-pure/override/modules/esnext.typed-array.to-spliced.js deleted file mode 100644 index 8b1a393741c9..000000000000 --- a/packages/core-js-pure/override/modules/esnext.typed-array.to-spliced.js +++ /dev/null @@ -1 +0,0 @@ -// empty diff --git a/packages/core-js/actual/typed-array/index.js b/packages/core-js/actual/typed-array/index.js index 849a8e4e5c3f..e4a0047210ad 100644 --- a/packages/core-js/actual/typed-array/index.js +++ b/packages/core-js/actual/typed-array/index.js @@ -7,6 +7,5 @@ require('../../modules/esnext.uint8-array.set-from-base64'); require('../../modules/esnext.uint8-array.set-from-hex'); require('../../modules/esnext.uint8-array.to-base64'); require('../../modules/esnext.uint8-array.to-hex'); -require('../../modules/esnext.typed-array.to-spliced'); module.exports = parent; diff --git a/packages/core-js/actual/typed-array/methods.js b/packages/core-js/actual/typed-array/methods.js index 94757248f3f4..7861337636bf 100644 --- a/packages/core-js/actual/typed-array/methods.js +++ b/packages/core-js/actual/typed-array/methods.js @@ -6,7 +6,5 @@ require('../../modules/esnext.uint8-array.set-from-base64'); require('../../modules/esnext.uint8-array.set-from-hex'); require('../../modules/esnext.uint8-array.to-base64'); require('../../modules/esnext.uint8-array.to-hex'); -// TODO: Remove from `core-js@4` -require('../../modules/esnext.typed-array.to-spliced'); module.exports = parent; diff --git a/packages/core-js/actual/typed-array/to-spliced.js b/packages/core-js/actual/typed-array/to-spliced.js deleted file mode 100644 index ab4bf3503534..000000000000 --- a/packages/core-js/actual/typed-array/to-spliced.js +++ /dev/null @@ -1,3 +0,0 @@ -'use strict'; -// TODO: Remove from `core-js@4` -require('../../modules/esnext.typed-array.to-spliced'); diff --git a/packages/core-js/full/typed-array/to-spliced.js b/packages/core-js/full/typed-array/to-spliced.js deleted file mode 100644 index a21aff311a95..000000000000 --- a/packages/core-js/full/typed-array/to-spliced.js +++ /dev/null @@ -1,5 +0,0 @@ -'use strict'; -// TODO: Remove from `core-js@4` -var parent = require('../../actual/typed-array/to-spliced'); - -module.exports = parent; diff --git a/packages/core-js/modules/esnext.typed-array.to-spliced.js b/packages/core-js/modules/esnext.typed-array.to-spliced.js deleted file mode 100644 index 710f29646611..000000000000 --- a/packages/core-js/modules/esnext.typed-array.to-spliced.js +++ /dev/null @@ -1,52 +0,0 @@ -'use strict'; -// TODO: Remove from `core-js@4` -var ArrayBufferViewCore = require('../internals/array-buffer-view-core'); -var lengthOfArrayLike = require('../internals/length-of-array-like'); -var isBigIntArray = require('../internals/is-big-int-array'); -var toAbsoluteIndex = require('../internals/to-absolute-index'); -var toBigInt = require('../internals/to-big-int'); -var toIntegerOrInfinity = require('../internals/to-integer-or-infinity'); - -var aTypedArray = ArrayBufferViewCore.aTypedArray; -var getTypedArrayConstructor = ArrayBufferViewCore.getTypedArrayConstructor; -var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod; -var max = Math.max; -var min = Math.min; - -// `%TypedArray%.prototype.toSpliced` method -// https://tc39.es/proposal-change-array-by-copy/#sec-%typedarray%.prototype.toSpliced -exportTypedArrayMethod('toSpliced', function toSpliced(start, deleteCount /* , ...items */) { - var O = aTypedArray(this); - var C = getTypedArrayConstructor(O); - var len = lengthOfArrayLike(O); - var actualStart = toAbsoluteIndex(start, len); - var argumentsLength = arguments.length; - var k = 0; - var insertCount, actualDeleteCount, thisIsBigIntArray, convertedItems, value, newLen, A; - if (argumentsLength === 0) { - insertCount = actualDeleteCount = 0; - } else if (argumentsLength === 1) { - insertCount = 0; - actualDeleteCount = len - actualStart; - } else { - actualDeleteCount = min(max(toIntegerOrInfinity(deleteCount), 0), len - actualStart); - insertCount = argumentsLength - 2; - if (insertCount) { - convertedItems = new C(insertCount); - thisIsBigIntArray = isBigIntArray(convertedItems); - for (var i = 2; i < argumentsLength; i++) { - value = arguments[i]; - // FF30- typed arrays doesn't properly convert objects to typed array values - convertedItems[i - 2] = thisIsBigIntArray ? toBigInt(value) : +value; - } - } - } - newLen = len + insertCount - actualDeleteCount; - A = new C(newLen); - - for (; k < actualStart; k++) A[k] = O[k]; - for (; k < actualStart + insertCount; k++) A[k] = convertedItems[k - actualStart]; - for (; k < newLen; k++) A[k] = O[k + actualDeleteCount - insertCount]; - - return A; -}, true); diff --git a/packages/core-js/proposals/change-array-by-copy.js b/packages/core-js/proposals/change-array-by-copy.js deleted file mode 100644 index 3c56bf576c3e..000000000000 --- a/packages/core-js/proposals/change-array-by-copy.js +++ /dev/null @@ -1,11 +0,0 @@ -'use strict'; -// https://github.com/tc39/proposal-change-array-by-copy -require('../modules/es.array.to-reversed'); -require('../modules/es.array.to-sorted'); -require('../modules/es.array.to-spliced'); -require('../modules/es.array.with'); -require('../modules/es.typed-array.to-reversed'); -require('../modules/es.typed-array.to-sorted'); -// TODO: Remove from `core-js@4` -require('../modules/esnext.typed-array.to-spliced'); -require('../modules/es.typed-array.with'); diff --git a/packages/core-js/stage/3.js b/packages/core-js/stage/3.js index b445216f9e33..bd3f75220377 100644 --- a/packages/core-js/stage/3.js +++ b/packages/core-js/stage/3.js @@ -6,7 +6,6 @@ require('../proposals/iterator-sequencing'); require('../proposals/json-parse-with-source'); require('../proposals/map-upsert-v4'); // TODO: Obsolete versions, remove from `core-js@4` -require('../proposals/change-array-by-copy'); require('../proposals/iterator-helpers-stage-3'); module.exports = parent; diff --git a/tests/compat-data/tests-coverage.mjs b/tests/compat-data/tests-coverage.mjs index 3f00de13a3b2..23c98f4a07c9 100644 --- a/tests/compat-data/tests-coverage.mjs +++ b/tests/compat-data/tests-coverage.mjs @@ -56,7 +56,6 @@ const ignore = new Set([ 'esnext.symbol.pattern-match', 'esnext.symbol.replace-all', 'esnext.typed-array.from-async', - 'esnext.typed-array.to-spliced', 'esnext.weak-map.emplace', 'esnext.weak-map.upsert', 'web.url-search-params', diff --git a/tests/entries/unit.mjs b/tests/entries/unit.mjs index ff4dd890cb3a..c2f023ecb39d 100644 --- a/tests/entries/unit.mjs +++ b/tests/entries/unit.mjs @@ -880,7 +880,6 @@ for (PATH of ['core-js-pure', 'core-js']) { load('proposals/async-explicit-resource-management'); load('proposals/async-iteration'); load('proposals/async-iterator-helpers'); - load('proposals/change-array-by-copy'); load('proposals/change-array-by-copy-stage-4'); load('proposals/collection-methods'); load('proposals/collection-of-from'); @@ -1050,10 +1049,6 @@ for (const NS of ['es', 'stable', 'actual', 'full', 'features']) { ok(typeof load(NS, 'typed-array').Uint32Array == 'function'); } -for (const NS of ['actual', 'full', 'features']) { - load(NS, 'typed-array/to-spliced'); -} - for (const NS of ['full', 'features']) { load(NS, 'typed-array/from-async'); load(NS, 'typed-array/filter-reject'); diff --git a/tests/unit-global/esnext.typed-array.to-spliced.js b/tests/unit-global/esnext.typed-array.to-spliced.js deleted file mode 100644 index a1d5b2c240db..000000000000 --- a/tests/unit-global/esnext.typed-array.to-spliced.js +++ /dev/null @@ -1,36 +0,0 @@ -// TODO: Remove from `core-js@4` -import { DESCRIPTORS, TYPED_ARRAYS_WITH_BIG_INT } from '../helpers/constants.js'; - -if (DESCRIPTORS) QUnit.test('%TypedArrayPrototype%.toSpliced', assert => { - // we can't implement %TypedArrayPrototype% in all engines, so run all tests for each typed array constructor - for (const { name, TypedArray, $ } of TYPED_ARRAYS_WITH_BIG_INT) { - const { toSpliced } = TypedArray.prototype; - - assert.isFunction(toSpliced, `${ name }::toSpliced is function`); - assert.arity(toSpliced, 2, `${ name }::toSpliced arity is 1`); - assert.name(toSpliced, 'toSpliced', `${ name }::toSpliced name is 'toSpliced'`); - assert.looksNative(toSpliced, `${ name }::toSpliced looks native`); - - let array = new TypedArray([$(1), $(2), $(3), $(4), $(5)]); - assert.notSame(array.toSpliced(2), array, 'immutable'); - - assert.deepEqual(new TypedArray([$(1), $(2), $(3), $(4), $(5)]).toSpliced(2), new TypedArray([$(1), $(2)])); - assert.deepEqual(new TypedArray([$(1), $(2), $(3), $(4), $(5)]).toSpliced(-2), new TypedArray([$(1), $(2), $(3)])); - assert.deepEqual(new TypedArray([$(1), $(2), $(3), $(4), $(5)]).toSpliced(2, 2), new TypedArray([$(1), $(2), $(5)])); - assert.deepEqual(new TypedArray([$(1), $(2), $(3), $(4), $(5)]).toSpliced(2, -2), new TypedArray([$(1), $(2), $(3), $(4), $(5)])); - assert.deepEqual(new TypedArray([$(1), $(2), $(3), $(4), $(5)]).toSpliced(2, 2, $(6), $(7)), new TypedArray([$(1), $(2), $(6), $(7), $(5)])); - - array = new TypedArray([$(1)]); - - assert.deepEqual(array.toSpliced(1, 0, { - valueOf() { - array[0] = $(2); - return $(3); - }, - }), new TypedArray([$(2), $(3)]), 'operations order'); - - assert.throws(() => toSpliced.call(null), TypeError, "isn't generic #1"); - assert.throws(() => toSpliced.call(undefined), TypeError, "isn't generic #2"); - assert.throws(() => toSpliced.call([$(1), $(2)]), TypeError, "isn't generic #3"); - } -}); From 4dda99a68eb9ccc99371ac1f03a5366067c8e799 Mon Sep 17 00:00:00 2001 From: Denis Pushkarev Date: Tue, 3 Oct 2023 08:28:18 +0700 Subject: [PATCH 041/428] drop `esnext.typed-array.from-async` (obsolete) --- packages/core-js-compat/src/data.mjs | 3 - .../src/modules-by-versions.mjs | 1 - .../modules/esnext.typed-array.from-async.js | 1 - .../core-js/full/typed-array/from-async.js | 2 - packages/core-js/full/typed-array/index.js | 1 - packages/core-js/full/typed-array/methods.js | 1 - .../core-js/internals/array-from-async.js | 51 ----------- .../core-js/modules/es.array.from-async.js | 49 ++++++++++- .../modules/esnext.typed-array.from-async.js | 25 ------ .../core-js/proposals/array-from-async.js | 2 - tests/compat-data/tests-coverage.mjs | 1 - tests/entries/unit.mjs | 1 - .../esnext.typed-array.from-async.js | 84 ------------------- 13 files changed, 47 insertions(+), 175 deletions(-) delete mode 100644 packages/core-js-pure/override/modules/esnext.typed-array.from-async.js delete mode 100644 packages/core-js/full/typed-array/from-async.js delete mode 100644 packages/core-js/internals/array-from-async.js delete mode 100644 packages/core-js/modules/esnext.typed-array.from-async.js delete mode 100644 tests/unit-global/esnext.typed-array.from-async.js diff --git a/packages/core-js-compat/src/data.mjs b/packages/core-js-compat/src/data.mjs index e9b41c24d7c4..092e8aef3d27 100644 --- a/packages/core-js-compat/src/data.mjs +++ b/packages/core-js-compat/src/data.mjs @@ -2743,9 +2743,6 @@ export const data = { // TODO: Remove from `core-js@4` 'esnext.symbol.replace-all': { }, - // TODO: Remove from `core-js@4` - 'esnext.typed-array.from-async': { - }, 'esnext.typed-array.filter-reject': { }, 'esnext.typed-array.unique-by': { diff --git a/packages/core-js-compat/src/modules-by-versions.mjs b/packages/core-js-compat/src/modules-by-versions.mjs index 70700ad51366..d54e5762045a 100644 --- a/packages/core-js-compat/src/modules-by-versions.mjs +++ b/packages/core-js-compat/src/modules-by-versions.mjs @@ -91,7 +91,6 @@ export default { ], 3.18: [ 'esnext.array.from-async', - 'esnext.typed-array.from-async', ], '3.20': [ 'es.error.cause', diff --git a/packages/core-js-pure/override/modules/esnext.typed-array.from-async.js b/packages/core-js-pure/override/modules/esnext.typed-array.from-async.js deleted file mode 100644 index 8b1a393741c9..000000000000 --- a/packages/core-js-pure/override/modules/esnext.typed-array.from-async.js +++ /dev/null @@ -1 +0,0 @@ -// empty diff --git a/packages/core-js/full/typed-array/from-async.js b/packages/core-js/full/typed-array/from-async.js deleted file mode 100644 index f78f4a8431dc..000000000000 --- a/packages/core-js/full/typed-array/from-async.js +++ /dev/null @@ -1,2 +0,0 @@ -'use strict'; -require('../../modules/esnext.typed-array.from-async'); diff --git a/packages/core-js/full/typed-array/index.js b/packages/core-js/full/typed-array/index.js index ac78149c04bd..a4a6531b44e9 100644 --- a/packages/core-js/full/typed-array/index.js +++ b/packages/core-js/full/typed-array/index.js @@ -2,7 +2,6 @@ var parent = require('../../actual/typed-array'); require('../../modules/es.map'); require('../../modules/es.promise'); -require('../../modules/esnext.typed-array.from-async'); require('../../modules/esnext.typed-array.filter-reject'); require('../../modules/esnext.typed-array.unique-by'); diff --git a/packages/core-js/full/typed-array/methods.js b/packages/core-js/full/typed-array/methods.js index ae6c37cd97c5..36db62b71e17 100644 --- a/packages/core-js/full/typed-array/methods.js +++ b/packages/core-js/full/typed-array/methods.js @@ -2,7 +2,6 @@ var parent = require('../../actual/typed-array/methods'); require('../../modules/es.map'); require('../../modules/es.promise'); -require('../../modules/esnext.typed-array.from-async'); require('../../modules/esnext.typed-array.filter-reject'); require('../../modules/esnext.typed-array.unique-by'); diff --git a/packages/core-js/internals/array-from-async.js b/packages/core-js/internals/array-from-async.js deleted file mode 100644 index 6cca99943d32..000000000000 --- a/packages/core-js/internals/array-from-async.js +++ /dev/null @@ -1,51 +0,0 @@ -'use strict'; -var bind = require('../internals/function-bind-context'); -var uncurryThis = require('../internals/function-uncurry-this'); -var toObject = require('../internals/to-object'); -var isConstructor = require('../internals/is-constructor'); -var getAsyncIterator = require('../internals/get-async-iterator'); -var getIterator = require('../internals/get-iterator'); -var getIteratorDirect = require('../internals/get-iterator-direct'); -var getIteratorMethod = require('../internals/get-iterator-method'); -var getMethod = require('../internals/get-method'); -var getBuiltIn = require('../internals/get-built-in'); -var getBuiltInPrototypeMethod = require('../internals/get-built-in-prototype-method'); -var wellKnownSymbol = require('../internals/well-known-symbol'); -var AsyncFromSyncIterator = require('../internals/async-from-sync-iterator'); -var toArray = require('../internals/async-iterator-iteration').toArray; - -var ASYNC_ITERATOR = wellKnownSymbol('asyncIterator'); -var arrayIterator = uncurryThis(getBuiltInPrototypeMethod('Array', 'values')); -var arrayIteratorNext = uncurryThis(arrayIterator([]).next); - -var safeArrayIterator = function () { - return new SafeArrayIterator(this); -}; - -var SafeArrayIterator = function (O) { - this.iterator = arrayIterator(O); -}; - -SafeArrayIterator.prototype.next = function () { - return arrayIteratorNext(this.iterator); -}; - -// `Array.fromAsync` method implementation -// https://github.com/tc39/proposal-array-from-async -module.exports = function fromAsync(asyncItems /* , mapfn = undefined, thisArg = undefined */) { - var C = this; - var argumentsLength = arguments.length; - var mapfn = argumentsLength > 1 ? arguments[1] : undefined; - var thisArg = argumentsLength > 2 ? arguments[2] : undefined; - return new (getBuiltIn('Promise'))(function (resolve) { - var O = toObject(asyncItems); - if (mapfn !== undefined) mapfn = bind(mapfn, thisArg); - var usingAsyncIterator = getMethod(O, ASYNC_ITERATOR); - var usingSyncIterator = usingAsyncIterator ? undefined : getIteratorMethod(O) || safeArrayIterator; - var A = isConstructor(C) ? new C() : []; - var iterator = usingAsyncIterator - ? getAsyncIterator(O, usingAsyncIterator) - : new AsyncFromSyncIterator(getIteratorDirect(getIterator(O, usingSyncIterator))); - resolve(toArray(iterator, mapfn, A)); - }); -}; diff --git a/packages/core-js/modules/es.array.from-async.js b/packages/core-js/modules/es.array.from-async.js index 04ce614fc98b..e18f6c3b3d37 100644 --- a/packages/core-js/modules/es.array.from-async.js +++ b/packages/core-js/modules/es.array.from-async.js @@ -1,8 +1,37 @@ 'use strict'; var $ = require('../internals/export'); -var fromAsync = require('../internals/array-from-async'); +var bind = require('../internals/function-bind-context'); +var uncurryThis = require('../internals/function-uncurry-this'); +var toObject = require('../internals/to-object'); +var isConstructor = require('../internals/is-constructor'); +var getAsyncIterator = require('../internals/get-async-iterator'); +var getIterator = require('../internals/get-iterator'); +var getIteratorDirect = require('../internals/get-iterator-direct'); +var getIteratorMethod = require('../internals/get-iterator-method'); +var getMethod = require('../internals/get-method'); +var getBuiltIn = require('../internals/get-built-in'); +var getBuiltInPrototypeMethod = require('../internals/get-built-in-prototype-method'); +var wellKnownSymbol = require('../internals/well-known-symbol'); +var AsyncFromSyncIterator = require('../internals/async-from-sync-iterator'); +var toArray = require('../internals/async-iterator-iteration').toArray; var fails = require('../internals/fails'); +var ASYNC_ITERATOR = wellKnownSymbol('asyncIterator'); +var arrayIterator = uncurryThis(getBuiltInPrototypeMethod('Array', 'values')); +var arrayIteratorNext = uncurryThis(arrayIterator([]).next); + +var safeArrayIterator = function () { + return new SafeArrayIterator(this); +}; + +var SafeArrayIterator = function (O) { + this.iterator = arrayIterator(O); +}; + +SafeArrayIterator.prototype.next = function () { + return arrayIteratorNext(this.iterator); +}; + // eslint-disable-next-line es/no-array-fromasync -- safe var nativeFromAsync = Array.fromAsync; // https://bugs.webkit.org/show_bug.cgi?id=271703 @@ -18,5 +47,21 @@ var INCORRECT_CONSTRUCTURING = !nativeFromAsync || fails(function () { // `Array.fromAsync` method // https://github.com/tc39/proposal-array-from-async $({ target: 'Array', stat: true, forced: INCORRECT_CONSTRUCTURING }, { - fromAsync: fromAsync + fromAsync: function fromAsync(asyncItems /* , mapfn = undefined, thisArg = undefined */) { + var C = this; + var argumentsLength = arguments.length; + var mapfn = argumentsLength > 1 ? arguments[1] : undefined; + var thisArg = argumentsLength > 2 ? arguments[2] : undefined; + return new (getBuiltIn('Promise'))(function (resolve) { + var O = toObject(asyncItems); + if (mapfn !== undefined) mapfn = bind(mapfn, thisArg); + var usingAsyncIterator = getMethod(O, ASYNC_ITERATOR); + var usingSyncIterator = usingAsyncIterator ? undefined : getIteratorMethod(O) || safeArrayIterator; + var A = isConstructor(C) ? new C() : []; + var iterator = usingAsyncIterator + ? getAsyncIterator(O, usingAsyncIterator) + : new AsyncFromSyncIterator(getIteratorDirect(getIterator(O, usingSyncIterator))); + resolve(toArray(iterator, mapfn, A)); + }); + } }); diff --git a/packages/core-js/modules/esnext.typed-array.from-async.js b/packages/core-js/modules/esnext.typed-array.from-async.js deleted file mode 100644 index 64c57d7974b6..000000000000 --- a/packages/core-js/modules/esnext.typed-array.from-async.js +++ /dev/null @@ -1,25 +0,0 @@ -'use strict'; -// TODO: Remove from `core-js@4` -var getBuiltIn = require('../internals/get-built-in'); -var aConstructor = require('../internals/a-constructor'); -var arrayFromAsync = require('../internals/array-from-async'); -var ArrayBufferViewCore = require('../internals/array-buffer-view-core'); -var arrayFromConstructorAndList = require('../internals/array-from-constructor-and-list'); - -var aTypedArrayConstructor = ArrayBufferViewCore.aTypedArrayConstructor; -var exportTypedArrayStaticMethod = ArrayBufferViewCore.exportTypedArrayStaticMethod; - -// `%TypedArray%.fromAsync` method -// https://github.com/tc39/proposal-array-from-async -exportTypedArrayStaticMethod('fromAsync', function fromAsync(asyncItems /* , mapfn = undefined, thisArg = undefined */) { - var C = this; - var argumentsLength = arguments.length; - var mapfn = argumentsLength > 1 ? arguments[1] : undefined; - var thisArg = argumentsLength > 2 ? arguments[2] : undefined; - return new (getBuiltIn('Promise'))(function (resolve) { - aConstructor(C); - resolve(arrayFromAsync(asyncItems, mapfn, thisArg)); - }).then(function (list) { - return arrayFromConstructorAndList(aTypedArrayConstructor(C), list); - }); -}, true); diff --git a/packages/core-js/proposals/array-from-async.js b/packages/core-js/proposals/array-from-async.js index bf4f54385d45..70264eed7bdd 100644 --- a/packages/core-js/proposals/array-from-async.js +++ b/packages/core-js/proposals/array-from-async.js @@ -1,5 +1,3 @@ 'use strict'; // https://github.com/tc39/proposal-array-from-async require('../modules/esnext.array.from-async'); -// TODO: Remove from `core-js@4` -require('../modules/esnext.typed-array.from-async'); diff --git a/tests/compat-data/tests-coverage.mjs b/tests/compat-data/tests-coverage.mjs index 23c98f4a07c9..4503a014c7e6 100644 --- a/tests/compat-data/tests-coverage.mjs +++ b/tests/compat-data/tests-coverage.mjs @@ -55,7 +55,6 @@ const ignore = new Set([ 'esnext.symbol.metadata-key', 'esnext.symbol.pattern-match', 'esnext.symbol.replace-all', - 'esnext.typed-array.from-async', 'esnext.weak-map.emplace', 'esnext.weak-map.upsert', 'web.url-search-params', diff --git a/tests/entries/unit.mjs b/tests/entries/unit.mjs index c2f023ecb39d..1a69abb63f51 100644 --- a/tests/entries/unit.mjs +++ b/tests/entries/unit.mjs @@ -1050,7 +1050,6 @@ for (const NS of ['es', 'stable', 'actual', 'full', 'features']) { } for (const NS of ['full', 'features']) { - load(NS, 'typed-array/from-async'); load(NS, 'typed-array/filter-reject'); load(NS, 'typed-array/unique-by'); } diff --git a/tests/unit-global/esnext.typed-array.from-async.js b/tests/unit-global/esnext.typed-array.from-async.js deleted file mode 100644 index 119fb776288b..000000000000 --- a/tests/unit-global/esnext.typed-array.from-async.js +++ /dev/null @@ -1,84 +0,0 @@ -import { createAsyncIterable, createIterable } from '../helpers/helpers.js'; -import { DESCRIPTORS, STRICT_THIS, TYPED_ARRAYS } from '../helpers/constants.js'; - -if (DESCRIPTORS) { - // we can't implement %TypedArray% in all engines, so run all tests for each typed array constructor - for (const { name, TypedArray } of TYPED_ARRAYS) QUnit.test(`%TypedArray%.fromAsync, ${ name }`, assert => { - const { fromAsync } = TypedArray; - - assert.isFunction(fromAsync); - assert.arity(fromAsync, 1); - assert.name(fromAsync, 'fromAsync'); - assert.looksNative(fromAsync); - - return TypedArray.fromAsync(createAsyncIterable([1, 2, 3]), it => it ** 2).then(it => { - assert.arrayEqual(it, [1, 4, 9], 'async iterable and mapfn'); - return TypedArray.fromAsync(createAsyncIterable([1]), function (arg, index) { - assert.same(this, STRICT_THIS, 'this'); - assert.same(arguments.length, 2, 'arguments length'); - assert.same(arg, 1, 'argument'); - assert.same(index, 0, 'index'); - }); - }).then(() => { - return TypedArray.fromAsync(createAsyncIterable([1, 2, 3])); - }).then(it => { - assert.arrayEqual(it, [1, 2, 3], 'async iterable without mapfn'); - return TypedArray.fromAsync(createIterable([1, 2, 3]), arg => arg ** 2); - }).then(it => { - assert.arrayEqual(it, [1, 4, 9], 'iterable and mapfn'); - return TypedArray.fromAsync(createIterable([1, 2, 3]), arg => Promise.resolve(arg ** 2)); - }).then(it => { - assert.arrayEqual(it, [1, 4, 9], 'iterable and async mapfn'); - return TypedArray.fromAsync(createIterable([1]), function (arg, index) { - assert.same(this, STRICT_THIS, 'this'); - assert.same(arguments.length, 2, 'arguments length'); - assert.same(arg, 1, 'argument'); - assert.same(index, 0, 'index'); - }); - }).then(() => { - return TypedArray.fromAsync(createIterable([1, 2, 3])); - }).then(it => { - assert.arrayEqual(it, [1, 2, 3], 'iterable and without mapfn'); - return TypedArray.fromAsync([1, Promise.resolve(2), 3]); - }).then(it => { - assert.arrayEqual(it, [1, 2, 3], 'array'); - return TypedArray.fromAsync('123'); - }).then(it => { - assert.arrayEqual(it, [1, 2, 3], 'string'); - return TypedArray.fromAsync({ length: 1, 0: 1 }); - }).then(it => { - assert.arrayEqual(it, [1], 'non-iterable'); - return TypedArray.fromAsync(createIterable([1]), () => { throw 42; }); - }).then(() => { - assert.avoid(); - }, error => { - assert.same(error, 42, 'rejection on a callback error'); - function C() { /* empty */ } - return TypedArray.fromAsync.call(C, [1], {}); - }).then(() => { - assert.avoid(); - }, error => { - assert.true(error instanceof TypeError); - return TypedArray.fromAsync(undefined, () => { /* empty */ }); - }).then(() => { - assert.avoid(); - }, error => { - assert.true(error instanceof TypeError); - return TypedArray.fromAsync(null, () => { /* empty */ }); - }).then(() => { - assert.avoid(); - }, error => { - assert.true(error instanceof TypeError); - return TypedArray.fromAsync([1], null); - }).then(() => { - assert.avoid(); - }, error => { - assert.true(error instanceof TypeError); - return TypedArray.fromAsync([1], {}); - }).then(() => { - assert.avoid(); - }, error => { - assert.true(error instanceof TypeError); - }); - }); -} From 603514287b46ffbb65078f18a8905b269ef4a460 Mon Sep 17 00:00:00 2001 From: Denis Pushkarev Date: Tue, 3 Oct 2023 08:37:17 +0700 Subject: [PATCH 042/428] drop `esnext.async-iterator.as-indexed-pairs` (obsolete) --- packages/core-js-compat/src/data.mjs | 3 --- .../src/modules-by-versions.mjs | 1 - .../full/async-iterator/as-indexed-pairs.js | 9 -------- packages/core-js/full/async-iterator/index.js | 1 - .../esnext.async-iterator.as-indexed-pairs.js | 10 --------- .../core-js/proposals/iterator-helpers.js | 1 - tests/compat-data/tests-coverage.mjs | 1 - tests/entries/unit.mjs | 1 - .../esnext.async-iterator.as-indexed-pairs.js | 21 ------------------- .../esnext.async-iterator.as-indexed-pairs.js | 21 ------------------- 10 files changed, 69 deletions(-) delete mode 100644 packages/core-js/full/async-iterator/as-indexed-pairs.js delete mode 100644 packages/core-js/modules/esnext.async-iterator.as-indexed-pairs.js delete mode 100644 tests/unit-global/esnext.async-iterator.as-indexed-pairs.js delete mode 100644 tests/unit-pure/esnext.async-iterator.as-indexed-pairs.js diff --git a/packages/core-js-compat/src/data.mjs b/packages/core-js-compat/src/data.mjs index 092e8aef3d27..1fcbd9f5a88b 100644 --- a/packages/core-js-compat/src/data.mjs +++ b/packages/core-js-compat/src/data.mjs @@ -2394,9 +2394,6 @@ export const data = { 'esnext.async-iterator.constructor': { }, // TODO: Remove from `core-js@4` - 'esnext.async-iterator.as-indexed-pairs': { - }, - // TODO: Remove from `core-js@4` 'esnext.async-iterator.async-dispose': null, 'esnext.async-iterator.drop': { }, diff --git a/packages/core-js-compat/src/modules-by-versions.mjs b/packages/core-js-compat/src/modules-by-versions.mjs index d54e5762045a..e3afac987bbf 100644 --- a/packages/core-js-compat/src/modules-by-versions.mjs +++ b/packages/core-js-compat/src/modules-by-versions.mjs @@ -13,7 +13,6 @@ export default { 3.3: [ 'es.global-this', 'esnext.async-iterator.constructor', - 'esnext.async-iterator.as-indexed-pairs', 'esnext.async-iterator.drop', 'esnext.async-iterator.every', 'esnext.async-iterator.filter', diff --git a/packages/core-js/full/async-iterator/as-indexed-pairs.js b/packages/core-js/full/async-iterator/as-indexed-pairs.js deleted file mode 100644 index 0dee72087b45..000000000000 --- a/packages/core-js/full/async-iterator/as-indexed-pairs.js +++ /dev/null @@ -1,9 +0,0 @@ -'use strict'; -require('../../modules/es.object.to-string'); -require('../../modules/es.promise'); -require('../../modules/esnext.async-iterator.constructor'); -require('../../modules/esnext.async-iterator.as-indexed-pairs'); - -var entryUnbind = require('../../internals/entry-unbind'); - -module.exports = entryUnbind('AsyncIterator', 'asIndexedPairs'); diff --git a/packages/core-js/full/async-iterator/index.js b/packages/core-js/full/async-iterator/index.js index 2f8a40e28033..b7d63bfaa27c 100644 --- a/packages/core-js/full/async-iterator/index.js +++ b/packages/core-js/full/async-iterator/index.js @@ -1,7 +1,6 @@ 'use strict'; var parent = require('../../actual/async-iterator'); // TODO: Remove from `core-js@4` -require('../../modules/esnext.async-iterator.as-indexed-pairs'); require('../../modules/esnext.async-iterator.indexed'); module.exports = parent; diff --git a/packages/core-js/modules/esnext.async-iterator.as-indexed-pairs.js b/packages/core-js/modules/esnext.async-iterator.as-indexed-pairs.js deleted file mode 100644 index bd4e3d84746a..000000000000 --- a/packages/core-js/modules/esnext.async-iterator.as-indexed-pairs.js +++ /dev/null @@ -1,10 +0,0 @@ -'use strict'; -// TODO: Remove from `core-js@4` -var $ = require('../internals/export'); -var indexed = require('../internals/async-iterator-indexed'); - -// `AsyncIterator.prototype.asIndexedPairs` method -// https://github.com/tc39/proposal-iterator-helpers -$({ target: 'AsyncIterator', name: 'indexed', proto: true, real: true, forced: true }, { - asIndexedPairs: indexed -}); diff --git a/packages/core-js/proposals/iterator-helpers.js b/packages/core-js/proposals/iterator-helpers.js index 4dc46a2f3550..8de9665b4958 100644 --- a/packages/core-js/proposals/iterator-helpers.js +++ b/packages/core-js/proposals/iterator-helpers.js @@ -2,7 +2,6 @@ // TODO: remove from `core-js@4` // https://github.com/tc39/proposal-iterator-helpers require('./iterator-helpers-stage-3'); -require('../modules/esnext.async-iterator.as-indexed-pairs'); require('../modules/esnext.async-iterator.indexed'); require('../modules/esnext.iterator.as-indexed-pairs'); require('../modules/esnext.iterator.indexed'); diff --git a/tests/compat-data/tests-coverage.mjs b/tests/compat-data/tests-coverage.mjs index 4503a014c7e6..7ae1f427fb78 100644 --- a/tests/compat-data/tests-coverage.mjs +++ b/tests/compat-data/tests-coverage.mjs @@ -17,7 +17,6 @@ const ignore = new Set([ 'es.weak-set', 'esnext.array.last-index', 'esnext.array.last-item', - 'esnext.async-iterator.as-indexed-pairs', 'esnext.async-iterator.indexed', 'esnext.bigint.range', 'esnext.function.un-this', diff --git a/tests/entries/unit.mjs b/tests/entries/unit.mjs index 1a69abb63f51..545b51934d76 100644 --- a/tests/entries/unit.mjs +++ b/tests/entries/unit.mjs @@ -726,7 +726,6 @@ for (PATH of ['core-js-pure', 'core-js']) { ok(typeof load(NS, 'array/unique-by') == 'function'); ok(typeof load(NS, 'array/virtual/filter-reject') == 'function'); ok(typeof load(NS, 'array/virtual/unique-by') == 'function'); - ok(typeof load(NS, 'async-iterator/as-indexed-pairs') == 'function'); ok(typeof load(NS, 'async-iterator/indexed') == 'function'); load(NS, 'bigint/range'); load(NS, 'bigint'); diff --git a/tests/unit-global/esnext.async-iterator.as-indexed-pairs.js b/tests/unit-global/esnext.async-iterator.as-indexed-pairs.js deleted file mode 100644 index d29221471e15..000000000000 --- a/tests/unit-global/esnext.async-iterator.as-indexed-pairs.js +++ /dev/null @@ -1,21 +0,0 @@ -import { STRICT } from '../helpers/constants.js'; -import { createIterator } from '../helpers/helpers.js'; - -QUnit.test('AsyncIterator#asIndexedPairs', assert => { - const { asIndexedPairs } = AsyncIterator.prototype; - - assert.isFunction(asIndexedPairs); - assert.arity(asIndexedPairs, 0); - // assert.name(asIndexedPairs, 'asIndexedPairs'); - assert.looksNative(asIndexedPairs); - assert.nonEnumerable(AsyncIterator.prototype, 'asIndexedPairs'); - - if (STRICT) { - assert.throws(() => asIndexedPairs.call(undefined, () => { /* empty */ }), TypeError); - assert.throws(() => asIndexedPairs.call(null, () => { /* empty */ }), TypeError); - } - - return asIndexedPairs.call(createIterator(['a', 'b', 'c'])).toArray().then(it => { - assert.same(it.toString(), '0,a,1,b,2,c', 'basic functionality'); - }); -}); diff --git a/tests/unit-pure/esnext.async-iterator.as-indexed-pairs.js b/tests/unit-pure/esnext.async-iterator.as-indexed-pairs.js deleted file mode 100644 index 8fb32c0730ae..000000000000 --- a/tests/unit-pure/esnext.async-iterator.as-indexed-pairs.js +++ /dev/null @@ -1,21 +0,0 @@ -import { STRICT } from '../helpers/constants.js'; -import { createIterator } from '../helpers/helpers.js'; - -import AsyncIterator from 'core-js-pure/full/async-iterator'; - -QUnit.test('AsyncIterator#asIndexedPairs', assert => { - const { asIndexedPairs } = AsyncIterator.prototype; - - assert.isFunction(asIndexedPairs); - assert.arity(asIndexedPairs, 0); - assert.nonEnumerable(AsyncIterator.prototype, 'asIndexedPairs'); - - if (STRICT) { - assert.throws(() => asIndexedPairs.call(undefined, () => { /* empty */ }), TypeError); - assert.throws(() => asIndexedPairs.call(null, () => { /* empty */ }), TypeError); - } - - return asIndexedPairs.call(createIterator(['a', 'b', 'c'])).toArray().then(it => { - assert.same(it.toString(), '0,a,1,b,2,c', 'basic functionality'); - }); -}); From 052668aa74fe1c122aa4c7ddc77c182ff17f2814 Mon Sep 17 00:00:00 2001 From: Denis Pushkarev Date: Tue, 3 Oct 2023 08:48:09 +0700 Subject: [PATCH 043/428] drop `esnext.async-iterator.indexed` (obsolete) --- packages/core-js-compat/src/data.mjs | 2 - .../src/modules-by-versions.mjs | 1 - packages/core-js/full/async-iterator/index.js | 2 - .../core-js/full/async-iterator/indexed.js | 10 ---- .../internals/async-iterator-indexed.js | 13 ----- .../core-js/internals/async-iterator-map.js | 57 ------------------- .../modules/esnext.async-iterator.indexed.js | 10 ---- .../modules/esnext.async-iterator.map.js | 56 +++++++++++++++++- .../core-js/proposals/iterator-helpers.js | 1 - tests/compat-data/tests-coverage.mjs | 1 - tests/entries/unit.mjs | 1 - .../esnext.async-iterator.indexed.js | 21 ------- .../esnext.async-iterator.indexed.js | 21 ------- 13 files changed, 53 insertions(+), 143 deletions(-) delete mode 100644 packages/core-js/full/async-iterator/indexed.js delete mode 100644 packages/core-js/internals/async-iterator-indexed.js delete mode 100644 packages/core-js/internals/async-iterator-map.js delete mode 100644 packages/core-js/modules/esnext.async-iterator.indexed.js delete mode 100644 tests/unit-global/esnext.async-iterator.indexed.js delete mode 100644 tests/unit-pure/esnext.async-iterator.indexed.js diff --git a/packages/core-js-compat/src/data.mjs b/packages/core-js-compat/src/data.mjs index 1fcbd9f5a88b..daf64a6508eb 100644 --- a/packages/core-js-compat/src/data.mjs +++ b/packages/core-js-compat/src/data.mjs @@ -2409,8 +2409,6 @@ export const data = { }, 'esnext.async-iterator.from': { }, - 'esnext.async-iterator.indexed': { - }, 'esnext.async-iterator.map': { }, 'esnext.async-iterator.reduce': { diff --git a/packages/core-js-compat/src/modules-by-versions.mjs b/packages/core-js-compat/src/modules-by-versions.mjs index e3afac987bbf..25c728be0c09 100644 --- a/packages/core-js-compat/src/modules-by-versions.mjs +++ b/packages/core-js-compat/src/modules-by-versions.mjs @@ -120,7 +120,6 @@ export default { 'esnext.symbol.metadata-key', ], 3.24: [ - 'esnext.async-iterator.indexed', 'esnext.iterator.indexed', ], 3.25: [ diff --git a/packages/core-js/full/async-iterator/index.js b/packages/core-js/full/async-iterator/index.js index b7d63bfaa27c..ee874055e9c6 100644 --- a/packages/core-js/full/async-iterator/index.js +++ b/packages/core-js/full/async-iterator/index.js @@ -1,6 +1,4 @@ 'use strict'; var parent = require('../../actual/async-iterator'); -// TODO: Remove from `core-js@4` -require('../../modules/esnext.async-iterator.indexed'); module.exports = parent; diff --git a/packages/core-js/full/async-iterator/indexed.js b/packages/core-js/full/async-iterator/indexed.js deleted file mode 100644 index 915bf46b1224..000000000000 --- a/packages/core-js/full/async-iterator/indexed.js +++ /dev/null @@ -1,10 +0,0 @@ -'use strict'; -// TODO: Remove from `core-js@4` -require('../../modules/es.object.to-string'); -require('../../modules/es.promise'); -require('../../modules/esnext.async-iterator.constructor'); -require('../../modules/esnext.async-iterator.indexed'); - -var entryUnbind = require('../../internals/entry-unbind'); - -module.exports = entryUnbind('AsyncIterator', 'indexed'); diff --git a/packages/core-js/internals/async-iterator-indexed.js b/packages/core-js/internals/async-iterator-indexed.js deleted file mode 100644 index 8ed667161cdc..000000000000 --- a/packages/core-js/internals/async-iterator-indexed.js +++ /dev/null @@ -1,13 +0,0 @@ -'use strict'; -var call = require('../internals/function-call'); -var map = require('../internals/async-iterator-map'); - -var callback = function (value, counter) { - return [counter, value]; -}; - -// `AsyncIterator.prototype.indexed` method -// https://github.com/tc39/proposal-iterator-helpers -module.exports = function indexed() { - return call(map, this, callback); -}; diff --git a/packages/core-js/internals/async-iterator-map.js b/packages/core-js/internals/async-iterator-map.js deleted file mode 100644 index 97d177d2f428..000000000000 --- a/packages/core-js/internals/async-iterator-map.js +++ /dev/null @@ -1,57 +0,0 @@ -'use strict'; -var call = require('../internals/function-call'); -var aCallable = require('../internals/a-callable'); -var anObject = require('../internals/an-object'); -var isObject = require('../internals/is-object'); -var getIteratorDirect = require('../internals/get-iterator-direct'); -var createAsyncIteratorProxy = require('../internals/async-iterator-create-proxy'); -var createIterResultObject = require('../internals/create-iter-result-object'); -var closeAsyncIteration = require('../internals/async-iterator-close'); - -var AsyncIteratorProxy = createAsyncIteratorProxy(function (Promise) { - var state = this; - var iterator = state.iterator; - var mapper = state.mapper; - - return new Promise(function (resolve, reject) { - var doneAndReject = function (error) { - state.done = true; - reject(error); - }; - - var ifAbruptCloseAsyncIterator = function (error) { - closeAsyncIteration(iterator, doneAndReject, error, doneAndReject); - }; - - Promise.resolve(anObject(call(state.next, iterator))).then(function (step) { - try { - if (anObject(step).done) { - state.done = true; - resolve(createIterResultObject(undefined, true)); - } else { - var value = step.value; - try { - var result = mapper(value, state.counter++); - - var handler = function (mapped) { - resolve(createIterResultObject(mapped, false)); - }; - - if (isObject(result)) Promise.resolve(result).then(handler, ifAbruptCloseAsyncIterator); - else handler(result); - } catch (error2) { ifAbruptCloseAsyncIterator(error2); } - } - } catch (error) { doneAndReject(error); } - }, doneAndReject); - }); -}); - -// `AsyncIterator.prototype.map` method -// https://github.com/tc39/proposal-async-iterator-helpers -module.exports = function map(mapper) { - anObject(this); - aCallable(mapper); - return new AsyncIteratorProxy(getIteratorDirect(this), { - mapper: mapper - }); -}; diff --git a/packages/core-js/modules/esnext.async-iterator.indexed.js b/packages/core-js/modules/esnext.async-iterator.indexed.js deleted file mode 100644 index 6601822955f2..000000000000 --- a/packages/core-js/modules/esnext.async-iterator.indexed.js +++ /dev/null @@ -1,10 +0,0 @@ -'use strict'; -// TODO: Remove from `core-js@4` -var $ = require('../internals/export'); -var indexed = require('../internals/async-iterator-indexed'); - -// `AsyncIterator.prototype.indexed` method -// https://github.com/tc39/proposal-iterator-helpers -$({ target: 'AsyncIterator', proto: true, real: true, forced: true }, { - indexed: indexed -}); diff --git a/packages/core-js/modules/esnext.async-iterator.map.js b/packages/core-js/modules/esnext.async-iterator.map.js index fd054e041d23..4e94d9679155 100644 --- a/packages/core-js/modules/esnext.async-iterator.map.js +++ b/packages/core-js/modules/esnext.async-iterator.map.js @@ -1,10 +1,60 @@ 'use strict'; var $ = require('../internals/export'); -var map = require('../internals/async-iterator-map'); +var call = require('../internals/function-call'); +var aCallable = require('../internals/a-callable'); +var anObject = require('../internals/an-object'); +var isObject = require('../internals/is-object'); +var getIteratorDirect = require('../internals/get-iterator-direct'); +var createAsyncIteratorProxy = require('../internals/async-iterator-create-proxy'); +var createIterResultObject = require('../internals/create-iter-result-object'); +var closeAsyncIteration = require('../internals/async-iterator-close'); + +var AsyncIteratorProxy = createAsyncIteratorProxy(function (Promise) { + var state = this; + var iterator = state.iterator; + var mapper = state.mapper; + + return new Promise(function (resolve, reject) { + var doneAndReject = function (error) { + state.done = true; + reject(error); + }; + + var ifAbruptCloseAsyncIterator = function (error) { + closeAsyncIteration(iterator, doneAndReject, error, doneAndReject); + }; + + Promise.resolve(anObject(call(state.next, iterator))).then(function (step) { + try { + if (anObject(step).done) { + state.done = true; + resolve(createIterResultObject(undefined, true)); + } else { + var value = step.value; + try { + var result = mapper(value, state.counter++); + + var handler = function (mapped) { + resolve(createIterResultObject(mapped, false)); + }; + + if (isObject(result)) Promise.resolve(result).then(handler, ifAbruptCloseAsyncIterator); + else handler(result); + } catch (error2) { ifAbruptCloseAsyncIterator(error2); } + } + } catch (error) { doneAndReject(error); } + }, doneAndReject); + }); +}); // `AsyncIterator.prototype.map` method // https://github.com/tc39/proposal-async-iterator-helpers $({ target: 'AsyncIterator', proto: true, real: true, forced: true }, { - map: map + map: function map(mapper) { + anObject(this); + aCallable(mapper); + return new AsyncIteratorProxy(getIteratorDirect(this), { + mapper: mapper + }); + } }); - diff --git a/packages/core-js/proposals/iterator-helpers.js b/packages/core-js/proposals/iterator-helpers.js index 8de9665b4958..41a42f3b85b9 100644 --- a/packages/core-js/proposals/iterator-helpers.js +++ b/packages/core-js/proposals/iterator-helpers.js @@ -2,6 +2,5 @@ // TODO: remove from `core-js@4` // https://github.com/tc39/proposal-iterator-helpers require('./iterator-helpers-stage-3'); -require('../modules/esnext.async-iterator.indexed'); require('../modules/esnext.iterator.as-indexed-pairs'); require('../modules/esnext.iterator.indexed'); diff --git a/tests/compat-data/tests-coverage.mjs b/tests/compat-data/tests-coverage.mjs index 7ae1f427fb78..ecbd1f8fc38b 100644 --- a/tests/compat-data/tests-coverage.mjs +++ b/tests/compat-data/tests-coverage.mjs @@ -17,7 +17,6 @@ const ignore = new Set([ 'es.weak-set', 'esnext.array.last-index', 'esnext.array.last-item', - 'esnext.async-iterator.indexed', 'esnext.bigint.range', 'esnext.function.un-this', 'esnext.iterator.as-indexed-pairs', diff --git a/tests/entries/unit.mjs b/tests/entries/unit.mjs index 545b51934d76..13ac03deaa91 100644 --- a/tests/entries/unit.mjs +++ b/tests/entries/unit.mjs @@ -726,7 +726,6 @@ for (PATH of ['core-js-pure', 'core-js']) { ok(typeof load(NS, 'array/unique-by') == 'function'); ok(typeof load(NS, 'array/virtual/filter-reject') == 'function'); ok(typeof load(NS, 'array/virtual/unique-by') == 'function'); - ok(typeof load(NS, 'async-iterator/indexed') == 'function'); load(NS, 'bigint/range'); load(NS, 'bigint'); load(NS, 'data-view/get-uint8-clamped'); diff --git a/tests/unit-global/esnext.async-iterator.indexed.js b/tests/unit-global/esnext.async-iterator.indexed.js deleted file mode 100644 index 2a71138fecbe..000000000000 --- a/tests/unit-global/esnext.async-iterator.indexed.js +++ /dev/null @@ -1,21 +0,0 @@ -import { STRICT } from '../helpers/constants.js'; -import { createIterator } from '../helpers/helpers.js'; - -QUnit.test('AsyncIterator#indexed', assert => { - const { indexed } = AsyncIterator.prototype; - - assert.isFunction(indexed); - assert.arity(indexed, 0); - assert.name(indexed, 'indexed'); - assert.looksNative(indexed); - assert.nonEnumerable(AsyncIterator.prototype, 'indexed'); - - if (STRICT) { - assert.throws(() => indexed.call(undefined, () => { /* empty */ }), TypeError); - assert.throws(() => indexed.call(null, () => { /* empty */ }), TypeError); - } - - return indexed.call(createIterator(['a', 'b', 'c'])).toArray().then(it => { - assert.same(it.toString(), '0,a,1,b,2,c', 'basic functionality'); - }); -}); diff --git a/tests/unit-pure/esnext.async-iterator.indexed.js b/tests/unit-pure/esnext.async-iterator.indexed.js deleted file mode 100644 index e46e5d2ab257..000000000000 --- a/tests/unit-pure/esnext.async-iterator.indexed.js +++ /dev/null @@ -1,21 +0,0 @@ -import { STRICT } from '../helpers/constants.js'; -import { createIterator } from '../helpers/helpers.js'; - -import AsyncIterator from 'core-js-pure/full/async-iterator'; - -QUnit.test('AsyncIterator#indexed', assert => { - const { indexed } = AsyncIterator.prototype; - - assert.isFunction(indexed); - assert.arity(indexed, 0); - assert.nonEnumerable(AsyncIterator.prototype, 'indexed'); - - if (STRICT) { - assert.throws(() => indexed.call(undefined, () => { /* empty */ }), TypeError); - assert.throws(() => indexed.call(null, () => { /* empty */ }), TypeError); - } - - return indexed.call(createIterator(['a', 'b', 'c'])).toArray().then(it => { - assert.same(it.toString(), '0,a,1,b,2,c', 'basic functionality'); - }); -}); From a5ccdc56d50760a86582467538e57f0d9cd44c10 Mon Sep 17 00:00:00 2001 From: Denis Pushkarev Date: Tue, 3 Oct 2023 08:57:27 +0700 Subject: [PATCH 044/428] drop `esnext.iterator.as-indexed-pairs` (obsolete) --- packages/core-js-compat/src/data.mjs | 3 --- .../src/modules-by-versions.mjs | 1 - .../core-js/full/iterator/as-indexed-pairs.js | 9 -------- packages/core-js/full/iterator/index.js | 1 - .../esnext.iterator.as-indexed-pairs.js | 10 --------- .../modules/esnext.iterator.indexed.js | 10 --------- .../core-js/proposals/iterator-helpers.js | 1 - tests/compat-data/tests-coverage.mjs | 1 - tests/entries/unit.mjs | 1 - .../esnext.iterator.as-indexed-pairs.js | 22 ------------------- .../esnext.iterator.as-indexed-pairs.js | 22 ------------------- 11 files changed, 81 deletions(-) delete mode 100644 packages/core-js/full/iterator/as-indexed-pairs.js delete mode 100644 packages/core-js/modules/esnext.iterator.as-indexed-pairs.js delete mode 100644 packages/core-js/modules/esnext.iterator.indexed.js delete mode 100644 tests/unit-global/esnext.iterator.as-indexed-pairs.js delete mode 100644 tests/unit-pure/esnext.iterator.as-indexed-pairs.js diff --git a/packages/core-js-compat/src/data.mjs b/packages/core-js-compat/src/data.mjs index daf64a6508eb..5f77fa121357 100644 --- a/packages/core-js-compat/src/data.mjs +++ b/packages/core-js-compat/src/data.mjs @@ -2451,9 +2451,6 @@ export const data = { }, // TODO: Remove from `core-js@4` 'esnext.iterator.constructor': null, - // TODO: Remove from `core-js@4` - 'esnext.iterator.as-indexed-pairs': { - }, 'esnext.iterator.chunks': { }, 'esnext.iterator.concat': { diff --git a/packages/core-js-compat/src/modules-by-versions.mjs b/packages/core-js-compat/src/modules-by-versions.mjs index 25c728be0c09..02803f6bb585 100644 --- a/packages/core-js-compat/src/modules-by-versions.mjs +++ b/packages/core-js-compat/src/modules-by-versions.mjs @@ -26,7 +26,6 @@ export default { 'esnext.async-iterator.take', 'esnext.async-iterator.to-array', 'esnext.iterator.constructor', - 'esnext.iterator.as-indexed-pairs', 'esnext.iterator.drop', 'esnext.iterator.every', 'esnext.iterator.filter', diff --git a/packages/core-js/full/iterator/as-indexed-pairs.js b/packages/core-js/full/iterator/as-indexed-pairs.js deleted file mode 100644 index e8504f3a874b..000000000000 --- a/packages/core-js/full/iterator/as-indexed-pairs.js +++ /dev/null @@ -1,9 +0,0 @@ -'use strict'; -require('../../modules/es.object.to-string'); -require('../../modules/esnext.iterator.constructor'); -require('../../modules/esnext.iterator.as-indexed-pairs'); - -var entryUnbind = require('../../internals/entry-unbind'); - -module.exports = entryUnbind('Iterator', 'asIndexedPairs'); - diff --git a/packages/core-js/full/iterator/index.js b/packages/core-js/full/iterator/index.js index 22ba6809fa76..e1b855f8c0a8 100644 --- a/packages/core-js/full/iterator/index.js +++ b/packages/core-js/full/iterator/index.js @@ -7,7 +7,6 @@ require('../../modules/esnext.iterator.windows'); require('../../modules/esnext.iterator.zip'); require('../../modules/esnext.iterator.zip-keyed'); // TODO: Remove from `core-js@4` -require('../../modules/esnext.iterator.as-indexed-pairs'); require('../../modules/esnext.iterator.indexed'); module.exports = parent; diff --git a/packages/core-js/modules/esnext.iterator.as-indexed-pairs.js b/packages/core-js/modules/esnext.iterator.as-indexed-pairs.js deleted file mode 100644 index 6cc37923f373..000000000000 --- a/packages/core-js/modules/esnext.iterator.as-indexed-pairs.js +++ /dev/null @@ -1,10 +0,0 @@ -'use strict'; -// TODO: Remove from `core-js@4` -var $ = require('../internals/export'); -var indexed = require('../internals/iterator-indexed'); - -// `Iterator.prototype.asIndexedPairs` method -// https://github.com/tc39/proposal-iterator-helpers -$({ target: 'Iterator', name: 'indexed', proto: true, real: true, forced: true }, { - asIndexedPairs: indexed -}); diff --git a/packages/core-js/modules/esnext.iterator.indexed.js b/packages/core-js/modules/esnext.iterator.indexed.js deleted file mode 100644 index 3d44a3c4feda..000000000000 --- a/packages/core-js/modules/esnext.iterator.indexed.js +++ /dev/null @@ -1,10 +0,0 @@ -'use strict'; -// TODO: Remove from `core-js@4` -var $ = require('../internals/export'); -var indexed = require('../internals/iterator-indexed'); - -// `Iterator.prototype.indexed` method -// https://github.com/tc39/proposal-iterator-helpers -$({ target: 'Iterator', proto: true, real: true, forced: true }, { - indexed: indexed -}); diff --git a/packages/core-js/proposals/iterator-helpers.js b/packages/core-js/proposals/iterator-helpers.js index 41a42f3b85b9..636f9e78a7c9 100644 --- a/packages/core-js/proposals/iterator-helpers.js +++ b/packages/core-js/proposals/iterator-helpers.js @@ -2,5 +2,4 @@ // TODO: remove from `core-js@4` // https://github.com/tc39/proposal-iterator-helpers require('./iterator-helpers-stage-3'); -require('../modules/esnext.iterator.as-indexed-pairs'); require('../modules/esnext.iterator.indexed'); diff --git a/tests/compat-data/tests-coverage.mjs b/tests/compat-data/tests-coverage.mjs index ecbd1f8fc38b..d38765f8dec6 100644 --- a/tests/compat-data/tests-coverage.mjs +++ b/tests/compat-data/tests-coverage.mjs @@ -19,7 +19,6 @@ const ignore = new Set([ 'esnext.array.last-item', 'esnext.bigint.range', 'esnext.function.un-this', - 'esnext.iterator.as-indexed-pairs', 'esnext.iterator.indexed', 'esnext.iterator.sliding', 'esnext.map.emplace', diff --git a/tests/entries/unit.mjs b/tests/entries/unit.mjs index 13ac03deaa91..d27e1bf10d68 100644 --- a/tests/entries/unit.mjs +++ b/tests/entries/unit.mjs @@ -738,7 +738,6 @@ for (PATH of ['core-js-pure', 'core-js']) { ok(!load(NS, 'function/is-constructor')(it => it)); ok(load(NS, 'function/un-this')([].slice)([1, 2, 3], 1)[0] === 2); ok(load(NS, 'function/virtual/un-this').call([].slice)([1, 2, 3], 1)[0] === 2); - ok(typeof load(NS, 'iterator/as-indexed-pairs') == 'function'); ok(typeof load(NS, 'iterator/indexed') == 'function'); ok(load(NS, 'iterator/range')(1, 2).next().value === 1); ok(typeof load(NS, 'iterator/chunks') == 'function'); diff --git a/tests/unit-global/esnext.iterator.as-indexed-pairs.js b/tests/unit-global/esnext.iterator.as-indexed-pairs.js deleted file mode 100644 index 7bf4dcdc7864..000000000000 --- a/tests/unit-global/esnext.iterator.as-indexed-pairs.js +++ /dev/null @@ -1,22 +0,0 @@ -import { STRICT } from '../helpers/constants.js'; -import { createIterator } from '../helpers/helpers.js'; - -QUnit.test('Iterator#asIndexedPairs', assert => { - const { asIndexedPairs } = Iterator.prototype; - - assert.isFunction(asIndexedPairs); - assert.arity(asIndexedPairs, 0); - // assert.name(asIndexedPairs, 'asIndexedPairs'); - assert.looksNative(asIndexedPairs); - assert.nonEnumerable(Iterator.prototype, 'asIndexedPairs'); - - assert.arrayEqual(asIndexedPairs.call(createIterator(['a', 'b', 'c'])).toArray().toString(), '0,a,1,b,2,c', 'basic functionality'); - - if (STRICT) { - assert.throws(() => asIndexedPairs.call(undefined), TypeError); - assert.throws(() => asIndexedPairs.call(null), TypeError); - } - - assert.throws(() => asIndexedPairs.call({}).next(), TypeError); - assert.throws(() => asIndexedPairs.call([]).next(), TypeError); -}); diff --git a/tests/unit-pure/esnext.iterator.as-indexed-pairs.js b/tests/unit-pure/esnext.iterator.as-indexed-pairs.js deleted file mode 100644 index 22b8107e47df..000000000000 --- a/tests/unit-pure/esnext.iterator.as-indexed-pairs.js +++ /dev/null @@ -1,22 +0,0 @@ -import { STRICT } from '../helpers/constants.js'; -import { createIterator } from '../helpers/helpers.js'; - -import Iterator from 'core-js-pure/full/iterator'; - -QUnit.test('Iterator#asIndexedPairs', assert => { - const { asIndexedPairs } = Iterator.prototype; - - assert.isFunction(asIndexedPairs); - assert.arity(asIndexedPairs, 0); - assert.nonEnumerable(Iterator.prototype, 'asIndexedPairs'); - - assert.arrayEqual(asIndexedPairs.call(createIterator(['a', 'b', 'c'])).toArray().toString(), '0,a,1,b,2,c', 'basic functionality'); - - if (STRICT) { - assert.throws(() => asIndexedPairs.call(undefined), TypeError); - assert.throws(() => asIndexedPairs.call(null), TypeError); - } - - assert.throws(() => asIndexedPairs.call({}).next(), TypeError); - assert.throws(() => asIndexedPairs.call([]).next(), TypeError); -}); From f531bcd7cb512c0622e9627f797c89743b94f827 Mon Sep 17 00:00:00 2001 From: Denis Pushkarev Date: Tue, 3 Oct 2023 09:06:22 +0700 Subject: [PATCH 045/428] drop `esnext.iterator.indexed` (obsolete) --- packages/core-js-compat/src/data.mjs | 2 -- .../src/modules-by-versions.mjs | 3 --- packages/core-js/full/iterator/index.js | 2 -- packages/core-js/full/iterator/indexed.js | 10 --------- .../core-js/internals/iterator-indexed.js | 14 ------------ .../core-js/proposals/iterator-helpers.js | 5 ----- packages/core-js/stage/2.js | 1 - tests/compat-data/tests-coverage.mjs | 1 - tests/entries/unit.mjs | 2 -- tests/unit-global/esnext.iterator.indexed.js | 22 ------------------- tests/unit-pure/esnext.iterator.indexed.js | 22 ------------------- 11 files changed, 84 deletions(-) delete mode 100644 packages/core-js/full/iterator/indexed.js delete mode 100644 packages/core-js/internals/iterator-indexed.js delete mode 100644 packages/core-js/proposals/iterator-helpers.js delete mode 100644 tests/unit-global/esnext.iterator.indexed.js delete mode 100644 tests/unit-pure/esnext.iterator.indexed.js diff --git a/packages/core-js-compat/src/data.mjs b/packages/core-js-compat/src/data.mjs index 5f77fa121357..0ba60a7a1f81 100644 --- a/packages/core-js-compat/src/data.mjs +++ b/packages/core-js-compat/src/data.mjs @@ -2471,8 +2471,6 @@ export const data = { 'esnext.iterator.for-each': null, // TODO: Remove from `core-js@4` 'esnext.iterator.from': null, - 'esnext.iterator.indexed': { - }, // TODO: Remove from `core-js@4` 'esnext.iterator.map': null, 'esnext.iterator.range': { diff --git a/packages/core-js-compat/src/modules-by-versions.mjs b/packages/core-js-compat/src/modules-by-versions.mjs index 02803f6bb585..29d9c290ec6e 100644 --- a/packages/core-js-compat/src/modules-by-versions.mjs +++ b/packages/core-js-compat/src/modules-by-versions.mjs @@ -118,9 +118,6 @@ export default { 'es.typed-array.find-last-index', 'esnext.symbol.metadata-key', ], - 3.24: [ - 'esnext.iterator.indexed', - ], 3.25: [ 'es.object.proto', ], diff --git a/packages/core-js/full/iterator/index.js b/packages/core-js/full/iterator/index.js index e1b855f8c0a8..b48ecef87847 100644 --- a/packages/core-js/full/iterator/index.js +++ b/packages/core-js/full/iterator/index.js @@ -6,7 +6,5 @@ require('../../modules/esnext.iterator.sliding'); require('../../modules/esnext.iterator.windows'); require('../../modules/esnext.iterator.zip'); require('../../modules/esnext.iterator.zip-keyed'); -// TODO: Remove from `core-js@4` -require('../../modules/esnext.iterator.indexed'); module.exports = parent; diff --git a/packages/core-js/full/iterator/indexed.js b/packages/core-js/full/iterator/indexed.js deleted file mode 100644 index 6a2aa840a8f2..000000000000 --- a/packages/core-js/full/iterator/indexed.js +++ /dev/null @@ -1,10 +0,0 @@ -'use strict'; -// TODO: Remove from `core-js@4` -require('../../modules/es.object.to-string'); -require('../../modules/esnext.iterator.constructor'); -require('../../modules/esnext.iterator.indexed'); - -var entryUnbind = require('../../internals/entry-unbind'); - -module.exports = entryUnbind('Iterator', 'indexed'); - diff --git a/packages/core-js/internals/iterator-indexed.js b/packages/core-js/internals/iterator-indexed.js deleted file mode 100644 index 4a7edc9f91a9..000000000000 --- a/packages/core-js/internals/iterator-indexed.js +++ /dev/null @@ -1,14 +0,0 @@ -'use strict'; -require('../modules/es.iterator.map'); -var call = require('../internals/function-call'); -var map = require('../internals/iterators-core').IteratorPrototype.map; - -var callback = function (value, counter) { - return [counter, value]; -}; - -// `Iterator.prototype.indexed` method -// https://github.com/tc39/proposal-iterator-helpers -module.exports = function indexed() { - return call(map, this, callback); -}; diff --git a/packages/core-js/proposals/iterator-helpers.js b/packages/core-js/proposals/iterator-helpers.js deleted file mode 100644 index 636f9e78a7c9..000000000000 --- a/packages/core-js/proposals/iterator-helpers.js +++ /dev/null @@ -1,5 +0,0 @@ -'use strict'; -// TODO: remove from `core-js@4` -// https://github.com/tc39/proposal-iterator-helpers -require('./iterator-helpers-stage-3'); -require('../modules/esnext.iterator.indexed'); diff --git a/packages/core-js/stage/2.js b/packages/core-js/stage/2.js index d4299d1044ea..21d6f83be2a2 100644 --- a/packages/core-js/stage/2.js +++ b/packages/core-js/stage/2.js @@ -11,7 +11,6 @@ require('../proposals/symbol-predicates-v2'); require('../proposals/async-explicit-resource-management'); require('../proposals/decorators'); require('../proposals/decorator-metadata'); -require('../proposals/iterator-helpers'); require('../proposals/map-upsert-stage-2'); require('../proposals/math-clamp-v2'); require('../proposals/set-methods'); diff --git a/tests/compat-data/tests-coverage.mjs b/tests/compat-data/tests-coverage.mjs index d38765f8dec6..a0ee084f792a 100644 --- a/tests/compat-data/tests-coverage.mjs +++ b/tests/compat-data/tests-coverage.mjs @@ -19,7 +19,6 @@ const ignore = new Set([ 'esnext.array.last-item', 'esnext.bigint.range', 'esnext.function.un-this', - 'esnext.iterator.indexed', 'esnext.iterator.sliding', 'esnext.map.emplace', 'esnext.map.update-or-insert', diff --git a/tests/entries/unit.mjs b/tests/entries/unit.mjs index d27e1bf10d68..2981e894b6cd 100644 --- a/tests/entries/unit.mjs +++ b/tests/entries/unit.mjs @@ -738,7 +738,6 @@ for (PATH of ['core-js-pure', 'core-js']) { ok(!load(NS, 'function/is-constructor')(it => it)); ok(load(NS, 'function/un-this')([].slice)([1, 2, 3], 1)[0] === 2); ok(load(NS, 'function/virtual/un-this').call([].slice)([1, 2, 3], 1)[0] === 2); - ok(typeof load(NS, 'iterator/indexed') == 'function'); ok(load(NS, 'iterator/range')(1, 2).next().value === 1); ok(typeof load(NS, 'iterator/chunks') == 'function'); ok(typeof load(NS, 'iterator/sliding') == 'function'); @@ -893,7 +892,6 @@ for (PATH of ['core-js-pure', 'core-js']) { load('proposals/function-un-this'); load('proposals/global-this'); load('proposals/is-error'); - load('proposals/iterator-helpers'); load('proposals/iterator-helpers-stage-3'); load('proposals/iterator-helpers-stage-3-2'); load('proposals/iterator-range'); diff --git a/tests/unit-global/esnext.iterator.indexed.js b/tests/unit-global/esnext.iterator.indexed.js deleted file mode 100644 index 3c1dd51da544..000000000000 --- a/tests/unit-global/esnext.iterator.indexed.js +++ /dev/null @@ -1,22 +0,0 @@ -import { STRICT } from '../helpers/constants.js'; -import { createIterator } from '../helpers/helpers.js'; - -QUnit.test('Iterator#indexed', assert => { - const { indexed } = Iterator.prototype; - - assert.isFunction(indexed); - assert.arity(indexed, 0); - assert.name(indexed, 'indexed'); - assert.looksNative(indexed); - assert.nonEnumerable(Iterator.prototype, 'indexed'); - - assert.arrayEqual(indexed.call(createIterator(['a', 'b', 'c'])).toArray().toString(), '0,a,1,b,2,c', 'basic functionality'); - - if (STRICT) { - assert.throws(() => indexed.call(undefined), TypeError); - assert.throws(() => indexed.call(null), TypeError); - } - - assert.throws(() => indexed.call({}).next(), TypeError); - assert.throws(() => indexed.call([]).next(), TypeError); -}); diff --git a/tests/unit-pure/esnext.iterator.indexed.js b/tests/unit-pure/esnext.iterator.indexed.js deleted file mode 100644 index de2ee538e9f4..000000000000 --- a/tests/unit-pure/esnext.iterator.indexed.js +++ /dev/null @@ -1,22 +0,0 @@ -import { STRICT } from '../helpers/constants.js'; -import { createIterator } from '../helpers/helpers.js'; - -import Iterator from 'core-js-pure/full/iterator'; - -QUnit.test('Iterator#indexed', assert => { - const { indexed } = Iterator.prototype; - - assert.isFunction(indexed); - assert.arity(indexed, 0); - assert.nonEnumerable(Iterator.prototype, 'indexed'); - - assert.arrayEqual(indexed.call(createIterator(['a', 'b', 'c'])).toArray().toString(), '0,a,1,b,2,c', 'basic functionality'); - - if (STRICT) { - assert.throws(() => indexed.call(undefined), TypeError); - assert.throws(() => indexed.call(null), TypeError); - } - - assert.throws(() => indexed.call({}).next(), TypeError); - assert.throws(() => indexed.call([]).next(), TypeError); -}); From 68efdf04e04c5fbeb149abdb5e144ae9a4a62c8b Mon Sep 17 00:00:00 2001 From: Denis Pushkarev Date: Tue, 3 Oct 2023 19:17:39 +0700 Subject: [PATCH 046/428] drop `esnext.array.last-index` (suspended) --- packages/core-js-compat/src/data.mjs | 3 --- .../modules/esnext.array.last-index.js | 1 - packages/core-js/full/array/index.js | 1 - packages/core-js/full/array/last-index.js | 2 -- .../modules/esnext.array.last-index.js | 22 ------------------- packages/core-js/proposals/array-last.js | 1 - tests/compat-data/tests-coverage.mjs | 1 - tests/entries/unit.mjs | 1 - tests/unit-global/esnext.array.last-index.js | 10 --------- 9 files changed, 42 deletions(-) delete mode 100644 packages/core-js-pure/override/modules/esnext.array.last-index.js delete mode 100644 packages/core-js/full/array/last-index.js delete mode 100644 packages/core-js/modules/esnext.array.last-index.js delete mode 100644 tests/unit-global/esnext.array.last-index.js diff --git a/packages/core-js-compat/src/data.mjs b/packages/core-js-compat/src/data.mjs index 0ba60a7a1f81..70e8ba75e241 100644 --- a/packages/core-js-compat/src/data.mjs +++ b/packages/core-js-compat/src/data.mjs @@ -2376,9 +2376,6 @@ export const data = { 'esnext.array.is-template-object': { }, // TODO: Remove from `core-js@4` - 'esnext.array.last-index': { - }, - // TODO: Remove from `core-js@4` 'esnext.array.last-item': { }, 'esnext.array.unique-by': { diff --git a/packages/core-js-pure/override/modules/esnext.array.last-index.js b/packages/core-js-pure/override/modules/esnext.array.last-index.js deleted file mode 100644 index 8b1a393741c9..000000000000 --- a/packages/core-js-pure/override/modules/esnext.array.last-index.js +++ /dev/null @@ -1 +0,0 @@ -// empty diff --git a/packages/core-js/full/array/index.js b/packages/core-js/full/array/index.js index 64d74459caa6..110ddf19cbfc 100644 --- a/packages/core-js/full/array/index.js +++ b/packages/core-js/full/array/index.js @@ -4,7 +4,6 @@ require('../../modules/es.map'); require('../../modules/esnext.array.filter-reject'); require('../../modules/esnext.array.is-template-object'); require('../../modules/esnext.array.last-item'); -require('../../modules/esnext.array.last-index'); require('../../modules/esnext.array.unique-by'); module.exports = parent; diff --git a/packages/core-js/full/array/last-index.js b/packages/core-js/full/array/last-index.js deleted file mode 100644 index 2f49d082038d..000000000000 --- a/packages/core-js/full/array/last-index.js +++ /dev/null @@ -1,2 +0,0 @@ -'use strict'; -require('../../modules/esnext.array.last-index'); diff --git a/packages/core-js/modules/esnext.array.last-index.js b/packages/core-js/modules/esnext.array.last-index.js deleted file mode 100644 index 816d185c4ee0..000000000000 --- a/packages/core-js/modules/esnext.array.last-index.js +++ /dev/null @@ -1,22 +0,0 @@ -'use strict'; -// TODO: Remove from `core-js@4` -var DESCRIPTORS = require('../internals/descriptors'); -var addToUnscopables = require('../internals/add-to-unscopables'); -var toObject = require('../internals/to-object'); -var lengthOfArrayLike = require('../internals/length-of-array-like'); -var defineBuiltInAccessor = require('../internals/define-built-in-accessor'); - -// `Array.prototype.lastIndex` getter -// https://github.com/tc39/proposal-array-last -if (DESCRIPTORS) { - defineBuiltInAccessor(Array.prototype, 'lastIndex', { - configurable: true, - get: function lastIndex() { - var O = toObject(this); - var len = lengthOfArrayLike(O); - return len === 0 ? 0 : len - 1; - } - }); - - addToUnscopables('lastIndex'); -} diff --git a/packages/core-js/proposals/array-last.js b/packages/core-js/proposals/array-last.js index 7d5015ef12ab..50ebec6fc0e5 100644 --- a/packages/core-js/proposals/array-last.js +++ b/packages/core-js/proposals/array-last.js @@ -1,4 +1,3 @@ 'use strict'; // https://github.com/tc39/proposal-array-last -require('../modules/esnext.array.last-index'); require('../modules/esnext.array.last-item'); diff --git a/tests/compat-data/tests-coverage.mjs b/tests/compat-data/tests-coverage.mjs index a0ee084f792a..7c41033cf59d 100644 --- a/tests/compat-data/tests-coverage.mjs +++ b/tests/compat-data/tests-coverage.mjs @@ -15,7 +15,6 @@ const ignore = new Set([ 'es.set', 'es.weak-map', 'es.weak-set', - 'esnext.array.last-index', 'esnext.array.last-item', 'esnext.bigint.range', 'esnext.function.un-this', diff --git a/tests/entries/unit.mjs b/tests/entries/unit.mjs index 2981e894b6cd..2580b54440c6 100644 --- a/tests/entries/unit.mjs +++ b/tests/entries/unit.mjs @@ -722,7 +722,6 @@ for (PATH of ['core-js-pure', 'core-js']) { ok(typeof load(NS, 'array/filter-reject') == 'function'); ok(typeof load(NS, 'array/is-template-object') == 'function'); load(NS, 'array/last-item'); - load(NS, 'array/last-index'); ok(typeof load(NS, 'array/unique-by') == 'function'); ok(typeof load(NS, 'array/virtual/filter-reject') == 'function'); ok(typeof load(NS, 'array/virtual/unique-by') == 'function'); diff --git a/tests/unit-global/esnext.array.last-index.js b/tests/unit-global/esnext.array.last-index.js deleted file mode 100644 index 43840876fc6d..000000000000 --- a/tests/unit-global/esnext.array.last-index.js +++ /dev/null @@ -1,10 +0,0 @@ -import { DESCRIPTORS } from '../helpers/constants.js'; - -if (DESCRIPTORS) QUnit.test('Array#lastIndex', assert => { - const descriptor = Object.getOwnPropertyDescriptor(Array.prototype, 'lastIndex'); - assert.isFunction(descriptor.get); - assert.false(descriptor.enumerable); - assert.true(descriptor.configurable); - assert.same([1, 2, 3].lastIndex, 2); - assert.same([].lastIndex, 0); -}); From 48fc322a4989f17c724f3bdb25ba55a72f73592b Mon Sep 17 00:00:00 2001 From: Denis Pushkarev Date: Tue, 3 Oct 2023 19:32:34 +0700 Subject: [PATCH 047/428] drop `esnext.array.last-item` (suspended) --- packages/core-js-compat/src/data.mjs | 3 --- .../modules/esnext.array.last-item.js | 1 - packages/core-js/full/array/index.js | 1 - packages/core-js/full/array/last-item.js | 2 -- .../core-js/modules/esnext.array.last-item.js | 27 ------------------- packages/core-js/proposals/array-last.js | 3 --- packages/core-js/stage/1.js | 1 - tests/compat-data/tests-coverage.mjs | 1 - tests/entries/unit.mjs | 2 -- tests/unit-global/esnext.array.last-item.js | 17 ------------ 10 files changed, 58 deletions(-) delete mode 100644 packages/core-js-pure/override/modules/esnext.array.last-item.js delete mode 100644 packages/core-js/full/array/last-item.js delete mode 100644 packages/core-js/modules/esnext.array.last-item.js delete mode 100644 packages/core-js/proposals/array-last.js delete mode 100644 tests/unit-global/esnext.array.last-item.js diff --git a/packages/core-js-compat/src/data.mjs b/packages/core-js-compat/src/data.mjs index 70e8ba75e241..a6d3f0df430d 100644 --- a/packages/core-js-compat/src/data.mjs +++ b/packages/core-js-compat/src/data.mjs @@ -2375,9 +2375,6 @@ export const data = { }, 'esnext.array.is-template-object': { }, - // TODO: Remove from `core-js@4` - 'esnext.array.last-item': { - }, 'esnext.array.unique-by': { }, // TODO: Remove from `core-js@4` diff --git a/packages/core-js-pure/override/modules/esnext.array.last-item.js b/packages/core-js-pure/override/modules/esnext.array.last-item.js deleted file mode 100644 index 8b1a393741c9..000000000000 --- a/packages/core-js-pure/override/modules/esnext.array.last-item.js +++ /dev/null @@ -1 +0,0 @@ -// empty diff --git a/packages/core-js/full/array/index.js b/packages/core-js/full/array/index.js index 110ddf19cbfc..09bc77e58d4a 100644 --- a/packages/core-js/full/array/index.js +++ b/packages/core-js/full/array/index.js @@ -3,7 +3,6 @@ var parent = require('../../actual/array'); require('../../modules/es.map'); require('../../modules/esnext.array.filter-reject'); require('../../modules/esnext.array.is-template-object'); -require('../../modules/esnext.array.last-item'); require('../../modules/esnext.array.unique-by'); module.exports = parent; diff --git a/packages/core-js/full/array/last-item.js b/packages/core-js/full/array/last-item.js deleted file mode 100644 index be6b3d66adfa..000000000000 --- a/packages/core-js/full/array/last-item.js +++ /dev/null @@ -1,2 +0,0 @@ -'use strict'; -require('../../modules/esnext.array.last-item'); diff --git a/packages/core-js/modules/esnext.array.last-item.js b/packages/core-js/modules/esnext.array.last-item.js deleted file mode 100644 index 014fb853f592..000000000000 --- a/packages/core-js/modules/esnext.array.last-item.js +++ /dev/null @@ -1,27 +0,0 @@ -'use strict'; -// TODO: Remove from `core-js@4` -var DESCRIPTORS = require('../internals/descriptors'); -var addToUnscopables = require('../internals/add-to-unscopables'); -var toObject = require('../internals/to-object'); -var lengthOfArrayLike = require('../internals/length-of-array-like'); -var defineBuiltInAccessor = require('../internals/define-built-in-accessor'); - -// `Array.prototype.lastIndex` accessor -// https://github.com/tc39/proposal-array-last -if (DESCRIPTORS) { - defineBuiltInAccessor(Array.prototype, 'lastItem', { - configurable: true, - get: function lastItem() { - var O = toObject(this); - var len = lengthOfArrayLike(O); - return len === 0 ? undefined : O[len - 1]; - }, - set: function lastItem(value) { - var O = toObject(this); - var len = lengthOfArrayLike(O); - return O[len === 0 ? 0 : len - 1] = value; - } - }); - - addToUnscopables('lastItem'); -} diff --git a/packages/core-js/proposals/array-last.js b/packages/core-js/proposals/array-last.js deleted file mode 100644 index 50ebec6fc0e5..000000000000 --- a/packages/core-js/proposals/array-last.js +++ /dev/null @@ -1,3 +0,0 @@ -'use strict'; -// https://github.com/tc39/proposal-array-last -require('../modules/esnext.array.last-item'); diff --git a/packages/core-js/stage/1.js b/packages/core-js/stage/1.js index 8dbaab23bd33..bee829e1f4f9 100644 --- a/packages/core-js/stage/1.js +++ b/packages/core-js/stage/1.js @@ -2,7 +2,6 @@ var parent = require('./2'); require('../proposals/array-filtering-stage-1'); -require('../proposals/array-last'); require('../proposals/array-unique'); require('../proposals/collection-methods'); require('../proposals/collection-of-from'); diff --git a/tests/compat-data/tests-coverage.mjs b/tests/compat-data/tests-coverage.mjs index 7c41033cf59d..ca84a690a9d9 100644 --- a/tests/compat-data/tests-coverage.mjs +++ b/tests/compat-data/tests-coverage.mjs @@ -15,7 +15,6 @@ const ignore = new Set([ 'es.set', 'es.weak-map', 'es.weak-set', - 'esnext.array.last-item', 'esnext.bigint.range', 'esnext.function.un-this', 'esnext.iterator.sliding', diff --git a/tests/entries/unit.mjs b/tests/entries/unit.mjs index 2580b54440c6..341db369654e 100644 --- a/tests/entries/unit.mjs +++ b/tests/entries/unit.mjs @@ -721,7 +721,6 @@ for (PATH of ['core-js-pure', 'core-js']) { const WeakSet = load(NS, 'weak-set'); ok(typeof load(NS, 'array/filter-reject') == 'function'); ok(typeof load(NS, 'array/is-template-object') == 'function'); - load(NS, 'array/last-item'); ok(typeof load(NS, 'array/unique-by') == 'function'); ok(typeof load(NS, 'array/virtual/filter-reject') == 'function'); ok(typeof load(NS, 'array/virtual/unique-by') == 'function'); @@ -868,7 +867,6 @@ for (PATH of ['core-js-pure', 'core-js']) { load('proposals/array-grouping-v2'); load('proposals/array-includes'); load('proposals/array-is-template-object'); - load('proposals/array-last'); load('proposals/array-unique'); load('proposals/array-buffer-base64'); load('proposals/array-buffer-transfer'); diff --git a/tests/unit-global/esnext.array.last-item.js b/tests/unit-global/esnext.array.last-item.js deleted file mode 100644 index d6a8a64ba776..000000000000 --- a/tests/unit-global/esnext.array.last-item.js +++ /dev/null @@ -1,17 +0,0 @@ -import { DESCRIPTORS } from '../helpers/constants.js'; - -if (DESCRIPTORS) QUnit.test('Array#lastItem', assert => { - const descriptor = Object.getOwnPropertyDescriptor(Array.prototype, 'lastItem'); - assert.isFunction(descriptor.get); - assert.isFunction(descriptor.set); - assert.false(descriptor.enumerable); - assert.true(descriptor.configurable); - assert.same([1, 2, 3].lastItem, 3); - assert.same([].lastItem, undefined); - let array = [1, 2, 3]; - array.lastItem = 4; - assert.deepEqual(array, [1, 2, 4]); - array = []; - array.lastItem = 5; - assert.deepEqual(array, [5]); -}); From fe3b4af4c29bfa8023a46819507e1d0828ba1838 Mon Sep 17 00:00:00 2001 From: Denis Pushkarev Date: Wed, 4 Oct 2023 01:49:20 +0700 Subject: [PATCH 048/428] drop `esnext.function.un-this` (obsolete) --- packages/core-js-compat/src/data.mjs | 3 --- packages/core-js-compat/src/modules-by-versions.mjs | 1 - packages/core-js/full/function/index.js | 2 -- packages/core-js/full/function/un-this.js | 5 ----- packages/core-js/full/function/virtual/index.js | 2 -- packages/core-js/full/function/virtual/un-this.js | 5 ----- packages/core-js/full/instance/un-this.js | 10 ---------- packages/core-js/internals/function-demethodize.js | 7 ------- .../core-js/modules/esnext.function.demethodize.js | 7 +++++-- packages/core-js/modules/esnext.function.un-this.js | 10 ---------- packages/core-js/proposals/function-un-this.js | 4 ---- packages/core-js/stage/0.js | 1 - tests/compat-data/tests-coverage.mjs | 1 - tests/entries/unit.mjs | 9 --------- tests/unit-global/esnext.function.un-this.js | 10 ---------- tests/unit-pure/esnext.function.un-this.js | 8 -------- 16 files changed, 5 insertions(+), 80 deletions(-) delete mode 100644 packages/core-js/full/function/un-this.js delete mode 100644 packages/core-js/full/function/virtual/un-this.js delete mode 100644 packages/core-js/full/instance/un-this.js delete mode 100644 packages/core-js/internals/function-demethodize.js delete mode 100644 packages/core-js/modules/esnext.function.un-this.js delete mode 100644 packages/core-js/proposals/function-un-this.js delete mode 100644 tests/unit-global/esnext.function.un-this.js delete mode 100644 tests/unit-pure/esnext.function.un-this.js diff --git a/packages/core-js-compat/src/data.mjs b/packages/core-js-compat/src/data.mjs index a6d3f0df430d..e4a78dbeab66 100644 --- a/packages/core-js-compat/src/data.mjs +++ b/packages/core-js-compat/src/data.mjs @@ -2441,9 +2441,6 @@ export const data = { 'esnext.function.metadata': { }, // TODO: Remove from `core-js@4` - 'esnext.function.un-this': { - }, - // TODO: Remove from `core-js@4` 'esnext.iterator.constructor': null, 'esnext.iterator.chunks': { }, diff --git a/packages/core-js-compat/src/modules-by-versions.mjs b/packages/core-js-compat/src/modules-by-versions.mjs index 29d9c290ec6e..98114576bacf 100644 --- a/packages/core-js-compat/src/modules-by-versions.mjs +++ b/packages/core-js-compat/src/modules-by-versions.mjs @@ -97,7 +97,6 @@ export default { 'es.number.to-exponential', 'esnext.function.is-callable', 'esnext.function.is-constructor', - 'esnext.function.un-this', 'esnext.iterator.to-async', 'esnext.string.cooked', 'web.dom-exception.constructor', diff --git a/packages/core-js/full/function/index.js b/packages/core-js/full/function/index.js index 4ecdac5c3597..3a30ed8ba3e5 100644 --- a/packages/core-js/full/function/index.js +++ b/packages/core-js/full/function/index.js @@ -3,7 +3,5 @@ var parent = require('../../actual/function'); require('../../modules/esnext.function.demethodize'); require('../../modules/esnext.function.is-callable'); require('../../modules/esnext.function.is-constructor'); -// TODO: Remove from `core-js@4` -require('../../modules/esnext.function.un-this'); module.exports = parent; diff --git a/packages/core-js/full/function/un-this.js b/packages/core-js/full/function/un-this.js deleted file mode 100644 index a9561ca1024c..000000000000 --- a/packages/core-js/full/function/un-this.js +++ /dev/null @@ -1,5 +0,0 @@ -'use strict'; -require('../../modules/esnext.function.un-this'); -var entryUnbind = require('../../internals/entry-unbind'); - -module.exports = entryUnbind('Function', 'unThis'); diff --git a/packages/core-js/full/function/virtual/index.js b/packages/core-js/full/function/virtual/index.js index 76d59520c22d..ad2dd942dd2b 100644 --- a/packages/core-js/full/function/virtual/index.js +++ b/packages/core-js/full/function/virtual/index.js @@ -1,7 +1,5 @@ 'use strict'; var parent = require('../../../actual/function/virtual'); require('../../../modules/esnext.function.demethodize'); -// TODO: Remove from `core-js@4` -require('../../../modules/esnext.function.un-this'); module.exports = parent; diff --git a/packages/core-js/full/function/virtual/un-this.js b/packages/core-js/full/function/virtual/un-this.js deleted file mode 100644 index 671c1891e89c..000000000000 --- a/packages/core-js/full/function/virtual/un-this.js +++ /dev/null @@ -1,5 +0,0 @@ -'use strict'; -require('../../../modules/esnext.function.un-this'); -var getBuiltInPrototypeMethod = require('../../../internals/get-built-in-prototype-method'); - -module.exports = getBuiltInPrototypeMethod('Function', 'unThis'); diff --git a/packages/core-js/full/instance/un-this.js b/packages/core-js/full/instance/un-this.js deleted file mode 100644 index a1d40b70ca12..000000000000 --- a/packages/core-js/full/instance/un-this.js +++ /dev/null @@ -1,10 +0,0 @@ -'use strict'; -var isPrototypeOf = require('../../internals/object-is-prototype-of'); -var method = require('../function/virtual/un-this'); - -var FunctionPrototype = Function.prototype; - -module.exports = function (it) { - var own = it.unThis; - return it === FunctionPrototype || (isPrototypeOf(FunctionPrototype, it) && own === FunctionPrototype.unThis) ? method : own; -}; diff --git a/packages/core-js/internals/function-demethodize.js b/packages/core-js/internals/function-demethodize.js deleted file mode 100644 index 0ba9d4391606..000000000000 --- a/packages/core-js/internals/function-demethodize.js +++ /dev/null @@ -1,7 +0,0 @@ -'use strict'; -var uncurryThis = require('../internals/function-uncurry-this'); -var aCallable = require('../internals/a-callable'); - -module.exports = function demethodize() { - return uncurryThis(aCallable(this)); -}; diff --git a/packages/core-js/modules/esnext.function.demethodize.js b/packages/core-js/modules/esnext.function.demethodize.js index 2e17f65505b0..a779b7bf4746 100644 --- a/packages/core-js/modules/esnext.function.demethodize.js +++ b/packages/core-js/modules/esnext.function.demethodize.js @@ -1,9 +1,12 @@ 'use strict'; var $ = require('../internals/export'); -var demethodize = require('../internals/function-demethodize'); +var uncurryThis = require('../internals/function-uncurry-this'); +var aCallable = require('../internals/a-callable'); // `Function.prototype.demethodize` method // https://github.com/js-choi/proposal-function-demethodize $({ target: 'Function', proto: true, forced: true }, { - demethodize: demethodize + demethodize: function demethodize() { + return uncurryThis(aCallable(this)); + } }); diff --git a/packages/core-js/modules/esnext.function.un-this.js b/packages/core-js/modules/esnext.function.un-this.js deleted file mode 100644 index 020539b7ce48..000000000000 --- a/packages/core-js/modules/esnext.function.un-this.js +++ /dev/null @@ -1,10 +0,0 @@ -'use strict'; -var $ = require('../internals/export'); -var demethodize = require('../internals/function-demethodize'); - -// `Function.prototype.unThis` method -// https://github.com/js-choi/proposal-function-demethodize -// TODO: Remove from `core-js@4` -$({ target: 'Function', proto: true, forced: true, name: 'demethodize' }, { - unThis: demethodize -}); diff --git a/packages/core-js/proposals/function-un-this.js b/packages/core-js/proposals/function-un-this.js deleted file mode 100644 index fd543ea85ff0..000000000000 --- a/packages/core-js/proposals/function-un-this.js +++ /dev/null @@ -1,4 +0,0 @@ -'use strict'; -// TODO: Remove from `core-js@4` -// https://github.com/js-choi/proposal-function-demethodize -require('../modules/esnext.function.un-this'); diff --git a/packages/core-js/stage/0.js b/packages/core-js/stage/0.js index 0e2e1bf62d15..903abeef5fbf 100644 --- a/packages/core-js/stage/0.js +++ b/packages/core-js/stage/0.js @@ -6,6 +6,5 @@ require('../proposals/function-is-callable-is-constructor'); require('../proposals/url'); // TODO: Obsolete versions, remove from `core-js@4`: require('../proposals/array-filtering'); -require('../proposals/function-un-this'); module.exports = parent; diff --git a/tests/compat-data/tests-coverage.mjs b/tests/compat-data/tests-coverage.mjs index ca84a690a9d9..6ba140c4b7be 100644 --- a/tests/compat-data/tests-coverage.mjs +++ b/tests/compat-data/tests-coverage.mjs @@ -16,7 +16,6 @@ const ignore = new Set([ 'es.weak-map', 'es.weak-set', 'esnext.bigint.range', - 'esnext.function.un-this', 'esnext.iterator.sliding', 'esnext.map.emplace', 'esnext.map.update-or-insert', diff --git a/tests/entries/unit.mjs b/tests/entries/unit.mjs index 341db369654e..6216383db115 100644 --- a/tests/entries/unit.mjs +++ b/tests/entries/unit.mjs @@ -734,8 +734,6 @@ for (PATH of ['core-js-pure', 'core-js']) { ok(load(NS, 'function/virtual/demethodize').call([].slice)([1, 2, 3], 1)[0] === 2); ok(!load(NS, 'function/is-callable')(class { /* empty */ })); ok(!load(NS, 'function/is-constructor')(it => it)); - ok(load(NS, 'function/un-this')([].slice)([1, 2, 3], 1)[0] === 2); - ok(load(NS, 'function/virtual/un-this').call([].slice)([1, 2, 3], 1)[0] === 2); ok(load(NS, 'iterator/range')(1, 2).next().value === 1); ok(typeof load(NS, 'iterator/chunks') == 'function'); ok(typeof load(NS, 'iterator/sliding') == 'function'); @@ -849,12 +847,6 @@ for (PATH of ['core-js-pure', 'core-js']) { ok(instanceUniqueBy({}) === undefined); ok(typeof instanceUniqueBy([]) == 'function'); ok(instanceUniqueBy([]).call([1, 2, 3, 2, 1]).length === 3); - - const instanceUnThis = load(NS, 'instance/un-this'); - ok(typeof instanceUnThis == 'function'); - ok(instanceUnThis({}) === undefined); - ok(typeof instanceUnThis([].slice) == 'function'); - ok(instanceUnThis([].slice).call([].slice)([1, 2, 3], 1)[0] === 2); } load('proposals/accessible-object-hasownproperty'); @@ -886,7 +878,6 @@ for (PATH of ['core-js-pure', 'core-js']) { load('proposals/float16'); load('proposals/function-demethodize'); load('proposals/function-is-callable-is-constructor'); - load('proposals/function-un-this'); load('proposals/global-this'); load('proposals/is-error'); load('proposals/iterator-helpers-stage-3'); diff --git a/tests/unit-global/esnext.function.un-this.js b/tests/unit-global/esnext.function.un-this.js deleted file mode 100644 index 8c6aafc92710..000000000000 --- a/tests/unit-global/esnext.function.un-this.js +++ /dev/null @@ -1,10 +0,0 @@ -QUnit.test('Function#unThis', assert => { - const { unThis } = Function.prototype; - assert.isFunction(unThis); - assert.arity(unThis, 0); - // assert.name(unThis, 'unThis'); - assert.looksNative(unThis); - assert.nonEnumerable(Function.prototype, 'unThis'); - assert.same(function () { return 42; }.unThis()(), 42); - assert.deepEqual(Array.prototype.slice.unThis()([1, 2, 3], 1), [2, 3]); -}); diff --git a/tests/unit-pure/esnext.function.un-this.js b/tests/unit-pure/esnext.function.un-this.js deleted file mode 100644 index 35f567d5045d..000000000000 --- a/tests/unit-pure/esnext.function.un-this.js +++ /dev/null @@ -1,8 +0,0 @@ -import unThis from 'core-js-pure/full/function/un-this'; - -QUnit.test('Function#unThis', assert => { - assert.isFunction(unThis); - // eslint-disable-next-line prefer-arrow-callback -- required for testing - assert.same(unThis(function () { return 42; })(), 42); - assert.deepEqual(unThis(Array.prototype.slice)([1, 2, 3], 1), [2, 3]); -}); From eca20a85307d4f129016c5f3abf2925828e1108b Mon Sep 17 00:00:00 2001 From: Denis Pushkarev Date: Wed, 4 Oct 2023 02:07:20 +0700 Subject: [PATCH 049/428] drop `esnext.symbol.metadata-key` (obsolete) --- packages/core-js-compat/src/data.mjs | 3 --- packages/core-js-compat/src/modules-by-versions.mjs | 1 - packages/core-js/full/symbol/index.js | 1 - packages/core-js/full/symbol/metadata-key.js | 5 ----- .../core-js/modules/esnext.symbol.metadata-key.js | 7 ------- packages/core-js/proposals/decorator-metadata.js | 4 ---- packages/core-js/stage/2.js | 1 - tests/compat-data/tests-coverage.mjs | 1 - tests/entries/unit.mjs | 2 -- tests/unit-global/esnext.symbol.metadata-key.js | 13 ------------- tests/unit-pure/esnext.symbol.metadata-key.js | 6 ------ 11 files changed, 44 deletions(-) delete mode 100644 packages/core-js/full/symbol/metadata-key.js delete mode 100644 packages/core-js/modules/esnext.symbol.metadata-key.js delete mode 100644 packages/core-js/proposals/decorator-metadata.js delete mode 100644 tests/unit-global/esnext.symbol.metadata-key.js delete mode 100644 tests/unit-pure/esnext.symbol.metadata-key.js diff --git a/packages/core-js-compat/src/data.mjs b/packages/core-js-compat/src/data.mjs index e4a78dbeab66..081983437050 100644 --- a/packages/core-js-compat/src/data.mjs +++ b/packages/core-js-compat/src/data.mjs @@ -2713,9 +2713,6 @@ export const data = { 'esnext.symbol.metadata': { deno: '1.40.4', }, - // TODO: Remove from `core-js@4` - 'esnext.symbol.metadata-key': { - }, 'esnext.symbol.observable': { }, // TODO: Remove from `core-js@4` diff --git a/packages/core-js-compat/src/modules-by-versions.mjs b/packages/core-js-compat/src/modules-by-versions.mjs index 98114576bacf..8ad19e7f074d 100644 --- a/packages/core-js-compat/src/modules-by-versions.mjs +++ b/packages/core-js-compat/src/modules-by-versions.mjs @@ -115,7 +115,6 @@ export default { 'es.array.unshift', 'es.typed-array.find-last', 'es.typed-array.find-last-index', - 'esnext.symbol.metadata-key', ], 3.25: [ 'es.object.proto', diff --git a/packages/core-js/full/symbol/index.js b/packages/core-js/full/symbol/index.js index 83668137a498..83c19e7b6627 100644 --- a/packages/core-js/full/symbol/index.js +++ b/packages/core-js/full/symbol/index.js @@ -8,7 +8,6 @@ require('../../modules/esnext.symbol.observable'); require('../../modules/esnext.symbol.is-registered'); require('../../modules/esnext.symbol.is-well-known'); require('../../modules/esnext.symbol.matcher'); -require('../../modules/esnext.symbol.metadata-key'); require('../../modules/esnext.symbol.pattern-match'); require('../../modules/esnext.symbol.replace-all'); diff --git a/packages/core-js/full/symbol/metadata-key.js b/packages/core-js/full/symbol/metadata-key.js deleted file mode 100644 index a6fcd007939e..000000000000 --- a/packages/core-js/full/symbol/metadata-key.js +++ /dev/null @@ -1,5 +0,0 @@ -'use strict'; -require('../../modules/esnext.symbol.metadata-key'); -var WrappedWellKnownSymbolModule = require('../../internals/well-known-symbol-wrapped'); - -module.exports = WrappedWellKnownSymbolModule.f('metadataKey'); diff --git a/packages/core-js/modules/esnext.symbol.metadata-key.js b/packages/core-js/modules/esnext.symbol.metadata-key.js deleted file mode 100644 index f0435c64406f..000000000000 --- a/packages/core-js/modules/esnext.symbol.metadata-key.js +++ /dev/null @@ -1,7 +0,0 @@ -'use strict'; -// TODO: Remove from `core-js@4` -var defineWellKnownSymbol = require('../internals/well-known-symbol-define'); - -// `Symbol.metadataKey` well-known symbol -// https://github.com/tc39/proposal-decorator-metadata -defineWellKnownSymbol('metadataKey'); diff --git a/packages/core-js/proposals/decorator-metadata.js b/packages/core-js/proposals/decorator-metadata.js deleted file mode 100644 index 2cc3395cf9f4..000000000000 --- a/packages/core-js/proposals/decorator-metadata.js +++ /dev/null @@ -1,4 +0,0 @@ -'use strict'; -// TODO: Remove from `core-js@4` -// https://github.com/tc39/proposal-decorator-metadata -require('../modules/esnext.symbol.metadata-key'); diff --git a/packages/core-js/stage/2.js b/packages/core-js/stage/2.js index 21d6f83be2a2..c5967278e8d4 100644 --- a/packages/core-js/stage/2.js +++ b/packages/core-js/stage/2.js @@ -10,7 +10,6 @@ require('../proposals/symbol-predicates-v2'); // TODO: Obsolete versions, remove from `core-js@4` require('../proposals/async-explicit-resource-management'); require('../proposals/decorators'); -require('../proposals/decorator-metadata'); require('../proposals/map-upsert-stage-2'); require('../proposals/math-clamp-v2'); require('../proposals/set-methods'); diff --git a/tests/compat-data/tests-coverage.mjs b/tests/compat-data/tests-coverage.mjs index 6ba140c4b7be..68c981f73744 100644 --- a/tests/compat-data/tests-coverage.mjs +++ b/tests/compat-data/tests-coverage.mjs @@ -45,7 +45,6 @@ const ignore = new Set([ 'esnext.symbol.is-registered', 'esnext.symbol.is-well-known', 'esnext.symbol.matcher', - 'esnext.symbol.metadata-key', 'esnext.symbol.pattern-match', 'esnext.symbol.replace-all', 'esnext.weak-map.emplace', diff --git a/tests/entries/unit.mjs b/tests/entries/unit.mjs index 6216383db115..b9b19b7bcff9 100644 --- a/tests/entries/unit.mjs +++ b/tests/entries/unit.mjs @@ -804,7 +804,6 @@ for (PATH of ['core-js-pure', 'core-js']) { ok(load(NS, 'symbol/is-registered')(1) === false); ok(load(NS, 'symbol/is-well-known')(1) === false); ok(load(NS, 'symbol/matcher')); - ok(load(NS, 'symbol/metadata-key')); ok(load(NS, 'symbol/observable')); ok(load(NS, 'symbol/pattern-match')); ok(load(NS, 'symbol/replace-all')); @@ -869,7 +868,6 @@ for (PATH of ['core-js-pure', 'core-js']) { load('proposals/collection-methods'); load('proposals/collection-of-from'); load('proposals/data-view-get-set-uint8-clamped'); - load('proposals/decorator-metadata'); load('proposals/decorator-metadata-v2'); load('proposals/decorators'); load('proposals/error-cause'); diff --git a/tests/unit-global/esnext.symbol.metadata-key.js b/tests/unit-global/esnext.symbol.metadata-key.js deleted file mode 100644 index 4b1c5b348699..000000000000 --- a/tests/unit-global/esnext.symbol.metadata-key.js +++ /dev/null @@ -1,13 +0,0 @@ -import { DESCRIPTORS } from '../helpers/constants.js'; - -QUnit.test('Symbol.metadataKey', assert => { - assert.true('metadataKey' in Symbol, 'Symbol.metadataKey available'); - assert.nonEnumerable(Symbol, 'metadataKey'); - assert.true(Object(Symbol.metadataKey) instanceof Symbol, 'Symbol.metadataKey is symbol'); - if (DESCRIPTORS) { - const descriptor = Object.getOwnPropertyDescriptor(Symbol, 'metadataKey'); - assert.false(descriptor.enumerable, 'non-enumerable'); - assert.false(descriptor.writable, 'non-writable'); - assert.false(descriptor.configurable, 'non-configurable'); - } -}); diff --git a/tests/unit-pure/esnext.symbol.metadata-key.js b/tests/unit-pure/esnext.symbol.metadata-key.js deleted file mode 100644 index 88e7a6b49d0e..000000000000 --- a/tests/unit-pure/esnext.symbol.metadata-key.js +++ /dev/null @@ -1,6 +0,0 @@ -import Symbol from 'core-js-pure/full/symbol'; - -QUnit.test('Symbol.metadataKey', assert => { - assert.true('metadataKey' in Symbol, 'Symbol.metadataKey available'); - assert.true(Object(Symbol.metadataKey) instanceof Symbol, 'Symbol.metadataKey is symbol'); -}); From f2a398a092a05a1876429fca75e8ad73ea135407 Mon Sep 17 00:00:00 2001 From: Denis Pushkarev Date: Wed, 4 Oct 2023 02:16:34 +0700 Subject: [PATCH 050/428] drop `esnext.symbol.pattern-match` (obsolete) --- packages/core-js-compat/src/data.mjs | 3 --- packages/core-js/full/symbol/index.js | 1 - packages/core-js/full/symbol/pattern-match.js | 6 ------ .../core-js/modules/esnext.symbol.pattern-match.js | 7 ------- packages/core-js/proposals/pattern-matching.js | 2 -- scripts/bundle-package/bundle-package.mjs | 1 - tests/compat-data/tests-coverage.mjs | 1 - tests/entries/unit.mjs | 1 - .../esnext.symbol.is-well-known-symbol.js | 4 ++-- tests/unit-global/esnext.symbol.is-well-known.js | 4 ++-- tests/unit-global/esnext.symbol.pattern-match.js | 13 ------------- .../unit-pure/esnext.symbol.is-well-known-symbol.js | 4 ++-- tests/unit-pure/esnext.symbol.is-well-known.js | 4 ++-- tests/unit-pure/esnext.symbol.pattern-match.js | 6 ------ 14 files changed, 8 insertions(+), 49 deletions(-) delete mode 100644 packages/core-js/full/symbol/pattern-match.js delete mode 100644 packages/core-js/modules/esnext.symbol.pattern-match.js delete mode 100644 tests/unit-global/esnext.symbol.pattern-match.js delete mode 100644 tests/unit-pure/esnext.symbol.pattern-match.js diff --git a/packages/core-js-compat/src/data.mjs b/packages/core-js-compat/src/data.mjs index 081983437050..655fdc8856a5 100644 --- a/packages/core-js-compat/src/data.mjs +++ b/packages/core-js-compat/src/data.mjs @@ -2716,9 +2716,6 @@ export const data = { 'esnext.symbol.observable': { }, // TODO: Remove from `core-js@4` - 'esnext.symbol.pattern-match': { - }, - // TODO: Remove from `core-js@4` 'esnext.symbol.replace-all': { }, 'esnext.typed-array.filter-reject': { diff --git a/packages/core-js/full/symbol/index.js b/packages/core-js/full/symbol/index.js index 83c19e7b6627..4e20641c3eba 100644 --- a/packages/core-js/full/symbol/index.js +++ b/packages/core-js/full/symbol/index.js @@ -8,7 +8,6 @@ require('../../modules/esnext.symbol.observable'); require('../../modules/esnext.symbol.is-registered'); require('../../modules/esnext.symbol.is-well-known'); require('../../modules/esnext.symbol.matcher'); -require('../../modules/esnext.symbol.pattern-match'); require('../../modules/esnext.symbol.replace-all'); module.exports = parent; diff --git a/packages/core-js/full/symbol/pattern-match.js b/packages/core-js/full/symbol/pattern-match.js deleted file mode 100644 index 3bd8489f8181..000000000000 --- a/packages/core-js/full/symbol/pattern-match.js +++ /dev/null @@ -1,6 +0,0 @@ -'use strict'; -// TODO: Remove from `core-js@4` -require('../../modules/esnext.symbol.pattern-match'); -var WrappedWellKnownSymbolModule = require('../../internals/well-known-symbol-wrapped'); - -module.exports = WrappedWellKnownSymbolModule.f('patternMatch'); diff --git a/packages/core-js/modules/esnext.symbol.pattern-match.js b/packages/core-js/modules/esnext.symbol.pattern-match.js deleted file mode 100644 index bd587232ebb6..000000000000 --- a/packages/core-js/modules/esnext.symbol.pattern-match.js +++ /dev/null @@ -1,7 +0,0 @@ -'use strict'; -// TODO: remove from `core-js@4` -var defineWellKnownSymbol = require('../internals/well-known-symbol-define'); - -// `Symbol.patternMatch` well-known symbol -// https://github.com/tc39/proposal-pattern-matching -defineWellKnownSymbol('patternMatch'); diff --git a/packages/core-js/proposals/pattern-matching.js b/packages/core-js/proposals/pattern-matching.js index 0da79cd15a02..e0039149b9c6 100644 --- a/packages/core-js/proposals/pattern-matching.js +++ b/packages/core-js/proposals/pattern-matching.js @@ -1,5 +1,3 @@ 'use strict'; // https://github.com/tc39/proposal-pattern-matching require('../modules/esnext.symbol.matcher'); -// TODO: remove from `core-js@4` -require('../modules/esnext.symbol.pattern-match'); diff --git a/scripts/bundle-package/bundle-package.mjs b/scripts/bundle-package/bundle-package.mjs index 3b04d9cc209b..dc51909ce046 100644 --- a/scripts/bundle-package/bundle-package.mjs +++ b/scripts/bundle-package/bundle-package.mjs @@ -61,7 +61,6 @@ await bundle(DENO ? { exclude: [ 'esnext.map.update-or-insert', // obsolete 'esnext.map.upsert', // obsolete - 'esnext.symbol.pattern-match', // is not a part of actual proposal, replaced by esnext.symbol.matcher 'esnext.symbol.replace-all', // obsolete 'esnext.weak-map.upsert', // obsolete ], diff --git a/tests/compat-data/tests-coverage.mjs b/tests/compat-data/tests-coverage.mjs index 68c981f73744..757e8f55b288 100644 --- a/tests/compat-data/tests-coverage.mjs +++ b/tests/compat-data/tests-coverage.mjs @@ -45,7 +45,6 @@ const ignore = new Set([ 'esnext.symbol.is-registered', 'esnext.symbol.is-well-known', 'esnext.symbol.matcher', - 'esnext.symbol.pattern-match', 'esnext.symbol.replace-all', 'esnext.weak-map.emplace', 'esnext.weak-map.upsert', diff --git a/tests/entries/unit.mjs b/tests/entries/unit.mjs index b9b19b7bcff9..07a981930c86 100644 --- a/tests/entries/unit.mjs +++ b/tests/entries/unit.mjs @@ -805,7 +805,6 @@ for (PATH of ['core-js-pure', 'core-js']) { ok(load(NS, 'symbol/is-well-known')(1) === false); ok(load(NS, 'symbol/matcher')); ok(load(NS, 'symbol/observable')); - ok(load(NS, 'symbol/pattern-match')); ok(load(NS, 'symbol/replace-all')); ok(load(NS, 'weak-map/delete-all')(new WeakMap(), [], {}) === false); ok(load(NS, 'weak-map/emplace')(new WeakMap(), {}, { insert: () => ({ a: 42 }) }).a === 42); diff --git a/tests/unit-global/esnext.symbol.is-well-known-symbol.js b/tests/unit-global/esnext.symbol.is-well-known-symbol.js index f1b1dad8f8d8..aad134117a18 100644 --- a/tests/unit-global/esnext.symbol.is-well-known-symbol.js +++ b/tests/unit-global/esnext.symbol.is-well-known-symbol.js @@ -8,8 +8,8 @@ QUnit.test('Symbol.isWellKnownSymbol', assert => { assert.true(isWellKnownSymbol(Symbol.iterator), 'registered-1'); assert.true(isWellKnownSymbol(Object(Symbol.iterator)), 'registered-2, boxed'); - assert.true(isWellKnownSymbol(Symbol.patternMatch), 'registered-3'); - assert.true(isWellKnownSymbol(Object(Symbol.patternMatch)), 'registered-4, boxed'); + assert.true(isWellKnownSymbol(Symbol.matcher), 'registered-3'); + assert.true(isWellKnownSymbol(Object(Symbol.matcher)), 'registered-4, boxed'); const symbol = Symbol('Symbol.isWellKnownSymbol test'); assert.false(isWellKnownSymbol(symbol), 'non-registered'); assert.false(isWellKnownSymbol(Object(symbol)), 'non-registered, boxed'); diff --git a/tests/unit-global/esnext.symbol.is-well-known.js b/tests/unit-global/esnext.symbol.is-well-known.js index a7188a1dae41..f770e6f8f45c 100644 --- a/tests/unit-global/esnext.symbol.is-well-known.js +++ b/tests/unit-global/esnext.symbol.is-well-known.js @@ -8,8 +8,8 @@ QUnit.test('Symbol.isWellKnown', assert => { assert.true(isWellKnown(Symbol.iterator), 'registered-1'); assert.true(isWellKnown(Object(Symbol.iterator)), 'registered-2, boxed'); - assert.true(isWellKnown(Symbol.patternMatch), 'registered-3'); - assert.true(isWellKnown(Object(Symbol.patternMatch)), 'registered-4, boxed'); + assert.true(isWellKnown(Symbol.matcher), 'registered-3'); + assert.true(isWellKnown(Object(Symbol.matcher)), 'registered-4, boxed'); const symbol = Symbol('Symbol.isWellKnown test'); assert.false(isWellKnown(symbol), 'non-registered'); assert.false(isWellKnown(Object(symbol)), 'non-registered, boxed'); diff --git a/tests/unit-global/esnext.symbol.pattern-match.js b/tests/unit-global/esnext.symbol.pattern-match.js deleted file mode 100644 index 65342dda5f4e..000000000000 --- a/tests/unit-global/esnext.symbol.pattern-match.js +++ /dev/null @@ -1,13 +0,0 @@ -import { DESCRIPTORS } from '../helpers/constants.js'; - -QUnit.test('Symbol.patternMatch', assert => { - assert.true('patternMatch' in Symbol, 'Symbol.patternMatch available'); - assert.nonEnumerable(Symbol, 'patternMatch'); - assert.true(Object(Symbol.patternMatch) instanceof Symbol, 'Symbol.patternMatch is symbol'); - if (DESCRIPTORS) { - const descriptor = Object.getOwnPropertyDescriptor(Symbol, 'patternMatch'); - assert.false(descriptor.enumerable, 'non-enumerable'); - assert.false(descriptor.writable, 'non-writable'); - assert.false(descriptor.configurable, 'non-configurable'); - } -}); diff --git a/tests/unit-pure/esnext.symbol.is-well-known-symbol.js b/tests/unit-pure/esnext.symbol.is-well-known-symbol.js index 8cc9ff0d3a3d..75215ed8c8ca 100644 --- a/tests/unit-pure/esnext.symbol.is-well-known-symbol.js +++ b/tests/unit-pure/esnext.symbol.is-well-known-symbol.js @@ -8,8 +8,8 @@ QUnit.test('Symbol.isWellKnownSymbol', assert => { assert.true(isWellKnownSymbol(Symbol.iterator), 'registered-1'); assert.true(isWellKnownSymbol(Object(Symbol.iterator)), 'registered-2, boxed'); - assert.true(isWellKnownSymbol(Symbol.patternMatch), 'registered-3'); - assert.true(isWellKnownSymbol(Object(Symbol.patternMatch)), 'registered-4, boxed'); + assert.true(isWellKnownSymbol(Symbol.matcher), 'registered-3'); + assert.true(isWellKnownSymbol(Object(Symbol.matcher)), 'registered-4, boxed'); const symbol = Symbol('Symbol.isWellKnownSymbol test'); assert.false(isWellKnownSymbol(symbol), 'non-registered'); assert.false(isWellKnownSymbol(Object(symbol)), 'non-registered, boxed'); diff --git a/tests/unit-pure/esnext.symbol.is-well-known.js b/tests/unit-pure/esnext.symbol.is-well-known.js index 89a1dfec0bcc..6750e4e999ab 100644 --- a/tests/unit-pure/esnext.symbol.is-well-known.js +++ b/tests/unit-pure/esnext.symbol.is-well-known.js @@ -8,8 +8,8 @@ QUnit.test('Symbol.isWellKnown', assert => { assert.true(isWellKnown(Symbol.iterator), 'registered-1'); assert.true(isWellKnown(Object(Symbol.iterator)), 'registered-2, boxed'); - assert.true(isWellKnown(Symbol.patternMatch), 'registered-3'); - assert.true(isWellKnown(Object(Symbol.patternMatch)), 'registered-4, boxed'); + assert.true(isWellKnown(Symbol.matcher), 'registered-3'); + assert.true(isWellKnown(Object(Symbol.matcher)), 'registered-4, boxed'); const symbol = Symbol('Symbol.isWellKnown test'); assert.false(isWellKnown(symbol), 'non-registered'); assert.false(isWellKnown(Object(symbol)), 'non-registered, boxed'); diff --git a/tests/unit-pure/esnext.symbol.pattern-match.js b/tests/unit-pure/esnext.symbol.pattern-match.js deleted file mode 100644 index a360d57f6920..000000000000 --- a/tests/unit-pure/esnext.symbol.pattern-match.js +++ /dev/null @@ -1,6 +0,0 @@ -import Symbol from 'core-js-pure/full/symbol'; - -QUnit.test('Symbol.patternMatch', assert => { - assert.true('patternMatch' in Symbol, 'Symbol.patternMatch available'); - assert.true(Object(Symbol.patternMatch) instanceof Symbol, 'Symbol.patternMatch is symbol'); -}); From c6cce4c09211e9485a8e35525e9910d40d0476f5 Mon Sep 17 00:00:00 2001 From: Denis Pushkarev Date: Wed, 4 Oct 2023 02:22:32 +0700 Subject: [PATCH 051/428] drop `esnext.symbol.replace-all` (obsolete) --- packages/core-js-compat/src/data.mjs | 3 --- packages/core-js-compat/src/modules-by-versions.mjs | 1 - packages/core-js/full/symbol/index.js | 1 - packages/core-js/full/symbol/replace-all.js | 6 ------ .../core-js/modules/esnext.symbol.replace-all.js | 5 ----- packages/core-js/proposals/string-replace-all.js | 2 -- scripts/bundle-package/bundle-package.mjs | 1 - tests/compat-data/tests-coverage.mjs | 1 - tests/entries/unit.mjs | 1 - tests/unit-global/esnext.symbol.replace-all.js | 13 ------------- tests/unit-pure/esnext.symbol.replace-all.js | 6 ------ 11 files changed, 40 deletions(-) delete mode 100644 packages/core-js/full/symbol/replace-all.js delete mode 100644 packages/core-js/modules/esnext.symbol.replace-all.js delete mode 100644 tests/unit-global/esnext.symbol.replace-all.js delete mode 100644 tests/unit-pure/esnext.symbol.replace-all.js diff --git a/packages/core-js-compat/src/data.mjs b/packages/core-js-compat/src/data.mjs index 655fdc8856a5..930840f82295 100644 --- a/packages/core-js-compat/src/data.mjs +++ b/packages/core-js-compat/src/data.mjs @@ -2715,9 +2715,6 @@ export const data = { }, 'esnext.symbol.observable': { }, - // TODO: Remove from `core-js@4` - 'esnext.symbol.replace-all': { - }, 'esnext.typed-array.filter-reject': { }, 'esnext.typed-array.unique-by': { diff --git a/packages/core-js-compat/src/modules-by-versions.mjs b/packages/core-js-compat/src/modules-by-versions.mjs index 8ad19e7f074d..2d72f1ac7c88 100644 --- a/packages/core-js-compat/src/modules-by-versions.mjs +++ b/packages/core-js-compat/src/modules-by-versions.mjs @@ -2,7 +2,6 @@ export default { 3.1: [ 'es.string.match-all', 'es.symbol.match-all', - 'esnext.symbol.replace-all', ], 3.2: [ 'es.promise.all-settled', diff --git a/packages/core-js/full/symbol/index.js b/packages/core-js/full/symbol/index.js index 4e20641c3eba..2d557fffa1a2 100644 --- a/packages/core-js/full/symbol/index.js +++ b/packages/core-js/full/symbol/index.js @@ -8,6 +8,5 @@ require('../../modules/esnext.symbol.observable'); require('../../modules/esnext.symbol.is-registered'); require('../../modules/esnext.symbol.is-well-known'); require('../../modules/esnext.symbol.matcher'); -require('../../modules/esnext.symbol.replace-all'); module.exports = parent; diff --git a/packages/core-js/full/symbol/replace-all.js b/packages/core-js/full/symbol/replace-all.js deleted file mode 100644 index 76a360a1c529..000000000000 --- a/packages/core-js/full/symbol/replace-all.js +++ /dev/null @@ -1,6 +0,0 @@ -'use strict'; -// TODO: Remove from `core-js@4` -require('../../modules/esnext.symbol.replace-all'); -var WrappedWellKnownSymbolModule = require('../../internals/well-known-symbol-wrapped'); - -module.exports = WrappedWellKnownSymbolModule.f('replaceAll'); diff --git a/packages/core-js/modules/esnext.symbol.replace-all.js b/packages/core-js/modules/esnext.symbol.replace-all.js deleted file mode 100644 index 1bd2e1b1f03f..000000000000 --- a/packages/core-js/modules/esnext.symbol.replace-all.js +++ /dev/null @@ -1,5 +0,0 @@ -'use strict'; -// TODO: remove from `core-js@4` -var defineWellKnownSymbol = require('../internals/well-known-symbol-define'); - -defineWellKnownSymbol('replaceAll'); diff --git a/packages/core-js/proposals/string-replace-all.js b/packages/core-js/proposals/string-replace-all.js index b7409ea6d491..71354d6d8bf0 100644 --- a/packages/core-js/proposals/string-replace-all.js +++ b/packages/core-js/proposals/string-replace-all.js @@ -1,5 +1,3 @@ 'use strict'; // https://github.com/tc39/proposal-string-replaceall require('../modules/es.string.replace-all'); -// TODO: remove from `core-js@4` -require('../modules/esnext.symbol.replace-all'); diff --git a/scripts/bundle-package/bundle-package.mjs b/scripts/bundle-package/bundle-package.mjs index dc51909ce046..1ad66cf7041f 100644 --- a/scripts/bundle-package/bundle-package.mjs +++ b/scripts/bundle-package/bundle-package.mjs @@ -61,7 +61,6 @@ await bundle(DENO ? { exclude: [ 'esnext.map.update-or-insert', // obsolete 'esnext.map.upsert', // obsolete - 'esnext.symbol.replace-all', // obsolete 'esnext.weak-map.upsert', // obsolete ], }, diff --git a/tests/compat-data/tests-coverage.mjs b/tests/compat-data/tests-coverage.mjs index 757e8f55b288..2e8a78f41cd1 100644 --- a/tests/compat-data/tests-coverage.mjs +++ b/tests/compat-data/tests-coverage.mjs @@ -45,7 +45,6 @@ const ignore = new Set([ 'esnext.symbol.is-registered', 'esnext.symbol.is-well-known', 'esnext.symbol.matcher', - 'esnext.symbol.replace-all', 'esnext.weak-map.emplace', 'esnext.weak-map.upsert', 'web.url-search-params', diff --git a/tests/entries/unit.mjs b/tests/entries/unit.mjs index 07a981930c86..44113442ae9f 100644 --- a/tests/entries/unit.mjs +++ b/tests/entries/unit.mjs @@ -805,7 +805,6 @@ for (PATH of ['core-js-pure', 'core-js']) { ok(load(NS, 'symbol/is-well-known')(1) === false); ok(load(NS, 'symbol/matcher')); ok(load(NS, 'symbol/observable')); - ok(load(NS, 'symbol/replace-all')); ok(load(NS, 'weak-map/delete-all')(new WeakMap(), [], {}) === false); ok(load(NS, 'weak-map/emplace')(new WeakMap(), {}, { insert: () => ({ a: 42 }) }).a === 42); ok(load(NS, 'weak-map/upsert')(new WeakMap(), {}, null, () => 42) === 42); diff --git a/tests/unit-global/esnext.symbol.replace-all.js b/tests/unit-global/esnext.symbol.replace-all.js deleted file mode 100644 index 795d99ea1843..000000000000 --- a/tests/unit-global/esnext.symbol.replace-all.js +++ /dev/null @@ -1,13 +0,0 @@ -import { DESCRIPTORS } from '../helpers/constants.js'; - -QUnit.test('Symbol.replaceAll', assert => { - assert.true('replaceAll' in Symbol, 'Symbol.replaceAll is available'); - assert.nonEnumerable(Symbol, 'replaceAll'); - assert.true(Object(Symbol.replaceAll) instanceof Symbol, 'Symbol.replaceAll is symbol'); - if (DESCRIPTORS) { - const descriptor = Object.getOwnPropertyDescriptor(Symbol, 'replaceAll'); - assert.false(descriptor.enumerable, 'non-enumerable'); - assert.false(descriptor.writable, 'non-writable'); - assert.false(descriptor.configurable, 'non-configurable'); - } -}); diff --git a/tests/unit-pure/esnext.symbol.replace-all.js b/tests/unit-pure/esnext.symbol.replace-all.js deleted file mode 100644 index 3ece74333794..000000000000 --- a/tests/unit-pure/esnext.symbol.replace-all.js +++ /dev/null @@ -1,6 +0,0 @@ -import Symbol from 'core-js-pure/full/symbol'; - -QUnit.test('Symbol.replaceAll', assert => { - assert.true('replaceAll' in Symbol, 'Symbol.replaceAll is available'); - assert.true(Object(Symbol.replaceAll) instanceof Symbol, 'Symbol.replaceAll is symbol'); -}); From 8bb95274e81c6bf4320816969cfa8ffde3ee71ef Mon Sep 17 00:00:00 2001 From: Denis Pushkarev Date: Wed, 4 Oct 2023 02:33:15 +0700 Subject: [PATCH 052/428] drop `esnext.symbol.is-registered` (obsolete) --- packages/core-js-compat/src/data.mjs | 3 --- .../src/modules-by-versions.mjs | 1 - packages/core-js/full/symbol/index.js | 1 - packages/core-js/full/symbol/is-registered.js | 6 ------ .../core-js/internals/symbol-is-registered.js | 17 --------------- .../esnext.symbol.is-registered-symbol.js | 15 +++++++++++-- .../modules/esnext.symbol.is-registered.js | 9 -------- .../core-js/proposals/symbol-predicates.js | 1 - tests/compat-data/tests-coverage.mjs | 1 - tests/entries/unit.mjs | 1 - .../esnext.symbol.is-registered.js | 21 ------------------- .../unit-pure/esnext.symbol.is-registered.js | 21 ------------------- 12 files changed, 13 insertions(+), 84 deletions(-) delete mode 100644 packages/core-js/full/symbol/is-registered.js delete mode 100644 packages/core-js/internals/symbol-is-registered.js delete mode 100644 packages/core-js/modules/esnext.symbol.is-registered.js delete mode 100644 tests/unit-global/esnext.symbol.is-registered.js delete mode 100644 tests/unit-pure/esnext.symbol.is-registered.js diff --git a/packages/core-js-compat/src/data.mjs b/packages/core-js-compat/src/data.mjs index 930840f82295..d4157d8a1251 100644 --- a/packages/core-js-compat/src/data.mjs +++ b/packages/core-js-compat/src/data.mjs @@ -2698,9 +2698,6 @@ export const data = { 'esnext.symbol.dispose': null, 'esnext.symbol.is-registered-symbol': { }, - // TODO: Remove from `core-js@4` - 'esnext.symbol.is-registered': { - }, // We should patch it for newly added well-known symbols. If it's not required, this module just will not be injected 'esnext.symbol.is-well-known-symbol': { }, diff --git a/packages/core-js-compat/src/modules-by-versions.mjs b/packages/core-js-compat/src/modules-by-versions.mjs index 2d72f1ac7c88..bbf0bb3d8d57 100644 --- a/packages/core-js-compat/src/modules-by-versions.mjs +++ b/packages/core-js-compat/src/modules-by-versions.mjs @@ -152,7 +152,6 @@ export default { 'esnext.json.is-raw-json', 'esnext.json.parse', 'esnext.json.raw-json', - 'esnext.symbol.is-registered', 'esnext.symbol.is-well-known', ], 3.29: [ diff --git a/packages/core-js/full/symbol/index.js b/packages/core-js/full/symbol/index.js index 2d557fffa1a2..af6de0238e12 100644 --- a/packages/core-js/full/symbol/index.js +++ b/packages/core-js/full/symbol/index.js @@ -5,7 +5,6 @@ require('../../modules/esnext.symbol.is-well-known-symbol'); require('../../modules/esnext.symbol.custom-matcher'); require('../../modules/esnext.symbol.observable'); // TODO: Remove from `core-js@4` -require('../../modules/esnext.symbol.is-registered'); require('../../modules/esnext.symbol.is-well-known'); require('../../modules/esnext.symbol.matcher'); diff --git a/packages/core-js/full/symbol/is-registered.js b/packages/core-js/full/symbol/is-registered.js deleted file mode 100644 index 7a2e6d2727fc..000000000000 --- a/packages/core-js/full/symbol/is-registered.js +++ /dev/null @@ -1,6 +0,0 @@ -'use strict'; -require('../../modules/es.symbol'); -require('../../modules/esnext.symbol.is-registered'); -var path = require('../../internals/path'); - -module.exports = path.Symbol.isRegistered; diff --git a/packages/core-js/internals/symbol-is-registered.js b/packages/core-js/internals/symbol-is-registered.js deleted file mode 100644 index 9c35d700de8a..000000000000 --- a/packages/core-js/internals/symbol-is-registered.js +++ /dev/null @@ -1,17 +0,0 @@ -'use strict'; -var getBuiltIn = require('../internals/get-built-in'); -var uncurryThis = require('../internals/function-uncurry-this'); - -var Symbol = getBuiltIn('Symbol'); -var keyFor = Symbol.keyFor; -var thisSymbolValue = uncurryThis(Symbol.prototype.valueOf); - -// `Symbol.isRegisteredSymbol` method -// https://tc39.es/proposal-symbol-predicates/#sec-symbol-isregisteredsymbol -module.exports = Symbol.isRegisteredSymbol || function isRegisteredSymbol(value) { - try { - return keyFor(thisSymbolValue(value)) !== undefined; - } catch (error) { - return false; - } -}; diff --git a/packages/core-js/modules/esnext.symbol.is-registered-symbol.js b/packages/core-js/modules/esnext.symbol.is-registered-symbol.js index 5cd5c203558c..35675bee564c 100644 --- a/packages/core-js/modules/esnext.symbol.is-registered-symbol.js +++ b/packages/core-js/modules/esnext.symbol.is-registered-symbol.js @@ -1,9 +1,20 @@ 'use strict'; var $ = require('../internals/export'); -var isRegisteredSymbol = require('../internals/symbol-is-registered'); +var getBuiltIn = require('../internals/get-built-in'); +var uncurryThis = require('../internals/function-uncurry-this'); + +var Symbol = getBuiltIn('Symbol'); +var keyFor = Symbol.keyFor; +var thisSymbolValue = uncurryThis(Symbol.prototype.valueOf); // `Symbol.isRegisteredSymbol` method // https://tc39.es/proposal-symbol-predicates/#sec-symbol-isregisteredsymbol $({ target: 'Symbol', stat: true }, { - isRegisteredSymbol: isRegisteredSymbol + isRegisteredSymbol: Symbol.isRegisteredSymbol || function isRegisteredSymbol(value) { + try { + return keyFor(thisSymbolValue(value)) !== undefined; + } catch (error) { + return false; + } + } }); diff --git a/packages/core-js/modules/esnext.symbol.is-registered.js b/packages/core-js/modules/esnext.symbol.is-registered.js deleted file mode 100644 index 777c97291a49..000000000000 --- a/packages/core-js/modules/esnext.symbol.is-registered.js +++ /dev/null @@ -1,9 +0,0 @@ -'use strict'; -var $ = require('../internals/export'); -var isRegisteredSymbol = require('../internals/symbol-is-registered'); - -// `Symbol.isRegistered` method -// obsolete version of https://tc39.es/proposal-symbol-predicates/#sec-symbol-isregisteredsymbol -$({ target: 'Symbol', stat: true, name: 'isRegisteredSymbol' }, { - isRegistered: isRegisteredSymbol -}); diff --git a/packages/core-js/proposals/symbol-predicates.js b/packages/core-js/proposals/symbol-predicates.js index 2776b8480511..7c2c08a8841c 100644 --- a/packages/core-js/proposals/symbol-predicates.js +++ b/packages/core-js/proposals/symbol-predicates.js @@ -1,4 +1,3 @@ 'use strict'; // https://github.com/tc39/proposal-symbol-predicates -require('../modules/esnext.symbol.is-registered'); require('../modules/esnext.symbol.is-well-known'); diff --git a/tests/compat-data/tests-coverage.mjs b/tests/compat-data/tests-coverage.mjs index 2e8a78f41cd1..328467ee3275 100644 --- a/tests/compat-data/tests-coverage.mjs +++ b/tests/compat-data/tests-coverage.mjs @@ -42,7 +42,6 @@ const ignore = new Set([ 'esnext.set.is-superset-of', 'esnext.set.symmetric-difference', 'esnext.set.union', - 'esnext.symbol.is-registered', 'esnext.symbol.is-well-known', 'esnext.symbol.matcher', 'esnext.weak-map.emplace', diff --git a/tests/entries/unit.mjs b/tests/entries/unit.mjs index 44113442ae9f..bedae61115de 100644 --- a/tests/entries/unit.mjs +++ b/tests/entries/unit.mjs @@ -801,7 +801,6 @@ for (PATH of ['core-js-pure', 'core-js']) { ok(load(NS, 'symbol/custom-matcher')); ok(load(NS, 'symbol/is-registered-symbol')(1) === false); ok(load(NS, 'symbol/is-well-known-symbol')(1) === false); - ok(load(NS, 'symbol/is-registered')(1) === false); ok(load(NS, 'symbol/is-well-known')(1) === false); ok(load(NS, 'symbol/matcher')); ok(load(NS, 'symbol/observable')); diff --git a/tests/unit-global/esnext.symbol.is-registered.js b/tests/unit-global/esnext.symbol.is-registered.js deleted file mode 100644 index c168eb5b2de9..000000000000 --- a/tests/unit-global/esnext.symbol.is-registered.js +++ /dev/null @@ -1,21 +0,0 @@ -QUnit.test('Symbol.isRegistered', assert => { - const { isRegistered } = Symbol; - assert.isFunction(isRegistered, 'Symbol.isRegistered is function'); - assert.nonEnumerable(Symbol, 'isRegistered'); - assert.arity(isRegistered, 1, 'Symbol.isRegistered arity is 1'); - assert.name(isRegistered, 'isRegisteredSymbol', 'Symbol.isRegistered.name is "isRegisteredSymbol"'); - assert.looksNative(isRegistered, 'isRegistered looks like native'); - - assert.true(isRegistered(Symbol.for('foo')), 'registered'); - assert.true(isRegistered(Object(Symbol.for('foo'))), 'registered, boxed'); - const symbol = Symbol('Symbol.isRegistered test'); - assert.false(isRegistered(symbol), 'non-registered'); - assert.false(isRegistered(Object(symbol)), 'non-registered, boxed'); - assert.false(isRegistered(1), '1'); - assert.false(isRegistered(true), 'true'); - assert.false(isRegistered('1'), 'string'); - assert.false(isRegistered(null), 'null'); - assert.false(isRegistered(), 'undefined'); - assert.false(isRegistered({}), 'object'); - assert.false(isRegistered([]), 'array'); -}); diff --git a/tests/unit-pure/esnext.symbol.is-registered.js b/tests/unit-pure/esnext.symbol.is-registered.js deleted file mode 100644 index b9aeae5e8eb6..000000000000 --- a/tests/unit-pure/esnext.symbol.is-registered.js +++ /dev/null @@ -1,21 +0,0 @@ -import Symbol from 'core-js-pure/full/symbol'; - -QUnit.test('Symbol.isRegistered', assert => { - const { isRegistered } = Symbol; - assert.isFunction(isRegistered, 'Symbol.isRegistered is function'); - assert.arity(isRegistered, 1, 'Symbol.isRegistered arity is 1'); - assert.name(isRegistered, 'isRegisteredSymbol', 'Symbol.isRegistered.name is "isRegisteredSymbol"'); - - assert.true(isRegistered(Symbol.for('foo')), 'registered'); - assert.true(isRegistered(Object(Symbol.for('foo'))), 'registered, boxed'); - const symbol = Symbol('Symbol.isRegistered test'); - assert.false(isRegistered(symbol), 'non-registered'); - assert.false(isRegistered(Object(symbol)), 'non-registered, boxed'); - assert.false(isRegistered(1), '1'); - assert.false(isRegistered(true), 'true'); - assert.false(isRegistered('1'), 'string'); - assert.false(isRegistered(null), 'null'); - assert.false(isRegistered(), 'undefined'); - assert.false(isRegistered({}), 'object'); - assert.false(isRegistered([]), 'array'); -}); From 9231359048a35f795abe9b2c0f23dc858dff8aff Mon Sep 17 00:00:00 2001 From: Denis Pushkarev Date: Wed, 4 Oct 2023 02:44:21 +0700 Subject: [PATCH 053/428] drop `esnext.symbol.is-well-known` (obsolete) --- packages/core-js-compat/src/data.mjs | 3 -- .../src/modules-by-versions.mjs | 1 - packages/core-js/full/symbol/index.js | 1 - packages/core-js/full/symbol/is-well-known.js | 6 ---- .../core-js/internals/symbol-is-well-known.js | 35 ------------------- .../esnext.symbol.is-well-known-symbol.js | 33 +++++++++++++++-- .../modules/esnext.symbol.is-well-known.js | 10 ------ .../core-js/proposals/symbol-predicates.js | 3 -- packages/core-js/stage/2.js | 1 - tests/compat-data/tests-coverage.mjs | 1 - tests/entries/unit.mjs | 2 -- .../esnext.symbol.is-well-known.js | 23 ------------ .../unit-pure/esnext.symbol.is-well-known.js | 23 ------------ 13 files changed, 31 insertions(+), 111 deletions(-) delete mode 100644 packages/core-js/full/symbol/is-well-known.js delete mode 100644 packages/core-js/internals/symbol-is-well-known.js delete mode 100644 packages/core-js/modules/esnext.symbol.is-well-known.js delete mode 100644 packages/core-js/proposals/symbol-predicates.js delete mode 100644 tests/unit-global/esnext.symbol.is-well-known.js delete mode 100644 tests/unit-pure/esnext.symbol.is-well-known.js diff --git a/packages/core-js-compat/src/data.mjs b/packages/core-js-compat/src/data.mjs index d4157d8a1251..53c766731096 100644 --- a/packages/core-js-compat/src/data.mjs +++ b/packages/core-js-compat/src/data.mjs @@ -2702,9 +2702,6 @@ export const data = { 'esnext.symbol.is-well-known-symbol': { }, // TODO: Remove from `core-js@4` - 'esnext.symbol.is-well-known': { - }, - // TODO: Remove from `core-js@4` 'esnext.symbol.matcher': { }, 'esnext.symbol.metadata': { diff --git a/packages/core-js-compat/src/modules-by-versions.mjs b/packages/core-js-compat/src/modules-by-versions.mjs index bbf0bb3d8d57..783cc342199c 100644 --- a/packages/core-js-compat/src/modules-by-versions.mjs +++ b/packages/core-js-compat/src/modules-by-versions.mjs @@ -152,7 +152,6 @@ export default { 'esnext.json.is-raw-json', 'esnext.json.parse', 'esnext.json.raw-json', - 'esnext.symbol.is-well-known', ], 3.29: [ 'web.url-search-params.size', diff --git a/packages/core-js/full/symbol/index.js b/packages/core-js/full/symbol/index.js index af6de0238e12..3f73ecf475f7 100644 --- a/packages/core-js/full/symbol/index.js +++ b/packages/core-js/full/symbol/index.js @@ -5,7 +5,6 @@ require('../../modules/esnext.symbol.is-well-known-symbol'); require('../../modules/esnext.symbol.custom-matcher'); require('../../modules/esnext.symbol.observable'); // TODO: Remove from `core-js@4` -require('../../modules/esnext.symbol.is-well-known'); require('../../modules/esnext.symbol.matcher'); module.exports = parent; diff --git a/packages/core-js/full/symbol/is-well-known.js b/packages/core-js/full/symbol/is-well-known.js deleted file mode 100644 index 9e9f648ba5f6..000000000000 --- a/packages/core-js/full/symbol/is-well-known.js +++ /dev/null @@ -1,6 +0,0 @@ -'use strict'; -require('../../modules/es.symbol'); -require('../../modules/esnext.symbol.is-well-known'); -var path = require('../../internals/path'); - -module.exports = path.Symbol.isWellKnown; diff --git a/packages/core-js/internals/symbol-is-well-known.js b/packages/core-js/internals/symbol-is-well-known.js deleted file mode 100644 index 50ec53ebf5b2..000000000000 --- a/packages/core-js/internals/symbol-is-well-known.js +++ /dev/null @@ -1,35 +0,0 @@ -'use strict'; -var shared = require('../internals/shared'); -var getBuiltIn = require('../internals/get-built-in'); -var uncurryThis = require('../internals/function-uncurry-this'); -var isSymbol = require('../internals/is-symbol'); -var wellKnownSymbol = require('../internals/well-known-symbol'); - -var Symbol = getBuiltIn('Symbol'); -var $isWellKnownSymbol = Symbol.isWellKnownSymbol; -var getOwnPropertyNames = getBuiltIn('Object', 'getOwnPropertyNames'); -var thisSymbolValue = uncurryThis(Symbol.prototype.valueOf); -var WellKnownSymbolsStore = shared('wks'); - -for (var i = 0, symbolKeys = getOwnPropertyNames(Symbol), symbolKeysLength = symbolKeys.length; i < symbolKeysLength; i++) { - // some old engines throws on access to some keys like `arguments` or `caller` - try { - var symbolKey = symbolKeys[i]; - if (isSymbol(Symbol[symbolKey])) wellKnownSymbol(symbolKey); - } catch (error) { /* empty */ } -} - -// `Symbol.isWellKnownSymbol` method -// https://tc39.es/proposal-symbol-predicates/#sec-symbol-iswellknownsymbol -// We should patch it for newly added well-known symbols. If it's not required, this module just will not be injected -module.exports = function isWellKnownSymbol(value) { - if ($isWellKnownSymbol && $isWellKnownSymbol(value)) return true; - try { - var symbol = thisSymbolValue(value); - for (var j = 0, keys = getOwnPropertyNames(WellKnownSymbolsStore), keysLength = keys.length; j < keysLength; j++) { - // eslint-disable-next-line eqeqeq -- polyfilled symbols case - if (WellKnownSymbolsStore[keys[j]] == symbol) return true; - } - } catch (error) { /* empty */ } - return false; -}; diff --git a/packages/core-js/modules/esnext.symbol.is-well-known-symbol.js b/packages/core-js/modules/esnext.symbol.is-well-known-symbol.js index 8663e05a2741..5b51b477de8e 100644 --- a/packages/core-js/modules/esnext.symbol.is-well-known-symbol.js +++ b/packages/core-js/modules/esnext.symbol.is-well-known-symbol.js @@ -1,10 +1,39 @@ + 'use strict'; var $ = require('../internals/export'); -var isWellKnownSymbol = require('../internals/symbol-is-well-known'); +var shared = require('../internals/shared'); +var getBuiltIn = require('../internals/get-built-in'); +var uncurryThis = require('../internals/function-uncurry-this'); +var isSymbol = require('../internals/is-symbol'); +var wellKnownSymbol = require('../internals/well-known-symbol'); + +var Symbol = getBuiltIn('Symbol'); +var $isWellKnownSymbol = Symbol.isWellKnownSymbol; +var getOwnPropertyNames = getBuiltIn('Object', 'getOwnPropertyNames'); +var thisSymbolValue = uncurryThis(Symbol.prototype.valueOf); +var WellKnownSymbolsStore = shared('wks'); + +for (var i = 0, symbolKeys = getOwnPropertyNames(Symbol), symbolKeysLength = symbolKeys.length; i < symbolKeysLength; i++) { + // some old engines throws on access to some keys like `arguments` or `caller` + try { + var symbolKey = symbolKeys[i]; + if (isSymbol(Symbol[symbolKey])) wellKnownSymbol(symbolKey); + } catch (error) { /* empty */ } +} // `Symbol.isWellKnownSymbol` method // https://tc39.es/proposal-symbol-predicates/#sec-symbol-iswellknownsymbol // We should patch it for newly added well-known symbols. If it's not required, this module just will not be injected $({ target: 'Symbol', stat: true, forced: true }, { - isWellKnownSymbol: isWellKnownSymbol + isWellKnownSymbol: function isWellKnownSymbol(value) { + if ($isWellKnownSymbol && $isWellKnownSymbol(value)) return true; + try { + var symbol = thisSymbolValue(value); + for (var j = 0, keys = getOwnPropertyNames(WellKnownSymbolsStore), keysLength = keys.length; j < keysLength; j++) { + // eslint-disable-next-line eqeqeq -- polyfilled symbols case + if (WellKnownSymbolsStore[keys[j]] == symbol) return true; + } + } catch (error) { /* empty */ } + return false; + } }); diff --git a/packages/core-js/modules/esnext.symbol.is-well-known.js b/packages/core-js/modules/esnext.symbol.is-well-known.js deleted file mode 100644 index 6c0e000572b4..000000000000 --- a/packages/core-js/modules/esnext.symbol.is-well-known.js +++ /dev/null @@ -1,10 +0,0 @@ -'use strict'; -var $ = require('../internals/export'); -var isWellKnownSymbol = require('../internals/symbol-is-well-known'); - -// `Symbol.isWellKnown` method -// obsolete version of https://tc39.es/proposal-symbol-predicates/#sec-symbol-iswellknownsymbol -// We should patch it for newly added well-known symbols. If it's not required, this module just will not be injected -$({ target: 'Symbol', stat: true, name: 'isWellKnownSymbol', forced: true }, { - isWellKnown: isWellKnownSymbol -}); diff --git a/packages/core-js/proposals/symbol-predicates.js b/packages/core-js/proposals/symbol-predicates.js deleted file mode 100644 index 7c2c08a8841c..000000000000 --- a/packages/core-js/proposals/symbol-predicates.js +++ /dev/null @@ -1,3 +0,0 @@ -'use strict'; -// https://github.com/tc39/proposal-symbol-predicates -require('../modules/esnext.symbol.is-well-known'); diff --git a/packages/core-js/stage/2.js b/packages/core-js/stage/2.js index c5967278e8d4..0ba7ab2b87aa 100644 --- a/packages/core-js/stage/2.js +++ b/packages/core-js/stage/2.js @@ -13,7 +13,6 @@ require('../proposals/decorators'); require('../proposals/map-upsert-stage-2'); require('../proposals/math-clamp-v2'); require('../proposals/set-methods'); -require('../proposals/symbol-predicates'); require('../proposals/using-statement'); module.exports = parent; diff --git a/tests/compat-data/tests-coverage.mjs b/tests/compat-data/tests-coverage.mjs index 328467ee3275..813056f52fe8 100644 --- a/tests/compat-data/tests-coverage.mjs +++ b/tests/compat-data/tests-coverage.mjs @@ -42,7 +42,6 @@ const ignore = new Set([ 'esnext.set.is-superset-of', 'esnext.set.symmetric-difference', 'esnext.set.union', - 'esnext.symbol.is-well-known', 'esnext.symbol.matcher', 'esnext.weak-map.emplace', 'esnext.weak-map.upsert', diff --git a/tests/entries/unit.mjs b/tests/entries/unit.mjs index bedae61115de..fedba6ebd8c2 100644 --- a/tests/entries/unit.mjs +++ b/tests/entries/unit.mjs @@ -801,7 +801,6 @@ for (PATH of ['core-js-pure', 'core-js']) { ok(load(NS, 'symbol/custom-matcher')); ok(load(NS, 'symbol/is-registered-symbol')(1) === false); ok(load(NS, 'symbol/is-well-known-symbol')(1) === false); - ok(load(NS, 'symbol/is-well-known')(1) === false); ok(load(NS, 'symbol/matcher')); ok(load(NS, 'symbol/observable')); ok(load(NS, 'weak-map/delete-all')(new WeakMap(), [], {}) === false); @@ -922,7 +921,6 @@ for (PATH of ['core-js-pure', 'core-js']) { load('proposals/string-replace-all'); load('proposals/string-replace-all-stage-4'); load('proposals/symbol-description'); - load('proposals/symbol-predicates'); load('proposals/symbol-predicates-v2'); load('proposals/url'); load('proposals/using-statement'); diff --git a/tests/unit-global/esnext.symbol.is-well-known.js b/tests/unit-global/esnext.symbol.is-well-known.js deleted file mode 100644 index f770e6f8f45c..000000000000 --- a/tests/unit-global/esnext.symbol.is-well-known.js +++ /dev/null @@ -1,23 +0,0 @@ -QUnit.test('Symbol.isWellKnown', assert => { - const { isWellKnown } = Symbol; - assert.isFunction(isWellKnown, 'Symbol.isWellKnown is function'); - assert.nonEnumerable(Symbol, 'isWellKnown'); - assert.arity(isWellKnown, 1, 'Symbol.isWellKnown arity is 1'); - assert.name(isWellKnown, 'isWellKnownSymbol', 'Symbol.isWellKnown.name is "isWellKnownSymbol"'); - assert.looksNative(isWellKnown, 'isWellKnown looks like native'); - - assert.true(isWellKnown(Symbol.iterator), 'registered-1'); - assert.true(isWellKnown(Object(Symbol.iterator)), 'registered-2, boxed'); - assert.true(isWellKnown(Symbol.matcher), 'registered-3'); - assert.true(isWellKnown(Object(Symbol.matcher)), 'registered-4, boxed'); - const symbol = Symbol('Symbol.isWellKnown test'); - assert.false(isWellKnown(symbol), 'non-registered'); - assert.false(isWellKnown(Object(symbol)), 'non-registered, boxed'); - assert.false(isWellKnown(1), '1'); - assert.false(isWellKnown(true), 'true'); - assert.false(isWellKnown('1'), 'string'); - assert.false(isWellKnown(null), 'null'); - assert.false(isWellKnown(), 'undefined'); - assert.false(isWellKnown({}), 'object'); - assert.false(isWellKnown([]), 'array'); -}); diff --git a/tests/unit-pure/esnext.symbol.is-well-known.js b/tests/unit-pure/esnext.symbol.is-well-known.js deleted file mode 100644 index 6750e4e999ab..000000000000 --- a/tests/unit-pure/esnext.symbol.is-well-known.js +++ /dev/null @@ -1,23 +0,0 @@ -import Symbol from 'core-js-pure/full/symbol'; - -QUnit.test('Symbol.isWellKnown', assert => { - const { isWellKnown } = Symbol; - assert.isFunction(isWellKnown, 'Symbol.isWellKnown is function'); - assert.arity(isWellKnown, 1, 'Symbol.isWellKnown arity is 1'); - assert.name(isWellKnown, 'isWellKnownSymbol', 'Symbol.isWellKnown.name is "isWellKnownSymbol"'); - - assert.true(isWellKnown(Symbol.iterator), 'registered-1'); - assert.true(isWellKnown(Object(Symbol.iterator)), 'registered-2, boxed'); - assert.true(isWellKnown(Symbol.matcher), 'registered-3'); - assert.true(isWellKnown(Object(Symbol.matcher)), 'registered-4, boxed'); - const symbol = Symbol('Symbol.isWellKnown test'); - assert.false(isWellKnown(symbol), 'non-registered'); - assert.false(isWellKnown(Object(symbol)), 'non-registered, boxed'); - assert.false(isWellKnown(1), '1'); - assert.false(isWellKnown(true), 'true'); - assert.false(isWellKnown('1'), 'string'); - assert.false(isWellKnown(null), 'null'); - assert.false(isWellKnown(), 'undefined'); - assert.false(isWellKnown({}), 'object'); - assert.false(isWellKnown([]), 'array'); -}); From 506c5d5e9189c64dc8946c135a626309cf15971f Mon Sep 17 00:00:00 2001 From: Denis Pushkarev Date: Wed, 4 Oct 2023 02:56:22 +0700 Subject: [PATCH 054/428] drop `esnext.bigint.range` (obsolete) --- packages/core-js-compat/src/data.mjs | 3 - .../src/modules-by-versions.mjs | 1 - packages/core-js/full/bigint/index.js | 6 -- packages/core-js/full/bigint/range.js | 6 -- .../core-js/modules/esnext.bigint.range.js | 15 ----- packages/core-js/proposals/number-range.js | 1 - tests/compat-data/tests-coverage.mjs | 1 - tests/entries/content.mjs | 1 - tests/entries/unit.mjs | 2 - tests/unit-global/esnext.bigint.range.js | 61 ------------------- tests/unit-pure/esnext.bigint.range.js | 61 ------------------- 11 files changed, 158 deletions(-) delete mode 100644 packages/core-js/full/bigint/index.js delete mode 100644 packages/core-js/full/bigint/range.js delete mode 100644 packages/core-js/modules/esnext.bigint.range.js delete mode 100644 tests/unit-global/esnext.bigint.range.js delete mode 100644 tests/unit-pure/esnext.bigint.range.js diff --git a/packages/core-js-compat/src/data.mjs b/packages/core-js-compat/src/data.mjs index 53c766731096..44838d6f362a 100644 --- a/packages/core-js-compat/src/data.mjs +++ b/packages/core-js-compat/src/data.mjs @@ -2413,9 +2413,6 @@ export const data = { }, 'esnext.async-iterator.to-array': { }, - // TODO: Remove from `core-js@4` - 'esnext.bigint.range': { - }, 'esnext.composite-key': { }, 'esnext.composite-symbol': { diff --git a/packages/core-js-compat/src/modules-by-versions.mjs b/packages/core-js-compat/src/modules-by-versions.mjs index 783cc342199c..dd07fd23f13a 100644 --- a/packages/core-js-compat/src/modules-by-versions.mjs +++ b/packages/core-js-compat/src/modules-by-versions.mjs @@ -57,7 +57,6 @@ export default { ], 3.8: [ 'esnext.array.unique-by', - 'esnext.bigint.range', 'esnext.number.range', ], 3.9: [ diff --git a/packages/core-js/full/bigint/index.js b/packages/core-js/full/bigint/index.js deleted file mode 100644 index f00d83540ed0..000000000000 --- a/packages/core-js/full/bigint/index.js +++ /dev/null @@ -1,6 +0,0 @@ -'use strict'; -require('../../modules/es.object.to-string'); -require('../../modules/esnext.bigint.range'); -var BigInt = require('../../internals/path').BigInt; - -module.exports = BigInt; diff --git a/packages/core-js/full/bigint/range.js b/packages/core-js/full/bigint/range.js deleted file mode 100644 index dac0848675f1..000000000000 --- a/packages/core-js/full/bigint/range.js +++ /dev/null @@ -1,6 +0,0 @@ -'use strict'; -require('../../modules/es.object.to-string'); -require('../../modules/esnext.bigint.range'); -var BigInt = require('../../internals/path').BigInt; - -module.exports = BigInt && BigInt.range; diff --git a/packages/core-js/modules/esnext.bigint.range.js b/packages/core-js/modules/esnext.bigint.range.js deleted file mode 100644 index 1e86869ff8ba..000000000000 --- a/packages/core-js/modules/esnext.bigint.range.js +++ /dev/null @@ -1,15 +0,0 @@ -'use strict'; -/* eslint-disable es/no-bigint -- safe */ -var $ = require('../internals/export'); -var NumericRangeIterator = require('../internals/numeric-range-iterator'); - -// `BigInt.range` method -// https://github.com/tc39/proposal-Number.range -// TODO: Remove from `core-js@4` -if (typeof BigInt == 'function') { - $({ target: 'BigInt', stat: true, forced: true }, { - range: function range(start, end, option) { - return new NumericRangeIterator(start, end, option, 'bigint', BigInt(0), BigInt(1)); - } - }); -} diff --git a/packages/core-js/proposals/number-range.js b/packages/core-js/proposals/number-range.js index 6483292a242e..83c463d4ed12 100644 --- a/packages/core-js/proposals/number-range.js +++ b/packages/core-js/proposals/number-range.js @@ -1,4 +1,3 @@ 'use strict'; // https://github.com/tc39/proposal-Number.range -require('../modules/esnext.bigint.range'); require('../modules/esnext.number.range'); diff --git a/tests/compat-data/tests-coverage.mjs b/tests/compat-data/tests-coverage.mjs index 813056f52fe8..e4bb34daac83 100644 --- a/tests/compat-data/tests-coverage.mjs +++ b/tests/compat-data/tests-coverage.mjs @@ -15,7 +15,6 @@ const ignore = new Set([ 'es.set', 'es.weak-map', 'es.weak-set', - 'esnext.bigint.range', 'esnext.iterator.sliding', 'esnext.map.emplace', 'esnext.map.update-or-insert', diff --git a/tests/entries/content.mjs b/tests/entries/content.mjs index 540eeb6b0b8c..7a2276de6224 100644 --- a/tests/entries/content.mjs +++ b/tests/entries/content.mjs @@ -104,7 +104,6 @@ equal('core-js/full', allModules); superset('core-js/full/array', /^(?:es|esnext)\.array\./); superset('core-js/full/array-buffer', /^(?:es|esnext)\.array-buffer\./); superset('core-js/full/async-iterator', /^(?:es|esnext)\.async-iterator\./); -superset('core-js/full/bigint', /^(?:es|esnext)\.bigint\./); superset('core-js/full/data-view', /^(?:es|esnext)\.data-view\./); superset('core-js/full/date', /^(?:es|esnext)\.date\./); superset('core-js/full/dom-collections', /^web\.dom-collections\./); diff --git a/tests/entries/unit.mjs b/tests/entries/unit.mjs index fedba6ebd8c2..0a0a9c7248ee 100644 --- a/tests/entries/unit.mjs +++ b/tests/entries/unit.mjs @@ -724,8 +724,6 @@ for (PATH of ['core-js-pure', 'core-js']) { ok(typeof load(NS, 'array/unique-by') == 'function'); ok(typeof load(NS, 'array/virtual/filter-reject') == 'function'); ok(typeof load(NS, 'array/virtual/unique-by') == 'function'); - load(NS, 'bigint/range'); - load(NS, 'bigint'); load(NS, 'data-view/get-uint8-clamped'); load(NS, 'data-view/set-uint8-clamped'); ok(typeof load(NS, 'composite-key')({}, 1, {}) === 'object'); diff --git a/tests/unit-global/esnext.bigint.range.js b/tests/unit-global/esnext.bigint.range.js deleted file mode 100644 index feabd5dfa5e5..000000000000 --- a/tests/unit-global/esnext.bigint.range.js +++ /dev/null @@ -1,61 +0,0 @@ -/* eslint-disable es/no-bigint -- safe */ -if (typeof BigInt == 'function') QUnit.test('BigInt.range', assert => { - const { range } = BigInt; - const { from } = Array; - assert.isFunction(range); - assert.name(range, 'range'); - assert.arity(range, 3); - assert.looksNative(range); - assert.nonEnumerable(BigInt, 'range'); - - let iterator = range(BigInt(1), BigInt(2)); - - assert.isIterator(iterator); - assert.isIterable(iterator); - assert.deepEqual(iterator.next(), { - value: BigInt(1), - done: false, - }); - assert.deepEqual(iterator.next(), { - value: undefined, - done: true, - }); - - assert.deepEqual(from(range(BigInt(-1), BigInt(5))), [BigInt(-1), BigInt(0), BigInt(1), BigInt(2), BigInt(3), BigInt(4)]); - assert.deepEqual(from(range(BigInt(-5), BigInt(1))), [BigInt(-5), BigInt(-4), BigInt(-3), BigInt(-2), BigInt(-1), BigInt(0)]); - assert.deepEqual( - from(range(BigInt('9007199254740991'), BigInt('9007199254740992'), { inclusive: true })), - [BigInt('9007199254740991'), BigInt('9007199254740992')], - ); - assert.deepEqual(from(range(BigInt(0), BigInt(0))), []); - assert.deepEqual(from(range(BigInt(0), BigInt(-5), BigInt(1))), []); - - iterator = range(BigInt(1), BigInt(3)); - assert.deepEqual(iterator.start, BigInt(1)); - assert.deepEqual(iterator.end, BigInt(3)); - assert.deepEqual(iterator.step, BigInt(1)); - assert.false(iterator.inclusive); - - iterator = range(BigInt(-1), BigInt(-3), { inclusive: true }); - assert.deepEqual(iterator.start, BigInt(-1)); - assert.deepEqual(iterator.end, BigInt(-3)); - assert.same(iterator.step, BigInt(-1)); - assert.true(iterator.inclusive); - - iterator = range(BigInt(-1), BigInt(-3), { step: BigInt(4), inclusive() { /* empty */ } }); - assert.same(iterator.start, BigInt(-1)); - assert.same(iterator.end, BigInt(-3)); - assert.same(iterator.step, BigInt(4)); - assert.true(iterator.inclusive); - - iterator = range(BigInt(0), BigInt(5)); - assert.throws(() => Object.getOwnPropertyDescriptor(iterator, 'start').get.call({}), TypeError); - - assert.throws(() => range(Infinity, BigInt(10), BigInt(0)), TypeError); - assert.throws(() => range(-Infinity, BigInt(10), BigInt(0)), TypeError); - assert.throws(() => range(BigInt(0), BigInt(10), Infinity), TypeError); - assert.throws(() => range(BigInt(0), BigInt(10), { step: Infinity }), TypeError); - - assert.throws(() => range({}, BigInt(1)), TypeError); - assert.throws(() => range(BigInt(1), {}), TypeError); -}); diff --git a/tests/unit-pure/esnext.bigint.range.js b/tests/unit-pure/esnext.bigint.range.js deleted file mode 100644 index bf15f9b409dd..000000000000 --- a/tests/unit-pure/esnext.bigint.range.js +++ /dev/null @@ -1,61 +0,0 @@ -/* eslint-disable es/no-bigint -- safe */ -import from from 'core-js-pure/es/array/from'; -import range from 'core-js-pure/full/bigint/range'; - -if (typeof BigInt == 'function') QUnit.test('BigInt.range', assert => { - assert.isFunction(range); - assert.name(range, 'range'); - assert.arity(range, 3); - - let iterator = range(BigInt(1), BigInt(2)); - - assert.isIterator(iterator); - assert.isIterable(iterator); - assert.deepEqual(iterator.next(), { - value: BigInt(1), - done: false, - }); - assert.deepEqual(iterator.next(), { - value: undefined, - done: true, - }); - - assert.deepEqual(from(range(BigInt(-1), BigInt(5))), [BigInt(-1), BigInt(0), BigInt(1), BigInt(2), BigInt(3), BigInt(4)]); - assert.deepEqual(from(range(BigInt(-5), BigInt(1))), [BigInt(-5), BigInt(-4), BigInt(-3), BigInt(-2), BigInt(-1), BigInt(0)]); - assert.deepEqual( - from(range(BigInt('9007199254740991'), BigInt('9007199254740992'), { inclusive: true })), - [BigInt('9007199254740991'), BigInt('9007199254740992')], - ); - assert.deepEqual(from(range(BigInt(0), BigInt(0))), []); - assert.deepEqual(from(range(BigInt(0), BigInt(-5), BigInt(1))), []); - - iterator = range(BigInt(1), BigInt(3)); - assert.deepEqual(iterator.start, BigInt(1)); - assert.deepEqual(iterator.end, BigInt(3)); - assert.deepEqual(iterator.step, BigInt(1)); - assert.false(iterator.inclusive); - - iterator = range(BigInt(-1), BigInt(-3), { inclusive: true }); - assert.deepEqual(iterator.start, BigInt(-1)); - assert.deepEqual(iterator.end, BigInt(-3)); - assert.same(iterator.step, BigInt(-1)); - assert.true(iterator.inclusive); - - iterator = range(BigInt(-1), BigInt(-3), { step: BigInt(4), inclusive() { /* empty */ } }); - assert.same(iterator.start, BigInt(-1)); - assert.same(iterator.end, BigInt(-3)); - assert.same(iterator.step, BigInt(4)); - assert.true(iterator.inclusive); - - iterator = range(BigInt(0), BigInt(5)); - // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe - assert.throws(() => Object.getOwnPropertyDescriptor(iterator, 'start').get.call({}), TypeError); - - assert.throws(() => range(Infinity, BigInt(10), BigInt(0)), TypeError); - assert.throws(() => range(-Infinity, BigInt(10), BigInt(0)), TypeError); - assert.throws(() => range(BigInt(0), BigInt(10), Infinity), TypeError); - assert.throws(() => range(BigInt(0), BigInt(10), { step: Infinity }), TypeError); - - assert.throws(() => range({}, BigInt(1)), TypeError); - assert.throws(() => range(BigInt(1), {}), TypeError); -}); From 92bfc58423ed2f1a0a3be4b8b41cb530753824bc Mon Sep 17 00:00:00 2001 From: Denis Pushkarev Date: Wed, 4 Oct 2023 03:07:18 +0700 Subject: [PATCH 055/428] drop `esnext.number.range` (obsolete) --- packages/core-js-compat/src/data.mjs | 3 - .../src/modules-by-versions.mjs | 1 - packages/core-js/full/number/index.js | 8 +- packages/core-js/full/number/range.js | 6 - .../internals/numeric-range-iterator.js | 106 ------------------ .../core-js/modules/esnext.iterator.range.js | 106 +++++++++++++++++- .../core-js/modules/esnext.number.range.js | 12 -- packages/core-js/proposals/number-range.js | 3 - packages/core-js/stage/1.js | 1 - tests/compat-data/tests-coverage.mjs | 1 - tests/entries/unit.mjs | 2 - tests/unit-global/esnext.number.range.js | 72 ------------ tests/unit-pure/esnext.number.range.js | 71 ------------ 13 files changed, 106 insertions(+), 286 deletions(-) delete mode 100644 packages/core-js/full/number/range.js delete mode 100644 packages/core-js/internals/numeric-range-iterator.js delete mode 100644 packages/core-js/modules/esnext.number.range.js delete mode 100644 packages/core-js/proposals/number-range.js delete mode 100644 tests/unit-global/esnext.number.range.js delete mode 100644 tests/unit-pure/esnext.number.range.js diff --git a/packages/core-js-compat/src/data.mjs b/packages/core-js-compat/src/data.mjs index 44838d6f362a..f68d07e88180 100644 --- a/packages/core-js-compat/src/data.mjs +++ b/packages/core-js-compat/src/data.mjs @@ -2578,9 +2578,6 @@ export const data = { 'esnext.number.from-string': { }, // TODO: Remove from `core-js@4` - 'esnext.number.range': { - }, - // TODO: Remove from `core-js@4` 'esnext.object.group-by': null, // TODO: Remove this module from `core-js@4` since it's split to modules listed below 'esnext.observable': { diff --git a/packages/core-js-compat/src/modules-by-versions.mjs b/packages/core-js-compat/src/modules-by-versions.mjs index dd07fd23f13a..6e9ed2148ff8 100644 --- a/packages/core-js-compat/src/modules-by-versions.mjs +++ b/packages/core-js-compat/src/modules-by-versions.mjs @@ -57,7 +57,6 @@ export default { ], 3.8: [ 'esnext.array.unique-by', - 'esnext.number.range', ], 3.9: [ 'esnext.typed-array.unique-by', diff --git a/packages/core-js/full/number/index.js b/packages/core-js/full/number/index.js index 95e434685600..f4934a2120f7 100644 --- a/packages/core-js/full/number/index.js +++ b/packages/core-js/full/number/index.js @@ -1,9 +1,7 @@ 'use strict'; var parent = require('../../actual/number'); - -module.exports = parent; - require('../../modules/es.object.to-string'); -require('../../modules/esnext.number.clamp'); require('../../modules/esnext.number.from-string'); -require('../../modules/esnext.number.range'); +require('../../modules/esnext.number.clamp'); + +module.exports = parent; diff --git a/packages/core-js/full/number/range.js b/packages/core-js/full/number/range.js deleted file mode 100644 index 5b02c43c7b6b..000000000000 --- a/packages/core-js/full/number/range.js +++ /dev/null @@ -1,6 +0,0 @@ -'use strict'; -require('../../modules/es.object.to-string'); -require('../../modules/esnext.number.range'); -var path = require('../../internals/path'); - -module.exports = path.Number.range; diff --git a/packages/core-js/internals/numeric-range-iterator.js b/packages/core-js/internals/numeric-range-iterator.js deleted file mode 100644 index 17830a240cb5..000000000000 --- a/packages/core-js/internals/numeric-range-iterator.js +++ /dev/null @@ -1,106 +0,0 @@ -'use strict'; -var InternalStateModule = require('../internals/internal-state'); -var createIteratorConstructor = require('../internals/iterator-create-constructor'); -var createIterResultObject = require('../internals/create-iter-result-object'); -var isNullOrUndefined = require('../internals/is-null-or-undefined'); -var isObject = require('../internals/is-object'); -var defineBuiltInAccessor = require('../internals/define-built-in-accessor'); -var DESCRIPTORS = require('../internals/descriptors'); - -var INCORRECT_RANGE = 'Incorrect Iterator.range arguments'; -var NUMERIC_RANGE_ITERATOR = 'NumericRangeIterator'; - -var setInternalState = InternalStateModule.set; -var getInternalState = InternalStateModule.getterFor(NUMERIC_RANGE_ITERATOR); - -var $RangeError = RangeError; -var $TypeError = TypeError; - -var $RangeIterator = createIteratorConstructor(function NumericRangeIterator(start, end, option, type, zero, one) { - // TODO: Drop the first `typeof` check after removing legacy methods in `core-js@4` - if (typeof start != type || (end !== Infinity && end !== -Infinity && typeof end != type)) { - throw new $TypeError(INCORRECT_RANGE); - } - if (start === Infinity || start === -Infinity) { - throw new $RangeError(INCORRECT_RANGE); - } - var ifIncrease = end > start; - var inclusiveEnd = false; - var step; - if (option === undefined) { - step = undefined; - } else if (isObject(option)) { - step = option.step; - inclusiveEnd = !!option.inclusive; - } else if (typeof option == type) { - step = option; - } else { - throw new $TypeError(INCORRECT_RANGE); - } - if (isNullOrUndefined(step)) { - step = ifIncrease ? one : -one; - } - if (typeof step != type) { - throw new $TypeError(INCORRECT_RANGE); - } - if (step === Infinity || step === -Infinity || (step === zero && start !== end)) { - throw new $RangeError(INCORRECT_RANGE); - } - // eslint-disable-next-line no-self-compare -- NaN check - var hitsEnd = start !== start || end !== end || step !== step || (end > start) !== (step > zero); - setInternalState(this, { - type: NUMERIC_RANGE_ITERATOR, - start: start, - end: end, - step: step, - inclusive: inclusiveEnd, - hitsEnd: hitsEnd, - currentCount: zero, - zero: zero - }); - if (!DESCRIPTORS) { - this.start = start; - this.end = end; - this.step = step; - this.inclusive = inclusiveEnd; - } -}, NUMERIC_RANGE_ITERATOR, function next() { - var state = getInternalState(this); - if (state.hitsEnd) return createIterResultObject(undefined, true); - var start = state.start; - var end = state.end; - var step = state.step; - var currentYieldingValue = start + (step * state.currentCount++); - if (currentYieldingValue === end) state.hitsEnd = true; - var inclusiveEnd = state.inclusive; - var endCondition; - if (end > start) { - endCondition = inclusiveEnd ? currentYieldingValue > end : currentYieldingValue >= end; - } else { - endCondition = inclusiveEnd ? end > currentYieldingValue : end >= currentYieldingValue; - } - if (endCondition) { - state.hitsEnd = true; - return createIterResultObject(undefined, true); - } return createIterResultObject(currentYieldingValue, false); -}); - -var addGetter = function (key) { - defineBuiltInAccessor($RangeIterator.prototype, key, { - get: function () { - return getInternalState(this)[key]; - }, - set: function () { /* empty */ }, - configurable: true, - enumerable: false - }); -}; - -if (DESCRIPTORS) { - addGetter('start'); - addGetter('end'); - addGetter('inclusive'); - addGetter('step'); -} - -module.exports = $RangeIterator; diff --git a/packages/core-js/modules/esnext.iterator.range.js b/packages/core-js/modules/esnext.iterator.range.js index 876940b1f32a..d770bba60b6d 100644 --- a/packages/core-js/modules/esnext.iterator.range.js +++ b/packages/core-js/modules/esnext.iterator.range.js @@ -1,16 +1,116 @@ 'use strict'; /* eslint-disable es/no-bigint -- safe */ var $ = require('../internals/export'); -var NumericRangeIterator = require('../internals/numeric-range-iterator'); +var InternalStateModule = require('../internals/internal-state'); +var createIteratorConstructor = require('../internals/iterator-create-constructor'); +var createIterResultObject = require('../internals/create-iter-result-object'); +var isNullOrUndefined = require('../internals/is-null-or-undefined'); +var isObject = require('../internals/is-object'); +var defineBuiltInAccessor = require('../internals/define-built-in-accessor'); +var DESCRIPTORS = require('../internals/descriptors'); +var INCORRECT_RANGE = 'Incorrect Iterator.range arguments'; +var NUMERIC_RANGE_ITERATOR = 'NumericRangeIterator'; + +var setInternalState = InternalStateModule.set; +var getInternalState = InternalStateModule.getterFor(NUMERIC_RANGE_ITERATOR); + +var $RangeError = RangeError; var $TypeError = TypeError; +var $NumericRangeIterator = createIteratorConstructor(function NumericRangeIterator(start, end, option, type, zero, one) { + // TODO: Drop the first `typeof` check after removing legacy methods in `core-js@4` + if (typeof start != type || (end !== Infinity && end !== -Infinity && typeof end != type)) { + throw new $TypeError(INCORRECT_RANGE); + } + if (start === Infinity || start === -Infinity) { + throw new $RangeError(INCORRECT_RANGE); + } + var ifIncrease = end > start; + var inclusiveEnd = false; + var step; + if (option === undefined) { + step = undefined; + } else if (isObject(option)) { + step = option.step; + inclusiveEnd = !!option.inclusive; + } else if (typeof option == type) { + step = option; + } else { + throw new $TypeError(INCORRECT_RANGE); + } + if (isNullOrUndefined(step)) { + step = ifIncrease ? one : -one; + } + if (typeof step != type) { + throw new $TypeError(INCORRECT_RANGE); + } + if (step === Infinity || step === -Infinity || (step === zero && start !== end)) { + throw new $RangeError(INCORRECT_RANGE); + } + // eslint-disable-next-line no-self-compare -- NaN check + var hitsEnd = start !== start || end !== end || step !== step || (end > start) !== (step > zero); + setInternalState(this, { + type: NUMERIC_RANGE_ITERATOR, + start: start, + end: end, + step: step, + inclusive: inclusiveEnd, + hitsEnd: hitsEnd, + currentCount: zero, + zero: zero + }); + if (!DESCRIPTORS) { + this.start = start; + this.end = end; + this.step = step; + this.inclusive = inclusiveEnd; + } +}, NUMERIC_RANGE_ITERATOR, function next() { + var state = getInternalState(this); + if (state.hitsEnd) return createIterResultObject(undefined, true); + var start = state.start; + var end = state.end; + var step = state.step; + var currentYieldingValue = start + (step * state.currentCount++); + if (currentYieldingValue === end) state.hitsEnd = true; + var inclusiveEnd = state.inclusive; + var endCondition; + if (end > start) { + endCondition = inclusiveEnd ? currentYieldingValue > end : currentYieldingValue >= end; + } else { + endCondition = inclusiveEnd ? end > currentYieldingValue : end >= currentYieldingValue; + } + if (endCondition) { + state.hitsEnd = true; + return createIterResultObject(undefined, true); + } return createIterResultObject(currentYieldingValue, false); +}); + +var addGetter = function (key) { + defineBuiltInAccessor($NumericRangeIterator.prototype, key, { + get: function () { + return getInternalState(this)[key]; + }, + set: function () { /* empty */ }, + configurable: true, + enumerable: false + }); +}; + +if (DESCRIPTORS) { + addGetter('start'); + addGetter('end'); + addGetter('inclusive'); + addGetter('step'); +} + // `Iterator.range` method // https://github.com/tc39/proposal-Number.range $({ target: 'Iterator', stat: true, forced: true }, { range: function range(start, end, option) { - if (typeof start == 'number') return new NumericRangeIterator(start, end, option, 'number', 0, 1); - if (typeof start == 'bigint') return new NumericRangeIterator(start, end, option, 'bigint', BigInt(0), BigInt(1)); + if (typeof start == 'number') return new $NumericRangeIterator(start, end, option, 'number', 0, 1); + if (typeof start == 'bigint') return new $NumericRangeIterator(start, end, option, 'bigint', BigInt(0), BigInt(1)); throw new $TypeError('Incorrect Iterator.range arguments'); } }); diff --git a/packages/core-js/modules/esnext.number.range.js b/packages/core-js/modules/esnext.number.range.js deleted file mode 100644 index 5f44694be3e5..000000000000 --- a/packages/core-js/modules/esnext.number.range.js +++ /dev/null @@ -1,12 +0,0 @@ -'use strict'; -var $ = require('../internals/export'); -var NumericRangeIterator = require('../internals/numeric-range-iterator'); - -// `Number.range` method -// https://github.com/tc39/proposal-Number.range -// TODO: Remove from `core-js@4` -$({ target: 'Number', stat: true, forced: true }, { - range: function range(start, end, option) { - return new NumericRangeIterator(start, end, option, 'number', 0, 1); - } -}); diff --git a/packages/core-js/proposals/number-range.js b/packages/core-js/proposals/number-range.js deleted file mode 100644 index 83c463d4ed12..000000000000 --- a/packages/core-js/proposals/number-range.js +++ /dev/null @@ -1,3 +0,0 @@ -'use strict'; -// https://github.com/tc39/proposal-Number.range -require('../modules/esnext.number.range'); diff --git a/packages/core-js/stage/1.js b/packages/core-js/stage/1.js index bee829e1f4f9..b631f7ff64cf 100644 --- a/packages/core-js/stage/1.js +++ b/packages/core-js/stage/1.js @@ -19,7 +19,6 @@ require('../proposals/array-from-async'); require('../proposals/map-upsert'); // TODO: Obsolete versions, remove from `core-js@4`: require('../proposals/math-clamp'); -require('../proposals/number-range'); require('../proposals/pattern-matching'); require('../proposals/string-replace-all'); diff --git a/tests/compat-data/tests-coverage.mjs b/tests/compat-data/tests-coverage.mjs index e4bb34daac83..3720d7093cf7 100644 --- a/tests/compat-data/tests-coverage.mjs +++ b/tests/compat-data/tests-coverage.mjs @@ -20,7 +20,6 @@ const ignore = new Set([ 'esnext.map.update-or-insert', 'esnext.map.upsert', 'esnext.math.clamp', - 'esnext.number.range', 'esnext.observable', 'esnext.observable.constructor', 'esnext.observable.from', diff --git a/tests/entries/unit.mjs b/tests/entries/unit.mjs index 0a0a9c7248ee..cd3c8e8b2bdd 100644 --- a/tests/entries/unit.mjs +++ b/tests/entries/unit.mjs @@ -768,7 +768,6 @@ for (PATH of ['core-js-pure', 'core-js']) { ok(load(NS, 'number/clamp')(6, 2, 4) === 4); ok(load(NS, 'number/virtual/clamp').call(6, 2, 4) === 4); ok(load(NS, 'number/from-string')('12', 3) === 5); - ok(load(NS, 'number/range')(1, 2).next().value === 1); ok('from' in load(NS, 'observable')); ok(typeof load(NS, 'reflect/define-metadata') == 'function'); ok(typeof load(NS, 'reflect/delete-metadata') == 'function'); @@ -891,7 +890,6 @@ for (PATH of ['core-js-pure', 'core-js']) { load('proposals/math-signbit'); load('proposals/math-sum'); load('proposals/number-from-string'); - load('proposals/number-range'); load('proposals/object-from-entries'); load('proposals/object-getownpropertydescriptors'); load('proposals/object-values-entries'); diff --git a/tests/unit-global/esnext.number.range.js b/tests/unit-global/esnext.number.range.js deleted file mode 100644 index 0551e3fb1ea1..000000000000 --- a/tests/unit-global/esnext.number.range.js +++ /dev/null @@ -1,72 +0,0 @@ -import { MAX_SAFE_INTEGER } from '../helpers/constants.js'; - -QUnit.test('Number.range', assert => { - const { range } = Number; - const { from } = Array; - assert.isFunction(range); - assert.name(range, 'range'); - assert.arity(range, 3); - assert.looksNative(range); - assert.nonEnumerable(Number, 'range'); - - let iterator = range(1, 2); - - assert.isIterator(iterator); - assert.isIterable(iterator); - assert.deepEqual(iterator.next(), { - value: 1, - done: false, - }); - assert.deepEqual(iterator.next(), { - value: undefined, - done: true, - }); - - assert.deepEqual(from(range(-1, 5)), [-1, 0, 1, 2, 3, 4]); - assert.deepEqual(from(range(-5, 1)), [-5, -4, -3, -2, -1, 0]); - assert.deepEqual( - from(range(0, 1, 0.1)), - [0, 0.1, 0.2, 0.30000000000000004, 0.4, 0.5, 0.6000000000000001, 0.7000000000000001, 0.8, 0.9], - ); - assert.deepEqual( - from(range(MAX_SAFE_INTEGER, MAX_SAFE_INTEGER + 1, { inclusive: true })), - [MAX_SAFE_INTEGER, MAX_SAFE_INTEGER + 1], - ); - assert.deepEqual(from(range(0, 0)), []); - assert.deepEqual(from(range(0, -5, 1)), []); - - assert.deepEqual(from(range(NaN, 0)), []); - assert.deepEqual(from(range(0, NaN)), []); - assert.deepEqual(from(range(NaN, NaN)), []); - assert.deepEqual(from(range(0, 0, { step: NaN })), []); - assert.deepEqual(from(range(0, 5, NaN)), []); - - iterator = range(1, 3); - assert.deepEqual(iterator.start, 1); - assert.deepEqual(iterator.end, 3); - assert.deepEqual(iterator.step, 1); - assert.false(iterator.inclusive); - - iterator = range(-1, -3, { inclusive: true }); - assert.deepEqual(iterator.start, -1); - assert.deepEqual(iterator.end, -3); - assert.same(iterator.step, -1); - assert.true(iterator.inclusive); - - iterator = range(-1, -3, { step: 4, inclusive() { /* empty */ } }); - assert.same(iterator.start, -1); - assert.same(iterator.end, -3); - assert.same(iterator.step, 4); - assert.true(iterator.inclusive); - - iterator = range(0, 5); - assert.throws(() => Object.getOwnPropertyDescriptor(iterator, 'start').get.call({}), TypeError); - - assert.throws(() => range(Infinity, 10, 0), RangeError); - assert.throws(() => range(-Infinity, 10, 0), RangeError); - assert.throws(() => range(0, 10, Infinity), RangeError); - assert.throws(() => range(0, 10, { step: Infinity }), RangeError); - - assert.throws(() => range({}, 1), TypeError); - assert.throws(() => range(1, {}), TypeError); -}); diff --git a/tests/unit-pure/esnext.number.range.js b/tests/unit-pure/esnext.number.range.js deleted file mode 100644 index 994b9b9912dd..000000000000 --- a/tests/unit-pure/esnext.number.range.js +++ /dev/null @@ -1,71 +0,0 @@ -import { MAX_SAFE_INTEGER } from '../helpers/constants.js'; -import from from 'core-js-pure/es/array/from'; -import range from 'core-js-pure/full/number/range'; - -QUnit.test('range', assert => { - assert.isFunction(range); - assert.name(range, 'range'); - assert.arity(range, 3); - - let iterator = range(1, 2); - - assert.isIterator(iterator); - assert.isIterable(iterator); - assert.deepEqual(iterator.next(), { - value: 1, - done: false, - }); - assert.deepEqual(iterator.next(), { - value: undefined, - done: true, - }); - - assert.deepEqual(from(range(-1, 5)), [-1, 0, 1, 2, 3, 4]); - assert.deepEqual(from(range(-5, 1)), [-5, -4, -3, -2, -1, 0]); - assert.deepEqual( - from(range(0, 1, 0.1)), - [0, 0.1, 0.2, 0.30000000000000004, 0.4, 0.5, 0.6000000000000001, 0.7000000000000001, 0.8, 0.9], - ); - assert.deepEqual( - from(range(MAX_SAFE_INTEGER, MAX_SAFE_INTEGER + 1, { inclusive: true })), - [MAX_SAFE_INTEGER, MAX_SAFE_INTEGER + 1], - ); - assert.deepEqual(from(range(0, 0)), []); - assert.deepEqual(from(range(0, -5, 1)), []); - - assert.deepEqual(from(range(NaN, 0)), []); - assert.deepEqual(from(range(0, NaN)), []); - assert.deepEqual(from(range(NaN, NaN)), []); - assert.deepEqual(from(range(0, 0, { step: NaN })), []); - assert.deepEqual(from(range(0, 5, NaN)), []); - - iterator = range(1, 3); - assert.deepEqual(iterator.start, 1); - assert.deepEqual(iterator.end, 3); - assert.deepEqual(iterator.step, 1); - assert.false(iterator.inclusive); - - iterator = range(-1, -3, { inclusive: true }); - assert.deepEqual(iterator.start, -1); - assert.deepEqual(iterator.end, -3); - assert.same(iterator.step, -1); - assert.true(iterator.inclusive); - - iterator = range(-1, -3, { step: 4, inclusive() { /* empty */ } }); - assert.same(iterator.start, -1); - assert.same(iterator.end, -3); - assert.same(iterator.step, 4); - assert.true(iterator.inclusive); - - iterator = range(0, 5); - // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe - assert.throws(() => Object.getOwnPropertyDescriptor(iterator, 'start').get.call({}), TypeError); - - assert.throws(() => range(Infinity, 10, 0), RangeError); - assert.throws(() => range(-Infinity, 10, 0), RangeError); - assert.throws(() => range(0, 10, Infinity), RangeError); - assert.throws(() => range(0, 10, { step: Infinity }), RangeError); - - assert.throws(() => range({}, 1), TypeError); - assert.throws(() => range(1, {}), TypeError); -}); From 49880aaf8828e13a12af84dac83812aba270837f Mon Sep 17 00:00:00 2001 From: Denis Pushkarev Date: Wed, 4 Oct 2023 03:30:26 +0700 Subject: [PATCH 056/428] drop `esnext.map.update-or-insert` (obsolete) --- packages/core-js-compat/src/data.mjs | 3 -- .../src/modules-by-versions.mjs | 1 - packages/core-js/full/map/index.js | 2 - packages/core-js/full/map/update-or-insert.js | 7 ---- .../modules/esnext.map.update-or-insert.js | 10 ----- packages/core-js/proposals/map-upsert.js | 2 - scripts/bundle-package/bundle-package.mjs | 1 - tests/compat-data/tests-coverage.mjs | 1 - tests/entries/unit.mjs | 1 - .../esnext.map.update-or-insert.js | 36 ------------------ .../unit-pure/esnext.map.update-or-insert.js | 37 ------------------- 11 files changed, 101 deletions(-) delete mode 100644 packages/core-js/full/map/update-or-insert.js delete mode 100644 packages/core-js/modules/esnext.map.update-or-insert.js delete mode 100644 tests/unit-global/esnext.map.update-or-insert.js delete mode 100644 tests/unit-pure/esnext.map.update-or-insert.js diff --git a/packages/core-js-compat/src/data.mjs b/packages/core-js-compat/src/data.mjs index f68d07e88180..859b8daa410d 100644 --- a/packages/core-js-compat/src/data.mjs +++ b/packages/core-js-compat/src/data.mjs @@ -2548,9 +2548,6 @@ export const data = { 'esnext.map.update': { }, // TODO: Remove from `core-js@4` - 'esnext.map.update-or-insert': { - }, - // TODO: Remove from `core-js@4` 'esnext.map.upsert': { }, // TODO: Remove from `core-js@4` diff --git a/packages/core-js-compat/src/modules-by-versions.mjs b/packages/core-js-compat/src/modules-by-versions.mjs index 6e9ed2148ff8..487f687dd17c 100644 --- a/packages/core-js-compat/src/modules-by-versions.mjs +++ b/packages/core-js-compat/src/modules-by-versions.mjs @@ -6,7 +6,6 @@ export default { 3.2: [ 'es.promise.all-settled', 'esnext.array.is-template-object', - 'esnext.map.update-or-insert', 'esnext.symbol.async-dispose', ], 3.3: [ diff --git a/packages/core-js/full/map/index.js b/packages/core-js/full/map/index.js index 26c5cab4ca25..33f104c7d491 100644 --- a/packages/core-js/full/map/index.js +++ b/packages/core-js/full/map/index.js @@ -21,7 +21,5 @@ require('../../modules/esnext.map.some'); require('../../modules/esnext.map.update'); // TODO: remove from `core-js@4` require('../../modules/esnext.map.upsert'); -// TODO: remove from `core-js@4` -require('../../modules/esnext.map.update-or-insert'); module.exports = parent; diff --git a/packages/core-js/full/map/update-or-insert.js b/packages/core-js/full/map/update-or-insert.js deleted file mode 100644 index 299d9c3d60a0..000000000000 --- a/packages/core-js/full/map/update-or-insert.js +++ /dev/null @@ -1,7 +0,0 @@ -'use strict'; -// TODO: remove from `core-js@4` -require('../../modules/es.map'); -require('../../modules/esnext.map.update-or-insert'); -var entryUnbind = require('../../internals/entry-unbind'); - -module.exports = entryUnbind('Map', 'updateOrInsert'); diff --git a/packages/core-js/modules/esnext.map.update-or-insert.js b/packages/core-js/modules/esnext.map.update-or-insert.js deleted file mode 100644 index 05003214a811..000000000000 --- a/packages/core-js/modules/esnext.map.update-or-insert.js +++ /dev/null @@ -1,10 +0,0 @@ -'use strict'; -// TODO: remove from `core-js@4` -var $ = require('../internals/export'); -var upsert = require('../internals/map-upsert'); - -// `Map.prototype.updateOrInsert` method (replaced by `Map.prototype.emplace`) -// https://github.com/thumbsupep/proposal-upsert -$({ target: 'Map', proto: true, real: true, name: 'upsert', forced: true }, { - updateOrInsert: upsert -}); diff --git a/packages/core-js/proposals/map-upsert.js b/packages/core-js/proposals/map-upsert.js index 8d9e84dc34a4..9f8994c6d5cf 100644 --- a/packages/core-js/proposals/map-upsert.js +++ b/packages/core-js/proposals/map-upsert.js @@ -2,8 +2,6 @@ // https://github.com/tc39/proposal-upsert require('../modules/esnext.map.emplace'); // TODO: remove from `core-js@4` -require('../modules/esnext.map.update-or-insert'); -// TODO: remove from `core-js@4` require('../modules/esnext.map.upsert'); require('../modules/esnext.weak-map.emplace'); // TODO: remove from `core-js@4` diff --git a/scripts/bundle-package/bundle-package.mjs b/scripts/bundle-package/bundle-package.mjs index 1ad66cf7041f..4e14458f478b 100644 --- a/scripts/bundle-package/bundle-package.mjs +++ b/scripts/bundle-package/bundle-package.mjs @@ -59,7 +59,6 @@ await bundle(DENO ? { options: { targets: { deno: '1.0' }, exclude: [ - 'esnext.map.update-or-insert', // obsolete 'esnext.map.upsert', // obsolete 'esnext.weak-map.upsert', // obsolete ], diff --git a/tests/compat-data/tests-coverage.mjs b/tests/compat-data/tests-coverage.mjs index 3720d7093cf7..bc96ca366716 100644 --- a/tests/compat-data/tests-coverage.mjs +++ b/tests/compat-data/tests-coverage.mjs @@ -17,7 +17,6 @@ const ignore = new Set([ 'es.weak-set', 'esnext.iterator.sliding', 'esnext.map.emplace', - 'esnext.map.update-or-insert', 'esnext.map.upsert', 'esnext.math.clamp', 'esnext.observable', diff --git a/tests/entries/unit.mjs b/tests/entries/unit.mjs index cd3c8e8b2bdd..f9663e9e68d4 100644 --- a/tests/entries/unit.mjs +++ b/tests/entries/unit.mjs @@ -751,7 +751,6 @@ for (PATH of ['core-js-pure', 'core-js']) { ok(load(NS, 'map/map-keys')(new Map([[1, 2], [2, 3], [3, 4]]), it => it).size === 3); ok(load(NS, 'map/map-values')(new Map([[1, 2], [2, 3], [3, 4]]), it => it).size === 3); ok(load(NS, 'map/merge')(new Map([[1, 2], [2, 3]]), [[2, 4], [4, 5]]).size === 3); - ok(load(NS, 'map/update-or-insert')(new Map([[1, 2]]), 1, it => it ** 2, () => 42) === 4); ok(load(NS, 'map/upsert')(new Map([[1, 2]]), 1, it => it ** 2, () => 42) === 4); ok(load(NS, 'math/clamp')(6, 2, 4) === 4); ok(load(NS, 'math/deg-per-rad') === Math.PI / 180); diff --git a/tests/unit-global/esnext.map.update-or-insert.js b/tests/unit-global/esnext.map.update-or-insert.js deleted file mode 100644 index bafd82367cdf..000000000000 --- a/tests/unit-global/esnext.map.update-or-insert.js +++ /dev/null @@ -1,36 +0,0 @@ -QUnit.test('Map#updateOrInsert', assert => { - const { updateOrInsert } = Map.prototype; - assert.isFunction(updateOrInsert); - assert.arity(updateOrInsert, 2); - assert.looksNative(updateOrInsert); - assert.nonEnumerable(Map.prototype, 'updateOrInsert'); - - const map = new Map([['a', 2]]); - assert.same(map.updateOrInsert('a', function (value) { - assert.same(arguments.length, 1, 'correct number of callback arguments'); - assert.same(value, 2, 'correct value in callback'); - return value ** 2; - }, () => { - assert.avoid(); - return 3; - }), 4, 'returns a correct value'); - assert.same(map.updateOrInsert('b', value => { - assert.avoid(); - return value ** 2; - }, function () { - assert.same(arguments.length, 0, 'correct number of callback arguments'); - return 3; - }), 3, 'returns a correct value'); - assert.same(map.size, 2, 'correct size'); - assert.same(map.get('a'), 4, 'correct result #1'); - assert.same(map.get('b'), 3, 'correct result #2'); - - assert.same(new Map([['a', 2]]).updateOrInsert('b', null, () => 3), 3); - assert.same(new Map([['a', 2]]).updateOrInsert('a', value => value ** 2), 4); - - assert.throws(() => new Map().updateOrInsert('a'), TypeError); - assert.throws(() => updateOrInsert.call({}, 'a', () => { /* empty */ }, () => { /* empty */ }), TypeError); - assert.throws(() => updateOrInsert.call([], 'a', () => { /* empty */ }, () => { /* empty */ }), TypeError); - assert.throws(() => updateOrInsert.call(undefined, 'a', () => { /* empty */ }, () => { /* empty */ }), TypeError); - assert.throws(() => updateOrInsert.call(null, 'a', () => { /* empty */ }, () => { /* empty */ }), TypeError); -}); diff --git a/tests/unit-pure/esnext.map.update-or-insert.js b/tests/unit-pure/esnext.map.update-or-insert.js deleted file mode 100644 index 78969b41f7f1..000000000000 --- a/tests/unit-pure/esnext.map.update-or-insert.js +++ /dev/null @@ -1,37 +0,0 @@ -import Map from 'core-js-pure/full/map'; - -QUnit.test('Map#updateOrInsert', assert => { - const { updateOrInsert } = Map.prototype; - assert.isFunction(updateOrInsert); - assert.arity(updateOrInsert, 2); - assert.nonEnumerable(Map.prototype, 'updateOrInsert'); - - const map = new Map([['a', 2]]); - assert.same(map.updateOrInsert('a', function (value) { - assert.same(arguments.length, 1, 'correct number of callback arguments'); - assert.same(value, 2, 'correct value in callback'); - return value ** 2; - }, () => { - assert.avoid(); - return 3; - }), 4, 'returns a correct value'); - assert.same(map.updateOrInsert('b', value => { - assert.avoid(); - return value ** 2; - }, function () { - assert.same(arguments.length, 0, 'correct number of callback arguments'); - return 3; - }), 3, 'returns a correct value'); - assert.same(map.size, 2, 'correct size'); - assert.same(map.get('a'), 4, 'correct result #1'); - assert.same(map.get('b'), 3, 'correct result #2'); - - assert.same(new Map([['a', 2]]).updateOrInsert('b', null, () => 3), 3); - assert.same(new Map([['a', 2]]).updateOrInsert('a', value => value ** 2), 4); - - assert.throws(() => new Map().updateOrInsert('a'), TypeError); - assert.throws(() => updateOrInsert.call({}, 'a', () => { /* empty */ }, () => { /* empty */ }), TypeError); - assert.throws(() => updateOrInsert.call([], 'a', () => { /* empty */ }, () => { /* empty */ }), TypeError); - assert.throws(() => updateOrInsert.call(undefined, 'a', () => { /* empty */ }, () => { /* empty */ }), TypeError); - assert.throws(() => updateOrInsert.call(null, 'a', () => { /* empty */ }, () => { /* empty */ }), TypeError); -}); From 763d09abd2a36a1f1e673f647942d7fcd2179d8b Mon Sep 17 00:00:00 2001 From: Denis Pushkarev Date: Wed, 4 Oct 2023 03:44:00 +0700 Subject: [PATCH 057/428] drop `esnext.map.upsert` (obsolete) --- packages/core-js-compat/src/data.mjs | 3 -- .../src/modules-by-versions.mjs | 1 - packages/core-js/full/map/index.js | 2 - packages/core-js/full/map/upsert.js | 6 --- packages/core-js/modules/esnext.map.upsert.js | 10 ----- .../core-js/proposals/map-update-or-insert.js | 4 -- packages/core-js/proposals/map-upsert.js | 2 - scripts/bundle-package/bundle-package.mjs | 1 - tests/compat-data/tests-coverage.mjs | 1 - tests/entries/unit.mjs | 2 - tests/unit-global/esnext.map.upsert.js | 36 ------------------ tests/unit-pure/esnext.map.upsert.js | 37 ------------------- 12 files changed, 105 deletions(-) delete mode 100644 packages/core-js/full/map/upsert.js delete mode 100644 packages/core-js/modules/esnext.map.upsert.js delete mode 100644 packages/core-js/proposals/map-update-or-insert.js delete mode 100644 tests/unit-global/esnext.map.upsert.js delete mode 100644 tests/unit-pure/esnext.map.upsert.js diff --git a/packages/core-js-compat/src/data.mjs b/packages/core-js-compat/src/data.mjs index 859b8daa410d..d6077172b434 100644 --- a/packages/core-js-compat/src/data.mjs +++ b/packages/core-js-compat/src/data.mjs @@ -2548,9 +2548,6 @@ export const data = { 'esnext.map.update': { }, // TODO: Remove from `core-js@4` - 'esnext.map.upsert': { - }, - // TODO: Remove from `core-js@4` 'esnext.math.clamp': { }, 'esnext.math.deg-per-rad': { diff --git a/packages/core-js-compat/src/modules-by-versions.mjs b/packages/core-js-compat/src/modules-by-versions.mjs index 487f687dd17c..f0d5ea09bebb 100644 --- a/packages/core-js-compat/src/modules-by-versions.mjs +++ b/packages/core-js-compat/src/modules-by-versions.mjs @@ -36,7 +36,6 @@ export default { 'esnext.iterator.some', 'esnext.iterator.take', 'esnext.iterator.to-array', - 'esnext.map.upsert', 'esnext.weak-map.upsert', ], 3.4: [ diff --git a/packages/core-js/full/map/index.js b/packages/core-js/full/map/index.js index 33f104c7d491..55b96e9cf4ac 100644 --- a/packages/core-js/full/map/index.js +++ b/packages/core-js/full/map/index.js @@ -19,7 +19,5 @@ require('../../modules/esnext.map.merge'); require('../../modules/esnext.map.reduce'); require('../../modules/esnext.map.some'); require('../../modules/esnext.map.update'); -// TODO: remove from `core-js@4` -require('../../modules/esnext.map.upsert'); module.exports = parent; diff --git a/packages/core-js/full/map/upsert.js b/packages/core-js/full/map/upsert.js deleted file mode 100644 index 7467fe7f9d71..000000000000 --- a/packages/core-js/full/map/upsert.js +++ /dev/null @@ -1,6 +0,0 @@ -'use strict'; -require('../../modules/es.map'); -require('../../modules/esnext.map.upsert'); -var entryUnbind = require('../../internals/entry-unbind'); - -module.exports = entryUnbind('Map', 'upsert'); diff --git a/packages/core-js/modules/esnext.map.upsert.js b/packages/core-js/modules/esnext.map.upsert.js deleted file mode 100644 index 10d9ad850f10..000000000000 --- a/packages/core-js/modules/esnext.map.upsert.js +++ /dev/null @@ -1,10 +0,0 @@ -'use strict'; -// TODO: remove from `core-js@4` -var $ = require('../internals/export'); -var upsert = require('../internals/map-upsert'); - -// `Map.prototype.upsert` method (replaced by `Map.prototype.emplace`) -// https://github.com/thumbsupep/proposal-upsert -$({ target: 'Map', proto: true, real: true, forced: true }, { - upsert: upsert -}); diff --git a/packages/core-js/proposals/map-update-or-insert.js b/packages/core-js/proposals/map-update-or-insert.js deleted file mode 100644 index 7fb69259eca7..000000000000 --- a/packages/core-js/proposals/map-update-or-insert.js +++ /dev/null @@ -1,4 +0,0 @@ -'use strict'; -// TODO: remove from `core-js@4` -// https://github.com/tc39/proposal-upsert -require('./map-upsert'); diff --git a/packages/core-js/proposals/map-upsert.js b/packages/core-js/proposals/map-upsert.js index 9f8994c6d5cf..7f73cd858443 100644 --- a/packages/core-js/proposals/map-upsert.js +++ b/packages/core-js/proposals/map-upsert.js @@ -1,8 +1,6 @@ 'use strict'; // https://github.com/tc39/proposal-upsert require('../modules/esnext.map.emplace'); -// TODO: remove from `core-js@4` -require('../modules/esnext.map.upsert'); require('../modules/esnext.weak-map.emplace'); // TODO: remove from `core-js@4` require('../modules/esnext.weak-map.upsert'); diff --git a/scripts/bundle-package/bundle-package.mjs b/scripts/bundle-package/bundle-package.mjs index 4e14458f478b..65685c7aa80d 100644 --- a/scripts/bundle-package/bundle-package.mjs +++ b/scripts/bundle-package/bundle-package.mjs @@ -59,7 +59,6 @@ await bundle(DENO ? { options: { targets: { deno: '1.0' }, exclude: [ - 'esnext.map.upsert', // obsolete 'esnext.weak-map.upsert', // obsolete ], }, diff --git a/tests/compat-data/tests-coverage.mjs b/tests/compat-data/tests-coverage.mjs index bc96ca366716..cac7d303341e 100644 --- a/tests/compat-data/tests-coverage.mjs +++ b/tests/compat-data/tests-coverage.mjs @@ -17,7 +17,6 @@ const ignore = new Set([ 'es.weak-set', 'esnext.iterator.sliding', 'esnext.map.emplace', - 'esnext.map.upsert', 'esnext.math.clamp', 'esnext.observable', 'esnext.observable.constructor', diff --git a/tests/entries/unit.mjs b/tests/entries/unit.mjs index f9663e9e68d4..675faa956738 100644 --- a/tests/entries/unit.mjs +++ b/tests/entries/unit.mjs @@ -751,7 +751,6 @@ for (PATH of ['core-js-pure', 'core-js']) { ok(load(NS, 'map/map-keys')(new Map([[1, 2], [2, 3], [3, 4]]), it => it).size === 3); ok(load(NS, 'map/map-values')(new Map([[1, 2], [2, 3], [3, 4]]), it => it).size === 3); ok(load(NS, 'map/merge')(new Map([[1, 2], [2, 3]]), [[2, 4], [4, 5]]).size === 3); - ok(load(NS, 'map/upsert')(new Map([[1, 2]]), 1, it => it ** 2, () => 42) === 4); ok(load(NS, 'math/clamp')(6, 2, 4) === 4); ok(load(NS, 'math/deg-per-rad') === Math.PI / 180); ok(load(NS, 'math/degrees')(Math.PI) === 180); @@ -879,7 +878,6 @@ for (PATH of ['core-js-pure', 'core-js']) { load('proposals/joint-iteration'); load('proposals/json-parse-with-source'); load('proposals/keys-composition'); - load('proposals/map-update-or-insert'); load('proposals/map-upsert'); load('proposals/map-upsert-stage-2'); load('proposals/map-upsert-v4'); diff --git a/tests/unit-global/esnext.map.upsert.js b/tests/unit-global/esnext.map.upsert.js deleted file mode 100644 index e699f18e130a..000000000000 --- a/tests/unit-global/esnext.map.upsert.js +++ /dev/null @@ -1,36 +0,0 @@ -QUnit.test('Map#upsert', assert => { - const { upsert } = Map.prototype; - assert.isFunction(upsert); - assert.arity(upsert, 2); - assert.looksNative(upsert); - assert.nonEnumerable(Map.prototype, 'upsert'); - - const map = new Map([['a', 2]]); - assert.same(map.upsert('a', function (value) { - assert.same(arguments.length, 1, 'correct number of callback arguments'); - assert.same(value, 2, 'correct value in callback'); - return value ** 2; - }, () => { - assert.avoid(); - return 3; - }), 4, 'returns a correct value'); - assert.same(map.upsert('b', value => { - assert.avoid(); - return value ** 2; - }, function () { - assert.same(arguments.length, 0, 'correct number of callback arguments'); - return 3; - }), 3, 'returns a correct value'); - assert.same(map.size, 2, 'correct size'); - assert.same(map.get('a'), 4, 'correct result #1'); - assert.same(map.get('b'), 3, 'correct result #2'); - - assert.same(new Map([['a', 2]]).upsert('b', null, () => 3), 3); - assert.same(new Map([['a', 2]]).upsert('a', value => value ** 2), 4); - - assert.throws(() => new Map().upsert('a'), TypeError); - assert.throws(() => upsert.call({}, 'a', () => { /* empty */ }, () => { /* empty */ }), TypeError); - assert.throws(() => upsert.call([], 'a', () => { /* empty */ }, () => { /* empty */ }), TypeError); - assert.throws(() => upsert.call(undefined, 'a', () => { /* empty */ }, () => { /* empty */ }), TypeError); - assert.throws(() => upsert.call(null, 'a', () => { /* empty */ }, () => { /* empty */ }), TypeError); -}); diff --git a/tests/unit-pure/esnext.map.upsert.js b/tests/unit-pure/esnext.map.upsert.js deleted file mode 100644 index 139f34847d44..000000000000 --- a/tests/unit-pure/esnext.map.upsert.js +++ /dev/null @@ -1,37 +0,0 @@ -import Map from 'core-js-pure/full/map'; - -QUnit.test('Map#upsert', assert => { - const { upsert } = Map.prototype; - assert.isFunction(upsert); - assert.arity(upsert, 2); - assert.nonEnumerable(Map.prototype, 'upsert'); - - const map = new Map([['a', 2]]); - assert.same(map.upsert('a', function (value) { - assert.same(arguments.length, 1, 'correct number of callback arguments'); - assert.same(value, 2, 'correct value in callback'); - return value ** 2; - }, () => { - assert.avoid(); - return 3; - }), 4, 'returns a correct value'); - assert.same(map.upsert('b', value => { - assert.avoid(); - return value ** 2; - }, function () { - assert.same(arguments.length, 0, 'correct number of callback arguments'); - return 3; - }), 3, 'returns a correct value'); - assert.same(map.size, 2, 'correct size'); - assert.same(map.get('a'), 4, 'correct result #1'); - assert.same(map.get('b'), 3, 'correct result #2'); - - assert.same(new Map([['a', 2]]).upsert('b', null, () => 3), 3); - assert.same(new Map([['a', 2]]).upsert('a', value => value ** 2), 4); - - assert.throws(() => new Map().upsert('a'), TypeError); - assert.throws(() => upsert.call({}, 'a', () => { /* empty */ }, () => { /* empty */ }), TypeError); - assert.throws(() => upsert.call([], 'a', () => { /* empty */ }, () => { /* empty */ }), TypeError); - assert.throws(() => upsert.call(undefined, 'a', () => { /* empty */ }, () => { /* empty */ }), TypeError); - assert.throws(() => upsert.call(null, 'a', () => { /* empty */ }, () => { /* empty */ }), TypeError); -}); From 944c1e1f9c6dfa16cd374cc0b2a8f8a72b7fa712 Mon Sep 17 00:00:00 2001 From: Denis Pushkarev Date: Wed, 4 Oct 2023 03:57:30 +0700 Subject: [PATCH 058/428] drop `esnext.weak-map.upsert` (obsolete) --- packages/core-js-compat/src/data.mjs | 3 -- .../src/modules-by-versions.mjs | 1 - packages/core-js/full/weak-map/index.js | 2 - packages/core-js/full/weak-map/upsert.js | 6 --- packages/core-js/internals/map-upsert.js | 31 --------------- .../core-js/modules/esnext.weak-map.upsert.js | 10 ----- packages/core-js/proposals/map-upsert.js | 6 --- packages/core-js/stage/1.js | 2 - scripts/bundle-package/bundle-package.mjs | 3 -- tests/compat-data/tests-coverage.mjs | 1 - tests/entries/unit.mjs | 2 - tests/unit-global/esnext.weak-map.upsert.js | 38 ------------------ tests/unit-pure/esnext.weak-map.upsert.js | 39 ------------------- 13 files changed, 144 deletions(-) delete mode 100644 packages/core-js/full/weak-map/upsert.js delete mode 100644 packages/core-js/internals/map-upsert.js delete mode 100644 packages/core-js/modules/esnext.weak-map.upsert.js delete mode 100644 packages/core-js/proposals/map-upsert.js delete mode 100644 tests/unit-global/esnext.weak-map.upsert.js delete mode 100644 tests/unit-pure/esnext.weak-map.upsert.js diff --git a/packages/core-js-compat/src/data.mjs b/packages/core-js-compat/src/data.mjs index d6077172b434..dd8393349a6d 100644 --- a/packages/core-js-compat/src/data.mjs +++ b/packages/core-js-compat/src/data.mjs @@ -2730,9 +2730,6 @@ export const data = { bun: '1.2.20', firefox: '144', }, - // TODO: Remove from `core-js@4` - 'esnext.weak-map.upsert': { - }, 'esnext.weak-set.add-all': { }, 'esnext.weak-set.delete-all': { diff --git a/packages/core-js-compat/src/modules-by-versions.mjs b/packages/core-js-compat/src/modules-by-versions.mjs index f0d5ea09bebb..ca53b163b666 100644 --- a/packages/core-js-compat/src/modules-by-versions.mjs +++ b/packages/core-js-compat/src/modules-by-versions.mjs @@ -36,7 +36,6 @@ export default { 'esnext.iterator.some', 'esnext.iterator.take', 'esnext.iterator.to-array', - 'esnext.weak-map.upsert', ], 3.4: [ 'es.json.stringify', diff --git a/packages/core-js/full/weak-map/index.js b/packages/core-js/full/weak-map/index.js index 0710b896e85a..51c39b8c7605 100644 --- a/packages/core-js/full/weak-map/index.js +++ b/packages/core-js/full/weak-map/index.js @@ -7,7 +7,5 @@ require('../../modules/esnext.weak-map.emplace'); require('../../modules/esnext.weak-map.get-or-insert'); require('../../modules/esnext.weak-map.get-or-insert-computed'); require('../../modules/esnext.weak-map.delete-all'); -// TODO: remove from `core-js@4` -require('../../modules/esnext.weak-map.upsert'); module.exports = parent; diff --git a/packages/core-js/full/weak-map/upsert.js b/packages/core-js/full/weak-map/upsert.js deleted file mode 100644 index 003098f698ca..000000000000 --- a/packages/core-js/full/weak-map/upsert.js +++ /dev/null @@ -1,6 +0,0 @@ -'use strict'; -require('../../modules/es.weak-map'); -require('../../modules/esnext.weak-map.upsert'); -var entryUnbind = require('../../internals/entry-unbind'); - -module.exports = entryUnbind('WeakMap', 'upsert'); diff --git a/packages/core-js/internals/map-upsert.js b/packages/core-js/internals/map-upsert.js deleted file mode 100644 index 28f17f3f62d0..000000000000 --- a/packages/core-js/internals/map-upsert.js +++ /dev/null @@ -1,31 +0,0 @@ -'use strict'; -var call = require('../internals/function-call'); -var aCallable = require('../internals/a-callable'); -var isCallable = require('../internals/is-callable'); -var anObject = require('../internals/an-object'); - -var $TypeError = TypeError; - -// `Map.prototype.upsert` method -// https://github.com/tc39/proposal-upsert -module.exports = function upsert(key, updateFn /* , insertFn */) { - var map = anObject(this); - var get = aCallable(map.get); - var has = aCallable(map.has); - var set = aCallable(map.set); - var insertFn = arguments.length > 2 ? arguments[2] : undefined; - var value; - if (!isCallable(updateFn) && !isCallable(insertFn)) { - throw new $TypeError('At least one callback required'); - } - if (call(has, map, key)) { - value = call(get, map, key); - if (isCallable(updateFn)) { - value = updateFn(value); - call(set, map, key, value); - } - } else if (isCallable(insertFn)) { - value = insertFn(); - call(set, map, key, value); - } return value; -}; diff --git a/packages/core-js/modules/esnext.weak-map.upsert.js b/packages/core-js/modules/esnext.weak-map.upsert.js deleted file mode 100644 index ddef2d814776..000000000000 --- a/packages/core-js/modules/esnext.weak-map.upsert.js +++ /dev/null @@ -1,10 +0,0 @@ -'use strict'; -// TODO: remove from `core-js@4` -var $ = require('../internals/export'); -var upsert = require('../internals/map-upsert'); - -// `WeakMap.prototype.upsert` method (replaced by `WeakMap.prototype.emplace`) -// https://github.com/tc39/proposal-upsert -$({ target: 'WeakMap', proto: true, real: true, forced: true }, { - upsert: upsert -}); diff --git a/packages/core-js/proposals/map-upsert.js b/packages/core-js/proposals/map-upsert.js deleted file mode 100644 index 7f73cd858443..000000000000 --- a/packages/core-js/proposals/map-upsert.js +++ /dev/null @@ -1,6 +0,0 @@ -'use strict'; -// https://github.com/tc39/proposal-upsert -require('../modules/esnext.map.emplace'); -require('../modules/esnext.weak-map.emplace'); -// TODO: remove from `core-js@4` -require('../modules/esnext.weak-map.upsert'); diff --git a/packages/core-js/stage/1.js b/packages/core-js/stage/1.js index b631f7ff64cf..d0bff9f49085 100644 --- a/packages/core-js/stage/1.js +++ b/packages/core-js/stage/1.js @@ -16,8 +16,6 @@ require('../proposals/string-code-points'); require('../proposals/string-cooked'); // TODO: Obsolete versions, remove from `core-js@4`: require('../proposals/array-from-async'); -require('../proposals/map-upsert'); -// TODO: Obsolete versions, remove from `core-js@4`: require('../proposals/math-clamp'); require('../proposals/pattern-matching'); require('../proposals/string-replace-all'); diff --git a/scripts/bundle-package/bundle-package.mjs b/scripts/bundle-package/bundle-package.mjs index 65685c7aa80d..473ddc2adaa4 100644 --- a/scripts/bundle-package/bundle-package.mjs +++ b/scripts/bundle-package/bundle-package.mjs @@ -58,9 +58,6 @@ await bundle(DENO ? { bundled: BUNDLED_NAME, options: { targets: { deno: '1.0' }, - exclude: [ - 'esnext.weak-map.upsert', // obsolete - ], }, } : { bundled: BUNDLED_NAME, diff --git a/tests/compat-data/tests-coverage.mjs b/tests/compat-data/tests-coverage.mjs index cac7d303341e..778f64e5bf2c 100644 --- a/tests/compat-data/tests-coverage.mjs +++ b/tests/compat-data/tests-coverage.mjs @@ -40,7 +40,6 @@ const ignore = new Set([ 'esnext.set.union', 'esnext.symbol.matcher', 'esnext.weak-map.emplace', - 'esnext.weak-map.upsert', 'web.url-search-params', 'web.url', ]); diff --git a/tests/entries/unit.mjs b/tests/entries/unit.mjs index 675faa956738..f37b93cc173e 100644 --- a/tests/entries/unit.mjs +++ b/tests/entries/unit.mjs @@ -800,7 +800,6 @@ for (PATH of ['core-js-pure', 'core-js']) { ok(load(NS, 'symbol/observable')); ok(load(NS, 'weak-map/delete-all')(new WeakMap(), [], {}) === false); ok(load(NS, 'weak-map/emplace')(new WeakMap(), {}, { insert: () => ({ a: 42 }) }).a === 42); - ok(load(NS, 'weak-map/upsert')(new WeakMap(), {}, null, () => 42) === 42); ok(load(NS, 'weak-map/from')([[{}, 1], [[], 2]]) instanceof WeakMap); ok(load(NS, 'weak-map/of')([{}, 1], [[], 2]) instanceof WeakMap); ok(load(NS, 'weak-set/add-all')(new WeakSet(), [], {}) instanceof WeakSet); @@ -878,7 +877,6 @@ for (PATH of ['core-js-pure', 'core-js']) { load('proposals/joint-iteration'); load('proposals/json-parse-with-source'); load('proposals/keys-composition'); - load('proposals/map-upsert'); load('proposals/map-upsert-stage-2'); load('proposals/map-upsert-v4'); load('proposals/math-clamp'); diff --git a/tests/unit-global/esnext.weak-map.upsert.js b/tests/unit-global/esnext.weak-map.upsert.js deleted file mode 100644 index c1f829e9932e..000000000000 --- a/tests/unit-global/esnext.weak-map.upsert.js +++ /dev/null @@ -1,38 +0,0 @@ -QUnit.test('WeakMap#upsert', assert => { - const { upsert } = WeakMap.prototype; - assert.isFunction(upsert); - assert.arity(upsert, 2); - assert.looksNative(upsert); - assert.nonEnumerable(WeakMap.prototype, 'upsert'); - - const a = {}; - const b = {}; - - const map = new WeakMap([[a, 2]]); - assert.same(map.upsert(a, function (value) { - assert.same(arguments.length, 1, 'correct number of callback arguments'); - assert.same(value, 2, 'correct value in callback'); - return value ** 2; - }, () => { - assert.avoid(); - return 3; - }), 4, 'returns a correct value'); - assert.same(map.upsert(b, value => { - assert.avoid(); - return value ** 2; - }, function () { - assert.same(arguments.length, 0, 'correct number of callback arguments'); - return 3; - }), 3, 'returns a correct value'); - assert.same(map.get(a), 4, 'correct result #1'); - assert.same(map.get(b), 3, 'correct result #2'); - - assert.same(new WeakMap([[a, 2]]).upsert(b, null, () => 3), 3); - assert.same(new WeakMap([[a, 2]]).upsert(a, value => value ** 2), 4); - - assert.throws(() => new WeakMap().upsert(a), TypeError); - assert.throws(() => upsert.call({}, a, () => { /* empty */ }, () => { /* empty */ }), TypeError); - assert.throws(() => upsert.call([], a, () => { /* empty */ }, () => { /* empty */ }), TypeError); - assert.throws(() => upsert.call(undefined, a, () => { /* empty */ }, () => { /* empty */ }), TypeError); - assert.throws(() => upsert.call(null, a, () => { /* empty */ }, () => { /* empty */ }), TypeError); -}); diff --git a/tests/unit-pure/esnext.weak-map.upsert.js b/tests/unit-pure/esnext.weak-map.upsert.js deleted file mode 100644 index 4075e0ce6961..000000000000 --- a/tests/unit-pure/esnext.weak-map.upsert.js +++ /dev/null @@ -1,39 +0,0 @@ -import WeakMap from 'core-js-pure/full/weak-map'; - -QUnit.test('WeakMap#upsert', assert => { - const { upsert } = WeakMap.prototype; - assert.isFunction(upsert); - assert.arity(upsert, 2); - assert.nonEnumerable(WeakMap.prototype, 'upsert'); - - const a = {}; - const b = {}; - - const map = new WeakMap([[a, 2]]); - assert.same(map.upsert(a, function (value) { - assert.same(arguments.length, 1, 'correct number of callback arguments'); - assert.same(value, 2, 'correct value in callback'); - return value ** 2; - }, () => { - assert.avoid(); - return 3; - }), 4, 'returns a correct value'); - assert.same(map.upsert(b, value => { - assert.avoid(); - return value ** 2; - }, function () { - assert.same(arguments.length, 0, 'correct number of callback arguments'); - return 3; - }), 3, 'returns a correct value'); - assert.same(map.get(a), 4, 'correct result #1'); - assert.same(map.get(b), 3, 'correct result #2'); - - assert.same(new WeakMap([[a, 2]]).upsert(b, null, () => 3), 3); - assert.same(new WeakMap([[a, 2]]).upsert(a, value => value ** 2), 4); - - assert.throws(() => new WeakMap().upsert(a), TypeError); - assert.throws(() => upsert.call({}, a, () => { /* empty */ }, () => { /* empty */ }), TypeError); - assert.throws(() => upsert.call([], a, () => { /* empty */ }, () => { /* empty */ }), TypeError); - assert.throws(() => upsert.call(undefined, a, () => { /* empty */ }, () => { /* empty */ }), TypeError); - assert.throws(() => upsert.call(null, a, () => { /* empty */ }, () => { /* empty */ }), TypeError); -}); From ffedbeaa576b47d52228ab0cf54edad6f871521b Mon Sep 17 00:00:00 2001 From: Denis Pushkarev Date: Wed, 4 Oct 2023 04:11:29 +0700 Subject: [PATCH 059/428] drop `esnext.set.difference` (obsolete) --- packages/core-js-compat/src/data.mjs | 3 --- packages/core-js/full/set/difference.js | 9 ++----- packages/core-js/full/set/index.js | 1 - packages/core-js/internals/set-difference.js | 26 ------------------- .../core-js/modules/es.set.difference.v2.js | 24 +++++++++++++++-- .../core-js/modules/esnext.set.difference.js | 14 ---------- packages/core-js/proposals/set-methods.js | 1 - tests/compat-data/tests-coverage.mjs | 1 - tests/unit-global/es.set.difference.js | 7 +---- tests/unit-pure/es.set.difference.js | 10 ++----- 10 files changed, 27 insertions(+), 69 deletions(-) delete mode 100644 packages/core-js/internals/set-difference.js delete mode 100644 packages/core-js/modules/esnext.set.difference.js diff --git a/packages/core-js-compat/src/data.mjs b/packages/core-js-compat/src/data.mjs index dd8393349a6d..9d8de64afed7 100644 --- a/packages/core-js-compat/src/data.mjs +++ b/packages/core-js-compat/src/data.mjs @@ -2621,9 +2621,6 @@ export const data = { }, // TODO: Remove from `core-js@4` 'esnext.set.difference.v2': null, - // TODO: Remove from `core-js@4` - 'esnext.set.difference': { - }, 'esnext.set.every': { }, 'esnext.set.filter': { diff --git a/packages/core-js/full/set/difference.js b/packages/core-js/full/set/difference.js index 879eff13d30d..c5ccf139b503 100644 --- a/packages/core-js/full/set/difference.js +++ b/packages/core-js/full/set/difference.js @@ -1,9 +1,4 @@ 'use strict'; -require('../../actual/set/difference'); -require('../../modules/es.array.iterator'); -require('../../modules/es.string.iterator'); -require('../../modules/esnext.set.difference'); -require('../../modules/web.dom-collections.iterator'); -var entryUnbind = require('../../internals/entry-unbind'); +var parent = require('../../actual/set/difference'); -module.exports = entryUnbind('Set', 'difference'); +module.exports = parent; diff --git a/packages/core-js/full/set/index.js b/packages/core-js/full/set/index.js index f483f9ecca09..b1ac88836a0a 100644 --- a/packages/core-js/full/set/index.js +++ b/packages/core-js/full/set/index.js @@ -5,7 +5,6 @@ require('../../modules/esnext.set.of'); require('../../modules/esnext.set.add-all'); require('../../modules/esnext.set.delete-all'); require('../../modules/esnext.set.every'); -require('../../modules/esnext.set.difference'); require('../../modules/esnext.set.filter'); require('../../modules/esnext.set.find'); require('../../modules/esnext.set.intersection'); diff --git a/packages/core-js/internals/set-difference.js b/packages/core-js/internals/set-difference.js deleted file mode 100644 index bf9b341a16cc..000000000000 --- a/packages/core-js/internals/set-difference.js +++ /dev/null @@ -1,26 +0,0 @@ -'use strict'; -var aSet = require('../internals/a-set'); -var SetHelpers = require('../internals/set-helpers'); -var clone = require('../internals/set-clone'); -var size = require('../internals/set-size'); -var getSetRecord = require('../internals/get-set-record'); -var iterateSet = require('../internals/set-iterate'); -var iterateSimple = require('../internals/iterate-simple'); - -var has = SetHelpers.has; -var remove = SetHelpers.remove; - -// `Set.prototype.difference` method -// https://tc39.es/ecma262/#sec-set.prototype.difference -module.exports = function difference(other) { - var O = aSet(this); - var otherRec = getSetRecord(other); - var result = clone(O); - if (size(O) <= otherRec.size) iterateSet(O, function (e) { - if (otherRec.includes(e)) remove(result, e); - }); - else iterateSimple(otherRec.getIterator(), function (e) { - if (has(result, e)) remove(result, e); - }); - return result; -}; diff --git a/packages/core-js/modules/es.set.difference.v2.js b/packages/core-js/modules/es.set.difference.v2.js index bae5744265f5..818c4015a79d 100644 --- a/packages/core-js/modules/es.set.difference.v2.js +++ b/packages/core-js/modules/es.set.difference.v2.js @@ -1,9 +1,18 @@ 'use strict'; var $ = require('../internals/export'); -var difference = require('../internals/set-difference'); +var aSet = require('../internals/a-set'); +var SetHelpers = require('../internals/set-helpers'); +var clone = require('../internals/set-clone'); +var size = require('../internals/set-size'); +var getSetRecord = require('../internals/get-set-record'); +var iterateSet = require('../internals/set-iterate'); +var iterateSimple = require('../internals/iterate-simple'); var fails = require('../internals/fails'); var setMethodAcceptSetLike = require('../internals/set-method-accept-set-like'); +var has = SetHelpers.has; +var remove = SetHelpers.remove; + var SET_LIKE_INCORRECT_BEHAVIOR = !setMethodAcceptSetLike('difference', function (result) { return result.size === 0; }); @@ -33,5 +42,16 @@ var FORCED = SET_LIKE_INCORRECT_BEHAVIOR || fails(function () { // `Set.prototype.difference` method // https://tc39.es/ecma262/#sec-set.prototype.difference $({ target: 'Set', proto: true, real: true, forced: FORCED }, { - difference: difference + difference: function difference(other) { + var O = aSet(this); + var otherRec = getSetRecord(other); + var result = clone(O); + if (size(O) <= otherRec.size) iterateSet(O, function (e) { + if (otherRec.includes(e)) remove(result, e); + }); + else iterateSimple(otherRec.getIterator(), function (e) { + if (has(result, e)) remove(result, e); + }); + return result; + } }); diff --git a/packages/core-js/modules/esnext.set.difference.js b/packages/core-js/modules/esnext.set.difference.js deleted file mode 100644 index d2a400883292..000000000000 --- a/packages/core-js/modules/esnext.set.difference.js +++ /dev/null @@ -1,14 +0,0 @@ -'use strict'; -var $ = require('../internals/export'); -var call = require('../internals/function-call'); -var toSetLike = require('../internals/to-set-like'); -var $difference = require('../internals/set-difference'); - -// `Set.prototype.difference` method -// https://github.com/tc39/proposal-set-methods -// TODO: Obsolete version, remove from `core-js@4` -$({ target: 'Set', proto: true, real: true, forced: true }, { - difference: function difference(other) { - return call($difference, this, toSetLike(other)); - } -}); diff --git a/packages/core-js/proposals/set-methods.js b/packages/core-js/proposals/set-methods.js index 951f7e9c29b7..31bab9a5cdc0 100644 --- a/packages/core-js/proposals/set-methods.js +++ b/packages/core-js/proposals/set-methods.js @@ -8,7 +8,6 @@ require('../modules/esnext.set.is-superset-of.v2'); require('../modules/esnext.set.union.v2'); require('../modules/esnext.set.symmetric-difference.v2'); // TODO: Obsolete versions, remove from `core-js@4` -require('../modules/esnext.set.difference'); require('../modules/esnext.set.intersection'); require('../modules/esnext.set.is-disjoint-from'); require('../modules/esnext.set.is-subset-of'); diff --git a/tests/compat-data/tests-coverage.mjs b/tests/compat-data/tests-coverage.mjs index 778f64e5bf2c..7c81ae9f1c13 100644 --- a/tests/compat-data/tests-coverage.mjs +++ b/tests/compat-data/tests-coverage.mjs @@ -31,7 +31,6 @@ const ignore = new Set([ 'esnext.reflect.has-metadata', 'esnext.reflect.has-own-metadata', 'esnext.reflect.metadata', - 'esnext.set.difference', 'esnext.set.intersection', 'esnext.set.is-disjoint-from', 'esnext.set.is-subset-of', diff --git a/tests/unit-global/es.set.difference.js b/tests/unit-global/es.set.difference.js index 56800021c95d..8afb5c270e0a 100644 --- a/tests/unit-global/es.set.difference.js +++ b/tests/unit-global/es.set.difference.js @@ -1,4 +1,4 @@ -import { createIterable, createSetLike } from '../helpers/helpers.js'; +import { createSetLike } from '../helpers/helpers.js'; QUnit.test('Set#difference', assert => { const { difference } = Set.prototype; @@ -18,11 +18,6 @@ QUnit.test('Set#difference', assert => { assert.deepEqual(from(new Set([1, 2, 3]).difference(createSetLike([4, 5]))), [1, 2, 3]); assert.deepEqual(from(new Set([1, 2, 3]).difference(createSetLike([3, 4]))), [1, 2]); - // TODO: drop from core-js@4 - assert.deepEqual(from(new Set([1, 2, 3]).difference([4, 5])), [1, 2, 3]); - assert.deepEqual(from(new Set([1, 2, 3]).difference([3, 4])), [1, 2]); - assert.deepEqual(from(new Set([1, 2, 3]).difference(createIterable([3, 4]))), [1, 2]); - assert.same(new Set([42, 43]).difference({ size: Infinity, has() { diff --git a/tests/unit-pure/es.set.difference.js b/tests/unit-pure/es.set.difference.js index 0c10b104fa71..696b5fc2d29e 100644 --- a/tests/unit-pure/es.set.difference.js +++ b/tests/unit-pure/es.set.difference.js @@ -1,8 +1,7 @@ -import { createIterable, createSetLike } from '../helpers/helpers.js'; +import { createSetLike } from '../helpers/helpers.js'; import from from 'core-js-pure/es/array/from'; -// TODO: use /es/ in core-js@4 -import Set from 'core-js-pure/full/set'; +import Set from 'core-js-pure/es/set'; QUnit.test('Set#difference', assert => { const { difference } = Set.prototype; @@ -20,11 +19,6 @@ QUnit.test('Set#difference', assert => { assert.deepEqual(from(new Set([1, 2, 3]).difference(createSetLike([3, 4]))), [1, 2]); assert.deepEqual(from(new Set([1, 2, 3]).difference(createSetLike([3, 4]))), [1, 2]); - // TODO: drop from core-js@4 - assert.deepEqual(from(new Set([1, 2, 3]).difference([4, 5])), [1, 2, 3]); - assert.deepEqual(from(new Set([1, 2, 3]).difference([3, 4])), [1, 2]); - assert.deepEqual(from(new Set([1, 2, 3]).difference(createIterable([3, 4]))), [1, 2]); - assert.same(new Set([42, 43]).difference({ size: Infinity, has() { From 8340ec4842c2428f3352739d9dbd98acda6d388f Mon Sep 17 00:00:00 2001 From: Denis Pushkarev Date: Wed, 4 Oct 2023 04:25:27 +0700 Subject: [PATCH 060/428] drop `esnext.set.intersection` (obsolete) --- packages/core-js-compat/src/data.mjs | 3 -- packages/core-js/full/set/index.js | 1 - packages/core-js/full/set/intersection.js | 9 ++---- .../core-js/internals/set-intersection.js | 31 ------------------- .../core-js/modules/es.set.intersection.v2.js | 29 +++++++++++++++-- .../modules/esnext.set.intersection.js | 14 --------- packages/core-js/proposals/set-methods.js | 1 - tests/compat-data/tests-coverage.mjs | 1 - tests/unit-global/es.set.intersection.js | 7 +---- tests/unit-pure/es.set.intersection.js | 10 ++---- 10 files changed, 32 insertions(+), 74 deletions(-) delete mode 100644 packages/core-js/internals/set-intersection.js delete mode 100644 packages/core-js/modules/esnext.set.intersection.js diff --git a/packages/core-js-compat/src/data.mjs b/packages/core-js-compat/src/data.mjs index 9d8de64afed7..e5f9a40ff83c 100644 --- a/packages/core-js-compat/src/data.mjs +++ b/packages/core-js-compat/src/data.mjs @@ -2632,9 +2632,6 @@ export const data = { // TODO: Remove from `core-js@4` 'esnext.set.intersection.v2': null, // TODO: Remove from `core-js@4` - 'esnext.set.intersection': { - }, - // TODO: Remove from `core-js@4` 'esnext.set.is-disjoint-from.v2': null, // TODO: Remove from `core-js@4` 'esnext.set.is-disjoint-from': { diff --git a/packages/core-js/full/set/index.js b/packages/core-js/full/set/index.js index b1ac88836a0a..9d241dbb1e7a 100644 --- a/packages/core-js/full/set/index.js +++ b/packages/core-js/full/set/index.js @@ -7,7 +7,6 @@ require('../../modules/esnext.set.delete-all'); require('../../modules/esnext.set.every'); require('../../modules/esnext.set.filter'); require('../../modules/esnext.set.find'); -require('../../modules/esnext.set.intersection'); require('../../modules/esnext.set.is-disjoint-from'); require('../../modules/esnext.set.is-subset-of'); require('../../modules/esnext.set.is-superset-of'); diff --git a/packages/core-js/full/set/intersection.js b/packages/core-js/full/set/intersection.js index 8e96ff5f446d..2a6d53e9cbb5 100644 --- a/packages/core-js/full/set/intersection.js +++ b/packages/core-js/full/set/intersection.js @@ -1,9 +1,4 @@ 'use strict'; -require('../../actual/set/intersection'); -require('../../modules/es.array.iterator'); -require('../../modules/es.string.iterator'); -require('../../modules/esnext.set.intersection'); -require('../../modules/web.dom-collections.iterator'); -var entryUnbind = require('../../internals/entry-unbind'); +var parent = require('../../actual/set/intersection'); -module.exports = entryUnbind('Set', 'intersection'); +module.exports = parent; diff --git a/packages/core-js/internals/set-intersection.js b/packages/core-js/internals/set-intersection.js deleted file mode 100644 index 5a2e55c67479..000000000000 --- a/packages/core-js/internals/set-intersection.js +++ /dev/null @@ -1,31 +0,0 @@ -'use strict'; -var aSet = require('../internals/a-set'); -var SetHelpers = require('../internals/set-helpers'); -var size = require('../internals/set-size'); -var getSetRecord = require('../internals/get-set-record'); -var iterateSet = require('../internals/set-iterate'); -var iterateSimple = require('../internals/iterate-simple'); - -var Set = SetHelpers.Set; -var add = SetHelpers.add; -var has = SetHelpers.has; - -// `Set.prototype.intersection` method -// https://tc39.es/ecma262/#sec-set.prototype.intersection -module.exports = function intersection(other) { - var O = aSet(this); - var otherRec = getSetRecord(other); - var result = new Set(); - - if (size(O) > otherRec.size) { - iterateSimple(otherRec.getIterator(), function (e) { - if (has(O, e)) add(result, e); - }); - } else { - iterateSet(O, function (e) { - if (otherRec.includes(e)) add(result, e); - }); - } - - return result; -}; diff --git a/packages/core-js/modules/es.set.intersection.v2.js b/packages/core-js/modules/es.set.intersection.v2.js index e79f1c7a38b6..edbed44a3d58 100644 --- a/packages/core-js/modules/es.set.intersection.v2.js +++ b/packages/core-js/modules/es.set.intersection.v2.js @@ -1,9 +1,18 @@ 'use strict'; var $ = require('../internals/export'); var fails = require('../internals/fails'); -var intersection = require('../internals/set-intersection'); +var aSet = require('../internals/a-set'); +var SetHelpers = require('../internals/set-helpers'); +var size = require('../internals/set-size'); +var getSetRecord = require('../internals/get-set-record'); +var iterateSet = require('../internals/set-iterate'); +var iterateSimple = require('../internals/iterate-simple'); var setMethodAcceptSetLike = require('../internals/set-method-accept-set-like'); +var Set = SetHelpers.Set; +var add = SetHelpers.add; +var has = SetHelpers.has; + var INCORRECT = !setMethodAcceptSetLike('intersection', function (result) { return result.size === 2 && result.has(1) && result.has(2); }) || fails(function () { @@ -14,5 +23,21 @@ var INCORRECT = !setMethodAcceptSetLike('intersection', function (result) { // `Set.prototype.intersection` method // https://tc39.es/ecma262/#sec-set.prototype.intersection $({ target: 'Set', proto: true, real: true, forced: INCORRECT }, { - intersection: intersection + intersection: function intersection(other) { + var O = aSet(this); + var otherRec = getSetRecord(other); + var result = new Set(); + + if (size(O) > otherRec.size) { + iterateSimple(otherRec.getIterator(), function (e) { + if (has(O, e)) add(result, e); + }); + } else { + iterateSet(O, function (e) { + if (otherRec.includes(e)) add(result, e); + }); + } + + return result; + } }); diff --git a/packages/core-js/modules/esnext.set.intersection.js b/packages/core-js/modules/esnext.set.intersection.js deleted file mode 100644 index fed2c4380543..000000000000 --- a/packages/core-js/modules/esnext.set.intersection.js +++ /dev/null @@ -1,14 +0,0 @@ -'use strict'; -var $ = require('../internals/export'); -var call = require('../internals/function-call'); -var toSetLike = require('../internals/to-set-like'); -var $intersection = require('../internals/set-intersection'); - -// `Set.prototype.intersection` method -// https://github.com/tc39/proposal-set-methods -// TODO: Obsolete version, remove from `core-js@4` -$({ target: 'Set', proto: true, real: true, forced: true }, { - intersection: function intersection(other) { - return call($intersection, this, toSetLike(other)); - } -}); diff --git a/packages/core-js/proposals/set-methods.js b/packages/core-js/proposals/set-methods.js index 31bab9a5cdc0..2fbf9435f549 100644 --- a/packages/core-js/proposals/set-methods.js +++ b/packages/core-js/proposals/set-methods.js @@ -8,7 +8,6 @@ require('../modules/esnext.set.is-superset-of.v2'); require('../modules/esnext.set.union.v2'); require('../modules/esnext.set.symmetric-difference.v2'); // TODO: Obsolete versions, remove from `core-js@4` -require('../modules/esnext.set.intersection'); require('../modules/esnext.set.is-disjoint-from'); require('../modules/esnext.set.is-subset-of'); require('../modules/esnext.set.is-superset-of'); diff --git a/tests/compat-data/tests-coverage.mjs b/tests/compat-data/tests-coverage.mjs index 7c81ae9f1c13..a90cd8d8110d 100644 --- a/tests/compat-data/tests-coverage.mjs +++ b/tests/compat-data/tests-coverage.mjs @@ -31,7 +31,6 @@ const ignore = new Set([ 'esnext.reflect.has-metadata', 'esnext.reflect.has-own-metadata', 'esnext.reflect.metadata', - 'esnext.set.intersection', 'esnext.set.is-disjoint-from', 'esnext.set.is-subset-of', 'esnext.set.is-superset-of', diff --git a/tests/unit-global/es.set.intersection.js b/tests/unit-global/es.set.intersection.js index 64f84283b33e..ec614aa01341 100644 --- a/tests/unit-global/es.set.intersection.js +++ b/tests/unit-global/es.set.intersection.js @@ -1,4 +1,4 @@ -import { createIterable, createSetLike } from '../helpers/helpers.js'; +import { createSetLike } from '../helpers/helpers.js'; QUnit.test('Set#intersection', assert => { const { intersection } = Set.prototype; @@ -25,11 +25,6 @@ QUnit.test('Set#intersection', assert => { assert.deepEqual(from(new Set([1, 2, 3]).intersection(createSetLike([3, 2, 1]))), [1, 2, 3]); assert.deepEqual(from(new Set([1, 2, 3]).intersection(createSetLike([3, 2, 1, 0]))), [1, 2, 3]); - // TODO: drop from core-js@4 - assert.deepEqual(from(new Set([1, 2, 3]).intersection([4, 5])), []); - assert.deepEqual(from(new Set([1, 2, 3]).intersection([2, 3, 4])), [2, 3]); - assert.deepEqual(from(new Set([1, 2, 3]).intersection(createIterable([2, 3, 4]))), [2, 3]); - assert.deepEqual(from(new Set([42, 43]).intersection({ size: Infinity, has() { diff --git a/tests/unit-pure/es.set.intersection.js b/tests/unit-pure/es.set.intersection.js index 429905c06a97..5f490b7d3818 100644 --- a/tests/unit-pure/es.set.intersection.js +++ b/tests/unit-pure/es.set.intersection.js @@ -1,8 +1,7 @@ -import { createIterable, createSetLike } from '../helpers/helpers.js'; +import { createSetLike } from '../helpers/helpers.js'; import from from 'core-js-pure/es/array/from'; -// TODO: use /es/ in core-js@4 -import Set from 'core-js-pure/full/set'; +import Set from 'core-js-pure/es/set'; QUnit.test('Set#intersection', assert => { const { intersection } = Set.prototype; @@ -27,11 +26,6 @@ QUnit.test('Set#intersection', assert => { assert.deepEqual(from(new Set([1, 2, 3]).intersection(createSetLike([3, 2, 1]))), [1, 2, 3]); assert.deepEqual(from(new Set([1, 2, 3]).intersection(createSetLike([3, 2, 1, 0]))), [1, 2, 3]); - // TODO: drop from core-js@4 - assert.deepEqual(from(new Set([1, 2, 3]).intersection([4, 5])), []); - assert.deepEqual(from(new Set([1, 2, 3]).intersection([2, 3, 4])), [2, 3]); - assert.deepEqual(from(new Set([1, 2, 3]).intersection(createIterable([2, 3, 4]))), [2, 3]); - assert.deepEqual(from(new Set([42, 43]).intersection({ size: Infinity, has() { From 7ec97d5ccb07e6cb45c695ac61eb0ecbdcff37f7 Mon Sep 17 00:00:00 2001 From: Denis Pushkarev Date: Wed, 4 Oct 2023 04:32:25 +0700 Subject: [PATCH 061/428] drop `esnext.set.is-disjoint-from` (obsolete) --- packages/core-js-compat/src/data.mjs | 3 --- packages/core-js/full/set/index.js | 1 - packages/core-js/full/set/is-disjoint-from.js | 9 ++------ .../core-js/internals/set-is-disjoint-from.js | 22 ------------------- .../core-js/modules/es.set.intersection.v2.js | 2 +- .../modules/es.set.is-disjoint-from.v2.js | 20 +++++++++++++++-- .../modules/esnext.set.is-disjoint-from.js | 14 ------------ packages/core-js/proposals/set-methods.js | 1 - tests/compat-data/tests-coverage.mjs | 1 - tests/unit-global/es.set.is-disjoint-from.js | 10 +-------- tests/unit-pure/es.set.is-disjoint-from.js | 13 ++--------- 11 files changed, 24 insertions(+), 72 deletions(-) delete mode 100644 packages/core-js/internals/set-is-disjoint-from.js delete mode 100644 packages/core-js/modules/esnext.set.is-disjoint-from.js diff --git a/packages/core-js-compat/src/data.mjs b/packages/core-js-compat/src/data.mjs index e5f9a40ff83c..da5647a5733e 100644 --- a/packages/core-js-compat/src/data.mjs +++ b/packages/core-js-compat/src/data.mjs @@ -2634,9 +2634,6 @@ export const data = { // TODO: Remove from `core-js@4` 'esnext.set.is-disjoint-from.v2': null, // TODO: Remove from `core-js@4` - 'esnext.set.is-disjoint-from': { - }, - // TODO: Remove from `core-js@4` 'esnext.set.is-subset-of.v2': null, // TODO: Remove from `core-js@4` 'esnext.set.is-subset-of': { diff --git a/packages/core-js/full/set/index.js b/packages/core-js/full/set/index.js index 9d241dbb1e7a..328193fe2039 100644 --- a/packages/core-js/full/set/index.js +++ b/packages/core-js/full/set/index.js @@ -7,7 +7,6 @@ require('../../modules/esnext.set.delete-all'); require('../../modules/esnext.set.every'); require('../../modules/esnext.set.filter'); require('../../modules/esnext.set.find'); -require('../../modules/esnext.set.is-disjoint-from'); require('../../modules/esnext.set.is-subset-of'); require('../../modules/esnext.set.is-superset-of'); require('../../modules/esnext.set.join'); diff --git a/packages/core-js/full/set/is-disjoint-from.js b/packages/core-js/full/set/is-disjoint-from.js index 0eae0d6e2235..2db63741a0eb 100644 --- a/packages/core-js/full/set/is-disjoint-from.js +++ b/packages/core-js/full/set/is-disjoint-from.js @@ -1,9 +1,4 @@ 'use strict'; -require('../../actual/set/is-disjoint-from'); -require('../../modules/es.array.iterator'); -require('../../modules/es.string.iterator'); -require('../../modules/esnext.set.is-disjoint-from'); -require('../../modules/web.dom-collections.iterator'); -var entryUnbind = require('../../internals/entry-unbind'); +var parent = require('../../actual/set/is-disjoint-from'); -module.exports = entryUnbind('Set', 'isDisjointFrom'); +module.exports = parent; diff --git a/packages/core-js/internals/set-is-disjoint-from.js b/packages/core-js/internals/set-is-disjoint-from.js deleted file mode 100644 index 148aea8284bc..000000000000 --- a/packages/core-js/internals/set-is-disjoint-from.js +++ /dev/null @@ -1,22 +0,0 @@ -'use strict'; -var aSet = require('../internals/a-set'); -var has = require('../internals/set-helpers').has; -var size = require('../internals/set-size'); -var getSetRecord = require('../internals/get-set-record'); -var iterateSet = require('../internals/set-iterate'); -var iterateSimple = require('../internals/iterate-simple'); -var iteratorClose = require('../internals/iterator-close'); - -// `Set.prototype.isDisjointFrom` method -// https://tc39.es/ecma262/#sec-set.prototype.isdisjointfrom -module.exports = function isDisjointFrom(other) { - var O = aSet(this); - var otherRec = getSetRecord(other); - if (size(O) <= otherRec.size) return iterateSet(O, function (e) { - if (otherRec.includes(e)) return false; - }, true) !== false; - var iterator = otherRec.getIterator(); - return iterateSimple(iterator, function (e) { - if (has(O, e)) return iteratorClose(iterator, 'normal', false); - }) !== false; -}; diff --git a/packages/core-js/modules/es.set.intersection.v2.js b/packages/core-js/modules/es.set.intersection.v2.js index edbed44a3d58..a47cd8e5baeb 100644 --- a/packages/core-js/modules/es.set.intersection.v2.js +++ b/packages/core-js/modules/es.set.intersection.v2.js @@ -16,7 +16,7 @@ var has = SetHelpers.has; var INCORRECT = !setMethodAcceptSetLike('intersection', function (result) { return result.size === 2 && result.has(1) && result.has(2); }) || fails(function () { - // eslint-disable-next-line es/no-array-from, es/no-set, es/no-set-prototype-intersection -- testing + // eslint-disable-next-line es/no-array-from -- testing return String(Array.from(new Set([1, 2, 3]).intersection(new Set([3, 2])))) !== '3,2'; }); diff --git a/packages/core-js/modules/es.set.is-disjoint-from.v2.js b/packages/core-js/modules/es.set.is-disjoint-from.v2.js index b68fe55f106d..7293716b949e 100644 --- a/packages/core-js/modules/es.set.is-disjoint-from.v2.js +++ b/packages/core-js/modules/es.set.is-disjoint-from.v2.js @@ -1,6 +1,12 @@ 'use strict'; var $ = require('../internals/export'); -var isDisjointFrom = require('../internals/set-is-disjoint-from'); +var aSet = require('../internals/a-set'); +var has = require('../internals/set-helpers').has; +var size = require('../internals/set-size'); +var getSetRecord = require('../internals/get-set-record'); +var iterateSet = require('../internals/set-iterate'); +var iterateSimple = require('../internals/iterate-simple'); +var iteratorClose = require('../internals/iterator-close'); var setMethodAcceptSetLike = require('../internals/set-method-accept-set-like'); var INCORRECT = !setMethodAcceptSetLike('isDisjointFrom', function (result) { @@ -10,5 +16,15 @@ var INCORRECT = !setMethodAcceptSetLike('isDisjointFrom', function (result) { // `Set.prototype.isDisjointFrom` method // https://tc39.es/ecma262/#sec-set.prototype.isdisjointfrom $({ target: 'Set', proto: true, real: true, forced: INCORRECT }, { - isDisjointFrom: isDisjointFrom + isDisjointFrom: function isDisjointFrom(other) { + var O = aSet(this); + var otherRec = getSetRecord(other); + if (size(O) <= otherRec.size) return iterateSet(O, function (e) { + if (otherRec.includes(e)) return false; + }, true) !== false; + var iterator = otherRec.getIterator(); + return iterateSimple(iterator, function (e) { + if (has(O, e)) return iteratorClose(iterator, 'normal', false); + }) !== false; + } }); diff --git a/packages/core-js/modules/esnext.set.is-disjoint-from.js b/packages/core-js/modules/esnext.set.is-disjoint-from.js deleted file mode 100644 index bec2b235e0bc..000000000000 --- a/packages/core-js/modules/esnext.set.is-disjoint-from.js +++ /dev/null @@ -1,14 +0,0 @@ -'use strict'; -var $ = require('../internals/export'); -var call = require('../internals/function-call'); -var toSetLike = require('../internals/to-set-like'); -var $isDisjointFrom = require('../internals/set-is-disjoint-from'); - -// `Set.prototype.isDisjointFrom` method -// https://github.com/tc39/proposal-set-methods -// TODO: Obsolete version, remove from `core-js@4` -$({ target: 'Set', proto: true, real: true, forced: true }, { - isDisjointFrom: function isDisjointFrom(other) { - return call($isDisjointFrom, this, toSetLike(other)); - } -}); diff --git a/packages/core-js/proposals/set-methods.js b/packages/core-js/proposals/set-methods.js index 2fbf9435f549..005ecc00026b 100644 --- a/packages/core-js/proposals/set-methods.js +++ b/packages/core-js/proposals/set-methods.js @@ -8,7 +8,6 @@ require('../modules/esnext.set.is-superset-of.v2'); require('../modules/esnext.set.union.v2'); require('../modules/esnext.set.symmetric-difference.v2'); // TODO: Obsolete versions, remove from `core-js@4` -require('../modules/esnext.set.is-disjoint-from'); require('../modules/esnext.set.is-subset-of'); require('../modules/esnext.set.is-superset-of'); require('../modules/esnext.set.union'); diff --git a/tests/compat-data/tests-coverage.mjs b/tests/compat-data/tests-coverage.mjs index a90cd8d8110d..b0a91da244c1 100644 --- a/tests/compat-data/tests-coverage.mjs +++ b/tests/compat-data/tests-coverage.mjs @@ -31,7 +31,6 @@ const ignore = new Set([ 'esnext.reflect.has-metadata', 'esnext.reflect.has-own-metadata', 'esnext.reflect.metadata', - 'esnext.set.is-disjoint-from', 'esnext.set.is-subset-of', 'esnext.set.is-superset-of', 'esnext.set.symmetric-difference', diff --git a/tests/unit-global/es.set.is-disjoint-from.js b/tests/unit-global/es.set.is-disjoint-from.js index 09015f0c2c93..5b73b5bdf170 100644 --- a/tests/unit-global/es.set.is-disjoint-from.js +++ b/tests/unit-global/es.set.is-disjoint-from.js @@ -1,4 +1,4 @@ -import { createIterable, createSetLike } from '../helpers/helpers.js'; +import { createSetLike } from '../helpers/helpers.js'; QUnit.test('Set#isDisjointFrom', assert => { const { isDisjointFrom } = Set.prototype; @@ -18,14 +18,6 @@ QUnit.test('Set#isDisjointFrom', assert => { assert.true(new Set([1, 2, 3]).isDisjointFrom(createSetLike([4, 5, 6]))); assert.false(new Set([1, 2, 3]).isDisjointFrom(createSetLike([5, 4, 3]))); - // TODO: drop from core-js@4 - assert.true(new Set([1]).isDisjointFrom([2])); - assert.false(new Set([1]).isDisjointFrom([1])); - assert.true(new Set([1, 2, 3]).isDisjointFrom([4, 5, 6])); - assert.false(new Set([1, 2, 3]).isDisjointFrom([5, 4, 3])); - assert.true(new Set([1]).isDisjointFrom(createIterable([2]))); - assert.false(new Set([1]).isDisjointFrom(createIterable([1]))); - assert.false(new Set([42, 43]).isDisjointFrom({ size: Infinity, has() { diff --git a/tests/unit-pure/es.set.is-disjoint-from.js b/tests/unit-pure/es.set.is-disjoint-from.js index 96e18d8389bc..176b72dea4a7 100644 --- a/tests/unit-pure/es.set.is-disjoint-from.js +++ b/tests/unit-pure/es.set.is-disjoint-from.js @@ -1,7 +1,6 @@ -import { createIterable, createSetLike } from '../helpers/helpers.js'; +import { createSetLike } from '../helpers/helpers.js'; -// TODO: use /es/ in core-js@4 -import Set from 'core-js-pure/full/set'; +import Set from 'core-js-pure/es/set'; QUnit.test('Set#isDisjointFrom', assert => { const { isDisjointFrom } = Set.prototype; @@ -20,14 +19,6 @@ QUnit.test('Set#isDisjointFrom', assert => { assert.true(new Set([1, 2, 3]).isDisjointFrom(createSetLike([4, 5, 6]))); assert.false(new Set([1, 2, 3]).isDisjointFrom(createSetLike([5, 4, 3]))); - // TODO: drop from core-js@4 - assert.true(new Set([1]).isDisjointFrom([2])); - assert.false(new Set([1]).isDisjointFrom([1])); - assert.true(new Set([1, 2, 3]).isDisjointFrom([4, 5, 6])); - assert.false(new Set([1, 2, 3]).isDisjointFrom([5, 4, 3])); - assert.true(new Set([1]).isDisjointFrom(createIterable([2]))); - assert.false(new Set([1]).isDisjointFrom(createIterable([1]))); - assert.false(new Set([42, 43]).isDisjointFrom({ size: Infinity, has() { From 00554db61c9371802f06bd47824695de7980fdad Mon Sep 17 00:00:00 2001 From: Denis Pushkarev Date: Wed, 4 Oct 2023 04:40:38 +0700 Subject: [PATCH 062/428] drop `esnext.set.is-subset-of` (obsolete) --- packages/core-js-compat/src/data.mjs | 3 --- packages/core-js/full/set/index.js | 1 - packages/core-js/full/set/is-subset-of.js | 9 ++------- packages/core-js/internals/set-is-subset-of.js | 16 ---------------- .../core-js/modules/es.set.is-subset-of.v2.js | 14 ++++++++++++-- .../core-js/modules/esnext.set.is-subset-of.js | 14 -------------- packages/core-js/proposals/set-methods.js | 1 - tests/compat-data/tests-coverage.mjs | 1 - tests/unit-global/es.set.is-subset-of.js | 10 +--------- tests/unit-pure/es.set.is-subset-of.js | 13 ++----------- 10 files changed, 17 insertions(+), 65 deletions(-) delete mode 100644 packages/core-js/internals/set-is-subset-of.js delete mode 100644 packages/core-js/modules/esnext.set.is-subset-of.js diff --git a/packages/core-js-compat/src/data.mjs b/packages/core-js-compat/src/data.mjs index da5647a5733e..38525da2a608 100644 --- a/packages/core-js-compat/src/data.mjs +++ b/packages/core-js-compat/src/data.mjs @@ -2636,9 +2636,6 @@ export const data = { // TODO: Remove from `core-js@4` 'esnext.set.is-subset-of.v2': null, // TODO: Remove from `core-js@4` - 'esnext.set.is-subset-of': { - }, - // TODO: Remove from `core-js@4` 'esnext.set.is-superset-of.v2': null, // TODO: Remove from `core-js@4` 'esnext.set.is-superset-of': { diff --git a/packages/core-js/full/set/index.js b/packages/core-js/full/set/index.js index 328193fe2039..f670b4278188 100644 --- a/packages/core-js/full/set/index.js +++ b/packages/core-js/full/set/index.js @@ -7,7 +7,6 @@ require('../../modules/esnext.set.delete-all'); require('../../modules/esnext.set.every'); require('../../modules/esnext.set.filter'); require('../../modules/esnext.set.find'); -require('../../modules/esnext.set.is-subset-of'); require('../../modules/esnext.set.is-superset-of'); require('../../modules/esnext.set.join'); require('../../modules/esnext.set.map'); diff --git a/packages/core-js/full/set/is-subset-of.js b/packages/core-js/full/set/is-subset-of.js index 6cab425031fa..cbb3c4427a28 100644 --- a/packages/core-js/full/set/is-subset-of.js +++ b/packages/core-js/full/set/is-subset-of.js @@ -1,9 +1,4 @@ 'use strict'; -require('../../actual/set/is-subset-of'); -require('../../modules/es.array.iterator'); -require('../../modules/es.string.iterator'); -require('../../modules/esnext.set.is-subset-of'); -require('../../modules/web.dom-collections.iterator'); -var entryUnbind = require('../../internals/entry-unbind'); +var parent = require('../../actual/set/is-subset-of'); -module.exports = entryUnbind('Set', 'isSubsetOf'); +module.exports = parent; diff --git a/packages/core-js/internals/set-is-subset-of.js b/packages/core-js/internals/set-is-subset-of.js deleted file mode 100644 index c3d6aa141532..000000000000 --- a/packages/core-js/internals/set-is-subset-of.js +++ /dev/null @@ -1,16 +0,0 @@ -'use strict'; -var aSet = require('../internals/a-set'); -var size = require('../internals/set-size'); -var iterate = require('../internals/set-iterate'); -var getSetRecord = require('../internals/get-set-record'); - -// `Set.prototype.isSubsetOf` method -// https://tc39.es/ecma262/#sec-set.prototype.issubsetof -module.exports = function isSubsetOf(other) { - var O = aSet(this); - var otherRec = getSetRecord(other); - if (size(O) > otherRec.size) return false; - return iterate(O, function (e) { - if (!otherRec.includes(e)) return false; - }, true) !== false; -}; diff --git a/packages/core-js/modules/es.set.is-subset-of.v2.js b/packages/core-js/modules/es.set.is-subset-of.v2.js index 3117f01c118a..d7f4a32e1d5f 100644 --- a/packages/core-js/modules/es.set.is-subset-of.v2.js +++ b/packages/core-js/modules/es.set.is-subset-of.v2.js @@ -1,6 +1,9 @@ 'use strict'; var $ = require('../internals/export'); -var isSubsetOf = require('../internals/set-is-subset-of'); +var aSet = require('../internals/a-set'); +var size = require('../internals/set-size'); +var iterate = require('../internals/set-iterate'); +var getSetRecord = require('../internals/get-set-record'); var setMethodAcceptSetLike = require('../internals/set-method-accept-set-like'); var INCORRECT = !setMethodAcceptSetLike('isSubsetOf', function (result) { @@ -10,5 +13,12 @@ var INCORRECT = !setMethodAcceptSetLike('isSubsetOf', function (result) { // `Set.prototype.isSubsetOf` method // https://tc39.es/ecma262/#sec-set.prototype.issubsetof $({ target: 'Set', proto: true, real: true, forced: INCORRECT }, { - isSubsetOf: isSubsetOf + isSubsetOf: function isSubsetOf(other) { + var O = aSet(this); + var otherRec = getSetRecord(other); + if (size(O) > otherRec.size) return false; + return iterate(O, function (e) { + if (!otherRec.includes(e)) return false; + }, true) !== false; + } }); diff --git a/packages/core-js/modules/esnext.set.is-subset-of.js b/packages/core-js/modules/esnext.set.is-subset-of.js deleted file mode 100644 index 7b30e93501af..000000000000 --- a/packages/core-js/modules/esnext.set.is-subset-of.js +++ /dev/null @@ -1,14 +0,0 @@ -'use strict'; -var $ = require('../internals/export'); -var call = require('../internals/function-call'); -var toSetLike = require('../internals/to-set-like'); -var $isSubsetOf = require('../internals/set-is-subset-of'); - -// `Set.prototype.isSubsetOf` method -// https://github.com/tc39/proposal-set-methods -// TODO: Obsolete version, remove from `core-js@4` -$({ target: 'Set', proto: true, real: true, forced: true }, { - isSubsetOf: function isSubsetOf(other) { - return call($isSubsetOf, this, toSetLike(other)); - } -}); diff --git a/packages/core-js/proposals/set-methods.js b/packages/core-js/proposals/set-methods.js index 005ecc00026b..21257bf5358d 100644 --- a/packages/core-js/proposals/set-methods.js +++ b/packages/core-js/proposals/set-methods.js @@ -8,7 +8,6 @@ require('../modules/esnext.set.is-superset-of.v2'); require('../modules/esnext.set.union.v2'); require('../modules/esnext.set.symmetric-difference.v2'); // TODO: Obsolete versions, remove from `core-js@4` -require('../modules/esnext.set.is-subset-of'); require('../modules/esnext.set.is-superset-of'); require('../modules/esnext.set.union'); require('../modules/esnext.set.symmetric-difference'); diff --git a/tests/compat-data/tests-coverage.mjs b/tests/compat-data/tests-coverage.mjs index b0a91da244c1..6ae329e92b06 100644 --- a/tests/compat-data/tests-coverage.mjs +++ b/tests/compat-data/tests-coverage.mjs @@ -31,7 +31,6 @@ const ignore = new Set([ 'esnext.reflect.has-metadata', 'esnext.reflect.has-own-metadata', 'esnext.reflect.metadata', - 'esnext.set.is-subset-of', 'esnext.set.is-superset-of', 'esnext.set.symmetric-difference', 'esnext.set.union', diff --git a/tests/unit-global/es.set.is-subset-of.js b/tests/unit-global/es.set.is-subset-of.js index 7728a78f9e5b..eb82bb6b9543 100644 --- a/tests/unit-global/es.set.is-subset-of.js +++ b/tests/unit-global/es.set.is-subset-of.js @@ -1,4 +1,4 @@ -import { createIterable, createSetLike } from '../helpers/helpers.js'; +import { createSetLike } from '../helpers/helpers.js'; QUnit.test('Set#isSubsetOf', assert => { const { isSubsetOf } = Set.prototype; @@ -18,14 +18,6 @@ QUnit.test('Set#isSubsetOf', assert => { assert.true(new Set([1, 2, 3]).isSubsetOf(createSetLike([5, 4, 3, 2, 1]))); assert.false(new Set([1, 2, 3]).isSubsetOf(createSetLike([5, 4, 3, 2]))); - // TODO: drop from core-js@4 - assert.true(new Set([1]).isSubsetOf([1, 2, 3])); - assert.false(new Set([1]).isSubsetOf([2, 3, 4])); - assert.true(new Set([1, 2, 3]).isSubsetOf([5, 4, 3, 2, 1])); - assert.false(new Set([1, 2, 3]).isSubsetOf([5, 4, 3, 2])); - assert.true(new Set([1]).isSubsetOf(createIterable([1, 2, 3]))); - assert.false(new Set([1]).isSubsetOf(createIterable([2, 3, 4]))); - assert.true(new Set([42, 43]).isSubsetOf({ size: Infinity, has() { diff --git a/tests/unit-pure/es.set.is-subset-of.js b/tests/unit-pure/es.set.is-subset-of.js index 556e1c0d1d3f..15dc3177e0fd 100644 --- a/tests/unit-pure/es.set.is-subset-of.js +++ b/tests/unit-pure/es.set.is-subset-of.js @@ -1,7 +1,6 @@ -import { createIterable, createSetLike } from '../helpers/helpers.js'; +import { createSetLike } from '../helpers/helpers.js'; -// TODO: use /es/ in core-js@4 -import Set from 'core-js-pure/full/set'; +import Set from 'core-js-pure/es/set'; QUnit.test('Set#isSubsetOf', assert => { const { isSubsetOf } = Set.prototype; @@ -20,14 +19,6 @@ QUnit.test('Set#isSubsetOf', assert => { assert.true(new Set([1, 2, 3]).isSubsetOf(createSetLike([5, 4, 3, 2, 1]))); assert.false(new Set([1, 2, 3]).isSubsetOf(createSetLike([5, 4, 3, 2]))); - // TODO: drop from core-js@4 - assert.true(new Set([1]).isSubsetOf([1, 2, 3])); - assert.false(new Set([1]).isSubsetOf([2, 3, 4])); - assert.true(new Set([1, 2, 3]).isSubsetOf([5, 4, 3, 2, 1])); - assert.false(new Set([1, 2, 3]).isSubsetOf([5, 4, 3, 2])); - assert.true(new Set([1]).isSubsetOf(createIterable([1, 2, 3]))); - assert.false(new Set([1]).isSubsetOf(createIterable([2, 3, 4]))); - assert.true(new Set([42, 43]).isSubsetOf({ size: Infinity, has() { From 8dca16105cfe3b896409bbecccddb055fbef22c0 Mon Sep 17 00:00:00 2001 From: Denis Pushkarev Date: Wed, 4 Oct 2023 05:01:27 +0700 Subject: [PATCH 063/428] drop `esnext.set.is-superset-of` (obsolete) --- packages/core-js-compat/src/data.mjs | 3 --- packages/core-js/full/set/index.js | 1 - packages/core-js/full/set/is-superset-of.js | 9 ++------- .../core-js/internals/set-is-superset-of.js | 19 ------------------- .../modules/es.set.is-superset-of.v2.js | 17 +++++++++++++++-- .../modules/esnext.set.is-superset-of.js | 14 -------------- packages/core-js/proposals/set-methods.js | 1 - tests/compat-data/tests-coverage.mjs | 1 - tests/unit-global/es.set.is-superset-of.js | 10 +--------- tests/unit-pure/es.set.is-superset-of.js | 13 ++----------- 10 files changed, 20 insertions(+), 68 deletions(-) delete mode 100644 packages/core-js/internals/set-is-superset-of.js delete mode 100644 packages/core-js/modules/esnext.set.is-superset-of.js diff --git a/packages/core-js-compat/src/data.mjs b/packages/core-js-compat/src/data.mjs index 38525da2a608..e3f8c3c17db5 100644 --- a/packages/core-js-compat/src/data.mjs +++ b/packages/core-js-compat/src/data.mjs @@ -2637,9 +2637,6 @@ export const data = { 'esnext.set.is-subset-of.v2': null, // TODO: Remove from `core-js@4` 'esnext.set.is-superset-of.v2': null, - // TODO: Remove from `core-js@4` - 'esnext.set.is-superset-of': { - }, 'esnext.set.join': { }, 'esnext.set.map': { diff --git a/packages/core-js/full/set/index.js b/packages/core-js/full/set/index.js index f670b4278188..fdec0f319fdf 100644 --- a/packages/core-js/full/set/index.js +++ b/packages/core-js/full/set/index.js @@ -7,7 +7,6 @@ require('../../modules/esnext.set.delete-all'); require('../../modules/esnext.set.every'); require('../../modules/esnext.set.filter'); require('../../modules/esnext.set.find'); -require('../../modules/esnext.set.is-superset-of'); require('../../modules/esnext.set.join'); require('../../modules/esnext.set.map'); require('../../modules/esnext.set.reduce'); diff --git a/packages/core-js/full/set/is-superset-of.js b/packages/core-js/full/set/is-superset-of.js index 38c029ec206e..f9bbeba9ac6f 100644 --- a/packages/core-js/full/set/is-superset-of.js +++ b/packages/core-js/full/set/is-superset-of.js @@ -1,9 +1,4 @@ 'use strict'; -require('../../actual/set/is-superset-of'); -require('../../modules/es.array.iterator'); -require('../../modules/es.string.iterator'); -require('../../modules/esnext.set.is-superset-of'); -require('../../modules/web.dom-collections.iterator'); -var entryUnbind = require('../../internals/entry-unbind'); +var parent = require('../../actual/set/is-superset-of'); -module.exports = entryUnbind('Set', 'isSupersetOf'); +module.exports = parent; diff --git a/packages/core-js/internals/set-is-superset-of.js b/packages/core-js/internals/set-is-superset-of.js deleted file mode 100644 index 1baddbda16bc..000000000000 --- a/packages/core-js/internals/set-is-superset-of.js +++ /dev/null @@ -1,19 +0,0 @@ -'use strict'; -var aSet = require('../internals/a-set'); -var has = require('../internals/set-helpers').has; -var size = require('../internals/set-size'); -var getSetRecord = require('../internals/get-set-record'); -var iterateSimple = require('../internals/iterate-simple'); -var iteratorClose = require('../internals/iterator-close'); - -// `Set.prototype.isSupersetOf` method -// https://tc39.es/ecma262/#sec-set.prototype.issupersetof -module.exports = function isSupersetOf(other) { - var O = aSet(this); - var otherRec = getSetRecord(other); - if (size(O) < otherRec.size) return false; - var iterator = otherRec.getIterator(); - return iterateSimple(iterator, function (e) { - if (!has(O, e)) return iteratorClose(iterator, 'normal', false); - }) !== false; -}; diff --git a/packages/core-js/modules/es.set.is-superset-of.v2.js b/packages/core-js/modules/es.set.is-superset-of.v2.js index 2d47461cf9bc..b8c3e503dfd8 100644 --- a/packages/core-js/modules/es.set.is-superset-of.v2.js +++ b/packages/core-js/modules/es.set.is-superset-of.v2.js @@ -1,6 +1,11 @@ 'use strict'; var $ = require('../internals/export'); -var isSupersetOf = require('../internals/set-is-superset-of'); +var aSet = require('../internals/a-set'); +var has = require('../internals/set-helpers').has; +var size = require('../internals/set-size'); +var getSetRecord = require('../internals/get-set-record'); +var iterateSimple = require('../internals/iterate-simple'); +var iteratorClose = require('../internals/iterator-close'); var setMethodAcceptSetLike = require('../internals/set-method-accept-set-like'); var INCORRECT = !setMethodAcceptSetLike('isSupersetOf', function (result) { @@ -10,5 +15,13 @@ var INCORRECT = !setMethodAcceptSetLike('isSupersetOf', function (result) { // `Set.prototype.isSupersetOf` method // https://tc39.es/ecma262/#sec-set.prototype.issupersetof $({ target: 'Set', proto: true, real: true, forced: INCORRECT }, { - isSupersetOf: isSupersetOf + isSupersetOf: function isSupersetOf(other) { + var O = aSet(this); + var otherRec = getSetRecord(other); + if (size(O) < otherRec.size) return false; + var iterator = otherRec.getIterator(); + return iterateSimple(iterator, function (e) { + if (!has(O, e)) return iteratorClose(iterator, 'normal', false); + }) !== false; + } }); diff --git a/packages/core-js/modules/esnext.set.is-superset-of.js b/packages/core-js/modules/esnext.set.is-superset-of.js deleted file mode 100644 index 432508534e8c..000000000000 --- a/packages/core-js/modules/esnext.set.is-superset-of.js +++ /dev/null @@ -1,14 +0,0 @@ -'use strict'; -var $ = require('../internals/export'); -var call = require('../internals/function-call'); -var toSetLike = require('../internals/to-set-like'); -var $isSupersetOf = require('../internals/set-is-superset-of'); - -// `Set.prototype.isSupersetOf` method -// https://github.com/tc39/proposal-set-methods -// TODO: Obsolete version, remove from `core-js@4` -$({ target: 'Set', proto: true, real: true, forced: true }, { - isSupersetOf: function isSupersetOf(other) { - return call($isSupersetOf, this, toSetLike(other)); - } -}); diff --git a/packages/core-js/proposals/set-methods.js b/packages/core-js/proposals/set-methods.js index 21257bf5358d..d0e58eb34442 100644 --- a/packages/core-js/proposals/set-methods.js +++ b/packages/core-js/proposals/set-methods.js @@ -8,6 +8,5 @@ require('../modules/esnext.set.is-superset-of.v2'); require('../modules/esnext.set.union.v2'); require('../modules/esnext.set.symmetric-difference.v2'); // TODO: Obsolete versions, remove from `core-js@4` -require('../modules/esnext.set.is-superset-of'); require('../modules/esnext.set.union'); require('../modules/esnext.set.symmetric-difference'); diff --git a/tests/compat-data/tests-coverage.mjs b/tests/compat-data/tests-coverage.mjs index 6ae329e92b06..34d779ce5a19 100644 --- a/tests/compat-data/tests-coverage.mjs +++ b/tests/compat-data/tests-coverage.mjs @@ -31,7 +31,6 @@ const ignore = new Set([ 'esnext.reflect.has-metadata', 'esnext.reflect.has-own-metadata', 'esnext.reflect.metadata', - 'esnext.set.is-superset-of', 'esnext.set.symmetric-difference', 'esnext.set.union', 'esnext.symbol.matcher', diff --git a/tests/unit-global/es.set.is-superset-of.js b/tests/unit-global/es.set.is-superset-of.js index bd6cb3256013..fe780b2e8481 100644 --- a/tests/unit-global/es.set.is-superset-of.js +++ b/tests/unit-global/es.set.is-superset-of.js @@ -1,4 +1,4 @@ -import { createIterable, createSetLike } from '../helpers/helpers.js'; +import { createSetLike } from '../helpers/helpers.js'; QUnit.test('Set#isSupersetOf', assert => { const { isSupersetOf } = Set.prototype; @@ -18,14 +18,6 @@ QUnit.test('Set#isSupersetOf', assert => { assert.true(new Set([5, 4, 3, 2, 1]).isSupersetOf(createSetLike([1, 2, 3]))); assert.false(new Set([5, 4, 3, 2]).isSupersetOf(createSetLike([1, 2, 3]))); - // TODO: drop from core-js@4 - assert.true(new Set([1, 2, 3]).isSupersetOf([1])); - assert.false(new Set([2, 3, 4]).isSupersetOf([1])); - assert.true(new Set([5, 4, 3, 2, 1]).isSupersetOf([1, 2, 3])); - assert.false(new Set([5, 4, 3, 2]).isSupersetOf([1, 2, 3])); - assert.true(new Set([1, 2, 3]).isSupersetOf(createIterable([1]))); - assert.false(new Set([2, 3, 4]).isSupersetOf(createIterable([1]))); - assert.false(new Set([42, 43]).isSupersetOf({ size: Infinity, has() { diff --git a/tests/unit-pure/es.set.is-superset-of.js b/tests/unit-pure/es.set.is-superset-of.js index f4860ba6dd97..4357242428b3 100644 --- a/tests/unit-pure/es.set.is-superset-of.js +++ b/tests/unit-pure/es.set.is-superset-of.js @@ -1,7 +1,6 @@ -import { createIterable, createSetLike } from '../helpers/helpers.js'; +import { createSetLike } from '../helpers/helpers.js'; -// TODO: use /es/ in core-js@4 -import Set from 'core-js-pure/full/set'; +import Set from 'core-js-pure/es/set'; QUnit.test('Set#isSupersetOf', assert => { const { isSupersetOf } = Set.prototype; @@ -20,14 +19,6 @@ QUnit.test('Set#isSupersetOf', assert => { assert.true(new Set([5, 4, 3, 2, 1]).isSupersetOf(createSetLike([1, 2, 3]))); assert.false(new Set([5, 4, 3, 2]).isSupersetOf(createSetLike([1, 2, 3]))); - // TODO: drop from core-js@4 - assert.true(new Set([1, 2, 3]).isSupersetOf([1])); - assert.false(new Set([2, 3, 4]).isSupersetOf([1])); - assert.true(new Set([5, 4, 3, 2, 1]).isSupersetOf([1, 2, 3])); - assert.false(new Set([5, 4, 3, 2]).isSupersetOf([1, 2, 3])); - assert.true(new Set([1, 2, 3]).isSupersetOf(createIterable([1]))); - assert.false(new Set([2, 3, 4]).isSupersetOf(createIterable([1]))); - assert.false(new Set([42, 43]).isSupersetOf({ size: Infinity, has() { From 697e14fefad42d0b0d703b9f5b8bce9d393cff61 Mon Sep 17 00:00:00 2001 From: Denis Pushkarev Date: Wed, 4 Oct 2023 05:09:24 +0700 Subject: [PATCH 064/428] drop `esnext.set.symmetric-difference` (obsolete) --- packages/core-js-compat/src/data.mjs | 3 --- packages/core-js/full/set/index.js | 1 - .../core-js/full/set/symmetric-difference.js | 9 ++------ .../internals/set-symmetric-difference.js | 23 ------------------- .../modules/es.set.symmetric-difference.v2.js | 21 +++++++++++++++-- .../esnext.set.symmetric-difference.js | 14 ----------- packages/core-js/proposals/set-methods.js | 3 +-- tests/compat-data/tests-coverage.mjs | 1 - .../es.set.symmetric-difference.js | 8 +------ .../unit-pure/es.set.symmetric-difference.js | 11 ++------- 10 files changed, 25 insertions(+), 69 deletions(-) delete mode 100644 packages/core-js/internals/set-symmetric-difference.js delete mode 100644 packages/core-js/modules/esnext.set.symmetric-difference.js diff --git a/packages/core-js-compat/src/data.mjs b/packages/core-js-compat/src/data.mjs index e3f8c3c17db5..3fb6d838814a 100644 --- a/packages/core-js-compat/src/data.mjs +++ b/packages/core-js-compat/src/data.mjs @@ -2650,9 +2650,6 @@ export const data = { // TODO: Remove from `core-js@4` 'esnext.set.symmetric-difference.v2': null, // TODO: Remove from `core-js@4` - 'esnext.set.symmetric-difference': { - }, - // TODO: Remove from `core-js@4` 'esnext.set.union.v2': null, // TODO: Remove from `core-js@4` 'esnext.set.union': { diff --git a/packages/core-js/full/set/index.js b/packages/core-js/full/set/index.js index fdec0f319fdf..6b9dbacfb94e 100644 --- a/packages/core-js/full/set/index.js +++ b/packages/core-js/full/set/index.js @@ -11,7 +11,6 @@ require('../../modules/esnext.set.join'); require('../../modules/esnext.set.map'); require('../../modules/esnext.set.reduce'); require('../../modules/esnext.set.some'); -require('../../modules/esnext.set.symmetric-difference'); require('../../modules/esnext.set.union'); module.exports = parent; diff --git a/packages/core-js/full/set/symmetric-difference.js b/packages/core-js/full/set/symmetric-difference.js index 04b74e8b0812..18fce1c6f081 100644 --- a/packages/core-js/full/set/symmetric-difference.js +++ b/packages/core-js/full/set/symmetric-difference.js @@ -1,9 +1,4 @@ 'use strict'; -require('../../actual/set/symmetric-difference'); -require('../../modules/es.array.iterator'); -require('../../modules/es.string.iterator'); -require('../../modules/esnext.set.symmetric-difference'); -require('../../modules/web.dom-collections.iterator'); -var entryUnbind = require('../../internals/entry-unbind'); +var parent = require('../../actual/set/symmetric-difference'); -module.exports = entryUnbind('Set', 'symmetricDifference'); +module.exports = parent; diff --git a/packages/core-js/internals/set-symmetric-difference.js b/packages/core-js/internals/set-symmetric-difference.js deleted file mode 100644 index ce13d680bdb4..000000000000 --- a/packages/core-js/internals/set-symmetric-difference.js +++ /dev/null @@ -1,23 +0,0 @@ -'use strict'; -var aSet = require('../internals/a-set'); -var SetHelpers = require('../internals/set-helpers'); -var clone = require('../internals/set-clone'); -var getSetRecord = require('../internals/get-set-record'); -var iterateSimple = require('../internals/iterate-simple'); - -var add = SetHelpers.add; -var has = SetHelpers.has; -var remove = SetHelpers.remove; - -// `Set.prototype.symmetricDifference` method -// https://tc39.es/ecma262/#sec-set.prototype.symmetricdifference -module.exports = function symmetricDifference(other) { - var O = aSet(this); - var keysIter = getSetRecord(other).getIterator(); - var result = clone(O); - iterateSimple(keysIter, function (e) { - if (has(O, e)) remove(result, e); - else add(result, e); - }); - return result; -}; diff --git a/packages/core-js/modules/es.set.symmetric-difference.v2.js b/packages/core-js/modules/es.set.symmetric-difference.v2.js index 776dde6a5357..f883054679db 100644 --- a/packages/core-js/modules/es.set.symmetric-difference.v2.js +++ b/packages/core-js/modules/es.set.symmetric-difference.v2.js @@ -1,13 +1,30 @@ 'use strict'; var $ = require('../internals/export'); -var symmetricDifference = require('../internals/set-symmetric-difference'); +var aSet = require('../internals/a-set'); +var SetHelpers = require('../internals/set-helpers'); +var clone = require('../internals/set-clone'); +var getSetRecord = require('../internals/get-set-record'); +var iterateSimple = require('../internals/iterate-simple'); var setMethodGetKeysBeforeCloning = require('../internals/set-method-get-keys-before-cloning-detection'); var setMethodAcceptSetLike = require('../internals/set-method-accept-set-like'); +var add = SetHelpers.add; +var has = SetHelpers.has; +var remove = SetHelpers.remove; + var FORCED = !setMethodAcceptSetLike('symmetricDifference') || !setMethodGetKeysBeforeCloning('symmetricDifference'); // `Set.prototype.symmetricDifference` method // https://tc39.es/ecma262/#sec-set.prototype.symmetricdifference $({ target: 'Set', proto: true, real: true, forced: FORCED }, { - symmetricDifference: symmetricDifference + symmetricDifference: function symmetricDifference(other) { + var O = aSet(this); + var keysIter = getSetRecord(other).getIterator(); + var result = clone(O); + iterateSimple(keysIter, function (e) { + if (has(O, e)) remove(result, e); + else add(result, e); + }); + return result; + } }); diff --git a/packages/core-js/modules/esnext.set.symmetric-difference.js b/packages/core-js/modules/esnext.set.symmetric-difference.js deleted file mode 100644 index fa697f02df3b..000000000000 --- a/packages/core-js/modules/esnext.set.symmetric-difference.js +++ /dev/null @@ -1,14 +0,0 @@ -'use strict'; -var $ = require('../internals/export'); -var call = require('../internals/function-call'); -var toSetLike = require('../internals/to-set-like'); -var $symmetricDifference = require('../internals/set-symmetric-difference'); - -// `Set.prototype.symmetricDifference` method -// https://github.com/tc39/proposal-set-methods -// TODO: Obsolete version, remove from `core-js@4` -$({ target: 'Set', proto: true, real: true, forced: true }, { - symmetricDifference: function symmetricDifference(other) { - return call($symmetricDifference, this, toSetLike(other)); - } -}); diff --git a/packages/core-js/proposals/set-methods.js b/packages/core-js/proposals/set-methods.js index d0e58eb34442..dfaea7fae3e5 100644 --- a/packages/core-js/proposals/set-methods.js +++ b/packages/core-js/proposals/set-methods.js @@ -5,8 +5,7 @@ require('../modules/esnext.set.intersection.v2'); require('../modules/esnext.set.is-disjoint-from.v2'); require('../modules/esnext.set.is-subset-of.v2'); require('../modules/esnext.set.is-superset-of.v2'); -require('../modules/esnext.set.union.v2'); require('../modules/esnext.set.symmetric-difference.v2'); +require('../modules/esnext.set.union.v2'); // TODO: Obsolete versions, remove from `core-js@4` require('../modules/esnext.set.union'); -require('../modules/esnext.set.symmetric-difference'); diff --git a/tests/compat-data/tests-coverage.mjs b/tests/compat-data/tests-coverage.mjs index 34d779ce5a19..7a30e941c7f8 100644 --- a/tests/compat-data/tests-coverage.mjs +++ b/tests/compat-data/tests-coverage.mjs @@ -31,7 +31,6 @@ const ignore = new Set([ 'esnext.reflect.has-metadata', 'esnext.reflect.has-own-metadata', 'esnext.reflect.metadata', - 'esnext.set.symmetric-difference', 'esnext.set.union', 'esnext.symbol.matcher', 'esnext.weak-map.emplace', diff --git a/tests/unit-global/es.set.symmetric-difference.js b/tests/unit-global/es.set.symmetric-difference.js index 66e55e07629f..c46df88b2b9e 100644 --- a/tests/unit-global/es.set.symmetric-difference.js +++ b/tests/unit-global/es.set.symmetric-difference.js @@ -1,5 +1,5 @@ import { DESCRIPTORS } from '../helpers/constants.js'; -import { createIterable, createSetLike } from '../helpers/helpers.js'; +import { createSetLike } from '../helpers/helpers.js'; QUnit.test('Set#symmetricDifference', assert => { const { symmetricDifference } = Set.prototype; @@ -20,12 +20,6 @@ QUnit.test('Set#symmetricDifference', assert => { assert.deepEqual(from(new Set([1, 2, 3]).symmetricDifference(createSetLike([4, 5]))), [1, 2, 3, 4, 5]); assert.deepEqual(from(new Set([1, 2, 3]).symmetricDifference(createSetLike([3, 4]))), [1, 2, 4]); - // TODO: drop from core-js@4 - assert.deepEqual(from(new Set([1, 2, 3]).symmetricDifference([4, 5])), [1, 2, 3, 4, 5]); - assert.deepEqual(from(new Set([1, 2, 3]).symmetricDifference([3, 4])), [1, 2, 4]); - assert.deepEqual(from(new Set([1, 2, 3]).symmetricDifference(createIterable([4, 5]))), [1, 2, 3, 4, 5]); - assert.deepEqual(from(new Set([1, 2, 3]).symmetricDifference(createIterable([3, 4]))), [1, 2, 4]); - assert.throws(() => new Set([1, 2, 3]).symmetricDifference(), TypeError); assert.throws(() => symmetricDifference.call({}, [1, 2, 3]), TypeError); diff --git a/tests/unit-pure/es.set.symmetric-difference.js b/tests/unit-pure/es.set.symmetric-difference.js index 1b3b3c8e5ce4..657a023fcd9d 100644 --- a/tests/unit-pure/es.set.symmetric-difference.js +++ b/tests/unit-pure/es.set.symmetric-difference.js @@ -1,10 +1,9 @@ import { DESCRIPTORS } from '../helpers/constants.js'; -import { createIterable, createSetLike } from '../helpers/helpers.js'; +import { createSetLike } from '../helpers/helpers.js'; import from from 'core-js-pure/es/array/from'; import defineProperty from 'core-js-pure/es/object/define-property'; -// TODO: use /es/ in core-js@4 -import Set from 'core-js-pure/full/set'; +import Set from 'core-js-pure/es/set'; QUnit.test('Set#symmetricDifference', assert => { const { symmetricDifference } = Set.prototype; @@ -22,12 +21,6 @@ QUnit.test('Set#symmetricDifference', assert => { assert.deepEqual(from(new Set([1, 2, 3]).symmetricDifference(createSetLike([4, 5]))), [1, 2, 3, 4, 5]); assert.deepEqual(from(new Set([1, 2, 3]).symmetricDifference(createSetLike([3, 4]))), [1, 2, 4]); - // TODO: drop from core-js@4 - assert.deepEqual(from(new Set([1, 2, 3]).symmetricDifference([4, 5])), [1, 2, 3, 4, 5]); - assert.deepEqual(from(new Set([1, 2, 3]).symmetricDifference([3, 4])), [1, 2, 4]); - assert.deepEqual(from(new Set([1, 2, 3]).symmetricDifference(createIterable([4, 5]))), [1, 2, 3, 4, 5]); - assert.deepEqual(from(new Set([1, 2, 3]).symmetricDifference(createIterable([3, 4]))), [1, 2, 4]); - assert.throws(() => new Set([1, 2, 3]).symmetricDifference(), TypeError); assert.throws(() => symmetricDifference.call({}, [1, 2, 3]), TypeError); From e6a265028fb79d46c230aadc78a1edde4b5685a5 Mon Sep 17 00:00:00 2001 From: Denis Pushkarev Date: Wed, 4 Oct 2023 05:22:00 +0700 Subject: [PATCH 065/428] drop `esnext.set.union` (obsolete) --- packages/core-js-compat/src/data.mjs | 3 --- packages/core-js/full/set/index.js | 1 - packages/core-js/full/set/union.js | 9 ++------- packages/core-js/internals/set-union.js | 18 ------------------ packages/core-js/internals/to-set-like.js | 20 -------------------- packages/core-js/modules/es.set.union.v2.js | 16 ++++++++++++++-- packages/core-js/modules/esnext.set.union.js | 14 -------------- packages/core-js/proposals/set-methods.js | 11 ----------- packages/core-js/stage/2.js | 3 +-- tests/compat-data/tests-coverage.mjs | 1 - tests/entries/unit.mjs | 1 - tests/unit-global/es.set.union.js | 7 +------ tests/unit-pure/es.set.union.js | 10 ++-------- 13 files changed, 20 insertions(+), 94 deletions(-) delete mode 100644 packages/core-js/internals/set-union.js delete mode 100644 packages/core-js/internals/to-set-like.js delete mode 100644 packages/core-js/modules/esnext.set.union.js delete mode 100644 packages/core-js/proposals/set-methods.js diff --git a/packages/core-js-compat/src/data.mjs b/packages/core-js-compat/src/data.mjs index 3fb6d838814a..be7a9e196187 100644 --- a/packages/core-js-compat/src/data.mjs +++ b/packages/core-js-compat/src/data.mjs @@ -2651,9 +2651,6 @@ export const data = { 'esnext.set.symmetric-difference.v2': null, // TODO: Remove from `core-js@4` 'esnext.set.union.v2': null, - // TODO: Remove from `core-js@4` - 'esnext.set.union': { - }, 'esnext.string.cooked': { }, 'esnext.string.code-points': { diff --git a/packages/core-js/full/set/index.js b/packages/core-js/full/set/index.js index 6b9dbacfb94e..69afdf49ef6a 100644 --- a/packages/core-js/full/set/index.js +++ b/packages/core-js/full/set/index.js @@ -11,6 +11,5 @@ require('../../modules/esnext.set.join'); require('../../modules/esnext.set.map'); require('../../modules/esnext.set.reduce'); require('../../modules/esnext.set.some'); -require('../../modules/esnext.set.union'); module.exports = parent; diff --git a/packages/core-js/full/set/union.js b/packages/core-js/full/set/union.js index 146011c3b761..eb0d0e3974c2 100644 --- a/packages/core-js/full/set/union.js +++ b/packages/core-js/full/set/union.js @@ -1,9 +1,4 @@ 'use strict'; -require('../../actual/set/union'); -require('../../modules/es.array.iterator'); -require('../../modules/es.string.iterator'); -require('../../modules/esnext.set.union'); -require('../../modules/web.dom-collections.iterator'); -var entryUnbind = require('../../internals/entry-unbind'); +var parent = require('../../actual/set/union'); -module.exports = entryUnbind('Set', 'union'); +module.exports = parent; diff --git a/packages/core-js/internals/set-union.js b/packages/core-js/internals/set-union.js deleted file mode 100644 index bfd9735e89c5..000000000000 --- a/packages/core-js/internals/set-union.js +++ /dev/null @@ -1,18 +0,0 @@ -'use strict'; -var aSet = require('../internals/a-set'); -var add = require('../internals/set-helpers').add; -var clone = require('../internals/set-clone'); -var getSetRecord = require('../internals/get-set-record'); -var iterateSimple = require('../internals/iterate-simple'); - -// `Set.prototype.union` method -// https://tc39.es/ecma262/#sec-set.prototype.union -module.exports = function union(other) { - var O = aSet(this); - var keysIter = getSetRecord(other).getIterator(); - var result = clone(O); - iterateSimple(keysIter, function (it) { - add(result, it); - }); - return result; -}; diff --git a/packages/core-js/internals/to-set-like.js b/packages/core-js/internals/to-set-like.js deleted file mode 100644 index dcdbda3139ae..000000000000 --- a/packages/core-js/internals/to-set-like.js +++ /dev/null @@ -1,20 +0,0 @@ -'use strict'; -var getBuiltIn = require('../internals/get-built-in'); -var isCallable = require('../internals/is-callable'); -var isIterable = require('../internals/is-iterable'); -var isObject = require('../internals/is-object'); - -var Set = getBuiltIn('Set'); - -var isSetLike = function (it) { - return isObject(it) - && typeof it.size == 'number' - && isCallable(it.has) - && isCallable(it.keys); -}; - -// fallback old -> new set methods proposal arguments -module.exports = function (it) { - if (isSetLike(it)) return it; - return isIterable(it) ? new Set(it) : it; -}; diff --git a/packages/core-js/modules/es.set.union.v2.js b/packages/core-js/modules/es.set.union.v2.js index a1c3e12e523b..22ab2ea76966 100644 --- a/packages/core-js/modules/es.set.union.v2.js +++ b/packages/core-js/modules/es.set.union.v2.js @@ -1,6 +1,10 @@ 'use strict'; var $ = require('../internals/export'); -var union = require('../internals/set-union'); +var aSet = require('../internals/a-set'); +var add = require('../internals/set-helpers').add; +var clone = require('../internals/set-clone'); +var getSetRecord = require('../internals/get-set-record'); +var iterateSimple = require('../internals/iterate-simple'); var setMethodGetKeysBeforeCloning = require('../internals/set-method-get-keys-before-cloning-detection'); var setMethodAcceptSetLike = require('../internals/set-method-accept-set-like'); @@ -9,5 +13,13 @@ var FORCED = !setMethodAcceptSetLike('union') || !setMethodGetKeysBeforeCloning( // `Set.prototype.union` method // https://tc39.es/ecma262/#sec-set.prototype.union $({ target: 'Set', proto: true, real: true, forced: FORCED }, { - union: union + union: function union(other) { + var O = aSet(this); + var keysIter = getSetRecord(other).getIterator(); + var result = clone(O); + iterateSimple(keysIter, function (it) { + add(result, it); + }); + return result; + } }); diff --git a/packages/core-js/modules/esnext.set.union.js b/packages/core-js/modules/esnext.set.union.js deleted file mode 100644 index 0ff06962564d..000000000000 --- a/packages/core-js/modules/esnext.set.union.js +++ /dev/null @@ -1,14 +0,0 @@ -'use strict'; -var $ = require('../internals/export'); -var call = require('../internals/function-call'); -var toSetLike = require('../internals/to-set-like'); -var $union = require('../internals/set-union'); - -// `Set.prototype.union` method -// https://github.com/tc39/proposal-set-methods -// TODO: Obsolete version, remove from `core-js@4` -$({ target: 'Set', proto: true, real: true, forced: true }, { - union: function union(other) { - return call($union, this, toSetLike(other)); - } -}); diff --git a/packages/core-js/proposals/set-methods.js b/packages/core-js/proposals/set-methods.js deleted file mode 100644 index dfaea7fae3e5..000000000000 --- a/packages/core-js/proposals/set-methods.js +++ /dev/null @@ -1,11 +0,0 @@ -'use strict'; -// https://github.com/tc39/proposal-set-methods -require('../modules/esnext.set.difference.v2'); -require('../modules/esnext.set.intersection.v2'); -require('../modules/esnext.set.is-disjoint-from.v2'); -require('../modules/esnext.set.is-subset-of.v2'); -require('../modules/esnext.set.is-superset-of.v2'); -require('../modules/esnext.set.symmetric-difference.v2'); -require('../modules/esnext.set.union.v2'); -// TODO: Obsolete versions, remove from `core-js@4` -require('../modules/esnext.set.union'); diff --git a/packages/core-js/stage/2.js b/packages/core-js/stage/2.js index 0ba7ab2b87aa..15ddc7d89a1a 100644 --- a/packages/core-js/stage/2.js +++ b/packages/core-js/stage/2.js @@ -5,14 +5,13 @@ require('../proposals/array-is-template-object'); require('../proposals/async-iterator-helpers'); require('../proposals/extractors'); require('../proposals/iterator-range'); +require('../proposals/math-clamp-v2'); require('../proposals/string-dedent'); require('../proposals/symbol-predicates-v2'); // TODO: Obsolete versions, remove from `core-js@4` require('../proposals/async-explicit-resource-management'); require('../proposals/decorators'); require('../proposals/map-upsert-stage-2'); -require('../proposals/math-clamp-v2'); -require('../proposals/set-methods'); require('../proposals/using-statement'); module.exports = parent; diff --git a/tests/compat-data/tests-coverage.mjs b/tests/compat-data/tests-coverage.mjs index 7a30e941c7f8..61ed7c73c2e7 100644 --- a/tests/compat-data/tests-coverage.mjs +++ b/tests/compat-data/tests-coverage.mjs @@ -31,7 +31,6 @@ const ignore = new Set([ 'esnext.reflect.has-metadata', 'esnext.reflect.has-own-metadata', 'esnext.reflect.metadata', - 'esnext.set.union', 'esnext.symbol.matcher', 'esnext.weak-map.emplace', 'web.url-search-params', diff --git a/tests/entries/unit.mjs b/tests/entries/unit.mjs index f37b93cc173e..4816b98863da 100644 --- a/tests/entries/unit.mjs +++ b/tests/entries/unit.mjs @@ -901,7 +901,6 @@ for (PATH of ['core-js-pure', 'core-js']) { load('proposals/regexp-escaping'); load('proposals/regexp-named-groups'); load('proposals/relative-indexing-method'); - load('proposals/set-methods'); load('proposals/set-methods-v2'); load('proposals/string-cooked'); load('proposals/string-code-points'); diff --git a/tests/unit-global/es.set.union.js b/tests/unit-global/es.set.union.js index b81e2a445668..0836dd45cffe 100644 --- a/tests/unit-global/es.set.union.js +++ b/tests/unit-global/es.set.union.js @@ -1,5 +1,5 @@ import { DESCRIPTORS } from '../helpers/constants.js'; -import { createIterable, createSetLike } from '../helpers/helpers.js'; +import { createSetLike } from '../helpers/helpers.js'; QUnit.test('Set#union', assert => { const { union } = Set.prototype; @@ -20,11 +20,6 @@ QUnit.test('Set#union', assert => { assert.deepEqual(from(new Set([1, 2, 3]).union(createSetLike([4, 5]))), [1, 2, 3, 4, 5]); assert.deepEqual(from(new Set([1, 2, 3]).union(createSetLike([3, 4]))), [1, 2, 3, 4]); - // TODO: drop from core-js@4 - assert.deepEqual(from(new Set([1, 2, 3]).union([4, 5])), [1, 2, 3, 4, 5]); - assert.deepEqual(from(new Set([1, 2, 3]).union([3, 4])), [1, 2, 3, 4]); - assert.deepEqual(from(new Set([1, 2, 3]).union(createIterable([3, 4]))), [1, 2, 3, 4]); - assert.throws(() => new Set([1, 2, 3]).union(), TypeError); assert.throws(() => union.call({}, [1, 2, 3]), TypeError); diff --git a/tests/unit-pure/es.set.union.js b/tests/unit-pure/es.set.union.js index a15deb80b851..3784426f9949 100644 --- a/tests/unit-pure/es.set.union.js +++ b/tests/unit-pure/es.set.union.js @@ -1,10 +1,9 @@ import { DESCRIPTORS } from '../helpers/constants.js'; -import { createIterable, createSetLike } from '../helpers/helpers.js'; +import { createSetLike } from '../helpers/helpers.js'; import from from 'core-js-pure/es/array/from'; import defineProperty from 'core-js-pure/es/object/define-property'; -// TODO: use /es/ in core-js@4 -import Set from 'core-js-pure/full/set'; +import Set from 'core-js-pure/es/set'; QUnit.test('Set#union', assert => { const { union } = Set.prototype; @@ -22,11 +21,6 @@ QUnit.test('Set#union', assert => { assert.deepEqual(from(new Set([1, 2, 3]).union(createSetLike([4, 5]))), [1, 2, 3, 4, 5]); assert.deepEqual(from(new Set([1, 2, 3]).union(createSetLike([3, 4]))), [1, 2, 3, 4]); - // TODO: drop from core-js@4 - assert.deepEqual(from(new Set([1, 2, 3]).union([4, 5])), [1, 2, 3, 4, 5]); - assert.deepEqual(from(new Set([1, 2, 3]).union([3, 4])), [1, 2, 3, 4]); - assert.deepEqual(from(new Set([1, 2, 3]).union(createIterable([3, 4]))), [1, 2, 3, 4]); - assert.throws(() => new Set([1, 2, 3]).union(), TypeError); assert.throws(() => union.call({}, [1, 2, 3]), TypeError); From 399309b5ae0517482c3c6c7706e053e73b9ebe11 Mon Sep 17 00:00:00 2001 From: Denis Pushkarev Date: Wed, 4 Oct 2023 05:44:03 +0700 Subject: [PATCH 066/428] rename `es.string.at-alternative` -> `es.string.at` --- README.md | 2 +- packages/core-js-compat/src/data.mjs | 2 +- packages/core-js-compat/src/modules-by-versions.mjs | 2 +- packages/core-js/es/string/at.js | 2 +- packages/core-js/es/string/index.js | 2 +- packages/core-js/es/string/virtual/at.js | 2 +- packages/core-js/es/string/virtual/index.js | 2 +- .../modules/{es.string.at-alternative.js => es.string.at.js} | 0 packages/core-js/proposals/relative-indexing-method.js | 2 +- tests/compat/tests.js | 2 +- .../{es.string.at-alternative.js => es.string.at.js} | 2 +- .../unit-pure/{es.string.at-alternative.js => es.string.at.js} | 2 +- 12 files changed, 11 insertions(+), 11 deletions(-) rename packages/core-js/modules/{es.string.at-alternative.js => es.string.at.js} (100%) rename tests/unit-global/{es.string.at-alternative.js => es.string.at.js} (91%) rename tests/unit-pure/{es.string.at-alternative.js => es.string.at.js} (91%) diff --git a/README.md b/README.md index 1d9450835371..c443a67de27c 100644 --- a/README.md +++ b/README.md @@ -927,7 +927,7 @@ Iterator.from({ > - For preventing prototype pollution, in the `pure` version, new `%IteratorPrototype%` methods are not added to the real `%IteratorPrototype%`, they are available only on wrappers - instead of `[].values().map(fn)` use `Iterator.from([]).map(fn)`. #### ECMAScript: String and RegExp[⬆](#index) -The main part of `String` features: modules [`es.string.from-code-point`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.string.from-code-point.js), [`es.string.raw`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.string.raw.js), [`es.string.iterator`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.string.iterator.js), [`es.string.split`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.string.split.js), [`es.string.code-point-at`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.string.code-point-at.js), [`es.string.ends-with`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.string.ends-with.js), [`es.string.includes`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.string.includes.js), [`es.string.repeat`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.string.repeat.js), [`es.string.pad-start`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.string.pad-start.js), [`es.string.pad-end`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.string.pad-end.js), [`es.string.starts-with`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.string.starts-with.js), [`es.string.trim`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.string.trim.js), [`es.string.trim-start`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.string.trim-start.js), [`es.string.trim-end`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.string.trim-end.js), [`es.string.match-all`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.string.match-all.js), [`es.string.replace-all`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.string.replace-all.js), [`es.string.at-alternative`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.string.at-alternative.js), [`es.string.is-well-formed`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.string.is-well-formed.js), [`es.string.to-well-formed`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.string.to-well-formed.js). +The main part of `String` features: modules [`es.string.from-code-point`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.string.from-code-point.js), [`es.string.raw`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.string.raw.js), [`es.string.iterator`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.string.iterator.js), [`es.string.split`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.string.split.js), [`es.string.code-point-at`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.string.code-point-at.js), [`es.string.ends-with`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.string.ends-with.js), [`es.string.includes`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.string.includes.js), [`es.string.repeat`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.string.repeat.js), [`es.string.pad-start`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.string.pad-start.js), [`es.string.pad-end`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.string.pad-end.js), [`es.string.starts-with`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.string.starts-with.js), [`es.string.trim`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.string.trim.js), [`es.string.trim-start`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.string.trim-start.js), [`es.string.trim-end`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.string.trim-end.js), [`es.string.match-all`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.string.match-all.js), [`es.string.replace-all`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.string.replace-all.js), [`es.string.at`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.string.at.js), [`es.string.is-well-formed`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.string.is-well-formed.js), [`es.string.to-well-formed`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.string.to-well-formed.js). Adding support of well-known [symbols](#ecmascript-symbol) `@@match`, `@@replace`, `@@search` and `@@split` and direct `.exec` calls to related `String` methods, modules [`es.string.match`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.string.match.js), [`es.string.replace`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.string.replace.js), [`es.string.search`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.string.search.js) and [`es.string.split`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.string.split.js). diff --git a/packages/core-js-compat/src/data.mjs b/packages/core-js-compat/src/data.mjs index be7a9e196187..4806bada0d80 100644 --- a/packages/core-js-compat/src/data.mjs +++ b/packages/core-js-compat/src/data.mjs @@ -1742,7 +1742,7 @@ export const data = { // https://bugs.webkit.org/show_bug.cgi?id=289430 safari: '26.0', // '18.0', // '17.0', }, - 'es.string.at-alternative': { + 'es.string.at': { chrome: '92', firefox: '90', hermes: '0.13', diff --git a/packages/core-js-compat/src/modules-by-versions.mjs b/packages/core-js-compat/src/modules-by-versions.mjs index ca53b163b666..21cee0521ba1 100644 --- a/packages/core-js-compat/src/modules-by-versions.mjs +++ b/packages/core-js-compat/src/modules-by-versions.mjs @@ -78,7 +78,7 @@ export default { 3.17: [ 'es.array.at', 'es.object.has-own', - 'es.string.at-alternative', + 'es.string.at', 'es.typed-array.at', ], 3.18: [ diff --git a/packages/core-js/es/string/at.js b/packages/core-js/es/string/at.js index 1183270bcfdc..8a63b149d2a3 100644 --- a/packages/core-js/es/string/at.js +++ b/packages/core-js/es/string/at.js @@ -1,5 +1,5 @@ 'use strict'; -require('../../modules/es.string.at-alternative'); +require('../../modules/es.string.at'); var entryUnbind = require('../../internals/entry-unbind'); module.exports = entryUnbind('String', 'at'); diff --git a/packages/core-js/es/string/index.js b/packages/core-js/es/string/index.js index 6529e2d7282b..d714ca20783c 100644 --- a/packages/core-js/es/string/index.js +++ b/packages/core-js/es/string/index.js @@ -4,7 +4,7 @@ require('../../modules/es.regexp.exec'); require('../../modules/es.string.from-code-point'); require('../../modules/es.string.raw'); require('../../modules/es.string.code-point-at'); -require('../../modules/es.string.at-alternative'); +require('../../modules/es.string.at'); require('../../modules/es.string.ends-with'); require('../../modules/es.string.includes'); require('../../modules/es.string.is-well-formed'); diff --git a/packages/core-js/es/string/virtual/at.js b/packages/core-js/es/string/virtual/at.js index bea638a2d9ac..e256d46df34b 100644 --- a/packages/core-js/es/string/virtual/at.js +++ b/packages/core-js/es/string/virtual/at.js @@ -1,5 +1,5 @@ 'use strict'; -require('../../../modules/es.string.at-alternative'); +require('../../../modules/es.string.at'); var getBuiltInPrototypeMethod = require('../../../internals/get-built-in-prototype-method'); module.exports = getBuiltInPrototypeMethod('String', 'at'); diff --git a/packages/core-js/es/string/virtual/index.js b/packages/core-js/es/string/virtual/index.js index 70199c9347fb..350330eb5f31 100644 --- a/packages/core-js/es/string/virtual/index.js +++ b/packages/core-js/es/string/virtual/index.js @@ -1,7 +1,7 @@ 'use strict'; require('../../../modules/es.object.to-string'); require('../../../modules/es.regexp.exec'); -require('../../../modules/es.string.at-alternative'); +require('../../../modules/es.string.at'); require('../../../modules/es.string.code-point-at'); require('../../../modules/es.string.ends-with'); require('../../../modules/es.string.includes'); diff --git a/packages/core-js/modules/es.string.at-alternative.js b/packages/core-js/modules/es.string.at.js similarity index 100% rename from packages/core-js/modules/es.string.at-alternative.js rename to packages/core-js/modules/es.string.at.js diff --git a/packages/core-js/proposals/relative-indexing-method.js b/packages/core-js/proposals/relative-indexing-method.js index 2b5d3d5f368d..3614f71b6a47 100644 --- a/packages/core-js/proposals/relative-indexing-method.js +++ b/packages/core-js/proposals/relative-indexing-method.js @@ -1,5 +1,5 @@ 'use strict'; // https://github.com/tc39/proposal-relative-indexing-method -require('../modules/es.string.at-alternative'); +require('../modules/es.string.at'); require('../modules/es.array.at'); require('../modules/es.typed-array.at'); diff --git a/tests/compat/tests.js b/tests/compat/tests.js index feb2d9f44f7e..b896a6195ae9 100644 --- a/tests/compat/tests.js +++ b/tests/compat/tests.js @@ -1387,7 +1387,7 @@ GLOBAL.tests = { createSetMethodTest('union'), createSetMethodTestShouldGetKeysBeforeCloning('union') ], - 'es.string.at-alternative': function () { + 'es.string.at': function () { return '𠮷'.at(-2) === '\uD842'; }, 'es.string.code-point-at': function () { diff --git a/tests/unit-global/es.string.at-alternative.js b/tests/unit-global/es.string.at.js similarity index 91% rename from tests/unit-global/es.string.at-alternative.js rename to tests/unit-global/es.string.at.js index f3b5901ec813..d99ad0154c17 100644 --- a/tests/unit-global/es.string.at-alternative.js +++ b/tests/unit-global/es.string.at.js @@ -24,7 +24,7 @@ QUnit.test('String#at', assert => { assert.same('\uD842', '𠮷'.at()); assert.same('1', at.call({ toString() { return '123'; } }, 0)); - assert.throws(() => at.call(Symbol('at-alternative test'), 0), 'throws on symbol context'); + assert.throws(() => at.call(Symbol('at test'), 0), 'throws on symbol context'); if (STRICT) { assert.throws(() => at.call(null, 0), TypeError); diff --git a/tests/unit-pure/es.string.at-alternative.js b/tests/unit-pure/es.string.at.js similarity index 91% rename from tests/unit-pure/es.string.at-alternative.js rename to tests/unit-pure/es.string.at.js index f8ac7c819395..5191d0b46897 100644 --- a/tests/unit-pure/es.string.at-alternative.js +++ b/tests/unit-pure/es.string.at.js @@ -22,7 +22,7 @@ QUnit.test('String#at', assert => { assert.same('\uD842', at('𠮷')); assert.same('1', at({ toString() { return '123'; } }, 0)); - assert.throws(() => at(Symbol('at-alternative test'), 0), 'throws on symbol context'); + assert.throws(() => at(Symbol('at test'), 0), 'throws on symbol context'); if (STRICT) { assert.throws(() => at(null, 0), TypeError); From d68c60a14ac1de63bfb9a7dd686daf4bc1414ff1 Mon Sep 17 00:00:00 2001 From: Denis Pushkarev Date: Wed, 4 Oct 2023 06:16:35 +0700 Subject: [PATCH 067/428] clean `modules-by-versions`, temporarily disable `modules-by-versions` test --- .../src/modules-by-versions.mjs | 265 +----------------- tests/compat-data/modules-by-versions.mjs | 3 +- .../get-modules-list-for-target-version.mjs | 2 +- 3 files changed, 4 insertions(+), 266 deletions(-) diff --git a/packages/core-js-compat/src/modules-by-versions.mjs b/packages/core-js-compat/src/modules-by-versions.mjs index 21cee0521ba1..2174b60d98c9 100644 --- a/packages/core-js-compat/src/modules-by-versions.mjs +++ b/packages/core-js-compat/src/modules-by-versions.mjs @@ -1,266 +1,3 @@ export default { - 3.1: [ - 'es.string.match-all', - 'es.symbol.match-all', - ], - 3.2: [ - 'es.promise.all-settled', - 'esnext.array.is-template-object', - 'esnext.symbol.async-dispose', - ], - 3.3: [ - 'es.global-this', - 'esnext.async-iterator.constructor', - 'esnext.async-iterator.drop', - 'esnext.async-iterator.every', - 'esnext.async-iterator.filter', - 'esnext.async-iterator.find', - 'esnext.async-iterator.flat-map', - 'esnext.async-iterator.for-each', - 'esnext.async-iterator.from', - 'esnext.async-iterator.map', - 'esnext.async-iterator.reduce', - 'esnext.async-iterator.some', - 'esnext.async-iterator.take', - 'esnext.async-iterator.to-array', - 'esnext.iterator.constructor', - 'esnext.iterator.drop', - 'esnext.iterator.every', - 'esnext.iterator.filter', - 'esnext.iterator.find', - 'esnext.iterator.flat-map', - 'esnext.iterator.for-each', - 'esnext.iterator.from', - 'esnext.iterator.map', - 'esnext.iterator.reduce', - 'esnext.iterator.some', - 'esnext.iterator.take', - 'esnext.iterator.to-array', - ], - 3.4: [ - 'es.json.stringify', - ], - 3.6: [ - 'es.regexp.sticky', - 'es.regexp.test', - ], - 3.7: [ - 'es.aggregate-error', - 'es.promise.any', - 'es.reflect.to-string-tag', - 'es.string.replace-all', - 'esnext.map.emplace', - 'esnext.weak-map.emplace', - ], - 3.8: [ - 'esnext.array.unique-by', - ], - 3.9: [ - 'esnext.typed-array.unique-by', - ], - 3.12: [ - 'esnext.symbol.matcher', - 'esnext.symbol.metadata', - ], - 3.15: [ - 'es.date.get-year', - 'es.date.set-year', - 'es.date.to-gmt-string', - 'es.escape', - 'es.regexp.dot-all', - 'es.string.substr', - 'es.unescape', - ], - 3.16: [ - 'esnext.array.filter-reject', - 'esnext.typed-array.filter-reject', - ], - 3.17: [ - 'es.array.at', - 'es.object.has-own', - 'es.string.at', - 'es.typed-array.at', - ], - 3.18: [ - 'esnext.array.from-async', - ], - '3.20': [ - 'es.error.cause', - 'es.error.to-string', - 'es.aggregate-error.cause', - 'es.number.to-exponential', - 'esnext.function.is-callable', - 'esnext.function.is-constructor', - 'esnext.iterator.to-async', - 'esnext.string.cooked', - 'web.dom-exception.constructor', - 'web.dom-exception.stack', - 'web.dom-exception.to-string-tag', - 'web.structured-clone', - ], - 3.21: [ - 'web.atob', - 'web.btoa', - ], - 3.23: [ - 'es.array.find-last', - 'es.array.find-last-index', - 'es.array.push', - 'es.array.unshift', - 'es.typed-array.find-last', - 'es.typed-array.find-last-index', - ], - 3.25: [ - 'es.object.proto', - ], - 3.26: [ - 'web.self', - ], - 3.27: [ - 'esnext.suppressed-error.constructor', - 'esnext.async-disposable-stack.constructor', - 'esnext.async-iterator.async-dispose', - 'esnext.disposable-stack.constructor', - 'esnext.iterator.dispose', - 'esnext.set.difference.v2', - 'esnext.set.intersection.v2', - 'esnext.set.is-disjoint-from.v2', - 'esnext.set.is-subset-of.v2', - 'esnext.set.is-superset-of.v2', - 'esnext.set.symmetric-difference.v2', - 'esnext.set.union.v2', - 'esnext.string.dedent', - ], - 3.28: [ - 'es.array.to-reversed', - 'es.array.to-sorted', - 'es.array.to-spliced', - 'es.array.with', - 'es.typed-array.to-reversed', - 'es.typed-array.to-sorted', - 'es.typed-array.with', - 'esnext.array-buffer.detached', - 'esnext.array-buffer.transfer', - 'esnext.array-buffer.transfer-to-fixed-length', - 'esnext.function.demethodize', - 'esnext.iterator.range', - 'esnext.json.is-raw-json', - 'esnext.json.parse', - 'esnext.json.raw-json', - ], - 3.29: [ - 'web.url-search-params.size', - ], - '3.30': [ - 'web.url.can-parse', - ], - 3.31: [ - 'es.string.is-well-formed', - 'es.string.to-well-formed', - 'esnext.function.metadata', - 'esnext.object.group-by', - 'esnext.promise.with-resolvers', - 'esnext.symbol.is-registered-symbol', - 'esnext.symbol.is-well-known-symbol', - 'web.url-search-params.delete', - 'web.url-search-params.has', - ], - 3.32: [ - 'esnext.data-view.get-float16', - 'esnext.data-view.get-uint8-clamped', - 'esnext.data-view.set-float16', - 'esnext.data-view.set-uint8-clamped', - 'esnext.math.f16round', - ], - 3.33: [ - 'esnext.regexp.escape', - ], - 3.34: [ - 'es.map.group-by', - 'es.object.group-by', - 'es.promise.with-resolvers', - 'esnext.uint8-array.from-base64', - 'esnext.uint8-array.from-hex', - 'esnext.uint8-array.to-base64', - 'esnext.uint8-array.to-hex', - ], - 3.36: [ - 'es.array-buffer.detached', - 'es.array-buffer.transfer', - 'es.array-buffer.transfer-to-fixed-length', - ], - 3.37: [ - 'es.set.difference.v2', - 'es.set.intersection.v2', - 'es.set.is-disjoint-from.v2', - 'es.set.is-subset-of.v2', - 'es.set.is-superset-of.v2', - 'es.set.symmetric-difference.v2', - 'es.set.union.v2', - 'esnext.math.sum-precise', - 'esnext.symbol.custom-matcher', - 'web.url.parse', - ], - 3.38: [ - 'esnext.uint8-array.set-from-base64', - 'esnext.uint8-array.set-from-hex', - ], - 3.39: [ - 'es.iterator.constructor', - 'es.iterator.drop', - 'es.iterator.every', - 'es.iterator.filter', - 'es.iterator.find', - 'es.iterator.flat-map', - 'es.iterator.for-each', - 'es.iterator.from', - 'es.iterator.map', - 'es.iterator.reduce', - 'es.iterator.some', - 'es.iterator.take', - 'es.iterator.to-array', - 'es.promise.try', - 'esnext.iterator.concat', - 'esnext.map.get-or-insert', - 'esnext.map.get-or-insert-computed', - 'esnext.weak-map.get-or-insert', - 'esnext.weak-map.get-or-insert-computed', - ], - '3.40': [ - 'esnext.error.is-error', - ], - 3.41: [ - 'es.data-view.get-float16', - 'es.data-view.set-float16', - 'es.math.f16round', - 'es.regexp.escape', - ], - 3.43: [ - 'es.array.from-async', - 'es.async-disposable-stack.constructor', - 'es.async-iterator.async-dispose', - 'es.disposable-stack.constructor', - 'es.error.is-error', - 'es.iterator.dispose', - 'es.suppressed-error.constructor', - 'es.symbol.async-dispose', - 'es.symbol.dispose', - 'esnext.iterator.chunks', - 'esnext.iterator.windows', - 'esnext.iterator.zip', - 'esnext.iterator.zip-keyed', - 'esnext.number.clamp', - ], - 3.44: [ - 'esnext.iterator.sliding', - ], - 3.45: [ - 'es.math.sum-precise', - 'es.uint8-array.from-base64', - 'es.uint8-array.from-hex', - 'es.uint8-array.set-from-base64', - 'es.uint8-array.set-from-hex', - 'es.uint8-array.to-base64', - 'es.uint8-array.to-hex', - ], + // empty }; diff --git a/tests/compat-data/modules-by-versions.mjs b/tests/compat-data/modules-by-versions.mjs index b5db11238ef3..4b5176a960b2 100644 --- a/tests/compat-data/modules-by-versions.mjs +++ b/tests/compat-data/modules-by-versions.mjs @@ -4,7 +4,8 @@ const { version } = await fs.readJson('package.json'); const { major, minor, patch } = coerce(version); let ok = true; -if (minor || patch) { // ignore for pre-releases +// TODO: enable it after `core-js@4` publishing +if (minor < 0 || patch < 0) { // ignore for pre-releases const zero = `${ major }.0`; const modulesByVersions = await fs.readJson('packages/core-js-compat/modules-by-versions.json'); const response = await fetch(`https://cdn.jsdelivr.net/npm/core-js-compat@${ major }.0.0/modules-by-versions.json`); diff --git a/tests/compat-tools/get-modules-list-for-target-version.mjs b/tests/compat-tools/get-modules-list-for-target-version.mjs index 0b9628d7b15e..5b2605d5c3aa 100644 --- a/tests/compat-tools/get-modules-list-for-target-version.mjs +++ b/tests/compat-tools/get-modules-list-for-target-version.mjs @@ -5,7 +5,7 @@ const modules = await fs.readJson('packages/core-js-compat/modules.json'); const modulesByVersions = await fs.readJson('packages/core-js-compat/modules-by-versions.json'); const modules30 = modulesByVersions['3.0']; -const filter = new Set([...modules30, ...modulesByVersions['3.1']]); +const filter = new Set([...modules30, ...modulesByVersions['3.1'] ?? []]); const modules31 = modules.filter(it => filter.has(it)); deepEqual(getModulesListForTargetVersion(3), modules30, 'num 3'); // TODO: Make it throw in core-js@4 From c13f86ea99df48dbaaecb34616fc073888101d5c Mon Sep 17 00:00:00 2001 From: Denis Pushkarev Date: Wed, 4 Oct 2023 06:17:14 +0700 Subject: [PATCH 068/428] rename `es.aggregate-error` -> `es.aggregate-error.constructor` --- README.md | 2 +- packages/core-js-compat/src/data.mjs | 4 ---- packages/core-js/es/aggregate-error.js | 2 +- packages/core-js/es/promise/any.js | 2 +- packages/core-js/es/promise/index.js | 2 +- packages/core-js/modules/es.aggregate-error.js | 3 --- packages/core-js/proposals/promise-any.js | 2 +- tests/compat-data/tests-coverage.mjs | 1 - ...s.aggregate-error.js => es.aggregate-error.constructor.js} | 0 ...s.aggregate-error.js => es.aggregate-error.constructor.js} | 0 10 files changed, 5 insertions(+), 13 deletions(-) delete mode 100644 packages/core-js/modules/es.aggregate-error.js rename tests/unit-global/{es.aggregate-error.js => es.aggregate-error.constructor.js} (100%) rename tests/unit-pure/{es.aggregate-error.js => es.aggregate-error.constructor.js} (100%) diff --git a/README.md b/README.md index c443a67de27c..7552ec627094 100644 --- a/README.md +++ b/README.md @@ -633,7 +633,7 @@ console.log.bind(console, 42)(43); // => 42 43 ``` #### ECMAScript: Error[⬆](#index) -Modules [`es.aggregate-error`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.aggregate-error.js), [`es.aggregate-error.cause`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.aggregate-error.cause.js), [`es.error.cause`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.error.cause.js), [`es.error.is-error`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.error.is-error.js), [`es.suppressed-error.constructor`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.suppressed-error.constructor.js), [`es.error.to-string`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.error.to-string.js). +Modules [`es.aggregate-error.constructor`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.aggregate-error.constructor.js), [`es.aggregate-error.cause`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.aggregate-error.cause.js), [`es.error.cause`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.error.cause.js), [`es.error.is-error`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.error.is-error.js), [`es.suppressed-error.constructor`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.suppressed-error.constructor.js), [`es.error.to-string`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.error.to-string.js). ```ts class Error { static isError(value: any): boolean; diff --git a/packages/core-js-compat/src/data.mjs b/packages/core-js-compat/src/data.mjs index 4806bada0d80..9d0e317ca470 100644 --- a/packages/core-js-compat/src/data.mjs +++ b/packages/core-js-compat/src/data.mjs @@ -174,8 +174,6 @@ export const data = { rhino: '1.7.14', safari: '8.0', }, - // TODO: Remove this module from `core-js@4` since it's replaced to module below - 'es.aggregate-error': null, 'es.aggregate-error.constructor': { chrome: '85', firefox: '79', @@ -2955,7 +2953,6 @@ export const data = { export const renamed = new Map([ // TODO: Clean in `core-js@4` - ['es.aggregate-error', 'es.aggregate-error.constructor'], ['es.data-view', 'es.data-view.constructor'], ['es.map', 'es.map.constructor'], ['es.set', 'es.set.constructor'], @@ -3018,7 +3015,6 @@ export const dataWithIgnored = { ...data }; export const ignored = [ // TODO: Clean in `core-js@4` - 'es.aggregate-error.constructor', 'es.data-view.constructor', 'es.map.constructor', 'es.set.constructor', diff --git a/packages/core-js/es/aggregate-error.js b/packages/core-js/es/aggregate-error.js index 2a0c81063198..252d85828783 100644 --- a/packages/core-js/es/aggregate-error.js +++ b/packages/core-js/es/aggregate-error.js @@ -1,6 +1,6 @@ 'use strict'; require('../modules/es.error.cause'); -require('../modules/es.aggregate-error'); +require('../modules/es.aggregate-error.constructor'); require('../modules/es.aggregate-error.cause'); require('../modules/es.array.iterator'); require('../modules/es.string.iterator'); diff --git a/packages/core-js/es/promise/any.js b/packages/core-js/es/promise/any.js index 8e49250cb2fd..8eadbeccb00a 100644 --- a/packages/core-js/es/promise/any.js +++ b/packages/core-js/es/promise/any.js @@ -1,5 +1,5 @@ 'use strict'; -require('../../modules/es.aggregate-error'); +require('../../modules/es.aggregate-error.constructor'); require('../../modules/es.array.iterator'); require('../../modules/es.object.to-string'); require('../../modules/es.promise'); diff --git a/packages/core-js/es/promise/index.js b/packages/core-js/es/promise/index.js index 5c758b4130de..fa566e647b5c 100644 --- a/packages/core-js/es/promise/index.js +++ b/packages/core-js/es/promise/index.js @@ -1,5 +1,5 @@ 'use strict'; -require('../../modules/es.aggregate-error'); +require('../../modules/es.aggregate-error.constructor'); require('../../modules/es.array.iterator'); require('../../modules/es.object.to-string'); require('../../modules/es.promise'); diff --git a/packages/core-js/modules/es.aggregate-error.js b/packages/core-js/modules/es.aggregate-error.js deleted file mode 100644 index 649517e39488..000000000000 --- a/packages/core-js/modules/es.aggregate-error.js +++ /dev/null @@ -1,3 +0,0 @@ -'use strict'; -// TODO: Remove this module from `core-js@4` since it's replaced to module below -require('../modules/es.aggregate-error.constructor'); diff --git a/packages/core-js/proposals/promise-any.js b/packages/core-js/proposals/promise-any.js index c75b3f48a6a0..e02dbce3e88d 100644 --- a/packages/core-js/proposals/promise-any.js +++ b/packages/core-js/proposals/promise-any.js @@ -1,4 +1,4 @@ 'use strict'; // https://github.com/tc39/proposal-promise-any -require('../modules/es.aggregate-error'); +require('../modules/es.aggregate-error.constructor'); require('../modules/es.promise.any'); diff --git a/tests/compat-data/tests-coverage.mjs b/tests/compat-data/tests-coverage.mjs index 61ed7c73c2e7..b24cdf0d1632 100644 --- a/tests/compat-data/tests-coverage.mjs +++ b/tests/compat-data/tests-coverage.mjs @@ -9,7 +9,6 @@ const modulesSet = new Set([ const tested = new Set(Object.keys(globalThis.tests)); const ignore = new Set([ - 'es.aggregate-error', 'es.data-view', 'es.map', 'es.set', diff --git a/tests/unit-global/es.aggregate-error.js b/tests/unit-global/es.aggregate-error.constructor.js similarity index 100% rename from tests/unit-global/es.aggregate-error.js rename to tests/unit-global/es.aggregate-error.constructor.js diff --git a/tests/unit-pure/es.aggregate-error.js b/tests/unit-pure/es.aggregate-error.constructor.js similarity index 100% rename from tests/unit-pure/es.aggregate-error.js rename to tests/unit-pure/es.aggregate-error.constructor.js From d4c048c311bdc4c4a36666cabc607fcb95c97b61 Mon Sep 17 00:00:00 2001 From: Denis Pushkarev Date: Wed, 4 Oct 2023 06:28:11 +0700 Subject: [PATCH 069/428] rename `es.data-view` -> `es.data-view.constructor` --- README.md | 2 +- packages/core-js-compat/src/data.mjs | 40 +++++++++---------- ...ta-view.js => es.data-view.constructor.js} | 0 packages/core-js/es/array-buffer/index.js | 2 +- .../array-buffer/transfer-to-fixed-length.js | 2 +- packages/core-js/es/array-buffer/transfer.js | 2 +- packages/core-js/es/data-view/index.js | 2 +- packages/core-js/modules/es.data-view.js | 3 -- tests/compat-data/tests-coverage.mjs | 1 - ...ta-view.js => es.data-view.constructor.js} | 0 10 files changed, 23 insertions(+), 31 deletions(-) rename packages/core-js-pure/override/modules/{es.data-view.js => es.data-view.constructor.js} (100%) delete mode 100644 packages/core-js/modules/es.data-view.js rename tests/unit-global/{es.data-view.js => es.data-view.constructor.js} (100%) diff --git a/README.md b/README.md index 7552ec627094..34f047f0dc07 100644 --- a/README.md +++ b/README.md @@ -1860,7 +1860,7 @@ core-js(-pure)/es|stable|actual|full/async-iterator/async-dispose #### ECMAScript: Typed Arrays[⬆](#index) Implementations and fixes for `ArrayBuffer`, `DataView`, Typed Arrays constructors, static and prototype methods. Typed arrays work only in environments with support descriptors (IE9+), `ArrayBuffer` and `DataView` should work anywhere. -Modules [`es.array-buffer.constructor`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.array-buffer.constructor.js), [`es.array-buffer.is-view`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.array-buffer.is-view.js), [`esnext.array-buffer.detached`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/esnext.array-buffer.detached.js), [`es.array-buffer.slice`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.array-buffer.slice.js), [`esnext.array-buffer.transfer`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/esnext.array-buffer.transfer.js), [`esnext.array-buffer.transfer-to-fixed-length`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/esnext.array-buffer.transfer-to-fixed-length.js) [`es.data-view`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.data-view.js), [`es.data-view.get-float16`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.data-view.get-float16.js), [`es.data-view.set-float16`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.data-view.set-float16.js), [`es.typed-array.int8-array`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.typed-array.int8-array.js), [`es.typed-array.uint8-array`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.typed-array.uint8-array.js), [`es.typed-array.uint8-clamped-array`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.typed-array.uint8-clamped-array.js), [`es.typed-array.int16-array`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.typed-array.int16-array.js), [`es.typed-array.uint16-array`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.typed-array.uint16-array.js), [`es.typed-array.int32-array`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.typed-array.int32-array.js), [`es.typed-array.uint32-array`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.typed-array.uint32-array.js), [`es.typed-array.float32-array`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.typed-array.float32-array.js), [`es.typed-array.float64-array`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.typed-array.float64-array.js), [`es.typed-array.copy-within`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.typed-array.copy-within.js), [`es.typed-array.every`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.typed-array.every.js), [`es.typed-array.fill`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.typed-array.fill.js), [`es.typed-array.filter`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.typed-array.filter.js), [`es.typed-array.find`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.typed-array.find.js), [`es.typed-array.find-index`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.typed-array.find-index.js), [`es.typed-array.find-last`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.typed-array.find-last.js), [`es.typed-array.find-last-index`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.typed-array.find-last-index.js), [`es.typed-array.for-each`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.typed-array.for-each.js), [`es.typed-array.from`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.typed-array.from.js), [`es.typed-array.includes`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.typed-array.includes.js), [`es.typed-array.index-of`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.typed-array.index-of.js), [`es.typed-array.iterator`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.typed-array.iterator.js), [`es.typed-array.last-index-of`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.typed-array.last-index-of.js), [`es.typed-array.map`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.typed-array.map.js), [`es.typed-array.of`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.typed-array.of.js), [`es.typed-array.reduce`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.typed-array.reduce.js), [`es.typed-array.reduce-right`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.typed-array.reduce-right.js), [`es.typed-array.reverse`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.typed-array.reverse.js), [`es.typed-array.set`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.typed-array.set.js), [`es.typed-array.slice`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.typed-array.slice.js), [`es.typed-array.some`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.typed-array.some.js), [`es.typed-array.sort`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.typed-array.sort.js), [`es.typed-array.subarray`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.typed-array.subarray.js), [`es.typed-array.to-locale-string`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.typed-array.to-locale-string.js), [`es.typed-array.to-string`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.typed-array.to-string.js), [`es.typed-array.at`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.typed-array.at.js), [`es.typed-array.to-reversed`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.typed-array.to-reversed.js), [`es.typed-array.to-sorted`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.typed-array.to-sorted.js), [`es.typed-array.with`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.typed-array.with.js), [`es.uint8-array.from-base64`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.uint8-array.from-base64.js), [`es.uint8-array.from-hex`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.uint8-array.from-hex.js), [`es.uint8-array.set-from-hex`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.uint8-array.set-from-hex.js), [`es.uint8-array.to-base64`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.uint8-array.to-base64.js), [`es.uint8-array.to-hex`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.uint8-array.to-hex.js). +Modules [`es.array-buffer.constructor`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.array-buffer.constructor.js), [`es.array-buffer.is-view`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.array-buffer.is-view.js), [`esnext.array-buffer.detached`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/esnext.array-buffer.detached.js), [`es.array-buffer.slice`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.array-buffer.slice.js), [`esnext.array-buffer.transfer`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/esnext.array-buffer.transfer.js), [`esnext.array-buffer.transfer-to-fixed-length`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/esnext.array-buffer.transfer-to-fixed-length.js), [`es.data-view.constructor`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.data-view.constructor.js), [`es.data-view.get-float16`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.data-view.get-float16.js), [`es.data-view.set-float16`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.data-view.set-float16.js), [`es.typed-array.int8-array`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.typed-array.int8-array.js), [`es.typed-array.uint8-array`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.typed-array.uint8-array.js), [`es.typed-array.uint8-clamped-array`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.typed-array.uint8-clamped-array.js), [`es.typed-array.int16-array`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.typed-array.int16-array.js), [`es.typed-array.uint16-array`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.typed-array.uint16-array.js), [`es.typed-array.int32-array`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.typed-array.int32-array.js), [`es.typed-array.uint32-array`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.typed-array.uint32-array.js), [`es.typed-array.float32-array`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.typed-array.float32-array.js), [`es.typed-array.float64-array`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.typed-array.float64-array.js), [`es.typed-array.copy-within`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.typed-array.copy-within.js), [`es.typed-array.every`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.typed-array.every.js), [`es.typed-array.fill`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.typed-array.fill.js), [`es.typed-array.filter`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.typed-array.filter.js), [`es.typed-array.find`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.typed-array.find.js), [`es.typed-array.find-index`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.typed-array.find-index.js), [`es.typed-array.find-last`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.typed-array.find-last.js), [`es.typed-array.find-last-index`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.typed-array.find-last-index.js), [`es.typed-array.for-each`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.typed-array.for-each.js), [`es.typed-array.from`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.typed-array.from.js), [`es.typed-array.includes`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.typed-array.includes.js), [`es.typed-array.index-of`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.typed-array.index-of.js), [`es.typed-array.iterator`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.typed-array.iterator.js), [`es.typed-array.last-index-of`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.typed-array.last-index-of.js), [`es.typed-array.map`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.typed-array.map.js), [`es.typed-array.of`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.typed-array.of.js), [`es.typed-array.reduce`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.typed-array.reduce.js), [`es.typed-array.reduce-right`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.typed-array.reduce-right.js), [`es.typed-array.reverse`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.typed-array.reverse.js), [`es.typed-array.set`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.typed-array.set.js), [`es.typed-array.slice`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.typed-array.slice.js), [`es.typed-array.some`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.typed-array.some.js), [`es.typed-array.sort`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.typed-array.sort.js), [`es.typed-array.subarray`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.typed-array.subarray.js), [`es.typed-array.to-locale-string`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.typed-array.to-locale-string.js), [`es.typed-array.to-string`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.typed-array.to-string.js), [`es.typed-array.at`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.typed-array.at.js), [`es.typed-array.to-reversed`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.typed-array.to-reversed.js), [`es.typed-array.to-sorted`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.typed-array.to-sorted.js), [`es.typed-array.with`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.typed-array.with.js), [`es.uint8-array.from-base64`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.uint8-array.from-base64.js), [`es.uint8-array.from-hex`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.uint8-array.from-hex.js), [`es.uint8-array.set-from-hex`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.uint8-array.set-from-hex.js), [`es.uint8-array.to-base64`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.uint8-array.to-base64.js), [`es.uint8-array.to-hex`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.uint8-array.to-hex.js). ```ts class ArrayBuffer { constructor(length: any): ArrayBuffer; diff --git a/packages/core-js-compat/src/data.mjs b/packages/core-js-compat/src/data.mjs index 9d0e317ca470..60d83e690285 100644 --- a/packages/core-js-compat/src/data.mjs +++ b/packages/core-js-compat/src/data.mjs @@ -514,8 +514,24 @@ export const data = { rhino: '1.7.13', safari: '12.1', }, - // TODO: Remove this module from `core-js@4` since it's replaced to module below - 'es.data-view': null, + 'es.array-buffer.detached': { + bun: '1.0.19', + chrome: '114', + firefox: '122', + safari: '17.4', + }, + 'es.array-buffer.transfer': { + bun: '1.0.19', + chrome: '114', + firefox: '122', + safari: '17.4', + }, + 'es.array-buffer.transfer-to-fixed-length': { + bun: '1.0.19', + chrome: '114', + firefox: '122', + safari: '17.4', + }, 'es.data-view.constructor': { chrome: '26', firefox: '15', @@ -538,24 +554,6 @@ export const data = { firefox: '129', safari: '18.2', }, - 'es.array-buffer.detached': { - bun: '1.0.19', - chrome: '114', - firefox: '122', - safari: '17.4', - }, - 'es.array-buffer.transfer': { - bun: '1.0.19', - chrome: '114', - firefox: '122', - safari: '17.4', - }, - 'es.array-buffer.transfer-to-fixed-length': { - bun: '1.0.19', - chrome: '114', - firefox: '122', - safari: '17.4', - }, 'es.date.get-year': { chrome: '1', firefox: '1', @@ -2953,7 +2951,6 @@ export const data = { export const renamed = new Map([ // TODO: Clean in `core-js@4` - ['es.data-view', 'es.data-view.constructor'], ['es.map', 'es.map.constructor'], ['es.set', 'es.set.constructor'], ['es.weak-map', 'es.weak-map.constructor'], @@ -3015,7 +3012,6 @@ export const dataWithIgnored = { ...data }; export const ignored = [ // TODO: Clean in `core-js@4` - 'es.data-view.constructor', 'es.map.constructor', 'es.set.constructor', 'es.string.trim-left', diff --git a/packages/core-js-pure/override/modules/es.data-view.js b/packages/core-js-pure/override/modules/es.data-view.constructor.js similarity index 100% rename from packages/core-js-pure/override/modules/es.data-view.js rename to packages/core-js-pure/override/modules/es.data-view.constructor.js diff --git a/packages/core-js/es/array-buffer/index.js b/packages/core-js/es/array-buffer/index.js index f66c7f7bf42f..804cccd96d46 100644 --- a/packages/core-js/es/array-buffer/index.js +++ b/packages/core-js/es/array-buffer/index.js @@ -2,7 +2,7 @@ require('../../modules/es.array-buffer.constructor'); require('../../modules/es.array-buffer.is-view'); require('../../modules/es.array-buffer.slice'); -require('../../modules/es.data-view'); +require('../../modules/es.data-view.constructor'); require('../../modules/es.array-buffer.detached'); require('../../modules/es.array-buffer.transfer'); require('../../modules/es.array-buffer.transfer-to-fixed-length'); diff --git a/packages/core-js/es/array-buffer/transfer-to-fixed-length.js b/packages/core-js/es/array-buffer/transfer-to-fixed-length.js index 21d43404a67f..3abef4e98566 100644 --- a/packages/core-js/es/array-buffer/transfer-to-fixed-length.js +++ b/packages/core-js/es/array-buffer/transfer-to-fixed-length.js @@ -1,5 +1,5 @@ 'use strict'; require('../../modules/es.array-buffer.constructor'); require('../../modules/es.array-buffer.slice'); -require('../../modules/es.data-view'); +require('../../modules/es.data-view.constructor'); require('../../modules/es.array-buffer.transfer-to-fixed-length'); diff --git a/packages/core-js/es/array-buffer/transfer.js b/packages/core-js/es/array-buffer/transfer.js index f7198e03846f..a32c402c8e0a 100644 --- a/packages/core-js/es/array-buffer/transfer.js +++ b/packages/core-js/es/array-buffer/transfer.js @@ -1,5 +1,5 @@ 'use strict'; require('../../modules/es.array-buffer.constructor'); require('../../modules/es.array-buffer.slice'); -require('../../modules/es.data-view'); +require('../../modules/es.data-view.constructor'); require('../../modules/es.array-buffer.transfer'); diff --git a/packages/core-js/es/data-view/index.js b/packages/core-js/es/data-view/index.js index 726c68b97b73..4d0ccc868e41 100644 --- a/packages/core-js/es/data-view/index.js +++ b/packages/core-js/es/data-view/index.js @@ -1,7 +1,7 @@ 'use strict'; require('../../modules/es.array-buffer.constructor'); require('../../modules/es.array-buffer.slice'); -require('../../modules/es.data-view'); +require('../../modules/es.data-view.constructor'); require('../../modules/es.data-view.get-float16'); require('../../modules/es.data-view.set-float16'); require('../../modules/es.object.to-string'); diff --git a/packages/core-js/modules/es.data-view.js b/packages/core-js/modules/es.data-view.js deleted file mode 100644 index 97728492a727..000000000000 --- a/packages/core-js/modules/es.data-view.js +++ /dev/null @@ -1,3 +0,0 @@ -'use strict'; -// TODO: Remove this module from `core-js@4` since it's replaced to module below -require('../modules/es.data-view.constructor'); diff --git a/tests/compat-data/tests-coverage.mjs b/tests/compat-data/tests-coverage.mjs index b24cdf0d1632..d912f0faf699 100644 --- a/tests/compat-data/tests-coverage.mjs +++ b/tests/compat-data/tests-coverage.mjs @@ -9,7 +9,6 @@ const modulesSet = new Set([ const tested = new Set(Object.keys(globalThis.tests)); const ignore = new Set([ - 'es.data-view', 'es.map', 'es.set', 'es.weak-map', diff --git a/tests/unit-global/es.data-view.js b/tests/unit-global/es.data-view.constructor.js similarity index 100% rename from tests/unit-global/es.data-view.js rename to tests/unit-global/es.data-view.constructor.js From e656b6ebf7c875100ef4a7c403081a5057c05dd8 Mon Sep 17 00:00:00 2001 From: Denis Pushkarev Date: Wed, 4 Oct 2023 06:40:28 +0700 Subject: [PATCH 070/428] rename `es.map` -> `es.map.constructor` --- README.md | 2 +- packages/core-js-compat/src/data.mjs | 4 ---- packages/core-js/actual/array/virtual/index.js | 2 -- packages/core-js/actual/map/group-by.js | 1 - packages/core-js/es/map/group-by.js | 2 +- packages/core-js/es/map/index.js | 2 +- packages/core-js/full/array/index.js | 2 +- packages/core-js/full/array/unique-by.js | 2 +- packages/core-js/full/array/virtual/unique-by.js | 2 +- packages/core-js/full/map/delete-all.js | 2 +- packages/core-js/full/map/emplace.js | 2 +- packages/core-js/full/map/every.js | 2 +- packages/core-js/full/map/filter.js | 2 +- packages/core-js/full/map/find-key.js | 2 +- packages/core-js/full/map/find.js | 2 +- packages/core-js/full/map/from.js | 2 +- packages/core-js/full/map/includes.js | 2 +- packages/core-js/full/map/key-by.js | 2 +- packages/core-js/full/map/key-of.js | 2 +- packages/core-js/full/map/map-keys.js | 2 +- packages/core-js/full/map/map-values.js | 2 +- packages/core-js/full/map/merge.js | 2 +- packages/core-js/full/map/of.js | 2 +- packages/core-js/full/map/reduce.js | 2 +- packages/core-js/full/map/some.js | 2 +- packages/core-js/full/map/update.js | 2 +- packages/core-js/full/typed-array/index.js | 2 +- packages/core-js/full/typed-array/methods.js | 2 +- packages/core-js/full/typed-array/unique-by.js | 2 +- packages/core-js/internals/composite-key.js | 2 +- packages/core-js/internals/reflect-metadata.js | 2 +- packages/core-js/modules/es.map.js | 3 --- packages/core-js/proposals/array-unique.js | 2 +- packages/core-js/stable/structured-clone.js | 2 +- packages/core-js/web/structured-clone.js | 2 +- tests/compat-data/tests-coverage.mjs | 1 - tests/compat-tools/compat.mjs | 2 +- tests/unit-global/{es.map.js => es.map.constructor.js} | 1 - tests/unit-pure/{es.map.js => es.map.constructor.js} | 1 - 39 files changed, 32 insertions(+), 45 deletions(-) delete mode 100644 packages/core-js/modules/es.map.js rename tests/unit-global/{es.map.js => es.map.constructor.js} (99%) rename tests/unit-pure/{es.map.js => es.map.constructor.js} (99%) diff --git a/README.md b/README.md index 34f047f0dc07..4571bf869e5b 100644 --- a/README.md +++ b/README.md @@ -1595,7 +1595,7 @@ for (let key in object2) console.log(key); // nothing #### ECMAScript: Collections[⬆](#index) `core-js` uses native collections in most cases, just fixes methods / constructor, if it's required, and in the old environment uses fast polyfill (O(1) lookup). #### Map[⬆](#index) -Modules [`es.map`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.map.js) and [`es.map.group-by`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.map.group-by.js). +Modules [`es.map.constructor`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.map.constructor.js) and [`es.map.group-by`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.map.group-by.js). ```ts class Map { constructor(iterable?: Iterable<[key, value]>): Map; diff --git a/packages/core-js-compat/src/data.mjs b/packages/core-js-compat/src/data.mjs index 60d83e690285..e14cb3941ac8 100644 --- a/packages/core-js-compat/src/data.mjs +++ b/packages/core-js-compat/src/data.mjs @@ -813,8 +813,6 @@ export const data = { rhino: '1.7.15', safari: '10.0', }, - // TODO: Remove this module from `core-js@4` since it's replaced to module below - 'es.map': null, 'es.map.constructor': { chrome: '51', edge: '15', @@ -2951,7 +2949,6 @@ export const data = { export const renamed = new Map([ // TODO: Clean in `core-js@4` - ['es.map', 'es.map.constructor'], ['es.set', 'es.set.constructor'], ['es.weak-map', 'es.weak-map.constructor'], ['es.weak-set', 'es.weak-set.constructor'], @@ -3012,7 +3009,6 @@ export const dataWithIgnored = { ...data }; export const ignored = [ // TODO: Clean in `core-js@4` - 'es.map.constructor', 'es.set.constructor', 'es.string.trim-left', 'es.string.trim-right', diff --git a/packages/core-js/actual/array/virtual/index.js b/packages/core-js/actual/array/virtual/index.js index 1c42a78cb489..c9b28c133e1a 100644 --- a/packages/core-js/actual/array/virtual/index.js +++ b/packages/core-js/actual/array/virtual/index.js @@ -1,6 +1,4 @@ 'use strict'; var parent = require('../../../stable/array/virtual'); -require('../../../modules/es.map'); -require('../../../modules/es.object.to-string'); module.exports = parent; diff --git a/packages/core-js/actual/map/group-by.js b/packages/core-js/actual/map/group-by.js index fdc4be879ca8..081b6ec481de 100644 --- a/packages/core-js/actual/map/group-by.js +++ b/packages/core-js/actual/map/group-by.js @@ -1,5 +1,4 @@ 'use strict'; var parent = require('../../stable/map/group-by'); -require('../../modules/esnext.map.group-by'); module.exports = parent; diff --git a/packages/core-js/es/map/group-by.js b/packages/core-js/es/map/group-by.js index 3228c057e9e9..e9056e3d1378 100644 --- a/packages/core-js/es/map/group-by.js +++ b/packages/core-js/es/map/group-by.js @@ -1,6 +1,6 @@ 'use strict'; require('../../modules/es.object.to-string'); -require('../../modules/es.map'); +require('../../modules/es.map.constructor'); require('../../modules/es.map.group-by'); var path = require('../../internals/path'); diff --git a/packages/core-js/es/map/index.js b/packages/core-js/es/map/index.js index 9dea507c9628..e53a1f2be823 100644 --- a/packages/core-js/es/map/index.js +++ b/packages/core-js/es/map/index.js @@ -1,6 +1,6 @@ 'use strict'; require('../../modules/es.array.iterator'); -require('../../modules/es.map'); +require('../../modules/es.map.constructor'); require('../../modules/es.map.group-by'); require('../../modules/es.object.to-string'); require('../../modules/es.string.iterator'); diff --git a/packages/core-js/full/array/index.js b/packages/core-js/full/array/index.js index 09bc77e58d4a..a46d70223a5c 100644 --- a/packages/core-js/full/array/index.js +++ b/packages/core-js/full/array/index.js @@ -1,6 +1,6 @@ 'use strict'; var parent = require('../../actual/array'); -require('../../modules/es.map'); +require('../../modules/es.map.constructor'); require('../../modules/esnext.array.filter-reject'); require('../../modules/esnext.array.is-template-object'); require('../../modules/esnext.array.unique-by'); diff --git a/packages/core-js/full/array/unique-by.js b/packages/core-js/full/array/unique-by.js index 8bb3b36edb7f..44bf0c5aca13 100644 --- a/packages/core-js/full/array/unique-by.js +++ b/packages/core-js/full/array/unique-by.js @@ -1,5 +1,5 @@ 'use strict'; -require('../../modules/es.map'); +require('../../modules/es.map.constructor'); require('../../modules/esnext.array.unique-by'); var entryUnbind = require('../../internals/entry-unbind'); diff --git a/packages/core-js/full/array/virtual/unique-by.js b/packages/core-js/full/array/virtual/unique-by.js index d9c0282bacb6..ea4f88279c96 100644 --- a/packages/core-js/full/array/virtual/unique-by.js +++ b/packages/core-js/full/array/virtual/unique-by.js @@ -1,5 +1,5 @@ 'use strict'; -require('../../../modules/es.map'); +require('../../../modules/es.map.constructor'); require('../../../modules/esnext.array.unique-by'); var getBuiltInPrototypeMethod = require('../../../internals/get-built-in-prototype-method'); diff --git a/packages/core-js/full/map/delete-all.js b/packages/core-js/full/map/delete-all.js index 53f7532c28f0..6b6d2ea16498 100644 --- a/packages/core-js/full/map/delete-all.js +++ b/packages/core-js/full/map/delete-all.js @@ -1,5 +1,5 @@ 'use strict'; -require('../../modules/es.map'); +require('../../modules/es.map.constructor'); require('../../modules/esnext.map.delete-all'); var entryUnbind = require('../../internals/entry-unbind'); diff --git a/packages/core-js/full/map/emplace.js b/packages/core-js/full/map/emplace.js index b23b79588d40..72fad4bb3e06 100644 --- a/packages/core-js/full/map/emplace.js +++ b/packages/core-js/full/map/emplace.js @@ -1,5 +1,5 @@ 'use strict'; -require('../../modules/es.map'); +require('../../modules/es.map.constructor'); require('../../modules/esnext.map.emplace'); var entryUnbind = require('../../internals/entry-unbind'); diff --git a/packages/core-js/full/map/every.js b/packages/core-js/full/map/every.js index cb6053bd7817..a12c2f8cd703 100644 --- a/packages/core-js/full/map/every.js +++ b/packages/core-js/full/map/every.js @@ -1,5 +1,5 @@ 'use strict'; -require('../../modules/es.map'); +require('../../modules/es.map.constructor'); require('../../modules/esnext.map.every'); var entryUnbind = require('../../internals/entry-unbind'); diff --git a/packages/core-js/full/map/filter.js b/packages/core-js/full/map/filter.js index e94aafb4f820..6f0b05299c4a 100644 --- a/packages/core-js/full/map/filter.js +++ b/packages/core-js/full/map/filter.js @@ -1,5 +1,5 @@ 'use strict'; -require('../../modules/es.map'); +require('../../modules/es.map.constructor'); require('../../modules/esnext.map.filter'); var entryUnbind = require('../../internals/entry-unbind'); diff --git a/packages/core-js/full/map/find-key.js b/packages/core-js/full/map/find-key.js index 942c4573f0d1..8b03a10d2367 100644 --- a/packages/core-js/full/map/find-key.js +++ b/packages/core-js/full/map/find-key.js @@ -1,5 +1,5 @@ 'use strict'; -require('../../modules/es.map'); +require('../../modules/es.map.constructor'); require('../../modules/esnext.map.find-key'); var entryUnbind = require('../../internals/entry-unbind'); diff --git a/packages/core-js/full/map/find.js b/packages/core-js/full/map/find.js index f1326b2dafa8..3da51fddcf2b 100644 --- a/packages/core-js/full/map/find.js +++ b/packages/core-js/full/map/find.js @@ -1,5 +1,5 @@ 'use strict'; -require('../../modules/es.map'); +require('../../modules/es.map.constructor'); require('../../modules/esnext.map.find'); var entryUnbind = require('../../internals/entry-unbind'); diff --git a/packages/core-js/full/map/from.js b/packages/core-js/full/map/from.js index f19d8fddebbc..a83a46b215b0 100644 --- a/packages/core-js/full/map/from.js +++ b/packages/core-js/full/map/from.js @@ -1,7 +1,7 @@ 'use strict'; require('../../modules/es.object.to-string'); require('../../modules/es.array.iterator'); -require('../../modules/es.map'); +require('../../modules/es.map.constructor'); require('../../modules/es.string.iterator'); require('../../modules/esnext.map.from'); require('../../modules/esnext.map.delete-all'); diff --git a/packages/core-js/full/map/includes.js b/packages/core-js/full/map/includes.js index 52432ed03c5e..08e5936e7285 100644 --- a/packages/core-js/full/map/includes.js +++ b/packages/core-js/full/map/includes.js @@ -1,5 +1,5 @@ 'use strict'; -require('../../modules/es.map'); +require('../../modules/es.map.constructor'); require('../../modules/esnext.map.includes'); var entryUnbind = require('../../internals/entry-unbind'); diff --git a/packages/core-js/full/map/key-by.js b/packages/core-js/full/map/key-by.js index 92c3570bf1d6..0019691cd5da 100644 --- a/packages/core-js/full/map/key-by.js +++ b/packages/core-js/full/map/key-by.js @@ -1,6 +1,6 @@ 'use strict'; require('../../modules/es.object.to-string'); -require('../../modules/es.map'); +require('../../modules/es.map.constructor'); require('../../modules/esnext.map.key-by'); require('../../modules/esnext.map.delete-all'); require('../../modules/esnext.map.emplace'); diff --git a/packages/core-js/full/map/key-of.js b/packages/core-js/full/map/key-of.js index 985c2ca98e3a..c2bc353ca238 100644 --- a/packages/core-js/full/map/key-of.js +++ b/packages/core-js/full/map/key-of.js @@ -1,5 +1,5 @@ 'use strict'; -require('../../modules/es.map'); +require('../../modules/es.map.constructor'); require('../../modules/esnext.map.key-of'); var entryUnbind = require('../../internals/entry-unbind'); diff --git a/packages/core-js/full/map/map-keys.js b/packages/core-js/full/map/map-keys.js index 168d985b5b96..350c481a62d8 100644 --- a/packages/core-js/full/map/map-keys.js +++ b/packages/core-js/full/map/map-keys.js @@ -1,5 +1,5 @@ 'use strict'; -require('../../modules/es.map'); +require('../../modules/es.map.constructor'); require('../../modules/esnext.map.map-keys'); var entryUnbind = require('../../internals/entry-unbind'); diff --git a/packages/core-js/full/map/map-values.js b/packages/core-js/full/map/map-values.js index 2346a0b5eff2..5790eff03810 100644 --- a/packages/core-js/full/map/map-values.js +++ b/packages/core-js/full/map/map-values.js @@ -1,5 +1,5 @@ 'use strict'; -require('../../modules/es.map'); +require('../../modules/es.map.constructor'); require('../../modules/esnext.map.map-values'); var entryUnbind = require('../../internals/entry-unbind'); diff --git a/packages/core-js/full/map/merge.js b/packages/core-js/full/map/merge.js index 85c0b0aad7eb..20f01bc560cb 100644 --- a/packages/core-js/full/map/merge.js +++ b/packages/core-js/full/map/merge.js @@ -1,5 +1,5 @@ 'use strict'; -require('../../modules/es.map'); +require('../../modules/es.map.constructor'); require('../../modules/esnext.map.merge'); var entryUnbind = require('../../internals/entry-unbind'); diff --git a/packages/core-js/full/map/of.js b/packages/core-js/full/map/of.js index 6a246dc55bef..5f944037f273 100644 --- a/packages/core-js/full/map/of.js +++ b/packages/core-js/full/map/of.js @@ -1,7 +1,7 @@ 'use strict'; require('../../modules/es.object.to-string'); require('../../modules/es.array.iterator'); -require('../../modules/es.map'); +require('../../modules/es.map.constructor'); require('../../modules/esnext.map.of'); require('../../modules/esnext.map.delete-all'); require('../../modules/esnext.map.emplace'); diff --git a/packages/core-js/full/map/reduce.js b/packages/core-js/full/map/reduce.js index 88bf56648dd2..c534ec846251 100644 --- a/packages/core-js/full/map/reduce.js +++ b/packages/core-js/full/map/reduce.js @@ -1,5 +1,5 @@ 'use strict'; -require('../../modules/es.map'); +require('../../modules/es.map.constructor'); require('../../modules/esnext.map.reduce'); var entryUnbind = require('../../internals/entry-unbind'); diff --git a/packages/core-js/full/map/some.js b/packages/core-js/full/map/some.js index fb55efbd4af7..35369568280f 100644 --- a/packages/core-js/full/map/some.js +++ b/packages/core-js/full/map/some.js @@ -1,5 +1,5 @@ 'use strict'; -require('../../modules/es.map'); +require('../../modules/es.map.constructor'); require('../../modules/esnext.map.some'); var entryUnbind = require('../../internals/entry-unbind'); diff --git a/packages/core-js/full/map/update.js b/packages/core-js/full/map/update.js index abc452c2df45..74b4ad64d38e 100644 --- a/packages/core-js/full/map/update.js +++ b/packages/core-js/full/map/update.js @@ -1,5 +1,5 @@ 'use strict'; -require('../../modules/es.map'); +require('../../modules/es.map.constructor'); require('../../modules/esnext.map.update'); var entryUnbind = require('../../internals/entry-unbind'); diff --git a/packages/core-js/full/typed-array/index.js b/packages/core-js/full/typed-array/index.js index a4a6531b44e9..8b47c47a3665 100644 --- a/packages/core-js/full/typed-array/index.js +++ b/packages/core-js/full/typed-array/index.js @@ -1,6 +1,6 @@ 'use strict'; var parent = require('../../actual/typed-array'); -require('../../modules/es.map'); +require('../../modules/es.map.constructor'); require('../../modules/es.promise'); require('../../modules/esnext.typed-array.filter-reject'); require('../../modules/esnext.typed-array.unique-by'); diff --git a/packages/core-js/full/typed-array/methods.js b/packages/core-js/full/typed-array/methods.js index 36db62b71e17..e3b51769beda 100644 --- a/packages/core-js/full/typed-array/methods.js +++ b/packages/core-js/full/typed-array/methods.js @@ -1,6 +1,6 @@ 'use strict'; var parent = require('../../actual/typed-array/methods'); -require('../../modules/es.map'); +require('../../modules/es.map.constructor'); require('../../modules/es.promise'); require('../../modules/esnext.typed-array.filter-reject'); require('../../modules/esnext.typed-array.unique-by'); diff --git a/packages/core-js/full/typed-array/unique-by.js b/packages/core-js/full/typed-array/unique-by.js index 43a46a71e94a..f8440406f0df 100644 --- a/packages/core-js/full/typed-array/unique-by.js +++ b/packages/core-js/full/typed-array/unique-by.js @@ -1,3 +1,3 @@ 'use strict'; -require('../../modules/es.map'); +require('../../modules/es.map.constructor'); require('../../modules/esnext.typed-array.unique-by'); diff --git a/packages/core-js/internals/composite-key.js b/packages/core-js/internals/composite-key.js index 6c44f2041c91..9a3b5ebf09c1 100644 --- a/packages/core-js/internals/composite-key.js +++ b/packages/core-js/internals/composite-key.js @@ -1,6 +1,6 @@ 'use strict'; // TODO: in core-js@4, move /modules/ dependencies to public entries for better optimization by tools like `preset-env` -require('../modules/es.map'); +require('../modules/es.map.constructor'); require('../modules/es.weak-map'); var getBuiltIn = require('../internals/get-built-in'); var create = require('../internals/object-create'); diff --git a/packages/core-js/internals/reflect-metadata.js b/packages/core-js/internals/reflect-metadata.js index 804161607fd0..56af02c54f36 100644 --- a/packages/core-js/internals/reflect-metadata.js +++ b/packages/core-js/internals/reflect-metadata.js @@ -1,6 +1,6 @@ 'use strict'; // TODO: in core-js@4, move /modules/ dependencies to public entries for better optimization by tools like `preset-env` -require('../modules/es.map'); +require('../modules/es.map.constructor'); require('../modules/es.weak-map'); var getBuiltIn = require('../internals/get-built-in'); var uncurryThis = require('../internals/function-uncurry-this'); diff --git a/packages/core-js/modules/es.map.js b/packages/core-js/modules/es.map.js deleted file mode 100644 index abe2fe5e4969..000000000000 --- a/packages/core-js/modules/es.map.js +++ /dev/null @@ -1,3 +0,0 @@ -'use strict'; -// TODO: Remove this module from `core-js@4` since it's replaced to module below -require('../modules/es.map.constructor'); diff --git a/packages/core-js/proposals/array-unique.js b/packages/core-js/proposals/array-unique.js index d854af00cedc..21452a602a74 100644 --- a/packages/core-js/proposals/array-unique.js +++ b/packages/core-js/proposals/array-unique.js @@ -1,5 +1,5 @@ 'use strict'; // https://github.com/tc39/proposal-array-unique -require('../modules/es.map'); +require('../modules/es.map.constructor'); require('../modules/esnext.array.unique-by'); require('../modules/esnext.typed-array.unique-by'); diff --git a/packages/core-js/stable/structured-clone.js b/packages/core-js/stable/structured-clone.js index 3c877c0fec94..1383313183da 100644 --- a/packages/core-js/stable/structured-clone.js +++ b/packages/core-js/stable/structured-clone.js @@ -3,7 +3,7 @@ require('../modules/es.error.to-string'); require('../modules/es.array.iterator'); require('../modules/es.object.keys'); require('../modules/es.object.to-string'); -require('../modules/es.map'); +require('../modules/es.map.constructor'); require('../modules/es.set'); require('../modules/web.dom-exception.constructor'); require('../modules/web.dom-exception.stack'); diff --git a/packages/core-js/web/structured-clone.js b/packages/core-js/web/structured-clone.js index a58caf017eec..beaae5ff3297 100644 --- a/packages/core-js/web/structured-clone.js +++ b/packages/core-js/web/structured-clone.js @@ -1,7 +1,7 @@ 'use strict'; require('../modules/es.array.iterator'); require('../modules/es.object.to-string'); -require('../modules/es.map'); +require('../modules/es.map.constructor'); require('../modules/es.set'); require('../modules/web.structured-clone'); var path = require('../internals/path'); diff --git a/tests/compat-data/tests-coverage.mjs b/tests/compat-data/tests-coverage.mjs index d912f0faf699..8e73ad20c307 100644 --- a/tests/compat-data/tests-coverage.mjs +++ b/tests/compat-data/tests-coverage.mjs @@ -9,7 +9,6 @@ const modulesSet = new Set([ const tested = new Set(Object.keys(globalThis.tests)); const ignore = new Set([ - 'es.map', 'es.set', 'es.weak-map', 'es.weak-set', diff --git a/tests/compat-tools/compat.mjs b/tests/compat-tools/compat.mjs index 9735047ce56d..22722826f7ea 100644 --- a/tests/compat-tools/compat.mjs +++ b/tests/compat-tools/compat.mjs @@ -141,6 +141,6 @@ ok(!inverted1.includes('esnext.iterator.from'), 'inverse #2'); const { list: inverted2 } = compat({ modules: 'core-js/es/math', targets: { esmodules: true }, inverse: true }); ok(inverted2.includes('es.math.acosh'), 'inverse #4'); -ok(!inverted2.includes('es.map'), 'inverse #5'); +ok(!inverted2.includes('es.map.constructor'), 'inverse #5'); echo(chalk.green('compat tool tested')); diff --git a/tests/unit-global/es.map.js b/tests/unit-global/es.map.constructor.js similarity index 99% rename from tests/unit-global/es.map.js rename to tests/unit-global/es.map.constructor.js index 3bba3cd4726a..606a2028d762 100644 --- a/tests/unit-global/es.map.js +++ b/tests/unit-global/es.map.constructor.js @@ -1,5 +1,4 @@ /* eslint-disable sonarjs/no-element-overwrite -- required for testing */ - import { DESCRIPTORS, GLOBAL, NATIVE } from '../helpers/constants.js'; import { createIterable, is, nativeSubclass } from '../helpers/helpers.js'; diff --git a/tests/unit-pure/es.map.js b/tests/unit-pure/es.map.constructor.js similarity index 99% rename from tests/unit-pure/es.map.js rename to tests/unit-pure/es.map.constructor.js index 9e07427e6571..5df6960845d8 100644 --- a/tests/unit-pure/es.map.js +++ b/tests/unit-pure/es.map.constructor.js @@ -1,5 +1,4 @@ /* eslint-disable sonarjs/no-element-overwrite -- required for testing */ - import { createIterable, is, nativeSubclass } from '../helpers/helpers.js'; import { DESCRIPTORS } from '../helpers/constants.js'; From 09eb3ca0c24d1b8cf2db61e61fee63cb060e4f08 Mon Sep 17 00:00:00 2001 From: Denis Pushkarev Date: Wed, 4 Oct 2023 06:50:12 +0700 Subject: [PATCH 071/428] rename `es.set` -> `es.set.constructor` --- README.md | 4 ++-- packages/core-js-compat/src/data.mjs | 4 ---- packages/core-js/es/set/difference.js | 2 +- packages/core-js/es/set/index.js | 2 +- packages/core-js/es/set/intersection.js | 2 +- packages/core-js/es/set/is-disjoint-from.js | 2 +- packages/core-js/es/set/is-subset-of.js | 2 +- packages/core-js/es/set/is-superset-of.js | 2 +- packages/core-js/es/set/symmetric-difference.js | 2 +- packages/core-js/es/set/union.js | 2 +- packages/core-js/full/set/add-all.js | 2 +- packages/core-js/full/set/delete-all.js | 2 +- packages/core-js/full/set/every.js | 2 +- packages/core-js/full/set/filter.js | 2 +- packages/core-js/full/set/find.js | 2 +- packages/core-js/full/set/from.js | 2 +- packages/core-js/full/set/join.js | 2 +- packages/core-js/full/set/map.js | 2 +- packages/core-js/full/set/of.js | 2 +- packages/core-js/full/set/reduce.js | 2 +- packages/core-js/full/set/some.js | 2 +- packages/core-js/modules/es.set.js | 3 --- packages/core-js/stable/structured-clone.js | 2 +- packages/core-js/web/structured-clone.js | 2 +- tests/compat-data/tests-coverage.mjs | 1 - tests/unit-global/{es.set.js => es.set.constructor.js} | 1 - tests/unit-pure/{es.set.js => es.set.constructor.js} | 1 - 27 files changed, 23 insertions(+), 33 deletions(-) delete mode 100644 packages/core-js/modules/es.set.js rename tests/unit-global/{es.set.js => es.set.constructor.js} (99%) rename tests/unit-pure/{es.set.js => es.set.constructor.js} (99%) diff --git a/README.md b/README.md index 4571bf869e5b..f03a8cef7885 100644 --- a/README.md +++ b/README.md @@ -377,7 +377,7 @@ if the target contains an old environment like `IE 11` we will have something li // first file: import 'core-js/modules/es.array.iterator'; import 'core-js/modules/es.object.to-string'; -import 'core-js/modules/es.set'; +import 'core-js/modules/es.set.constructor'; var set = new Set([1, 2, 3]); ``` @@ -1656,7 +1656,7 @@ map.get(1); // => [1, 3, 5] map.get(0); // => [2, 4] ``` #### Set[⬆](#index) -Modules [`es.set`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.set.js), [`es.set.difference.v2`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.set.difference.v2.js), [`es.set.intersection.v2`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.set.intersection.v2.js), [`es.set.is-disjoint-from.v2`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.set.is-disjoint-from.v2.js), [`es.set.is-subset-of.v2`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.set.is-subset-of.v2.js), [`es.set.is-superset-of.v2`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.set.is-superset-of.v2.js), [`es.set.symmetric-difference.v2`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.set.symmetric-difference.v2.js), [`es.set.union.v2`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.set.union.v2.js) +Modules [`es.set.constructor`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.set.constructor.js), [`es.set.difference.v2`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.set.difference.v2.js), [`es.set.intersection.v2`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.set.intersection.v2.js), [`es.set.is-disjoint-from.v2`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.set.is-disjoint-from.v2.js), [`es.set.is-subset-of.v2`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.set.is-subset-of.v2.js), [`es.set.is-superset-of.v2`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.set.is-superset-of.v2.js), [`es.set.symmetric-difference.v2`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.set.symmetric-difference.v2.js), [`es.set.union.v2`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.set.union.v2.js) ```ts class Set { constructor(iterable?: Iterable): Set; diff --git a/packages/core-js-compat/src/data.mjs b/packages/core-js-compat/src/data.mjs index e14cb3941ac8..3232268507c9 100644 --- a/packages/core-js-compat/src/data.mjs +++ b/packages/core-js-compat/src/data.mjs @@ -1623,8 +1623,6 @@ export const data = { rhino: '1.7.15', safari: '10.0', }, - // TODO: Remove this module from `core-js@4` since it's replaced to module below - 'es.set': null, 'es.set.constructor': { chrome: '51', edge: '15', @@ -2949,7 +2947,6 @@ export const data = { export const renamed = new Map([ // TODO: Clean in `core-js@4` - ['es.set', 'es.set.constructor'], ['es.weak-map', 'es.weak-map.constructor'], ['es.weak-set', 'es.weak-set.constructor'], ['esnext.array.from-async', 'es.array.from-async'], @@ -3009,7 +3006,6 @@ export const dataWithIgnored = { ...data }; export const ignored = [ // TODO: Clean in `core-js@4` - 'es.set.constructor', 'es.string.trim-left', 'es.string.trim-right', 'es.symbol.constructor', diff --git a/packages/core-js/es/set/difference.js b/packages/core-js/es/set/difference.js index cc5a1d643b28..bb89708b36fe 100644 --- a/packages/core-js/es/set/difference.js +++ b/packages/core-js/es/set/difference.js @@ -1,5 +1,5 @@ 'use strict'; -require('../../modules/es.set'); +require('../../modules/es.set.constructor'); require('../../modules/es.set.difference.v2'); var entryUnbind = require('../../internals/entry-unbind'); diff --git a/packages/core-js/es/set/index.js b/packages/core-js/es/set/index.js index 9a300f8fb59e..63df6be90f74 100644 --- a/packages/core-js/es/set/index.js +++ b/packages/core-js/es/set/index.js @@ -1,7 +1,7 @@ 'use strict'; require('../../modules/es.array.iterator'); require('../../modules/es.object.to-string'); -require('../../modules/es.set'); +require('../../modules/es.set.constructor'); require('../../modules/es.set.difference.v2'); require('../../modules/es.set.intersection.v2'); require('../../modules/es.set.is-disjoint-from.v2'); diff --git a/packages/core-js/es/set/intersection.js b/packages/core-js/es/set/intersection.js index 8c2b7a1c24ed..1196edc6f351 100644 --- a/packages/core-js/es/set/intersection.js +++ b/packages/core-js/es/set/intersection.js @@ -1,5 +1,5 @@ 'use strict'; -require('../../modules/es.set'); +require('../../modules/es.set.constructor'); require('../../modules/es.set.intersection.v2'); var entryUnbind = require('../../internals/entry-unbind'); diff --git a/packages/core-js/es/set/is-disjoint-from.js b/packages/core-js/es/set/is-disjoint-from.js index 1888869649fc..d5cc3d5b91b5 100644 --- a/packages/core-js/es/set/is-disjoint-from.js +++ b/packages/core-js/es/set/is-disjoint-from.js @@ -1,5 +1,5 @@ 'use strict'; -require('../../modules/es.set'); +require('../../modules/es.set.constructor'); require('../../modules/es.set.is-disjoint-from.v2'); var entryUnbind = require('../../internals/entry-unbind'); diff --git a/packages/core-js/es/set/is-subset-of.js b/packages/core-js/es/set/is-subset-of.js index 242f71740456..38202fb909a6 100644 --- a/packages/core-js/es/set/is-subset-of.js +++ b/packages/core-js/es/set/is-subset-of.js @@ -1,5 +1,5 @@ 'use strict'; -require('../../modules/es.set'); +require('../../modules/es.set.constructor'); require('../../modules/es.set.is-subset-of.v2'); var entryUnbind = require('../../internals/entry-unbind'); diff --git a/packages/core-js/es/set/is-superset-of.js b/packages/core-js/es/set/is-superset-of.js index ee81cfb46e34..5a08e51cd027 100644 --- a/packages/core-js/es/set/is-superset-of.js +++ b/packages/core-js/es/set/is-superset-of.js @@ -1,5 +1,5 @@ 'use strict'; -require('../../modules/es.set'); +require('../../modules/es.set.constructor'); require('../../modules/es.set.is-superset-of.v2'); var entryUnbind = require('../../internals/entry-unbind'); diff --git a/packages/core-js/es/set/symmetric-difference.js b/packages/core-js/es/set/symmetric-difference.js index 60fbf7b5df39..2244254f8a4f 100644 --- a/packages/core-js/es/set/symmetric-difference.js +++ b/packages/core-js/es/set/symmetric-difference.js @@ -1,5 +1,5 @@ 'use strict'; -require('../../modules/es.set'); +require('../../modules/es.set.constructor'); require('../../modules/es.set.symmetric-difference.v2'); var entryUnbind = require('../../internals/entry-unbind'); diff --git a/packages/core-js/es/set/union.js b/packages/core-js/es/set/union.js index d5d7516d7091..cefc7d4cf163 100644 --- a/packages/core-js/es/set/union.js +++ b/packages/core-js/es/set/union.js @@ -1,5 +1,5 @@ 'use strict'; -require('../../modules/es.set'); +require('../../modules/es.set.constructor'); require('../../modules/es.set.union.v2'); var entryUnbind = require('../../internals/entry-unbind'); diff --git a/packages/core-js/full/set/add-all.js b/packages/core-js/full/set/add-all.js index bafef1c92ed4..48e84f36ad83 100644 --- a/packages/core-js/full/set/add-all.js +++ b/packages/core-js/full/set/add-all.js @@ -1,5 +1,5 @@ 'use strict'; -require('../../modules/es.set'); +require('../../modules/es.set.constructor'); require('../../modules/esnext.set.add-all'); var entryUnbind = require('../../internals/entry-unbind'); diff --git a/packages/core-js/full/set/delete-all.js b/packages/core-js/full/set/delete-all.js index 0233621634d6..c0a23bb2da79 100644 --- a/packages/core-js/full/set/delete-all.js +++ b/packages/core-js/full/set/delete-all.js @@ -1,5 +1,5 @@ 'use strict'; -require('../../modules/es.set'); +require('../../modules/es.set.constructor'); require('../../modules/esnext.set.delete-all'); var entryUnbind = require('../../internals/entry-unbind'); diff --git a/packages/core-js/full/set/every.js b/packages/core-js/full/set/every.js index f5c0cfb245b6..71fe867a841f 100644 --- a/packages/core-js/full/set/every.js +++ b/packages/core-js/full/set/every.js @@ -1,5 +1,5 @@ 'use strict'; -require('../../modules/es.set'); +require('../../modules/es.set.constructor'); require('../../modules/esnext.set.every'); var entryUnbind = require('../../internals/entry-unbind'); diff --git a/packages/core-js/full/set/filter.js b/packages/core-js/full/set/filter.js index 3150068709ef..b1f2227ecdca 100644 --- a/packages/core-js/full/set/filter.js +++ b/packages/core-js/full/set/filter.js @@ -1,5 +1,5 @@ 'use strict'; -require('../../modules/es.set'); +require('../../modules/es.set.constructor'); require('../../modules/esnext.set.filter'); var entryUnbind = require('../../internals/entry-unbind'); diff --git a/packages/core-js/full/set/find.js b/packages/core-js/full/set/find.js index 9ff5b53b6374..e31f56065a44 100644 --- a/packages/core-js/full/set/find.js +++ b/packages/core-js/full/set/find.js @@ -1,5 +1,5 @@ 'use strict'; -require('../../modules/es.set'); +require('../../modules/es.set.constructor'); require('../../modules/esnext.set.find'); var entryUnbind = require('../../internals/entry-unbind'); diff --git a/packages/core-js/full/set/from.js b/packages/core-js/full/set/from.js index d46b0512cef9..5d09e782826e 100644 --- a/packages/core-js/full/set/from.js +++ b/packages/core-js/full/set/from.js @@ -1,7 +1,7 @@ 'use strict'; require('../../modules/es.object.to-string'); require('../../modules/es.array.iterator'); -require('../../modules/es.set'); +require('../../modules/es.set.constructor'); require('../../modules/es.string.iterator'); require('../../modules/esnext.set.from'); require('../../modules/esnext.set.add-all'); diff --git a/packages/core-js/full/set/join.js b/packages/core-js/full/set/join.js index f50f5e2e64ec..93c80fc535f4 100644 --- a/packages/core-js/full/set/join.js +++ b/packages/core-js/full/set/join.js @@ -1,5 +1,5 @@ 'use strict'; -require('../../modules/es.set'); +require('../../modules/es.set.constructor'); require('../../modules/esnext.set.join'); var entryUnbind = require('../../internals/entry-unbind'); diff --git a/packages/core-js/full/set/map.js b/packages/core-js/full/set/map.js index 0785cfc588ad..ec9f1b3e49d3 100644 --- a/packages/core-js/full/set/map.js +++ b/packages/core-js/full/set/map.js @@ -1,5 +1,5 @@ 'use strict'; -require('../../modules/es.set'); +require('../../modules/es.set.constructor'); require('../../modules/esnext.set.map'); var entryUnbind = require('../../internals/entry-unbind'); diff --git a/packages/core-js/full/set/of.js b/packages/core-js/full/set/of.js index 754f8e3046cd..45640b5bc690 100644 --- a/packages/core-js/full/set/of.js +++ b/packages/core-js/full/set/of.js @@ -1,7 +1,7 @@ 'use strict'; require('../../modules/es.object.to-string'); require('../../modules/es.array.iterator'); -require('../../modules/es.set'); +require('../../modules/es.set.constructor'); require('../../modules/esnext.set.of'); require('../../modules/esnext.set.add-all'); require('../../modules/esnext.set.delete-all'); diff --git a/packages/core-js/full/set/reduce.js b/packages/core-js/full/set/reduce.js index 5e624cd65b2e..aac2afa05e71 100644 --- a/packages/core-js/full/set/reduce.js +++ b/packages/core-js/full/set/reduce.js @@ -1,5 +1,5 @@ 'use strict'; -require('../../modules/es.set'); +require('../../modules/es.set.constructor'); require('../../modules/esnext.set.reduce'); var entryUnbind = require('../../internals/entry-unbind'); diff --git a/packages/core-js/full/set/some.js b/packages/core-js/full/set/some.js index 9a7adfda414c..ecccccbd5e49 100644 --- a/packages/core-js/full/set/some.js +++ b/packages/core-js/full/set/some.js @@ -1,5 +1,5 @@ 'use strict'; -require('../../modules/es.set'); +require('../../modules/es.set.constructor'); require('../../modules/esnext.set.some'); var entryUnbind = require('../../internals/entry-unbind'); diff --git a/packages/core-js/modules/es.set.js b/packages/core-js/modules/es.set.js deleted file mode 100644 index ff66f7090680..000000000000 --- a/packages/core-js/modules/es.set.js +++ /dev/null @@ -1,3 +0,0 @@ -'use strict'; -// TODO: Remove this module from `core-js@4` since it's replaced to module below -require('../modules/es.set.constructor'); diff --git a/packages/core-js/stable/structured-clone.js b/packages/core-js/stable/structured-clone.js index 1383313183da..478f919c209e 100644 --- a/packages/core-js/stable/structured-clone.js +++ b/packages/core-js/stable/structured-clone.js @@ -4,7 +4,7 @@ require('../modules/es.array.iterator'); require('../modules/es.object.keys'); require('../modules/es.object.to-string'); require('../modules/es.map.constructor'); -require('../modules/es.set'); +require('../modules/es.set.constructor'); require('../modules/web.dom-exception.constructor'); require('../modules/web.dom-exception.stack'); require('../modules/web.dom-exception.to-string-tag'); diff --git a/packages/core-js/web/structured-clone.js b/packages/core-js/web/structured-clone.js index beaae5ff3297..8e4c2571ad88 100644 --- a/packages/core-js/web/structured-clone.js +++ b/packages/core-js/web/structured-clone.js @@ -2,7 +2,7 @@ require('../modules/es.array.iterator'); require('../modules/es.object.to-string'); require('../modules/es.map.constructor'); -require('../modules/es.set'); +require('../modules/es.set.constructor'); require('../modules/web.structured-clone'); var path = require('../internals/path'); diff --git a/tests/compat-data/tests-coverage.mjs b/tests/compat-data/tests-coverage.mjs index 8e73ad20c307..27b0e7e90974 100644 --- a/tests/compat-data/tests-coverage.mjs +++ b/tests/compat-data/tests-coverage.mjs @@ -9,7 +9,6 @@ const modulesSet = new Set([ const tested = new Set(Object.keys(globalThis.tests)); const ignore = new Set([ - 'es.set', 'es.weak-map', 'es.weak-set', 'esnext.iterator.sliding', diff --git a/tests/unit-global/es.set.js b/tests/unit-global/es.set.constructor.js similarity index 99% rename from tests/unit-global/es.set.js rename to tests/unit-global/es.set.constructor.js index 9ee14d1e3183..27c22ba1e3a9 100644 --- a/tests/unit-global/es.set.js +++ b/tests/unit-global/es.set.constructor.js @@ -1,5 +1,4 @@ /* eslint-disable sonarjs/no-element-overwrite -- required for testing */ - import { DESCRIPTORS, GLOBAL, NATIVE } from '../helpers/constants.js'; import { createIterable, is, nativeSubclass } from '../helpers/helpers.js'; diff --git a/tests/unit-pure/es.set.js b/tests/unit-pure/es.set.constructor.js similarity index 99% rename from tests/unit-pure/es.set.js rename to tests/unit-pure/es.set.constructor.js index 75a237c83595..434c66c21b7a 100644 --- a/tests/unit-pure/es.set.js +++ b/tests/unit-pure/es.set.constructor.js @@ -1,5 +1,4 @@ /* eslint-disable sonarjs/no-element-overwrite -- required for testing */ - import { createIterable, is, nativeSubclass } from '../helpers/helpers.js'; import { DESCRIPTORS } from '../helpers/constants.js'; From c9af1099f510d230f7da2f062a34e54e9b699b81 Mon Sep 17 00:00:00 2001 From: Denis Pushkarev Date: Wed, 4 Oct 2023 07:16:31 +0700 Subject: [PATCH 072/428] rename `es.weak-map` -> `es.weak-map.constructor` --- README.md | 2 +- packages/core-js-compat/src/data.mjs | 4 ---- packages/core-js/es/weak-map/index.js | 2 +- packages/core-js/full/string/dedent.js | 2 +- packages/core-js/full/string/index.js | 2 +- packages/core-js/full/weak-map/delete-all.js | 2 +- packages/core-js/full/weak-map/emplace.js | 2 +- packages/core-js/full/weak-map/from.js | 2 +- packages/core-js/full/weak-map/of.js | 2 +- packages/core-js/internals/composite-key.js | 2 +- packages/core-js/internals/reflect-metadata.js | 2 +- packages/core-js/modules/es.weak-map.js | 3 --- tests/compat-data/tests-coverage.mjs | 1 - .../{es.weak-map.js => es.weak-map.constructor.js} | 0 .../unit-pure/{es.weak-map.js => es.weak-map.constructor.js} | 0 15 files changed, 10 insertions(+), 18 deletions(-) delete mode 100644 packages/core-js/modules/es.weak-map.js rename tests/unit-global/{es.weak-map.js => es.weak-map.constructor.js} (100%) rename tests/unit-pure/{es.weak-map.js => es.weak-map.constructor.js} (100%) diff --git a/README.md b/README.md index f03a8cef7885..b0c59bde9a49 100644 --- a/README.md +++ b/README.md @@ -1723,7 +1723,7 @@ new Set([1, 2, 3]).isSubsetOf(new Set([5, 4, 3, 2, 1])); // => true new Set([5, 4, 3, 2, 1]).isSupersetOf(new Set([1, 2, 3])); // => true ``` #### WeakMap[⬆](#index) -Module [`es.weak-map`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.weak-map.js). +Module [`es.weak-map.constructor`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.weak-map.constructor.js). ```ts class WeakMap { constructor(iterable?: Iterable<[key, value]>): WeakMap; diff --git a/packages/core-js-compat/src/data.mjs b/packages/core-js-compat/src/data.mjs index 3232268507c9..9d2758ef6417 100644 --- a/packages/core-js-compat/src/data.mjs +++ b/packages/core-js-compat/src/data.mjs @@ -2336,8 +2336,6 @@ export const data = { rhino: '1.7.13', safari: '1', }, - // TODO: Remove this module from `core-js@4` since it's replaced to module below - 'es.weak-map': null, 'es.weak-map.constructor': { chrome: '51', // adding frozen arrays to WeakMap unfreeze them @@ -2947,7 +2945,6 @@ export const data = { export const renamed = new Map([ // TODO: Clean in `core-js@4` - ['es.weak-map', 'es.weak-map.constructor'], ['es.weak-set', 'es.weak-set.constructor'], ['esnext.array.from-async', 'es.array.from-async'], ['esnext.array-buffer.detached', 'es.array-buffer.detached'], @@ -3018,7 +3015,6 @@ export const ignored = [ 'es.promise.race', 'es.promise.reject', 'es.promise.resolve', - 'es.weak-map.constructor', 'es.weak-set.constructor', 'esnext.observable.constructor', 'esnext.observable.from', diff --git a/packages/core-js/es/weak-map/index.js b/packages/core-js/es/weak-map/index.js index 591e5b8aa652..b5e1718ad56c 100644 --- a/packages/core-js/es/weak-map/index.js +++ b/packages/core-js/es/weak-map/index.js @@ -1,7 +1,7 @@ 'use strict'; require('../../modules/es.array.iterator'); require('../../modules/es.object.to-string'); -require('../../modules/es.weak-map'); +require('../../modules/es.weak-map.constructor'); var path = require('../../internals/path'); module.exports = path.WeakMap; diff --git a/packages/core-js/full/string/dedent.js b/packages/core-js/full/string/dedent.js index 68eb09004d58..e6b389a7fb58 100644 --- a/packages/core-js/full/string/dedent.js +++ b/packages/core-js/full/string/dedent.js @@ -1,6 +1,6 @@ 'use strict'; require('../../modules/es.string.from-code-point'); -require('../../modules/es.weak-map'); +require('../../modules/es.weak-map.constructor'); require('../../modules/esnext.string.dedent'); var path = require('../../internals/path'); diff --git a/packages/core-js/full/string/index.js b/packages/core-js/full/string/index.js index 214c4e60d0cf..5bf8b2fa9c50 100644 --- a/packages/core-js/full/string/index.js +++ b/packages/core-js/full/string/index.js @@ -1,6 +1,6 @@ 'use strict'; var parent = require('../../actual/string'); -require('../../modules/es.weak-map'); +require('../../modules/es.weak-map.constructor'); require('../../modules/esnext.string.cooked'); require('../../modules/esnext.string.code-points'); require('../../modules/esnext.string.dedent'); diff --git a/packages/core-js/full/weak-map/delete-all.js b/packages/core-js/full/weak-map/delete-all.js index 76f854bce039..86d9151cacc3 100644 --- a/packages/core-js/full/weak-map/delete-all.js +++ b/packages/core-js/full/weak-map/delete-all.js @@ -1,5 +1,5 @@ 'use strict'; -require('../../modules/es.weak-map'); +require('../../modules/es.weak-map.constructor'); require('../../modules/esnext.weak-map.delete-all'); var entryUnbind = require('../../internals/entry-unbind'); diff --git a/packages/core-js/full/weak-map/emplace.js b/packages/core-js/full/weak-map/emplace.js index fc3844a4110e..978478e383b8 100644 --- a/packages/core-js/full/weak-map/emplace.js +++ b/packages/core-js/full/weak-map/emplace.js @@ -1,5 +1,5 @@ 'use strict'; -require('../../modules/es.weak-map'); +require('../../modules/es.weak-map.constructor'); require('../../modules/esnext.weak-map.emplace'); var entryUnbind = require('../../internals/entry-unbind'); diff --git a/packages/core-js/full/weak-map/from.js b/packages/core-js/full/weak-map/from.js index 443fd8f0b320..75e768df97de 100644 --- a/packages/core-js/full/weak-map/from.js +++ b/packages/core-js/full/weak-map/from.js @@ -2,7 +2,7 @@ require('../../modules/es.object.to-string'); require('../../modules/es.array.iterator'); require('../../modules/es.string.iterator'); -require('../../modules/es.weak-map'); +require('../../modules/es.weak-map.constructor'); require('../../modules/esnext.weak-map.from'); require('../../modules/esnext.weak-map.delete-all'); require('../../modules/esnext.weak-map.emplace'); diff --git a/packages/core-js/full/weak-map/of.js b/packages/core-js/full/weak-map/of.js index 66d3063318f9..02ade1d1e35d 100644 --- a/packages/core-js/full/weak-map/of.js +++ b/packages/core-js/full/weak-map/of.js @@ -1,7 +1,7 @@ 'use strict'; require('../../modules/es.object.to-string'); require('../../modules/es.array.iterator'); -require('../../modules/es.weak-map'); +require('../../modules/es.weak-map.constructor'); require('../../modules/esnext.weak-map.of'); require('../../modules/esnext.weak-map.delete-all'); require('../../modules/esnext.weak-map.emplace'); diff --git a/packages/core-js/internals/composite-key.js b/packages/core-js/internals/composite-key.js index 9a3b5ebf09c1..43415ce4b452 100644 --- a/packages/core-js/internals/composite-key.js +++ b/packages/core-js/internals/composite-key.js @@ -1,7 +1,7 @@ 'use strict'; // TODO: in core-js@4, move /modules/ dependencies to public entries for better optimization by tools like `preset-env` require('../modules/es.map.constructor'); -require('../modules/es.weak-map'); +require('../modules/es.weak-map.constructor'); var getBuiltIn = require('../internals/get-built-in'); var create = require('../internals/object-create'); var isObject = require('../internals/is-object'); diff --git a/packages/core-js/internals/reflect-metadata.js b/packages/core-js/internals/reflect-metadata.js index 56af02c54f36..b9a1fcf97532 100644 --- a/packages/core-js/internals/reflect-metadata.js +++ b/packages/core-js/internals/reflect-metadata.js @@ -1,7 +1,7 @@ 'use strict'; // TODO: in core-js@4, move /modules/ dependencies to public entries for better optimization by tools like `preset-env` require('../modules/es.map.constructor'); -require('../modules/es.weak-map'); +require('../modules/es.weak-map.constructor'); var getBuiltIn = require('../internals/get-built-in'); var uncurryThis = require('../internals/function-uncurry-this'); var shared = require('../internals/shared'); diff --git a/packages/core-js/modules/es.weak-map.js b/packages/core-js/modules/es.weak-map.js deleted file mode 100644 index d59a49f2b58f..000000000000 --- a/packages/core-js/modules/es.weak-map.js +++ /dev/null @@ -1,3 +0,0 @@ -'use strict'; -// TODO: Remove this module from `core-js@4` since it's replaced to module below -require('../modules/es.weak-map.constructor'); diff --git a/tests/compat-data/tests-coverage.mjs b/tests/compat-data/tests-coverage.mjs index 27b0e7e90974..65fe1cfc2066 100644 --- a/tests/compat-data/tests-coverage.mjs +++ b/tests/compat-data/tests-coverage.mjs @@ -9,7 +9,6 @@ const modulesSet = new Set([ const tested = new Set(Object.keys(globalThis.tests)); const ignore = new Set([ - 'es.weak-map', 'es.weak-set', 'esnext.iterator.sliding', 'esnext.map.emplace', diff --git a/tests/unit-global/es.weak-map.js b/tests/unit-global/es.weak-map.constructor.js similarity index 100% rename from tests/unit-global/es.weak-map.js rename to tests/unit-global/es.weak-map.constructor.js diff --git a/tests/unit-pure/es.weak-map.js b/tests/unit-pure/es.weak-map.constructor.js similarity index 100% rename from tests/unit-pure/es.weak-map.js rename to tests/unit-pure/es.weak-map.constructor.js From 22e320e7de23f3408914337573f1483c69444d06 Mon Sep 17 00:00:00 2001 From: Denis Pushkarev Date: Wed, 4 Oct 2023 07:23:35 +0700 Subject: [PATCH 073/428] rename `es.weak-set` -> `es.weak-set.constructor` --- README.md | 2 +- packages/core-js-compat/src/data.mjs | 4 ---- packages/core-js/actual/map/get-or-insert-computed.js | 2 +- packages/core-js/actual/map/get-or-insert.js | 2 +- packages/core-js/actual/weak-map/get-or-insert-computed.js | 2 +- packages/core-js/actual/weak-map/get-or-insert.js | 2 +- packages/core-js/es/weak-set/index.js | 2 +- packages/core-js/full/weak-set/add-all.js | 2 +- packages/core-js/full/weak-set/delete-all.js | 2 +- packages/core-js/full/weak-set/from.js | 2 +- packages/core-js/full/weak-set/of.js | 2 +- packages/core-js/modules/es.weak-set.js | 3 --- tests/compat-data/tests-coverage.mjs | 1 - .../{es.weak-set.js => es.weak-set.constructor.js} | 0 .../unit-pure/{es.weak-set.js => es.weak-set.constructor.js} | 0 15 files changed, 10 insertions(+), 18 deletions(-) delete mode 100644 packages/core-js/modules/es.weak-set.js rename tests/unit-global/{es.weak-set.js => es.weak-set.constructor.js} (100%) rename tests/unit-pure/{es.weak-set.js => es.weak-set.constructor.js} (100%) diff --git a/README.md b/README.md index b0c59bde9a49..2375464e940a 100644 --- a/README.md +++ b/README.md @@ -1769,7 +1769,7 @@ console.log(person.getName()); // => 'Vasya' for (let key in person) console.log(key); // => only 'getName' ``` #### WeakSet[⬆](#index) -Module [`es.weak-set`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.weak-set.js). +Module [`es.weak-set.constructor`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.weak-set.constructor.js). ```ts class WeakSet { constructor(iterable?: Iterable): WeakSet; diff --git a/packages/core-js-compat/src/data.mjs b/packages/core-js-compat/src/data.mjs index 9d2758ef6417..61ba1928c23c 100644 --- a/packages/core-js-compat/src/data.mjs +++ b/packages/core-js-compat/src/data.mjs @@ -2346,8 +2346,6 @@ export const data = { rhino: '1.7.13', safari: '10.0', }, - // TODO: Remove this module from `core-js@4` since it's replaced to module below - 'es.weak-set': null, 'es.weak-set.constructor': { chrome: '51', edge: '15', @@ -2945,7 +2943,6 @@ export const data = { export const renamed = new Map([ // TODO: Clean in `core-js@4` - ['es.weak-set', 'es.weak-set.constructor'], ['esnext.array.from-async', 'es.array.from-async'], ['esnext.array-buffer.detached', 'es.array-buffer.detached'], ['esnext.array-buffer.transfer', 'es.array-buffer.transfer'], @@ -3015,7 +3012,6 @@ export const ignored = [ 'es.promise.race', 'es.promise.reject', 'es.promise.resolve', - 'es.weak-set.constructor', 'esnext.observable.constructor', 'esnext.observable.from', 'esnext.observable.of', diff --git a/packages/core-js/actual/map/get-or-insert-computed.js b/packages/core-js/actual/map/get-or-insert-computed.js index 82f01b45f7fe..866c07e3668c 100644 --- a/packages/core-js/actual/map/get-or-insert-computed.js +++ b/packages/core-js/actual/map/get-or-insert-computed.js @@ -1,5 +1,5 @@ 'use strict'; -require('../../modules/es.map'); +require('../../modules/es.map.constructor'); require('../../modules/esnext.map.get-or-insert-computed'); var entryUnbind = require('../../internals/entry-unbind'); diff --git a/packages/core-js/actual/map/get-or-insert.js b/packages/core-js/actual/map/get-or-insert.js index a526ad602431..16d6e2d68539 100644 --- a/packages/core-js/actual/map/get-or-insert.js +++ b/packages/core-js/actual/map/get-or-insert.js @@ -1,5 +1,5 @@ 'use strict'; -require('../../modules/es.map'); +require('../../modules/es.map.constructor'); require('../../modules/esnext.map.get-or-insert'); var entryUnbind = require('../../internals/entry-unbind'); diff --git a/packages/core-js/actual/weak-map/get-or-insert-computed.js b/packages/core-js/actual/weak-map/get-or-insert-computed.js index b8dcd093bd31..d27a274e556a 100644 --- a/packages/core-js/actual/weak-map/get-or-insert-computed.js +++ b/packages/core-js/actual/weak-map/get-or-insert-computed.js @@ -1,5 +1,5 @@ 'use strict'; -require('../../modules/es.weak-map'); +require('../../modules/es.weak-map.constructor'); require('../../modules/esnext.weak-map.get-or-insert-computed'); var entryUnbind = require('../../internals/entry-unbind'); diff --git a/packages/core-js/actual/weak-map/get-or-insert.js b/packages/core-js/actual/weak-map/get-or-insert.js index 6bb549fc698e..fe081591be25 100644 --- a/packages/core-js/actual/weak-map/get-or-insert.js +++ b/packages/core-js/actual/weak-map/get-or-insert.js @@ -1,5 +1,5 @@ 'use strict'; -require('../../modules/es.weak-map'); +require('../../modules/es.weak-map.constructor'); require('../../modules/esnext.weak-map.get-or-insert'); var entryUnbind = require('../../internals/entry-unbind'); diff --git a/packages/core-js/es/weak-set/index.js b/packages/core-js/es/weak-set/index.js index 39079e35dccf..927a572d61eb 100644 --- a/packages/core-js/es/weak-set/index.js +++ b/packages/core-js/es/weak-set/index.js @@ -1,7 +1,7 @@ 'use strict'; require('../../modules/es.array.iterator'); require('../../modules/es.object.to-string'); -require('../../modules/es.weak-set'); +require('../../modules/es.weak-set.constructor'); var path = require('../../internals/path'); module.exports = path.WeakSet; diff --git a/packages/core-js/full/weak-set/add-all.js b/packages/core-js/full/weak-set/add-all.js index 4ecd10f2d1a5..108c159d1d7a 100644 --- a/packages/core-js/full/weak-set/add-all.js +++ b/packages/core-js/full/weak-set/add-all.js @@ -1,5 +1,5 @@ 'use strict'; -require('../../modules/es.weak-set'); +require('../../modules/es.weak-set.constructor'); require('../../modules/esnext.weak-set.add-all'); var entryUnbind = require('../../internals/entry-unbind'); diff --git a/packages/core-js/full/weak-set/delete-all.js b/packages/core-js/full/weak-set/delete-all.js index 5ddc14a14543..a605d10cbecf 100644 --- a/packages/core-js/full/weak-set/delete-all.js +++ b/packages/core-js/full/weak-set/delete-all.js @@ -1,5 +1,5 @@ 'use strict'; -require('../../modules/es.weak-set'); +require('../../modules/es.weak-set.constructor'); require('../../modules/esnext.weak-set.delete-all'); var entryUnbind = require('../../internals/entry-unbind'); diff --git a/packages/core-js/full/weak-set/from.js b/packages/core-js/full/weak-set/from.js index 5d7a4f9a1f92..4fb007559224 100644 --- a/packages/core-js/full/weak-set/from.js +++ b/packages/core-js/full/weak-set/from.js @@ -2,7 +2,7 @@ require('../../modules/es.object.to-string'); require('../../modules/es.array.iterator'); require('../../modules/es.string.iterator'); -require('../../modules/es.weak-set'); +require('../../modules/es.weak-set.constructor'); require('../../modules/esnext.weak-set.from'); require('../../modules/esnext.weak-set.add-all'); require('../../modules/esnext.weak-set.delete-all'); diff --git a/packages/core-js/full/weak-set/of.js b/packages/core-js/full/weak-set/of.js index 79b4523dd031..1a1e8effea51 100644 --- a/packages/core-js/full/weak-set/of.js +++ b/packages/core-js/full/weak-set/of.js @@ -1,7 +1,7 @@ 'use strict'; require('../../modules/es.object.to-string'); require('../../modules/es.array.iterator'); -require('../../modules/es.weak-set'); +require('../../modules/es.weak-set.constructor'); require('../../modules/esnext.weak-set.of'); require('../../modules/esnext.weak-set.add-all'); require('../../modules/esnext.weak-set.delete-all'); diff --git a/packages/core-js/modules/es.weak-set.js b/packages/core-js/modules/es.weak-set.js deleted file mode 100644 index 7d3d93e66da9..000000000000 --- a/packages/core-js/modules/es.weak-set.js +++ /dev/null @@ -1,3 +0,0 @@ -'use strict'; -// TODO: Remove this module from `core-js@4` since it's replaced to module below -require('../modules/es.weak-set.constructor'); diff --git a/tests/compat-data/tests-coverage.mjs b/tests/compat-data/tests-coverage.mjs index 65fe1cfc2066..3deadfc86c41 100644 --- a/tests/compat-data/tests-coverage.mjs +++ b/tests/compat-data/tests-coverage.mjs @@ -9,7 +9,6 @@ const modulesSet = new Set([ const tested = new Set(Object.keys(globalThis.tests)); const ignore = new Set([ - 'es.weak-set', 'esnext.iterator.sliding', 'esnext.map.emplace', 'esnext.math.clamp', diff --git a/tests/unit-global/es.weak-set.js b/tests/unit-global/es.weak-set.constructor.js similarity index 100% rename from tests/unit-global/es.weak-set.js rename to tests/unit-global/es.weak-set.constructor.js diff --git a/tests/unit-pure/es.weak-set.js b/tests/unit-pure/es.weak-set.constructor.js similarity index 100% rename from tests/unit-pure/es.weak-set.js rename to tests/unit-pure/es.weak-set.constructor.js From 89424956d22c6bbdf3aa44f55ff1187a54a79c92 Mon Sep 17 00:00:00 2001 From: Denis Pushkarev Date: Wed, 4 Oct 2023 07:31:04 +0700 Subject: [PATCH 074/428] rename `web.url` -> `web.url.constructor` --- README.md | 2 +- packages/core-js-compat/src/data.mjs | 4 ---- packages/core-js/modules/web.url.js | 3 --- packages/core-js/stable/url/can-parse.js | 2 +- packages/core-js/stable/url/parse.js | 2 +- packages/core-js/web/index.js | 2 +- packages/core-js/web/url.js | 2 +- tests/compat-data/tests-coverage.mjs | 1 - tests/unit-global/{web.url.js => web.url.constructor.js} | 0 tests/unit-pure/{web.url.js => web.url.constructor.js} | 0 10 files changed, 5 insertions(+), 13 deletions(-) delete mode 100644 packages/core-js/modules/web.url.js rename tests/unit-global/{web.url.js => web.url.constructor.js} (100%) rename tests/unit-pure/{web.url.js => web.url.constructor.js} (100%) diff --git a/README.md b/README.md index 2375464e940a..ffb727c056ba 100644 --- a/README.md +++ b/README.md @@ -3636,7 +3636,7 @@ queueMicrotask(() => console.log('called as microtask')); ``` #### `URL` and `URLSearchParams`[⬆](#index) -[`URL` standard](https://url.spec.whatwg.org/) implementation. Modules [`web.url`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/web.url.js), [`web.url.can-parse`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/web.url.can-parse.js), [`web.url.parse`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/web.url.parse.js), [`web.url.to-json`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/web.url.to-json.js), [`web.url-search-params`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/web.url-search-params.js), [`web.url-search-params.delete`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/web.url-search-params.delete.js), [`web.url-search-params.has`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/web.url-search-params.has.js), [`web.url-search-params.size`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/web.url-search-params.size.js). +[`URL` standard](https://url.spec.whatwg.org/) implementation. Modules [`web.url.constructor`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/web.url.constructor.js), [`web.url.can-parse`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/web.url.can-parse.js), [`web.url.can-parse`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/web.url.can-parse.js), [`web.url.to-json`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/web.url.to-json.js), [`web.url-search-params`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/web.url-search-params.js), [`web.url-search-params.delete`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/web.url-search-params.delete.js), [`web.url-search-params.has`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/web.url-search-params.has.js), [`web.url-search-params.size`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/web.url-search-params.size.js). ```ts class URL { constructor(url: string, base?: string); diff --git a/packages/core-js-compat/src/data.mjs b/packages/core-js-compat/src/data.mjs index 61ba1928c23c..26bbce582698 100644 --- a/packages/core-js-compat/src/data.mjs +++ b/packages/core-js-compat/src/data.mjs @@ -2869,8 +2869,6 @@ export const data = { rhino: '1.7.13', safari: '1.0', }, - // TODO: Remove this module from `core-js@4` since it's replaced to module below - 'web.url': null, 'web.url.constructor': { bun: '0.1.1', chrome: '67', @@ -2990,7 +2988,6 @@ export const renamed = new Map([ ['esnext.uint8-array.set-from-hex', 'es.uint8-array.set-from-hex'], ['esnext.uint8-array.to-base64', 'es.uint8-array.to-base64'], ['esnext.uint8-array.to-hex', 'es.uint8-array.to-hex'], - ['web.url', 'web.url.constructor'], ['web.url-search-params', 'web.url-search-params.constructor'], ]); @@ -3019,7 +3016,6 @@ export const ignored = [ 'web.set-immediate', 'web.set-interval', 'web.set-timeout', - 'web.url.constructor', 'web.url-search-params.constructor', ]; diff --git a/packages/core-js/modules/web.url.js b/packages/core-js/modules/web.url.js deleted file mode 100644 index 5ec16d10be08..000000000000 --- a/packages/core-js/modules/web.url.js +++ /dev/null @@ -1,3 +0,0 @@ -'use strict'; -// TODO: Remove this module from `core-js@4` since it's replaced to module below -require('../modules/web.url.constructor'); diff --git a/packages/core-js/stable/url/can-parse.js b/packages/core-js/stable/url/can-parse.js index 161f22f05f46..453d994241e2 100644 --- a/packages/core-js/stable/url/can-parse.js +++ b/packages/core-js/stable/url/can-parse.js @@ -1,5 +1,5 @@ 'use strict'; -require('../../modules/web.url'); +require('../../modules/web.url.constructor'); require('../../modules/web.url.can-parse'); var path = require('../../internals/path'); diff --git a/packages/core-js/stable/url/parse.js b/packages/core-js/stable/url/parse.js index d0fdfe00973c..625456051e9b 100644 --- a/packages/core-js/stable/url/parse.js +++ b/packages/core-js/stable/url/parse.js @@ -1,5 +1,5 @@ 'use strict'; -require('../../modules/web.url'); +require('../../modules/web.url.constructor'); require('../../modules/web.url.parse'); var path = require('../../internals/path'); diff --git a/packages/core-js/web/index.js b/packages/core-js/web/index.js index d0a6f4e5f969..0fb07e1bb245 100644 --- a/packages/core-js/web/index.js +++ b/packages/core-js/web/index.js @@ -11,7 +11,7 @@ require('../modules/web.queue-microtask'); require('../modules/web.self'); require('../modules/web.structured-clone'); require('../modules/web.timers'); -require('../modules/web.url'); +require('../modules/web.url.constructor'); require('../modules/web.url.can-parse'); require('../modules/web.url.parse'); require('../modules/web.url.to-json'); diff --git a/packages/core-js/web/url.js b/packages/core-js/web/url.js index 8f5616df37b7..a554666e54da 100644 --- a/packages/core-js/web/url.js +++ b/packages/core-js/web/url.js @@ -1,6 +1,6 @@ 'use strict'; require('./url-search-params'); -require('../modules/web.url'); +require('../modules/web.url.constructor'); require('../modules/web.url.can-parse'); require('../modules/web.url.parse'); require('../modules/web.url.to-json'); diff --git a/tests/compat-data/tests-coverage.mjs b/tests/compat-data/tests-coverage.mjs index 3deadfc86c41..d6a36d1c1a47 100644 --- a/tests/compat-data/tests-coverage.mjs +++ b/tests/compat-data/tests-coverage.mjs @@ -28,7 +28,6 @@ const ignore = new Set([ 'esnext.symbol.matcher', 'esnext.weak-map.emplace', 'web.url-search-params', - 'web.url', ]); const missed = modules.filter(it => !(tested.has(it) || tested.has(it.replace(/^esnext\./, 'es.')) || ignore.has(it))); diff --git a/tests/unit-global/web.url.js b/tests/unit-global/web.url.constructor.js similarity index 100% rename from tests/unit-global/web.url.js rename to tests/unit-global/web.url.constructor.js diff --git a/tests/unit-pure/web.url.js b/tests/unit-pure/web.url.constructor.js similarity index 100% rename from tests/unit-pure/web.url.js rename to tests/unit-pure/web.url.constructor.js From a23a7b2b4eec89e2cc066f1206042d887263c178 Mon Sep 17 00:00:00 2001 From: Denis Pushkarev Date: Wed, 4 Oct 2023 07:39:37 +0700 Subject: [PATCH 075/428] rename `web.url-search-params` -> `web.url-search-params.constructor` --- README.md | 2 +- packages/core-js-compat/src/data.mjs | 4 ---- packages/core-js/modules/web.url-search-params.js | 3 --- packages/core-js/web/index.js | 2 +- packages/core-js/web/url-search-params.js | 2 +- tests/compat-data/tests-coverage.mjs | 1 - ...-search-params.js => web.url-search-params.constructor.js} | 0 ...-search-params.js => web.url-search-params.constructor.js} | 0 8 files changed, 3 insertions(+), 11 deletions(-) delete mode 100644 packages/core-js/modules/web.url-search-params.js rename tests/unit-global/{web.url-search-params.js => web.url-search-params.constructor.js} (100%) rename tests/unit-pure/{web.url-search-params.js => web.url-search-params.constructor.js} (100%) diff --git a/README.md b/README.md index ffb727c056ba..fb560e34734e 100644 --- a/README.md +++ b/README.md @@ -3636,7 +3636,7 @@ queueMicrotask(() => console.log('called as microtask')); ``` #### `URL` and `URLSearchParams`[⬆](#index) -[`URL` standard](https://url.spec.whatwg.org/) implementation. Modules [`web.url.constructor`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/web.url.constructor.js), [`web.url.can-parse`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/web.url.can-parse.js), [`web.url.can-parse`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/web.url.can-parse.js), [`web.url.to-json`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/web.url.to-json.js), [`web.url-search-params`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/web.url-search-params.js), [`web.url-search-params.delete`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/web.url-search-params.delete.js), [`web.url-search-params.has`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/web.url-search-params.has.js), [`web.url-search-params.size`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/web.url-search-params.size.js). +[`URL` standard](https://url.spec.whatwg.org/) implementation. Modules [`web.url.constructor`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/web.url.constructor.js), [`web.url.can-parse`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/web.url.can-parse.js), [`web.url.parse`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/web.url.parse.js), [`web.url.to-json`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/web.url.to-json.js), [`web.url-search-params.constructor`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/web.url-search-params.constructor.js), [`web.url-search-params.delete`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/web.url-search-params.delete.js), [`web.url-search-params.has`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/web.url-search-params.has.js), [`web.url-search-params.size`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/web.url-search-params.size.js). ```ts class URL { constructor(url: string, base?: string); diff --git a/packages/core-js-compat/src/data.mjs b/packages/core-js-compat/src/data.mjs index 26bbce582698..e201aeb9728a 100644 --- a/packages/core-js-compat/src/data.mjs +++ b/packages/core-js-compat/src/data.mjs @@ -2903,8 +2903,6 @@ export const data = { node: '10.0', safari: '14.0', }, - // TODO: Remove this module from `core-js@4` since it's replaced to module below - 'web.url-search-params': null, 'web.url-search-params.constructor': { bun: '0.1.1', chrome: '67', @@ -2988,7 +2986,6 @@ export const renamed = new Map([ ['esnext.uint8-array.set-from-hex', 'es.uint8-array.set-from-hex'], ['esnext.uint8-array.to-base64', 'es.uint8-array.to-base64'], ['esnext.uint8-array.to-hex', 'es.uint8-array.to-hex'], - ['web.url-search-params', 'web.url-search-params.constructor'], ]); for (const [old, nw] of renamed) data[old] = data[nw]; @@ -3016,7 +3013,6 @@ export const ignored = [ 'web.set-immediate', 'web.set-interval', 'web.set-timeout', - 'web.url-search-params.constructor', ]; for (const ignore of ignored) delete data[ignore]; diff --git a/packages/core-js/modules/web.url-search-params.js b/packages/core-js/modules/web.url-search-params.js deleted file mode 100644 index 5ebea93fba7b..000000000000 --- a/packages/core-js/modules/web.url-search-params.js +++ /dev/null @@ -1,3 +0,0 @@ -'use strict'; -// TODO: Remove this module from `core-js@4` since it's replaced to module below -require('../modules/web.url-search-params.constructor'); diff --git a/packages/core-js/web/index.js b/packages/core-js/web/index.js index 0fb07e1bb245..5d12c6b5ee3d 100644 --- a/packages/core-js/web/index.js +++ b/packages/core-js/web/index.js @@ -15,7 +15,7 @@ require('../modules/web.url.constructor'); require('../modules/web.url.can-parse'); require('../modules/web.url.parse'); require('../modules/web.url.to-json'); -require('../modules/web.url-search-params'); +require('../modules/web.url-search-params.constructor'); require('../modules/web.url-search-params.delete'); require('../modules/web.url-search-params.has'); require('../modules/web.url-search-params.size'); diff --git a/packages/core-js/web/url-search-params.js b/packages/core-js/web/url-search-params.js index 4f3127e96e79..948be7e08084 100644 --- a/packages/core-js/web/url-search-params.js +++ b/packages/core-js/web/url-search-params.js @@ -1,5 +1,5 @@ 'use strict'; -require('../modules/web.url-search-params'); +require('../modules/web.url-search-params.constructor'); require('../modules/web.url-search-params.delete'); require('../modules/web.url-search-params.has'); require('../modules/web.url-search-params.size'); diff --git a/tests/compat-data/tests-coverage.mjs b/tests/compat-data/tests-coverage.mjs index d6a36d1c1a47..d2c68cb04657 100644 --- a/tests/compat-data/tests-coverage.mjs +++ b/tests/compat-data/tests-coverage.mjs @@ -27,7 +27,6 @@ const ignore = new Set([ 'esnext.reflect.metadata', 'esnext.symbol.matcher', 'esnext.weak-map.emplace', - 'web.url-search-params', ]); const missed = modules.filter(it => !(tested.has(it) || tested.has(it.replace(/^esnext\./, 'es.')) || ignore.has(it))); diff --git a/tests/unit-global/web.url-search-params.js b/tests/unit-global/web.url-search-params.constructor.js similarity index 100% rename from tests/unit-global/web.url-search-params.js rename to tests/unit-global/web.url-search-params.constructor.js diff --git a/tests/unit-pure/web.url-search-params.js b/tests/unit-pure/web.url-search-params.constructor.js similarity index 100% rename from tests/unit-pure/web.url-search-params.js rename to tests/unit-pure/web.url-search-params.constructor.js From d1a58e65cb1eda6f6f0c6870eddd7d8e9bd4c0c1 Mon Sep 17 00:00:00 2001 From: Denis Pushkarev Date: Wed, 4 Oct 2023 07:45:14 +0700 Subject: [PATCH 076/428] rename `esnext.set.difference.v2` -> `esnext.set.difference` --- README.md | 16 ++++++++-------- packages/core-js-compat/src/data.mjs | 5 +---- packages/core-js/actual/set/difference.js | 1 - packages/core-js/actual/set/index.js | 1 - packages/core-js/es/set/difference.js | 2 +- packages/core-js/es/set/index.js | 2 +- packages/core-js/full/set/from.js | 2 +- packages/core-js/full/set/of.js | 2 +- ...set.difference.v2.js => es.set.difference.js} | 0 .../core-js/modules/esnext.set.difference.v2.js | 3 --- packages/core-js/proposals/set-methods-v2.js | 2 +- tests/compat/tests.js | 2 +- 12 files changed, 15 insertions(+), 23 deletions(-) rename packages/core-js/modules/{es.set.difference.v2.js => es.set.difference.js} (100%) delete mode 100644 packages/core-js/modules/esnext.set.difference.v2.js diff --git a/README.md b/README.md index fb560e34734e..ae5f729f01d1 100644 --- a/README.md +++ b/README.md @@ -353,14 +353,14 @@ with `chrome 71` target you will have as the result: import 'core-js/modules/es.array.unscopables.flat'; import 'core-js/modules/es.array.unscopables.flat-map'; import 'core-js/modules/es.object.from-entries'; -import 'core-js/modules/esnext.set.difference'; -import 'core-js/modules/esnext.set.intersection'; -import 'core-js/modules/esnext.set.is-disjoint-from'; -import 'core-js/modules/esnext.set.is-subset-of'; -import 'core-js/modules/esnext.set.is-superset-of'; +import 'core-js/modules/es.set.difference'; +import 'core-js/modules/es.set.intersection'; +import 'core-js/modules/es.set.is-disjoint-from'; +import 'core-js/modules/es.set.is-subset-of'; +import 'core-js/modules/es.set.is-superset-of'; +import 'core-js/modules/es.set.symmetric-difference'; +import 'core-js/modules/es.set.union'; import 'core-js/modules/esnext.set.map'; -import 'core-js/modules/esnext.set.symmetric-difference'; -import 'core-js/modules/esnext.set.union'; ``` - `useBuiltIns: 'usage'` adds to the top of each file import of polyfills for features used in this file and not supported by target environments, so for: @@ -1656,7 +1656,7 @@ map.get(1); // => [1, 3, 5] map.get(0); // => [2, 4] ``` #### Set[⬆](#index) -Modules [`es.set.constructor`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.set.constructor.js), [`es.set.difference.v2`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.set.difference.v2.js), [`es.set.intersection.v2`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.set.intersection.v2.js), [`es.set.is-disjoint-from.v2`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.set.is-disjoint-from.v2.js), [`es.set.is-subset-of.v2`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.set.is-subset-of.v2.js), [`es.set.is-superset-of.v2`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.set.is-superset-of.v2.js), [`es.set.symmetric-difference.v2`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.set.symmetric-difference.v2.js), [`es.set.union.v2`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.set.union.v2.js) +Modules [`es.set.constructor`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.set.constructor.js), [`es.set.difference`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.set.difference.js), [`es.set.intersection.v2`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.set.intersection.v2.js), [`es.set.is-disjoint-from.v2`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.set.is-disjoint-from.v2.js), [`es.set.is-subset-of.v2`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.set.is-subset-of.v2.js), [`es.set.is-superset-of.v2`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.set.is-superset-of.v2.js), [`es.set.symmetric-difference.v2`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.set.symmetric-difference.v2.js), [`es.set.union.v2`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.set.union.v2.js) ```ts class Set { constructor(iterable?: Iterable): Set; diff --git a/packages/core-js-compat/src/data.mjs b/packages/core-js-compat/src/data.mjs index e201aeb9728a..af7475aa4d6a 100644 --- a/packages/core-js-compat/src/data.mjs +++ b/packages/core-js-compat/src/data.mjs @@ -1632,7 +1632,7 @@ export const data = { rhino: '1.7.13', safari: '10.0', }, - 'es.set.difference.v2': { + 'es.set.difference': { // Bun 1.2.4 has a bug when `this` is updated while Set.prototype.difference is being executed // https://bugs.webkit.org/show_bug.cgi?id=288595 bun: '1.2.5', // '1.1.1', @@ -2607,8 +2607,6 @@ export const data = { }, 'esnext.set.delete-all': { }, - // TODO: Remove from `core-js@4` - 'esnext.set.difference.v2': null, 'esnext.set.every': { }, 'esnext.set.filter': { @@ -2970,7 +2968,6 @@ export const renamed = new Map([ ['esnext.promise.try', 'es.promise.try'], ['esnext.promise.with-resolvers', 'es.promise.with-resolvers'], ['esnext.regexp.escape', 'es.regexp.escape'], - ['esnext.set.difference.v2', 'es.set.difference.v2'], ['esnext.set.intersection.v2', 'es.set.intersection.v2'], ['esnext.set.is-disjoint-from.v2', 'es.set.is-disjoint-from.v2'], ['esnext.set.is-subset-of.v2', 'es.set.is-subset-of.v2'], diff --git a/packages/core-js/actual/set/difference.js b/packages/core-js/actual/set/difference.js index 594bd7a1301c..3300e618eac2 100644 --- a/packages/core-js/actual/set/difference.js +++ b/packages/core-js/actual/set/difference.js @@ -1,5 +1,4 @@ 'use strict'; var parent = require('../../stable/set/difference'); -require('../../modules/esnext.set.difference.v2'); module.exports = parent; diff --git a/packages/core-js/actual/set/index.js b/packages/core-js/actual/set/index.js index 2ea9cf0a1701..d2680c3149a3 100644 --- a/packages/core-js/actual/set/index.js +++ b/packages/core-js/actual/set/index.js @@ -1,6 +1,5 @@ 'use strict'; var parent = require('../../stable/set'); -require('../../modules/esnext.set.difference.v2'); require('../../modules/esnext.set.intersection.v2'); require('../../modules/esnext.set.is-disjoint-from.v2'); require('../../modules/esnext.set.is-subset-of.v2'); diff --git a/packages/core-js/es/set/difference.js b/packages/core-js/es/set/difference.js index bb89708b36fe..7affbeeefa88 100644 --- a/packages/core-js/es/set/difference.js +++ b/packages/core-js/es/set/difference.js @@ -1,6 +1,6 @@ 'use strict'; require('../../modules/es.set.constructor'); -require('../../modules/es.set.difference.v2'); +require('../../modules/es.set.difference'); var entryUnbind = require('../../internals/entry-unbind'); module.exports = entryUnbind('Set', 'difference'); diff --git a/packages/core-js/es/set/index.js b/packages/core-js/es/set/index.js index 63df6be90f74..65e94616c1b5 100644 --- a/packages/core-js/es/set/index.js +++ b/packages/core-js/es/set/index.js @@ -2,7 +2,7 @@ require('../../modules/es.array.iterator'); require('../../modules/es.object.to-string'); require('../../modules/es.set.constructor'); -require('../../modules/es.set.difference.v2'); +require('../../modules/es.set.difference'); require('../../modules/es.set.intersection.v2'); require('../../modules/es.set.is-disjoint-from.v2'); require('../../modules/es.set.is-subset-of.v2'); diff --git a/packages/core-js/full/set/from.js b/packages/core-js/full/set/from.js index 5d09e782826e..24edc1a357ba 100644 --- a/packages/core-js/full/set/from.js +++ b/packages/core-js/full/set/from.js @@ -2,11 +2,11 @@ require('../../modules/es.object.to-string'); require('../../modules/es.array.iterator'); require('../../modules/es.set.constructor'); +require('../../modules/es.set.difference'); require('../../modules/es.string.iterator'); require('../../modules/esnext.set.from'); require('../../modules/esnext.set.add-all'); require('../../modules/esnext.set.delete-all'); -require('../../modules/esnext.set.difference.v2'); require('../../modules/esnext.set.every'); require('../../modules/esnext.set.filter'); require('../../modules/esnext.set.find'); diff --git a/packages/core-js/full/set/of.js b/packages/core-js/full/set/of.js index 45640b5bc690..370f6a3b1d35 100644 --- a/packages/core-js/full/set/of.js +++ b/packages/core-js/full/set/of.js @@ -2,10 +2,10 @@ require('../../modules/es.object.to-string'); require('../../modules/es.array.iterator'); require('../../modules/es.set.constructor'); +require('../../modules/es.set.difference'); require('../../modules/esnext.set.of'); require('../../modules/esnext.set.add-all'); require('../../modules/esnext.set.delete-all'); -require('../../modules/esnext.set.difference.v2'); require('../../modules/esnext.set.every'); require('../../modules/esnext.set.filter'); require('../../modules/esnext.set.find'); diff --git a/packages/core-js/modules/es.set.difference.v2.js b/packages/core-js/modules/es.set.difference.js similarity index 100% rename from packages/core-js/modules/es.set.difference.v2.js rename to packages/core-js/modules/es.set.difference.js diff --git a/packages/core-js/modules/esnext.set.difference.v2.js b/packages/core-js/modules/esnext.set.difference.v2.js deleted file mode 100644 index 4fe7c7d50da2..000000000000 --- a/packages/core-js/modules/esnext.set.difference.v2.js +++ /dev/null @@ -1,3 +0,0 @@ -'use strict'; -// TODO: Remove from `core-js@4` -require('../modules/es.set.difference.v2'); diff --git a/packages/core-js/proposals/set-methods-v2.js b/packages/core-js/proposals/set-methods-v2.js index 048708fe68c8..db295cc74796 100644 --- a/packages/core-js/proposals/set-methods-v2.js +++ b/packages/core-js/proposals/set-methods-v2.js @@ -1,6 +1,6 @@ 'use strict'; // https://github.com/tc39/proposal-set-methods -require('../modules/esnext.set.difference.v2'); +require('../modules/es.set.difference'); require('../modules/esnext.set.intersection.v2'); require('../modules/esnext.set.is-disjoint-from.v2'); require('../modules/esnext.set.is-subset-of.v2'); diff --git a/tests/compat/tests.js b/tests/compat/tests.js index b896a6195ae9..4ff4ab764394 100644 --- a/tests/compat/tests.js +++ b/tests/compat/tests.js @@ -1341,7 +1341,7 @@ GLOBAL.tests = { && set.has(0) && set[Symbol.toStringTag]; }], - 'es.set.difference.v2': [createSetMethodTest('difference', function (result) { + 'es.set.difference': [createSetMethodTest('difference', function (result) { return result.size === 0; }), function () { // A WebKit bug occurs when `this` is updated while Set.prototype.difference is being executed From 9cfe2c2eae272a2457d690e592932eabd988459c Mon Sep 17 00:00:00 2001 From: Denis Pushkarev Date: Wed, 4 Oct 2023 07:50:12 +0700 Subject: [PATCH 077/428] rename `esnext.set.intersection.v2` -> `esnext.set.intersection` --- CONTRIBUTING.md | 2 +- README.md | 2 +- packages/core-js-compat/src/data.mjs | 5 +---- packages/core-js/actual/set/index.js | 1 - packages/core-js/actual/set/intersection.js | 1 - packages/core-js/es/set/index.js | 2 +- packages/core-js/es/set/intersection.js | 2 +- packages/core-js/full/set/from.js | 2 +- packages/core-js/full/set/of.js | 2 +- .../{es.set.intersection.v2.js => es.set.intersection.js} | 0 packages/core-js/modules/esnext.set.intersection.v2.js | 3 --- packages/core-js/proposals/set-methods-v2.js | 2 +- tests/compat/tests.js | 2 +- 13 files changed, 9 insertions(+), 17 deletions(-) rename packages/core-js/modules/{es.set.intersection.v2.js => es.set.intersection.js} (100%) delete mode 100644 packages/core-js/modules/esnext.set.intersection.v2.js diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 755d089c7dff..e82b001d1c59 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -73,7 +73,7 @@ The coding style should follow our [`eslint.config.js`](./tests/eslint/eslint.co - Unit tests should use the modern syntax with our [minimalistic Babel config](./babel.config.js). Unit tests for the pure version should not use any modern standard library features. - Tools, scripts and tests, performed in NodeJS, should use only the syntax and the standard library available in NodeJS 8. -File names should be in the kebab-case. Name of polyfill modules should follow the naming convention `namespace.subnamespace-where-required.feature-name`, for example, `esnext.set.intersection`. The top-level namespace should be `es` for stable ECMAScript features, `esnext` for ECMAScript proposals and `web` for other web standards. +File names should be in the kebab-case. Name of polyfill modules should follow the naming convention `namespace.subnamespace-where-required.feature-name`, for example, `es.set.intersection`. The top-level namespace should be `es` for stable ECMAScript features, `esnext` for ECMAScript proposals and `web` for other web standards. ## Testing diff --git a/README.md b/README.md index ae5f729f01d1..e0b5499ad442 100644 --- a/README.md +++ b/README.md @@ -1656,7 +1656,7 @@ map.get(1); // => [1, 3, 5] map.get(0); // => [2, 4] ``` #### Set[⬆](#index) -Modules [`es.set.constructor`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.set.constructor.js), [`es.set.difference`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.set.difference.js), [`es.set.intersection.v2`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.set.intersection.v2.js), [`es.set.is-disjoint-from.v2`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.set.is-disjoint-from.v2.js), [`es.set.is-subset-of.v2`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.set.is-subset-of.v2.js), [`es.set.is-superset-of.v2`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.set.is-superset-of.v2.js), [`es.set.symmetric-difference.v2`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.set.symmetric-difference.v2.js), [`es.set.union.v2`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.set.union.v2.js) +Modules [`es.set.constructor`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.set.constructor.js), [`es.set.difference`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.set.difference.js), [`es.set.intersection`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.set.intersection.js), [`es.set.is-disjoint-from.v2`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.set.is-disjoint-from.v2.js), [`es.set.is-subset-of.v2`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.set.is-subset-of.v2.js), [`es.set.is-superset-of.v2`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.set.is-superset-of.v2.js), [`es.set.symmetric-difference.v2`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.set.symmetric-difference.v2.js), [`es.set.union.v2`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.set.union.v2.js) ```ts class Set { constructor(iterable?: Iterable): Set; diff --git a/packages/core-js-compat/src/data.mjs b/packages/core-js-compat/src/data.mjs index af7475aa4d6a..7e5a5bb1e833 100644 --- a/packages/core-js-compat/src/data.mjs +++ b/packages/core-js-compat/src/data.mjs @@ -1650,7 +1650,7 @@ export const data = { // https://bugs.webkit.org/show_bug.cgi?id=288595 safari: '26.0', // '18.0', // '17.0', }, - 'es.set.intersection.v2': { + 'es.set.intersection': { bun: '1.1.1', // v8 ~ Chrome 122 does not properly work with set-like objects // https://bugs.chromium.org/p/v8/issues/detail?id=14559 @@ -2616,8 +2616,6 @@ export const data = { 'esnext.set.from': { }, // TODO: Remove from `core-js@4` - 'esnext.set.intersection.v2': null, - // TODO: Remove from `core-js@4` 'esnext.set.is-disjoint-from.v2': null, // TODO: Remove from `core-js@4` 'esnext.set.is-subset-of.v2': null, @@ -2968,7 +2966,6 @@ export const renamed = new Map([ ['esnext.promise.try', 'es.promise.try'], ['esnext.promise.with-resolvers', 'es.promise.with-resolvers'], ['esnext.regexp.escape', 'es.regexp.escape'], - ['esnext.set.intersection.v2', 'es.set.intersection.v2'], ['esnext.set.is-disjoint-from.v2', 'es.set.is-disjoint-from.v2'], ['esnext.set.is-subset-of.v2', 'es.set.is-subset-of.v2'], ['esnext.set.is-superset-of.v2', 'es.set.is-superset-of.v2'], diff --git a/packages/core-js/actual/set/index.js b/packages/core-js/actual/set/index.js index d2680c3149a3..2faed9ee31ba 100644 --- a/packages/core-js/actual/set/index.js +++ b/packages/core-js/actual/set/index.js @@ -1,6 +1,5 @@ 'use strict'; var parent = require('../../stable/set'); -require('../../modules/esnext.set.intersection.v2'); require('../../modules/esnext.set.is-disjoint-from.v2'); require('../../modules/esnext.set.is-subset-of.v2'); require('../../modules/esnext.set.is-superset-of.v2'); diff --git a/packages/core-js/actual/set/intersection.js b/packages/core-js/actual/set/intersection.js index d245fec3a0ac..4aaefe19cdb0 100644 --- a/packages/core-js/actual/set/intersection.js +++ b/packages/core-js/actual/set/intersection.js @@ -1,5 +1,4 @@ 'use strict'; var parent = require('../../stable/set/intersection'); -require('../../modules/esnext.set.intersection.v2'); module.exports = parent; diff --git a/packages/core-js/es/set/index.js b/packages/core-js/es/set/index.js index 65e94616c1b5..3546e09c048e 100644 --- a/packages/core-js/es/set/index.js +++ b/packages/core-js/es/set/index.js @@ -3,7 +3,7 @@ require('../../modules/es.array.iterator'); require('../../modules/es.object.to-string'); require('../../modules/es.set.constructor'); require('../../modules/es.set.difference'); -require('../../modules/es.set.intersection.v2'); +require('../../modules/es.set.intersection'); require('../../modules/es.set.is-disjoint-from.v2'); require('../../modules/es.set.is-subset-of.v2'); require('../../modules/es.set.is-superset-of.v2'); diff --git a/packages/core-js/es/set/intersection.js b/packages/core-js/es/set/intersection.js index 1196edc6f351..0131c3f12fc3 100644 --- a/packages/core-js/es/set/intersection.js +++ b/packages/core-js/es/set/intersection.js @@ -1,6 +1,6 @@ 'use strict'; require('../../modules/es.set.constructor'); -require('../../modules/es.set.intersection.v2'); +require('../../modules/es.set.intersection'); var entryUnbind = require('../../internals/entry-unbind'); module.exports = entryUnbind('Set', 'intersection'); diff --git a/packages/core-js/full/set/from.js b/packages/core-js/full/set/from.js index 24edc1a357ba..5450320a9964 100644 --- a/packages/core-js/full/set/from.js +++ b/packages/core-js/full/set/from.js @@ -3,6 +3,7 @@ require('../../modules/es.object.to-string'); require('../../modules/es.array.iterator'); require('../../modules/es.set.constructor'); require('../../modules/es.set.difference'); +require('../../modules/es.set.intersection'); require('../../modules/es.string.iterator'); require('../../modules/esnext.set.from'); require('../../modules/esnext.set.add-all'); @@ -11,7 +12,6 @@ require('../../modules/esnext.set.every'); require('../../modules/esnext.set.filter'); require('../../modules/esnext.set.find'); require('../../modules/esnext.set.join'); -require('../../modules/esnext.set.intersection.v2'); require('../../modules/esnext.set.is-disjoint-from.v2'); require('../../modules/esnext.set.is-subset-of.v2'); require('../../modules/esnext.set.is-superset-of.v2'); diff --git a/packages/core-js/full/set/of.js b/packages/core-js/full/set/of.js index 370f6a3b1d35..97a9f62836a7 100644 --- a/packages/core-js/full/set/of.js +++ b/packages/core-js/full/set/of.js @@ -3,6 +3,7 @@ require('../../modules/es.object.to-string'); require('../../modules/es.array.iterator'); require('../../modules/es.set.constructor'); require('../../modules/es.set.difference'); +require('../../modules/es.set.intersection'); require('../../modules/esnext.set.of'); require('../../modules/esnext.set.add-all'); require('../../modules/esnext.set.delete-all'); @@ -10,7 +11,6 @@ require('../../modules/esnext.set.every'); require('../../modules/esnext.set.filter'); require('../../modules/esnext.set.find'); require('../../modules/esnext.set.join'); -require('../../modules/esnext.set.intersection.v2'); require('../../modules/esnext.set.is-disjoint-from.v2'); require('../../modules/esnext.set.is-subset-of.v2'); require('../../modules/esnext.set.is-superset-of.v2'); diff --git a/packages/core-js/modules/es.set.intersection.v2.js b/packages/core-js/modules/es.set.intersection.js similarity index 100% rename from packages/core-js/modules/es.set.intersection.v2.js rename to packages/core-js/modules/es.set.intersection.js diff --git a/packages/core-js/modules/esnext.set.intersection.v2.js b/packages/core-js/modules/esnext.set.intersection.v2.js deleted file mode 100644 index c417a811e850..000000000000 --- a/packages/core-js/modules/esnext.set.intersection.v2.js +++ /dev/null @@ -1,3 +0,0 @@ -'use strict'; -// TODO: Remove from `core-js@4` -require('../modules/es.set.intersection.v2'); diff --git a/packages/core-js/proposals/set-methods-v2.js b/packages/core-js/proposals/set-methods-v2.js index db295cc74796..23ff0b076dcc 100644 --- a/packages/core-js/proposals/set-methods-v2.js +++ b/packages/core-js/proposals/set-methods-v2.js @@ -1,7 +1,7 @@ 'use strict'; // https://github.com/tc39/proposal-set-methods require('../modules/es.set.difference'); -require('../modules/esnext.set.intersection.v2'); +require('../modules/es.set.intersection'); require('../modules/esnext.set.is-disjoint-from.v2'); require('../modules/esnext.set.is-subset-of.v2'); require('../modules/esnext.set.is-superset-of.v2'); diff --git a/tests/compat/tests.js b/tests/compat/tests.js index 4ff4ab764394..63ecf3252d22 100644 --- a/tests/compat/tests.js +++ b/tests/compat/tests.js @@ -1365,7 +1365,7 @@ GLOBAL.tests = { return baseSet.difference(setLike).size === 3; }], - 'es.set.intersection.v2': [createSetMethodTest('intersection', function (result) { + 'es.set.intersection': [createSetMethodTest('intersection', function (result) { return result.size === 2 && result.has(1) && result.has(2); }), function () { return String(Array.from(new Set([1, 2, 3]).intersection(new Set([3, 2])))) === '3,2'; From 6be4d472a531b4057eefb93cb0f3011cc13381c6 Mon Sep 17 00:00:00 2001 From: Denis Pushkarev Date: Wed, 4 Oct 2023 07:55:04 +0700 Subject: [PATCH 078/428] rename `esnext.set.is-disjoint-from.v2` -> `esnext.set.is-disjoint-from` --- README.md | 2 +- packages/core-js-compat/src/data.mjs | 5 +---- packages/core-js/actual/set/index.js | 1 - packages/core-js/actual/set/is-disjoint-from.js | 1 - packages/core-js/es/set/index.js | 2 +- packages/core-js/es/set/is-disjoint-from.js | 2 +- packages/core-js/full/set/from.js | 2 +- packages/core-js/full/set/of.js | 2 +- ...set.is-disjoint-from.v2.js => es.set.is-disjoint-from.js} | 0 packages/core-js/modules/esnext.set.is-disjoint-from.v2.js | 3 --- packages/core-js/proposals/set-methods-v2.js | 2 +- tests/compat/tests.js | 2 +- 12 files changed, 8 insertions(+), 16 deletions(-) rename packages/core-js/modules/{es.set.is-disjoint-from.v2.js => es.set.is-disjoint-from.js} (100%) delete mode 100644 packages/core-js/modules/esnext.set.is-disjoint-from.v2.js diff --git a/README.md b/README.md index e0b5499ad442..f3e8c39c8fde 100644 --- a/README.md +++ b/README.md @@ -1656,7 +1656,7 @@ map.get(1); // => [1, 3, 5] map.get(0); // => [2, 4] ``` #### Set[⬆](#index) -Modules [`es.set.constructor`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.set.constructor.js), [`es.set.difference`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.set.difference.js), [`es.set.intersection`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.set.intersection.js), [`es.set.is-disjoint-from.v2`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.set.is-disjoint-from.v2.js), [`es.set.is-subset-of.v2`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.set.is-subset-of.v2.js), [`es.set.is-superset-of.v2`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.set.is-superset-of.v2.js), [`es.set.symmetric-difference.v2`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.set.symmetric-difference.v2.js), [`es.set.union.v2`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.set.union.v2.js) +Modules [`es.set.constructor`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.set.constructor.js), [`es.set.difference`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.set.difference.js), [`es.set.intersection`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.set.intersection.js), [`es.set.is-disjoint-from`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.set.is-disjoint-from.js), [`es.set.is-subset-of.v2`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.set.is-subset-of.v2.js), [`es.set.is-superset-of.v2`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.set.is-superset-of.v2.js), [`es.set.symmetric-difference.v2`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.set.symmetric-difference.v2.js), [`es.set.union.v2`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.set.union.v2.js) ```ts class Set { constructor(iterable?: Iterable): Set; diff --git a/packages/core-js-compat/src/data.mjs b/packages/core-js-compat/src/data.mjs index 7e5a5bb1e833..76c6af24dca3 100644 --- a/packages/core-js-compat/src/data.mjs +++ b/packages/core-js-compat/src/data.mjs @@ -1664,7 +1664,7 @@ export const data = { // https://bugs.webkit.org/show_bug.cgi?id=267494 safari: '18.0', // '17.0', }, - 'es.set.is-disjoint-from.v2': { + 'es.set.is-disjoint-from': { bun: '1.1.1', // v8 ~ Chrome 122 does not properly work with set-like objects // https://bugs.chromium.org/p/v8/issues/detail?id=14559 @@ -2616,8 +2616,6 @@ export const data = { 'esnext.set.from': { }, // TODO: Remove from `core-js@4` - 'esnext.set.is-disjoint-from.v2': null, - // TODO: Remove from `core-js@4` 'esnext.set.is-subset-of.v2': null, // TODO: Remove from `core-js@4` 'esnext.set.is-superset-of.v2': null, @@ -2966,7 +2964,6 @@ export const renamed = new Map([ ['esnext.promise.try', 'es.promise.try'], ['esnext.promise.with-resolvers', 'es.promise.with-resolvers'], ['esnext.regexp.escape', 'es.regexp.escape'], - ['esnext.set.is-disjoint-from.v2', 'es.set.is-disjoint-from.v2'], ['esnext.set.is-subset-of.v2', 'es.set.is-subset-of.v2'], ['esnext.set.is-superset-of.v2', 'es.set.is-superset-of.v2'], ['esnext.set.symmetric-difference.v2', 'es.set.symmetric-difference.v2'], diff --git a/packages/core-js/actual/set/index.js b/packages/core-js/actual/set/index.js index 2faed9ee31ba..139cb8130bc5 100644 --- a/packages/core-js/actual/set/index.js +++ b/packages/core-js/actual/set/index.js @@ -1,6 +1,5 @@ 'use strict'; var parent = require('../../stable/set'); -require('../../modules/esnext.set.is-disjoint-from.v2'); require('../../modules/esnext.set.is-subset-of.v2'); require('../../modules/esnext.set.is-superset-of.v2'); require('../../modules/esnext.set.symmetric-difference.v2'); diff --git a/packages/core-js/actual/set/is-disjoint-from.js b/packages/core-js/actual/set/is-disjoint-from.js index 6781d79e6970..8b7ad960b1b4 100644 --- a/packages/core-js/actual/set/is-disjoint-from.js +++ b/packages/core-js/actual/set/is-disjoint-from.js @@ -1,5 +1,4 @@ 'use strict'; var parent = require('../../stable/set/is-disjoint-from'); -require('../../modules/esnext.set.is-disjoint-from.v2'); module.exports = parent; diff --git a/packages/core-js/es/set/index.js b/packages/core-js/es/set/index.js index 3546e09c048e..eabfcff624a2 100644 --- a/packages/core-js/es/set/index.js +++ b/packages/core-js/es/set/index.js @@ -4,7 +4,7 @@ require('../../modules/es.object.to-string'); require('../../modules/es.set.constructor'); require('../../modules/es.set.difference'); require('../../modules/es.set.intersection'); -require('../../modules/es.set.is-disjoint-from.v2'); +require('../../modules/es.set.is-disjoint-from'); require('../../modules/es.set.is-subset-of.v2'); require('../../modules/es.set.is-superset-of.v2'); require('../../modules/es.set.symmetric-difference.v2'); diff --git a/packages/core-js/es/set/is-disjoint-from.js b/packages/core-js/es/set/is-disjoint-from.js index d5cc3d5b91b5..1a4965acd154 100644 --- a/packages/core-js/es/set/is-disjoint-from.js +++ b/packages/core-js/es/set/is-disjoint-from.js @@ -1,6 +1,6 @@ 'use strict'; require('../../modules/es.set.constructor'); -require('../../modules/es.set.is-disjoint-from.v2'); +require('../../modules/es.set.is-disjoint-from'); var entryUnbind = require('../../internals/entry-unbind'); module.exports = entryUnbind('Set', 'isDisjointFrom'); diff --git a/packages/core-js/full/set/from.js b/packages/core-js/full/set/from.js index 5450320a9964..136efadbc096 100644 --- a/packages/core-js/full/set/from.js +++ b/packages/core-js/full/set/from.js @@ -4,6 +4,7 @@ require('../../modules/es.array.iterator'); require('../../modules/es.set.constructor'); require('../../modules/es.set.difference'); require('../../modules/es.set.intersection'); +require('../../modules/es.set.is-disjoint-from'); require('../../modules/es.string.iterator'); require('../../modules/esnext.set.from'); require('../../modules/esnext.set.add-all'); @@ -12,7 +13,6 @@ require('../../modules/esnext.set.every'); require('../../modules/esnext.set.filter'); require('../../modules/esnext.set.find'); require('../../modules/esnext.set.join'); -require('../../modules/esnext.set.is-disjoint-from.v2'); require('../../modules/esnext.set.is-subset-of.v2'); require('../../modules/esnext.set.is-superset-of.v2'); require('../../modules/esnext.set.map'); diff --git a/packages/core-js/full/set/of.js b/packages/core-js/full/set/of.js index 97a9f62836a7..8bb888b02b1b 100644 --- a/packages/core-js/full/set/of.js +++ b/packages/core-js/full/set/of.js @@ -4,6 +4,7 @@ require('../../modules/es.array.iterator'); require('../../modules/es.set.constructor'); require('../../modules/es.set.difference'); require('../../modules/es.set.intersection'); +require('../../modules/es.set.is-disjoint-from'); require('../../modules/esnext.set.of'); require('../../modules/esnext.set.add-all'); require('../../modules/esnext.set.delete-all'); @@ -11,7 +12,6 @@ require('../../modules/esnext.set.every'); require('../../modules/esnext.set.filter'); require('../../modules/esnext.set.find'); require('../../modules/esnext.set.join'); -require('../../modules/esnext.set.is-disjoint-from.v2'); require('../../modules/esnext.set.is-subset-of.v2'); require('../../modules/esnext.set.is-superset-of.v2'); require('../../modules/esnext.set.map'); diff --git a/packages/core-js/modules/es.set.is-disjoint-from.v2.js b/packages/core-js/modules/es.set.is-disjoint-from.js similarity index 100% rename from packages/core-js/modules/es.set.is-disjoint-from.v2.js rename to packages/core-js/modules/es.set.is-disjoint-from.js diff --git a/packages/core-js/modules/esnext.set.is-disjoint-from.v2.js b/packages/core-js/modules/esnext.set.is-disjoint-from.v2.js deleted file mode 100644 index 1aec2f8018b4..000000000000 --- a/packages/core-js/modules/esnext.set.is-disjoint-from.v2.js +++ /dev/null @@ -1,3 +0,0 @@ -'use strict'; -// TODO: Remove from `core-js@4` -require('../modules/es.set.is-disjoint-from.v2'); diff --git a/packages/core-js/proposals/set-methods-v2.js b/packages/core-js/proposals/set-methods-v2.js index 23ff0b076dcc..2e159f5d482f 100644 --- a/packages/core-js/proposals/set-methods-v2.js +++ b/packages/core-js/proposals/set-methods-v2.js @@ -2,7 +2,7 @@ // https://github.com/tc39/proposal-set-methods require('../modules/es.set.difference'); require('../modules/es.set.intersection'); -require('../modules/esnext.set.is-disjoint-from.v2'); +require('../modules/es.set.is-disjoint-from'); require('../modules/esnext.set.is-subset-of.v2'); require('../modules/esnext.set.is-superset-of.v2'); require('../modules/esnext.set.union.v2'); diff --git a/tests/compat/tests.js b/tests/compat/tests.js index 63ecf3252d22..43f346189165 100644 --- a/tests/compat/tests.js +++ b/tests/compat/tests.js @@ -1370,7 +1370,7 @@ GLOBAL.tests = { }), function () { return String(Array.from(new Set([1, 2, 3]).intersection(new Set([3, 2])))) === '3,2'; }], - 'es.set.is-disjoint-from.v2': createSetMethodTest('isDisjointFrom', function (result) { + 'es.set.is-disjoint-from': createSetMethodTest('isDisjointFrom', function (result) { return !result; }), 'es.set.is-subset-of.v2': createSetMethodTest('isSubsetOf', function (result) { From 2a65146d1dccfb63b60ea8d8bfc5645cbb7fb91c Mon Sep 17 00:00:00 2001 From: Denis Pushkarev Date: Wed, 4 Oct 2023 07:59:56 +0700 Subject: [PATCH 079/428] rename `esnext.set.is-subset-of.v2` -> `esnext.set.is-subset-of` --- README.md | 2 +- packages/core-js-compat/src/data.mjs | 5 +---- packages/core-js/actual/set/index.js | 1 - packages/core-js/actual/set/is-subset-of.js | 1 - packages/core-js/es/set/index.js | 2 +- packages/core-js/es/set/is-subset-of.js | 2 +- packages/core-js/full/set/from.js | 2 +- packages/core-js/full/set/of.js | 2 +- .../{es.set.is-subset-of.v2.js => es.set.is-subset-of.js} | 0 packages/core-js/modules/esnext.set.is-subset-of.v2.js | 3 --- packages/core-js/proposals/set-methods-v2.js | 2 +- tests/compat/tests.js | 2 +- 12 files changed, 8 insertions(+), 16 deletions(-) rename packages/core-js/modules/{es.set.is-subset-of.v2.js => es.set.is-subset-of.js} (100%) delete mode 100644 packages/core-js/modules/esnext.set.is-subset-of.v2.js diff --git a/README.md b/README.md index f3e8c39c8fde..60c1c39ed4cc 100644 --- a/README.md +++ b/README.md @@ -1656,7 +1656,7 @@ map.get(1); // => [1, 3, 5] map.get(0); // => [2, 4] ``` #### Set[⬆](#index) -Modules [`es.set.constructor`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.set.constructor.js), [`es.set.difference`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.set.difference.js), [`es.set.intersection`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.set.intersection.js), [`es.set.is-disjoint-from`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.set.is-disjoint-from.js), [`es.set.is-subset-of.v2`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.set.is-subset-of.v2.js), [`es.set.is-superset-of.v2`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.set.is-superset-of.v2.js), [`es.set.symmetric-difference.v2`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.set.symmetric-difference.v2.js), [`es.set.union.v2`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.set.union.v2.js) +Modules [`es.set.constructor`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.set.constructor.js), [`es.set.difference`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.set.difference.js), [`es.set.intersection`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.set.intersection.js), [`es.set.is-disjoint-from`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.set.is-disjoint-from.js), [`es.set.is-subset-of`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.set.is-subset-of.js), [`es.set.is-superset-of.v2`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.set.is-superset-of.v2.js), [`es.set.symmetric-difference.v2`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.set.symmetric-difference.v2.js), [`es.set.union.v2`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.set.union.v2.js) ```ts class Set { constructor(iterable?: Iterable): Set; diff --git a/packages/core-js-compat/src/data.mjs b/packages/core-js-compat/src/data.mjs index 76c6af24dca3..0c9e8155e7d9 100644 --- a/packages/core-js-compat/src/data.mjs +++ b/packages/core-js-compat/src/data.mjs @@ -1678,7 +1678,7 @@ export const data = { // https://bugs.webkit.org/show_bug.cgi?id=267494 safari: '18.0', // '17.0', }, - 'es.set.is-subset-of.v2': { + 'es.set.is-subset-of': { bun: '1.1.1', // v8 ~ Chrome 122 does not properly work with set-like objects // https://bugs.chromium.org/p/v8/issues/detail?id=14559 @@ -2616,8 +2616,6 @@ export const data = { 'esnext.set.from': { }, // TODO: Remove from `core-js@4` - 'esnext.set.is-subset-of.v2': null, - // TODO: Remove from `core-js@4` 'esnext.set.is-superset-of.v2': null, 'esnext.set.join': { }, @@ -2964,7 +2962,6 @@ export const renamed = new Map([ ['esnext.promise.try', 'es.promise.try'], ['esnext.promise.with-resolvers', 'es.promise.with-resolvers'], ['esnext.regexp.escape', 'es.regexp.escape'], - ['esnext.set.is-subset-of.v2', 'es.set.is-subset-of.v2'], ['esnext.set.is-superset-of.v2', 'es.set.is-superset-of.v2'], ['esnext.set.symmetric-difference.v2', 'es.set.symmetric-difference.v2'], ['esnext.set.union.v2', 'es.set.union.v2'], diff --git a/packages/core-js/actual/set/index.js b/packages/core-js/actual/set/index.js index 139cb8130bc5..20277f3da572 100644 --- a/packages/core-js/actual/set/index.js +++ b/packages/core-js/actual/set/index.js @@ -1,6 +1,5 @@ 'use strict'; var parent = require('../../stable/set'); -require('../../modules/esnext.set.is-subset-of.v2'); require('../../modules/esnext.set.is-superset-of.v2'); require('../../modules/esnext.set.symmetric-difference.v2'); require('../../modules/esnext.set.union.v2'); diff --git a/packages/core-js/actual/set/is-subset-of.js b/packages/core-js/actual/set/is-subset-of.js index 96a48be9487d..4cba2ca9792b 100644 --- a/packages/core-js/actual/set/is-subset-of.js +++ b/packages/core-js/actual/set/is-subset-of.js @@ -1,5 +1,4 @@ 'use strict'; var parent = require('../../stable/set/is-subset-of'); -require('../../modules/esnext.set.is-subset-of.v2'); module.exports = parent; diff --git a/packages/core-js/es/set/index.js b/packages/core-js/es/set/index.js index eabfcff624a2..649697bc73fe 100644 --- a/packages/core-js/es/set/index.js +++ b/packages/core-js/es/set/index.js @@ -5,7 +5,7 @@ require('../../modules/es.set.constructor'); require('../../modules/es.set.difference'); require('../../modules/es.set.intersection'); require('../../modules/es.set.is-disjoint-from'); -require('../../modules/es.set.is-subset-of.v2'); +require('../../modules/es.set.is-subset-of'); require('../../modules/es.set.is-superset-of.v2'); require('../../modules/es.set.symmetric-difference.v2'); require('../../modules/es.set.union.v2'); diff --git a/packages/core-js/es/set/is-subset-of.js b/packages/core-js/es/set/is-subset-of.js index 38202fb909a6..db637ce855e9 100644 --- a/packages/core-js/es/set/is-subset-of.js +++ b/packages/core-js/es/set/is-subset-of.js @@ -1,6 +1,6 @@ 'use strict'; require('../../modules/es.set.constructor'); -require('../../modules/es.set.is-subset-of.v2'); +require('../../modules/es.set.is-subset-of'); var entryUnbind = require('../../internals/entry-unbind'); module.exports = entryUnbind('Set', 'isSubsetOf'); diff --git a/packages/core-js/full/set/from.js b/packages/core-js/full/set/from.js index 136efadbc096..4f3b8421c810 100644 --- a/packages/core-js/full/set/from.js +++ b/packages/core-js/full/set/from.js @@ -5,6 +5,7 @@ require('../../modules/es.set.constructor'); require('../../modules/es.set.difference'); require('../../modules/es.set.intersection'); require('../../modules/es.set.is-disjoint-from'); +require('../../modules/es.set.is-subset-of'); require('../../modules/es.string.iterator'); require('../../modules/esnext.set.from'); require('../../modules/esnext.set.add-all'); @@ -13,7 +14,6 @@ require('../../modules/esnext.set.every'); require('../../modules/esnext.set.filter'); require('../../modules/esnext.set.find'); require('../../modules/esnext.set.join'); -require('../../modules/esnext.set.is-subset-of.v2'); require('../../modules/esnext.set.is-superset-of.v2'); require('../../modules/esnext.set.map'); require('../../modules/esnext.set.reduce'); diff --git a/packages/core-js/full/set/of.js b/packages/core-js/full/set/of.js index 8bb888b02b1b..02c91d36bf28 100644 --- a/packages/core-js/full/set/of.js +++ b/packages/core-js/full/set/of.js @@ -5,6 +5,7 @@ require('../../modules/es.set.constructor'); require('../../modules/es.set.difference'); require('../../modules/es.set.intersection'); require('../../modules/es.set.is-disjoint-from'); +require('../../modules/es.set.is-subset-of'); require('../../modules/esnext.set.of'); require('../../modules/esnext.set.add-all'); require('../../modules/esnext.set.delete-all'); @@ -12,7 +13,6 @@ require('../../modules/esnext.set.every'); require('../../modules/esnext.set.filter'); require('../../modules/esnext.set.find'); require('../../modules/esnext.set.join'); -require('../../modules/esnext.set.is-subset-of.v2'); require('../../modules/esnext.set.is-superset-of.v2'); require('../../modules/esnext.set.map'); require('../../modules/esnext.set.reduce'); diff --git a/packages/core-js/modules/es.set.is-subset-of.v2.js b/packages/core-js/modules/es.set.is-subset-of.js similarity index 100% rename from packages/core-js/modules/es.set.is-subset-of.v2.js rename to packages/core-js/modules/es.set.is-subset-of.js diff --git a/packages/core-js/modules/esnext.set.is-subset-of.v2.js b/packages/core-js/modules/esnext.set.is-subset-of.v2.js deleted file mode 100644 index a89f2667d620..000000000000 --- a/packages/core-js/modules/esnext.set.is-subset-of.v2.js +++ /dev/null @@ -1,3 +0,0 @@ -'use strict'; -// TODO: Remove from `core-js@4` -require('../modules/es.set.is-subset-of.v2'); diff --git a/packages/core-js/proposals/set-methods-v2.js b/packages/core-js/proposals/set-methods-v2.js index 2e159f5d482f..baf1517a524f 100644 --- a/packages/core-js/proposals/set-methods-v2.js +++ b/packages/core-js/proposals/set-methods-v2.js @@ -3,7 +3,7 @@ require('../modules/es.set.difference'); require('../modules/es.set.intersection'); require('../modules/es.set.is-disjoint-from'); -require('../modules/esnext.set.is-subset-of.v2'); +require('../modules/es.set.is-subset-of'); require('../modules/esnext.set.is-superset-of.v2'); require('../modules/esnext.set.union.v2'); require('../modules/esnext.set.symmetric-difference.v2'); diff --git a/tests/compat/tests.js b/tests/compat/tests.js index 43f346189165..20682f2ab570 100644 --- a/tests/compat/tests.js +++ b/tests/compat/tests.js @@ -1373,7 +1373,7 @@ GLOBAL.tests = { 'es.set.is-disjoint-from': createSetMethodTest('isDisjointFrom', function (result) { return !result; }), - 'es.set.is-subset-of.v2': createSetMethodTest('isSubsetOf', function (result) { + 'es.set.is-subset-of': createSetMethodTest('isSubsetOf', function (result) { return result; }), 'es.set.is-superset-of.v2': createSetMethodTest('isSupersetOf', function (result) { From 7e492805047106cb6629b262a46d390c919fa551 Mon Sep 17 00:00:00 2001 From: Denis Pushkarev Date: Wed, 4 Oct 2023 08:04:34 +0700 Subject: [PATCH 080/428] rename `esnext.set.is-superset-of.v2` -> `esnext.set.is-superset-of` --- README.md | 2 +- packages/core-js-compat/src/data.mjs | 15 +++------------ packages/core-js/actual/set/index.js | 3 --- packages/core-js/actual/set/is-superset-of.js | 1 - .../core-js/actual/set/symmetric-difference.js | 1 - packages/core-js/actual/set/union.js | 1 - packages/core-js/es/set/index.js | 6 +++--- packages/core-js/es/set/is-superset-of.js | 2 +- packages/core-js/es/set/symmetric-difference.js | 2 +- packages/core-js/es/set/union.js | 2 +- packages/core-js/full/set/from.js | 4 +--- packages/core-js/full/set/of.js | 4 +--- ...superset-of.v2.js => es.set.is-superset-of.js} | 0 ...rence.v2.js => es.set.symmetric-difference.js} | 0 .../{es.set.union.v2.js => es.set.union.js} | 0 .../modules/esnext.set.is-superset-of.v2.js | 3 --- .../modules/esnext.set.symmetric-difference.v2.js | 3 --- packages/core-js/modules/esnext.set.union.v2.js | 3 --- packages/core-js/proposals/set-methods-v2.js | 6 +++--- tests/compat/tests.js | 6 +++--- 20 files changed, 18 insertions(+), 46 deletions(-) rename packages/core-js/modules/{es.set.is-superset-of.v2.js => es.set.is-superset-of.js} (100%) rename packages/core-js/modules/{es.set.symmetric-difference.v2.js => es.set.symmetric-difference.js} (100%) rename packages/core-js/modules/{es.set.union.v2.js => es.set.union.js} (100%) delete mode 100644 packages/core-js/modules/esnext.set.is-superset-of.v2.js delete mode 100644 packages/core-js/modules/esnext.set.symmetric-difference.v2.js delete mode 100644 packages/core-js/modules/esnext.set.union.v2.js diff --git a/README.md b/README.md index 60c1c39ed4cc..9e7b8318c5b9 100644 --- a/README.md +++ b/README.md @@ -1656,7 +1656,7 @@ map.get(1); // => [1, 3, 5] map.get(0); // => [2, 4] ``` #### Set[⬆](#index) -Modules [`es.set.constructor`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.set.constructor.js), [`es.set.difference`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.set.difference.js), [`es.set.intersection`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.set.intersection.js), [`es.set.is-disjoint-from`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.set.is-disjoint-from.js), [`es.set.is-subset-of`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.set.is-subset-of.js), [`es.set.is-superset-of.v2`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.set.is-superset-of.v2.js), [`es.set.symmetric-difference.v2`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.set.symmetric-difference.v2.js), [`es.set.union.v2`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.set.union.v2.js) +Modules [`es.set.constructor`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.set.constructor.js), [`es.set.difference`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.set.difference.js), [`es.set.intersection`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.set.intersection.js), [`es.set.is-disjoint-from`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.set.is-disjoint-from.js), [`es.set.is-subset-of`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.set.is-subset-of.js), [`es.set.is-superset-of`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.set.is-superset-of.js), [`es.set.symmetric-difference`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.set.symmetric-difference.js), [`es.set.union`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.set.union.js) ```ts class Set { constructor(iterable?: Iterable): Set; diff --git a/packages/core-js-compat/src/data.mjs b/packages/core-js-compat/src/data.mjs index 0c9e8155e7d9..59d5d1093aa6 100644 --- a/packages/core-js-compat/src/data.mjs +++ b/packages/core-js-compat/src/data.mjs @@ -1692,7 +1692,7 @@ export const data = { // https://bugs.webkit.org/show_bug.cgi?id=267494 safari: '18.0', // '17.0', }, - 'es.set.is-superset-of.v2': { + 'es.set.is-superset-of': { bun: '1.1.1', // v8 ~ Chrome 122 does not properly work with set-like objects // https://bugs.chromium.org/p/v8/issues/detail?id=14559 @@ -1706,7 +1706,7 @@ export const data = { // https://bugs.webkit.org/show_bug.cgi?id=267494 safari: '18.0', // '17.0', }, - 'es.set.symmetric-difference.v2': { + 'es.set.symmetric-difference': { // Should get iterator record of a set-like object before cloning this // https://bugs.webkit.org/show_bug.cgi?id=289430 bun: '1.2.5', // '1.1.1', @@ -1720,7 +1720,7 @@ export const data = { // https://bugs.webkit.org/show_bug.cgi?id=289430 safari: '26.0', // '18.0', // '17.0', }, - 'es.set.union.v2': { + 'es.set.union': { // Should get iterator record of a set-like object before cloning this // https://bugs.webkit.org/show_bug.cgi?id=289430 bun: '1.2.5', // '1.1.1', @@ -2615,8 +2615,6 @@ export const data = { }, 'esnext.set.from': { }, - // TODO: Remove from `core-js@4` - 'esnext.set.is-superset-of.v2': null, 'esnext.set.join': { }, 'esnext.set.map': { @@ -2627,10 +2625,6 @@ export const data = { }, 'esnext.set.some': { }, - // TODO: Remove from `core-js@4` - 'esnext.set.symmetric-difference.v2': null, - // TODO: Remove from `core-js@4` - 'esnext.set.union.v2': null, 'esnext.string.cooked': { }, 'esnext.string.code-points': { @@ -2962,9 +2956,6 @@ export const renamed = new Map([ ['esnext.promise.try', 'es.promise.try'], ['esnext.promise.with-resolvers', 'es.promise.with-resolvers'], ['esnext.regexp.escape', 'es.regexp.escape'], - ['esnext.set.is-superset-of.v2', 'es.set.is-superset-of.v2'], - ['esnext.set.symmetric-difference.v2', 'es.set.symmetric-difference.v2'], - ['esnext.set.union.v2', 'es.set.union.v2'], ['esnext.suppressed-error.constructor', 'es.suppressed-error.constructor'], ['esnext.symbol.async-dispose', 'es.symbol.async-dispose'], ['esnext.symbol.dispose', 'es.symbol.dispose'], diff --git a/packages/core-js/actual/set/index.js b/packages/core-js/actual/set/index.js index 20277f3da572..a9961a0a2244 100644 --- a/packages/core-js/actual/set/index.js +++ b/packages/core-js/actual/set/index.js @@ -1,7 +1,4 @@ 'use strict'; var parent = require('../../stable/set'); -require('../../modules/esnext.set.is-superset-of.v2'); -require('../../modules/esnext.set.symmetric-difference.v2'); -require('../../modules/esnext.set.union.v2'); module.exports = parent; diff --git a/packages/core-js/actual/set/is-superset-of.js b/packages/core-js/actual/set/is-superset-of.js index 3c67563670ae..ef7bf84299f4 100644 --- a/packages/core-js/actual/set/is-superset-of.js +++ b/packages/core-js/actual/set/is-superset-of.js @@ -1,5 +1,4 @@ 'use strict'; var parent = require('../../stable/set/is-superset-of'); -require('../../modules/esnext.set.is-superset-of.v2'); module.exports = parent; diff --git a/packages/core-js/actual/set/symmetric-difference.js b/packages/core-js/actual/set/symmetric-difference.js index 4efeeb38be46..5ca7e445e4a4 100644 --- a/packages/core-js/actual/set/symmetric-difference.js +++ b/packages/core-js/actual/set/symmetric-difference.js @@ -1,5 +1,4 @@ 'use strict'; var parent = require('../../stable/set/symmetric-difference'); -require('../../modules/esnext.set.symmetric-difference.v2'); module.exports = parent; diff --git a/packages/core-js/actual/set/union.js b/packages/core-js/actual/set/union.js index 50d0a0123c64..af01c74cfee1 100644 --- a/packages/core-js/actual/set/union.js +++ b/packages/core-js/actual/set/union.js @@ -1,5 +1,4 @@ 'use strict'; var parent = require('../../stable/set/union'); -require('../../modules/esnext.set.union.v2'); module.exports = parent; diff --git a/packages/core-js/es/set/index.js b/packages/core-js/es/set/index.js index 649697bc73fe..fab08053307e 100644 --- a/packages/core-js/es/set/index.js +++ b/packages/core-js/es/set/index.js @@ -6,9 +6,9 @@ require('../../modules/es.set.difference'); require('../../modules/es.set.intersection'); require('../../modules/es.set.is-disjoint-from'); require('../../modules/es.set.is-subset-of'); -require('../../modules/es.set.is-superset-of.v2'); -require('../../modules/es.set.symmetric-difference.v2'); -require('../../modules/es.set.union.v2'); +require('../../modules/es.set.is-superset-of'); +require('../../modules/es.set.symmetric-difference'); +require('../../modules/es.set.union'); require('../../modules/es.string.iterator'); var path = require('../../internals/path'); diff --git a/packages/core-js/es/set/is-superset-of.js b/packages/core-js/es/set/is-superset-of.js index 5a08e51cd027..674a7b078a0a 100644 --- a/packages/core-js/es/set/is-superset-of.js +++ b/packages/core-js/es/set/is-superset-of.js @@ -1,6 +1,6 @@ 'use strict'; require('../../modules/es.set.constructor'); -require('../../modules/es.set.is-superset-of.v2'); +require('../../modules/es.set.is-superset-of'); var entryUnbind = require('../../internals/entry-unbind'); module.exports = entryUnbind('Set', 'isSupersetOf'); diff --git a/packages/core-js/es/set/symmetric-difference.js b/packages/core-js/es/set/symmetric-difference.js index 2244254f8a4f..0ac9d504fac9 100644 --- a/packages/core-js/es/set/symmetric-difference.js +++ b/packages/core-js/es/set/symmetric-difference.js @@ -1,6 +1,6 @@ 'use strict'; require('../../modules/es.set.constructor'); -require('../../modules/es.set.symmetric-difference.v2'); +require('../../modules/es.set.symmetric-difference'); var entryUnbind = require('../../internals/entry-unbind'); module.exports = entryUnbind('Set', 'symmetricDifference'); diff --git a/packages/core-js/es/set/union.js b/packages/core-js/es/set/union.js index cefc7d4cf163..be28e065b012 100644 --- a/packages/core-js/es/set/union.js +++ b/packages/core-js/es/set/union.js @@ -1,6 +1,6 @@ 'use strict'; require('../../modules/es.set.constructor'); -require('../../modules/es.set.union.v2'); +require('../../modules/es.set.union'); var entryUnbind = require('../../internals/entry-unbind'); module.exports = entryUnbind('Set', 'union'); diff --git a/packages/core-js/full/set/from.js b/packages/core-js/full/set/from.js index 4f3b8421c810..e593a9d9ce8a 100644 --- a/packages/core-js/full/set/from.js +++ b/packages/core-js/full/set/from.js @@ -6,6 +6,7 @@ require('../../modules/es.set.difference'); require('../../modules/es.set.intersection'); require('../../modules/es.set.is-disjoint-from'); require('../../modules/es.set.is-subset-of'); +require('../../modules/es.set.is-superset-of'); require('../../modules/es.string.iterator'); require('../../modules/esnext.set.from'); require('../../modules/esnext.set.add-all'); @@ -14,12 +15,9 @@ require('../../modules/esnext.set.every'); require('../../modules/esnext.set.filter'); require('../../modules/esnext.set.find'); require('../../modules/esnext.set.join'); -require('../../modules/esnext.set.is-superset-of.v2'); require('../../modules/esnext.set.map'); require('../../modules/esnext.set.reduce'); require('../../modules/esnext.set.some'); -require('../../modules/esnext.set.symmetric-difference.v2'); -require('../../modules/esnext.set.union.v2'); require('../../modules/web.dom-collections.iterator'); var path = require('../../internals/path'); diff --git a/packages/core-js/full/set/of.js b/packages/core-js/full/set/of.js index 02c91d36bf28..3728d1a9a143 100644 --- a/packages/core-js/full/set/of.js +++ b/packages/core-js/full/set/of.js @@ -6,6 +6,7 @@ require('../../modules/es.set.difference'); require('../../modules/es.set.intersection'); require('../../modules/es.set.is-disjoint-from'); require('../../modules/es.set.is-subset-of'); +require('../../modules/es.set.is-superset-of'); require('../../modules/esnext.set.of'); require('../../modules/esnext.set.add-all'); require('../../modules/esnext.set.delete-all'); @@ -13,12 +14,9 @@ require('../../modules/esnext.set.every'); require('../../modules/esnext.set.filter'); require('../../modules/esnext.set.find'); require('../../modules/esnext.set.join'); -require('../../modules/esnext.set.is-superset-of.v2'); require('../../modules/esnext.set.map'); require('../../modules/esnext.set.reduce'); require('../../modules/esnext.set.some'); -require('../../modules/esnext.set.symmetric-difference.v2'); -require('../../modules/esnext.set.union.v2'); var path = require('../../internals/path'); module.exports = path.Set.of; diff --git a/packages/core-js/modules/es.set.is-superset-of.v2.js b/packages/core-js/modules/es.set.is-superset-of.js similarity index 100% rename from packages/core-js/modules/es.set.is-superset-of.v2.js rename to packages/core-js/modules/es.set.is-superset-of.js diff --git a/packages/core-js/modules/es.set.symmetric-difference.v2.js b/packages/core-js/modules/es.set.symmetric-difference.js similarity index 100% rename from packages/core-js/modules/es.set.symmetric-difference.v2.js rename to packages/core-js/modules/es.set.symmetric-difference.js diff --git a/packages/core-js/modules/es.set.union.v2.js b/packages/core-js/modules/es.set.union.js similarity index 100% rename from packages/core-js/modules/es.set.union.v2.js rename to packages/core-js/modules/es.set.union.js diff --git a/packages/core-js/modules/esnext.set.is-superset-of.v2.js b/packages/core-js/modules/esnext.set.is-superset-of.v2.js deleted file mode 100644 index c539c66f48ac..000000000000 --- a/packages/core-js/modules/esnext.set.is-superset-of.v2.js +++ /dev/null @@ -1,3 +0,0 @@ -'use strict'; -// TODO: Remove from `core-js@4` -require('../modules/es.set.is-superset-of.v2'); diff --git a/packages/core-js/modules/esnext.set.symmetric-difference.v2.js b/packages/core-js/modules/esnext.set.symmetric-difference.v2.js deleted file mode 100644 index 0d1f18a56547..000000000000 --- a/packages/core-js/modules/esnext.set.symmetric-difference.v2.js +++ /dev/null @@ -1,3 +0,0 @@ -'use strict'; -// TODO: Remove from `core-js@4` -require('../modules/es.set.symmetric-difference.v2'); diff --git a/packages/core-js/modules/esnext.set.union.v2.js b/packages/core-js/modules/esnext.set.union.v2.js deleted file mode 100644 index cd5c93f3fba4..000000000000 --- a/packages/core-js/modules/esnext.set.union.v2.js +++ /dev/null @@ -1,3 +0,0 @@ -'use strict'; -// TODO: Remove from `core-js@4` -require('../modules/es.set.union.v2'); diff --git a/packages/core-js/proposals/set-methods-v2.js b/packages/core-js/proposals/set-methods-v2.js index baf1517a524f..8a92979c86ec 100644 --- a/packages/core-js/proposals/set-methods-v2.js +++ b/packages/core-js/proposals/set-methods-v2.js @@ -4,6 +4,6 @@ require('../modules/es.set.difference'); require('../modules/es.set.intersection'); require('../modules/es.set.is-disjoint-from'); require('../modules/es.set.is-subset-of'); -require('../modules/esnext.set.is-superset-of.v2'); -require('../modules/esnext.set.union.v2'); -require('../modules/esnext.set.symmetric-difference.v2'); +require('../modules/es.set.is-superset-of'); +require('../modules/es.set.union'); +require('../modules/es.set.symmetric-difference'); diff --git a/tests/compat/tests.js b/tests/compat/tests.js index 20682f2ab570..9aeb7c1d702b 100644 --- a/tests/compat/tests.js +++ b/tests/compat/tests.js @@ -1376,14 +1376,14 @@ GLOBAL.tests = { 'es.set.is-subset-of': createSetMethodTest('isSubsetOf', function (result) { return result; }), - 'es.set.is-superset-of.v2': createSetMethodTest('isSupersetOf', function (result) { + 'es.set.is-superset-of': createSetMethodTest('isSupersetOf', function (result) { return !result; }), - 'es.set.symmetric-difference.v2': [ + 'es.set.symmetric-difference': [ createSetMethodTest('symmetricDifference'), createSetMethodTestShouldGetKeysBeforeCloning('symmetricDifference') ], - 'es.set.union.v2': [ + 'es.set.union': [ createSetMethodTest('union'), createSetMethodTestShouldGetKeysBeforeCloning('union') ], From 67b13b74f1a36c84c8a31e51c7b14dfaf7ea8e98 Mon Sep 17 00:00:00 2001 From: Denis Pushkarev Date: Wed, 4 Oct 2023 08:09:20 +0700 Subject: [PATCH 081/428] rename `esnext.set.symmetric-difference.v2` -> `esnext.set.symmetric-difference` --- packages/core-js/full/set/from.js | 2 ++ packages/core-js/full/set/of.js | 2 ++ 2 files changed, 4 insertions(+) diff --git a/packages/core-js/full/set/from.js b/packages/core-js/full/set/from.js index e593a9d9ce8a..7c18c0f8cd5b 100644 --- a/packages/core-js/full/set/from.js +++ b/packages/core-js/full/set/from.js @@ -7,6 +7,8 @@ require('../../modules/es.set.intersection'); require('../../modules/es.set.is-disjoint-from'); require('../../modules/es.set.is-subset-of'); require('../../modules/es.set.is-superset-of'); +require('../../modules/es.set.symmetric-difference'); +require('../../modules/es.set.union'); require('../../modules/es.string.iterator'); require('../../modules/esnext.set.from'); require('../../modules/esnext.set.add-all'); diff --git a/packages/core-js/full/set/of.js b/packages/core-js/full/set/of.js index 3728d1a9a143..905a05bbcfab 100644 --- a/packages/core-js/full/set/of.js +++ b/packages/core-js/full/set/of.js @@ -7,6 +7,8 @@ require('../../modules/es.set.intersection'); require('../../modules/es.set.is-disjoint-from'); require('../../modules/es.set.is-subset-of'); require('../../modules/es.set.is-superset-of'); +require('../../modules/es.set.symmetric-difference'); +require('../../modules/es.set.union'); require('../../modules/esnext.set.of'); require('../../modules/esnext.set.add-all'); require('../../modules/esnext.set.delete-all'); From c5ced24d95c30201b2f05489344125463cebcfce Mon Sep 17 00:00:00 2001 From: Denis Pushkarev Date: Wed, 4 Oct 2023 08:13:46 +0700 Subject: [PATCH 082/428] rename `esnext.set.union.v2` -> `esnext.set.union` --- packages/core-js/proposals/set-methods-v2.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/core-js/proposals/set-methods-v2.js b/packages/core-js/proposals/set-methods-v2.js index 8a92979c86ec..caf3d9725372 100644 --- a/packages/core-js/proposals/set-methods-v2.js +++ b/packages/core-js/proposals/set-methods-v2.js @@ -5,5 +5,5 @@ require('../modules/es.set.intersection'); require('../modules/es.set.is-disjoint-from'); require('../modules/es.set.is-subset-of'); require('../modules/es.set.is-superset-of'); -require('../modules/es.set.union'); require('../modules/es.set.symmetric-difference'); +require('../modules/es.set.union'); From 5b734a8084d3e1e742bdd31028e2ad6213db77c3 Mon Sep 17 00:00:00 2001 From: Denis Pushkarev Date: Wed, 4 Oct 2023 08:22:46 +0700 Subject: [PATCH 083/428] split `web.timers` -> `web.set-{ timeout, interval }` --- README.md | 2 +- packages/core-js-compat/src/data.mjs | 17 ----------------- packages/core-js/modules/web.timers.js | 4 ---- packages/core-js/stable/set-interval.js | 2 +- packages/core-js/stable/set-timeout.js | 2 +- packages/core-js/web/index.js | 3 ++- packages/core-js/web/timers.js | 3 ++- tests/compat/tests.js | 2 -- 8 files changed, 7 insertions(+), 28 deletions(-) delete mode 100644 packages/core-js/modules/web.timers.js diff --git a/README.md b/README.md index 9e7b8318c5b9..11ddc849db2f 100644 --- a/README.md +++ b/README.md @@ -3583,7 +3583,7 @@ atob('aGksIGNvcmUtanM='); // => 'hi, core-js' ``` #### `setTimeout` and `setInterval`[⬆](#index) -Module [`web.timers`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/web.timers.js). Additional arguments fix for IE9-. +Modules [`web.set-timeout`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/web.set-timeout.js) and [`web.set-interval`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/web.set-interval.js). Additional arguments fix for IE9-. ```ts function setTimeout(callback: any, time: any, ...args: Array): number; function setInterval(callback: any, time: any, ...args: Array): number; diff --git a/packages/core-js-compat/src/data.mjs b/packages/core-js-compat/src/data.mjs index 59d5d1093aa6..e9d6f48c3ce4 100644 --- a/packages/core-js-compat/src/data.mjs +++ b/packages/core-js-compat/src/data.mjs @@ -2840,21 +2840,6 @@ export const data = { // firefox: '94', // node: '17.0', }, - // TODO: Remove this module from `core-js@4` since it's split to submodules - 'web.timers': { - android: '1.5', - // https://github.com/oven-sh/bun/issues/1633 - bun: '0.4.0', // '0.1.1', - chrome: '1', - deno: '1.0', - firefox: '1', - hermes: '0.1', - ie: '10', - node: '0.0.1', - opera: '7', - rhino: '1.7.13', - safari: '1.0', - }, 'web.url.constructor': { bun: '0.1.1', chrome: '67', @@ -2990,8 +2975,6 @@ export const ignored = [ 'esnext.observable.of', 'web.clear-immediate', 'web.set-immediate', - 'web.set-interval', - 'web.set-timeout', ]; for (const ignore of ignored) delete data[ignore]; diff --git a/packages/core-js/modules/web.timers.js b/packages/core-js/modules/web.timers.js deleted file mode 100644 index b78768669bb5..000000000000 --- a/packages/core-js/modules/web.timers.js +++ /dev/null @@ -1,4 +0,0 @@ -'use strict'; -// TODO: Remove this module from `core-js@4` since it's split to modules listed below -require('../modules/web.set-interval'); -require('../modules/web.set-timeout'); diff --git a/packages/core-js/stable/set-interval.js b/packages/core-js/stable/set-interval.js index b49aca55eff8..9b74a1b06a2d 100644 --- a/packages/core-js/stable/set-interval.js +++ b/packages/core-js/stable/set-interval.js @@ -1,5 +1,5 @@ 'use strict'; -require('../modules/web.timers'); +require('../modules/web.set-interval'); var path = require('../internals/path'); module.exports = path.setInterval; diff --git a/packages/core-js/stable/set-timeout.js b/packages/core-js/stable/set-timeout.js index e178923d8a4a..167a8208961c 100644 --- a/packages/core-js/stable/set-timeout.js +++ b/packages/core-js/stable/set-timeout.js @@ -1,5 +1,5 @@ 'use strict'; -require('../modules/web.timers'); +require('../modules/web.set-timeout'); var path = require('../internals/path'); module.exports = path.setTimeout; diff --git a/packages/core-js/web/index.js b/packages/core-js/web/index.js index 5d12c6b5ee3d..727712afd68f 100644 --- a/packages/core-js/web/index.js +++ b/packages/core-js/web/index.js @@ -9,8 +9,9 @@ require('../modules/web.dom-exception.to-string-tag'); require('../modules/web.immediate'); require('../modules/web.queue-microtask'); require('../modules/web.self'); +require('../modules/web.set-interval'); +require('../modules/web.set-timeout'); require('../modules/web.structured-clone'); -require('../modules/web.timers'); require('../modules/web.url.constructor'); require('../modules/web.url.can-parse'); require('../modules/web.url.parse'); diff --git a/packages/core-js/web/timers.js b/packages/core-js/web/timers.js index 2e6e766f1dd3..7515e2f9fc64 100644 --- a/packages/core-js/web/timers.js +++ b/packages/core-js/web/timers.js @@ -1,5 +1,6 @@ 'use strict'; -require('../modules/web.timers'); +require('../modules/web.set-interval'); +require('../modules/web.set-timeout'); var path = require('../internals/path'); module.exports = path; diff --git a/tests/compat/tests.js b/tests/compat/tests.js index 9aeb7c1d702b..236ed4b06b4d 100644 --- a/tests/compat/tests.js +++ b/tests/compat/tests.js @@ -2222,8 +2222,6 @@ GLOBAL.tests = { && checkErrorsCloning(structuredClone, DOMException) && checkNewErrorsCloningSemantic(structuredClone); }, - // TODO: Remove this module from `core-js@4` since it's split to submodules - 'web.timers': TIMERS, 'web.url.constructor': URL_AND_URL_SEARCH_PARAMS_SUPPORT, 'web.url.can-parse': [URL_AND_URL_SEARCH_PARAMS_SUPPORT, function () { try { From 7f4ba452b01dffab59ec31d8c569f0757bce71cb Mon Sep 17 00:00:00 2001 From: Denis Pushkarev Date: Wed, 4 Oct 2023 08:37:40 +0700 Subject: [PATCH 084/428] split `web.immediate` -> `web.{ set, clear }-immediate` --- README.md | 2 +- packages/core-js-compat/src/data.mjs | 10 ---------- packages/core-js/modules/web.immediate.js | 4 ---- packages/core-js/stable/clear-immediate.js | 2 +- packages/core-js/stable/set-immediate.js | 2 +- packages/core-js/web/immediate.js | 3 ++- packages/core-js/web/index.js | 3 ++- tests/compat/tests.js | 2 -- 8 files changed, 7 insertions(+), 21 deletions(-) delete mode 100644 packages/core-js/modules/web.immediate.js diff --git a/README.md b/README.md index 11ddc849db2f..f400bc1514ec 100644 --- a/README.md +++ b/README.md @@ -3600,7 +3600,7 @@ setTimeout(log.bind(null, 42), 1000); setTimeout(log, 1000, 42); ``` #### `setImmediate`[⬆](#index) -Module [`web.immediate`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/web.immediate.js). [`setImmediate`](https://w3c.github.io/setImmediate/) polyfill. +Modules [`web.set-immediate`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/web.set-immediate.js) and [`web.clear-immediate`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/web.clear-immediate.js). [`setImmediate`](https://w3c.github.io/setImmediate/) polyfill. ```ts function setImmediate(callback: any, ...args: Array): number; function clearImmediate(id: number): void; diff --git a/packages/core-js-compat/src/data.mjs b/packages/core-js-compat/src/data.mjs index e9d6f48c3ce4..651b2a6b5ae8 100644 --- a/packages/core-js-compat/src/data.mjs +++ b/packages/core-js-compat/src/data.mjs @@ -2768,14 +2768,6 @@ export const data = { node: '17.0', safari: '11.1', }, - // TODO: Remove this module from `core-js@4` since it's split to submodules - 'web.immediate': { - // https://github.com/oven-sh/bun/issues/1633 - bun: '0.4.0', // '0.1.7', - deno: '2.4', - ie: '10', - node: '0.9.1', - }, 'web.queue-microtask': { // wrong arity in Bun ~ 1.0.30, https://github.com/oven-sh/bun/issues/9249 // bun: '0.1.1', @@ -2973,8 +2965,6 @@ export const ignored = [ 'esnext.observable.constructor', 'esnext.observable.from', 'esnext.observable.of', - 'web.clear-immediate', - 'web.set-immediate', ]; for (const ignore of ignored) delete data[ignore]; diff --git a/packages/core-js/modules/web.immediate.js b/packages/core-js/modules/web.immediate.js deleted file mode 100644 index 170a00e6739d..000000000000 --- a/packages/core-js/modules/web.immediate.js +++ /dev/null @@ -1,4 +0,0 @@ -'use strict'; -// TODO: Remove this module from `core-js@4` since it's split to modules listed below -require('../modules/web.clear-immediate'); -require('../modules/web.set-immediate'); diff --git a/packages/core-js/stable/clear-immediate.js b/packages/core-js/stable/clear-immediate.js index 8735f367a471..ab1f18b776d8 100644 --- a/packages/core-js/stable/clear-immediate.js +++ b/packages/core-js/stable/clear-immediate.js @@ -1,5 +1,5 @@ 'use strict'; -require('../modules/web.immediate'); +require('../modules/web.clear-immediate'); var path = require('../internals/path'); module.exports = path.clearImmediate; diff --git a/packages/core-js/stable/set-immediate.js b/packages/core-js/stable/set-immediate.js index 379b982edd3c..9221cb7e7276 100644 --- a/packages/core-js/stable/set-immediate.js +++ b/packages/core-js/stable/set-immediate.js @@ -1,5 +1,5 @@ 'use strict'; -require('../modules/web.immediate'); +require('../modules/web.set-immediate'); var path = require('../internals/path'); module.exports = path.setImmediate; diff --git a/packages/core-js/web/immediate.js b/packages/core-js/web/immediate.js index 3154cd95b032..1cb66eb37afb 100644 --- a/packages/core-js/web/immediate.js +++ b/packages/core-js/web/immediate.js @@ -1,5 +1,6 @@ 'use strict'; -require('../modules/web.immediate'); +require('../modules/web.clear-immediate'); +require('../modules/web.set-immediate'); var path = require('../internals/path'); module.exports = path; diff --git a/packages/core-js/web/index.js b/packages/core-js/web/index.js index 727712afd68f..ed869ad8066b 100644 --- a/packages/core-js/web/index.js +++ b/packages/core-js/web/index.js @@ -1,14 +1,15 @@ 'use strict'; require('../modules/web.atob'); require('../modules/web.btoa'); +require('../modules/web.clear-immediate'); require('../modules/web.dom-collections.for-each'); require('../modules/web.dom-collections.iterator'); require('../modules/web.dom-exception.constructor'); require('../modules/web.dom-exception.stack'); require('../modules/web.dom-exception.to-string-tag'); -require('../modules/web.immediate'); require('../modules/web.queue-microtask'); require('../modules/web.self'); +require('../modules/web.set-immediate'); require('../modules/web.set-interval'); require('../modules/web.set-timeout'); require('../modules/web.structured-clone'); diff --git a/tests/compat/tests.js b/tests/compat/tests.js index 236ed4b06b4d..e9c5e4c88e03 100644 --- a/tests/compat/tests.js +++ b/tests/compat/tests.js @@ -2191,8 +2191,6 @@ GLOBAL.tests = { return typeof DOMException == 'function' && DOMException.prototype[Symbol.toStringTag] === 'DOMException'; }, - // TODO: Remove this module from `core-js@4` since it's split to submodules - 'web.immediate': IMMEDIATE, 'web.queue-microtask': function () { return Object.getOwnPropertyDescriptor(GLOBAL, 'queueMicrotask').value.length === 1; }, From d4f050890fd3a59fdb1a91c7c6beb7dc996fe76d Mon Sep 17 00:00:00 2001 From: Denis Pushkarev Date: Wed, 4 Oct 2023 08:58:34 +0700 Subject: [PATCH 085/428] split `esnext.observable` -> `esnext.observable.{ constructor, from, of }` --- README.md | 2 +- packages/core-js-compat/src/data.mjs | 6 ------ packages/core-js/full/observable/constructor.js | 9 +++++++++ packages/core-js/full/observable/from.js | 10 ++++++++++ packages/core-js/full/observable/index.js | 4 +++- packages/core-js/full/observable/of.js | 10 ++++++++++ packages/core-js/modules/esnext.observable.js | 5 ----- packages/core-js/proposals/observable.js | 4 +++- tests/compat-data/tests-coverage.mjs | 1 - tests/entries/unit.mjs | 3 +++ 10 files changed, 39 insertions(+), 15 deletions(-) create mode 100644 packages/core-js/full/observable/constructor.js create mode 100644 packages/core-js/full/observable/from.js create mode 100644 packages/core-js/full/observable/of.js delete mode 100644 packages/core-js/modules/esnext.observable.js diff --git a/README.md b/README.md index f400bc1514ec..b004a5cb9da5 100644 --- a/README.md +++ b/README.md @@ -3104,7 +3104,7 @@ core-js(-pure)/full/symbol/custom-matcher core-js(-pure)/stage/1 ``` ##### [`Observable`](https://github.com/zenparsing/es-observable)[⬆](#index) -Modules [`esnext.observable`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/esnext.observable.js) and [`esnext.symbol.observable`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/esnext.symbol.observable.js) +Modules [`esnext.observable.constructor`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/esnext.observable.constructor.js), [`esnext.observable.from`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/esnext.observable.from.js), [`esnext.observable.of`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/esnext.observable.of.js) and [`esnext.symbol.observable`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/esnext.symbol.observable.js) ```ts class Observable { constructor(subscriber: Function): Observable; diff --git a/packages/core-js-compat/src/data.mjs b/packages/core-js-compat/src/data.mjs index 651b2a6b5ae8..f5eb9821d3cf 100644 --- a/packages/core-js-compat/src/data.mjs +++ b/packages/core-js-compat/src/data.mjs @@ -2561,9 +2561,6 @@ export const data = { }, // TODO: Remove from `core-js@4` 'esnext.object.group-by': null, - // TODO: Remove this module from `core-js@4` since it's split to modules listed below - 'esnext.observable': { - }, 'esnext.observable.constructor': { }, 'esnext.observable.from': { @@ -2962,9 +2959,6 @@ export const ignored = [ 'es.promise.race', 'es.promise.reject', 'es.promise.resolve', - 'esnext.observable.constructor', - 'esnext.observable.from', - 'esnext.observable.of', ]; for (const ignore of ignored) delete data[ignore]; diff --git a/packages/core-js/full/observable/constructor.js b/packages/core-js/full/observable/constructor.js new file mode 100644 index 000000000000..9434a739996d --- /dev/null +++ b/packages/core-js/full/observable/constructor.js @@ -0,0 +1,9 @@ +'use strict'; +require('../../modules/esnext.observable.constructor'); +require('../../modules/esnext.symbol.observable'); +require('../../modules/es.object.to-string'); +require('../../modules/es.string.iterator'); +require('../../modules/web.dom-collections.iterator'); +var path = require('../../internals/path'); + +module.exports = path.Observable; diff --git a/packages/core-js/full/observable/from.js b/packages/core-js/full/observable/from.js new file mode 100644 index 000000000000..45c4b298c4dd --- /dev/null +++ b/packages/core-js/full/observable/from.js @@ -0,0 +1,10 @@ +'use strict'; +require('../../modules/esnext.observable.constructor'); +require('../../modules/esnext.observable.from'); +require('../../modules/esnext.symbol.observable'); +require('../../modules/es.object.to-string'); +require('../../modules/es.string.iterator'); +require('../../modules/web.dom-collections.iterator'); +var path = require('../../internals/path'); + +module.exports = path.Observable.from; diff --git a/packages/core-js/full/observable/index.js b/packages/core-js/full/observable/index.js index c29fa73f52f6..b6334da06222 100644 --- a/packages/core-js/full/observable/index.js +++ b/packages/core-js/full/observable/index.js @@ -1,5 +1,7 @@ 'use strict'; -require('../../modules/esnext.observable'); +require('../../modules/esnext.observable.constructor'); +require('../../modules/esnext.observable.from'); +require('../../modules/esnext.observable.of'); require('../../modules/esnext.symbol.observable'); require('../../modules/es.object.to-string'); require('../../modules/es.string.iterator'); diff --git a/packages/core-js/full/observable/of.js b/packages/core-js/full/observable/of.js new file mode 100644 index 000000000000..1a805bb0d34e --- /dev/null +++ b/packages/core-js/full/observable/of.js @@ -0,0 +1,10 @@ +'use strict'; +require('../../modules/esnext.observable.constructor'); +require('../../modules/esnext.observable.of'); +require('../../modules/esnext.symbol.observable'); +require('../../modules/es.object.to-string'); +require('../../modules/es.string.iterator'); +require('../../modules/web.dom-collections.iterator'); +var path = require('../../internals/path'); + +module.exports = path.Observable.of; diff --git a/packages/core-js/modules/esnext.observable.js b/packages/core-js/modules/esnext.observable.js deleted file mode 100644 index 7f37b46ad320..000000000000 --- a/packages/core-js/modules/esnext.observable.js +++ /dev/null @@ -1,5 +0,0 @@ -'use strict'; -// TODO: Remove this module from `core-js@4` since it's split to modules listed below -require('../modules/esnext.observable.constructor'); -require('../modules/esnext.observable.from'); -require('../modules/esnext.observable.of'); diff --git a/packages/core-js/proposals/observable.js b/packages/core-js/proposals/observable.js index 0dcee84cb141..577b7d85006f 100644 --- a/packages/core-js/proposals/observable.js +++ b/packages/core-js/proposals/observable.js @@ -1,4 +1,6 @@ 'use strict'; // https://github.com/tc39/proposal-observable -require('../modules/esnext.observable'); +require('../modules/esnext.observable.constructor'); +require('../modules/esnext.observable.from'); +require('../modules/esnext.observable.of'); require('../modules/esnext.symbol.observable'); diff --git a/tests/compat-data/tests-coverage.mjs b/tests/compat-data/tests-coverage.mjs index d2c68cb04657..95db779645f6 100644 --- a/tests/compat-data/tests-coverage.mjs +++ b/tests/compat-data/tests-coverage.mjs @@ -12,7 +12,6 @@ const ignore = new Set([ 'esnext.iterator.sliding', 'esnext.map.emplace', 'esnext.math.clamp', - 'esnext.observable', 'esnext.observable.constructor', 'esnext.observable.from', 'esnext.observable.of', diff --git a/tests/entries/unit.mjs b/tests/entries/unit.mjs index 4816b98863da..a062f30e0b44 100644 --- a/tests/entries/unit.mjs +++ b/tests/entries/unit.mjs @@ -767,6 +767,9 @@ for (PATH of ['core-js-pure', 'core-js']) { ok(load(NS, 'number/virtual/clamp').call(6, 2, 4) === 4); ok(load(NS, 'number/from-string')('12', 3) === 5); ok('from' in load(NS, 'observable')); + ok(typeof load(NS, 'observable/constructor') == 'function'); + ok(typeof load(NS, 'observable/from') == 'function'); + ok(typeof load(NS, 'observable/of') == 'function'); ok(typeof load(NS, 'reflect/define-metadata') == 'function'); ok(typeof load(NS, 'reflect/delete-metadata') == 'function'); ok(typeof load(NS, 'reflect/get-metadata') == 'function'); From 07cde9b5ee613c172c129bad9ff63a1e4476ca81 Mon Sep 17 00:00:00 2001 From: Denis Pushkarev Date: Wed, 4 Oct 2023 09:12:15 +0700 Subject: [PATCH 086/428] split `es.string.trim-end` -> `es.string.trim-{ end, right }` --- README.md | 2 +- packages/core-js-compat/src/data.mjs | 1 - packages/core-js/es/string/index.js | 3 ++- packages/core-js/es/string/trim-end.js | 2 +- packages/core-js/es/string/trim-right.js | 2 +- packages/core-js/es/string/virtual/index.js | 3 ++- packages/core-js/es/string/virtual/trim-right.js | 2 +- packages/core-js/modules/es.string.trim-end.js | 2 -- packages/core-js/proposals/string-left-right-trim.js | 3 ++- 9 files changed, 10 insertions(+), 10 deletions(-) diff --git a/README.md b/README.md index b004a5cb9da5..90563523652f 100644 --- a/README.md +++ b/README.md @@ -927,7 +927,7 @@ Iterator.from({ > - For preventing prototype pollution, in the `pure` version, new `%IteratorPrototype%` methods are not added to the real `%IteratorPrototype%`, they are available only on wrappers - instead of `[].values().map(fn)` use `Iterator.from([]).map(fn)`. #### ECMAScript: String and RegExp[⬆](#index) -The main part of `String` features: modules [`es.string.from-code-point`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.string.from-code-point.js), [`es.string.raw`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.string.raw.js), [`es.string.iterator`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.string.iterator.js), [`es.string.split`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.string.split.js), [`es.string.code-point-at`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.string.code-point-at.js), [`es.string.ends-with`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.string.ends-with.js), [`es.string.includes`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.string.includes.js), [`es.string.repeat`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.string.repeat.js), [`es.string.pad-start`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.string.pad-start.js), [`es.string.pad-end`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.string.pad-end.js), [`es.string.starts-with`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.string.starts-with.js), [`es.string.trim`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.string.trim.js), [`es.string.trim-start`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.string.trim-start.js), [`es.string.trim-end`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.string.trim-end.js), [`es.string.match-all`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.string.match-all.js), [`es.string.replace-all`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.string.replace-all.js), [`es.string.at`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.string.at.js), [`es.string.is-well-formed`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.string.is-well-formed.js), [`es.string.to-well-formed`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.string.to-well-formed.js). +The main part of `String` features: modules [`es.string.from-code-point`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.string.from-code-point.js), [`es.string.raw`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.string.raw.js), [`es.string.iterator`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.string.iterator.js), [`es.string.split`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.string.split.js), [`es.string.code-point-at`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.string.code-point-at.js), [`es.string.ends-with`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.string.ends-with.js), [`es.string.includes`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.string.includes.js), [`es.string.repeat`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.string.repeat.js), [`es.string.pad-start`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.string.pad-start.js), [`es.string.pad-end`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.string.pad-end.js), [`es.string.starts-with`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.string.starts-with.js), [`es.string.trim`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.string.trim.js), [`es.string.trim-start`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.string.trim-start.js), [`es.string.trim-end`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.string.trim-end.js), [`es.string.trim-right`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.string.trim-right.js), [`es.string.match-all`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.string.match-all.js), [`es.string.replace-all`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.string.replace-all.js), [`es.string.at`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.string.at.js), [`es.string.is-well-formed`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.string.is-well-formed.js), [`es.string.to-well-formed`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.string.to-well-formed.js). Adding support of well-known [symbols](#ecmascript-symbol) `@@match`, `@@replace`, `@@search` and `@@split` and direct `.exec` calls to related `String` methods, modules [`es.string.match`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.string.match.js), [`es.string.replace`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.string.replace.js), [`es.string.search`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.string.search.js) and [`es.string.split`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.string.split.js). diff --git a/packages/core-js-compat/src/data.mjs b/packages/core-js-compat/src/data.mjs index f5eb9821d3cf..92299221d884 100644 --- a/packages/core-js-compat/src/data.mjs +++ b/packages/core-js-compat/src/data.mjs @@ -2948,7 +2948,6 @@ export const dataWithIgnored = { ...data }; export const ignored = [ // TODO: Clean in `core-js@4` 'es.string.trim-left', - 'es.string.trim-right', 'es.symbol.constructor', 'es.symbol.for', 'es.symbol.key-for', diff --git a/packages/core-js/es/string/index.js b/packages/core-js/es/string/index.js index d714ca20783c..c681be053e1f 100644 --- a/packages/core-js/es/string/index.js +++ b/packages/core-js/es/string/index.js @@ -21,8 +21,9 @@ require('../../modules/es.string.starts-with'); require('../../modules/es.string.substr'); require('../../modules/es.string.to-well-formed'); require('../../modules/es.string.trim'); -require('../../modules/es.string.trim-start'); require('../../modules/es.string.trim-end'); +require('../../modules/es.string.trim-right'); +require('../../modules/es.string.trim-start'); require('../../modules/es.string.iterator'); require('../../modules/es.string.anchor'); require('../../modules/es.string.big'); diff --git a/packages/core-js/es/string/trim-end.js b/packages/core-js/es/string/trim-end.js index 1ca5a9741de6..f1b7445fb617 100644 --- a/packages/core-js/es/string/trim-end.js +++ b/packages/core-js/es/string/trim-end.js @@ -2,4 +2,4 @@ require('../../modules/es.string.trim-end'); var entryUnbind = require('../../internals/entry-unbind'); -module.exports = entryUnbind('String', 'trimRight'); +module.exports = entryUnbind('String', 'trimEnd'); diff --git a/packages/core-js/es/string/trim-right.js b/packages/core-js/es/string/trim-right.js index 1ca5a9741de6..0ed54cf0483b 100644 --- a/packages/core-js/es/string/trim-right.js +++ b/packages/core-js/es/string/trim-right.js @@ -1,5 +1,5 @@ 'use strict'; -require('../../modules/es.string.trim-end'); +require('../../modules/es.string.trim-right'); var entryUnbind = require('../../internals/entry-unbind'); module.exports = entryUnbind('String', 'trimRight'); diff --git a/packages/core-js/es/string/virtual/index.js b/packages/core-js/es/string/virtual/index.js index 350330eb5f31..8e2301d7bc06 100644 --- a/packages/core-js/es/string/virtual/index.js +++ b/packages/core-js/es/string/virtual/index.js @@ -17,8 +17,9 @@ require('../../../modules/es.string.split'); require('../../../modules/es.string.starts-with'); require('../../../modules/es.string.substr'); require('../../../modules/es.string.trim'); -require('../../../modules/es.string.trim-start'); require('../../../modules/es.string.trim-end'); +require('../../../modules/es.string.trim-right'); +require('../../../modules/es.string.trim-start'); require('../../../modules/es.string.iterator'); require('../../../modules/es.string.anchor'); require('../../../modules/es.string.big'); diff --git a/packages/core-js/es/string/virtual/trim-right.js b/packages/core-js/es/string/virtual/trim-right.js index bd013aa6d745..84402869c8b9 100644 --- a/packages/core-js/es/string/virtual/trim-right.js +++ b/packages/core-js/es/string/virtual/trim-right.js @@ -1,5 +1,5 @@ 'use strict'; -require('../../../modules/es.string.trim-end'); +require('../../../modules/es.string.trim-right'); var getBuiltInPrototypeMethod = require('../../../internals/get-built-in-prototype-method'); module.exports = getBuiltInPrototypeMethod('String', 'trimRight'); diff --git a/packages/core-js/modules/es.string.trim-end.js b/packages/core-js/modules/es.string.trim-end.js index 7d218db49eb8..ce2c75f69f2c 100644 --- a/packages/core-js/modules/es.string.trim-end.js +++ b/packages/core-js/modules/es.string.trim-end.js @@ -1,6 +1,4 @@ 'use strict'; -// TODO: Remove this line from `core-js@4` -require('../modules/es.string.trim-right'); var $ = require('../internals/export'); var trimEnd = require('../internals/string-trim-end'); diff --git a/packages/core-js/proposals/string-left-right-trim.js b/packages/core-js/proposals/string-left-right-trim.js index daef2b692750..73bdbf3f57bb 100644 --- a/packages/core-js/proposals/string-left-right-trim.js +++ b/packages/core-js/proposals/string-left-right-trim.js @@ -1,4 +1,5 @@ 'use strict'; // https://github.com/tc39/proposal-string-left-right-trim -require('../modules/es.string.trim-start'); require('../modules/es.string.trim-end'); +require('../modules/es.string.trim-right'); +require('../modules/es.string.trim-start'); From 5398f22e685f52b22b04c9d0b6dd576e6525b569 Mon Sep 17 00:00:00 2001 From: Denis Pushkarev Date: Wed, 4 Oct 2023 09:24:45 +0700 Subject: [PATCH 087/428] split `es.string.trim-start` -> `es.string.trim-{ left, start }` --- README.md | 2 +- packages/core-js-compat/src/data.mjs | 1 - packages/core-js/es/string/index.js | 1 + packages/core-js/es/string/trim-left.js | 2 +- packages/core-js/es/string/trim-start.js | 2 +- packages/core-js/es/string/virtual/index.js | 1 + packages/core-js/es/string/virtual/trim-left.js | 2 +- packages/core-js/es/string/virtual/trim-start.js | 2 +- packages/core-js/modules/es.string.trim-start.js | 2 -- packages/core-js/proposals/string-left-right-trim.js | 1 + 10 files changed, 8 insertions(+), 8 deletions(-) diff --git a/README.md b/README.md index 90563523652f..421b0fa0a5c2 100644 --- a/README.md +++ b/README.md @@ -927,7 +927,7 @@ Iterator.from({ > - For preventing prototype pollution, in the `pure` version, new `%IteratorPrototype%` methods are not added to the real `%IteratorPrototype%`, they are available only on wrappers - instead of `[].values().map(fn)` use `Iterator.from([]).map(fn)`. #### ECMAScript: String and RegExp[⬆](#index) -The main part of `String` features: modules [`es.string.from-code-point`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.string.from-code-point.js), [`es.string.raw`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.string.raw.js), [`es.string.iterator`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.string.iterator.js), [`es.string.split`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.string.split.js), [`es.string.code-point-at`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.string.code-point-at.js), [`es.string.ends-with`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.string.ends-with.js), [`es.string.includes`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.string.includes.js), [`es.string.repeat`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.string.repeat.js), [`es.string.pad-start`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.string.pad-start.js), [`es.string.pad-end`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.string.pad-end.js), [`es.string.starts-with`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.string.starts-with.js), [`es.string.trim`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.string.trim.js), [`es.string.trim-start`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.string.trim-start.js), [`es.string.trim-end`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.string.trim-end.js), [`es.string.trim-right`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.string.trim-right.js), [`es.string.match-all`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.string.match-all.js), [`es.string.replace-all`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.string.replace-all.js), [`es.string.at`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.string.at.js), [`es.string.is-well-formed`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.string.is-well-formed.js), [`es.string.to-well-formed`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.string.to-well-formed.js). +The main part of `String` features: modules [`es.string.from-code-point`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.string.from-code-point.js), [`es.string.raw`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.string.raw.js), [`es.string.iterator`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.string.iterator.js), [`es.string.split`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.string.split.js), [`es.string.code-point-at`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.string.code-point-at.js), [`es.string.ends-with`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.string.ends-with.js), [`es.string.includes`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.string.includes.js), [`es.string.repeat`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.string.repeat.js), [`es.string.pad-start`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.string.pad-start.js), [`es.string.pad-end`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.string.pad-end.js), [`es.string.starts-with`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.string.starts-with.js), [`es.string.trim`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.string.trim.js), [`es.string.trim-start`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.string.trim-start.js), [`es.string.trim-left`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.string.trim-left.js), [`es.string.trim-end`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.string.trim-end.js), [`es.string.trim-right`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.string.trim-right.js), [`es.string.match-all`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.string.match-all.js), [`es.string.replace-all`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.string.replace-all.js), [`es.string.at`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.string.at.js), [`es.string.is-well-formed`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.string.is-well-formed.js), [`es.string.to-well-formed`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.string.to-well-formed.js). Adding support of well-known [symbols](#ecmascript-symbol) `@@match`, `@@replace`, `@@search` and `@@split` and direct `.exec` calls to related `String` methods, modules [`es.string.match`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.string.match.js), [`es.string.replace`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.string.replace.js), [`es.string.search`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.string.search.js) and [`es.string.split`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.string.split.js). diff --git a/packages/core-js-compat/src/data.mjs b/packages/core-js-compat/src/data.mjs index 92299221d884..c7ba65fea64d 100644 --- a/packages/core-js-compat/src/data.mjs +++ b/packages/core-js-compat/src/data.mjs @@ -2947,7 +2947,6 @@ export const dataWithIgnored = { ...data }; export const ignored = [ // TODO: Clean in `core-js@4` - 'es.string.trim-left', 'es.symbol.constructor', 'es.symbol.for', 'es.symbol.key-for', diff --git a/packages/core-js/es/string/index.js b/packages/core-js/es/string/index.js index c681be053e1f..f0840349a08c 100644 --- a/packages/core-js/es/string/index.js +++ b/packages/core-js/es/string/index.js @@ -22,6 +22,7 @@ require('../../modules/es.string.substr'); require('../../modules/es.string.to-well-formed'); require('../../modules/es.string.trim'); require('../../modules/es.string.trim-end'); +require('../../modules/es.string.trim-left'); require('../../modules/es.string.trim-right'); require('../../modules/es.string.trim-start'); require('../../modules/es.string.iterator'); diff --git a/packages/core-js/es/string/trim-left.js b/packages/core-js/es/string/trim-left.js index ea85dd93acc3..1a1672904fa0 100644 --- a/packages/core-js/es/string/trim-left.js +++ b/packages/core-js/es/string/trim-left.js @@ -1,5 +1,5 @@ 'use strict'; -require('../../modules/es.string.trim-start'); +require('../../modules/es.string.trim-left'); var entryUnbind = require('../../internals/entry-unbind'); module.exports = entryUnbind('String', 'trimLeft'); diff --git a/packages/core-js/es/string/trim-start.js b/packages/core-js/es/string/trim-start.js index ea85dd93acc3..933d8b86a45b 100644 --- a/packages/core-js/es/string/trim-start.js +++ b/packages/core-js/es/string/trim-start.js @@ -2,4 +2,4 @@ require('../../modules/es.string.trim-start'); var entryUnbind = require('../../internals/entry-unbind'); -module.exports = entryUnbind('String', 'trimLeft'); +module.exports = entryUnbind('String', 'trimStart'); diff --git a/packages/core-js/es/string/virtual/index.js b/packages/core-js/es/string/virtual/index.js index 8e2301d7bc06..5711a05c9a96 100644 --- a/packages/core-js/es/string/virtual/index.js +++ b/packages/core-js/es/string/virtual/index.js @@ -18,6 +18,7 @@ require('../../../modules/es.string.starts-with'); require('../../../modules/es.string.substr'); require('../../../modules/es.string.trim'); require('../../../modules/es.string.trim-end'); +require('../../../modules/es.string.trim-left'); require('../../../modules/es.string.trim-right'); require('../../../modules/es.string.trim-start'); require('../../../modules/es.string.iterator'); diff --git a/packages/core-js/es/string/virtual/trim-left.js b/packages/core-js/es/string/virtual/trim-left.js index 3987da84d3fb..2c5f899dabfa 100644 --- a/packages/core-js/es/string/virtual/trim-left.js +++ b/packages/core-js/es/string/virtual/trim-left.js @@ -1,5 +1,5 @@ 'use strict'; -require('../../../modules/es.string.trim-start'); +require('../../../modules/es.string.trim-left'); var getBuiltInPrototypeMethod = require('../../../internals/get-built-in-prototype-method'); module.exports = getBuiltInPrototypeMethod('String', 'trimLeft'); diff --git a/packages/core-js/es/string/virtual/trim-start.js b/packages/core-js/es/string/virtual/trim-start.js index 3987da84d3fb..3813ea18551b 100644 --- a/packages/core-js/es/string/virtual/trim-start.js +++ b/packages/core-js/es/string/virtual/trim-start.js @@ -2,4 +2,4 @@ require('../../../modules/es.string.trim-start'); var getBuiltInPrototypeMethod = require('../../../internals/get-built-in-prototype-method'); -module.exports = getBuiltInPrototypeMethod('String', 'trimLeft'); +module.exports = getBuiltInPrototypeMethod('String', 'trimStart'); diff --git a/packages/core-js/modules/es.string.trim-start.js b/packages/core-js/modules/es.string.trim-start.js index c09ce7aa99dc..ac9aac3406eb 100644 --- a/packages/core-js/modules/es.string.trim-start.js +++ b/packages/core-js/modules/es.string.trim-start.js @@ -1,6 +1,4 @@ 'use strict'; -// TODO: Remove this line from `core-js@4` -require('../modules/es.string.trim-left'); var $ = require('../internals/export'); var trimStart = require('../internals/string-trim-start'); diff --git a/packages/core-js/proposals/string-left-right-trim.js b/packages/core-js/proposals/string-left-right-trim.js index 73bdbf3f57bb..c36d2605d3b7 100644 --- a/packages/core-js/proposals/string-left-right-trim.js +++ b/packages/core-js/proposals/string-left-right-trim.js @@ -1,5 +1,6 @@ 'use strict'; // https://github.com/tc39/proposal-string-left-right-trim require('../modules/es.string.trim-end'); +require('../modules/es.string.trim-left'); require('../modules/es.string.trim-right'); require('../modules/es.string.trim-start'); From d73476d5b3693d42971c5b29a9ce668a8dc405d3 Mon Sep 17 00:00:00 2001 From: Denis Pushkarev Date: Wed, 4 Oct 2023 11:42:47 +0700 Subject: [PATCH 088/428] split `es.symbol` -> `es.{ symbol.{ constructor, for, key-for }, object.get-own-property-symbols, json.stringify }` --- README.md | 2 +- packages/core-js-compat/src/data.mjs | 13 ------------- .../core-js/es/object/get-own-property-symbols.js | 2 +- packages/core-js/es/object/index.js | 2 +- packages/core-js/es/symbol/for.js | 3 ++- packages/core-js/es/symbol/index.js | 12 ++++++++---- packages/core-js/es/symbol/key-for.js | 3 ++- packages/core-js/full/composite-symbol.js | 3 ++- .../core-js/full/symbol/is-registered-symbol.js | 3 ++- .../core-js/full/symbol/is-well-known-symbol.js | 2 +- packages/core-js/modules/es.symbol.js | 7 ------- tests/compat/tests.js | 12 ------------ 12 files changed, 20 insertions(+), 44 deletions(-) delete mode 100644 packages/core-js/modules/es.symbol.js diff --git a/README.md b/README.md index 421b0fa0a5c2..d55eaa43f09c 100644 --- a/README.md +++ b/README.md @@ -1463,7 +1463,7 @@ setTimeout(() => promise.catch(() => { /* empty */ }), 1e3); ``` #### ECMAScript: Symbol[⬆](#index) -Modules [`es.symbol`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.symbol.js), [`es.symbol.async-dispose`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.symbol.async-dispose.js), [`es.symbol.async-iterator`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.symbol.async-iterator.js), [`es.symbol.description`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.symbol.description.js), [`es.symbol.dispose`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.symbol.dispose.js), [`es.symbol.has-instance`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.symbol.has-instance.js), [`es.symbol.is-concat-spreadable`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.symbol.is-concat-spreadable.js), [`es.symbol.iterator`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.symbol.iterator.js), [`es.symbol.match`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.symbol.match.js), [`es.symbol.replace`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.symbol.replace.js), [`es.symbol.search`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.symbol.search.js), [`es.symbol.species`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.symbol.species.js), [`es.symbol.split`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.symbol.split.js), [`es.symbol.to-primitive`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.symbol.to-primitive.js), [`es.symbol.to-string-tag`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.symbol.to-string-tag.js), [`es.symbol.unscopables`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.symbol.unscopables.js), [`es.math.to-string-tag`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.math.to-string-tag.js). +Modules [`es.symbol.constructor`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.symbol.constructor.js), [`es.symbol.for`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.symbol.for.js), [`es.symbol.key-for`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.symbol.key-for.js), [`es.symbol.async-dispose`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.symbol.async-dispose.js), [`es.symbol.async-iterator`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.symbol.async-iterator.js), [`es.symbol.description`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.symbol.description.js), [`es.symbol.dispose`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.symbol.dispose.js), [`es.symbol.has-instance`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.symbol.has-instance.js), [`es.symbol.is-concat-spreadable`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.symbol.is-concat-spreadable.js), [`es.symbol.iterator`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.symbol.iterator.js), [`es.symbol.match`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.symbol.match.js), [`es.symbol.replace`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.symbol.replace.js), [`es.symbol.search`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.symbol.search.js), [`es.symbol.species`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.symbol.species.js), [`es.symbol.split`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.symbol.split.js), [`es.symbol.to-primitive`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.symbol.to-primitive.js), [`es.symbol.to-string-tag`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.symbol.to-string-tag.js), [`es.symbol.unscopables`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.symbol.unscopables.js), [`es.math.to-string-tag`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.math.to-string-tag.js), [`es.object.get-own-property-symbols`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.object.get-own-property-symbols.js). ```ts class Symbol { constructor(description?): symbol; diff --git a/packages/core-js-compat/src/data.mjs b/packages/core-js-compat/src/data.mjs index c7ba65fea64d..1276d7ce89f6 100644 --- a/packages/core-js-compat/src/data.mjs +++ b/packages/core-js-compat/src/data.mjs @@ -1,13 +1,4 @@ export const data = { - // TODO: Remove this module from `core-js@4` since it's split to modules listed below - 'es.symbol': { - chrome: '49', - edge: '15', - firefox: '51', - hermes: '0.1', - rhino: '1.7.15', - safari: '10.0', - }, 'es.symbol.constructor': { chrome: '41', edge: '13', @@ -2947,10 +2938,6 @@ export const dataWithIgnored = { ...data }; export const ignored = [ // TODO: Clean in `core-js@4` - 'es.symbol.constructor', - 'es.symbol.for', - 'es.symbol.key-for', - 'es.object.get-own-property-symbols', 'es.promise.constructor', 'es.promise.all', 'es.promise.catch', diff --git a/packages/core-js/es/object/get-own-property-symbols.js b/packages/core-js/es/object/get-own-property-symbols.js index 5238c7862d2c..a15dd79e9091 100644 --- a/packages/core-js/es/object/get-own-property-symbols.js +++ b/packages/core-js/es/object/get-own-property-symbols.js @@ -1,5 +1,5 @@ 'use strict'; -require('../../modules/es.symbol'); +require('../../modules/es.object.get-own-property-symbols'); var path = require('../../internals/path'); module.exports = path.Object.getOwnPropertySymbols; diff --git a/packages/core-js/es/object/index.js b/packages/core-js/es/object/index.js index 266bb6e074b3..2945b3905d35 100644 --- a/packages/core-js/es/object/index.js +++ b/packages/core-js/es/object/index.js @@ -1,5 +1,4 @@ 'use strict'; -require('../../modules/es.symbol'); require('../../modules/es.object.assign'); require('../../modules/es.object.create'); require('../../modules/es.object.define-property'); @@ -10,6 +9,7 @@ require('../../modules/es.object.from-entries'); require('../../modules/es.object.get-own-property-descriptor'); require('../../modules/es.object.get-own-property-descriptors'); require('../../modules/es.object.get-own-property-names'); +require('../../modules/es.object.get-own-property-symbols'); require('../../modules/es.object.get-prototype-of'); require('../../modules/es.object.group-by'); require('../../modules/es.object.has-own'); diff --git a/packages/core-js/es/symbol/for.js b/packages/core-js/es/symbol/for.js index 9c0a7d093979..c8e60abb7219 100644 --- a/packages/core-js/es/symbol/for.js +++ b/packages/core-js/es/symbol/for.js @@ -1,5 +1,6 @@ 'use strict'; -require('../../modules/es.symbol'); +require('../../modules/es.symbol.constructor'); +require('../../modules/es.symbol.for'); var path = require('../../internals/path'); module.exports = path.Symbol['for']; diff --git a/packages/core-js/es/symbol/index.js b/packages/core-js/es/symbol/index.js index 9e376033cfdd..f291602c0077 100644 --- a/packages/core-js/es/symbol/index.js +++ b/packages/core-js/es/symbol/index.js @@ -1,10 +1,10 @@ 'use strict'; -require('../../modules/es.array.concat'); -require('../../modules/es.object.to-string'); -require('../../modules/es.symbol'); +require('../../modules/es.symbol.constructor'); +require('../../modules/es.symbol.description'); +require('../../modules/es.symbol.for'); +require('../../modules/es.symbol.key-for'); require('../../modules/es.symbol.async-dispose'); require('../../modules/es.symbol.async-iterator'); -require('../../modules/es.symbol.description'); require('../../modules/es.symbol.dispose'); require('../../modules/es.symbol.has-instance'); require('../../modules/es.symbol.is-concat-spreadable'); @@ -18,8 +18,12 @@ require('../../modules/es.symbol.split'); require('../../modules/es.symbol.to-primitive'); require('../../modules/es.symbol.to-string-tag'); require('../../modules/es.symbol.unscopables'); +require('../../modules/es.array.concat'); +require('../../modules/es.json.stringify'); require('../../modules/es.json.to-string-tag'); require('../../modules/es.math.to-string-tag'); +require('../../modules/es.object.get-own-property-symbols'); +require('../../modules/es.object.to-string'); require('../../modules/es.reflect.to-string-tag'); var path = require('../../internals/path'); diff --git a/packages/core-js/es/symbol/key-for.js b/packages/core-js/es/symbol/key-for.js index d04d3d0da322..8903cf75e6be 100644 --- a/packages/core-js/es/symbol/key-for.js +++ b/packages/core-js/es/symbol/key-for.js @@ -1,5 +1,6 @@ 'use strict'; -require('../../modules/es.symbol'); +require('../../modules/es.symbol.constructor'); +require('../../modules/es.symbol.key-for'); var path = require('../../internals/path'); module.exports = path.Symbol.keyFor; diff --git a/packages/core-js/full/composite-symbol.js b/packages/core-js/full/composite-symbol.js index 50b220cf9bfc..8d961a4c6e7b 100644 --- a/packages/core-js/full/composite-symbol.js +++ b/packages/core-js/full/composite-symbol.js @@ -1,5 +1,6 @@ 'use strict'; -require('../modules/es.symbol'); +require('../modules/es.symbol.constructor'); +require('../modules/es.symbol.for'); require('../modules/esnext.composite-symbol'); var path = require('../internals/path'); diff --git a/packages/core-js/full/symbol/is-registered-symbol.js b/packages/core-js/full/symbol/is-registered-symbol.js index 7ef1f022e63b..044985cfe547 100644 --- a/packages/core-js/full/symbol/is-registered-symbol.js +++ b/packages/core-js/full/symbol/is-registered-symbol.js @@ -1,5 +1,6 @@ 'use strict'; -require('../../modules/es.symbol'); +require('../../modules/es.symbol.constructor'); +require('../../modules/es.symbol.key-for'); require('../../modules/esnext.symbol.is-registered-symbol'); var path = require('../../internals/path'); diff --git a/packages/core-js/full/symbol/is-well-known-symbol.js b/packages/core-js/full/symbol/is-well-known-symbol.js index 51062421ce7d..af34dfc5474d 100644 --- a/packages/core-js/full/symbol/is-well-known-symbol.js +++ b/packages/core-js/full/symbol/is-well-known-symbol.js @@ -1,5 +1,5 @@ 'use strict'; -require('../../modules/es.symbol'); +require('../../modules/es.symbol.constructor'); require('../../modules/esnext.symbol.is-well-known-symbol'); var path = require('../../internals/path'); diff --git a/packages/core-js/modules/es.symbol.js b/packages/core-js/modules/es.symbol.js deleted file mode 100644 index aaef3c14ad19..000000000000 --- a/packages/core-js/modules/es.symbol.js +++ /dev/null @@ -1,7 +0,0 @@ -'use strict'; -// TODO: Remove this module from `core-js@4` since it's split to modules listed below -require('../modules/es.symbol.constructor'); -require('../modules/es.symbol.for'); -require('../modules/es.symbol.key-for'); -require('../modules/es.json.stringify'); -require('../modules/es.object.get-own-property-symbols'); diff --git a/tests/compat/tests.js b/tests/compat/tests.js index e9c5e4c88e03..626a9bfef0ae 100644 --- a/tests/compat/tests.js +++ b/tests/compat/tests.js @@ -357,18 +357,6 @@ function iteratorHelperThrowsErrorOnInvalidIterator(methodName, argument) { } GLOBAL.tests = { - // TODO: Remove this module from `core-js@4` since it's split to modules listed below - 'es.symbol': [SYMBOLS_SUPPORT, function () { - var symbol = Symbol('stringify detection'); - return Object.getOwnPropertySymbols('qwe') - && Symbol['for'] - && Symbol.keyFor - && JSON.stringify([symbol]) === '[null]' - && JSON.stringify({ a: symbol }) === '{}' - && JSON.stringify(Object(symbol)) === '{}' - && Symbol.prototype[Symbol.toPrimitive] - && Symbol.prototype[Symbol.toStringTag]; - }], 'es.symbol.constructor': SYMBOLS_SUPPORT, 'es.symbol.description': function () { // eslint-disable-next-line symbol-description -- required for testing From 92ad355a6823723070fa0f4257019e78d5907c0e Mon Sep 17 00:00:00 2001 From: Denis Pushkarev Date: Thu, 5 Oct 2023 03:38:48 +0700 Subject: [PATCH 089/428] split `es.promise` -> `es.promise.{ constructor, catch, resolve, reject, all, race }` --- README.md | 2 +- packages/core-js-compat/src/data.mjs | 73 ++++++++----------- .../async-disposable-stack/constructor.js | 4 - .../actual/async-disposable-stack/index.js | 4 - .../core-js/actual/async-iterator/drop.js | 5 +- .../core-js/actual/async-iterator/every.js | 5 +- .../core-js/actual/async-iterator/filter.js | 6 +- .../core-js/actual/async-iterator/find.js | 5 +- .../core-js/actual/async-iterator/flat-map.js | 6 +- .../core-js/actual/async-iterator/for-each.js | 5 +- .../core-js/actual/async-iterator/from.js | 6 +- .../core-js/actual/async-iterator/index.js | 1 + packages/core-js/actual/async-iterator/map.js | 6 +- .../core-js/actual/async-iterator/reduce.js | 5 +- .../core-js/actual/async-iterator/some.js | 5 +- .../core-js/actual/async-iterator/take.js | 6 +- .../core-js/actual/async-iterator/to-array.js | 5 +- packages/core-js/actual/iterator/from.js | 5 +- packages/core-js/actual/iterator/index.js | 5 +- packages/core-js/actual/iterator/to-async.js | 5 +- .../core-js/actual/promise/with-resolvers.js | 2 - packages/core-js/es/array/from-async.js | 4 +- packages/core-js/es/array/index.js | 4 +- .../es/async-disposable-stack/constructor.js | 5 +- .../es/async-disposable-stack/index.js | 5 +- .../es/async-iterator/async-dispose.js | 5 +- packages/core-js/es/async-iterator/index.js | 5 +- packages/core-js/es/promise/all-settled.js | 5 +- packages/core-js/es/promise/any.js | 5 +- packages/core-js/es/promise/finally.js | 3 +- packages/core-js/es/promise/index.js | 9 ++- packages/core-js/es/promise/try.js | 2 +- packages/core-js/es/promise/with-resolvers.js | 5 +- packages/core-js/full/typed-array/index.js | 1 - packages/core-js/full/typed-array/methods.js | 1 - packages/core-js/modules/es.promise.js | 8 -- tests/compat/tests.js | 16 ++-- 37 files changed, 147 insertions(+), 102 deletions(-) delete mode 100644 packages/core-js/modules/es.promise.js diff --git a/README.md b/README.md index d55eaa43f09c..307c0cdf4ddb 100644 --- a/README.md +++ b/README.md @@ -1276,7 +1276,7 @@ new Date(NaN).toString(); // => 'Invalid Date' ``` #### ECMAScript: Promise[⬆](#index) -Modules [`es.promise`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.promise.js), [`es.promise.all-settled`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.promise.all-settled.js), [`es.promise.any`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.promise.any.js), [`es.promise.finally`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.promise.finally.js), [`es.promise.try`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.promise.try.js) and [`es.promise.with-resolvers`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.promise.with-resolvers.js). +Modules [`es.promise`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.promise.js), [`es.promise.catch`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.promise.catch.js), [`es.promise.finally`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.promise.finally.js), [`es.promise.resolve`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.promise.resolve.js), [`es.promise.reject`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.promise.reject.js), [`es.promise.all`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.promise.all.js), [`es.promise.race`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.promise.race.js), [`es.promise.all-settled`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.promise.all-settled.js), [`es.promise.any`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.promise.any.js), [`es.promise.try`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.promise.try.js) and [`es.promise.with-resolvers`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.promise.with-resolvers.js). ```ts class Promise { constructor(executor: (resolve: Function, reject: Function) => void): Promise; diff --git a/packages/core-js-compat/src/data.mjs b/packages/core-js-compat/src/data.mjs index 1276d7ce89f6..bef737758c7c 100644 --- a/packages/core-js-compat/src/data.mjs +++ b/packages/core-js-compat/src/data.mjs @@ -1335,16 +1335,6 @@ export const data = { rhino: '1.7.13', safari: '7.1', }, - // TODO: Remove this module from `core-js@4` since it's split to modules listed below - 'es.promise': { - // V8 6.6 has a serious bug - chrome: '67', // '51', - // `unhandledrejection` event support was added in Deno@1.24 - deno: '1.24', - firefox: '69', - rhino: '1.7.14', - safari: '11.0', - }, 'es.promise.constructor': { // V8 6.6 has a serious bug chrome: '67', // '51', @@ -1354,30 +1344,6 @@ export const data = { rhino: '1.7.14', safari: '11.0', }, - 'es.promise.all': { - chrome: '67', - // `unhandledrejection` event support was added in Deno@1.24 - deno: '1.24', - firefox: '69', - rhino: '1.7.14', - safari: '11.0', - }, - 'es.promise.all-settled': { - chrome: '76', - // `unhandledrejection` event support was added in Deno@1.24 - deno: '1.24', - firefox: '71', - rhino: '1.7.15', - safari: '13', - }, - 'es.promise.any': { - chrome: '85', - // `unhandledrejection` event support was added in Deno@1.24 - deno: '1.24', - firefox: '79', - rhino: '1.8.0', - safari: '14.0', - }, 'es.promise.catch': { chrome: '67', // `unhandledrejection` event support was added in Deno@1.24 @@ -1398,7 +1364,7 @@ export const data = { rhino: '1.7.14', safari: '13.0.3', // need to clarify the patch release, >13.0.0 && <= 13.0.3 }, - 'es.promise.race': { + 'es.promise.reject': { chrome: '67', // `unhandledrejection` event support was added in Deno@1.24 deno: '1.24', @@ -1406,7 +1372,7 @@ export const data = { rhino: '1.7.14', safari: '11.0', }, - 'es.promise.reject': { + 'es.promise.resolve': { chrome: '67', // `unhandledrejection` event support was added in Deno@1.24 deno: '1.24', @@ -1414,7 +1380,31 @@ export const data = { rhino: '1.7.14', safari: '11.0', }, - 'es.promise.resolve': { + 'es.promise.all': { + chrome: '67', + // `unhandledrejection` event support was added in Deno@1.24 + deno: '1.24', + firefox: '69', + rhino: '1.7.14', + safari: '11.0', + }, + 'es.promise.all-settled': { + chrome: '76', + // `unhandledrejection` event support was added in Deno@1.24 + deno: '1.24', + firefox: '71', + rhino: '1.7.15', + safari: '13', + }, + 'es.promise.any': { + chrome: '85', + // `unhandledrejection` event support was added in Deno@1.24 + deno: '1.24', + firefox: '79', + rhino: '1.8.0', + safari: '14.0', + }, + 'es.promise.race': { chrome: '67', // `unhandledrejection` event support was added in Deno@1.24 deno: '1.24', @@ -2937,15 +2927,10 @@ for (const [old, nw] of renamed) data[old] = data[nw]; export const dataWithIgnored = { ...data }; export const ignored = [ - // TODO: Clean in `core-js@4` - 'es.promise.constructor', - 'es.promise.all', - 'es.promise.catch', - 'es.promise.race', - 'es.promise.reject', - 'es.promise.resolve', + // empty ]; +// eslint-disable-next-line sonarjs/no-empty-collection -- safe for (const ignore of ignored) delete data[ignore]; export const modules = Object.keys(data); diff --git a/packages/core-js/actual/async-disposable-stack/constructor.js b/packages/core-js/actual/async-disposable-stack/constructor.js index f00f99cddacb..997ea373673c 100644 --- a/packages/core-js/actual/async-disposable-stack/constructor.js +++ b/packages/core-js/actual/async-disposable-stack/constructor.js @@ -1,8 +1,4 @@ 'use strict'; var parent = require('../../stable/async-disposable-stack/constructor'); -require('../../modules/esnext.suppressed-error.constructor'); -require('../../modules/esnext.async-disposable-stack.constructor'); -require('../../modules/esnext.async-iterator.async-dispose'); -require('../../modules/esnext.iterator.dispose'); module.exports = parent; diff --git a/packages/core-js/actual/async-disposable-stack/index.js b/packages/core-js/actual/async-disposable-stack/index.js index 2f5723b8bb20..7cf373ece1a8 100644 --- a/packages/core-js/actual/async-disposable-stack/index.js +++ b/packages/core-js/actual/async-disposable-stack/index.js @@ -1,8 +1,4 @@ 'use strict'; var parent = require('../../stable/async-disposable-stack'); -require('../../modules/esnext.suppressed-error.constructor'); -require('../../modules/esnext.async-disposable-stack.constructor'); -require('../../modules/esnext.async-iterator.async-dispose'); -require('../../modules/esnext.iterator.dispose'); module.exports = parent; diff --git a/packages/core-js/actual/async-iterator/drop.js b/packages/core-js/actual/async-iterator/drop.js index e38788f1edf8..c831dd1305fc 100644 --- a/packages/core-js/actual/async-iterator/drop.js +++ b/packages/core-js/actual/async-iterator/drop.js @@ -1,6 +1,9 @@ 'use strict'; require('../../modules/es.object.to-string'); -require('../../modules/es.promise'); +require('../../modules/es.promise.constructor'); +require('../../modules/es.promise.catch'); +require('../../modules/es.promise.finally'); +require('../../modules/es.promise.resolve'); require('../../modules/esnext.async-iterator.constructor'); require('../../modules/esnext.async-iterator.drop'); diff --git a/packages/core-js/actual/async-iterator/every.js b/packages/core-js/actual/async-iterator/every.js index 57ef76e4cfb0..261ba6a52439 100644 --- a/packages/core-js/actual/async-iterator/every.js +++ b/packages/core-js/actual/async-iterator/every.js @@ -1,6 +1,9 @@ 'use strict'; require('../../modules/es.object.to-string'); -require('../../modules/es.promise'); +require('../../modules/es.promise.constructor'); +require('../../modules/es.promise.catch'); +require('../../modules/es.promise.finally'); +require('../../modules/es.promise.resolve'); require('../../modules/esnext.async-iterator.constructor'); require('../../modules/esnext.async-iterator.every'); diff --git a/packages/core-js/actual/async-iterator/filter.js b/packages/core-js/actual/async-iterator/filter.js index 6ca50b188eb4..a80d3ecda26e 100644 --- a/packages/core-js/actual/async-iterator/filter.js +++ b/packages/core-js/actual/async-iterator/filter.js @@ -1,6 +1,10 @@ 'use strict'; require('../../modules/es.object.to-string'); -require('../../modules/es.promise'); +require('../../modules/es.promise.constructor'); +require('../../modules/es.promise.catch'); +require('../../modules/es.promise.finally'); +require('../../modules/es.promise.reject'); +require('../../modules/es.promise.resolve'); require('../../modules/esnext.async-iterator.constructor'); require('../../modules/esnext.async-iterator.filter'); diff --git a/packages/core-js/actual/async-iterator/find.js b/packages/core-js/actual/async-iterator/find.js index ed47baec0cc1..53007ca2c3a2 100644 --- a/packages/core-js/actual/async-iterator/find.js +++ b/packages/core-js/actual/async-iterator/find.js @@ -1,6 +1,9 @@ 'use strict'; require('../../modules/es.object.to-string'); -require('../../modules/es.promise'); +require('../../modules/es.promise.constructor'); +require('../../modules/es.promise.catch'); +require('../../modules/es.promise.finally'); +require('../../modules/es.promise.resolve'); require('../../modules/esnext.async-iterator.constructor'); require('../../modules/esnext.async-iterator.find'); diff --git a/packages/core-js/actual/async-iterator/flat-map.js b/packages/core-js/actual/async-iterator/flat-map.js index 97c2d18b95d3..f15db9fe014d 100644 --- a/packages/core-js/actual/async-iterator/flat-map.js +++ b/packages/core-js/actual/async-iterator/flat-map.js @@ -1,6 +1,10 @@ 'use strict'; require('../../modules/es.object.to-string'); -require('../../modules/es.promise'); +require('../../modules/es.promise.constructor'); +require('../../modules/es.promise.catch'); +require('../../modules/es.promise.finally'); +require('../../modules/es.promise.reject'); +require('../../modules/es.promise.resolve'); require('../../modules/esnext.async-iterator.constructor'); require('../../modules/esnext.async-iterator.flat-map'); diff --git a/packages/core-js/actual/async-iterator/for-each.js b/packages/core-js/actual/async-iterator/for-each.js index 9f2be34e6cfe..3e5b3bfdf830 100644 --- a/packages/core-js/actual/async-iterator/for-each.js +++ b/packages/core-js/actual/async-iterator/for-each.js @@ -1,6 +1,9 @@ 'use strict'; require('../../modules/es.object.to-string'); -require('../../modules/es.promise'); +require('../../modules/es.promise.constructor'); +require('../../modules/es.promise.catch'); +require('../../modules/es.promise.finally'); +require('../../modules/es.promise.resolve'); require('../../modules/esnext.async-iterator.constructor'); require('../../modules/esnext.async-iterator.for-each'); diff --git a/packages/core-js/actual/async-iterator/from.js b/packages/core-js/actual/async-iterator/from.js index e8471c1d9821..1a2e66afeb4e 100644 --- a/packages/core-js/actual/async-iterator/from.js +++ b/packages/core-js/actual/async-iterator/from.js @@ -1,7 +1,11 @@ 'use strict'; require('../../modules/es.array.iterator'); require('../../modules/es.object.to-string'); -require('../../modules/es.promise'); +require('../../modules/es.promise.constructor'); +require('../../modules/es.promise.catch'); +require('../../modules/es.promise.finally'); +require('../../modules/es.promise.reject'); +require('../../modules/es.promise.resolve'); require('../../modules/es.string.iterator'); require('../../modules/esnext.async-iterator.constructor'); require('../../modules/esnext.async-iterator.drop'); diff --git a/packages/core-js/actual/async-iterator/index.js b/packages/core-js/actual/async-iterator/index.js index 4dba54a5e160..4fda8cff95b1 100644 --- a/packages/core-js/actual/async-iterator/index.js +++ b/packages/core-js/actual/async-iterator/index.js @@ -2,6 +2,7 @@ require('../../stable/async-iterator'); require('../../modules/es.array.iterator'); require('../../modules/es.string.iterator'); +require('../../modules/es.promise.reject'); require('../../modules/esnext.async-iterator.constructor'); require('../../modules/esnext.async-iterator.async-dispose'); require('../../modules/esnext.async-iterator.drop'); diff --git a/packages/core-js/actual/async-iterator/map.js b/packages/core-js/actual/async-iterator/map.js index 503762d5f273..3cdc418dfccf 100644 --- a/packages/core-js/actual/async-iterator/map.js +++ b/packages/core-js/actual/async-iterator/map.js @@ -1,6 +1,10 @@ 'use strict'; require('../../modules/es.object.to-string'); -require('../../modules/es.promise'); +require('../../modules/es.promise.constructor'); +require('../../modules/es.promise.catch'); +require('../../modules/es.promise.finally'); +require('../../modules/es.promise.reject'); +require('../../modules/es.promise.resolve'); require('../../modules/esnext.async-iterator.constructor'); require('../../modules/esnext.async-iterator.map'); diff --git a/packages/core-js/actual/async-iterator/reduce.js b/packages/core-js/actual/async-iterator/reduce.js index 07d122c9ba68..fc8baf10c3d6 100644 --- a/packages/core-js/actual/async-iterator/reduce.js +++ b/packages/core-js/actual/async-iterator/reduce.js @@ -1,6 +1,9 @@ 'use strict'; require('../../modules/es.object.to-string'); -require('../../modules/es.promise'); +require('../../modules/es.promise.constructor'); +require('../../modules/es.promise.catch'); +require('../../modules/es.promise.finally'); +require('../../modules/es.promise.resolve'); require('../../modules/esnext.async-iterator.constructor'); require('../../modules/esnext.async-iterator.reduce'); diff --git a/packages/core-js/actual/async-iterator/some.js b/packages/core-js/actual/async-iterator/some.js index cb0612a1f5c4..e781772e1e41 100644 --- a/packages/core-js/actual/async-iterator/some.js +++ b/packages/core-js/actual/async-iterator/some.js @@ -1,6 +1,9 @@ 'use strict'; require('../../modules/es.object.to-string'); -require('../../modules/es.promise'); +require('../../modules/es.promise.constructor'); +require('../../modules/es.promise.catch'); +require('../../modules/es.promise.finally'); +require('../../modules/es.promise.resolve'); require('../../modules/esnext.async-iterator.constructor'); require('../../modules/esnext.async-iterator.some'); diff --git a/packages/core-js/actual/async-iterator/take.js b/packages/core-js/actual/async-iterator/take.js index 318528a21584..14db29e3d473 100644 --- a/packages/core-js/actual/async-iterator/take.js +++ b/packages/core-js/actual/async-iterator/take.js @@ -1,6 +1,10 @@ 'use strict'; require('../../modules/es.object.to-string'); -require('../../modules/es.promise'); +require('../../modules/es.promise.constructor'); +require('../../modules/es.promise.catch'); +require('../../modules/es.promise.finally'); +require('../../modules/es.promise.reject'); +require('../../modules/es.promise.resolve'); require('../../modules/esnext.async-iterator.constructor'); require('../../modules/esnext.async-iterator.take'); diff --git a/packages/core-js/actual/async-iterator/to-array.js b/packages/core-js/actual/async-iterator/to-array.js index 90abd70ef01e..42f60d936736 100644 --- a/packages/core-js/actual/async-iterator/to-array.js +++ b/packages/core-js/actual/async-iterator/to-array.js @@ -1,6 +1,9 @@ 'use strict'; require('../../modules/es.object.to-string'); -require('../../modules/es.promise'); +require('../../modules/es.promise.constructor'); +require('../../modules/es.promise.catch'); +require('../../modules/es.promise.finally'); +require('../../modules/es.promise.resolve'); require('../../modules/esnext.async-iterator.constructor'); require('../../modules/esnext.async-iterator.to-array'); diff --git a/packages/core-js/actual/iterator/from.js b/packages/core-js/actual/iterator/from.js index 4a3513ff959d..36e9b84c5972 100644 --- a/packages/core-js/actual/iterator/from.js +++ b/packages/core-js/actual/iterator/from.js @@ -1,6 +1,9 @@ 'use strict'; var parent = require('../../stable/iterator/from'); -require('../../modules/es.promise'); +require('../../modules/es.promise.constructor'); +require('../../modules/es.promise.catch'); +require('../../modules/es.promise.finally'); +require('../../modules/es.promise.resolve'); require('../../modules/esnext.iterator.constructor'); require('../../modules/esnext.iterator.dispose'); require('../../modules/esnext.iterator.drop'); diff --git a/packages/core-js/actual/iterator/index.js b/packages/core-js/actual/iterator/index.js index 64b823a7866e..0b296df35c7c 100644 --- a/packages/core-js/actual/iterator/index.js +++ b/packages/core-js/actual/iterator/index.js @@ -1,6 +1,9 @@ 'use strict'; var parent = require('../../stable/iterator'); -require('../../modules/es.promise'); +require('../../modules/es.promise.constructor'); +require('../../modules/es.promise.catch'); +require('../../modules/es.promise.finally'); +require('../../modules/es.promise.resolve'); require('../../modules/esnext.iterator.constructor'); require('../../modules/esnext.iterator.concat'); require('../../modules/esnext.iterator.dispose'); diff --git a/packages/core-js/actual/iterator/to-async.js b/packages/core-js/actual/iterator/to-async.js index 84484f35c3c9..b0dcdb51fff7 100644 --- a/packages/core-js/actual/iterator/to-async.js +++ b/packages/core-js/actual/iterator/to-async.js @@ -1,6 +1,9 @@ 'use strict'; require('../../modules/es.object.to-string'); -require('../../modules/es.promise'); +require('../../modules/es.promise.constructor'); +require('../../modules/es.promise.catch'); +require('../../modules/es.promise.finally'); +require('../../modules/es.promise.resolve'); require('../../modules/es.iterator.constructor'); // TODO: Drop from `core-js@4` require('../../modules/esnext.iterator.constructor'); diff --git a/packages/core-js/actual/promise/with-resolvers.js b/packages/core-js/actual/promise/with-resolvers.js index 92bf3c5b376f..f4cee3720d07 100644 --- a/packages/core-js/actual/promise/with-resolvers.js +++ b/packages/core-js/actual/promise/with-resolvers.js @@ -1,6 +1,4 @@ 'use strict'; var parent = require('../../stable/promise/with-resolvers'); -// TODO: Remove from `core-js@4` -require('../../modules/esnext.promise.with-resolvers'); module.exports = parent; diff --git a/packages/core-js/es/array/from-async.js b/packages/core-js/es/array/from-async.js index c1ae03ca06a2..a63dfb7a143d 100644 --- a/packages/core-js/es/array/from-async.js +++ b/packages/core-js/es/array/from-async.js @@ -2,7 +2,9 @@ require('../../modules/es.array.iterator'); require('../../modules/es.array.from-async'); require('../../modules/es.object.to-string'); -require('../../modules/es.promise'); +require('../../modules/es.promise.constructor'); +require('../../modules/es.promise.catch'); +require('../../modules/es.promise.finally'); require('../../modules/es.string.iterator'); var path = require('../../internals/path'); diff --git a/packages/core-js/es/array/index.js b/packages/core-js/es/array/index.js index 654b6b8f58aa..a74b0e3ffdfc 100644 --- a/packages/core-js/es/array/index.js +++ b/packages/core-js/es/array/index.js @@ -40,7 +40,9 @@ require('../../modules/es.array.unshift'); require('../../modules/es.array.with'); require('../../modules/es.object.to-string'); require('../../modules/es.string.iterator'); -require('../../modules/es.promise'); +require('../../modules/es.promise.constructor'); +require('../../modules/es.promise.catch'); +require('../../modules/es.promise.finally'); var path = require('../../internals/path'); module.exports = path.Array; diff --git a/packages/core-js/es/async-disposable-stack/constructor.js b/packages/core-js/es/async-disposable-stack/constructor.js index 3c598eec9579..68171b21cf48 100644 --- a/packages/core-js/es/async-disposable-stack/constructor.js +++ b/packages/core-js/es/async-disposable-stack/constructor.js @@ -2,7 +2,10 @@ require('../../modules/es.error.cause'); require('../../modules/es.error.to-string'); require('../../modules/es.object.to-string'); -require('../../modules/es.promise'); +require('../../modules/es.promise.constructor'); +require('../../modules/es.promise.catch'); +require('../../modules/es.promise.finally'); +require('../../modules/es.promise.resolve'); require('../../modules/es.suppressed-error.constructor'); require('../../modules/es.async-disposable-stack.constructor'); require('../../modules/es.async-iterator.async-dispose'); diff --git a/packages/core-js/es/async-disposable-stack/index.js b/packages/core-js/es/async-disposable-stack/index.js index 3c598eec9579..68171b21cf48 100644 --- a/packages/core-js/es/async-disposable-stack/index.js +++ b/packages/core-js/es/async-disposable-stack/index.js @@ -2,7 +2,10 @@ require('../../modules/es.error.cause'); require('../../modules/es.error.to-string'); require('../../modules/es.object.to-string'); -require('../../modules/es.promise'); +require('../../modules/es.promise.constructor'); +require('../../modules/es.promise.catch'); +require('../../modules/es.promise.finally'); +require('../../modules/es.promise.resolve'); require('../../modules/es.suppressed-error.constructor'); require('../../modules/es.async-disposable-stack.constructor'); require('../../modules/es.async-iterator.async-dispose'); diff --git a/packages/core-js/es/async-iterator/async-dispose.js b/packages/core-js/es/async-iterator/async-dispose.js index c4cc9b3604a4..cbaf7b013b75 100644 --- a/packages/core-js/es/async-iterator/async-dispose.js +++ b/packages/core-js/es/async-iterator/async-dispose.js @@ -1,4 +1,7 @@ 'use strict'; require('../../modules/es.object.to-string'); -require('../../modules/es.promise'); +require('../../modules/es.promise.constructor'); +require('../../modules/es.promise.catch'); +require('../../modules/es.promise.finally'); +require('../../modules/es.promise.resolve'); require('../../modules/es.async-iterator.async-dispose'); diff --git a/packages/core-js/es/async-iterator/index.js b/packages/core-js/es/async-iterator/index.js index c4cc9b3604a4..cbaf7b013b75 100644 --- a/packages/core-js/es/async-iterator/index.js +++ b/packages/core-js/es/async-iterator/index.js @@ -1,4 +1,7 @@ 'use strict'; require('../../modules/es.object.to-string'); -require('../../modules/es.promise'); +require('../../modules/es.promise.constructor'); +require('../../modules/es.promise.catch'); +require('../../modules/es.promise.finally'); +require('../../modules/es.promise.resolve'); require('../../modules/es.async-iterator.async-dispose'); diff --git a/packages/core-js/es/promise/all-settled.js b/packages/core-js/es/promise/all-settled.js index 9f9875e7248d..6a4c3644189b 100644 --- a/packages/core-js/es/promise/all-settled.js +++ b/packages/core-js/es/promise/all-settled.js @@ -1,7 +1,10 @@ 'use strict'; require('../../modules/es.array.iterator'); require('../../modules/es.object.to-string'); -require('../../modules/es.promise'); +require('../../modules/es.promise.constructor'); +require('../../modules/es.promise.catch'); +require('../../modules/es.promise.finally'); +require('../../modules/es.promise.resolve'); require('../../modules/es.promise.all-settled'); require('../../modules/es.string.iterator'); var call = require('../../internals/function-call'); diff --git a/packages/core-js/es/promise/any.js b/packages/core-js/es/promise/any.js index 8eadbeccb00a..c8ef2b00c62b 100644 --- a/packages/core-js/es/promise/any.js +++ b/packages/core-js/es/promise/any.js @@ -2,7 +2,10 @@ require('../../modules/es.aggregate-error.constructor'); require('../../modules/es.array.iterator'); require('../../modules/es.object.to-string'); -require('../../modules/es.promise'); +require('../../modules/es.promise.constructor'); +require('../../modules/es.promise.catch'); +require('../../modules/es.promise.finally'); +require('../../modules/es.promise.resolve'); require('../../modules/es.promise.any'); require('../../modules/es.string.iterator'); var call = require('../../internals/function-call'); diff --git a/packages/core-js/es/promise/finally.js b/packages/core-js/es/promise/finally.js index 6a07c1a27db6..628b30630058 100644 --- a/packages/core-js/es/promise/finally.js +++ b/packages/core-js/es/promise/finally.js @@ -1,6 +1,7 @@ 'use strict'; require('../../modules/es.object.to-string'); -require('../../modules/es.promise'); +require('../../modules/es.promise.constructor'); +require('../../modules/es.promise.catch'); require('../../modules/es.promise.finally'); var entryUnbind = require('../../internals/entry-unbind'); diff --git a/packages/core-js/es/promise/index.js b/packages/core-js/es/promise/index.js index fa566e647b5c..dcb44add0844 100644 --- a/packages/core-js/es/promise/index.js +++ b/packages/core-js/es/promise/index.js @@ -2,12 +2,17 @@ require('../../modules/es.aggregate-error.constructor'); require('../../modules/es.array.iterator'); require('../../modules/es.object.to-string'); -require('../../modules/es.promise'); +require('../../modules/es.promise.constructor'); +require('../../modules/es.promise.catch'); +require('../../modules/es.promise.finally'); +require('../../modules/es.promise.reject'); +require('../../modules/es.promise.resolve'); +require('../../modules/es.promise.all'); require('../../modules/es.promise.all-settled'); require('../../modules/es.promise.any'); +require('../../modules/es.promise.race'); require('../../modules/es.promise.try'); require('../../modules/es.promise.with-resolvers'); -require('../../modules/es.promise.finally'); require('../../modules/es.string.iterator'); var path = require('../../internals/path'); diff --git a/packages/core-js/es/promise/try.js b/packages/core-js/es/promise/try.js index c3e995996baf..253a3f0f1950 100644 --- a/packages/core-js/es/promise/try.js +++ b/packages/core-js/es/promise/try.js @@ -1,6 +1,6 @@ 'use strict'; require('../../modules/es.object.to-string'); -require('../../modules/es.promise'); +require('../../modules/es.promise.constructor'); require('../../modules/es.promise.try'); var apply = require('../../internals/function-apply'); var isCallable = require('../../internals/is-callable'); diff --git a/packages/core-js/es/promise/with-resolvers.js b/packages/core-js/es/promise/with-resolvers.js index 0e2f6a0e3bc3..db121cdb338a 100644 --- a/packages/core-js/es/promise/with-resolvers.js +++ b/packages/core-js/es/promise/with-resolvers.js @@ -1,5 +1,8 @@ 'use strict'; -require('../../modules/es.promise'); +require('../../modules/es.object.to-string'); +require('../../modules/es.promise.constructor'); +require('../../modules/es.promise.catch'); +require('../../modules/es.promise.finally'); require('../../modules/es.promise.with-resolvers'); var call = require('../../internals/function-call'); var isCallable = require('../../internals/is-callable'); diff --git a/packages/core-js/full/typed-array/index.js b/packages/core-js/full/typed-array/index.js index 8b47c47a3665..297f3e9d89a8 100644 --- a/packages/core-js/full/typed-array/index.js +++ b/packages/core-js/full/typed-array/index.js @@ -1,7 +1,6 @@ 'use strict'; var parent = require('../../actual/typed-array'); require('../../modules/es.map.constructor'); -require('../../modules/es.promise'); require('../../modules/esnext.typed-array.filter-reject'); require('../../modules/esnext.typed-array.unique-by'); diff --git a/packages/core-js/full/typed-array/methods.js b/packages/core-js/full/typed-array/methods.js index e3b51769beda..a1fe3eec98ee 100644 --- a/packages/core-js/full/typed-array/methods.js +++ b/packages/core-js/full/typed-array/methods.js @@ -1,7 +1,6 @@ 'use strict'; var parent = require('../../actual/typed-array/methods'); require('../../modules/es.map.constructor'); -require('../../modules/es.promise'); require('../../modules/esnext.typed-array.filter-reject'); require('../../modules/esnext.typed-array.unique-by'); diff --git a/packages/core-js/modules/es.promise.js b/packages/core-js/modules/es.promise.js deleted file mode 100644 index 8606778666ef..000000000000 --- a/packages/core-js/modules/es.promise.js +++ /dev/null @@ -1,8 +0,0 @@ -'use strict'; -// TODO: Remove this module from `core-js@4` since it's split to modules listed below -require('../modules/es.promise.constructor'); -require('../modules/es.promise.all'); -require('../modules/es.promise.catch'); -require('../modules/es.promise.race'); -require('../modules/es.promise.reject'); -require('../modules/es.promise.resolve'); diff --git a/tests/compat/tests.js b/tests/compat/tests.js index 626a9bfef0ae..952766a19d0a 100644 --- a/tests/compat/tests.js +++ b/tests/compat/tests.js @@ -1116,9 +1116,14 @@ GLOBAL.tests = { && parseInt(WHITESPACES + '0x16') === 22; } }, - // TODO: Remove this module from `core-js@4` since it's split to modules listed below - 'es.promise': PROMISES_SUPPORT, 'es.promise.constructor': PROMISES_SUPPORT, + 'es.promise.catch': PROMISES_SUPPORT, + 'es.promise.finally': [PROMISES_SUPPORT, function () { + // eslint-disable-next-line unicorn/no-thenable -- required for testing + return Promise.prototype['finally'].call({ then: function () { return this; } }, function () { /* empty */ }); + }], + 'es.promise.reject': PROMISES_SUPPORT, + 'es.promise.resolve': PROMISES_SUPPORT, 'es.promise.all': [PROMISES_SUPPORT, SAFE_ITERATION_CLOSING_SUPPORT, PROMISE_STATICS_ITERATION, function () { return Promise.all; }], @@ -1128,16 +1133,9 @@ GLOBAL.tests = { 'es.promise.any': [PROMISES_SUPPORT, SAFE_ITERATION_CLOSING_SUPPORT, PROMISE_STATICS_ITERATION, function () { return Promise.any; }], - 'es.promise.catch': PROMISES_SUPPORT, - 'es.promise.finally': [PROMISES_SUPPORT, function () { - // eslint-disable-next-line unicorn/no-thenable -- required for testing - return Promise.prototype['finally'].call({ then: function () { return this; } }, function () { /* empty */ }); - }], 'es.promise.race': [PROMISES_SUPPORT, SAFE_ITERATION_CLOSING_SUPPORT, PROMISE_STATICS_ITERATION, function () { return Promise.race; }], - 'es.promise.reject': PROMISES_SUPPORT, - 'es.promise.resolve': PROMISES_SUPPORT, 'es.promise.try': [PROMISES_SUPPORT, function () { var ACCEPT_ARGUMENTS = false; Promise['try'](function (argument) { From acf29c193bb40560e7c843c302e850a9f960368c Mon Sep 17 00:00:00 2001 From: Denis Pushkarev Date: Thu, 5 Oct 2023 05:44:35 +0700 Subject: [PATCH 090/428] drop obsolete compat data keys --- packages/core-js-compat/shared.d.ts | 8 +------- packages/core-js-compat/targets-parser.js | 1 - scripts/build-compat/data.mjs | 8 -------- 3 files changed, 1 insertion(+), 16 deletions(-) diff --git a/packages/core-js-compat/shared.d.ts b/packages/core-js-compat/shared.d.ts index e6c349804de0..14a638424715 100644 --- a/packages/core-js-compat/shared.d.ts +++ b/packages/core-js-compat/shared.d.ts @@ -21,12 +21,6 @@ export type Target = | 'react-native' | 'rhino' | 'safari' - | 'samsung' - /** `quest` alias */ - | 'oculus' - /** `react-native` alias */ - | 'react' - /** @deprecated use `opera-android` instead */ - | 'opera_mobile'; + | 'samsung'; export type TargetVersion = string; diff --git a/packages/core-js-compat/targets-parser.js b/packages/core-js-compat/targets-parser.js index 881e2c1535a5..b397f2fa76b8 100644 --- a/packages/core-js-compat/targets-parser.js +++ b/packages/core-js-compat/targets-parser.js @@ -10,7 +10,6 @@ const aliases = new Map([ ['ios_saf', 'ios'], ['oculus', 'quest'], ['op_mob', 'opera-android'], - // TODO: Remove from `core-js@4` ['opera_mobile', 'opera-android'], ['react', 'react-native'], ['reactnative', 'react-native'], diff --git a/scripts/build-compat/data.mjs b/scripts/build-compat/data.mjs index 871407c82a47..3ae7ac5632fd 100644 --- a/scripts/build-compat/data.mjs +++ b/scripts/build-compat/data.mjs @@ -53,15 +53,7 @@ for (const scope of [data, external]) { } else { map('ChromeAndroidToOperaAndroid'); } - // TODO: Remove from `core-js@4` - if (has(module, 'opera-android')) { - module.opera_mobile = module['opera-android']; - } map('ChromeAndroidToQuest'); - // TODO: Remove from `core-js@4` - if (has(module, 'quest')) { - module.oculus = module.quest; - } map('ChromeAndroidToSamsung'); if (/^(?:es|esnext)\./.test(key)) { map('SafariToBun'); From c537e174ef6998d7b838ea4359831e4bbcd7fc91 Mon Sep 17 00:00:00 2001 From: Denis Pushkarev Date: Thu, 5 Oct 2023 06:31:55 +0700 Subject: [PATCH 091/428] drop `URL` as ES proposal (dead) --- packages/core-js/proposals/url.js | 3 --- packages/core-js/stage/0.js | 1 - tests/entries/content.mjs | 10 +++++----- tests/entries/unit.mjs | 1 - 4 files changed, 5 insertions(+), 10 deletions(-) delete mode 100644 packages/core-js/proposals/url.js diff --git a/packages/core-js/proposals/url.js b/packages/core-js/proposals/url.js deleted file mode 100644 index 2f12fdeeb019..000000000000 --- a/packages/core-js/proposals/url.js +++ /dev/null @@ -1,3 +0,0 @@ -'use strict'; -// https://github.com/jasnell/proposal-url -require('../web/url'); diff --git a/packages/core-js/stage/0.js b/packages/core-js/stage/0.js index 903abeef5fbf..4c4e7f04f9cd 100644 --- a/packages/core-js/stage/0.js +++ b/packages/core-js/stage/0.js @@ -3,7 +3,6 @@ var parent = require('./1'); require('../proposals/function-demethodize'); require('../proposals/function-is-callable-is-constructor'); -require('../proposals/url'); // TODO: Obsolete versions, remove from `core-js@4`: require('../proposals/array-filtering'); diff --git a/tests/entries/content.mjs b/tests/entries/content.mjs index 7a2276de6224..f43d36b19605 100644 --- a/tests/entries/content.mjs +++ b/tests/entries/content.mjs @@ -127,11 +127,11 @@ superset('core-js/full/url', /^web\.url(?:\.|$)/); superset('core-js/full/url-search-params', /^web\.url-search-params/); superset('core-js/full/weak-map', /^(?:es|esnext)\.weak-map/); superset('core-js/full/weak-set', /^(?:es|esnext)\.weak-set/); -subset('core-js/proposals', /^(?:es\.|esnext\.|web\.url)/); -subset('core-js/stage', /^(?:es\.|esnext\.|web\.url)/); -subset('core-js/stage/pre', /^(?:es\.|esnext\.|web\.url)/); -subset('core-js/stage/0', /^(?:es\.|esnext\.|web\.url)/); -subset('core-js/stage/1', /^(?:es\.|esnext\.|web\.url)/); +subset('core-js/proposals', /^(?:es\.|esnext\.)/); +subset('core-js/stage', /^(?:es\.|esnext\.)/); +subset('core-js/stage/pre', /^(?:es\.|esnext\.)/); +subset('core-js/stage/0', /^(?:es\.|esnext\.)/); +subset('core-js/stage/1', /^(?:es\.|esnext\.)/); subset('core-js/stage/2', /^(?:es\.|esnext\.)/); subset('core-js/stage/3', /^(?:es\.|esnext\.)/); subset('core-js/stage/4', /^(?:es\.|esnext\.)/); diff --git a/tests/entries/unit.mjs b/tests/entries/unit.mjs index a062f30e0b44..3efade141bd3 100644 --- a/tests/entries/unit.mjs +++ b/tests/entries/unit.mjs @@ -915,7 +915,6 @@ for (PATH of ['core-js-pure', 'core-js']) { load('proposals/string-replace-all-stage-4'); load('proposals/symbol-description'); load('proposals/symbol-predicates-v2'); - load('proposals/url'); load('proposals/using-statement'); load('proposals/well-formed-stringify'); load('proposals/well-formed-unicode-strings'); From a46d9be3959b924135b68062d4cf7e8d25e05964 Mon Sep 17 00:00:00 2001 From: Denis Pushkarev Date: Thu, 5 Oct 2023 07:59:59 +0700 Subject: [PATCH 092/428] actualize proposals entries --- README.md | 16 +++---- packages/core-js-compat/src/data.mjs | 6 --- packages/core-js/full/math/clamp.js | 6 --- packages/core-js/full/math/index.js | 2 - packages/core-js/full/symbol/index.js | 2 - packages/core-js/full/symbol/matcher.js | 5 --- packages/core-js/internals/math-clamp.js | 9 ---- packages/core-js/modules/esnext.math.clamp.js | 10 ----- .../core-js/modules/esnext.number.clamp.js | 7 ++- .../core-js/modules/esnext.symbol.matcher.js | 6 --- .../proposals/array-filtering-stage-1.js | 4 -- .../proposals/array-from-async-stage-2.js | 3 -- ...array-grouping-v2.js => array-grouping.js} | 0 .../async-explicit-resource-management.js | 7 --- ...opy-stage-4.js => change-array-by-copy.js} | 0 ...r-metadata-v2.js => decorator-metadata.js} | 0 packages/core-js/proposals/decorators.js | 4 -- packages/core-js/proposals/global-this.js | 3 -- packages/core-js/proposals/index.js | 3 -- .../proposals/iterator-helpers-stage-3.js | 29 ------------ ...lpers-stage-3-2.js => iterator-helpers.js} | 0 .../{map-upsert-stage-2.js => map-emplace.js} | 0 .../{map-upsert-v4.js => map-upsert.js} | 0 packages/core-js/proposals/math-clamp-v2.js | 3 -- packages/core-js/proposals/math-clamp.js | 2 +- packages/core-js/proposals/math-extensions.js | 1 - .../core-js/proposals/pattern-matching-v2.js | 3 -- .../core-js/proposals/pattern-matching.js | 2 +- .../{set-methods-v2.js => set-methods.js} | 0 .../proposals/string-replace-all-stage-4.js | 3 -- ...-predicates-v2.js => symbol-predicates.js} | 0 packages/core-js/proposals/using-statement.js | 5 --- packages/core-js/stage/0.js | 6 +-- packages/core-js/stage/1.js | 13 ++---- packages/core-js/stage/2.7.js | 4 +- packages/core-js/stage/2.js | 13 ++---- packages/core-js/stage/3.js | 10 ++--- packages/core-js/stage/4.js | 31 +------------ packages/core-js/stage/index.js | 4 -- packages/core-js/stage/pre.js | 4 +- tests/compat-data/tests-coverage.mjs | 2 - tests/entries/content.mjs | 2 - tests/entries/unit.mjs | 45 +++++++------------ tests/unit-global/esnext.math.clamp.js | 29 ------------ .../esnext.symbol.is-well-known-symbol.js | 4 +- tests/unit-global/esnext.symbol.matcher.js | 13 ------ tests/unit-pure/esnext.math.clamp.js | 27 ----------- .../esnext.symbol.is-well-known-symbol.js | 4 +- tests/unit-pure/esnext.symbol.matcher.js | 6 --- 49 files changed, 48 insertions(+), 310 deletions(-) delete mode 100644 packages/core-js/full/math/clamp.js delete mode 100644 packages/core-js/full/symbol/matcher.js delete mode 100644 packages/core-js/internals/math-clamp.js delete mode 100644 packages/core-js/modules/esnext.math.clamp.js delete mode 100644 packages/core-js/modules/esnext.symbol.matcher.js delete mode 100644 packages/core-js/proposals/array-filtering-stage-1.js delete mode 100644 packages/core-js/proposals/array-from-async-stage-2.js rename packages/core-js/proposals/{array-grouping-v2.js => array-grouping.js} (100%) delete mode 100644 packages/core-js/proposals/async-explicit-resource-management.js rename packages/core-js/proposals/{change-array-by-copy-stage-4.js => change-array-by-copy.js} (100%) rename packages/core-js/proposals/{decorator-metadata-v2.js => decorator-metadata.js} (100%) delete mode 100644 packages/core-js/proposals/decorators.js delete mode 100644 packages/core-js/proposals/index.js delete mode 100644 packages/core-js/proposals/iterator-helpers-stage-3.js rename packages/core-js/proposals/{iterator-helpers-stage-3-2.js => iterator-helpers.js} (100%) rename packages/core-js/proposals/{map-upsert-stage-2.js => map-emplace.js} (100%) rename packages/core-js/proposals/{map-upsert-v4.js => map-upsert.js} (100%) delete mode 100644 packages/core-js/proposals/math-clamp-v2.js delete mode 100644 packages/core-js/proposals/pattern-matching-v2.js rename packages/core-js/proposals/{set-methods-v2.js => set-methods.js} (100%) delete mode 100644 packages/core-js/proposals/string-replace-all-stage-4.js rename packages/core-js/proposals/{symbol-predicates-v2.js => symbol-predicates.js} (100%) delete mode 100644 packages/core-js/proposals/using-statement.js delete mode 100644 packages/core-js/stage/index.js delete mode 100644 tests/unit-global/esnext.math.clamp.js delete mode 100644 tests/unit-global/esnext.symbol.matcher.js delete mode 100644 tests/unit-pure/esnext.math.clamp.js delete mode 100644 tests/unit-pure/esnext.symbol.matcher.js diff --git a/README.md b/README.md index 307c0cdf4ddb..c42d708fa71a 100644 --- a/README.md +++ b/README.md @@ -2266,7 +2266,7 @@ class %TypedArray% { ``` [*CommonJS entry points:*](#commonjs-api) ``` -core-js/proposals/change-array-by-copy-stage-4 +core-js/proposals/change-array-by-copy core-js(-pure)/es|stable|actual|full/array(/virtual)/to-reversed core-js(-pure)/es|stable|actual|full/array(/virtual)/to-sorted core-js(-pure)/es|stable|actual|full/array(/virtual)/to-spliced @@ -2298,7 +2298,7 @@ class Array { ``` [*CommonJS entry points:*](#commonjs-api) ``` -core-js/proposals/array-from-async-stage-2 +core-js/proposals/array-from-async ``` ##### [`ArrayBuffer.prototype.transfer` and friends](https://github.com/tc39/proposal-arraybuffer-transfer)[⬆](#index) @@ -2433,7 +2433,7 @@ class Iterator { ``` [*CommonJS entry points:*](#commonjs-api) ``` -core-js/proposals/iterator-helpers-stage-3-2 +core-js/proposals/iterator-helpers ``` ##### [`Object.values` / `Object.entries`](https://github.com/tc39/proposal-object-values-entries)[⬆](#index) @@ -2507,7 +2507,7 @@ class String { ``` [*CommonJS entry points:*](#commonjs-api) ``` -core-js/proposals/string-replace-all-stage-4 +core-js/proposals/string-replace-all ``` ##### [`String.prototype.trimStart` / `String.prototype.trimEnd`](https://github.com/tc39/proposal-string-left-right-trim)[⬆](#index) ```ts @@ -2674,7 +2674,7 @@ class Set { ``` [*CommonJS entry points:*](#commonjs-api) ``` -core-js/proposals/set-methods-v2 +core-js/proposals/set-methods ``` ##### [`Math.sumPrecise`](https://github.com/tc39/proposal-math-sum) @@ -2804,7 +2804,7 @@ class Function { ``` [*CommonJS entry points:*](#commonjs-api) ``` -core-js/proposals/decorator-metadata-v2 +core-js/proposals/decorator-metadata core-js(-pure)/actual|full/symbol/metadata core-js(-pure)/actual|full/function/metadata ``` @@ -3072,7 +3072,7 @@ class Symbol { ``` [*CommonJS entry points:*](#commonjs-api) ``` -core-js/proposals/symbol-predicates-v2 +core-js/proposals/symbol-predicates core-js(-pure)/full/symbol/is-registered-symbol core-js(-pure)/full/symbol/is-well-known-symbol ``` @@ -3284,7 +3284,7 @@ class %TypedArray% { ``` [*CommonJS entry points:*](#commonjs-api) ``` -core-js/proposals/array-filtering-stage-1 +core-js/proposals/array-filtering core-js(-pure)/full/array(/virtual)/filter-reject core-js/full/typed-array/filter-reject ``` diff --git a/packages/core-js-compat/src/data.mjs b/packages/core-js-compat/src/data.mjs index bef737758c7c..df77870d6d61 100644 --- a/packages/core-js-compat/src/data.mjs +++ b/packages/core-js-compat/src/data.mjs @@ -2516,9 +2516,6 @@ export const data = { }, 'esnext.map.update': { }, - // TODO: Remove from `core-js@4` - 'esnext.math.clamp': { - }, 'esnext.math.deg-per-rad': { }, 'esnext.math.degrees': { @@ -2620,9 +2617,6 @@ export const data = { // We should patch it for newly added well-known symbols. If it's not required, this module just will not be injected 'esnext.symbol.is-well-known-symbol': { }, - // TODO: Remove from `core-js@4` - 'esnext.symbol.matcher': { - }, 'esnext.symbol.metadata': { deno: '1.40.4', }, diff --git a/packages/core-js/full/math/clamp.js b/packages/core-js/full/math/clamp.js deleted file mode 100644 index 3c958032c2ec..000000000000 --- a/packages/core-js/full/math/clamp.js +++ /dev/null @@ -1,6 +0,0 @@ -'use strict'; -// TODO: Remove from `core-js@4` -require('../../modules/esnext.math.clamp'); -var path = require('../../internals/path'); - -module.exports = path.Math.clamp; diff --git a/packages/core-js/full/math/index.js b/packages/core-js/full/math/index.js index b3d9fc020c7a..c4933966c46e 100644 --- a/packages/core-js/full/math/index.js +++ b/packages/core-js/full/math/index.js @@ -1,7 +1,5 @@ 'use strict'; var parent = require('../../actual/math'); -// TODO: Remove from `core-js@4` -require('../../modules/esnext.math.clamp'); require('../../modules/esnext.math.deg-per-rad'); require('../../modules/esnext.math.degrees'); require('../../modules/esnext.math.fscale'); diff --git a/packages/core-js/full/symbol/index.js b/packages/core-js/full/symbol/index.js index 3f73ecf475f7..50465eebb3ae 100644 --- a/packages/core-js/full/symbol/index.js +++ b/packages/core-js/full/symbol/index.js @@ -4,7 +4,5 @@ require('../../modules/esnext.symbol.is-registered-symbol'); require('../../modules/esnext.symbol.is-well-known-symbol'); require('../../modules/esnext.symbol.custom-matcher'); require('../../modules/esnext.symbol.observable'); -// TODO: Remove from `core-js@4` -require('../../modules/esnext.symbol.matcher'); module.exports = parent; diff --git a/packages/core-js/full/symbol/matcher.js b/packages/core-js/full/symbol/matcher.js deleted file mode 100644 index 8ae8bd1b5491..000000000000 --- a/packages/core-js/full/symbol/matcher.js +++ /dev/null @@ -1,5 +0,0 @@ -'use strict'; -require('../../modules/esnext.symbol.matcher'); -var WrappedWellKnownSymbolModule = require('../../internals/well-known-symbol-wrapped'); - -module.exports = WrappedWellKnownSymbolModule.f('matcher'); diff --git a/packages/core-js/internals/math-clamp.js b/packages/core-js/internals/math-clamp.js deleted file mode 100644 index 62a7e58f0dd5..000000000000 --- a/packages/core-js/internals/math-clamp.js +++ /dev/null @@ -1,9 +0,0 @@ -'use strict'; -var aNumber = require('../internals/a-number'); - -var $min = Math.min; -var $max = Math.max; - -module.exports = function clamp(value, min, max) { - return $min($max(aNumber(value), aNumber(min)), aNumber(max)); -}; diff --git a/packages/core-js/modules/esnext.math.clamp.js b/packages/core-js/modules/esnext.math.clamp.js deleted file mode 100644 index af0360c00e49..000000000000 --- a/packages/core-js/modules/esnext.math.clamp.js +++ /dev/null @@ -1,10 +0,0 @@ -'use strict'; -var $ = require('../internals/export'); -var clamp = require('../internals/math-clamp'); - -// TODO: Remove from `core-js@4` -// `Math.clamp` method -// https://github.com/tc39/proposal-math-clamp -$({ target: 'Math', stat: true, forced: true }, { - clamp: clamp -}); diff --git a/packages/core-js/modules/esnext.number.clamp.js b/packages/core-js/modules/esnext.number.clamp.js index 9ed4168c8389..62192ab91af9 100644 --- a/packages/core-js/modules/esnext.number.clamp.js +++ b/packages/core-js/modules/esnext.number.clamp.js @@ -1,12 +1,15 @@ 'use strict'; var $ = require('../internals/export'); -var $clamp = require('../internals/math-clamp'); +var aNumber = require('../internals/a-number'); var thisNumberValue = require('../internals/this-number-value'); +var $min = Math.min; +var $max = Math.max; + // `Number.prototype.clamp` method // https://github.com/tc39/proposal-math-clamp $({ target: 'Number', proto: true, forced: true }, { clamp: function clamp(min, max) { - return $clamp(thisNumberValue(this), min, max); + return $min($max(thisNumberValue(this), aNumber(min)), aNumber(max)); } }); diff --git a/packages/core-js/modules/esnext.symbol.matcher.js b/packages/core-js/modules/esnext.symbol.matcher.js deleted file mode 100644 index ec224aedf942..000000000000 --- a/packages/core-js/modules/esnext.symbol.matcher.js +++ /dev/null @@ -1,6 +0,0 @@ -'use strict'; -var defineWellKnownSymbol = require('../internals/well-known-symbol-define'); - -// `Symbol.matcher` well-known symbol -// https://github.com/tc39/proposal-pattern-matching -defineWellKnownSymbol('matcher'); diff --git a/packages/core-js/proposals/array-filtering-stage-1.js b/packages/core-js/proposals/array-filtering-stage-1.js deleted file mode 100644 index de07b81b6104..000000000000 --- a/packages/core-js/proposals/array-filtering-stage-1.js +++ /dev/null @@ -1,4 +0,0 @@ -'use strict'; -// https://github.com/tc39/proposal-array-filtering -require('../modules/esnext.array.filter-reject'); -require('../modules/esnext.typed-array.filter-reject'); diff --git a/packages/core-js/proposals/array-from-async-stage-2.js b/packages/core-js/proposals/array-from-async-stage-2.js deleted file mode 100644 index 70264eed7bdd..000000000000 --- a/packages/core-js/proposals/array-from-async-stage-2.js +++ /dev/null @@ -1,3 +0,0 @@ -'use strict'; -// https://github.com/tc39/proposal-array-from-async -require('../modules/esnext.array.from-async'); diff --git a/packages/core-js/proposals/array-grouping-v2.js b/packages/core-js/proposals/array-grouping.js similarity index 100% rename from packages/core-js/proposals/array-grouping-v2.js rename to packages/core-js/proposals/array-grouping.js diff --git a/packages/core-js/proposals/async-explicit-resource-management.js b/packages/core-js/proposals/async-explicit-resource-management.js deleted file mode 100644 index 3d2a651c41f2..000000000000 --- a/packages/core-js/proposals/async-explicit-resource-management.js +++ /dev/null @@ -1,7 +0,0 @@ -'use strict'; -// TODO: Remove from `core-js@4` -// https://github.com/tc39/proposal-async-explicit-resource-management -require('../modules/esnext.suppressed-error.constructor'); -require('../modules/esnext.async-disposable-stack.constructor'); -require('../modules/esnext.async-iterator.async-dispose'); -require('../modules/esnext.symbol.async-dispose'); diff --git a/packages/core-js/proposals/change-array-by-copy-stage-4.js b/packages/core-js/proposals/change-array-by-copy.js similarity index 100% rename from packages/core-js/proposals/change-array-by-copy-stage-4.js rename to packages/core-js/proposals/change-array-by-copy.js diff --git a/packages/core-js/proposals/decorator-metadata-v2.js b/packages/core-js/proposals/decorator-metadata.js similarity index 100% rename from packages/core-js/proposals/decorator-metadata-v2.js rename to packages/core-js/proposals/decorator-metadata.js diff --git a/packages/core-js/proposals/decorators.js b/packages/core-js/proposals/decorators.js deleted file mode 100644 index 9e52ad226cff..000000000000 --- a/packages/core-js/proposals/decorators.js +++ /dev/null @@ -1,4 +0,0 @@ -'use strict'; -// TODO: Remove from `core-js@4` -// https://github.com/tc39/proposal-decorators -require('../modules/esnext.symbol.metadata'); diff --git a/packages/core-js/proposals/global-this.js b/packages/core-js/proposals/global-this.js index 86687fe6c46a..42dca3c019b4 100644 --- a/packages/core-js/proposals/global-this.js +++ b/packages/core-js/proposals/global-this.js @@ -1,6 +1,3 @@ 'use strict'; // https://github.com/tc39/proposal-global require('../modules/es.global-this'); -var globalThis = require('../internals/global-this'); - -module.exports = globalThis; diff --git a/packages/core-js/proposals/index.js b/packages/core-js/proposals/index.js deleted file mode 100644 index c470daeefdf2..000000000000 --- a/packages/core-js/proposals/index.js +++ /dev/null @@ -1,3 +0,0 @@ -'use strict'; -// TODO: Remove this entry from `core-js@4` -require('../stage'); diff --git a/packages/core-js/proposals/iterator-helpers-stage-3.js b/packages/core-js/proposals/iterator-helpers-stage-3.js deleted file mode 100644 index dff419e3fc03..000000000000 --- a/packages/core-js/proposals/iterator-helpers-stage-3.js +++ /dev/null @@ -1,29 +0,0 @@ -'use strict'; -// https://github.com/tc39/proposal-iterator-helpers -require('../modules/esnext.async-iterator.constructor'); -require('../modules/esnext.async-iterator.drop'); -require('../modules/esnext.async-iterator.every'); -require('../modules/esnext.async-iterator.filter'); -require('../modules/esnext.async-iterator.find'); -require('../modules/esnext.async-iterator.flat-map'); -require('../modules/esnext.async-iterator.for-each'); -require('../modules/esnext.async-iterator.from'); -require('../modules/esnext.async-iterator.map'); -require('../modules/esnext.async-iterator.reduce'); -require('../modules/esnext.async-iterator.some'); -require('../modules/esnext.async-iterator.take'); -require('../modules/esnext.async-iterator.to-array'); -require('../modules/esnext.iterator.constructor'); -require('../modules/esnext.iterator.drop'); -require('../modules/esnext.iterator.every'); -require('../modules/esnext.iterator.filter'); -require('../modules/esnext.iterator.find'); -require('../modules/esnext.iterator.flat-map'); -require('../modules/esnext.iterator.for-each'); -require('../modules/esnext.iterator.from'); -require('../modules/esnext.iterator.map'); -require('../modules/esnext.iterator.reduce'); -require('../modules/esnext.iterator.some'); -require('../modules/esnext.iterator.take'); -require('../modules/esnext.iterator.to-array'); -require('../modules/esnext.iterator.to-async'); diff --git a/packages/core-js/proposals/iterator-helpers-stage-3-2.js b/packages/core-js/proposals/iterator-helpers.js similarity index 100% rename from packages/core-js/proposals/iterator-helpers-stage-3-2.js rename to packages/core-js/proposals/iterator-helpers.js diff --git a/packages/core-js/proposals/map-upsert-stage-2.js b/packages/core-js/proposals/map-emplace.js similarity index 100% rename from packages/core-js/proposals/map-upsert-stage-2.js rename to packages/core-js/proposals/map-emplace.js diff --git a/packages/core-js/proposals/map-upsert-v4.js b/packages/core-js/proposals/map-upsert.js similarity index 100% rename from packages/core-js/proposals/map-upsert-v4.js rename to packages/core-js/proposals/map-upsert.js diff --git a/packages/core-js/proposals/math-clamp-v2.js b/packages/core-js/proposals/math-clamp-v2.js deleted file mode 100644 index f74a16cd185d..000000000000 --- a/packages/core-js/proposals/math-clamp-v2.js +++ /dev/null @@ -1,3 +0,0 @@ -'use strict'; -// https://github.com/tc39/proposal-math-clamp -require('../modules/esnext.number.clamp'); diff --git a/packages/core-js/proposals/math-clamp.js b/packages/core-js/proposals/math-clamp.js index 18ee9d7c8cfd..f74a16cd185d 100644 --- a/packages/core-js/proposals/math-clamp.js +++ b/packages/core-js/proposals/math-clamp.js @@ -1,3 +1,3 @@ 'use strict'; // https://github.com/tc39/proposal-math-clamp -require('../modules/esnext.math.clamp'); +require('../modules/esnext.number.clamp'); diff --git a/packages/core-js/proposals/math-extensions.js b/packages/core-js/proposals/math-extensions.js index fddf10776278..a31673427f2b 100644 --- a/packages/core-js/proposals/math-extensions.js +++ b/packages/core-js/proposals/math-extensions.js @@ -1,6 +1,5 @@ 'use strict'; // https://github.com/rwaldron/proposal-math-extensions -require('../modules/esnext.math.clamp'); require('../modules/esnext.math.deg-per-rad'); require('../modules/esnext.math.degrees'); require('../modules/esnext.math.fscale'); diff --git a/packages/core-js/proposals/pattern-matching-v2.js b/packages/core-js/proposals/pattern-matching-v2.js deleted file mode 100644 index 726cd2150d9b..000000000000 --- a/packages/core-js/proposals/pattern-matching-v2.js +++ /dev/null @@ -1,3 +0,0 @@ -'use strict'; -// https://github.com/tc39/proposal-pattern-matching -require('../modules/esnext.symbol.custom-matcher'); diff --git a/packages/core-js/proposals/pattern-matching.js b/packages/core-js/proposals/pattern-matching.js index e0039149b9c6..726cd2150d9b 100644 --- a/packages/core-js/proposals/pattern-matching.js +++ b/packages/core-js/proposals/pattern-matching.js @@ -1,3 +1,3 @@ 'use strict'; // https://github.com/tc39/proposal-pattern-matching -require('../modules/esnext.symbol.matcher'); +require('../modules/esnext.symbol.custom-matcher'); diff --git a/packages/core-js/proposals/set-methods-v2.js b/packages/core-js/proposals/set-methods.js similarity index 100% rename from packages/core-js/proposals/set-methods-v2.js rename to packages/core-js/proposals/set-methods.js diff --git a/packages/core-js/proposals/string-replace-all-stage-4.js b/packages/core-js/proposals/string-replace-all-stage-4.js deleted file mode 100644 index 71354d6d8bf0..000000000000 --- a/packages/core-js/proposals/string-replace-all-stage-4.js +++ /dev/null @@ -1,3 +0,0 @@ -'use strict'; -// https://github.com/tc39/proposal-string-replaceall -require('../modules/es.string.replace-all'); diff --git a/packages/core-js/proposals/symbol-predicates-v2.js b/packages/core-js/proposals/symbol-predicates.js similarity index 100% rename from packages/core-js/proposals/symbol-predicates-v2.js rename to packages/core-js/proposals/symbol-predicates.js diff --git a/packages/core-js/proposals/using-statement.js b/packages/core-js/proposals/using-statement.js deleted file mode 100644 index b85b28d55c1d..000000000000 --- a/packages/core-js/proposals/using-statement.js +++ /dev/null @@ -1,5 +0,0 @@ -'use strict'; -// TODO: Renamed, remove from `core-js@4` -// https://github.com/tc39/proposal-explicit-resource-management -require('../modules/esnext.symbol.async-dispose'); -require('../modules/esnext.symbol.dispose'); diff --git a/packages/core-js/stage/0.js b/packages/core-js/stage/0.js index 4c4e7f04f9cd..c7d44d5a9211 100644 --- a/packages/core-js/stage/0.js +++ b/packages/core-js/stage/0.js @@ -1,9 +1,5 @@ 'use strict'; -var parent = require('./1'); +require('./1'); require('../proposals/function-demethodize'); require('../proposals/function-is-callable-is-constructor'); -// TODO: Obsolete versions, remove from `core-js@4`: -require('../proposals/array-filtering'); - -module.exports = parent; diff --git a/packages/core-js/stage/1.js b/packages/core-js/stage/1.js index d0bff9f49085..a66b9935beb9 100644 --- a/packages/core-js/stage/1.js +++ b/packages/core-js/stage/1.js @@ -1,7 +1,7 @@ 'use strict'; -var parent = require('./2'); +require('./2'); -require('../proposals/array-filtering-stage-1'); +require('../proposals/array-filtering'); require('../proposals/array-unique'); require('../proposals/collection-methods'); require('../proposals/collection-of-from'); @@ -11,13 +11,6 @@ require('../proposals/math-extensions'); require('../proposals/math-signbit'); require('../proposals/number-from-string'); require('../proposals/observable'); -require('../proposals/pattern-matching-v2'); +require('../proposals/pattern-matching'); require('../proposals/string-code-points'); require('../proposals/string-cooked'); -// TODO: Obsolete versions, remove from `core-js@4`: -require('../proposals/array-from-async'); -require('../proposals/math-clamp'); -require('../proposals/pattern-matching'); -require('../proposals/string-replace-all'); - -module.exports = parent; diff --git a/packages/core-js/stage/2.7.js b/packages/core-js/stage/2.7.js index 25bf58ede7ea..98aab20f2896 100644 --- a/packages/core-js/stage/2.7.js +++ b/packages/core-js/stage/2.7.js @@ -1,7 +1,5 @@ 'use strict'; -var parent = require('./3'); +require('./3'); require('../proposals/iterator-chunking'); require('../proposals/joint-iteration'); - -module.exports = parent; diff --git a/packages/core-js/stage/2.js b/packages/core-js/stage/2.js index 15ddc7d89a1a..c768b7a6a28d 100644 --- a/packages/core-js/stage/2.js +++ b/packages/core-js/stage/2.js @@ -1,17 +1,10 @@ 'use strict'; -var parent = require('./2.7'); +require('./2.7'); require('../proposals/array-is-template-object'); require('../proposals/async-iterator-helpers'); require('../proposals/extractors'); require('../proposals/iterator-range'); -require('../proposals/math-clamp-v2'); +require('../proposals/math-clamp'); require('../proposals/string-dedent'); -require('../proposals/symbol-predicates-v2'); -// TODO: Obsolete versions, remove from `core-js@4` -require('../proposals/async-explicit-resource-management'); -require('../proposals/decorators'); -require('../proposals/map-upsert-stage-2'); -require('../proposals/using-statement'); - -module.exports = parent; +require('../proposals/symbol-predicates'); diff --git a/packages/core-js/stage/3.js b/packages/core-js/stage/3.js index bd3f75220377..94dd244f23ab 100644 --- a/packages/core-js/stage/3.js +++ b/packages/core-js/stage/3.js @@ -1,11 +1,7 @@ 'use strict'; -var parent = require('./4'); +require('./4'); -require('../proposals/decorator-metadata-v2'); +require('../proposals/decorator-metadata'); require('../proposals/iterator-sequencing'); require('../proposals/json-parse-with-source'); -require('../proposals/map-upsert-v4'); -// TODO: Obsolete versions, remove from `core-js@4` -require('../proposals/iterator-helpers-stage-3'); - -module.exports = parent; +require('../proposals/map-upsert'); diff --git a/packages/core-js/stage/4.js b/packages/core-js/stage/4.js index c5717b662e4d..8b1a393741c9 100644 --- a/packages/core-js/stage/4.js +++ b/packages/core-js/stage/4.js @@ -1,30 +1 @@ -'use strict'; -// TODO: Remove this entry from `core-js@4` -require('../proposals/accessible-object-hasownproperty'); -require('../proposals/array-buffer-base64'); -require('../proposals/array-buffer-transfer'); -require('../proposals/array-find-from-last'); -require('../proposals/array-from-async-stage-2'); -require('../proposals/array-grouping-v2'); -require('../proposals/change-array-by-copy-stage-4'); -// require('../proposals/error-cause'); -require('../proposals/explicit-resource-management'); -require('../proposals/float16'); -require('../proposals/global-this'); -require('../proposals/is-error'); -require('../proposals/iterator-helpers-stage-3-2'); -require('../proposals/math-sum'); -require('../proposals/promise-all-settled'); -require('../proposals/promise-any'); -require('../proposals/promise-try'); -require('../proposals/promise-with-resolvers'); -require('../proposals/regexp-escaping'); -require('../proposals/relative-indexing-method'); -require('../proposals/set-methods-v2'); -require('../proposals/string-match-all'); -require('../proposals/string-replace-all-stage-4'); -require('../proposals/well-formed-unicode-strings'); - -var path = require('../internals/path'); - -module.exports = path; +// empty diff --git a/packages/core-js/stage/index.js b/packages/core-js/stage/index.js deleted file mode 100644 index c1a27ed45084..000000000000 --- a/packages/core-js/stage/index.js +++ /dev/null @@ -1,4 +0,0 @@ -'use strict'; -var proposals = require('./pre'); - -module.exports = proposals; diff --git a/packages/core-js/stage/pre.js b/packages/core-js/stage/pre.js index 0f22311ac19d..e4a8ab1d9091 100644 --- a/packages/core-js/stage/pre.js +++ b/packages/core-js/stage/pre.js @@ -1,6 +1,4 @@ 'use strict'; -var parent = require('./0'); +require('./0'); require('../proposals/reflect-metadata'); - -module.exports = parent; diff --git a/tests/compat-data/tests-coverage.mjs b/tests/compat-data/tests-coverage.mjs index 95db779645f6..6eca7bed3778 100644 --- a/tests/compat-data/tests-coverage.mjs +++ b/tests/compat-data/tests-coverage.mjs @@ -11,7 +11,6 @@ const tested = new Set(Object.keys(globalThis.tests)); const ignore = new Set([ 'esnext.iterator.sliding', 'esnext.map.emplace', - 'esnext.math.clamp', 'esnext.observable.constructor', 'esnext.observable.from', 'esnext.observable.of', @@ -24,7 +23,6 @@ const ignore = new Set([ 'esnext.reflect.has-metadata', 'esnext.reflect.has-own-metadata', 'esnext.reflect.metadata', - 'esnext.symbol.matcher', 'esnext.weak-map.emplace', ]); diff --git a/tests/entries/content.mjs b/tests/entries/content.mjs index f43d36b19605..5331c7f7c3f4 100644 --- a/tests/entries/content.mjs +++ b/tests/entries/content.mjs @@ -127,8 +127,6 @@ superset('core-js/full/url', /^web\.url(?:\.|$)/); superset('core-js/full/url-search-params', /^web\.url-search-params/); superset('core-js/full/weak-map', /^(?:es|esnext)\.weak-map/); superset('core-js/full/weak-set', /^(?:es|esnext)\.weak-set/); -subset('core-js/proposals', /^(?:es\.|esnext\.)/); -subset('core-js/stage', /^(?:es\.|esnext\.)/); subset('core-js/stage/pre', /^(?:es\.|esnext\.)/); subset('core-js/stage/0', /^(?:es\.|esnext\.)/); subset('core-js/stage/1', /^(?:es\.|esnext\.)/); diff --git a/tests/entries/unit.mjs b/tests/entries/unit.mjs index 3efade141bd3..c4c6df6f75d8 100644 --- a/tests/entries/unit.mjs +++ b/tests/entries/unit.mjs @@ -751,7 +751,6 @@ for (PATH of ['core-js-pure', 'core-js']) { ok(load(NS, 'map/map-keys')(new Map([[1, 2], [2, 3], [3, 4]]), it => it).size === 3); ok(load(NS, 'map/map-values')(new Map([[1, 2], [2, 3], [3, 4]]), it => it).size === 3); ok(load(NS, 'map/merge')(new Map([[1, 2], [2, 3]]), [[2, 4], [4, 5]]).size === 3); - ok(load(NS, 'math/clamp')(6, 2, 4) === 4); ok(load(NS, 'math/deg-per-rad') === Math.PI / 180); ok(load(NS, 'math/degrees')(Math.PI) === 180); ok(load(NS, 'math/fscale')(3, 1, 2, 1, 2) === 3); @@ -799,7 +798,6 @@ for (PATH of ['core-js-pure', 'core-js']) { ok(load(NS, 'symbol/custom-matcher')); ok(load(NS, 'symbol/is-registered-symbol')(1) === false); ok(load(NS, 'symbol/is-well-known-symbol')(1) === false); - ok(load(NS, 'symbol/matcher')); ok(load(NS, 'symbol/observable')); ok(load(NS, 'weak-map/delete-all')(new WeakMap(), [], {}) === false); ok(load(NS, 'weak-map/emplace')(new WeakMap(), {}, { insert: () => ({ a: 42 }) }).a === 42); @@ -843,26 +841,22 @@ for (PATH of ['core-js-pure', 'core-js']) { load('proposals/accessible-object-hasownproperty'); load('proposals/array-filtering'); - load('proposals/array-filtering-stage-1'); load('proposals/array-find-from-last'); load('proposals/array-flat-map'); load('proposals/array-from-async'); - load('proposals/array-from-async-stage-2'); - load('proposals/array-grouping-v2'); + load('proposals/array-grouping'); load('proposals/array-includes'); load('proposals/array-is-template-object'); load('proposals/array-unique'); load('proposals/array-buffer-base64'); load('proposals/array-buffer-transfer'); - load('proposals/async-explicit-resource-management'); load('proposals/async-iteration'); load('proposals/async-iterator-helpers'); - load('proposals/change-array-by-copy-stage-4'); + load('proposals/change-array-by-copy'); load('proposals/collection-methods'); load('proposals/collection-of-from'); load('proposals/data-view-get-set-uint8-clamped'); - load('proposals/decorator-metadata-v2'); - load('proposals/decorators'); + load('proposals/decorator-metadata'); load('proposals/error-cause'); load('proposals/explicit-resource-management'); load('proposals/extractors'); @@ -871,8 +865,7 @@ for (PATH of ['core-js-pure', 'core-js']) { load('proposals/function-is-callable-is-constructor'); load('proposals/global-this'); load('proposals/is-error'); - load('proposals/iterator-helpers-stage-3'); - load('proposals/iterator-helpers-stage-3-2'); + load('proposals/iterator-helpers'); load('proposals/iterator-range'); load('proposals/iterator-sequencing'); load('proposals/iterator-chunking'); @@ -880,10 +873,9 @@ for (PATH of ['core-js-pure', 'core-js']) { load('proposals/joint-iteration'); load('proposals/json-parse-with-source'); load('proposals/keys-composition'); - load('proposals/map-upsert-stage-2'); - load('proposals/map-upsert-v4'); + load('proposals/map-emplace'); + load('proposals/map-upsert'); load('proposals/math-clamp'); - load('proposals/math-clamp-v2'); load('proposals/math-extensions'); load('proposals/math-signbit'); load('proposals/math-sum'); @@ -893,7 +885,6 @@ for (PATH of ['core-js-pure', 'core-js']) { load('proposals/object-values-entries'); load('proposals/observable'); load('proposals/pattern-matching'); - load('proposals/pattern-matching-v2'); load('proposals/promise-all-settled'); load('proposals/promise-any'); load('proposals/promise-finally'); @@ -904,7 +895,7 @@ for (PATH of ['core-js-pure', 'core-js']) { load('proposals/regexp-escaping'); load('proposals/regexp-named-groups'); load('proposals/relative-indexing-method'); - load('proposals/set-methods-v2'); + load('proposals/set-methods'); load('proposals/string-cooked'); load('proposals/string-code-points'); load('proposals/string-dedent'); @@ -912,22 +903,18 @@ for (PATH of ['core-js-pure', 'core-js']) { load('proposals/string-match-all'); load('proposals/string-padding'); load('proposals/string-replace-all'); - load('proposals/string-replace-all-stage-4'); load('proposals/symbol-description'); - load('proposals/symbol-predicates-v2'); - load('proposals/using-statement'); + load('proposals/symbol-predicates'); load('proposals/well-formed-stringify'); load('proposals/well-formed-unicode-strings'); - load('proposals'); - - ok(load('stage/4')); - ok(load('stage/3')); - ok(load('stage/2.7')); - ok(load('stage/2')); - ok(load('stage/1')); - ok(load('stage/0')); - ok(load('stage/pre')); - ok(load('stage')); + + load('stage/4'); + load('stage/3'); + load('stage/2.7'); + load('stage/2'); + load('stage/1'); + load('stage/0'); + load('stage/pre'); ok(load('web/dom-exception')); ok(load('web/dom-collections')); diff --git a/tests/unit-global/esnext.math.clamp.js b/tests/unit-global/esnext.math.clamp.js deleted file mode 100644 index 8df03237defe..000000000000 --- a/tests/unit-global/esnext.math.clamp.js +++ /dev/null @@ -1,29 +0,0 @@ -QUnit.test('Math.clamp', assert => { - const { clamp } = Math; - assert.isFunction(clamp); - assert.name(clamp, 'clamp'); - assert.arity(clamp, 3); - assert.looksNative(clamp); - assert.nonEnumerable(Math, 'clamp'); - - assert.same(clamp(2, 4, 6), 4); - assert.same(clamp(4, 2, 6), 4); - assert.same(clamp(6, 2, 4), 4); - - assert.same(clamp(-0, 0, 1), 0, 'If value is -0𝔽 and min is +0𝔽, return +0𝔽.'); - assert.same(clamp(0, -0, 1), 0, 'If value is +0𝔽 and min is -0𝔽, return +0𝔽.'); - assert.same(clamp(-0, -1, 0), -0, 'If value is -0𝔽 and max is +0𝔽, return -0𝔽.'); - assert.same(clamp(0, -1, -0), -0, 'If value is +0𝔽 and max is -0𝔽, return -0𝔽.'); - assert.same(clamp(0, -0, -0), -0, 'If min = max return min.'); - - assert.same(clamp(2, 0, -0), -0, 'min is +0𝔽 and max is -0𝔽'); - assert.same(clamp(2, 3, 1), 1, 'min > max'); - - assert.same(clamp(NaN, 3, 1), NaN, 'If value is NaN, return NaN.'); - assert.same(clamp(2, NaN, 1), NaN, 'If min is NaN, return NaN.'); - assert.same(clamp(2, 3, NaN), NaN, 'If max is NaN, return NaN.'); - - assert.throws(() => clamp({ valueOf: () => 2 }, 1, 3), TypeError, 'If value is not a Number, throw a TypeError exception'); - assert.throws(() => clamp(2, Object(1), 3), TypeError, 'If min is not a Number, throw a TypeError exception.'); - assert.throws(() => clamp(2, 1, Object(3)), TypeError, 'If max is not a Number, throw a TypeError exception.'); -}); diff --git a/tests/unit-global/esnext.symbol.is-well-known-symbol.js b/tests/unit-global/esnext.symbol.is-well-known-symbol.js index aad134117a18..977aad0f3744 100644 --- a/tests/unit-global/esnext.symbol.is-well-known-symbol.js +++ b/tests/unit-global/esnext.symbol.is-well-known-symbol.js @@ -8,8 +8,8 @@ QUnit.test('Symbol.isWellKnownSymbol', assert => { assert.true(isWellKnownSymbol(Symbol.iterator), 'registered-1'); assert.true(isWellKnownSymbol(Object(Symbol.iterator)), 'registered-2, boxed'); - assert.true(isWellKnownSymbol(Symbol.matcher), 'registered-3'); - assert.true(isWellKnownSymbol(Object(Symbol.matcher)), 'registered-4, boxed'); + assert.true(isWellKnownSymbol(Symbol.customMatcher), 'registered-3'); + assert.true(isWellKnownSymbol(Object(Symbol.customMatcher)), 'registered-4, boxed'); const symbol = Symbol('Symbol.isWellKnownSymbol test'); assert.false(isWellKnownSymbol(symbol), 'non-registered'); assert.false(isWellKnownSymbol(Object(symbol)), 'non-registered, boxed'); diff --git a/tests/unit-global/esnext.symbol.matcher.js b/tests/unit-global/esnext.symbol.matcher.js deleted file mode 100644 index 0824ef02202c..000000000000 --- a/tests/unit-global/esnext.symbol.matcher.js +++ /dev/null @@ -1,13 +0,0 @@ -import { DESCRIPTORS } from '../helpers/constants.js'; - -QUnit.test('Symbol.matcher', assert => { - assert.true('matcher' in Symbol, 'Symbol.matcher available'); - assert.nonEnumerable(Symbol, 'matcher'); - assert.true(Object(Symbol.matcher) instanceof Symbol, 'Symbol.matcher is symbol'); - if (DESCRIPTORS) { - const descriptor = Object.getOwnPropertyDescriptor(Symbol, 'matcher'); - assert.false(descriptor.enumerable, 'non-enumerable'); - assert.false(descriptor.writable, 'non-writable'); - assert.false(descriptor.configurable, 'non-configurable'); - } -}); diff --git a/tests/unit-pure/esnext.math.clamp.js b/tests/unit-pure/esnext.math.clamp.js deleted file mode 100644 index 226aea316ebb..000000000000 --- a/tests/unit-pure/esnext.math.clamp.js +++ /dev/null @@ -1,27 +0,0 @@ -import clamp from 'core-js-pure/full/math/clamp'; - -QUnit.test('Math.clamp', assert => { - assert.isFunction(clamp); - assert.arity(clamp, 3); - - assert.same(clamp(2, 4, 6), 4); - assert.same(clamp(4, 2, 6), 4); - assert.same(clamp(6, 2, 4), 4); - - assert.same(clamp(-0, 0, 1), 0, 'If value is -0𝔽 and min is +0𝔽, return +0𝔽.'); - assert.same(clamp(0, -0, 1), 0, 'If value is +0𝔽 and min is -0𝔽, return +0𝔽.'); - assert.same(clamp(-0, -1, 0), -0, 'If value is -0𝔽 and max is +0𝔽, return -0𝔽.'); - assert.same(clamp(0, -1, -0), -0, 'If value is +0𝔽 and max is -0𝔽, return -0𝔽.'); - assert.same(clamp(0, -0, -0), -0, 'If min = max return min.'); - - assert.same(clamp(2, 0, -0), -0, 'min is +0𝔽 and max is -0𝔽'); - assert.same(clamp(2, 3, 1), 1, 'min > max'); - - assert.same(clamp(NaN, 3, 1), NaN, 'If value is NaN, return NaN.'); - assert.same(clamp(2, NaN, 1), NaN, 'If min is NaN, return NaN.'); - assert.same(clamp(2, 3, NaN), NaN, 'If max is NaN, return NaN.'); - - assert.throws(() => clamp({ valueOf: () => 2 }, 1, 3), TypeError, 'If value is not a Number, throw a TypeError exception'); - assert.throws(() => clamp(2, Object(1), 3), TypeError, 'If min is not a Number, throw a TypeError exception.'); - assert.throws(() => clamp(2, 1, Object(3)), TypeError, 'If max is not a Number, throw a TypeError exception.'); -}); diff --git a/tests/unit-pure/esnext.symbol.is-well-known-symbol.js b/tests/unit-pure/esnext.symbol.is-well-known-symbol.js index 75215ed8c8ca..39a2fe20e549 100644 --- a/tests/unit-pure/esnext.symbol.is-well-known-symbol.js +++ b/tests/unit-pure/esnext.symbol.is-well-known-symbol.js @@ -8,8 +8,8 @@ QUnit.test('Symbol.isWellKnownSymbol', assert => { assert.true(isWellKnownSymbol(Symbol.iterator), 'registered-1'); assert.true(isWellKnownSymbol(Object(Symbol.iterator)), 'registered-2, boxed'); - assert.true(isWellKnownSymbol(Symbol.matcher), 'registered-3'); - assert.true(isWellKnownSymbol(Object(Symbol.matcher)), 'registered-4, boxed'); + assert.true(isWellKnownSymbol(Symbol.customMatcher), 'registered-3'); + assert.true(isWellKnownSymbol(Object(Symbol.customMatcher)), 'registered-4, boxed'); const symbol = Symbol('Symbol.isWellKnownSymbol test'); assert.false(isWellKnownSymbol(symbol), 'non-registered'); assert.false(isWellKnownSymbol(Object(symbol)), 'non-registered, boxed'); diff --git a/tests/unit-pure/esnext.symbol.matcher.js b/tests/unit-pure/esnext.symbol.matcher.js deleted file mode 100644 index 7fd880da45c2..000000000000 --- a/tests/unit-pure/esnext.symbol.matcher.js +++ /dev/null @@ -1,6 +0,0 @@ -import Symbol from 'core-js-pure/full/symbol'; - -QUnit.test('Symbol.matcher', assert => { - assert.true('matcher' in Symbol, 'Symbol.matcher available'); - assert.true(Object(Symbol.matcher) instanceof Symbol, 'Symbol.matcher is symbol'); -}); From daf79855a545a012ce445c764f2f026e5fe949ca Mon Sep 17 00:00:00 2001 From: Denis Pushkarev Date: Fri, 6 Oct 2023 03:28:32 +0700 Subject: [PATCH 093/428] drop `/web/` namespace as almost useless in favor of `/stable/`, `/actual/`, `/full/` --- .gitignore | 1 - packages/core-js/stable/queue-microtask.js | 5 ++-- .../core-js/stable/url-search-params/index.js | 9 ++++--- packages/core-js/stable/url/index.js | 11 ++++++-- packages/core-js/web/README.md | 1 - packages/core-js/web/dom-collections.js | 6 ----- packages/core-js/web/dom-exception.js | 8 ------ packages/core-js/web/immediate.js | 6 ----- packages/core-js/web/index.js | 26 ------------------- packages/core-js/web/queue-microtask.js | 5 ---- packages/core-js/web/structured-clone.js | 9 ------- packages/core-js/web/timers.js | 6 ----- packages/core-js/web/url-search-params.js | 8 ------ packages/core-js/web/url.js | 9 ------- tests/entries/content.mjs | 1 - tests/entries/unit.mjs | 10 ------- 16 files changed, 18 insertions(+), 103 deletions(-) delete mode 100644 packages/core-js/web/README.md delete mode 100644 packages/core-js/web/dom-collections.js delete mode 100644 packages/core-js/web/dom-exception.js delete mode 100644 packages/core-js/web/immediate.js delete mode 100644 packages/core-js/web/index.js delete mode 100644 packages/core-js/web/queue-microtask.js delete mode 100644 packages/core-js/web/structured-clone.js delete mode 100644 packages/core-js/web/timers.js delete mode 100644 packages/core-js/web/url-search-params.js delete mode 100644 packages/core-js/web/url.js diff --git a/.gitignore b/.gitignore index e9fd7b263f9c..f18c165dd2ad 100644 --- a/.gitignore +++ b/.gitignore @@ -35,7 +35,6 @@ node_modules/ /packages/core-js-pure/proposals/ /packages/core-js-pure/stable/ /packages/core-js-pure/stage/ -/packages/core-js-pure/web/ /packages/core-js-pure/LICENSE /packages/core-js-pure/index.js /packages/core-js-pure/configurator.js diff --git a/packages/core-js/stable/queue-microtask.js b/packages/core-js/stable/queue-microtask.js index 9d07e2e345e3..87552e7a52c6 100644 --- a/packages/core-js/stable/queue-microtask.js +++ b/packages/core-js/stable/queue-microtask.js @@ -1,4 +1,5 @@ 'use strict'; -var parent = require('../web/queue-microtask'); +require('../modules/web.queue-microtask'); +var path = require('../internals/path'); -module.exports = parent; +module.exports = path.queueMicrotask; diff --git a/packages/core-js/stable/url-search-params/index.js b/packages/core-js/stable/url-search-params/index.js index df53189598a3..1c7e16bc476f 100644 --- a/packages/core-js/stable/url-search-params/index.js +++ b/packages/core-js/stable/url-search-params/index.js @@ -1,5 +1,8 @@ 'use strict'; -var parent = require('../../web/url-search-params'); -require('../../modules/web.dom-collections.iterator'); +require('../../modules/web.url-search-params.constructor'); +require('../../modules/web.url-search-params.delete'); +require('../../modules/web.url-search-params.has'); +require('../../modules/web.url-search-params.size'); +var path = require('../../internals/path'); -module.exports = parent; +module.exports = path.URLSearchParams; diff --git a/packages/core-js/stable/url/index.js b/packages/core-js/stable/url/index.js index a391cf3faff8..63f23856bda4 100644 --- a/packages/core-js/stable/url/index.js +++ b/packages/core-js/stable/url/index.js @@ -1,4 +1,11 @@ 'use strict'; -var parent = require('../../web/url'); +require('../../modules/web.url.constructor'); +require('../../modules/web.url.can-parse'); +require('../../modules/web.url.to-json'); +require('../../modules/web.url-search-params.constructor'); +require('../../modules/web.url-search-params.delete'); +require('../../modules/web.url-search-params.has'); +require('../../modules/web.url-search-params.size'); +var path = require('../../internals/path'); -module.exports = parent; +module.exports = path.URL; diff --git a/packages/core-js/web/README.md b/packages/core-js/web/README.md deleted file mode 100644 index 76c8c168c4f7..000000000000 --- a/packages/core-js/web/README.md +++ /dev/null @@ -1 +0,0 @@ -This folder contains entry points for features from [WHATWG / W3C](https://github.com/zloirock/core-js#web-standards) with dependencies. diff --git a/packages/core-js/web/dom-collections.js b/packages/core-js/web/dom-collections.js deleted file mode 100644 index 6551d7a270eb..000000000000 --- a/packages/core-js/web/dom-collections.js +++ /dev/null @@ -1,6 +0,0 @@ -'use strict'; -require('../modules/web.dom-collections.for-each'); -require('../modules/web.dom-collections.iterator'); -var path = require('../internals/path'); - -module.exports = path; diff --git a/packages/core-js/web/dom-exception.js b/packages/core-js/web/dom-exception.js deleted file mode 100644 index 7c1658a11e57..000000000000 --- a/packages/core-js/web/dom-exception.js +++ /dev/null @@ -1,8 +0,0 @@ -'use strict'; -require('../modules/es.error.to-string'); -require('../modules/web.dom-exception.constructor'); -require('../modules/web.dom-exception.stack'); -require('../modules/web.dom-exception.to-string-tag'); -var path = require('../internals/path'); - -module.exports = path.DOMException; diff --git a/packages/core-js/web/immediate.js b/packages/core-js/web/immediate.js deleted file mode 100644 index 1cb66eb37afb..000000000000 --- a/packages/core-js/web/immediate.js +++ /dev/null @@ -1,6 +0,0 @@ -'use strict'; -require('../modules/web.clear-immediate'); -require('../modules/web.set-immediate'); -var path = require('../internals/path'); - -module.exports = path; diff --git a/packages/core-js/web/index.js b/packages/core-js/web/index.js deleted file mode 100644 index ed869ad8066b..000000000000 --- a/packages/core-js/web/index.js +++ /dev/null @@ -1,26 +0,0 @@ -'use strict'; -require('../modules/web.atob'); -require('../modules/web.btoa'); -require('../modules/web.clear-immediate'); -require('../modules/web.dom-collections.for-each'); -require('../modules/web.dom-collections.iterator'); -require('../modules/web.dom-exception.constructor'); -require('../modules/web.dom-exception.stack'); -require('../modules/web.dom-exception.to-string-tag'); -require('../modules/web.queue-microtask'); -require('../modules/web.self'); -require('../modules/web.set-immediate'); -require('../modules/web.set-interval'); -require('../modules/web.set-timeout'); -require('../modules/web.structured-clone'); -require('../modules/web.url.constructor'); -require('../modules/web.url.can-parse'); -require('../modules/web.url.parse'); -require('../modules/web.url.to-json'); -require('../modules/web.url-search-params.constructor'); -require('../modules/web.url-search-params.delete'); -require('../modules/web.url-search-params.has'); -require('../modules/web.url-search-params.size'); -var path = require('../internals/path'); - -module.exports = path; diff --git a/packages/core-js/web/queue-microtask.js b/packages/core-js/web/queue-microtask.js deleted file mode 100644 index 87552e7a52c6..000000000000 --- a/packages/core-js/web/queue-microtask.js +++ /dev/null @@ -1,5 +0,0 @@ -'use strict'; -require('../modules/web.queue-microtask'); -var path = require('../internals/path'); - -module.exports = path.queueMicrotask; diff --git a/packages/core-js/web/structured-clone.js b/packages/core-js/web/structured-clone.js deleted file mode 100644 index 8e4c2571ad88..000000000000 --- a/packages/core-js/web/structured-clone.js +++ /dev/null @@ -1,9 +0,0 @@ -'use strict'; -require('../modules/es.array.iterator'); -require('../modules/es.object.to-string'); -require('../modules/es.map.constructor'); -require('../modules/es.set.constructor'); -require('../modules/web.structured-clone'); -var path = require('../internals/path'); - -module.exports = path.structuredClone; diff --git a/packages/core-js/web/timers.js b/packages/core-js/web/timers.js deleted file mode 100644 index 7515e2f9fc64..000000000000 --- a/packages/core-js/web/timers.js +++ /dev/null @@ -1,6 +0,0 @@ -'use strict'; -require('../modules/web.set-interval'); -require('../modules/web.set-timeout'); -var path = require('../internals/path'); - -module.exports = path; diff --git a/packages/core-js/web/url-search-params.js b/packages/core-js/web/url-search-params.js deleted file mode 100644 index 948be7e08084..000000000000 --- a/packages/core-js/web/url-search-params.js +++ /dev/null @@ -1,8 +0,0 @@ -'use strict'; -require('../modules/web.url-search-params.constructor'); -require('../modules/web.url-search-params.delete'); -require('../modules/web.url-search-params.has'); -require('../modules/web.url-search-params.size'); -var path = require('../internals/path'); - -module.exports = path.URLSearchParams; diff --git a/packages/core-js/web/url.js b/packages/core-js/web/url.js deleted file mode 100644 index a554666e54da..000000000000 --- a/packages/core-js/web/url.js +++ /dev/null @@ -1,9 +0,0 @@ -'use strict'; -require('./url-search-params'); -require('../modules/web.url.constructor'); -require('../modules/web.url.can-parse'); -require('../modules/web.url.parse'); -require('../modules/web.url.to-json'); -var path = require('../internals/path'); - -module.exports = path.URL; diff --git a/tests/entries/content.mjs b/tests/entries/content.mjs index 5331c7f7c3f4..51c8ed0ecd47 100644 --- a/tests/entries/content.mjs +++ b/tests/entries/content.mjs @@ -52,7 +52,6 @@ superset('core-js/es/symbol', /^es\.symbol/); superset('core-js/es/typed-array', /^es\.typed-array\./); superset('core-js/es/weak-map', /^es\.weak-map/); superset('core-js/es/weak-set', /^es\.weak-set/); -equal('core-js/web', /^web\./); equal('core-js/stable', /^(?:es|web)\./); superset('core-js/stable/array', /^es\.array\./); superset('core-js/stable/array-buffer', /^es\.array-buffer\./); diff --git a/tests/entries/unit.mjs b/tests/entries/unit.mjs index c4c6df6f75d8..68ecd770c8bf 100644 --- a/tests/entries/unit.mjs +++ b/tests/entries/unit.mjs @@ -916,16 +916,6 @@ for (PATH of ['core-js-pure', 'core-js']) { load('stage/0'); load('stage/pre'); - ok(load('web/dom-exception')); - ok(load('web/dom-collections')); - ok(load('web/immediate')); - ok(load('web/queue-microtask')); - ok(load('web/structured-clone')(42) === 42); - ok(load('web/timers')); - ok(load('web/url')); - ok(load('web/url-search-params')); - ok(load('web')); - for (const key in entries) { if (key.startsWith('core-js/modules/')) { load('modules', key.slice(16)); From b55dbf7297b6a116433c38cb59ded1477ca542be Mon Sep 17 00:00:00 2001 From: Denis Pushkarev Date: Fri, 6 Oct 2023 05:32:36 +0700 Subject: [PATCH 094/428] drop `/features/` namespace in favor of `/full/` --- .gitignore | 2 -- packages/core-js/stable/url/index.js | 1 + scripts/build-compat/entries.mjs | 1 - scripts/clean-and-copy.mjs | 16 +--------------- tests/entries/unit.mjs | 12 ++++++------ 5 files changed, 8 insertions(+), 24 deletions(-) diff --git a/.gitignore b/.gitignore index f18c165dd2ad..9eeda01c373c 100644 --- a/.gitignore +++ b/.gitignore @@ -9,7 +9,6 @@ node_modules/ .idea /docs/web/blog/index.md -/packages/core-js/features/ /packages/core-js/es/index.js /packages/core-js/full/index.js /packages/core-js/stable/index.js @@ -28,7 +27,6 @@ node_modules/ /packages/core-js-compat/modules-by-versions.json /packages/core-js-pure/actual/ /packages/core-js-pure/es/ -/packages/core-js-pure/features/ /packages/core-js-pure/full/ /packages/core-js-pure/internals/ /packages/core-js-pure/modules/ diff --git a/packages/core-js/stable/url/index.js b/packages/core-js/stable/url/index.js index 63f23856bda4..bed5b5ba8024 100644 --- a/packages/core-js/stable/url/index.js +++ b/packages/core-js/stable/url/index.js @@ -1,6 +1,7 @@ 'use strict'; require('../../modules/web.url.constructor'); require('../../modules/web.url.can-parse'); +require('../../modules/web.url.parse'); require('../../modules/web.url.to-json'); require('../../modules/web.url-search-params.constructor'); require('../../modules/web.url-search-params.delete'); diff --git a/scripts/build-compat/entries.mjs b/scripts/build-compat/entries.mjs index 8e1c50ac42a4..6d5c95dd4ed0 100644 --- a/scripts/build-compat/entries.mjs +++ b/scripts/build-compat/entries.mjs @@ -25,7 +25,6 @@ const entriesList = await glob([ 'packages/core-js/actual/**/*.js', 'packages/core-js/es/**/*.js', 'packages/core-js/full/**/*.js', - 'packages/core-js/features/**/*.js', 'packages/core-js/modules/*.js', 'packages/core-js/proposals/**/*.js', 'packages/core-js/stable/**/*.js', diff --git a/scripts/clean-and-copy.mjs b/scripts/clean-and-copy.mjs index c70280f0952b..a0ee6602cbdd 100644 --- a/scripts/clean-and-copy.mjs +++ b/scripts/clean-and-copy.mjs @@ -1,4 +1,4 @@ -const { copy, ensureFile, lstat, pathExists, rm, writeFile } = fs; +const { copy, lstat, pathExists, rm } = fs; let copied = 0; function options(overwrite) { @@ -13,25 +13,11 @@ function options(overwrite) { await Promise.all((await glob([ 'tests/**/bundles/*', - // TODO: drop it from `core-js@4` - 'packages/core-js/features', 'packages/core-js-pure/!(override|.npmignore|package.json|README.md)', ], { onlyFiles: false })).map(path => rm(path, { force: true, recursive: true }))); echo(chalk.green('old copies removed')); -// TODO: drop it from `core-js@4` -const files = await glob('packages/core-js/full/**/*.js'); - -for (const filename of files) { - const newFilename = filename.replace('full', 'features'); - const href = '../'.repeat(filename.split('').filter(it => it === '/').length - 2) + filename.slice(17, -3).replace(/\/index$/, ''); - await ensureFile(newFilename); - await writeFile(newFilename, `'use strict';\nmodule.exports = require('${ href }');\n`); -} - -echo(chalk.green('created /features/ entries')); - await copy('packages/core-js', 'packages/core-js-pure', options(false)); const license = [ diff --git a/tests/entries/unit.mjs b/tests/entries/unit.mjs index 68ecd770c8bf..deb8f4ffc9ff 100644 --- a/tests/entries/unit.mjs +++ b/tests/entries/unit.mjs @@ -14,7 +14,7 @@ function load(...components) { } for (PATH of ['core-js-pure', 'core-js']) { - for (const NS of ['es', 'stable', 'actual', 'full', 'features']) { + for (const NS of ['es', 'stable', 'actual', 'full']) { let O; ok(load(NS, 'global-this').Math === Math); ok(new (load(NS, 'aggregate-error'))([42]).errors[0] === 42); @@ -664,7 +664,7 @@ for (PATH of ['core-js-pure', 'core-js']) { ok(instanceWith([]).call([1, 2, 3], 1, 4)[1] === 4); } - for (const NS of ['stable', 'actual', 'full', 'features']) { + for (const NS of ['stable', 'actual', 'full']) { ok(load(NS, 'atob')('Zg==') === 'f'); ok(load(NS, 'btoa')('f') === 'Zg=='); ok(typeof load(NS, 'dom-exception/constructor') == 'function'); @@ -687,7 +687,7 @@ for (PATH of ['core-js-pure', 'core-js']) { ok(typeof load(NS, 'url-search-params') == 'function'); } - for (const NS of ['actual', 'full', 'features']) { + for (const NS of ['actual', 'full']) { ok(typeof load(NS, 'async-iterator') == 'function'); ok(typeof load(NS, 'async-iterator/drop') == 'function'); ok(typeof load(NS, 'async-iterator/every') == 'function'); @@ -714,7 +714,7 @@ for (PATH of ['core-js-pure', 'core-js']) { ok(load(NS, 'weak-map/get-or-insert-computed')(new WeakMap([[{}, 2]]), {}, () => 3) === 3); } - for (const NS of ['full', 'features']) { + for (const NS of ['full']) { const Map = load(NS, 'map'); const Set = load(NS, 'set'); const WeakMap = load(NS, 'weak-map'); @@ -925,7 +925,7 @@ for (PATH of ['core-js-pure', 'core-js']) { ok(load()); } -for (const NS of ['es', 'stable', 'actual', 'full', 'features']) { +for (const NS of ['es', 'stable', 'actual', 'full']) { ok(typeof load(NS, 'string/match') == 'function'); ok('next' in load(NS, 'string/match-all')('a', /./g)); ok(typeof load(NS, 'string/replace') == 'function'); @@ -994,7 +994,7 @@ for (const NS of ['es', 'stable', 'actual', 'full', 'features']) { ok(typeof load(NS, 'typed-array').Uint32Array == 'function'); } -for (const NS of ['full', 'features']) { +for (const NS of ['full']) { load(NS, 'typed-array/filter-reject'); load(NS, 'typed-array/unique-by'); } From 9017b47a6d05bdf8475545f9247944c691c2e90e Mon Sep 17 00:00:00 2001 From: Denis Pushkarev Date: Fri, 6 Oct 2023 06:02:57 +0700 Subject: [PATCH 095/428] drop `*/virtual/index.js` entries as useless --- .../core-js/actual/array/virtual/index.js | 4 -- .../core-js/actual/function/virtual/index.js | 4 -- .../core-js/actual/number/virtual/index.js | 4 -- .../core-js/actual/string/virtual/index.js | 4 -- packages/core-js/es/array/virtual/index.js | 40 ------------------- packages/core-js/es/function/virtual/index.js | 5 --- packages/core-js/es/number/virtual/index.js | 7 ---- packages/core-js/es/string/virtual/index.js | 40 ------------------- packages/core-js/full/array/virtual/index.js | 6 --- .../core-js/full/function/virtual/index.js | 5 --- packages/core-js/full/number/virtual/index.js | 4 -- packages/core-js/full/string/virtual/index.js | 5 --- .../core-js/stable/array/virtual/index.js | 4 -- .../core-js/stable/function/virtual/index.js | 4 -- .../core-js/stable/number/virtual/index.js | 4 -- .../core-js/stable/string/virtual/index.js | 4 -- tests/entries/unit.mjs | 6 --- 17 files changed, 150 deletions(-) delete mode 100644 packages/core-js/actual/array/virtual/index.js delete mode 100644 packages/core-js/actual/function/virtual/index.js delete mode 100644 packages/core-js/actual/number/virtual/index.js delete mode 100644 packages/core-js/actual/string/virtual/index.js delete mode 100644 packages/core-js/es/array/virtual/index.js delete mode 100644 packages/core-js/es/function/virtual/index.js delete mode 100644 packages/core-js/es/number/virtual/index.js delete mode 100644 packages/core-js/es/string/virtual/index.js delete mode 100644 packages/core-js/full/array/virtual/index.js delete mode 100644 packages/core-js/full/function/virtual/index.js delete mode 100644 packages/core-js/full/number/virtual/index.js delete mode 100644 packages/core-js/full/string/virtual/index.js delete mode 100644 packages/core-js/stable/array/virtual/index.js delete mode 100644 packages/core-js/stable/function/virtual/index.js delete mode 100644 packages/core-js/stable/number/virtual/index.js delete mode 100644 packages/core-js/stable/string/virtual/index.js diff --git a/packages/core-js/actual/array/virtual/index.js b/packages/core-js/actual/array/virtual/index.js deleted file mode 100644 index c9b28c133e1a..000000000000 --- a/packages/core-js/actual/array/virtual/index.js +++ /dev/null @@ -1,4 +0,0 @@ -'use strict'; -var parent = require('../../../stable/array/virtual'); - -module.exports = parent; diff --git a/packages/core-js/actual/function/virtual/index.js b/packages/core-js/actual/function/virtual/index.js deleted file mode 100644 index b190d9837143..000000000000 --- a/packages/core-js/actual/function/virtual/index.js +++ /dev/null @@ -1,4 +0,0 @@ -'use strict'; -var parent = require('../../../stable/function/virtual'); - -module.exports = parent; diff --git a/packages/core-js/actual/number/virtual/index.js b/packages/core-js/actual/number/virtual/index.js deleted file mode 100644 index 02e5b8fa746f..000000000000 --- a/packages/core-js/actual/number/virtual/index.js +++ /dev/null @@ -1,4 +0,0 @@ -'use strict'; -var parent = require('../../../stable/number/virtual'); - -module.exports = parent; diff --git a/packages/core-js/actual/string/virtual/index.js b/packages/core-js/actual/string/virtual/index.js deleted file mode 100644 index 565b7cb3eb4d..000000000000 --- a/packages/core-js/actual/string/virtual/index.js +++ /dev/null @@ -1,4 +0,0 @@ -'use strict'; -var parent = require('../../../stable/string/virtual'); - -module.exports = parent; diff --git a/packages/core-js/es/array/virtual/index.js b/packages/core-js/es/array/virtual/index.js deleted file mode 100644 index 03a8182c58a4..000000000000 --- a/packages/core-js/es/array/virtual/index.js +++ /dev/null @@ -1,40 +0,0 @@ -'use strict'; -require('../../../modules/es.array.at'); -require('../../../modules/es.array.concat'); -require('../../../modules/es.array.copy-within'); -require('../../../modules/es.array.every'); -require('../../../modules/es.array.fill'); -require('../../../modules/es.array.filter'); -require('../../../modules/es.array.find'); -require('../../../modules/es.array.find-index'); -require('../../../modules/es.array.find-last'); -require('../../../modules/es.array.find-last-index'); -require('../../../modules/es.array.flat'); -require('../../../modules/es.array.flat-map'); -require('../../../modules/es.array.for-each'); -require('../../../modules/es.array.includes'); -require('../../../modules/es.array.index-of'); -require('../../../modules/es.array.iterator'); -require('../../../modules/es.array.join'); -require('../../../modules/es.array.last-index-of'); -require('../../../modules/es.array.map'); -require('../../../modules/es.array.push'); -require('../../../modules/es.array.reduce'); -require('../../../modules/es.array.reduce-right'); -require('../../../modules/es.array.reverse'); -require('../../../modules/es.array.slice'); -require('../../../modules/es.array.some'); -require('../../../modules/es.array.sort'); -require('../../../modules/es.array.species'); -require('../../../modules/es.array.splice'); -require('../../../modules/es.array.to-reversed'); -require('../../../modules/es.array.to-sorted'); -require('../../../modules/es.array.to-spliced'); -require('../../../modules/es.array.unscopables.flat'); -require('../../../modules/es.array.unscopables.flat-map'); -require('../../../modules/es.array.unshift'); -require('../../../modules/es.array.with'); -require('../../../modules/es.object.to-string'); -var entryVirtual = require('../../../internals/entry-virtual'); - -module.exports = entryVirtual('Array'); diff --git a/packages/core-js/es/function/virtual/index.js b/packages/core-js/es/function/virtual/index.js deleted file mode 100644 index ccda880e330a..000000000000 --- a/packages/core-js/es/function/virtual/index.js +++ /dev/null @@ -1,5 +0,0 @@ -'use strict'; -require('../../../modules/es.function.bind'); -var entryVirtual = require('../../../internals/entry-virtual'); - -module.exports = entryVirtual('Function'); diff --git a/packages/core-js/es/number/virtual/index.js b/packages/core-js/es/number/virtual/index.js deleted file mode 100644 index 1414039401c0..000000000000 --- a/packages/core-js/es/number/virtual/index.js +++ /dev/null @@ -1,7 +0,0 @@ -'use strict'; -require('../../../modules/es.number.to-exponential'); -require('../../../modules/es.number.to-fixed'); -require('../../../modules/es.number.to-precision'); -var entryVirtual = require('../../../internals/entry-virtual'); - -module.exports = entryVirtual('Number'); diff --git a/packages/core-js/es/string/virtual/index.js b/packages/core-js/es/string/virtual/index.js deleted file mode 100644 index 5711a05c9a96..000000000000 --- a/packages/core-js/es/string/virtual/index.js +++ /dev/null @@ -1,40 +0,0 @@ -'use strict'; -require('../../../modules/es.object.to-string'); -require('../../../modules/es.regexp.exec'); -require('../../../modules/es.string.at'); -require('../../../modules/es.string.code-point-at'); -require('../../../modules/es.string.ends-with'); -require('../../../modules/es.string.includes'); -require('../../../modules/es.string.match'); -require('../../../modules/es.string.match-all'); -require('../../../modules/es.string.pad-end'); -require('../../../modules/es.string.pad-start'); -require('../../../modules/es.string.repeat'); -require('../../../modules/es.string.replace'); -require('../../../modules/es.string.replace-all'); -require('../../../modules/es.string.search'); -require('../../../modules/es.string.split'); -require('../../../modules/es.string.starts-with'); -require('../../../modules/es.string.substr'); -require('../../../modules/es.string.trim'); -require('../../../modules/es.string.trim-end'); -require('../../../modules/es.string.trim-left'); -require('../../../modules/es.string.trim-right'); -require('../../../modules/es.string.trim-start'); -require('../../../modules/es.string.iterator'); -require('../../../modules/es.string.anchor'); -require('../../../modules/es.string.big'); -require('../../../modules/es.string.blink'); -require('../../../modules/es.string.bold'); -require('../../../modules/es.string.fixed'); -require('../../../modules/es.string.fontcolor'); -require('../../../modules/es.string.fontsize'); -require('../../../modules/es.string.italics'); -require('../../../modules/es.string.link'); -require('../../../modules/es.string.small'); -require('../../../modules/es.string.strike'); -require('../../../modules/es.string.sub'); -require('../../../modules/es.string.sup'); -var entryVirtual = require('../../../internals/entry-virtual'); - -module.exports = entryVirtual('String'); diff --git a/packages/core-js/full/array/virtual/index.js b/packages/core-js/full/array/virtual/index.js deleted file mode 100644 index 64b1153214bb..000000000000 --- a/packages/core-js/full/array/virtual/index.js +++ /dev/null @@ -1,6 +0,0 @@ -'use strict'; -var parent = require('../../../actual/array/virtual'); -require('../../../modules/esnext.array.filter-reject'); -require('../../../modules/esnext.array.unique-by'); - -module.exports = parent; diff --git a/packages/core-js/full/function/virtual/index.js b/packages/core-js/full/function/virtual/index.js deleted file mode 100644 index ad2dd942dd2b..000000000000 --- a/packages/core-js/full/function/virtual/index.js +++ /dev/null @@ -1,5 +0,0 @@ -'use strict'; -var parent = require('../../../actual/function/virtual'); -require('../../../modules/esnext.function.demethodize'); - -module.exports = parent; diff --git a/packages/core-js/full/number/virtual/index.js b/packages/core-js/full/number/virtual/index.js deleted file mode 100644 index 8c21e4144bf7..000000000000 --- a/packages/core-js/full/number/virtual/index.js +++ /dev/null @@ -1,4 +0,0 @@ -'use strict'; -var parent = require('../../../actual/number/virtual'); - -module.exports = parent; diff --git a/packages/core-js/full/string/virtual/index.js b/packages/core-js/full/string/virtual/index.js deleted file mode 100644 index e1eb46c29a2d..000000000000 --- a/packages/core-js/full/string/virtual/index.js +++ /dev/null @@ -1,5 +0,0 @@ -'use strict'; -var parent = require('../../../actual/string/virtual'); -require('../../../modules/esnext.string.code-points'); - -module.exports = parent; diff --git a/packages/core-js/stable/array/virtual/index.js b/packages/core-js/stable/array/virtual/index.js deleted file mode 100644 index 7cab82616a1a..000000000000 --- a/packages/core-js/stable/array/virtual/index.js +++ /dev/null @@ -1,4 +0,0 @@ -'use strict'; -var parent = require('../../../es/array/virtual'); - -module.exports = parent; diff --git a/packages/core-js/stable/function/virtual/index.js b/packages/core-js/stable/function/virtual/index.js deleted file mode 100644 index ee7a38cd619a..000000000000 --- a/packages/core-js/stable/function/virtual/index.js +++ /dev/null @@ -1,4 +0,0 @@ -'use strict'; -var parent = require('../../../es/function/virtual'); - -module.exports = parent; diff --git a/packages/core-js/stable/number/virtual/index.js b/packages/core-js/stable/number/virtual/index.js deleted file mode 100644 index 66b1779681d8..000000000000 --- a/packages/core-js/stable/number/virtual/index.js +++ /dev/null @@ -1,4 +0,0 @@ -'use strict'; -var parent = require('../../../es/number/virtual'); - -module.exports = parent; diff --git a/packages/core-js/stable/string/virtual/index.js b/packages/core-js/stable/string/virtual/index.js deleted file mode 100644 index 17e0666fdbd1..000000000000 --- a/packages/core-js/stable/string/virtual/index.js +++ /dev/null @@ -1,4 +0,0 @@ -'use strict'; -var parent = require('../../../es/string/virtual'); - -module.exports = parent; diff --git a/tests/entries/unit.mjs b/tests/entries/unit.mjs index deb8f4ffc9ff..1e7604209aea 100644 --- a/tests/entries/unit.mjs +++ b/tests/entries/unit.mjs @@ -54,9 +54,6 @@ for (PATH of ['core-js-pure', 'core-js']) { ok(load(NS, 'function/virtual/bind').call(function (a, b) { return this + a + b; }, 1, 2)(3) === 6); - ok(load(NS, 'function/virtual').bind.call(function (a, b) { - return this + a + b; - }, 1, 2)(3) === 6); load(NS, 'function/name'); load(NS, 'function/has-instance'); load(NS, 'function'); @@ -133,7 +130,6 @@ for (PATH of ['core-js-pure', 'core-js']) { ok(load(NS, 'array/virtual/to-reversed').call([1, 2, 3])[0] === 3); ok(load(NS, 'array/virtual/to-sorted').call([3, 2, 1])[0] === 1); ok(load(NS, 'array/virtual/to-spliced').call([3, 2, 1], 1, 1, 4, 5).length === 4); - ok('map' in load(NS, 'array/virtual')); ok('from' in load(NS, 'array')); ok(load(NS, 'array/splice')([1, 2, 3], 1, 2)[0] === 2); ok(new (load(NS, 'error/constructor').Error)(1, { cause: 7 }).cause === 7); @@ -179,7 +175,6 @@ for (PATH of ['core-js-pure', 'core-js']) { ok(load(NS, 'number/virtual/to-exponential').call(1, 1) === '1.0e+0'); ok(load(NS, 'number/virtual/to-fixed').call(1, 1) === '1.0'); ok(load(NS, 'number/virtual/to-precision').call(1) === '1'); - ok('toPrecision' in load(NS, 'number/virtual')); ok('isNaN' in load(NS, 'number')); ok(load(NS, 'reflect/apply')((a, b) => a + b, null, [1, 2]) === 3); ok(load(NS, 'reflect/construct')(function () { @@ -265,7 +260,6 @@ for (PATH of ['core-js-pure', 'core-js']) { ok(load(NS, 'string/virtual/is-well-formed').call('a')); ok(load(NS, 'string/virtual/to-well-formed').call('a') === 'a'); ok('next' in load(NS, 'string/virtual/iterator').call('qwe')); - ok('padEnd' in load(NS, 'string/virtual')); ok('raw' in load(NS, 'string')); ok(String(load(NS, 'regexp/constructor')('a', 'g')) === '/a/g'); ok(load(NS, 'regexp/escape')('10$') === '\\x310\\$'); From 84242962375eb1701dc748326857f6d3ee1c67ae Mon Sep 17 00:00:00 2001 From: Denis Pushkarev Date: Fri, 6 Oct 2023 08:28:08 +0700 Subject: [PATCH 096/428] drop descriptors check --- .../override/internals/collection.js | 3 +- .../override/internals/entry-virtual.js | 6 - .../internals/array-buffer-view-core.js | 5 +- packages/core-js/internals/array-buffer.js | 20 +- .../core-js/internals/array-set-length.js | 3 +- .../core-js/internals/collection-strong.js | 13 +- .../create-non-enumerable-property.js | 6 +- packages/core-js/internals/create-property.js | 4 +- packages/core-js/internals/descriptors.js | 8 - packages/core-js/internals/entry-virtual.js | 6 - packages/core-js/internals/error-to-string.js | 19 +- packages/core-js/internals/function-name.js | 5 +- packages/core-js/internals/ie8-dom-define.js | 12 - packages/core-js/internals/make-built-in.js | 8 +- packages/core-js/internals/object-assign.js | 5 +- .../internals/object-define-properties.js | 3 +- .../internals/object-define-property.js | 17 +- .../object-get-own-property-descriptor.js | 18 +- packages/core-js/internals/object-to-array.js | 5 +- .../core-js/internals/safe-get-built-in.js | 2 - packages/core-js/internals/set-species.js | 3 +- .../internals/typed-array-constructor.js | 247 +++--- .../internals/url-constructor-detection.js | 3 +- .../internals/v8-prototype-define-bug.js | 3 +- .../wrap-error-constructor-with-cause.js | 3 +- .../modules/es.array-buffer.detached.js | 3 +- packages/core-js/modules/es.array.iterator.js | 3 +- .../es.async-disposable-stack.constructor.js | 7 +- .../es.disposable-stack.constructor.js | 7 +- packages/core-js/modules/es.function.name.js | 3 +- .../modules/es.iterator.constructor.js | 27 +- .../core-js/modules/es.number.constructor.js | 10 +- packages/core-js/modules/es.object.create.js | 3 +- .../modules/es.object.define-getter.js | 13 +- .../modules/es.object.define-properties.js | 3 +- .../modules/es.object.define-property.js | 3 +- .../modules/es.object.define-setter.js | 13 +- .../es.object.get-own-property-descriptor.js | 5 +- .../es.object.get-own-property-descriptors.js | 3 +- .../modules/es.object.lookup-getter.js | 23 +- .../modules/es.object.lookup-setter.js | 23 +- packages/core-js/modules/es.object.proto.js | 3 +- .../modules/es.reflect.define-property.js | 3 +- .../es.reflect.get-own-property-descriptor.js | 3 +- .../core-js/modules/es.regexp.constructor.js | 14 +- packages/core-js/modules/es.regexp.dot-all.js | 3 +- packages/core-js/modules/es.regexp.flags.js | 3 +- packages/core-js/modules/es.regexp.sticky.js | 3 +- .../core-js/modules/es.symbol.constructor.js | 28 +- .../core-js/modules/es.symbol.description.js | 3 +- .../modules/esnext.function.is-callable.js | 3 +- .../core-js/modules/esnext.iterator.range.js | 17 +- packages/core-js/modules/esnext.json.parse.js | 7 +- .../modules/esnext.observable.constructor.js | 14 +- .../modules/web.dom-exception.constructor.js | 22 +- .../modules/web.dom-exception.stack.js | 3 +- .../core-js/modules/web.queue-microtask.js | 3 +- packages/core-js/modules/web.self.js | 50 +- .../web.url-search-params.constructor.js | 9 +- .../modules/web.url-search-params.size.js | 3 +- .../core-js/modules/web.url.constructor.js | 93 +-- tests/compat/tests.js | 29 +- tests/helpers/constants.js | 12 +- tests/helpers/qunit-helpers.js | 37 +- .../es.array-buffer.constructor.js | 4 +- tests/unit-global/es.array-buffer.detached.js | 30 +- tests/unit-global/es.array.fill.js | 4 +- tests/unit-global/es.array.flat.js | 16 +- tests/unit-global/es.array.from.js | 20 +- tests/unit-global/es.array.of.js | 20 +- tests/unit-global/es.data-view.constructor.js | 132 ++- tests/unit-global/es.function.name.js | 72 +- tests/unit-global/es.json.stringify.js | 138 ++-- tests/unit-global/es.map.constructor.js | 29 +- tests/unit-global/es.object.assign.js | 76 +- tests/unit-global/es.object.create.js | 6 - tests/unit-global/es.object.define-getter.js | 44 +- .../es.object.define-properties.js | 18 +- .../unit-global/es.object.define-property.js | 18 +- tests/unit-global/es.object.define-setter.js | 54 +- .../es.object.get-own-property-descriptor.js | 6 - .../es.object.get-own-property-descriptors.js | 29 +- tests/unit-global/es.object.lookup-getter.js | 46 +- tests/unit-global/es.object.lookup-setter.js | 46 +- tests/unit-global/es.object.proto.js | 4 +- tests/unit-global/es.promise.constructor.js | 4 +- .../unit-global/es.reflect.define-property.js | 38 +- .../unit-global/es.reflect.delete-property.js | 12 +- .../es.reflect.get-own-property-descriptor.js | 6 - tests/unit-global/es.reflect.get.js | 40 +- tests/unit-global/es.reflect.is-extensible.js | 6 +- .../es.reflect.prevent-extensions.js | 6 +- tests/unit-global/es.reflect.set.js | 117 ++- tests/unit-global/es.regexp.constructor.js | 182 +++-- tests/unit-global/es.regexp.dot-all.js | 56 +- tests/unit-global/es.regexp.exec.js | 106 ++- tests/unit-global/es.regexp.flags.js | 98 ++- tests/unit-global/es.regexp.sticky.js | 64 +- tests/unit-global/es.set.constructor.js | 29 +- .../es.set.symmetric-difference.js | 3 +- tests/unit-global/es.set.union.js | 3 +- tests/unit-global/es.string.match-all.js | 27 +- tests/unit-global/es.symbol.async-dispose.js | 12 +- tests/unit-global/es.symbol.async-iterator.js | 13 +- tests/unit-global/es.symbol.constructor.js | 337 ++++---- tests/unit-global/es.symbol.description.js | 16 +- tests/unit-global/es.symbol.dispose.js | 12 +- tests/unit-global/es.typed-array.at.js | 4 +- .../es.typed-array.constructors.js | 484 ++++++----- .../unit-global/es.typed-array.copy-within.js | 4 +- tests/unit-global/es.typed-array.every.js | 4 +- tests/unit-global/es.typed-array.fill.js | 4 +- tests/unit-global/es.typed-array.filter.js | 4 +- .../unit-global/es.typed-array.find-index.js | 4 +- .../es.typed-array.find-last-index.js | 4 +- tests/unit-global/es.typed-array.find-last.js | 4 +- tests/unit-global/es.typed-array.find.js | 4 +- tests/unit-global/es.typed-array.for-each.js | 4 +- tests/unit-global/es.typed-array.from.js | 4 +- tests/unit-global/es.typed-array.includes.js | 4 +- tests/unit-global/es.typed-array.index-of.js | 4 +- tests/unit-global/es.typed-array.iterator.js | 10 +- tests/unit-global/es.typed-array.join.js | 4 +- .../es.typed-array.last-index-of.js | 4 +- tests/unit-global/es.typed-array.map.js | 4 +- tests/unit-global/es.typed-array.of.js | 4 +- .../es.typed-array.reduce-right.js | 4 +- tests/unit-global/es.typed-array.reduce.js | 4 +- tests/unit-global/es.typed-array.reverse.js | 4 +- tests/unit-global/es.typed-array.set.js | 4 +- tests/unit-global/es.typed-array.slice.js | 4 +- tests/unit-global/es.typed-array.some.js | 4 +- tests/unit-global/es.typed-array.sort.js | 4 +- tests/unit-global/es.typed-array.subarray.js | 4 +- .../es.typed-array.to-locale-string.js | 4 +- .../unit-global/es.typed-array.to-reversed.js | 4 +- tests/unit-global/es.typed-array.to-sorted.js | 4 +- tests/unit-global/es.typed-array.to-string.js | 4 +- tests/unit-global/es.typed-array.with.js | 4 +- .../es.typed.conversions.float32.js | 4 +- .../es.typed.conversions.float64.js | 4 +- .../unit-global/es.typed.conversions.int16.js | 4 +- .../unit-global/es.typed.conversions.int32.js | 4 +- .../unit-global/es.typed.conversions.int8.js | 4 +- .../es.typed.conversions.uint16.js | 4 +- .../es.typed.conversions.uint32.js | 4 +- .../es.typed.conversions.uint8-clamped.js | 4 +- .../unit-global/es.typed.conversions.uint8.js | 4 +- .../unit-global/es.uint8-array.from-base64.js | 4 +- tests/unit-global/es.uint8-array.from-hex.js | 4 +- .../es.uint8-array.set-from-base64.js | 4 +- .../es.uint8-array.set-from-hex.js | 4 +- tests/unit-global/es.uint8-array.to-base64.js | 4 +- tests/unit-global/es.uint8-array.to-hex.js | 4 +- tests/unit-global/es.weak-map.constructor.js | 14 +- tests/unit-global/es.weak-set.constructor.js | 14 +- .../esnext.data-view.set-uint8-clamped.js | 6 +- .../unit-global/esnext.iterator.zip-keyed.js | 3 +- tests/unit-global/esnext.json.parse.js | 70 +- .../esnext.symbol.custom-matcher.js | 12 +- tests/unit-global/esnext.symbol.metadata.js | 12 +- tests/unit-global/esnext.symbol.observable.js | 12 +- .../esnext.typed-array.filter-reject.js | 4 +- .../esnext.typed-array.unique-by.js | 4 +- .../web.dom-exception.constructor.js | 12 +- tests/unit-global/web.self.js | 14 +- .../web.url-search-params.constructor.js | 148 ++-- tests/unit-global/web.url.constructor.js | 750 ++++++++---------- tests/unit-pure/es.array.flat.js | 14 +- tests/unit-pure/es.array.from.js | 20 +- tests/unit-pure/es.array.of.js | 21 +- tests/unit-pure/es.json.stringify.js | 138 ++-- tests/unit-pure/es.map.constructor.js | 28 +- tests/unit-pure/es.object.assign.js | 76 +- tests/unit-pure/es.object.create.js | 6 - tests/unit-pure/es.object.define-getter.js | 34 +- .../unit-pure/es.object.define-properties.js | 18 +- tests/unit-pure/es.object.define-property.js | 18 +- tests/unit-pure/es.object.define-setter.js | 44 +- .../es.object.get-own-property-descriptor.js | 6 - .../es.object.get-own-property-descriptors.js | 27 +- tests/unit-pure/es.object.lookup-getter.js | 34 +- tests/unit-pure/es.object.lookup-setter.js | 34 +- tests/unit-pure/es.promise.constructor.js | 4 +- tests/unit-pure/es.reflect.define-property.js | 38 +- tests/unit-pure/es.reflect.delete-property.js | 12 +- .../es.reflect.get-own-property-descriptor.js | 6 - tests/unit-pure/es.reflect.get.js | 40 +- tests/unit-pure/es.reflect.is-extensible.js | 6 +- .../es.reflect.prevent-extensions.js | 6 +- tests/unit-pure/es.reflect.set.js | 117 ++- tests/unit-pure/es.set.constructor.js | 32 +- .../unit-pure/es.set.symmetric-difference.js | 3 +- tests/unit-pure/es.set.union.js | 3 +- tests/unit-pure/es.symbol.constructor.js | 326 ++++---- tests/unit-pure/es.weak-map.constructor.js | 14 +- tests/unit-pure/es.weak-set.constructor.js | 13 +- tests/unit-pure/esnext.iterator.zip-keyed.js | 3 +- tests/unit-pure/esnext.json.parse.js | 70 +- .../web.dom-exception.constructor.js | 12 +- .../web.url-search-params.constructor.js | 146 ++-- tests/unit-pure/web.url.constructor.js | 750 ++++++++---------- 202 files changed, 3060 insertions(+), 3748 deletions(-) delete mode 100644 packages/core-js-pure/override/internals/entry-virtual.js delete mode 100644 packages/core-js/internals/descriptors.js delete mode 100644 packages/core-js/internals/entry-virtual.js delete mode 100644 packages/core-js/internals/ie8-dom-define.js diff --git a/packages/core-js-pure/override/internals/collection.js b/packages/core-js-pure/override/internals/collection.js index 4f4a25974888..79efa3b27a3b 100644 --- a/packages/core-js-pure/override/internals/collection.js +++ b/packages/core-js-pure/override/internals/collection.js @@ -12,7 +12,6 @@ var isNullOrUndefined = require('../internals/is-null-or-undefined'); var setToStringTag = require('../internals/set-to-string-tag'); var defineProperty = require('../internals/object-define-property').f; var forEach = require('../internals/array-iteration').forEach; -var DESCRIPTORS = require('../internals/descriptors'); var InternalStateModule = require('../internals/internal-state'); var setInternalState = InternalStateModule.set; @@ -27,7 +26,7 @@ module.exports = function (CONSTRUCTOR_NAME, wrapper, common) { var exported = {}; var Constructor; - if (!DESCRIPTORS || !isCallable(NativeConstructor) + if (!isCallable(NativeConstructor) || !(IS_WEAK || NativePrototype.forEach && !fails(function () { new NativeConstructor().entries().next(); })) ) { // create collection constructor diff --git a/packages/core-js-pure/override/internals/entry-virtual.js b/packages/core-js-pure/override/internals/entry-virtual.js deleted file mode 100644 index a111339ee25a..000000000000 --- a/packages/core-js-pure/override/internals/entry-virtual.js +++ /dev/null @@ -1,6 +0,0 @@ -'use strict'; -var path = require('../internals/path'); - -module.exports = function (CONSTRUCTOR) { - return path[CONSTRUCTOR + 'Prototype']; -}; diff --git a/packages/core-js/internals/array-buffer-view-core.js b/packages/core-js/internals/array-buffer-view-core.js index 14d2d1c0e798..ef8944c199b7 100644 --- a/packages/core-js/internals/array-buffer-view-core.js +++ b/packages/core-js/internals/array-buffer-view-core.js @@ -1,6 +1,5 @@ 'use strict'; var NATIVE_ARRAY_BUFFER = require('../internals/array-buffer-basic-detection'); -var DESCRIPTORS = require('../internals/descriptors'); var globalThis = require('../internals/global-this'); var isCallable = require('../internals/is-callable'); var isObject = require('../internals/is-object'); @@ -86,7 +85,6 @@ var aTypedArrayConstructor = function (C) { }; var exportTypedArrayMethod = function (KEY, property, forced, options) { - if (!DESCRIPTORS) return; if (forced) for (var ARRAY in TypedArrayConstructorsList) { var TypedArrayConstructor = globalThis[ARRAY]; if (TypedArrayConstructor && hasOwn(TypedArrayConstructor.prototype, KEY)) try { @@ -106,7 +104,6 @@ var exportTypedArrayMethod = function (KEY, property, forced, options) { var exportTypedArrayStaticMethod = function (KEY, property, forced) { var ARRAY, TypedArrayConstructor; - if (!DESCRIPTORS) return; if (setPrototypeOf) { if (forced) for (ARRAY in TypedArrayConstructorsList) { TypedArrayConstructor = globalThis[ARRAY]; @@ -165,7 +162,7 @@ if (NATIVE_ARRAY_BUFFER_VIEWS && getPrototypeOf(Uint8ClampedArrayPrototype) !== setPrototypeOf(Uint8ClampedArrayPrototype, TypedArrayPrototype); } -if (DESCRIPTORS && !hasOwn(TypedArrayPrototype, TO_STRING_TAG)) { +if (!hasOwn(TypedArrayPrototype, TO_STRING_TAG)) { TYPED_ARRAY_TAG_REQUIRED = true; defineBuiltInAccessor(TypedArrayPrototype, TO_STRING_TAG, { configurable: true, diff --git a/packages/core-js/internals/array-buffer.js b/packages/core-js/internals/array-buffer.js index 6cd44ac80fbd..df5e6be0b1df 100644 --- a/packages/core-js/internals/array-buffer.js +++ b/packages/core-js/internals/array-buffer.js @@ -1,7 +1,6 @@ 'use strict'; var globalThis = require('../internals/global-this'); var uncurryThis = require('../internals/function-uncurry-this'); -var DESCRIPTORS = require('../internals/descriptors'); var NATIVE_ARRAY_BUFFER = require('../internals/array-buffer-basic-detection'); var FunctionName = require('../internals/function-name'); var createNonEnumerableProperty = require('../internals/create-non-enumerable-property'); @@ -111,10 +110,6 @@ if (!NATIVE_ARRAY_BUFFER) { bytes: fill(Array(byteLength), 0), byteLength: byteLength }); - if (!DESCRIPTORS) { - this.byteLength = byteLength; - this.detached = false; - } }; ArrayBufferPrototype = $ArrayBuffer[PROTOTYPE]; @@ -135,21 +130,14 @@ if (!NATIVE_ARRAY_BUFFER) { byteOffset: offset, bytes: bufferState.bytes }); - if (!DESCRIPTORS) { - this.buffer = buffer; - this.byteLength = byteLength; - this.byteOffset = offset; - } }; DataViewPrototype = $DataView[PROTOTYPE]; - if (DESCRIPTORS) { - addGetter($ArrayBuffer, 'byteLength', getInternalArrayBufferState); - addGetter($DataView, 'buffer', getInternalDataViewState); - addGetter($DataView, 'byteLength', getInternalDataViewState); - addGetter($DataView, 'byteOffset', getInternalDataViewState); - } + addGetter($ArrayBuffer, 'byteLength', getInternalArrayBufferState); + addGetter($DataView, 'buffer', getInternalDataViewState); + addGetter($DataView, 'byteLength', getInternalDataViewState); + addGetter($DataView, 'byteOffset', getInternalDataViewState); defineBuiltIns(DataViewPrototype, { getInt8: function getInt8(byteOffset) { diff --git a/packages/core-js/internals/array-set-length.js b/packages/core-js/internals/array-set-length.js index 532428026143..4b0d13666875 100644 --- a/packages/core-js/internals/array-set-length.js +++ b/packages/core-js/internals/array-set-length.js @@ -1,5 +1,4 @@ 'use strict'; -var DESCRIPTORS = require('../internals/descriptors'); var isArray = require('../internals/is-array'); var $TypeError = TypeError; @@ -7,7 +6,7 @@ var $TypeError = TypeError; var getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor; // Safari < 13 does not throw an error in this case -var SILENT_ON_NON_WRITABLE_LENGTH_SET = DESCRIPTORS && !function () { +var SILENT_ON_NON_WRITABLE_LENGTH_SET = !function () { // makes no sense without proper strict mode support if (this !== undefined) return true; try { diff --git a/packages/core-js/internals/collection-strong.js b/packages/core-js/internals/collection-strong.js index cea1107e0e22..b6fd3ea43dbe 100644 --- a/packages/core-js/internals/collection-strong.js +++ b/packages/core-js/internals/collection-strong.js @@ -9,7 +9,6 @@ var iterate = require('../internals/iterate'); var defineIterator = require('../internals/iterator-define'); var createIterResultObject = require('../internals/create-iter-result-object'); var setSpecies = require('../internals/set-species'); -var DESCRIPTORS = require('../internals/descriptors'); var fastKey = require('../internals/internal-metadata').fastKey; var InternalStateModule = require('../internals/internal-state'); @@ -27,7 +26,6 @@ module.exports = { last: null, size: 0 }); - if (!DESCRIPTORS) that.size = 0; if (!isNullOrUndefined(iterable)) iterate(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP }); }); @@ -54,8 +52,7 @@ module.exports = { }; if (!state.first) state.first = entry; if (previous) previous.next = entry; - if (DESCRIPTORS) state.size++; - else that.size++; + state.size++; // add to index if (index !== 'F') state.index[index] = entry; } return that; @@ -88,8 +85,7 @@ module.exports = { } state.first = state.last = null; state.index = create(null); - if (DESCRIPTORS) state.size = 0; - else that.size = 0; + state.size = 0; }, // `{ Map, Set }.prototype.delete(key)` methods // https://tc39.es/ecma262/#sec-map.prototype.delete @@ -107,8 +103,7 @@ module.exports = { if (next) next.previous = prev; if (state.first === entry) state.first = next; if (state.last === entry) state.last = prev; - if (DESCRIPTORS) state.size--; - else that.size--; + state.size--; } return !!entry; }, // `{ Map, Set }.prototype.forEach(callbackfn, thisArg = undefined)` methods @@ -151,7 +146,7 @@ module.exports = { return define(this, value = value === 0 ? 0 : value, value); } }); - if (DESCRIPTORS) defineBuiltInAccessor(Prototype, 'size', { + defineBuiltInAccessor(Prototype, 'size', { configurable: true, get: function () { return getInternalState(this).size; diff --git a/packages/core-js/internals/create-non-enumerable-property.js b/packages/core-js/internals/create-non-enumerable-property.js index 718c3a597e29..4f626eadc397 100644 --- a/packages/core-js/internals/create-non-enumerable-property.js +++ b/packages/core-js/internals/create-non-enumerable-property.js @@ -1,11 +1,7 @@ 'use strict'; -var DESCRIPTORS = require('../internals/descriptors'); var definePropertyModule = require('../internals/object-define-property'); var createPropertyDescriptor = require('../internals/create-property-descriptor'); -module.exports = DESCRIPTORS ? function (object, key, value) { +module.exports = function (object, key, value) { return definePropertyModule.f(object, key, createPropertyDescriptor(1, value)); -} : function (object, key, value) { - object[key] = value; - return object; }; diff --git a/packages/core-js/internals/create-property.js b/packages/core-js/internals/create-property.js index e7f618832de4..943b3cfac3e0 100644 --- a/packages/core-js/internals/create-property.js +++ b/packages/core-js/internals/create-property.js @@ -1,9 +1,7 @@ 'use strict'; -var DESCRIPTORS = require('../internals/descriptors'); var definePropertyModule = require('../internals/object-define-property'); var createPropertyDescriptor = require('../internals/create-property-descriptor'); module.exports = function (object, key, value) { - if (DESCRIPTORS) definePropertyModule.f(object, key, createPropertyDescriptor(0, value)); - else object[key] = value; + definePropertyModule.f(object, key, createPropertyDescriptor(0, value)); }; diff --git a/packages/core-js/internals/descriptors.js b/packages/core-js/internals/descriptors.js deleted file mode 100644 index 7d6f24ab1e4d..000000000000 --- a/packages/core-js/internals/descriptors.js +++ /dev/null @@ -1,8 +0,0 @@ -'use strict'; -var fails = require('../internals/fails'); - -// Detect IE8's incomplete defineProperty implementation -module.exports = !fails(function () { - // eslint-disable-next-line es/no-object-defineproperty -- required for testing - return Object.defineProperty({}, 1, { get: function () { return 7; } })[1] !== 7; -}); diff --git a/packages/core-js/internals/entry-virtual.js b/packages/core-js/internals/entry-virtual.js deleted file mode 100644 index 948d83f1817b..000000000000 --- a/packages/core-js/internals/entry-virtual.js +++ /dev/null @@ -1,6 +0,0 @@ -'use strict'; -var globalThis = require('../internals/global-this'); - -module.exports = function (CONSTRUCTOR) { - return globalThis[CONSTRUCTOR].prototype; -}; diff --git a/packages/core-js/internals/error-to-string.js b/packages/core-js/internals/error-to-string.js index 0fdb8ee793cf..2a87ce399ed1 100644 --- a/packages/core-js/internals/error-to-string.js +++ b/packages/core-js/internals/error-to-string.js @@ -1,5 +1,4 @@ 'use strict'; -var DESCRIPTORS = require('../internals/descriptors'); var fails = require('../internals/fails'); var anObject = require('../internals/an-object'); var normalizeStringArgument = require('../internals/normalize-string-argument'); @@ -7,16 +6,14 @@ var normalizeStringArgument = require('../internals/normalize-string-argument'); var nativeErrorToString = Error.prototype.toString; var INCORRECT_TO_STRING = fails(function () { - if (DESCRIPTORS) { - // Chrome 32- incorrectly call accessor - // eslint-disable-next-line es/no-object-create, es/no-object-defineproperty -- safe - var object = Object.create(Object.defineProperty({}, 'name', { get: function () { - return this === object; - } })); - if (nativeErrorToString.call(object) !== 'true') return true; - } - // FF10- does not properly handle non-strings - return nativeErrorToString.call({ message: 1, name: 2 }) !== '2: 1' + // Chrome 32- incorrectly call accessor + // eslint-disable-next-line es/no-object-create, es/no-object-defineproperty -- safe + var object = Object.create(Object.defineProperty({}, 'name', { get: function () { + return this === object; + } })); + return nativeErrorToString.call(object) !== 'true' + // FF10- does not properly handle non-strings + || nativeErrorToString.call({ message: 1, name: 2 }) !== '2: 1' // IE8 does not properly handle defaults || nativeErrorToString.call({}) !== 'Error'; }); diff --git a/packages/core-js/internals/function-name.js b/packages/core-js/internals/function-name.js index ce6fdd9ed31b..0afc1165d6c1 100644 --- a/packages/core-js/internals/function-name.js +++ b/packages/core-js/internals/function-name.js @@ -1,15 +1,14 @@ 'use strict'; -var DESCRIPTORS = require('../internals/descriptors'); var hasOwn = require('../internals/has-own-property'); var FunctionPrototype = Function.prototype; // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe -var getDescriptor = DESCRIPTORS && Object.getOwnPropertyDescriptor; +var getDescriptor = Object.getOwnPropertyDescriptor; var EXISTS = hasOwn(FunctionPrototype, 'name'); // additional protection from minified / mangled / dropped function names var PROPER = EXISTS && (function something() { /* empty */ }).name === 'something'; -var CONFIGURABLE = EXISTS && (!DESCRIPTORS || (DESCRIPTORS && getDescriptor(FunctionPrototype, 'name').configurable)); +var CONFIGURABLE = EXISTS && getDescriptor(FunctionPrototype, 'name').configurable; module.exports = { EXISTS: EXISTS, diff --git a/packages/core-js/internals/ie8-dom-define.js b/packages/core-js/internals/ie8-dom-define.js deleted file mode 100644 index 22719e88807e..000000000000 --- a/packages/core-js/internals/ie8-dom-define.js +++ /dev/null @@ -1,12 +0,0 @@ -'use strict'; -var DESCRIPTORS = require('../internals/descriptors'); -var fails = require('../internals/fails'); -var createElement = require('../internals/document-create-element'); - -// Thanks to IE8 for its funny defineProperty -module.exports = !DESCRIPTORS && !fails(function () { - // eslint-disable-next-line es/no-object-defineproperty -- required for testing - return Object.defineProperty(createElement('div'), 'a', { - get: function () { return 7; } - }).a !== 7; -}); diff --git a/packages/core-js/internals/make-built-in.js b/packages/core-js/internals/make-built-in.js index 574309851270..46e62092e73e 100644 --- a/packages/core-js/internals/make-built-in.js +++ b/packages/core-js/internals/make-built-in.js @@ -3,7 +3,6 @@ var uncurryThis = require('../internals/function-uncurry-this'); var fails = require('../internals/fails'); var isCallable = require('../internals/is-callable'); var hasOwn = require('../internals/has-own-property'); -var DESCRIPTORS = require('../internals/descriptors'); var CONFIGURABLE_FUNCTION_NAME = require('../internals/function-name').CONFIGURABLE; var inspectSource = require('../internals/inspect-source'); var InternalStateModule = require('../internals/internal-state'); @@ -17,7 +16,7 @@ var stringSlice = uncurryThis(''.slice); var replace = uncurryThis(''.replace); var join = uncurryThis([].join); -var CONFIGURABLE_LENGTH = DESCRIPTORS && !fails(function () { +var CONFIGURABLE_LENGTH = !fails(function () { return defineProperty(function () { /* empty */ }, 'length', { value: 8 }).length !== 8; }); @@ -30,15 +29,14 @@ var makeBuiltIn = module.exports = function (value, name, options) { if (options && options.getter) name = 'get ' + name; if (options && options.setter) name = 'set ' + name; if (!hasOwn(value, 'name') || (CONFIGURABLE_FUNCTION_NAME && value.name !== name)) { - if (DESCRIPTORS) defineProperty(value, 'name', { value: name, configurable: true }); - else value.name = name; + defineProperty(value, 'name', { value: name, configurable: true }); } if (CONFIGURABLE_LENGTH && options && hasOwn(options, 'arity') && value.length !== options.arity) { defineProperty(value, 'length', { value: options.arity }); } try { if (options && hasOwn(options, 'constructor') && options.constructor) { - if (DESCRIPTORS) defineProperty(value, 'prototype', { writable: false }); + defineProperty(value, 'prototype', { writable: false }); // in V8 ~ Chrome 53, prototypes of some methods, like `Array.prototype.values`, are non-writable } else if (value.prototype) value.prototype = undefined; } catch (error) { /* empty */ } diff --git a/packages/core-js/internals/object-assign.js b/packages/core-js/internals/object-assign.js index e102548359bd..c765336bc352 100644 --- a/packages/core-js/internals/object-assign.js +++ b/packages/core-js/internals/object-assign.js @@ -1,5 +1,4 @@ 'use strict'; -var DESCRIPTORS = require('../internals/descriptors'); var uncurryThis = require('../internals/function-uncurry-this'); var call = require('../internals/function-call'); var fails = require('../internals/fails'); @@ -19,7 +18,7 @@ var concat = uncurryThis([].concat); // https://tc39.es/ecma262/#sec-object.assign module.exports = !$assign || fails(function () { // should have correct order of operations (Edge bug) - if (DESCRIPTORS && $assign({ b: 1 }, $assign(defineProperty({}, 'a', { + if ($assign({ b: 1 }, $assign(defineProperty({}, 'a', { enumerable: true, get: function () { defineProperty(this, 'b', { @@ -52,7 +51,7 @@ module.exports = !$assign || fails(function () { var key; while (length > j) { key = keys[j++]; - if (!DESCRIPTORS || call(propertyIsEnumerable, S, key)) T[key] = S[key]; + if (call(propertyIsEnumerable, S, key)) T[key] = S[key]; } } return T; } : $assign; diff --git a/packages/core-js/internals/object-define-properties.js b/packages/core-js/internals/object-define-properties.js index 1a1d1bd48d6f..a3d9a2c41acd 100644 --- a/packages/core-js/internals/object-define-properties.js +++ b/packages/core-js/internals/object-define-properties.js @@ -1,5 +1,4 @@ 'use strict'; -var DESCRIPTORS = require('../internals/descriptors'); var V8_PROTOTYPE_DEFINE_BUG = require('../internals/v8-prototype-define-bug'); var definePropertyModule = require('../internals/object-define-property'); var anObject = require('../internals/an-object'); @@ -9,7 +8,7 @@ var objectKeys = require('../internals/object-keys'); // `Object.defineProperties` method // https://tc39.es/ecma262/#sec-object.defineproperties // eslint-disable-next-line es/no-object-defineproperties -- safe -exports.f = DESCRIPTORS && !V8_PROTOTYPE_DEFINE_BUG ? Object.defineProperties : function defineProperties(O, Properties) { +exports.f = !V8_PROTOTYPE_DEFINE_BUG ? Object.defineProperties : function defineProperties(O, Properties) { anObject(O); var props = toIndexedObject(Properties); var keys = objectKeys(Properties); diff --git a/packages/core-js/internals/object-define-property.js b/packages/core-js/internals/object-define-property.js index 704d6166835f..a193183bbdbf 100644 --- a/packages/core-js/internals/object-define-property.js +++ b/packages/core-js/internals/object-define-property.js @@ -1,11 +1,8 @@ 'use strict'; -var DESCRIPTORS = require('../internals/descriptors'); -var IE8_DOM_DEFINE = require('../internals/ie8-dom-define'); var V8_PROTOTYPE_DEFINE_BUG = require('../internals/v8-prototype-define-bug'); var anObject = require('../internals/an-object'); var toPropertyKey = require('../internals/to-property-key'); -var $TypeError = TypeError; // eslint-disable-next-line es/no-object-defineproperty -- safe var $defineProperty = Object.defineProperty; // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe @@ -16,7 +13,7 @@ var WRITABLE = 'writable'; // `Object.defineProperty` method // https://tc39.es/ecma262/#sec-object.defineproperty -exports.f = DESCRIPTORS ? V8_PROTOTYPE_DEFINE_BUG ? function defineProperty(O, P, Attributes) { +exports.f = V8_PROTOTYPE_DEFINE_BUG ? function defineProperty(O, P, Attributes) { anObject(O); P = toPropertyKey(P); anObject(Attributes); @@ -31,14 +28,4 @@ exports.f = DESCRIPTORS ? V8_PROTOTYPE_DEFINE_BUG ? function defineProperty(O, P }; } } return $defineProperty(O, P, Attributes); -} : $defineProperty : function defineProperty(O, P, Attributes) { - anObject(O); - P = toPropertyKey(P); - anObject(Attributes); - if (IE8_DOM_DEFINE) try { - return $defineProperty(O, P, Attributes); - } catch (error) { /* empty */ } - if ('get' in Attributes || 'set' in Attributes) throw new $TypeError('Accessors not supported'); - if ('value' in Attributes) O[P] = Attributes.value; - return O; -}; +} : $defineProperty; diff --git a/packages/core-js/internals/object-get-own-property-descriptor.js b/packages/core-js/internals/object-get-own-property-descriptor.js index 1fd418128b0c..3e5e9dacb580 100644 --- a/packages/core-js/internals/object-get-own-property-descriptor.js +++ b/packages/core-js/internals/object-get-own-property-descriptor.js @@ -1,23 +1,7 @@ 'use strict'; -var DESCRIPTORS = require('../internals/descriptors'); -var call = require('../internals/function-call'); -var propertyIsEnumerableModule = require('../internals/object-property-is-enumerable'); -var createPropertyDescriptor = require('../internals/create-property-descriptor'); -var toIndexedObject = require('../internals/to-indexed-object'); -var toPropertyKey = require('../internals/to-property-key'); -var hasOwn = require('../internals/has-own-property'); -var IE8_DOM_DEFINE = require('../internals/ie8-dom-define'); - // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe var $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor; // `Object.getOwnPropertyDescriptor` method // https://tc39.es/ecma262/#sec-object.getownpropertydescriptor -exports.f = DESCRIPTORS ? $getOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) { - O = toIndexedObject(O); - P = toPropertyKey(P); - if (IE8_DOM_DEFINE) try { - return $getOwnPropertyDescriptor(O, P); - } catch (error) { /* empty */ } - if (hasOwn(O, P)) return createPropertyDescriptor(!call(propertyIsEnumerableModule.f, O, P), O[P]); -}; +exports.f = $getOwnPropertyDescriptor; diff --git a/packages/core-js/internals/object-to-array.js b/packages/core-js/internals/object-to-array.js index 2a84f75f4373..31ea8a2ecc89 100644 --- a/packages/core-js/internals/object-to-array.js +++ b/packages/core-js/internals/object-to-array.js @@ -1,5 +1,4 @@ 'use strict'; -var DESCRIPTORS = require('../internals/descriptors'); var fails = require('../internals/fails'); var uncurryThis = require('../internals/function-uncurry-this'); var objectGetPrototypeOf = require('../internals/object-get-prototype-of'); @@ -12,7 +11,7 @@ var push = uncurryThis([].push); // in some IE versions, `propertyIsEnumerable` returns incorrect result on integer keys // of `null` prototype objects -var IE_BUG = DESCRIPTORS && fails(function () { +var IE_BUG = fails(function () { // eslint-disable-next-line es/no-object-create -- safe var O = Object.create(null); O[2] = 2; @@ -31,7 +30,7 @@ var createMethod = function (TO_ENTRIES) { var key; while (length > i) { key = keys[i++]; - if (!DESCRIPTORS || (IE_WORKAROUND ? key in O : propertyIsEnumerable(O, key))) { + if (IE_WORKAROUND ? key in O : propertyIsEnumerable(O, key)) { push(result, TO_ENTRIES ? [key, O[key]] : O[key]); } } diff --git a/packages/core-js/internals/safe-get-built-in.js b/packages/core-js/internals/safe-get-built-in.js index 7185174b36e0..1f8faf623259 100644 --- a/packages/core-js/internals/safe-get-built-in.js +++ b/packages/core-js/internals/safe-get-built-in.js @@ -1,13 +1,11 @@ 'use strict'; var globalThis = require('../internals/global-this'); -var DESCRIPTORS = require('../internals/descriptors'); // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe var getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor; // Avoid NodeJS experimental warning module.exports = function (name) { - if (!DESCRIPTORS) return globalThis[name]; var descriptor = getOwnPropertyDescriptor(globalThis, name); return descriptor && descriptor.value; }; diff --git a/packages/core-js/internals/set-species.js b/packages/core-js/internals/set-species.js index fd92a4de8410..3d979debab8e 100644 --- a/packages/core-js/internals/set-species.js +++ b/packages/core-js/internals/set-species.js @@ -2,14 +2,13 @@ var getBuiltIn = require('../internals/get-built-in'); var defineBuiltInAccessor = require('../internals/define-built-in-accessor'); var wellKnownSymbol = require('../internals/well-known-symbol'); -var DESCRIPTORS = require('../internals/descriptors'); var SPECIES = wellKnownSymbol('species'); module.exports = function (CONSTRUCTOR_NAME) { var Constructor = getBuiltIn(CONSTRUCTOR_NAME); - if (DESCRIPTORS && Constructor && !Constructor[SPECIES]) { + if (Constructor && !Constructor[SPECIES]) { defineBuiltInAccessor(Constructor, SPECIES, { configurable: true, get: function () { return this; } diff --git a/packages/core-js/internals/typed-array-constructor.js b/packages/core-js/internals/typed-array-constructor.js index b7046a3c337f..da7d33763aa4 100644 --- a/packages/core-js/internals/typed-array-constructor.js +++ b/packages/core-js/internals/typed-array-constructor.js @@ -2,7 +2,6 @@ var $ = require('../internals/export'); var globalThis = require('../internals/global-this'); var call = require('../internals/function-call'); -var DESCRIPTORS = require('../internals/descriptors'); var TYPED_ARRAYS_CONSTRUCTORS_REQUIRES_WRAPPERS = require('../internals/typed-array-constructors-require-wrappers'); var ArrayBufferViewCore = require('../internals/array-buffer-view-core'); var ArrayBufferModule = require('../internals/array-buffer'); @@ -96,141 +95,139 @@ var wrappedDefineProperty = function defineProperty(target, key, descriptor) { } return nativeDefineProperty(target, key, descriptor); }; -if (DESCRIPTORS) { - if (!NATIVE_ARRAY_BUFFER_VIEWS) { - getOwnPropertyDescriptorModule.f = wrappedGetOwnPropertyDescriptor; - definePropertyModule.f = wrappedDefineProperty; - addGetter(TypedArrayPrototype, 'buffer'); - addGetter(TypedArrayPrototype, 'byteOffset'); - addGetter(TypedArrayPrototype, 'byteLength'); - addGetter(TypedArrayPrototype, 'length'); - } - - $({ target: 'Object', stat: true, forced: !NATIVE_ARRAY_BUFFER_VIEWS }, { - getOwnPropertyDescriptor: wrappedGetOwnPropertyDescriptor, - defineProperty: wrappedDefineProperty - }); +if (!NATIVE_ARRAY_BUFFER_VIEWS) { + getOwnPropertyDescriptorModule.f = wrappedGetOwnPropertyDescriptor; + definePropertyModule.f = wrappedDefineProperty; + addGetter(TypedArrayPrototype, 'buffer'); + addGetter(TypedArrayPrototype, 'byteOffset'); + addGetter(TypedArrayPrototype, 'byteLength'); + addGetter(TypedArrayPrototype, 'length'); +} + +$({ target: 'Object', stat: true, forced: !NATIVE_ARRAY_BUFFER_VIEWS }, { + getOwnPropertyDescriptor: wrappedGetOwnPropertyDescriptor, + defineProperty: wrappedDefineProperty +}); + +module.exports = function (TYPE, wrapper, CLAMPED) { + var BYTES = TYPE.match(/\d+/)[0] / 8; + var CONSTRUCTOR_NAME = TYPE + (CLAMPED ? 'Clamped' : '') + 'Array'; + var GETTER = 'get' + TYPE; + var SETTER = 'set' + TYPE; + var NativeTypedArrayConstructor = globalThis[CONSTRUCTOR_NAME]; + var TypedArrayConstructor = NativeTypedArrayConstructor; + var TypedArrayConstructorPrototype = TypedArrayConstructor && TypedArrayConstructor.prototype; + var exported = {}; + + var getter = function (that, index) { + var data = getInternalState(that); + return data.view[GETTER](index * BYTES + data.byteOffset, true); + }; - module.exports = function (TYPE, wrapper, CLAMPED) { - var BYTES = TYPE.match(/\d+/)[0] / 8; - var CONSTRUCTOR_NAME = TYPE + (CLAMPED ? 'Clamped' : '') + 'Array'; - var GETTER = 'get' + TYPE; - var SETTER = 'set' + TYPE; - var NativeTypedArrayConstructor = globalThis[CONSTRUCTOR_NAME]; - var TypedArrayConstructor = NativeTypedArrayConstructor; - var TypedArrayConstructorPrototype = TypedArrayConstructor && TypedArrayConstructor.prototype; - var exported = {}; - - var getter = function (that, index) { - var data = getInternalState(that); - return data.view[GETTER](index * BYTES + data.byteOffset, true); - }; - - var setter = function (that, index, value) { - var data = getInternalState(that); - data.view[SETTER](index * BYTES + data.byteOffset, CLAMPED ? toUint8Clamped(value) : value, true); - }; - - var addElement = function (that, index) { - nativeDefineProperty(that, index, { - get: function () { - return getter(this, index); - }, - set: function (value) { - return setter(this, index, value); - }, - enumerable: true - }); - }; - - if (!NATIVE_ARRAY_BUFFER_VIEWS) { - TypedArrayConstructor = wrapper(function (that, data, offset, $length) { - anInstance(that, TypedArrayConstructorPrototype); - var index = 0; - var byteOffset = 0; - var buffer, byteLength, length; - if (!isObject(data)) { - length = toIndex(data); - byteLength = length * BYTES; - buffer = new ArrayBuffer(byteLength); - } else if (isArrayBuffer(data)) { - buffer = data; - byteOffset = toOffset(offset, BYTES); - var $len = data.byteLength; - if ($length === undefined) { - if ($len % BYTES) throw new RangeError(WRONG_LENGTH); - byteLength = $len - byteOffset; - if (byteLength < 0) throw new RangeError(WRONG_LENGTH); - } else { - byteLength = toLength($length) * BYTES; - if (byteLength + byteOffset > $len) throw new RangeError(WRONG_LENGTH); - } - length = byteLength / BYTES; - } else if (isTypedArray(data)) { - return arrayFromConstructorAndList(TypedArrayConstructor, data); - } else { - return call(typedArrayFrom, TypedArrayConstructor, data); - } - setInternalState(that, { - buffer: buffer, - byteOffset: byteOffset, - byteLength: byteLength, - length: length, - view: new DataView(buffer) - }); - while (index < length) addElement(that, index++); - }); + var setter = function (that, index, value) { + var data = getInternalState(that); + data.view[SETTER](index * BYTES + data.byteOffset, CLAMPED ? toUint8Clamped(value) : value, true); + }; - if (setPrototypeOf) setPrototypeOf(TypedArrayConstructor, TypedArray); - TypedArrayConstructorPrototype = TypedArrayConstructor.prototype = create(TypedArrayPrototype); - } else if (TYPED_ARRAYS_CONSTRUCTORS_REQUIRES_WRAPPERS) { - TypedArrayConstructor = wrapper(function (dummy, data, typedArrayOffset, $length) { - anInstance(dummy, TypedArrayConstructorPrototype); - return inheritIfRequired(function () { - if (!isObject(data)) return new NativeTypedArrayConstructor(toIndex(data)); - if (isArrayBuffer(data)) return $length !== undefined - ? new NativeTypedArrayConstructor(data, toOffset(typedArrayOffset, BYTES), $length) - : typedArrayOffset !== undefined - ? new NativeTypedArrayConstructor(data, toOffset(typedArrayOffset, BYTES)) - : new NativeTypedArrayConstructor(data); - if (isTypedArray(data)) return arrayFromConstructorAndList(TypedArrayConstructor, data); - return call(typedArrayFrom, TypedArrayConstructor, data); - }(), dummy, TypedArrayConstructor); - }); + var addElement = function (that, index) { + nativeDefineProperty(that, index, { + get: function () { + return getter(this, index); + }, + set: function (value) { + return setter(this, index, value); + }, + enumerable: true + }); + }; - if (setPrototypeOf) setPrototypeOf(TypedArrayConstructor, TypedArray); - forEach(getOwnPropertyNames(NativeTypedArrayConstructor), function (key) { - if (!(key in TypedArrayConstructor)) { - createNonEnumerableProperty(TypedArrayConstructor, key, NativeTypedArrayConstructor[key]); + if (!NATIVE_ARRAY_BUFFER_VIEWS) { + TypedArrayConstructor = wrapper(function (that, data, offset, $length) { + anInstance(that, TypedArrayConstructorPrototype); + var index = 0; + var byteOffset = 0; + var buffer, byteLength, length; + if (!isObject(data)) { + length = toIndex(data); + byteLength = length * BYTES; + buffer = new ArrayBuffer(byteLength); + } else if (isArrayBuffer(data)) { + buffer = data; + byteOffset = toOffset(offset, BYTES); + var $len = data.byteLength; + if ($length === undefined) { + if ($len % BYTES) throw new RangeError(WRONG_LENGTH); + byteLength = $len - byteOffset; + if (byteLength < 0) throw new RangeError(WRONG_LENGTH); + } else { + byteLength = toLength($length) * BYTES; + if (byteLength + byteOffset > $len) throw new RangeError(WRONG_LENGTH); } + length = byteLength / BYTES; + } else if (isTypedArray(data)) { + return arrayFromConstructorAndList(TypedArrayConstructor, data); + } else { + return call(typedArrayFrom, TypedArrayConstructor, data); + } + setInternalState(that, { + buffer: buffer, + byteOffset: byteOffset, + byteLength: byteLength, + length: length, + view: new DataView(buffer) }); - TypedArrayConstructor.prototype = TypedArrayConstructorPrototype; - } + while (index < length) addElement(that, index++); + }); + + if (setPrototypeOf) setPrototypeOf(TypedArrayConstructor, TypedArray); + TypedArrayConstructorPrototype = TypedArrayConstructor.prototype = create(TypedArrayPrototype); + } else if (TYPED_ARRAYS_CONSTRUCTORS_REQUIRES_WRAPPERS) { + TypedArrayConstructor = wrapper(function (dummy, data, typedArrayOffset, $length) { + anInstance(dummy, TypedArrayConstructorPrototype); + return inheritIfRequired(function () { + if (!isObject(data)) return new NativeTypedArrayConstructor(toIndex(data)); + if (isArrayBuffer(data)) return $length !== undefined + ? new NativeTypedArrayConstructor(data, toOffset(typedArrayOffset, BYTES), $length) + : typedArrayOffset !== undefined + ? new NativeTypedArrayConstructor(data, toOffset(typedArrayOffset, BYTES)) + : new NativeTypedArrayConstructor(data); + if (isTypedArray(data)) return arrayFromConstructorAndList(TypedArrayConstructor, data); + return call(typedArrayFrom, TypedArrayConstructor, data); + }(), dummy, TypedArrayConstructor); + }); + + if (setPrototypeOf) setPrototypeOf(TypedArrayConstructor, TypedArray); + forEach(getOwnPropertyNames(NativeTypedArrayConstructor), function (key) { + if (!(key in TypedArrayConstructor)) { + createNonEnumerableProperty(TypedArrayConstructor, key, NativeTypedArrayConstructor[key]); + } + }); + TypedArrayConstructor.prototype = TypedArrayConstructorPrototype; + } - if (TypedArrayConstructorPrototype.constructor !== TypedArrayConstructor) { - createNonEnumerableProperty(TypedArrayConstructorPrototype, 'constructor', TypedArrayConstructor); - } + if (TypedArrayConstructorPrototype.constructor !== TypedArrayConstructor) { + createNonEnumerableProperty(TypedArrayConstructorPrototype, 'constructor', TypedArrayConstructor); + } - enforceInternalState(TypedArrayConstructorPrototype).TypedArrayConstructor = TypedArrayConstructor; + enforceInternalState(TypedArrayConstructorPrototype).TypedArrayConstructor = TypedArrayConstructor; - if (TYPED_ARRAY_TAG) { - createNonEnumerableProperty(TypedArrayConstructorPrototype, TYPED_ARRAY_TAG, CONSTRUCTOR_NAME); - } + if (TYPED_ARRAY_TAG) { + createNonEnumerableProperty(TypedArrayConstructorPrototype, TYPED_ARRAY_TAG, CONSTRUCTOR_NAME); + } - var FORCED = TypedArrayConstructor !== NativeTypedArrayConstructor; + var FORCED = TypedArrayConstructor !== NativeTypedArrayConstructor; - exported[CONSTRUCTOR_NAME] = TypedArrayConstructor; + exported[CONSTRUCTOR_NAME] = TypedArrayConstructor; - $({ global: true, constructor: true, forced: FORCED, sham: !NATIVE_ARRAY_BUFFER_VIEWS }, exported); + $({ global: true, constructor: true, forced: FORCED, sham: !NATIVE_ARRAY_BUFFER_VIEWS }, exported); - if (!(BYTES_PER_ELEMENT in TypedArrayConstructor)) { - createNonEnumerableProperty(TypedArrayConstructor, BYTES_PER_ELEMENT, BYTES); - } + if (!(BYTES_PER_ELEMENT in TypedArrayConstructor)) { + createNonEnumerableProperty(TypedArrayConstructor, BYTES_PER_ELEMENT, BYTES); + } - if (!(BYTES_PER_ELEMENT in TypedArrayConstructorPrototype)) { - createNonEnumerableProperty(TypedArrayConstructorPrototype, BYTES_PER_ELEMENT, BYTES); - } + if (!(BYTES_PER_ELEMENT in TypedArrayConstructorPrototype)) { + createNonEnumerableProperty(TypedArrayConstructorPrototype, BYTES_PER_ELEMENT, BYTES); + } - setSpecies(CONSTRUCTOR_NAME); - }; -} else module.exports = function () { /* empty */ }; + setSpecies(CONSTRUCTOR_NAME); +}; diff --git a/packages/core-js/internals/url-constructor-detection.js b/packages/core-js/internals/url-constructor-detection.js index 5a67c99da5b9..6f11112c2486 100644 --- a/packages/core-js/internals/url-constructor-detection.js +++ b/packages/core-js/internals/url-constructor-detection.js @@ -1,7 +1,6 @@ 'use strict'; var fails = require('../internals/fails'); var wellKnownSymbol = require('../internals/well-known-symbol'); -var DESCRIPTORS = require('../internals/descriptors'); var IS_PURE = require('../internals/is-pure'); var ITERATOR = wellKnownSymbol('iterator'); @@ -22,7 +21,7 @@ module.exports = !fails(function () { // https://bugs.chromium.org/p/v8/issues/detail?id=14222 params2['delete']('b', undefined); return (IS_PURE && (!url.toJSON || !params2.has('a', 1) || params2.has('a', 2) || !params2.has('a', undefined) || params2.has('b'))) - || (!params.size && (IS_PURE || !DESCRIPTORS)) + || (!params.size && IS_PURE) || !params.sort || url.href !== 'https://a/c%20d?a=1&c=3' || params.get('c') !== '3' diff --git a/packages/core-js/internals/v8-prototype-define-bug.js b/packages/core-js/internals/v8-prototype-define-bug.js index 278d2bf2f580..f7748b4fd886 100644 --- a/packages/core-js/internals/v8-prototype-define-bug.js +++ b/packages/core-js/internals/v8-prototype-define-bug.js @@ -1,10 +1,9 @@ 'use strict'; -var DESCRIPTORS = require('../internals/descriptors'); var fails = require('../internals/fails'); // V8 ~ Chrome 36- // https://bugs.chromium.org/p/v8/issues/detail?id=3334 -module.exports = DESCRIPTORS && fails(function () { +module.exports = fails(function () { // eslint-disable-next-line es/no-object-defineproperty -- required for testing return Object.defineProperty(function () { /* empty */ }, 'prototype', { value: 42, diff --git a/packages/core-js/internals/wrap-error-constructor-with-cause.js b/packages/core-js/internals/wrap-error-constructor-with-cause.js index 5431c5b0a660..4fb16a9f90a4 100644 --- a/packages/core-js/internals/wrap-error-constructor-with-cause.js +++ b/packages/core-js/internals/wrap-error-constructor-with-cause.js @@ -10,7 +10,6 @@ var inheritIfRequired = require('../internals/inherit-if-required'); var normalizeStringArgument = require('../internals/normalize-string-argument'); var installErrorCause = require('../internals/install-error-cause'); var installErrorStack = require('../internals/error-stack-install'); -var DESCRIPTORS = require('../internals/descriptors'); var IS_PURE = require('../internals/is-pure'); module.exports = function (FULL_NAME, wrapper, FORCED, IS_AGGREGATE_ERROR) { @@ -46,7 +45,7 @@ module.exports = function (FULL_NAME, wrapper, FORCED, IS_AGGREGATE_ERROR) { if (ERROR_NAME !== 'Error') { if (setPrototypeOf) setPrototypeOf(WrappedError, BaseError); else copyConstructorProperties(WrappedError, BaseError, { name: true }); - } else if (DESCRIPTORS && STACK_TRACE_LIMIT in OriginalError) { + } else if (STACK_TRACE_LIMIT in OriginalError) { proxyAccessor(WrappedError, OriginalError, STACK_TRACE_LIMIT); proxyAccessor(WrappedError, OriginalError, 'prepareStackTrace'); } diff --git a/packages/core-js/modules/es.array-buffer.detached.js b/packages/core-js/modules/es.array-buffer.detached.js index e718eada533f..6cd9ac54ce90 100644 --- a/packages/core-js/modules/es.array-buffer.detached.js +++ b/packages/core-js/modules/es.array-buffer.detached.js @@ -1,5 +1,4 @@ 'use strict'; -var DESCRIPTORS = require('../internals/descriptors'); var defineBuiltInAccessor = require('../internals/define-built-in-accessor'); var isDetached = require('../internals/array-buffer-is-detached'); @@ -7,7 +6,7 @@ var ArrayBufferPrototype = ArrayBuffer.prototype; // `ArrayBuffer.prototype.detached` getter // https://tc39.es/ecma262/#sec-get-arraybuffer.prototype.detached -if (DESCRIPTORS && !('detached' in ArrayBufferPrototype)) { +if (!('detached' in ArrayBufferPrototype)) { defineBuiltInAccessor(ArrayBufferPrototype, 'detached', { configurable: true, get: function detached() { diff --git a/packages/core-js/modules/es.array.iterator.js b/packages/core-js/modules/es.array.iterator.js index 3b5af9ab9bc3..b9f4915c71f3 100644 --- a/packages/core-js/modules/es.array.iterator.js +++ b/packages/core-js/modules/es.array.iterator.js @@ -7,7 +7,6 @@ var defineProperty = require('../internals/object-define-property').f; var defineIterator = require('../internals/iterator-define'); var createIterResultObject = require('../internals/create-iter-result-object'); var IS_PURE = require('../internals/is-pure'); -var DESCRIPTORS = require('../internals/descriptors'); var ARRAY_ITERATOR = 'Array Iterator'; var setInternalState = InternalStateModule.set; @@ -57,6 +56,6 @@ addToUnscopables('values'); addToUnscopables('entries'); // V8 ~ Chrome 45- bug -if (!IS_PURE && DESCRIPTORS && values.name !== 'values') try { +if (!IS_PURE && values.name !== 'values') try { defineProperty(values, 'name', { value: 'values' }); } catch (error) { /* empty */ } diff --git a/packages/core-js/modules/es.async-disposable-stack.constructor.js b/packages/core-js/modules/es.async-disposable-stack.constructor.js index 58b7276e38bf..d6dedee39378 100644 --- a/packages/core-js/modules/es.async-disposable-stack.constructor.js +++ b/packages/core-js/modules/es.async-disposable-stack.constructor.js @@ -1,7 +1,6 @@ 'use strict'; // https://github.com/tc39/proposal-async-explicit-resource-management var $ = require('../internals/export'); -var DESCRIPTORS = require('../internals/descriptors'); var getBuiltIn = require('../internals/get-built-in'); var aCallable = require('../internals/a-callable'); var anInstance = require('../internals/an-instance'); @@ -40,8 +39,6 @@ var $AsyncDisposableStack = function AsyncDisposableStack() { state: PENDING, stack: [] }); - - if (!DESCRIPTORS) this.disposed = false; }; var AsyncDisposableStackPrototype = $AsyncDisposableStack.prototype; @@ -53,7 +50,6 @@ defineBuiltIns(AsyncDisposableStackPrototype, { var internalState = getAsyncDisposableStackInternalState(asyncDisposableStack); if (internalState.state === DISPOSED) return resolve(undefined); internalState.state = DISPOSED; - if (!DESCRIPTORS) asyncDisposableStack.disposed = true; var stack = internalState.stack; var i = stack.length; var thrown = false; @@ -111,12 +107,11 @@ defineBuiltIns(AsyncDisposableStackPrototype, { getAsyncDisposableStackInternalState(newAsyncDisposableStack).stack = internalState.stack; internalState.stack = []; internalState.state = DISPOSED; - if (!DESCRIPTORS) this.disposed = true; return newAsyncDisposableStack; } }); -if (DESCRIPTORS) defineBuiltInAccessor(AsyncDisposableStackPrototype, 'disposed', { +defineBuiltInAccessor(AsyncDisposableStackPrototype, 'disposed', { configurable: true, get: function disposed() { return getAsyncDisposableStackInternalState(this).state === DISPOSED; diff --git a/packages/core-js/modules/es.disposable-stack.constructor.js b/packages/core-js/modules/es.disposable-stack.constructor.js index 435e21f6a24c..109ad7687886 100644 --- a/packages/core-js/modules/es.disposable-stack.constructor.js +++ b/packages/core-js/modules/es.disposable-stack.constructor.js @@ -1,7 +1,6 @@ 'use strict'; // https://github.com/tc39/proposal-explicit-resource-management var $ = require('../internals/export'); -var DESCRIPTORS = require('../internals/descriptors'); var getBuiltIn = require('../internals/get-built-in'); var aCallable = require('../internals/a-callable'); var anInstance = require('../internals/an-instance'); @@ -38,8 +37,6 @@ var $DisposableStack = function DisposableStack() { state: PENDING, stack: [] }); - - if (!DESCRIPTORS) this.disposed = false; }; var DisposableStackPrototype = $DisposableStack.prototype; @@ -49,7 +46,6 @@ defineBuiltIns(DisposableStackPrototype, { var internalState = getDisposableStackInternalState(this); if (internalState.state === DISPOSED) return; internalState.state = DISPOSED; - if (!DESCRIPTORS) this.disposed = true; var stack = internalState.stack; var i = stack.length; var thrown = false; @@ -94,12 +90,11 @@ defineBuiltIns(DisposableStackPrototype, { getDisposableStackInternalState(newDisposableStack).stack = internalState.stack; internalState.stack = []; internalState.state = DISPOSED; - if (!DESCRIPTORS) this.disposed = true; return newDisposableStack; } }); -if (DESCRIPTORS) defineBuiltInAccessor(DisposableStackPrototype, 'disposed', { +defineBuiltInAccessor(DisposableStackPrototype, 'disposed', { configurable: true, get: function disposed() { return getDisposableStackInternalState(this).state === DISPOSED; diff --git a/packages/core-js/modules/es.function.name.js b/packages/core-js/modules/es.function.name.js index aa833e4c6db5..1d5dac9bca44 100644 --- a/packages/core-js/modules/es.function.name.js +++ b/packages/core-js/modules/es.function.name.js @@ -1,5 +1,4 @@ 'use strict'; -var DESCRIPTORS = require('../internals/descriptors'); var FUNCTION_NAME_EXISTS = require('../internals/function-name').EXISTS; var uncurryThis = require('../internals/function-uncurry-this'); var defineBuiltInAccessor = require('../internals/define-built-in-accessor'); @@ -12,7 +11,7 @@ var NAME = 'name'; // Function instances `.name` property // https://tc39.es/ecma262/#sec-function-instances-name -if (DESCRIPTORS && !FUNCTION_NAME_EXISTS) { +if (!FUNCTION_NAME_EXISTS) { defineBuiltInAccessor(FunctionPrototype, NAME, { configurable: true, get: function () { diff --git a/packages/core-js/modules/es.iterator.constructor.js b/packages/core-js/modules/es.iterator.constructor.js index de4816b558f8..2f79358e7fb5 100644 --- a/packages/core-js/modules/es.iterator.constructor.js +++ b/packages/core-js/modules/es.iterator.constructor.js @@ -11,7 +11,6 @@ var fails = require('../internals/fails'); var hasOwn = require('../internals/has-own-property'); var wellKnownSymbol = require('../internals/well-known-symbol'); var IteratorPrototype = require('../internals/iterators-core').IteratorPrototype; -var DESCRIPTORS = require('../internals/descriptors'); var IS_PURE = require('../internals/is-pure'); var CONSTRUCTOR = 'constructor'; @@ -34,20 +33,18 @@ var IteratorConstructor = function Iterator() { }; var defineIteratorPrototypeAccessor = function (key, value) { - if (DESCRIPTORS) { - defineBuiltInAccessor(IteratorPrototype, key, { - configurable: true, - get: function () { - return value; - }, - set: function (replacement) { - anObject(this); - if (this === IteratorPrototype) throw new $TypeError("You can't redefine this property"); - if (hasOwn(this, key)) this[key] = replacement; - else createProperty(this, key, replacement); - } - }); - } else IteratorPrototype[key] = value; + defineBuiltInAccessor(IteratorPrototype, key, { + configurable: true, + get: function () { + return value; + }, + set: function (replacement) { + anObject(this); + if (this === IteratorPrototype) throw new $TypeError("You can't redefine this property"); + if (hasOwn(this, key)) this[key] = replacement; + else createProperty(this, key, replacement); + } + }); }; if (!hasOwn(IteratorPrototype, TO_STRING_TAG)) defineIteratorPrototypeAccessor(TO_STRING_TAG, ITERATOR); diff --git a/packages/core-js/modules/es.number.constructor.js b/packages/core-js/modules/es.number.constructor.js index a7e856c69dac..d28ce374c399 100644 --- a/packages/core-js/modules/es.number.constructor.js +++ b/packages/core-js/modules/es.number.constructor.js @@ -1,7 +1,6 @@ 'use strict'; var $ = require('../internals/export'); var IS_PURE = require('../internals/is-pure'); -var DESCRIPTORS = require('../internals/descriptors'); var globalThis = require('../internals/global-this'); var path = require('../internals/path'); var uncurryThis = require('../internals/function-uncurry-this'); @@ -97,14 +96,7 @@ $({ global: true, constructor: true, wrap: true, forced: FORCED }, { // Use `internal/copy-constructor-properties` helper in `core-js@4` var copyConstructorProperties = function (target, source) { - for (var keys = DESCRIPTORS ? getOwnPropertyNames(source) : ( - // ES3: - 'MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,' + - // ES2015 (in case, if modules with ES2015 Number statics required before): - 'EPSILON,MAX_SAFE_INTEGER,MIN_SAFE_INTEGER,isFinite,isInteger,isNaN,isSafeInteger,parseFloat,parseInt,' + - // ESNext - 'fromString,range' - ).split(','), j = 0, key; keys.length > j; j++) { + for (var keys = getOwnPropertyNames(source), j = 0, key; keys.length > j; j++) { if (hasOwn(source, key = keys[j]) && !hasOwn(target, key)) { defineProperty(target, key, getOwnPropertyDescriptor(source, key)); } diff --git a/packages/core-js/modules/es.object.create.js b/packages/core-js/modules/es.object.create.js index 5522f62e50f6..83d782bc95f3 100644 --- a/packages/core-js/modules/es.object.create.js +++ b/packages/core-js/modules/es.object.create.js @@ -1,11 +1,10 @@ 'use strict'; // TODO: Remove from `core-js@4` var $ = require('../internals/export'); -var DESCRIPTORS = require('../internals/descriptors'); var create = require('../internals/object-create'); // `Object.create` method // https://tc39.es/ecma262/#sec-object.create -$({ target: 'Object', stat: true, sham: !DESCRIPTORS }, { +$({ target: 'Object', stat: true }, { create: create }); diff --git a/packages/core-js/modules/es.object.define-getter.js b/packages/core-js/modules/es.object.define-getter.js index 50fd442cfc4c..1483a40b3aca 100644 --- a/packages/core-js/modules/es.object.define-getter.js +++ b/packages/core-js/modules/es.object.define-getter.js @@ -1,6 +1,5 @@ 'use strict'; var $ = require('../internals/export'); -var DESCRIPTORS = require('../internals/descriptors'); var FORCED = require('../internals/object-prototype-accessors-forced'); var aCallable = require('../internals/a-callable'); var toObject = require('../internals/to-object'); @@ -8,10 +7,8 @@ var definePropertyModule = require('../internals/object-define-property'); // `Object.prototype.__defineGetter__` method // https://tc39.es/ecma262/#sec-object.prototype.__defineGetter__ -if (DESCRIPTORS) { - $({ target: 'Object', proto: true, forced: FORCED }, { - __defineGetter__: function __defineGetter__(P, getter) { - definePropertyModule.f(toObject(this), P, { get: aCallable(getter), enumerable: true, configurable: true }); - } - }); -} +$({ target: 'Object', proto: true, forced: FORCED }, { + __defineGetter__: function __defineGetter__(P, getter) { + definePropertyModule.f(toObject(this), P, { get: aCallable(getter), enumerable: true, configurable: true }); + } +}); diff --git a/packages/core-js/modules/es.object.define-properties.js b/packages/core-js/modules/es.object.define-properties.js index b19cc6039bd0..a87f24d2b4ee 100644 --- a/packages/core-js/modules/es.object.define-properties.js +++ b/packages/core-js/modules/es.object.define-properties.js @@ -1,11 +1,10 @@ 'use strict'; var $ = require('../internals/export'); -var DESCRIPTORS = require('../internals/descriptors'); var defineProperties = require('../internals/object-define-properties').f; // `Object.defineProperties` method // https://tc39.es/ecma262/#sec-object.defineproperties // eslint-disable-next-line es/no-object-defineproperties -- safe -$({ target: 'Object', stat: true, forced: Object.defineProperties !== defineProperties, sham: !DESCRIPTORS }, { +$({ target: 'Object', stat: true, forced: Object.defineProperties !== defineProperties }, { defineProperties: defineProperties }); diff --git a/packages/core-js/modules/es.object.define-property.js b/packages/core-js/modules/es.object.define-property.js index 691c9c4dbd01..fb767d1c7cf6 100644 --- a/packages/core-js/modules/es.object.define-property.js +++ b/packages/core-js/modules/es.object.define-property.js @@ -1,11 +1,10 @@ 'use strict'; var $ = require('../internals/export'); -var DESCRIPTORS = require('../internals/descriptors'); var defineProperty = require('../internals/object-define-property').f; // `Object.defineProperty` method // https://tc39.es/ecma262/#sec-object.defineproperty // eslint-disable-next-line es/no-object-defineproperty -- safe -$({ target: 'Object', stat: true, forced: Object.defineProperty !== defineProperty, sham: !DESCRIPTORS }, { +$({ target: 'Object', stat: true, forced: Object.defineProperty !== defineProperty }, { defineProperty: defineProperty }); diff --git a/packages/core-js/modules/es.object.define-setter.js b/packages/core-js/modules/es.object.define-setter.js index 186976f3376a..4e6d87278fb8 100644 --- a/packages/core-js/modules/es.object.define-setter.js +++ b/packages/core-js/modules/es.object.define-setter.js @@ -1,6 +1,5 @@ 'use strict'; var $ = require('../internals/export'); -var DESCRIPTORS = require('../internals/descriptors'); var FORCED = require('../internals/object-prototype-accessors-forced'); var aCallable = require('../internals/a-callable'); var toObject = require('../internals/to-object'); @@ -8,10 +7,8 @@ var definePropertyModule = require('../internals/object-define-property'); // `Object.prototype.__defineSetter__` method // https://tc39.es/ecma262/#sec-object.prototype.__defineSetter__ -if (DESCRIPTORS) { - $({ target: 'Object', proto: true, forced: FORCED }, { - __defineSetter__: function __defineSetter__(P, setter) { - definePropertyModule.f(toObject(this), P, { set: aCallable(setter), enumerable: true, configurable: true }); - } - }); -} +$({ target: 'Object', proto: true, forced: FORCED }, { + __defineSetter__: function __defineSetter__(P, setter) { + definePropertyModule.f(toObject(this), P, { set: aCallable(setter), enumerable: true, configurable: true }); + } +}); diff --git a/packages/core-js/modules/es.object.get-own-property-descriptor.js b/packages/core-js/modules/es.object.get-own-property-descriptor.js index 44606a4ad152..7d87260fc4d4 100644 --- a/packages/core-js/modules/es.object.get-own-property-descriptor.js +++ b/packages/core-js/modules/es.object.get-own-property-descriptor.js @@ -3,13 +3,12 @@ var $ = require('../internals/export'); var fails = require('../internals/fails'); var toIndexedObject = require('../internals/to-indexed-object'); var nativeGetOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f; -var DESCRIPTORS = require('../internals/descriptors'); -var FORCED = !DESCRIPTORS || fails(function () { nativeGetOwnPropertyDescriptor(1); }); +var FORCED = fails(function () { nativeGetOwnPropertyDescriptor(1); }); // `Object.getOwnPropertyDescriptor` method // https://tc39.es/ecma262/#sec-object.getownpropertydescriptor -$({ target: 'Object', stat: true, forced: FORCED, sham: !DESCRIPTORS }, { +$({ target: 'Object', stat: true, forced: FORCED }, { getOwnPropertyDescriptor: function getOwnPropertyDescriptor(it, key) { return nativeGetOwnPropertyDescriptor(toIndexedObject(it), key); } diff --git a/packages/core-js/modules/es.object.get-own-property-descriptors.js b/packages/core-js/modules/es.object.get-own-property-descriptors.js index 7c1a22c05981..812b0cf653ab 100644 --- a/packages/core-js/modules/es.object.get-own-property-descriptors.js +++ b/packages/core-js/modules/es.object.get-own-property-descriptors.js @@ -1,6 +1,5 @@ 'use strict'; var $ = require('../internals/export'); -var DESCRIPTORS = require('../internals/descriptors'); var ownKeys = require('../internals/own-keys'); var toIndexedObject = require('../internals/to-indexed-object'); var getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor'); @@ -8,7 +7,7 @@ var createProperty = require('../internals/create-property'); // `Object.getOwnPropertyDescriptors` method // https://tc39.es/ecma262/#sec-object.getownpropertydescriptors -$({ target: 'Object', stat: true, sham: !DESCRIPTORS }, { +$({ target: 'Object', stat: true }, { getOwnPropertyDescriptors: function getOwnPropertyDescriptors(object) { var O = toIndexedObject(object); var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f; diff --git a/packages/core-js/modules/es.object.lookup-getter.js b/packages/core-js/modules/es.object.lookup-getter.js index d7f59fec48bf..c8048e4b080e 100644 --- a/packages/core-js/modules/es.object.lookup-getter.js +++ b/packages/core-js/modules/es.object.lookup-getter.js @@ -1,6 +1,5 @@ 'use strict'; var $ = require('../internals/export'); -var DESCRIPTORS = require('../internals/descriptors'); var FORCED = require('../internals/object-prototype-accessors-forced'); var toObject = require('../internals/to-object'); var toPropertyKey = require('../internals/to-property-key'); @@ -9,15 +8,13 @@ var getOwnPropertyDescriptor = require('../internals/object-get-own-property-des // `Object.prototype.__lookupGetter__` method // https://tc39.es/ecma262/#sec-object.prototype.__lookupGetter__ -if (DESCRIPTORS) { - $({ target: 'Object', proto: true, forced: FORCED }, { - __lookupGetter__: function __lookupGetter__(P) { - var O = toObject(this); - var key = toPropertyKey(P); - var desc; - do { - if (desc = getOwnPropertyDescriptor(O, key)) return desc.get; - } while (O = getPrototypeOf(O)); - } - }); -} +$({ target: 'Object', proto: true, forced: FORCED }, { + __lookupGetter__: function __lookupGetter__(P) { + var O = toObject(this); + var key = toPropertyKey(P); + var desc; + do { + if (desc = getOwnPropertyDescriptor(O, key)) return desc.get; + } while (O = getPrototypeOf(O)); + } +}); diff --git a/packages/core-js/modules/es.object.lookup-setter.js b/packages/core-js/modules/es.object.lookup-setter.js index 7739713225ce..f5bd5f0f446c 100644 --- a/packages/core-js/modules/es.object.lookup-setter.js +++ b/packages/core-js/modules/es.object.lookup-setter.js @@ -1,6 +1,5 @@ 'use strict'; var $ = require('../internals/export'); -var DESCRIPTORS = require('../internals/descriptors'); var FORCED = require('../internals/object-prototype-accessors-forced'); var toObject = require('../internals/to-object'); var toPropertyKey = require('../internals/to-property-key'); @@ -9,15 +8,13 @@ var getOwnPropertyDescriptor = require('../internals/object-get-own-property-des // `Object.prototype.__lookupSetter__` method // https://tc39.es/ecma262/#sec-object.prototype.__lookupSetter__ -if (DESCRIPTORS) { - $({ target: 'Object', proto: true, forced: FORCED }, { - __lookupSetter__: function __lookupSetter__(P) { - var O = toObject(this); - var key = toPropertyKey(P); - var desc; - do { - if (desc = getOwnPropertyDescriptor(O, key)) return desc.set; - } while (O = getPrototypeOf(O)); - } - }); -} +$({ target: 'Object', proto: true, forced: FORCED }, { + __lookupSetter__: function __lookupSetter__(P) { + var O = toObject(this); + var key = toPropertyKey(P); + var desc; + do { + if (desc = getOwnPropertyDescriptor(O, key)) return desc.set; + } while (O = getPrototypeOf(O)); + } +}); diff --git a/packages/core-js/modules/es.object.proto.js b/packages/core-js/modules/es.object.proto.js index 9954885d7887..f8692e353b2a 100644 --- a/packages/core-js/modules/es.object.proto.js +++ b/packages/core-js/modules/es.object.proto.js @@ -1,5 +1,4 @@ 'use strict'; -var DESCRIPTORS = require('../internals/descriptors'); var defineBuiltInAccessor = require('../internals/define-built-in-accessor'); var isObject = require('../internals/is-object'); var isPossiblePrototype = require('../internals/is-possible-prototype'); @@ -15,7 +14,7 @@ var PROTO = '__proto__'; // `Object.prototype.__proto__` accessor // https://tc39.es/ecma262/#sec-object.prototype.__proto__ -if (DESCRIPTORS && getPrototypeOf && setPrototypeOf && !(PROTO in ObjectPrototype)) try { +if (getPrototypeOf && setPrototypeOf && !(PROTO in ObjectPrototype)) try { defineBuiltInAccessor(ObjectPrototype, PROTO, { configurable: true, get: function __proto__() { diff --git a/packages/core-js/modules/es.reflect.define-property.js b/packages/core-js/modules/es.reflect.define-property.js index c01ee5a41463..22552127a415 100644 --- a/packages/core-js/modules/es.reflect.define-property.js +++ b/packages/core-js/modules/es.reflect.define-property.js @@ -1,6 +1,5 @@ 'use strict'; var $ = require('../internals/export'); -var DESCRIPTORS = require('../internals/descriptors'); var anObject = require('../internals/an-object'); var toPropertyKey = require('../internals/to-property-key'); var definePropertyModule = require('../internals/object-define-property'); @@ -14,7 +13,7 @@ var ERROR_INSTEAD_OF_FALSE = fails(function () { // `Reflect.defineProperty` method // https://tc39.es/ecma262/#sec-reflect.defineproperty -$({ target: 'Reflect', stat: true, forced: ERROR_INSTEAD_OF_FALSE, sham: !DESCRIPTORS }, { +$({ target: 'Reflect', stat: true, forced: ERROR_INSTEAD_OF_FALSE }, { defineProperty: function defineProperty(target, propertyKey, attributes) { anObject(target); var key = toPropertyKey(propertyKey); diff --git a/packages/core-js/modules/es.reflect.get-own-property-descriptor.js b/packages/core-js/modules/es.reflect.get-own-property-descriptor.js index 2e978bf0734c..b59191cb867a 100644 --- a/packages/core-js/modules/es.reflect.get-own-property-descriptor.js +++ b/packages/core-js/modules/es.reflect.get-own-property-descriptor.js @@ -1,12 +1,11 @@ 'use strict'; var $ = require('../internals/export'); -var DESCRIPTORS = require('../internals/descriptors'); var anObject = require('../internals/an-object'); var getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor'); // `Reflect.getOwnPropertyDescriptor` method // https://tc39.es/ecma262/#sec-reflect.getownpropertydescriptor -$({ target: 'Reflect', stat: true, sham: !DESCRIPTORS }, { +$({ target: 'Reflect', stat: true }, { getOwnPropertyDescriptor: function getOwnPropertyDescriptor(target, propertyKey) { return getOwnPropertyDescriptorModule.f(anObject(target), propertyKey); } diff --git a/packages/core-js/modules/es.regexp.constructor.js b/packages/core-js/modules/es.regexp.constructor.js index 7167c30cc930..54d0380040b4 100644 --- a/packages/core-js/modules/es.regexp.constructor.js +++ b/packages/core-js/modules/es.regexp.constructor.js @@ -1,5 +1,4 @@ 'use strict'; -var DESCRIPTORS = require('../internals/descriptors'); var globalThis = require('../internals/global-this'); var uncurryThis = require('../internals/function-uncurry-this'); var isForced = require('../internals/is-forced'); @@ -42,13 +41,12 @@ var CORRECT_NEW = new NativeRegExp(re1) !== re1; var MISSED_STICKY = stickyHelpers.MISSED_STICKY; var UNSUPPORTED_Y = stickyHelpers.UNSUPPORTED_Y; -var BASE_FORCED = DESCRIPTORS && - (!CORRECT_NEW || MISSED_STICKY || UNSUPPORTED_DOT_ALL || UNSUPPORTED_NCG || fails(function () { - re2[MATCH] = false; - // RegExp constructor can alter flags and IsRegExp works correct with @@match - // eslint-disable-next-line sonarjs/inconsistent-function-call -- required for testing - return NativeRegExp(re1) !== re1 || NativeRegExp(re2) === re2 || String(NativeRegExp(re1, 'i')) !== '/a/i'; - })); +var BASE_FORCED = !CORRECT_NEW || MISSED_STICKY || UNSUPPORTED_DOT_ALL || UNSUPPORTED_NCG || fails(function () { + re2[MATCH] = false; + // RegExp constructor can alter flags and IsRegExp works correct with @@match + // eslint-disable-next-line sonarjs/inconsistent-function-call -- required for testing + return NativeRegExp(re1) !== re1 || NativeRegExp(re2) === re2 || String(NativeRegExp(re1, 'i')) !== '/a/i'; +}); var handleDotAll = function (string) { var length = string.length; diff --git a/packages/core-js/modules/es.regexp.dot-all.js b/packages/core-js/modules/es.regexp.dot-all.js index 7ad0f580153c..56882ffe572f 100644 --- a/packages/core-js/modules/es.regexp.dot-all.js +++ b/packages/core-js/modules/es.regexp.dot-all.js @@ -1,5 +1,4 @@ 'use strict'; -var DESCRIPTORS = require('../internals/descriptors'); var UNSUPPORTED_DOT_ALL = require('../internals/regexp-unsupported-dot-all'); var classof = require('../internals/classof-raw'); var defineBuiltInAccessor = require('../internals/define-built-in-accessor'); @@ -10,7 +9,7 @@ var $TypeError = TypeError; // `RegExp.prototype.dotAll` getter // https://tc39.es/ecma262/#sec-get-regexp.prototype.dotall -if (DESCRIPTORS && UNSUPPORTED_DOT_ALL) { +if (UNSUPPORTED_DOT_ALL) { defineBuiltInAccessor(RegExpPrototype, 'dotAll', { configurable: true, get: function dotAll() { diff --git a/packages/core-js/modules/es.regexp.flags.js b/packages/core-js/modules/es.regexp.flags.js index d197f519ed40..273bbb05d059 100644 --- a/packages/core-js/modules/es.regexp.flags.js +++ b/packages/core-js/modules/es.regexp.flags.js @@ -1,12 +1,11 @@ 'use strict'; -var DESCRIPTORS = require('../internals/descriptors'); var defineBuiltInAccessor = require('../internals/define-built-in-accessor'); var regExpFlagsDetection = require('../internals/regexp-flags-detection'); var regExpFlagsGetterImplementation = require('../internals/regexp-flags'); // `RegExp.prototype.flags` getter // https://tc39.es/ecma262/#sec-get-regexp.prototype.flags -if (DESCRIPTORS && !regExpFlagsDetection.correct) { +if (!regExpFlagsDetection.correct) { defineBuiltInAccessor(RegExp.prototype, 'flags', { configurable: true, get: regExpFlagsGetterImplementation diff --git a/packages/core-js/modules/es.regexp.sticky.js b/packages/core-js/modules/es.regexp.sticky.js index 7a7d2bd43373..7b11dd969f8a 100644 --- a/packages/core-js/modules/es.regexp.sticky.js +++ b/packages/core-js/modules/es.regexp.sticky.js @@ -1,5 +1,4 @@ 'use strict'; -var DESCRIPTORS = require('../internals/descriptors'); var MISSED_STICKY = require('../internals/regexp-sticky-helpers').MISSED_STICKY; var classof = require('../internals/classof-raw'); var defineBuiltInAccessor = require('../internals/define-built-in-accessor'); @@ -10,7 +9,7 @@ var $TypeError = TypeError; // `RegExp.prototype.sticky` getter // https://tc39.es/ecma262/#sec-get-regexp.prototype.sticky -if (DESCRIPTORS && MISSED_STICKY) { +if (MISSED_STICKY) { defineBuiltInAccessor(RegExpPrototype, 'sticky', { configurable: true, get: function sticky() { diff --git a/packages/core-js/modules/es.symbol.constructor.js b/packages/core-js/modules/es.symbol.constructor.js index 040342d0dc6d..05584583b689 100644 --- a/packages/core-js/modules/es.symbol.constructor.js +++ b/packages/core-js/modules/es.symbol.constructor.js @@ -4,7 +4,6 @@ var globalThis = require('../internals/global-this'); var call = require('../internals/function-call'); var uncurryThis = require('../internals/function-uncurry-this'); var IS_PURE = require('../internals/is-pure'); -var DESCRIPTORS = require('../internals/descriptors'); var NATIVE_SYMBOL = require('../internals/symbol-constructor-detection'); var fails = require('../internals/fails'); var hasOwn = require('../internals/has-own-property'); @@ -73,7 +72,7 @@ var fallbackDefineProperty = function (O, P, Attributes) { } }; -var setSymbolDescriptor = DESCRIPTORS && fails(function () { +var setSymbolDescriptor = fails(function () { return nativeObjectCreate(nativeDefineProperty({}, 'a', { get: function () { return nativeDefineProperty(this, 'a', { value: 7 }).a; } })).a !== 7; @@ -86,7 +85,6 @@ var wrap = function (tag, description) { tag: tag, description: description }); - if (!DESCRIPTORS) symbol.description = description; return symbol; }; @@ -111,7 +109,7 @@ var $defineProperties = function defineProperties(O, Properties) { var properties = toIndexedObject(Properties); var keys = objectKeys(properties).concat($getOwnPropertySymbols(properties)); $forEach(keys, function (key) { - if (!DESCRIPTORS || call($propertyIsEnumerable, properties, key)) $defineProperty(O, key, properties[key]); + if (call($propertyIsEnumerable, properties, key)) $defineProperty(O, key, properties[key]); }); return O; }; @@ -179,7 +177,7 @@ if (!NATIVE_SYMBOL) { fallbackDefineProperty($this, tag, descriptor); } }; - if (DESCRIPTORS && USE_SETTER) setSymbolDescriptor(ObjectPrototype, tag, { configurable: true, set: setter }); + if (USE_SETTER) setSymbolDescriptor(ObjectPrototype, tag, { configurable: true, set: setter }); return wrap(tag, description); }; @@ -204,17 +202,15 @@ if (!NATIVE_SYMBOL) { return wrap(wellKnownSymbol(name), name); }; - if (DESCRIPTORS) { - // https://tc39.es/ecma262/#sec-symbol.prototype.description - defineBuiltInAccessor(SymbolPrototype, 'description', { - configurable: true, - get: function description() { - return getInternalState(this).description; - } - }); - if (!IS_PURE) { - defineBuiltIn(ObjectPrototype, 'propertyIsEnumerable', $propertyIsEnumerable, { unsafe: true }); + // https://tc39.es/ecma262/#sec-symbol.prototype.description + defineBuiltInAccessor(SymbolPrototype, 'description', { + configurable: true, + get: function description() { + return getInternalState(this).description; } + }); + if (!IS_PURE) { + defineBuiltIn(ObjectPrototype, 'propertyIsEnumerable', $propertyIsEnumerable, { unsafe: true }); } } @@ -231,7 +227,7 @@ $({ target: SYMBOL, stat: true, forced: !NATIVE_SYMBOL }, { useSimple: function () { USE_SETTER = false; } }); -$({ target: 'Object', stat: true, forced: !NATIVE_SYMBOL, sham: !DESCRIPTORS }, { +$({ target: 'Object', stat: true, forced: !NATIVE_SYMBOL }, { // `Object.create` method // https://tc39.es/ecma262/#sec-object.create create: $create, diff --git a/packages/core-js/modules/es.symbol.description.js b/packages/core-js/modules/es.symbol.description.js index 7f2458fa08dd..538df9e4c772 100644 --- a/packages/core-js/modules/es.symbol.description.js +++ b/packages/core-js/modules/es.symbol.description.js @@ -2,7 +2,6 @@ // https://tc39.es/ecma262/#sec-symbol.prototype.description 'use strict'; var $ = require('../internals/export'); -var DESCRIPTORS = require('../internals/descriptors'); var globalThis = require('../internals/global-this'); var uncurryThis = require('../internals/function-uncurry-this'); var hasOwn = require('../internals/has-own-property'); @@ -15,7 +14,7 @@ var copyConstructorProperties = require('../internals/copy-constructor-propertie var NativeSymbol = globalThis.Symbol; var SymbolPrototype = NativeSymbol && NativeSymbol.prototype; -if (DESCRIPTORS && isCallable(NativeSymbol) && (!('description' in SymbolPrototype) || +if (isCallable(NativeSymbol) && (!('description' in SymbolPrototype) || // Safari 12 bug NativeSymbol().description !== undefined )) { diff --git a/packages/core-js/modules/esnext.function.is-callable.js b/packages/core-js/modules/esnext.function.is-callable.js index 6dac60c0f229..e830a018092d 100644 --- a/packages/core-js/modules/esnext.function.is-callable.js +++ b/packages/core-js/modules/esnext.function.is-callable.js @@ -4,7 +4,6 @@ var uncurryThis = require('../internals/function-uncurry-this'); var $isCallable = require('../internals/is-callable'); var inspectSource = require('../internals/inspect-source'); var hasOwn = require('../internals/has-own-property'); -var DESCRIPTORS = require('../internals/descriptors'); // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe var getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor; @@ -15,7 +14,7 @@ var isClassConstructor = function (argument) { try { // `Function#toString` throws on some built-it function in some legacy engines // (for example, `DOMQuad` and similar in FF41-) - if (!DESCRIPTORS || !exec(classRegExp, inspectSource(argument))) return false; + if (!exec(classRegExp, inspectSource(argument))) return false; } catch (error) { /* empty */ } var prototype = getOwnPropertyDescriptor(argument, 'prototype'); return !!prototype && hasOwn(prototype, 'writable') && !prototype.writable; diff --git a/packages/core-js/modules/esnext.iterator.range.js b/packages/core-js/modules/esnext.iterator.range.js index d770bba60b6d..1e9da0c5a6c3 100644 --- a/packages/core-js/modules/esnext.iterator.range.js +++ b/packages/core-js/modules/esnext.iterator.range.js @@ -7,7 +7,6 @@ var createIterResultObject = require('../internals/create-iter-result-object'); var isNullOrUndefined = require('../internals/is-null-or-undefined'); var isObject = require('../internals/is-object'); var defineBuiltInAccessor = require('../internals/define-built-in-accessor'); -var DESCRIPTORS = require('../internals/descriptors'); var INCORRECT_RANGE = 'Incorrect Iterator.range arguments'; var NUMERIC_RANGE_ITERATOR = 'NumericRangeIterator'; @@ -60,12 +59,6 @@ var $NumericRangeIterator = createIteratorConstructor(function NumericRangeItera currentCount: zero, zero: zero }); - if (!DESCRIPTORS) { - this.start = start; - this.end = end; - this.step = step; - this.inclusive = inclusiveEnd; - } }, NUMERIC_RANGE_ITERATOR, function next() { var state = getInternalState(this); if (state.hitsEnd) return createIterResultObject(undefined, true); @@ -98,12 +91,10 @@ var addGetter = function (key) { }); }; -if (DESCRIPTORS) { - addGetter('start'); - addGetter('end'); - addGetter('inclusive'); - addGetter('step'); -} +addGetter('start'); +addGetter('end'); +addGetter('inclusive'); +addGetter('step'); // `Iterator.range` method // https://github.com/tc39/proposal-Number.range diff --git a/packages/core-js/modules/esnext.json.parse.js b/packages/core-js/modules/esnext.json.parse.js index c51aa7fbaf1b..47ac93b6caea 100644 --- a/packages/core-js/modules/esnext.json.parse.js +++ b/packages/core-js/modules/esnext.json.parse.js @@ -1,6 +1,5 @@ 'use strict'; var $ = require('../internals/export'); -var DESCRIPTORS = require('../internals/descriptors'); var globalThis = require('../internals/global-this'); var getBuiltIn = require('../internals/get-built-in'); var uncurryThis = require('../internals/function-uncurry-this'); @@ -75,10 +74,8 @@ var internalize = function (holder, name, reviver, node) { }; var internalizeProperty = function (object, key, value) { - if (DESCRIPTORS) { - var descriptor = getOwnPropertyDescriptor(object, key); - if (descriptor && !descriptor.configurable) return; - } + var descriptor = getOwnPropertyDescriptor(object, key); + if (descriptor && !descriptor.configurable) return; if (value === undefined) delete object[key]; else createProperty(object, key, value); }; diff --git a/packages/core-js/modules/esnext.observable.constructor.js b/packages/core-js/modules/esnext.observable.constructor.js index 47761a7ad722..2f4a440f4b2f 100644 --- a/packages/core-js/modules/esnext.observable.constructor.js +++ b/packages/core-js/modules/esnext.observable.constructor.js @@ -2,7 +2,6 @@ // https://github.com/tc39/proposal-observable var $ = require('../internals/export'); var call = require('../internals/function-call'); -var DESCRIPTORS = require('../internals/descriptors'); var setSpecies = require('../internals/set-species'); var aCallable = require('../internals/a-callable'); var anObject = require('../internals/an-object'); @@ -48,12 +47,7 @@ SubscriptionState.prototype = { } }, close: function () { - if (!DESCRIPTORS) { - var subscription = this.facade; - var subscriptionObserver = this.subscriptionObserver; - subscription.closed = true; - if (subscriptionObserver) subscriptionObserver.closed = true; - } this.observer = null; + this.observer = null; }, isClosed: function () { return this.observer === null; @@ -63,7 +57,6 @@ SubscriptionState.prototype = { var Subscription = function (observer, subscriber) { var subscriptionState = setInternalState(this, new SubscriptionState(observer)); var start; - if (!DESCRIPTORS) this.closed = false; try { if (start = getMethod(observer, 'start')) call(start, observer, this); } catch (error) { @@ -93,7 +86,7 @@ Subscription.prototype = defineBuiltIns({}, { } }); -if (DESCRIPTORS) defineBuiltInAccessor(Subscription.prototype, 'closed', { +defineBuiltInAccessor(Subscription.prototype, 'closed', { configurable: true, get: function closed() { return getSubscriptionInternalState(this).isClosed(); @@ -105,7 +98,6 @@ var SubscriptionObserver = function (subscriptionState) { type: SUBSCRIPTION_OBSERVER, subscriptionState: subscriptionState }); - if (!DESCRIPTORS) this.closed = false; }; SubscriptionObserver.prototype = defineBuiltIns({}, { @@ -150,7 +142,7 @@ SubscriptionObserver.prototype = defineBuiltIns({}, { } }); -if (DESCRIPTORS) defineBuiltInAccessor(SubscriptionObserver.prototype, 'closed', { +defineBuiltInAccessor(SubscriptionObserver.prototype, 'closed', { configurable: true, get: function closed() { return getSubscriptionObserverInternalState(this).subscriptionState.isClosed(); diff --git a/packages/core-js/modules/web.dom-exception.constructor.js b/packages/core-js/modules/web.dom-exception.constructor.js index f5cf6aaa865f..cf82ec8f6327 100644 --- a/packages/core-js/modules/web.dom-exception.constructor.js +++ b/packages/core-js/modules/web.dom-exception.constructor.js @@ -16,7 +16,6 @@ var normalizeStringArgument = require('../internals/normalize-string-argument'); var DOMExceptionConstants = require('../internals/dom-exception-constants'); var clearErrorStack = require('../internals/error-stack-clear'); var InternalStateModule = require('../internals/internal-state'); -var DESCRIPTORS = require('../internals/descriptors'); var IS_PURE = require('../internals/is-pure'); var DOM_EXCEPTION = 'DOMException'; @@ -55,11 +54,6 @@ var $DOMException = function DOMException() { message: message, code: code }); - if (!DESCRIPTORS) { - this.name = name; - this.message = message; - this.code = code; - } if (HAS_STACK) { var error = new Error(message); error.name = DOM_EXCEPTION; @@ -79,14 +73,12 @@ var getterFor = function (key) { }); }; -if (DESCRIPTORS) { - // `DOMException.prototype.code` getter - defineBuiltInAccessor(DOMExceptionPrototype, 'code', getterFor('code')); - // `DOMException.prototype.message` getter - defineBuiltInAccessor(DOMExceptionPrototype, 'message', getterFor('message')); - // `DOMException.prototype.name` getter - defineBuiltInAccessor(DOMExceptionPrototype, 'name', getterFor('name')); -} +// `DOMException.prototype.code` getter +defineBuiltInAccessor(DOMExceptionPrototype, 'code', getterFor('code')); +// `DOMException.prototype.message` getter +defineBuiltInAccessor(DOMExceptionPrototype, 'message', getterFor('message')); +// `DOMException.prototype.name` getter +defineBuiltInAccessor(DOMExceptionPrototype, 'name', getterFor('name')); defineProperty(DOMExceptionPrototype, 'constructor', createPropertyDescriptor(1, $DOMException)); @@ -125,7 +117,7 @@ if (INCORRECT_TO_STRING && (IS_PURE || NativeDOMException === PolyfilledDOMExcep defineBuiltIn(PolyfilledDOMExceptionPrototype, 'toString', errorToString); } -if (INCORRECT_CODE && DESCRIPTORS && NativeDOMException === PolyfilledDOMException) { +if (INCORRECT_CODE && NativeDOMException === PolyfilledDOMException) { defineBuiltInAccessor(PolyfilledDOMExceptionPrototype, 'code', createGetterDescriptor(function () { return codeFor(anObject(this).name); })); diff --git a/packages/core-js/modules/web.dom-exception.stack.js b/packages/core-js/modules/web.dom-exception.stack.js index f166de3e5382..581e306ad0d2 100644 --- a/packages/core-js/modules/web.dom-exception.stack.js +++ b/packages/core-js/modules/web.dom-exception.stack.js @@ -10,7 +10,6 @@ var inheritIfRequired = require('../internals/inherit-if-required'); var normalizeStringArgument = require('../internals/normalize-string-argument'); var DOMExceptionConstants = require('../internals/dom-exception-constants'); var clearErrorStack = require('../internals/error-stack-clear'); -var DESCRIPTORS = require('../internals/descriptors'); var IS_PURE = require('../internals/is-pure'); var DOM_EXCEPTION = 'DOMException'; @@ -36,7 +35,7 @@ var ERROR_HAS_STACK = 'stack' in new Error(DOM_EXCEPTION); var DOM_EXCEPTION_HAS_STACK = 'stack' in new NativeDOMException(1, 2); // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe -var descriptor = NativeDOMException && DESCRIPTORS && Object.getOwnPropertyDescriptor(globalThis, DOM_EXCEPTION); +var descriptor = NativeDOMException && Object.getOwnPropertyDescriptor(globalThis, DOM_EXCEPTION); // Bun ~ 0.1.1 DOMException have incorrect descriptor and we can't redefine it // https://github.com/Jarred-Sumner/bun/issues/399 diff --git a/packages/core-js/modules/web.queue-microtask.js b/packages/core-js/modules/web.queue-microtask.js index d34de6733b49..b318c187e918 100644 --- a/packages/core-js/modules/web.queue-microtask.js +++ b/packages/core-js/modules/web.queue-microtask.js @@ -5,14 +5,13 @@ var microtask = require('../internals/microtask'); var aCallable = require('../internals/a-callable'); var validateArgumentsLength = require('../internals/validate-arguments-length'); var fails = require('../internals/fails'); -var DESCRIPTORS = require('../internals/descriptors'); // Bun ~ 1.0.30 bug // https://github.com/oven-sh/bun/issues/9249 var WRONG_ARITY = fails(function () { // getOwnPropertyDescriptor for prevent experimental warning in Node 11 // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe - return DESCRIPTORS && Object.getOwnPropertyDescriptor(globalThis, 'queueMicrotask').value.length !== 1; + return Object.getOwnPropertyDescriptor(globalThis, 'queueMicrotask').value.length !== 1; }); // `queueMicrotask` method diff --git a/packages/core-js/modules/web.self.js b/packages/core-js/modules/web.self.js index f409cc0cd12b..a720d9c2606c 100644 --- a/packages/core-js/modules/web.self.js +++ b/packages/core-js/modules/web.self.js @@ -1,8 +1,6 @@ 'use strict'; -var $ = require('../internals/export'); var globalThis = require('../internals/global-this'); var defineBuiltInAccessor = require('../internals/define-built-in-accessor'); -var DESCRIPTORS = require('../internals/descriptors'); var $TypeError = TypeError; // eslint-disable-next-line es/no-object-defineproperty -- safe @@ -12,30 +10,26 @@ var INCORRECT_VALUE = globalThis.self !== globalThis; // `self` getter // https://html.spec.whatwg.org/multipage/window-object.html#dom-self try { - if (DESCRIPTORS) { - // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe - var descriptor = Object.getOwnPropertyDescriptor(globalThis, 'self'); - // some engines have `self`, but with incorrect descriptor - // https://github.com/denoland/deno/issues/15765 - if (INCORRECT_VALUE || !descriptor || !descriptor.get || !descriptor.enumerable) { - defineBuiltInAccessor(globalThis, 'self', { - get: function self() { - return globalThis; - }, - set: function self(value) { - if (this !== globalThis) throw new $TypeError('Illegal invocation'); - defineProperty(globalThis, 'self', { - value: value, - writable: true, - configurable: true, - enumerable: true - }); - }, - configurable: true, - enumerable: true - }); - } - } else $({ global: true, simple: true, forced: INCORRECT_VALUE }, { - self: globalThis - }); + // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe + var descriptor = Object.getOwnPropertyDescriptor(globalThis, 'self'); + // some engines have `self`, but with incorrect descriptor + // https://github.com/denoland/deno/issues/15765 + if (INCORRECT_VALUE || !descriptor || !descriptor.get || !descriptor.enumerable) { + defineBuiltInAccessor(globalThis, 'self', { + get: function self() { + return globalThis; + }, + set: function self(value) { + if (this !== globalThis) throw new $TypeError('Illegal invocation'); + defineProperty(globalThis, 'self', { + value: value, + writable: true, + configurable: true, + enumerable: true + }); + }, + configurable: true, + enumerable: true + }); + } } catch (error) { /* empty */ } diff --git a/packages/core-js/modules/web.url-search-params.constructor.js b/packages/core-js/modules/web.url-search-params.constructor.js index e5a249cbb638..f7db6ffdc99a 100644 --- a/packages/core-js/modules/web.url-search-params.constructor.js +++ b/packages/core-js/modules/web.url-search-params.constructor.js @@ -8,7 +8,6 @@ var safeGetBuiltIn = require('../internals/safe-get-built-in'); var getBuiltIn = require('../internals/get-built-in'); var call = require('../internals/function-call'); var uncurryThis = require('../internals/function-uncurry-this'); -var DESCRIPTORS = require('../internals/descriptors'); var USE_NATIVE_URL = require('../internals/url-constructor-detection'); var defineBuiltIn = require('../internals/define-built-in'); var defineBuiltInAccessor = require('../internals/define-built-in-accessor'); @@ -300,8 +299,7 @@ URLSearchParamsState.prototype = { var URLSearchParamsConstructor = function URLSearchParams(/* init */) { anInstance(this, URLSearchParamsPrototype); var init = arguments.length > 0 ? arguments[0] : undefined; - var state = setInternalState(this, new URLSearchParamsState(init)); - if (!DESCRIPTORS) this.size = state.entries.length; + setInternalState(this, new URLSearchParamsState(init)); }; var URLSearchParamsPrototype = URLSearchParamsConstructor.prototype; @@ -313,7 +311,6 @@ defineBuiltIns(URLSearchParamsPrototype, { var state = getInternalParamsState(this); validateArgumentsLength(arguments.length, 2); push(state.entries, { key: $toString(name), value: $toString(value) }); - if (!DESCRIPTORS) this.length++; state.updateURL(); }, // `URLSearchParams.prototype.delete` method @@ -333,7 +330,6 @@ defineBuiltIns(URLSearchParamsPrototype, { if (value !== undefined) break; } else index++; } - if (!DESCRIPTORS) this.size = entries.length; state.updateURL(); }, // `URLSearchParams.prototype.get` method @@ -398,7 +394,6 @@ defineBuiltIns(URLSearchParamsPrototype, { } } if (!found) push(entries, { key: key, value: val }); - if (!DESCRIPTORS) this.size = entries.length; state.updateURL(); }, // `URLSearchParams.prototype.sort` method @@ -446,7 +441,7 @@ defineBuiltIn(URLSearchParamsPrototype, 'toString', function toString() { // `URLSearchParams.prototype.size` getter // https://github.com/whatwg/url/pull/734 -if (DESCRIPTORS) defineBuiltInAccessor(URLSearchParamsPrototype, 'size', { +defineBuiltInAccessor(URLSearchParamsPrototype, 'size', { get: function size() { return getInternalParamsState(this).entries.length; }, diff --git a/packages/core-js/modules/web.url-search-params.size.js b/packages/core-js/modules/web.url-search-params.size.js index 65ab25dea8af..291113bc61ec 100644 --- a/packages/core-js/modules/web.url-search-params.size.js +++ b/packages/core-js/modules/web.url-search-params.size.js @@ -1,5 +1,4 @@ 'use strict'; -var DESCRIPTORS = require('../internals/descriptors'); var uncurryThis = require('../internals/function-uncurry-this'); var defineBuiltInAccessor = require('../internals/define-built-in-accessor'); @@ -8,7 +7,7 @@ var forEach = uncurryThis(URLSearchParamsPrototype.forEach); // `URLSearchParams.prototype.size` getter // https://github.com/whatwg/url/pull/734 -if (DESCRIPTORS && !('size' in URLSearchParamsPrototype)) { +if (!('size' in URLSearchParamsPrototype)) { defineBuiltInAccessor(URLSearchParamsPrototype, 'size', { get: function size() { var count = 0; diff --git a/packages/core-js/modules/web.url.constructor.js b/packages/core-js/modules/web.url.constructor.js index 6ca5dbc0df40..7bd9da3a77e1 100644 --- a/packages/core-js/modules/web.url.constructor.js +++ b/packages/core-js/modules/web.url.constructor.js @@ -2,7 +2,6 @@ // TODO: in core-js@4, move /modules/ dependencies to public entries for better optimization by tools like `preset-env` require('../modules/es.string.iterator'); var $ = require('../internals/export'); -var DESCRIPTORS = require('../internals/descriptors'); var USE_NATIVE_URL = require('../internals/url-constructor-detection'); var globalThis = require('../internals/global-this'); var bind = require('../internals/function-bind-context'); @@ -950,21 +949,7 @@ URLState.prototype = { var URLConstructor = function URL(url /* , base */) { var that = anInstance(this, URLPrototype); var base = validateArgumentsLength(arguments.length, 1) > 1 ? arguments[1] : undefined; - var state = setInternalState(that, new URLState(url, false, base)); - if (!DESCRIPTORS) { - that.href = state.serialize(); - that.origin = state.getOrigin(); - that.protocol = state.getProtocol(); - that.username = state.getUsername(); - that.password = state.getPassword(); - that.host = state.getHost(); - that.hostname = state.getHostname(); - that.port = state.getPort(); - that.pathname = state.getPathname(); - that.search = state.getSearch(); - that.searchParams = state.getSearchParams(); - that.hash = state.getHash(); - } + setInternalState(that, new URLState(url, false, base)); }; var URLPrototype = URLConstructor.prototype; @@ -982,44 +967,42 @@ var accessorDescriptor = function (getter, setter) { }; }; -if (DESCRIPTORS) { - // `URL.prototype.href` accessors pair - // https://url.spec.whatwg.org/#dom-url-href - defineBuiltInAccessor(URLPrototype, 'href', accessorDescriptor('serialize', 'setHref')); - // `URL.prototype.origin` getter - // https://url.spec.whatwg.org/#dom-url-origin - defineBuiltInAccessor(URLPrototype, 'origin', accessorDescriptor('getOrigin')); - // `URL.prototype.protocol` accessors pair - // https://url.spec.whatwg.org/#dom-url-protocol - defineBuiltInAccessor(URLPrototype, 'protocol', accessorDescriptor('getProtocol', 'setProtocol')); - // `URL.prototype.username` accessors pair - // https://url.spec.whatwg.org/#dom-url-username - defineBuiltInAccessor(URLPrototype, 'username', accessorDescriptor('getUsername', 'setUsername')); - // `URL.prototype.password` accessors pair - // https://url.spec.whatwg.org/#dom-url-password - defineBuiltInAccessor(URLPrototype, 'password', accessorDescriptor('getPassword', 'setPassword')); - // `URL.prototype.host` accessors pair - // https://url.spec.whatwg.org/#dom-url-host - defineBuiltInAccessor(URLPrototype, 'host', accessorDescriptor('getHost', 'setHost')); - // `URL.prototype.hostname` accessors pair - // https://url.spec.whatwg.org/#dom-url-hostname - defineBuiltInAccessor(URLPrototype, 'hostname', accessorDescriptor('getHostname', 'setHostname')); - // `URL.prototype.port` accessors pair - // https://url.spec.whatwg.org/#dom-url-port - defineBuiltInAccessor(URLPrototype, 'port', accessorDescriptor('getPort', 'setPort')); - // `URL.prototype.pathname` accessors pair - // https://url.spec.whatwg.org/#dom-url-pathname - defineBuiltInAccessor(URLPrototype, 'pathname', accessorDescriptor('getPathname', 'setPathname')); - // `URL.prototype.search` accessors pair - // https://url.spec.whatwg.org/#dom-url-search - defineBuiltInAccessor(URLPrototype, 'search', accessorDescriptor('getSearch', 'setSearch')); - // `URL.prototype.searchParams` getter - // https://url.spec.whatwg.org/#dom-url-searchparams - defineBuiltInAccessor(URLPrototype, 'searchParams', accessorDescriptor('getSearchParams')); - // `URL.prototype.hash` accessors pair - // https://url.spec.whatwg.org/#dom-url-hash - defineBuiltInAccessor(URLPrototype, 'hash', accessorDescriptor('getHash', 'setHash')); -} +// `URL.prototype.href` accessors pair +// https://url.spec.whatwg.org/#dom-url-href +defineBuiltInAccessor(URLPrototype, 'href', accessorDescriptor('serialize', 'setHref')); +// `URL.prototype.origin` getter +// https://url.spec.whatwg.org/#dom-url-origin +defineBuiltInAccessor(URLPrototype, 'origin', accessorDescriptor('getOrigin')); +// `URL.prototype.protocol` accessors pair +// https://url.spec.whatwg.org/#dom-url-protocol +defineBuiltInAccessor(URLPrototype, 'protocol', accessorDescriptor('getProtocol', 'setProtocol')); +// `URL.prototype.username` accessors pair +// https://url.spec.whatwg.org/#dom-url-username +defineBuiltInAccessor(URLPrototype, 'username', accessorDescriptor('getUsername', 'setUsername')); +// `URL.prototype.password` accessors pair +// https://url.spec.whatwg.org/#dom-url-password +defineBuiltInAccessor(URLPrototype, 'password', accessorDescriptor('getPassword', 'setPassword')); +// `URL.prototype.host` accessors pair +// https://url.spec.whatwg.org/#dom-url-host +defineBuiltInAccessor(URLPrototype, 'host', accessorDescriptor('getHost', 'setHost')); +// `URL.prototype.hostname` accessors pair +// https://url.spec.whatwg.org/#dom-url-hostname +defineBuiltInAccessor(URLPrototype, 'hostname', accessorDescriptor('getHostname', 'setHostname')); +// `URL.prototype.port` accessors pair +// https://url.spec.whatwg.org/#dom-url-port +defineBuiltInAccessor(URLPrototype, 'port', accessorDescriptor('getPort', 'setPort')); +// `URL.prototype.pathname` accessors pair +// https://url.spec.whatwg.org/#dom-url-pathname +defineBuiltInAccessor(URLPrototype, 'pathname', accessorDescriptor('getPathname', 'setPathname')); +// `URL.prototype.search` accessors pair +// https://url.spec.whatwg.org/#dom-url-search +defineBuiltInAccessor(URLPrototype, 'search', accessorDescriptor('getSearch', 'setSearch')); +// `URL.prototype.searchParams` getter +// https://url.spec.whatwg.org/#dom-url-searchparams +defineBuiltInAccessor(URLPrototype, 'searchParams', accessorDescriptor('getSearchParams')); +// `URL.prototype.hash` accessors pair +// https://url.spec.whatwg.org/#dom-url-hash +defineBuiltInAccessor(URLPrototype, 'hash', accessorDescriptor('getHash', 'setHash')); // `URL.prototype.toJSON` method // https://url.spec.whatwg.org/#dom-url-tojson @@ -1046,6 +1029,6 @@ if (NativeURL) { setToStringTag(URLConstructor, 'URL'); -$({ global: true, constructor: true, forced: !USE_NATIVE_URL, sham: !DESCRIPTORS }, { +$({ global: true, constructor: true, forced: !USE_NATIVE_URL }, { URL: URLConstructor }); diff --git a/tests/compat/tests.js b/tests/compat/tests.js index 952766a19d0a..645424f93ac9 100644 --- a/tests/compat/tests.js +++ b/tests/compat/tests.js @@ -42,12 +42,6 @@ var IS_DENO = typeof Deno == 'object' && Deno && typeof Deno.version == 'object' var WEBKIT_STRING_PAD_BUG = /Version\/10(?:\.\d+){1,2}(?: [\w./]+)?(?: Mobile\/\w+)? Safari\//.test(USERAGENT); -var DESCRIPTORS_SUPPORT = function () { - return Object.defineProperty({}, 'a', { - get: function () { return 7; } - }).a === 7; -}; - var V8_PROTOTYPE_DEFINE_BUG = function () { return Object.defineProperty(function () { /* empty */ }, 'prototype', { value: 42, @@ -422,13 +416,11 @@ GLOBAL.tests = { !Error.isError(Object.create(Error.prototype)); }, 'es.error.to-string': function () { - if (DESCRIPTORS_SUPPORT) { - // Chrome 32- incorrectly call accessor - var object = Object.create(Object.defineProperty({}, 'name', { get: function () { - return this === object; - } })); - if (Error.prototype.toString.call(object) !== 'true') return false; - } + // Chrome 32- incorrectly call accessor + var object = Object.create(Object.defineProperty({}, 'name', { get: function () { + return this === object; + } })); + if (Error.prototype.toString.call(object) !== 'true') return false; // FF10- does not properly handle non-strings return Error.prototype.toString.call({ message: 1, name: 2 }) === '2: 1' // IE8 does not properly handle defaults @@ -1004,7 +996,7 @@ GLOBAL.tests = { } }, 'es.object.assign': function () { - if (DESCRIPTORS_SUPPORT && Object.assign({ b: 1 }, Object.assign(Object.defineProperty({}, 'a', { + if (Object.assign({ b: 1 }, Object.assign(Object.defineProperty({}, 'a', { enumerable: true, get: function () { Object.defineProperty(this, 'b', { @@ -1026,10 +1018,10 @@ GLOBAL.tests = { return Object.create; }, 'es.object.define-getter': OBJECT_PROTOTYPE_ACCESSORS_SUPPORT, - 'es.object.define-properties': [DESCRIPTORS_SUPPORT, V8_PROTOTYPE_DEFINE_BUG, function () { + 'es.object.define-properties': [V8_PROTOTYPE_DEFINE_BUG, function () { return Object.defineProperties; }], - 'es.object.define-property': [DESCRIPTORS_SUPPORT, V8_PROTOTYPE_DEFINE_BUG], + 'es.object.define-property': V8_PROTOTYPE_DEFINE_BUG, 'es.object.define-setter': OBJECT_PROTOTYPE_ACCESSORS_SUPPORT, 'es.object.entries': function () { return Object.entries; @@ -1040,9 +1032,9 @@ GLOBAL.tests = { 'es.object.from-entries': function () { return Object.fromEntries; }, - 'es.object.get-own-property-descriptor': [DESCRIPTORS_SUPPORT, function () { + 'es.object.get-own-property-descriptor': function () { return Object.getOwnPropertyDescriptor('qwe', '0'); - }], + }, 'es.object.get-own-property-descriptors': function () { return Object.getOwnPropertyDescriptors; }, @@ -2183,7 +2175,6 @@ GLOBAL.tests = { 'web.self': function () { // eslint-disable-next-line no-restricted-globals -- safe if (self !== GLOBAL) return false; - if (!DESCRIPTORS_SUPPORT) return true; var descriptor = Object.getOwnPropertyDescriptor(GLOBAL, 'self'); return descriptor.get && descriptor.enumerable; }, diff --git a/tests/helpers/constants.js b/tests/helpers/constants.js index 8154b6c4c0b9..ab305b66a286 100644 --- a/tests/helpers/constants.js +++ b/tests/helpers/constants.js @@ -1,15 +1,5 @@ import defineProperty from 'core-js-pure/es/object/define-property'; -export const DESCRIPTORS = !!(() => { - try { - return defineProperty({}, 'a', { - get() { - return 7; - }, - }).a === 7; - } catch { /* empty */ } -})(); - export const GLOBAL = Function('return this')(); export const NATIVE = GLOBAL.NATIVE || false; @@ -95,7 +85,7 @@ export const CORRECT_PROTOTYPE_GETTER = !function () { }(); // FF < 23 bug -export const REDEFINABLE_ARRAY_LENGTH_DESCRIPTOR = DESCRIPTORS && !function () { +export const REDEFINABLE_ARRAY_LENGTH_DESCRIPTOR = !function () { try { defineProperty([], 'length', { writable: false }); } catch { diff --git a/tests/helpers/qunit-helpers.js b/tests/helpers/qunit-helpers.js index dce318dea6f6..6f4c43e986b4 100644 --- a/tests/helpers/qunit-helpers.js +++ b/tests/helpers/qunit-helpers.js @@ -1,8 +1,4 @@ -import { DESCRIPTORS } from './constants.js'; import assign from 'core-js-pure/es/object/assign'; -import defineProperties from 'core-js-pure/es/object/define-properties'; -import getOwnPropertyNames from 'core-js-pure/es/object/get-own-property-names'; -import reduce from 'core-js-pure/es/array/reduce'; import isIterable from 'core-js-pure/es/is-iterable'; import ASYNC_ITERATOR from 'core-js-pure/es/symbol/async-iterator'; import { is, arrayFromArrayLike } from './helpers.js'; @@ -10,11 +6,9 @@ import { is, arrayFromArrayLike } from './helpers.js'; // for Babel template transform // eslint-disable-next-line es/no-object-freeze -- safe if (!Object.freeze) Object.freeze = Object; -// eslint-disable-next-line es/no-object-defineproperties -- safe -if (!DESCRIPTORS) Object.defineProperties = defineProperties; -// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe -const { getOwnPropertyDescriptor } = Object; +// eslint-disable-next-line es/no-object-getownpropertydescriptor, es/no-object-getownpropertynames -- safe +const { getOwnPropertyDescriptor, getOwnPropertyNames } = Object; const { toString, propertyIsEnumerable } = Object.prototype; const { assert } = QUnit; @@ -42,14 +36,12 @@ assign(assert, { }); }, enumerable(O, key, message) { - const result = !DESCRIPTORS || propertyIsEnumerable.call(O, key); + const result = propertyIsEnumerable.call(O, key); this.pushResult({ result, actual: result, expected: 'The property should be enumerable', - message: DESCRIPTORS - ? message ?? `${ typeof key == 'symbol' ? 'property' : `'${ key }'` } is enumerable` - : 'Enumerability is not applicable', + message: message ?? `${ typeof key == 'symbol' ? 'property' : `'${ key }'` } is enumerable`, }); }, // TODO: Drop from future `core-js` versions @@ -111,36 +103,30 @@ assign(assert, { }); }, nonConfigurable(O, key, message) { - const result = !DESCRIPTORS || !getOwnPropertyDescriptor(O, key)?.configurable; + const result = !getOwnPropertyDescriptor(O, key)?.configurable; this.pushResult({ result, actual: result, expected: 'The property should be non-configurable', - message: DESCRIPTORS - ? message ?? `${ typeof key == 'symbol' ? 'property' : `'${ key }'` } is non-configurable` - : 'Configurability is not applicable', + message: message ?? `${ typeof key == 'symbol' ? 'property' : `'${ key }'` } is non-configurable`, }); }, nonEnumerable(O, key, message) { - const result = !DESCRIPTORS || !propertyIsEnumerable.call(O, key); + const result = !propertyIsEnumerable.call(O, key); this.pushResult({ result, actual: result, expected: 'The property should be non-enumerable', - message: DESCRIPTORS - ? message ?? `${ typeof key == 'symbol' ? 'property' : `'${ key }'` } is non-enumerable` - : 'Enumerability is not applicable', + message: message ?? `${ typeof key == 'symbol' ? 'property' : `'${ key }'` } is non-enumerable`, }); }, nonWritable(O, key, message) { - const result = !DESCRIPTORS || !getOwnPropertyDescriptor(O, key)?.writable; + const result = !getOwnPropertyDescriptor(O, key)?.writable; this.pushResult({ result, actual: result, expected: 'The property should be non-writable', - message: DESCRIPTORS - ? message ?? `${ typeof key == 'symbol' ? 'property' : `'${ key }'` } is non-writable` - : 'Writability is not applicable', + message: message ?? `${ typeof key == 'symbol' ? 'property' : `'${ key }'` } is non-writable`, }); }, notSame(actual, expected, message) { @@ -185,7 +171,8 @@ assign(assert, { }, }); -assert.skip = reduce(getOwnPropertyNames(assert), (skip, method) => { +// eslint-disable-next-line es/no-array-prototype-reduce -- safe +assert.skip = getOwnPropertyNames(assert).reduce((skip, method) => { skip[method] = () => { /* empty */ }; return skip; }, {}); diff --git a/tests/unit-global/es.array-buffer.constructor.js b/tests/unit-global/es.array-buffer.constructor.js index c432c6189ab1..e3ce6ff46cc1 100644 --- a/tests/unit-global/es.array-buffer.constructor.js +++ b/tests/unit-global/es.array-buffer.constructor.js @@ -1,4 +1,4 @@ -import { DESCRIPTORS, GLOBAL, NATIVE } from '../helpers/constants.js'; +import { GLOBAL, NATIVE } from '../helpers/constants.js'; QUnit.test('ArrayBuffer', assert => { const Symbol = GLOBAL.Symbol || {}; @@ -15,5 +15,5 @@ QUnit.test('ArrayBuffer', assert => { assert.throws(() => new ArrayBuffer(-1), RangeError, 'negative length'); assert.notThrows(() => new ArrayBuffer(0.5), 'fractional length'); assert.notThrows(() => new ArrayBuffer(), 'missed length'); - if (DESCRIPTORS) assert.same(ArrayBuffer[Symbol.species], ArrayBuffer, '@@species'); + assert.same(ArrayBuffer[Symbol.species], ArrayBuffer, '@@species'); }); diff --git a/tests/unit-global/es.array-buffer.detached.js b/tests/unit-global/es.array-buffer.detached.js index 62b54664f3bd..a65c7d8a5c53 100644 --- a/tests/unit-global/es.array-buffer.detached.js +++ b/tests/unit-global/es.array-buffer.detached.js @@ -1,6 +1,4 @@ /* eslint-disable es/no-shared-array-buffer -- testing */ -import { DESCRIPTORS } from '../helpers/constants.js'; - QUnit.test('ArrayBuffer#detached', assert => { assert.same(new ArrayBuffer(8).detached, false, 'default'); @@ -14,20 +12,18 @@ QUnit.test('ArrayBuffer#detached', assert => { assert.skip.true(detached.detached, true, 'detached'); } - if (DESCRIPTORS) { - const { get, configurable, enumerable } = Object.getOwnPropertyDescriptor(ArrayBuffer.prototype, 'detached'); - assert.same(configurable, true, 'configurable'); - assert.same(enumerable, false, 'non-enumerable'); - assert.isFunction(get); - assert.looksNative(get); - assert.throws(() => get.call(null), TypeError, 'non-generic-1'); - assert.throws(() => get(), TypeError, 'non-generic-2'); - assert.throws(() => get.call(1), TypeError, 'non-generic-3'); - assert.throws(() => get.call(true), TypeError, 'non-generic-4'); - assert.throws(() => get.call(''), TypeError, 'non-generic-5'); - assert.throws(() => get.call({}), TypeError, 'non-generic-6'); - if (typeof SharedArrayBuffer == 'function') { - assert.throws(() => get.call(new SharedArrayBuffer(8)), TypeError, 'non-generic-7'); - } + const { get, configurable, enumerable } = Object.getOwnPropertyDescriptor(ArrayBuffer.prototype, 'detached'); + assert.same(configurable, true, 'configurable'); + assert.same(enumerable, false, 'non-enumerable'); + assert.isFunction(get); + assert.looksNative(get); + assert.throws(() => get.call(null), TypeError, 'non-generic-1'); + assert.throws(() => get(), TypeError, 'non-generic-2'); + assert.throws(() => get.call(1), TypeError, 'non-generic-3'); + assert.throws(() => get.call(true), TypeError, 'non-generic-4'); + assert.throws(() => get.call(''), TypeError, 'non-generic-5'); + assert.throws(() => get.call({}), TypeError, 'non-generic-6'); + if (typeof SharedArrayBuffer == 'function') { + assert.throws(() => get.call(new SharedArrayBuffer(8)), TypeError, 'non-generic-7'); } }); diff --git a/tests/unit-global/es.array.fill.js b/tests/unit-global/es.array.fill.js index 22178cddb4d2..0f510596fa62 100644 --- a/tests/unit-global/es.array.fill.js +++ b/tests/unit-global/es.array.fill.js @@ -1,4 +1,4 @@ -import { DESCRIPTORS, NATIVE, STRICT } from '../helpers/constants.js'; +import { NATIVE, STRICT } from '../helpers/constants.js'; QUnit.test('Array#fill', assert => { const { fill } = Array.prototype; @@ -19,7 +19,7 @@ QUnit.test('Array#fill', assert => { assert.throws(() => fill.call(null, 0), TypeError); assert.throws(() => fill.call(undefined, 0), TypeError); } - if (NATIVE && DESCRIPTORS) { + if (NATIVE) { assert.notThrows(() => fill.call(Object.defineProperty({ length: -1, }, 0, { diff --git a/tests/unit-global/es.array.flat.js b/tests/unit-global/es.array.flat.js index a1c83a5b3328..1e3334e2f0a9 100644 --- a/tests/unit-global/es.array.flat.js +++ b/tests/unit-global/es.array.flat.js @@ -1,4 +1,4 @@ -import { DESCRIPTORS, STRICT } from '../helpers/constants.js'; +import { STRICT } from '../helpers/constants.js'; QUnit.test('Array#flat', assert => { const { flat } = Array.prototype; @@ -22,13 +22,11 @@ QUnit.test('Array#flat', assert => { assert.throws(() => flat.call(null), TypeError); assert.throws(() => flat.call(undefined), TypeError); } - if (DESCRIPTORS) { - assert.notThrows(() => flat.call(defineProperty({ length: -1 }, 0, { - enumerable: true, - get() { - throw new Error(); - }, - })).length === 0, 'uses ToLength'); - } + assert.notThrows(() => flat.call(defineProperty({ length: -1 }, 0, { + enumerable: true, + get() { + throw new Error(); + }, + })).length === 0, 'uses ToLength'); assert.true('flat' in Array.prototype[Symbol.unscopables], 'In Array#@@unscopables'); }); diff --git a/tests/unit-global/es.array.from.js b/tests/unit-global/es.array.from.js index 4c958c0d4720..36eb9afda91e 100644 --- a/tests/unit-global/es.array.from.js +++ b/tests/unit-global/es.array.from.js @@ -1,5 +1,5 @@ /* eslint-disable prefer-rest-params -- required for testing */ -import { DESCRIPTORS, GLOBAL } from '../helpers/constants.js'; +import { GLOBAL } from '../helpers/constants.js'; import { createIterable } from '../helpers/helpers.js'; QUnit.test('Array.from', assert => { @@ -114,14 +114,12 @@ QUnit.test('Array.from', assert => { assert.throws(() => from([], ''), TypeError, 'Throws with "" as second argument'); assert.throws(() => from([], false), TypeError, 'Throws with false as second argument'); assert.throws(() => from([], {}), TypeError, 'Throws with {} as second argument'); - if (DESCRIPTORS) { - let called = false; - defineProperty(C.prototype, 0, { - set() { - called = true; - }, - }); - from.call(C, [1, 2, 3]); - assert.false(called, 'Should not call prototype accessors'); - } + let called = false; + defineProperty(C.prototype, 0, { + set() { + called = true; + }, + }); + from.call(C, [1, 2, 3]); + assert.false(called, 'Should not call prototype accessors'); }); diff --git a/tests/unit-global/es.array.of.js b/tests/unit-global/es.array.of.js index 1018e2f8a283..d7a6e1c87a8e 100644 --- a/tests/unit-global/es.array.of.js +++ b/tests/unit-global/es.array.of.js @@ -1,5 +1,3 @@ -import { DESCRIPTORS } from '../helpers/constants.js'; - QUnit.test('Array.of', assert => { const { defineProperty } = Object; assert.isFunction(Array.of); @@ -15,14 +13,12 @@ QUnit.test('Array.of', assert => { assert.same(instance[0], 1); assert.same(instance[1], 2); assert.same(instance.length, 2); - if (DESCRIPTORS) { - let called = false; - defineProperty(C.prototype, 0, { - set() { - called = true; - }, - }); - Array.of.call(C, 1, 2, 3); - assert.false(called, 'Should not call prototype accessors'); - } + let called = false; + defineProperty(C.prototype, 0, { + set() { + called = true; + }, + }); + Array.of.call(C, 1, 2, 3); + assert.false(called, 'Should not call prototype accessors'); }); diff --git a/tests/unit-global/es.data-view.constructor.js b/tests/unit-global/es.data-view.constructor.js index b921dcb2dc8a..9c9d2e10ebe2 100644 --- a/tests/unit-global/es.data-view.constructor.js +++ b/tests/unit-global/es.data-view.constructor.js @@ -1,4 +1,4 @@ -import { DESCRIPTORS, NATIVE } from '../helpers/constants.js'; +import { NATIVE } from '../helpers/constants.js'; QUnit.test('DataView', assert => { assert.same(DataView, Object(DataView), 'is object'); // in Safari 5 typeof DataView is 'object' @@ -53,73 +53,71 @@ QUnit.test('DataView', assert => { assert.throws(() => new DataView('foo'), 'non-ArrayBuffer argument, string'); }); -if (DESCRIPTORS) { - QUnit.test('DataView accessors', assert => { - const uint8array = new Uint8Array(8); - const dataview = new DataView(uint8array.buffer); - assert.arrayEqual(uint8array, [0, 0, 0, 0, 0, 0, 0, 0]); - dataview.setUint8(0, 255); - assert.arrayEqual(uint8array, [0xFF, 0, 0, 0, 0, 0, 0, 0]); - dataview.setInt8(1, -1); - assert.arrayEqual(uint8array, [0xFF, 0xFF, 0, 0, 0, 0, 0, 0]); - dataview.setUint16(2, 0x1234); - assert.arrayEqual(uint8array, [0xFF, 0xFF, 0x12, 0x34, 0, 0, 0, 0]); - dataview.setInt16(4, -1); - assert.arrayEqual(uint8array, [0xFF, 0xFF, 0x12, 0x34, 0xFF, 0xFF, 0, 0]); - dataview.setUint32(1, 0x12345678); - assert.arrayEqual(uint8array, [0xFF, 0x12, 0x34, 0x56, 0x78, 0xFF, 0, 0]); - dataview.setInt32(4, -2023406815); - assert.arrayEqual(uint8array, [0xFF, 0x12, 0x34, 0x56, 0x87, 0x65, 0x43, 0x21]); - dataview.setFloat32(2, 1.2e+38); - assert.arrayEqual(uint8array, [0xFF, 0x12, 0x7E, 0xB4, 0x8E, 0x52, 0x43, 0x21]); - dataview.setFloat64(0, -1.2345678e+301); - assert.arrayEqual(uint8array, [0xFE, 0x72, 0x6F, 0x51, 0x5F, 0x61, 0x77, 0xE5]); - const data = [0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87]; - for (let i = 0, { length } = data; i < length; ++i) { - uint8array[i] = data[i]; - } - assert.same(dataview.getUint8(0), 128); - assert.same(dataview.getInt8(1), -127); - assert.same(dataview.getUint16(2), 33411); - assert.same(dataview.getInt16(3), -31868); - assert.same(dataview.getUint32(4), 2223343239); - assert.same(dataview.getInt32(2), -2105310075); - assert.same(dataview.getFloat32(2), -1.932478247535851e-37); - assert.same(dataview.getFloat64(0), -3.116851295377095e-306); - }); +QUnit.test('DataView accessors', assert => { + const uint8array = new Uint8Array(8); + const dataview = new DataView(uint8array.buffer); + assert.arrayEqual(uint8array, [0, 0, 0, 0, 0, 0, 0, 0]); + dataview.setUint8(0, 255); + assert.arrayEqual(uint8array, [0xFF, 0, 0, 0, 0, 0, 0, 0]); + dataview.setInt8(1, -1); + assert.arrayEqual(uint8array, [0xFF, 0xFF, 0, 0, 0, 0, 0, 0]); + dataview.setUint16(2, 0x1234); + assert.arrayEqual(uint8array, [0xFF, 0xFF, 0x12, 0x34, 0, 0, 0, 0]); + dataview.setInt16(4, -1); + assert.arrayEqual(uint8array, [0xFF, 0xFF, 0x12, 0x34, 0xFF, 0xFF, 0, 0]); + dataview.setUint32(1, 0x12345678); + assert.arrayEqual(uint8array, [0xFF, 0x12, 0x34, 0x56, 0x78, 0xFF, 0, 0]); + dataview.setInt32(4, -2023406815); + assert.arrayEqual(uint8array, [0xFF, 0x12, 0x34, 0x56, 0x87, 0x65, 0x43, 0x21]); + dataview.setFloat32(2, 1.2e+38); + assert.arrayEqual(uint8array, [0xFF, 0x12, 0x7E, 0xB4, 0x8E, 0x52, 0x43, 0x21]); + dataview.setFloat64(0, -1.2345678e+301); + assert.arrayEqual(uint8array, [0xFE, 0x72, 0x6F, 0x51, 0x5F, 0x61, 0x77, 0xE5]); + const data = [0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87]; + for (let i = 0, { length } = data; i < length; ++i) { + uint8array[i] = data[i]; + } + assert.same(dataview.getUint8(0), 128); + assert.same(dataview.getInt8(1), -127); + assert.same(dataview.getUint16(2), 33411); + assert.same(dataview.getInt16(3), -31868); + assert.same(dataview.getUint32(4), 2223343239); + assert.same(dataview.getInt32(2), -2105310075); + assert.same(dataview.getFloat32(2), -1.932478247535851e-37); + assert.same(dataview.getFloat64(0), -3.116851295377095e-306); +}); - QUnit.test('DataView endian', assert => { - const { buffer } = new Uint8Array([0, 1, 2, 3, 4, 5, 6, 7]); - let dataview = new DataView(buffer); - assert.same(dataview.byteLength, 8, 'buffer'); - assert.same(dataview.byteOffset, 0, 'buffer'); - assert.throws(() => dataview.getUint8(-2)); - assert.throws(() => dataview.getUint8(8), 'bounds for buffer'); - assert.throws(() => dataview.setUint8(-2, 0), 'bounds for buffer'); - assert.throws(() => dataview.setUint8(8, 0), 'bounds for buffer'); - dataview = new DataView(buffer, 2); - assert.same(dataview.byteLength, 6, 'buffer, byteOffset'); - assert.same(dataview.byteOffset, 2, 'buffer, byteOffset'); - assert.same(dataview.getUint8(5), 7, 'buffer, byteOffset'); - assert.throws(() => dataview.getUint8(-2), 'bounds for buffer, byteOffset'); - assert.throws(() => dataview.getUint8(6), 'bounds for buffer, byteOffset'); - assert.throws(() => dataview.setUint8(-2, 0), 'bounds for buffer, byteOffset'); - assert.throws(() => dataview.setUint8(6, 0), 'bounds for buffer, byteOffset'); - assert.throws(() => new DataView(buffer, -1), 'invalid byteOffset'); - assert.throws(() => new DataView(buffer, 9), 'invalid byteOffset'); - dataview = new DataView(buffer, 2, 4); - assert.same(dataview.byteLength, 4, 'buffer, byteOffset, length'); - assert.same(dataview.byteOffset, 2, 'buffer, byteOffset, length'); - assert.same(dataview.getUint8(3), 5, 'buffer, byteOffset, length'); - assert.throws(() => dataview.getUint8(-2), 'bounds for buffer, byteOffset, length'); - assert.throws(() => dataview.getUint8(4), 'bounds for buffer, byteOffset, length'); - assert.throws(() => dataview.setUint8(-2, 0), 'bounds for buffer, byteOffset, length'); - assert.throws(() => dataview.setUint8(4, 0), 'bounds for buffer, byteOffset, length'); - assert.throws(() => new DataView(buffer, 0, 9), 'invalid byteOffset+length'); - assert.throws(() => new DataView(buffer, 8, 1), 'invalid byteOffset+length'); - assert.throws(() => new DataView(buffer, 9, -1), 'invalid byteOffset+length'); - }); -} +QUnit.test('DataView endian', assert => { + const { buffer } = new Uint8Array([0, 1, 2, 3, 4, 5, 6, 7]); + let dataview = new DataView(buffer); + assert.same(dataview.byteLength, 8, 'buffer'); + assert.same(dataview.byteOffset, 0, 'buffer'); + assert.throws(() => dataview.getUint8(-2)); + assert.throws(() => dataview.getUint8(8), 'bounds for buffer'); + assert.throws(() => dataview.setUint8(-2, 0), 'bounds for buffer'); + assert.throws(() => dataview.setUint8(8, 0), 'bounds for buffer'); + dataview = new DataView(buffer, 2); + assert.same(dataview.byteLength, 6, 'buffer, byteOffset'); + assert.same(dataview.byteOffset, 2, 'buffer, byteOffset'); + assert.same(dataview.getUint8(5), 7, 'buffer, byteOffset'); + assert.throws(() => dataview.getUint8(-2), 'bounds for buffer, byteOffset'); + assert.throws(() => dataview.getUint8(6), 'bounds for buffer, byteOffset'); + assert.throws(() => dataview.setUint8(-2, 0), 'bounds for buffer, byteOffset'); + assert.throws(() => dataview.setUint8(6, 0), 'bounds for buffer, byteOffset'); + assert.throws(() => new DataView(buffer, -1), 'invalid byteOffset'); + assert.throws(() => new DataView(buffer, 9), 'invalid byteOffset'); + dataview = new DataView(buffer, 2, 4); + assert.same(dataview.byteLength, 4, 'buffer, byteOffset, length'); + assert.same(dataview.byteOffset, 2, 'buffer, byteOffset, length'); + assert.same(dataview.getUint8(3), 5, 'buffer, byteOffset, length'); + assert.throws(() => dataview.getUint8(-2), 'bounds for buffer, byteOffset, length'); + assert.throws(() => dataview.getUint8(4), 'bounds for buffer, byteOffset, length'); + assert.throws(() => dataview.setUint8(-2, 0), 'bounds for buffer, byteOffset, length'); + assert.throws(() => dataview.setUint8(4, 0), 'bounds for buffer, byteOffset, length'); + assert.throws(() => new DataView(buffer, 0, 9), 'invalid byteOffset+length'); + assert.throws(() => new DataView(buffer, 8, 1), 'invalid byteOffset+length'); + assert.throws(() => new DataView(buffer, 9, -1), 'invalid byteOffset+length'); +}); const types = ['Uint8', 'Int8', 'Uint16', 'Int16', 'Uint32', 'Int32', 'Float32', 'Float64']; diff --git a/tests/unit-global/es.function.name.js b/tests/unit-global/es.function.name.js index a461d77e5333..d46daf30c077 100644 --- a/tests/unit-global/es.function.name.js +++ b/tests/unit-global/es.function.name.js @@ -1,42 +1,38 @@ -import { DESCRIPTORS } from '../helpers/constants.js'; +QUnit.test('Function#name', assert => { + assert.true('name' in Function.prototype); + assert.nonEnumerable(Function.prototype, 'name'); + function foo() { /* empty */ } + assert.same(foo.name, 'foo'); + assert.same(function () { /* empty */ }.name, ''); + if (Object.freeze) { + assert.same(Object.freeze(() => { /* empty */ }).name, ''); + } + function bar() { /* empty */ } + bar.toString = function () { + throw new Error(); + }; + assert.notThrows(() => bar.name === 'bar', 'works with redefined `.toString`'); + const baz = Object(() => { /* empty */ }); + baz.toString = function () { + return ''; + }; + assert.same(baz.name, ''); -if (DESCRIPTORS) { - QUnit.test('Function#name', assert => { - assert.true('name' in Function.prototype); - assert.nonEnumerable(Function.prototype, 'name'); - function foo() { /* empty */ } - assert.same(foo.name, 'foo'); - assert.same(function () { /* empty */ }.name, ''); - if (Object.freeze) { - assert.same(Object.freeze(() => { /* empty */ }).name, ''); - } - function bar() { /* empty */ } - bar.toString = function () { - throw new Error(); - }; - assert.notThrows(() => bar.name === 'bar', 'works with redefined `.toString`'); - const baz = Object(() => { /* empty */ }); - baz.toString = function () { - return ''; - }; - assert.same(baz.name, ''); + assert.same(function /* + multi-line comment */() { /* empty */ }.name, ''); - assert.same(function /* - multi-line comment */() { /* empty */ }.name, ''); + function /* + multi-line comment */ + foobar() { /* empty */ } + assert.same(foobar.name, 'foobar'); - function /* - multi-line comment */ - foobar() { /* empty */ } - assert.same(foobar.name, 'foobar'); + function // simple-line comment + foobaz() { /* empty */ } + assert.same(foobaz.name, 'foobaz'); - function // simple-line comment - foobaz() { /* empty */ } - assert.same(foobaz.name, 'foobaz'); - - function // simple-line comment - /* multi-line comment */quux/* - multi-line comment - */() { /* empty */ } - assert.same(quux.name, 'quux'); - }); -} + function // simple-line comment + /* multi-line comment */quux/* + multi-line comment + */() { /* empty */ } + assert.same(quux.name, 'quux'); +}); diff --git a/tests/unit-global/es.json.stringify.js b/tests/unit-global/es.json.stringify.js index e97a414849c0..3e2d89d8992d 100644 --- a/tests/unit-global/es.json.stringify.js +++ b/tests/unit-global/es.json.stringify.js @@ -1,7 +1,7 @@ // Some tests adopted from Test262 project and governed by the BSD license. // Copyright (c) 2012 Ecma International. All rights reserved. /* eslint-disable es/no-bigint,unicorn/no-hex-escape -- testing */ -import { DESCRIPTORS, GLOBAL } from '../helpers/constants.js'; +import { GLOBAL } from '../helpers/constants.js'; if (GLOBAL.JSON?.stringify) { QUnit.test('JSON.stringify', assert => { @@ -421,70 +421,68 @@ if (GLOBAL.JSON?.stringify) { num3.toJSON = () => ({ key: 7 }); assert.same(stringify([num3]), '[{"key":7}]', 'value-tojson-result-4'); - if (DESCRIPTORS) { - // This getter will be triggered during enumeration, but the property it adds should not be enumerated. - /* IE issue - const o = defineProperty({ - p1: 'p1', - p2: 'p2', - p3: 'p3', - }, 'add', { - enumerable: true, - get() { - o.extra = 'extra'; - return 'add'; - }, - }); - o.p4 = 'p4'; - o[2] = '2'; - o[0] = '0'; - o[1] = '1'; - delete o.p1; - delete o.p3; - o.p1 = 'p1'; - assert.same(stringify(o), '{"0":"0","1":"1","2":"2","p2":"p2","add":"add","p4":"p4","p1":"p1"}', 'property-order'); - */ - - let getCalls = 0; - assert.same(stringify(defineProperty({}, 'key', { - enumerable: true, - get() { - getCalls += 1; - return true; - }, - }), ['key', 'key']), '{"key":true}', 'replacer-array-duplicates-1'); - assert.same(getCalls, 1, 'replacer-array-duplicates-2'); - - /* old WebKit bug - however, fixing of this is not in priority - const obj3 = defineProperty({}, 'a', { - enumerable: true, - get() { - delete this.b; - return 1; - }, - }); - obj3.b = 2; - assert.same(stringify(obj3, (key, value) => { - if (key === 'b') { - assert.same(value, undefined, 'replacer-function-object-deleted-property-1'); - return ''; - } return value; - }), '{"a":1,"b":""}', 'replacer-function-object-deleted-property-2'); - */ - - assert.throws(() => stringify({ key: defineProperty(Array(1), '0', { - get() { throw new EvalError('t262'); }, - }) }), EvalError, 'value-array-abrupt'); - - assert.throws(() => stringify(defineProperty({}, 'key', { - enumerable: true, - get() { throw new EvalError('t262'); }, - })), EvalError, 'value-object-abrupt'); - - assert.throws(() => stringify(defineProperty({}, 'toJSON', { - get() { throw new EvalError('t262'); }, - })), EvalError, 'value-tojson-abrupt-2'); - } + // This getter will be triggered during enumeration, but the property it adds should not be enumerated. + /* IE issue + const o = defineProperty({ + p1: 'p1', + p2: 'p2', + p3: 'p3', + }, 'add', { + enumerable: true, + get() { + o.extra = 'extra'; + return 'add'; + }, + }); + o.p4 = 'p4'; + o[2] = '2'; + o[0] = '0'; + o[1] = '1'; + delete o.p1; + delete o.p3; + o.p1 = 'p1'; + assert.same(stringify(o), '{"0":"0","1":"1","2":"2","p2":"p2","add":"add","p4":"p4","p1":"p1"}', 'property-order'); + */ + + let getCalls = 0; + assert.same(stringify(defineProperty({}, 'key', { + enumerable: true, + get() { + getCalls += 1; + return true; + }, + }), ['key', 'key']), '{"key":true}', 'replacer-array-duplicates-1'); + assert.same(getCalls, 1, 'replacer-array-duplicates-2'); + + /* old WebKit bug - however, fixing of this is not in priority + const obj3 = defineProperty({}, 'a', { + enumerable: true, + get() { + delete this.b; + return 1; + }, + }); + obj3.b = 2; + assert.same(stringify(obj3, (key, value) => { + if (key === 'b') { + assert.same(value, undefined, 'replacer-function-object-deleted-property-1'); + return ''; + } return value; + }), '{"a":1,"b":""}', 'replacer-function-object-deleted-property-2'); + */ + + assert.throws(() => stringify({ key: defineProperty(Array(1), '0', { + get() { throw new EvalError('t262'); }, + }) }), EvalError, 'value-array-abrupt'); + + assert.throws(() => stringify(defineProperty({}, 'key', { + enumerable: true, + get() { throw new EvalError('t262'); }, + })), EvalError, 'value-object-abrupt'); + + assert.throws(() => stringify(defineProperty({}, 'toJSON', { + get() { throw new EvalError('t262'); }, + })), EvalError, 'value-tojson-abrupt-2'); }); QUnit.test('Symbols & JSON.stringify', assert => { @@ -503,11 +501,11 @@ if (GLOBAL.JSON?.stringify) { assert.same(stringify({ symbol: symbol1, }), '{}', 'object value'); - if (DESCRIPTORS) { - const object = { bar: 2 }; - object[symbol1] = 1; - assert.same(stringify(object), '{"bar":2}', 'object key'); - } + + const object = { bar: 2 }; + object[symbol1] = 1; + assert.same(stringify(object), '{"bar":2}', 'object key'); + assert.same(stringify(symbol1), undefined, 'symbol value'); if (typeof symbol1 == 'symbol') { assert.same(stringify(Object(symbol1)), '{}', 'boxed symbol'); diff --git a/tests/unit-global/es.map.constructor.js b/tests/unit-global/es.map.constructor.js index 606a2028d762..e4fd26c5a9fa 100644 --- a/tests/unit-global/es.map.constructor.js +++ b/tests/unit-global/es.map.constructor.js @@ -1,5 +1,5 @@ /* eslint-disable sonarjs/no-element-overwrite -- required for testing */ -import { DESCRIPTORS, GLOBAL, NATIVE } from '../helpers/constants.js'; +import { GLOBAL, NATIVE } from '../helpers/constants.js'; import { createIterable, is, nativeSubclass } from '../helpers/helpers.js'; const Symbol = GLOBAL.Symbol || {}; @@ -41,12 +41,12 @@ QUnit.test('Map', assert => { assert.true(done); const object = {}; new Map().set(object, 1); - if (DESCRIPTORS) { - const results = []; - for (const key in object) results.push(key); - assert.arrayEqual(results, []); - assert.arrayEqual(keys(object), []); - } + + const results = []; + for (const key in object) results.push(key); + assert.arrayEqual(results, []); + assert.arrayEqual(keys(object), []); + assert.arrayEqual(getOwnPropertyNames(object), []); if (getOwnPropertySymbols) assert.arrayEqual(getOwnPropertySymbols(object), []); if (ownKeys) assert.arrayEqual(ownKeys(object), []); @@ -271,14 +271,13 @@ QUnit.test('Map#size', assert => { const { size } = map; assert.same(typeof size, 'number', 'size is number'); assert.same(size, 1, 'size is correct'); - if (DESCRIPTORS) { - const sizeDescriptor = getOwnPropertyDescriptor(Map.prototype, 'size'); - const getter = sizeDescriptor && sizeDescriptor.get; - const setter = sizeDescriptor && sizeDescriptor.set; - assert.same(typeof getter, 'function', 'size is getter'); - assert.same(typeof setter, 'undefined', 'size is not setter'); - assert.throws(() => Map.prototype.size, TypeError); - } + + const sizeDescriptor = getOwnPropertyDescriptor(Map.prototype, 'size'); + const getter = sizeDescriptor && sizeDescriptor.get; + const setter = sizeDescriptor && sizeDescriptor.set; + assert.same(typeof getter, 'function', 'size is getter'); + assert.same(typeof setter, 'undefined', 'size is not setter'); + assert.throws(() => Map.prototype.size, TypeError); }); QUnit.test('Map & -0', assert => { diff --git a/tests/unit-global/es.object.assign.js b/tests/unit-global/es.object.assign.js index 2537f297e125..f6863b9a88d7 100644 --- a/tests/unit-global/es.object.assign.js +++ b/tests/unit-global/es.object.assign.js @@ -1,5 +1,3 @@ -import { DESCRIPTORS } from '../helpers/constants.js'; - QUnit.test('Object.assign', assert => { const { assign, keys, defineProperty } = Object; assert.isFunction(assign); @@ -19,43 +17,43 @@ QUnit.test('Object.assign', assert => { assert.same(String(string), 'qwe'); assert.same(string.q, 1); assert.same(assign({}, { valueOf: 42 }).valueOf, 42, 'IE enum keys bug'); - if (DESCRIPTORS) { - object = { baz: 1 }; - assign(object, defineProperty({}, 'bar', { - get() { - return this.baz + 1; - }, - })); - assert.same(object.bar, undefined, "assign don't copy descriptors"); - object = { a: 'a' }; - const c = Symbol('c'); - const d = Symbol('d'); - object[c] = 'c'; - defineProperty(object, 'b', { value: 'b' }); - defineProperty(object, d, { value: 'd' }); - const object2 = assign({}, object); - assert.same(object2.a, 'a', 'a'); - assert.same(object2.b, undefined, 'b'); - assert.same(object2[c], 'c', 'c'); - assert.same(object2[d], undefined, 'd'); - try { - assert.same(Function('assign', ` - return assign({ b: 1 }, { get a() { - delete this.b; - }, b: 2 }); - `)(assign).b, 1); - } catch { /* empty */ } - try { - assert.same(Function('assign', ` - return assign({ b: 1 }, { get a() { - Object.defineProperty(this, "b", { - value: 3, - enumerable: false - }); - }, b: 2 }); - `)(assign).b, 1); - } catch { /* empty */ } - } + + object = { baz: 1 }; + assign(object, defineProperty({}, 'bar', { + get() { + return this.baz + 1; + }, + })); + assert.same(object.bar, undefined, "assign don't copy descriptors"); + object = { a: 'a' }; + const c = Symbol('c'); + const d = Symbol('d'); + object[c] = 'c'; + defineProperty(object, 'b', { value: 'b' }); + defineProperty(object, d, { value: 'd' }); + const object2 = assign({}, object); + assert.same(object2.a, 'a', 'a'); + assert.same(object2.b, undefined, 'b'); + assert.same(object2[c], 'c', 'c'); + assert.same(object2[d], undefined, 'd'); + try { + assert.same(Function('assign', ` + return assign({ b: 1 }, { get a() { + delete this.b; + }, b: 2 }); + `)(assign).b, 1); + } catch { /* empty */ } + try { + assert.same(Function('assign', ` + return assign({ b: 1 }, { get a() { + Object.defineProperty(this, "b", { + value: 3, + enumerable: false + }); + }, b: 2 }); + `)(assign).b, 1); + } catch { /* empty */ } + string = 'abcdefghijklmnopqrst'; const result = {}; for (let i = 0, { length } = string; i < length; ++i) { diff --git a/tests/unit-global/es.object.create.js b/tests/unit-global/es.object.create.js index 12d00d07f925..7ea7758552c8 100644 --- a/tests/unit-global/es.object.create.js +++ b/tests/unit-global/es.object.create.js @@ -1,5 +1,3 @@ -import { DESCRIPTORS } from '../helpers/constants.js'; - QUnit.test('Object.create', assert => { const { create, getPrototypeOf, getOwnPropertyNames } = Object; function getPropertyNames(object) { @@ -30,7 +28,3 @@ QUnit.test('Object.create', assert => { assert.same(object.w, 2); assert.deepEqual(getPropertyNames(create(null)), []); }); - -QUnit.test('Object.create.sham flag', assert => { - assert.same(Object.create.sham, DESCRIPTORS ? undefined : true); -}); diff --git a/tests/unit-global/es.object.define-getter.js b/tests/unit-global/es.object.define-getter.js index 0966c81ef450..a749c91a5fa0 100644 --- a/tests/unit-global/es.object.define-getter.js +++ b/tests/unit-global/es.object.define-getter.js @@ -1,25 +1,23 @@ -import { DESCRIPTORS, STRICT } from '../helpers/constants.js'; +import { STRICT } from '../helpers/constants.js'; -if (DESCRIPTORS) { - QUnit.test('Object#__defineGetter__', assert => { - const { __defineGetter__ } = Object.prototype; - assert.isFunction(__defineGetter__); - assert.arity(__defineGetter__, 2); - assert.name(__defineGetter__, '__defineGetter__'); - assert.looksNative(__defineGetter__); - assert.nonEnumerable(Object.prototype, '__defineGetter__'); - const object = {}; - assert.same(object.__defineGetter__('key', () => 42), undefined, 'void'); - assert.same(object.key, 42, 'works'); - object.__defineSetter__('key', function () { - this.foo = 43; - }); - object.key = 44; - assert.same(object.key, 42, 'works with getter #1'); - assert.same(object.foo, 43, 'works with getter #2'); - if (STRICT) { - assert.throws(() => __defineGetter__.call(null, 1, () => { /* empty */ }), TypeError, 'Throws on null as `this`'); - assert.throws(() => __defineGetter__.call(undefined, 1, () => { /* empty */ }), TypeError, 'Throws on undefined as `this`'); - } +QUnit.test('Object#__defineGetter__', assert => { + const { __defineGetter__ } = Object.prototype; + assert.isFunction(__defineGetter__); + assert.arity(__defineGetter__, 2); + assert.name(__defineGetter__, '__defineGetter__'); + assert.looksNative(__defineGetter__); + assert.nonEnumerable(Object.prototype, '__defineGetter__'); + const object = {}; + assert.same(object.__defineGetter__('key', () => 42), undefined, 'void'); + assert.same(object.key, 42, 'works'); + object.__defineSetter__('key', function () { + this.foo = 43; }); -} + object.key = 44; + assert.same(object.key, 42, 'works with getter #1'); + assert.same(object.foo, 43, 'works with getter #2'); + if (STRICT) { + assert.throws(() => __defineGetter__.call(null, 1, () => { /* empty */ }), TypeError, 'Throws on null as `this`'); + assert.throws(() => __defineGetter__.call(undefined, 1, () => { /* empty */ }), TypeError, 'Throws on undefined as `this`'); + } +}); diff --git a/tests/unit-global/es.object.define-properties.js b/tests/unit-global/es.object.define-properties.js index 8e88034d2bd9..8e7ffe8e92da 100644 --- a/tests/unit-global/es.object.define-properties.js +++ b/tests/unit-global/es.object.define-properties.js @@ -1,5 +1,3 @@ -import { DESCRIPTORS } from '../helpers/constants.js'; - QUnit.test('Object.defineProperties', assert => { const { defineProperties } = Object; assert.isFunction(defineProperties); @@ -13,15 +11,9 @@ QUnit.test('Object.defineProperties', assert => { assert.same(result.q, 42); assert.same(result.w, 33); - if (DESCRIPTORS) { - // eslint-disable-next-line prefer-arrow-callback -- required for testing - assert.same(defineProperties(function () { /* empty */ }, { prototype: { - value: 42, - writable: false, - } }).prototype, 42, 'function prototype with non-writable descriptor'); - } -}); - -QUnit.test('Object.defineProperties.sham flag', assert => { - assert.same(Object.defineProperties.sham, DESCRIPTORS ? undefined : true); + // eslint-disable-next-line prefer-arrow-callback -- required for testing + assert.same(defineProperties(function () { /* empty */ }, { prototype: { + value: 42, + writable: false, + } }).prototype, 42, 'function prototype with non-writable descriptor'); }); diff --git a/tests/unit-global/es.object.define-property.js b/tests/unit-global/es.object.define-property.js index 255708032aba..8f8f0e7e8f21 100644 --- a/tests/unit-global/es.object.define-property.js +++ b/tests/unit-global/es.object.define-property.js @@ -1,5 +1,3 @@ -import { DESCRIPTORS } from '../helpers/constants.js'; - QUnit.test('Object.defineProperty', assert => { const { defineProperty, create } = Object; assert.isFunction(defineProperty); @@ -14,19 +12,13 @@ QUnit.test('Object.defineProperty', assert => { assert.same(result, source); assert.same(result.q, 42); - if (DESCRIPTORS) { - // eslint-disable-next-line prefer-arrow-callback -- required for testing - assert.same(defineProperty(function () { /* empty */ }, 'prototype', { - value: 42, - writable: false, - }).prototype, 42, 'function prototype with non-writable descriptor'); - } + // eslint-disable-next-line prefer-arrow-callback -- required for testing + assert.same(defineProperty(function () { /* empty */ }, 'prototype', { + value: 42, + writable: false, + }).prototype, 42, 'function prototype with non-writable descriptor'); assert.throws(() => defineProperty(42, 1, {})); assert.throws(() => defineProperty({}, create(null), {})); assert.throws(() => defineProperty({}, 1, 1)); }); - -QUnit.test('Object.defineProperty.sham flag', assert => { - assert.same(Object.defineProperty.sham, DESCRIPTORS ? undefined : true); -}); diff --git a/tests/unit-global/es.object.define-setter.js b/tests/unit-global/es.object.define-setter.js index 00322a259d02..deb7e642135e 100644 --- a/tests/unit-global/es.object.define-setter.js +++ b/tests/unit-global/es.object.define-setter.js @@ -1,30 +1,28 @@ -import { DESCRIPTORS, STRICT } from '../helpers/constants.js'; +import { STRICT } from '../helpers/constants.js'; -if (DESCRIPTORS) { - QUnit.test('Object#__defineSetter__', assert => { - const { __defineSetter__ } = Object.prototype; - assert.isFunction(__defineSetter__); - assert.arity(__defineSetter__, 2); - assert.name(__defineSetter__, '__defineSetter__'); - assert.looksNative(__defineSetter__); - assert.nonEnumerable(Object.prototype, '__defineSetter__'); - let object = {}; - assert.same(object.__defineSetter__('key', function () { - this.foo = 43; - }), undefined, 'void'); - object.key = 44; - assert.same(object.foo, 43, 'works'); - object = {}; - object.__defineSetter__('key', function () { - this.foo = 43; - }); - object.__defineGetter__('key', () => 42); - object.key = 44; - assert.same(object.key, 42, 'works with setter #1'); - assert.same(object.foo, 43, 'works with setter #2'); - if (STRICT) { - assert.throws(() => __defineSetter__.call(null, 1, () => { /* empty */ }), TypeError, 'Throws on null as `this`'); - assert.throws(() => __defineSetter__.call(undefined, 1, () => { /* empty */ }), TypeError, 'Throws on undefined as `this`'); - } +QUnit.test('Object#__defineSetter__', assert => { + const { __defineSetter__ } = Object.prototype; + assert.isFunction(__defineSetter__); + assert.arity(__defineSetter__, 2); + assert.name(__defineSetter__, '__defineSetter__'); + assert.looksNative(__defineSetter__); + assert.nonEnumerable(Object.prototype, '__defineSetter__'); + let object = {}; + assert.same(object.__defineSetter__('key', function () { + this.foo = 43; + }), undefined, 'void'); + object.key = 44; + assert.same(object.foo, 43, 'works'); + object = {}; + object.__defineSetter__('key', function () { + this.foo = 43; }); -} + object.__defineGetter__('key', () => 42); + object.key = 44; + assert.same(object.key, 42, 'works with setter #1'); + assert.same(object.foo, 43, 'works with setter #2'); + if (STRICT) { + assert.throws(() => __defineSetter__.call(null, 1, () => { /* empty */ }), TypeError, 'Throws on null as `this`'); + assert.throws(() => __defineSetter__.call(undefined, 1, () => { /* empty */ }), TypeError, 'Throws on undefined as `this`'); + } +}); diff --git a/tests/unit-global/es.object.get-own-property-descriptor.js b/tests/unit-global/es.object.get-own-property-descriptor.js index 8d9f6e539876..eaa85cce2056 100644 --- a/tests/unit-global/es.object.get-own-property-descriptor.js +++ b/tests/unit-global/es.object.get-own-property-descriptor.js @@ -1,5 +1,3 @@ -import { DESCRIPTORS } from '../helpers/constants.js'; - QUnit.test('Object.getOwnPropertyDescriptor', assert => { const { getOwnPropertyDescriptor } = Object; assert.isFunction(getOwnPropertyDescriptor); @@ -21,7 +19,3 @@ QUnit.test('Object.getOwnPropertyDescriptor', assert => { assert.throws(() => getOwnPropertyDescriptor(null), TypeError, 'throws on null'); assert.throws(() => getOwnPropertyDescriptor(undefined), TypeError, 'throws on undefined'); }); - -QUnit.test('Object.getOwnPropertyDescriptor.sham flag', assert => { - assert.same(Object.getOwnPropertyDescriptor.sham, DESCRIPTORS ? undefined : true); -}); diff --git a/tests/unit-global/es.object.get-own-property-descriptors.js b/tests/unit-global/es.object.get-own-property-descriptors.js index 8b8b9e4653db..d3ac7195111a 100644 --- a/tests/unit-global/es.object.get-own-property-descriptors.js +++ b/tests/unit-global/es.object.get-own-property-descriptors.js @@ -1,5 +1,3 @@ -import { DESCRIPTORS } from '../helpers/constants.js'; - QUnit.test('Object.getOwnPropertyDescriptors', assert => { const { create, getOwnPropertyDescriptors } = Object; assert.isFunction(getOwnPropertyDescriptors); @@ -19,24 +17,13 @@ QUnit.test('Object.getOwnPropertyDescriptors', assert => { writable: true, value: 2, }); - if (DESCRIPTORS) { - assert.deepEqual(descriptors.e, { - enumerable: false, - configurable: false, - writable: false, - value: 3, - }); - } else { - assert.deepEqual(descriptors.e, { - enumerable: true, - configurable: true, - writable: true, - value: 3, - }); - } - assert.same(descriptors[symbol].value, 4); -}); -QUnit.test('Object.getOwnPropertyDescriptors.sham flag', assert => { - assert.same(Object.getOwnPropertyDescriptors.sham, DESCRIPTORS ? undefined : true); + assert.deepEqual(descriptors.e, { + enumerable: false, + configurable: false, + writable: false, + value: 3, + }); + + assert.same(descriptors[symbol].value, 4); }); diff --git a/tests/unit-global/es.object.lookup-getter.js b/tests/unit-global/es.object.lookup-getter.js index 8930bc2a5de6..d37ba2c2cc2b 100644 --- a/tests/unit-global/es.object.lookup-getter.js +++ b/tests/unit-global/es.object.lookup-getter.js @@ -1,25 +1,23 @@ -import { DESCRIPTORS, STRICT } from '../helpers/constants.js'; +import { STRICT } from '../helpers/constants.js'; -if (DESCRIPTORS) { - QUnit.test('Object#__lookupGetter__', assert => { - const { __lookupGetter__ } = Object.prototype; - const { create } = Object; - assert.isFunction(__lookupGetter__); - assert.arity(__lookupGetter__, 1); - assert.name(__lookupGetter__, '__lookupGetter__'); - assert.looksNative(__lookupGetter__); - assert.nonEnumerable(Object.prototype, '__lookupGetter__'); - assert.same({}.__lookupGetter__('key'), undefined, 'empty object'); - assert.same({ key: 42 }.__lookupGetter__('key'), undefined, 'data descriptor'); - const object = {}; - function setter() { /* empty */ } - object.__defineGetter__('key', setter); - assert.same(object.__lookupGetter__('key'), setter, 'own getter'); - assert.same(create(object).__lookupGetter__('key'), setter, 'proto getter'); - assert.same(create(object).__lookupGetter__('foo'), undefined, 'empty proto'); - if (STRICT) { - assert.throws(() => __lookupGetter__.call(null, 1, () => { /* empty */ }), TypeError, 'Throws on null as `this`'); - assert.throws(() => __lookupGetter__.call(undefined, 1, () => { /* empty */ }), TypeError, 'Throws on undefined as `this`'); - } - }); -} +QUnit.test('Object#__lookupGetter__', assert => { + const { __lookupGetter__ } = Object.prototype; + const { create } = Object; + assert.isFunction(__lookupGetter__); + assert.arity(__lookupGetter__, 1); + assert.name(__lookupGetter__, '__lookupGetter__'); + assert.looksNative(__lookupGetter__); + assert.nonEnumerable(Object.prototype, '__lookupGetter__'); + assert.same({}.__lookupGetter__('key'), undefined, 'empty object'); + assert.same({ key: 42 }.__lookupGetter__('key'), undefined, 'data descriptor'); + const object = {}; + function setter() { /* empty */ } + object.__defineGetter__('key', setter); + assert.same(object.__lookupGetter__('key'), setter, 'own getter'); + assert.same(create(object).__lookupGetter__('key'), setter, 'proto getter'); + assert.same(create(object).__lookupGetter__('foo'), undefined, 'empty proto'); + if (STRICT) { + assert.throws(() => __lookupGetter__.call(null, 1, () => { /* empty */ }), TypeError, 'Throws on null as `this`'); + assert.throws(() => __lookupGetter__.call(undefined, 1, () => { /* empty */ }), TypeError, 'Throws on undefined as `this`'); + } +}); diff --git a/tests/unit-global/es.object.lookup-setter.js b/tests/unit-global/es.object.lookup-setter.js index 3a3afdac0271..9b076b5211b1 100644 --- a/tests/unit-global/es.object.lookup-setter.js +++ b/tests/unit-global/es.object.lookup-setter.js @@ -1,25 +1,23 @@ -import { DESCRIPTORS, STRICT } from '../helpers/constants.js'; +import { STRICT } from '../helpers/constants.js'; -if (DESCRIPTORS) { - QUnit.test('Object#__lookupSetter__', assert => { - const { __lookupSetter__ } = Object.prototype; - const { create } = Object; - assert.isFunction(__lookupSetter__); - assert.arity(__lookupSetter__, 1); - assert.name(__lookupSetter__, '__lookupSetter__'); - assert.looksNative(__lookupSetter__); - assert.nonEnumerable(Object.prototype, '__lookupSetter__'); - assert.same({}.__lookupSetter__('key'), undefined, 'empty object'); - assert.same({ key: 42 }.__lookupSetter__('key'), undefined, 'data descriptor'); - const object = {}; - function setter() { /* empty */ } - object.__defineSetter__('key', setter); - assert.same(object.__lookupSetter__('key'), setter, 'own getter'); - assert.same(create(object).__lookupSetter__('key'), setter, 'proto getter'); - assert.same(create(object).__lookupSetter__('foo'), undefined, 'empty proto'); - if (STRICT) { - assert.throws(() => __lookupSetter__.call(null, 1, () => { /* empty */ }), TypeError, 'Throws on null as `this`'); - assert.throws(() => __lookupSetter__.call(undefined, 1, () => { /* empty */ }), TypeError, 'Throws on undefined as `this`'); - } - }); -} +QUnit.test('Object#__lookupSetter__', assert => { + const { __lookupSetter__ } = Object.prototype; + const { create } = Object; + assert.isFunction(__lookupSetter__); + assert.arity(__lookupSetter__, 1); + assert.name(__lookupSetter__, '__lookupSetter__'); + assert.looksNative(__lookupSetter__); + assert.nonEnumerable(Object.prototype, '__lookupSetter__'); + assert.same({}.__lookupSetter__('key'), undefined, 'empty object'); + assert.same({ key: 42 }.__lookupSetter__('key'), undefined, 'data descriptor'); + const object = {}; + function setter() { /* empty */ } + object.__defineSetter__('key', setter); + assert.same(object.__lookupSetter__('key'), setter, 'own getter'); + assert.same(create(object).__lookupSetter__('key'), setter, 'proto getter'); + assert.same(create(object).__lookupSetter__('foo'), undefined, 'empty proto'); + if (STRICT) { + assert.throws(() => __lookupSetter__.call(null, 1, () => { /* empty */ }), TypeError, 'Throws on null as `this`'); + assert.throws(() => __lookupSetter__.call(undefined, 1, () => { /* empty */ }), TypeError, 'Throws on undefined as `this`'); + } +}); diff --git a/tests/unit-global/es.object.proto.js b/tests/unit-global/es.object.proto.js index 9ce53247dd25..a5ee522b9276 100644 --- a/tests/unit-global/es.object.proto.js +++ b/tests/unit-global/es.object.proto.js @@ -1,7 +1,7 @@ /* eslint-disable no-proto -- required for testing */ -import { DESCRIPTORS, PROTO } from '../helpers/constants.js'; +import { PROTO } from '../helpers/constants.js'; -if (PROTO && DESCRIPTORS) QUnit.test('Object.prototype.__proto__', assert => { +if (PROTO) QUnit.test('Object.prototype.__proto__', assert => { assert.true('__proto__' in Object.prototype, 'in Object.prototype'); const O = {}; assert.same(O.__proto__, Object.prototype); diff --git a/tests/unit-global/es.promise.constructor.js b/tests/unit-global/es.promise.constructor.js index 9c18e84b9743..7f3fc01c0139 100644 --- a/tests/unit-global/es.promise.constructor.js +++ b/tests/unit-global/es.promise.constructor.js @@ -1,4 +1,4 @@ -import { DESCRIPTORS, GLOBAL, NATIVE, PROTO, STRICT } from '../helpers/constants.js'; +import { GLOBAL, NATIVE, PROTO, STRICT } from '../helpers/constants.js'; const Symbol = GLOBAL.Symbol || {}; const { setPrototypeOf, create } = Object; @@ -18,7 +18,7 @@ QUnit.test('Promise', assert => { }); }); -if (DESCRIPTORS) QUnit.test('Promise operations order', assert => { +QUnit.test('Promise operations order', assert => { let $resolve, $resolve2; assert.expect(1); const EXPECTED_ORDER = 'DEHAFGBC'; diff --git a/tests/unit-global/es.reflect.define-property.js b/tests/unit-global/es.reflect.define-property.js index 275e908d8428..866bb31db185 100644 --- a/tests/unit-global/es.reflect.define-property.js +++ b/tests/unit-global/es.reflect.define-property.js @@ -1,5 +1,3 @@ -import { DESCRIPTORS } from '../helpers/constants.js'; - QUnit.test('Reflect.defineProperty', assert => { const { defineProperty } = Reflect; const { getOwnPropertyDescriptor, create } = Object; @@ -11,22 +9,22 @@ QUnit.test('Reflect.defineProperty', assert => { let object = {}; assert.true(defineProperty(object, 'foo', { value: 123 })); assert.same(object.foo, 123); - if (DESCRIPTORS) { - object = {}; - defineProperty(object, 'foo', { - value: 123, - enumerable: true, - }); - assert.deepEqual(getOwnPropertyDescriptor(object, 'foo'), { - value: 123, - enumerable: true, - configurable: false, - writable: false, - }); - assert.false(defineProperty(object, 'foo', { - value: 42, - })); - } + + object = {}; + defineProperty(object, 'foo', { + value: 123, + enumerable: true, + }); + assert.deepEqual(getOwnPropertyDescriptor(object, 'foo'), { + value: 123, + enumerable: true, + configurable: false, + writable: false, + }); + assert.false(defineProperty(object, 'foo', { + value: 42, + })); + assert.throws(() => defineProperty(42, 'foo', { value: 42, }), TypeError, 'throws on primitive'); @@ -34,7 +32,3 @@ QUnit.test('Reflect.defineProperty', assert => { assert.throws(() => defineProperty({}, create(null), {})); assert.throws(() => defineProperty({}, 1, 1)); }); - -QUnit.test('Reflect.defineProperty.sham flag', assert => { - assert.same(Reflect.defineProperty.sham, DESCRIPTORS ? undefined : true); -}); diff --git a/tests/unit-global/es.reflect.delete-property.js b/tests/unit-global/es.reflect.delete-property.js index e0a9816c441c..efe8d3c6ca85 100644 --- a/tests/unit-global/es.reflect.delete-property.js +++ b/tests/unit-global/es.reflect.delete-property.js @@ -1,5 +1,3 @@ -import { DESCRIPTORS } from '../helpers/constants.js'; - QUnit.test('Reflect.deleteProperty', assert => { const { deleteProperty } = Reflect; const { defineProperty, keys } = Object; @@ -11,10 +9,10 @@ QUnit.test('Reflect.deleteProperty', assert => { const object = { bar: 456 }; assert.true(deleteProperty(object, 'bar')); assert.same(keys(object).length, 0); - if (DESCRIPTORS) { - assert.false(deleteProperty(defineProperty({}, 'foo', { - value: 42, - }), 'foo')); - } + + assert.false(deleteProperty(defineProperty({}, 'foo', { + value: 42, + }), 'foo')); + assert.throws(() => deleteProperty(42, 'foo'), TypeError, 'throws on primitive'); }); diff --git a/tests/unit-global/es.reflect.get-own-property-descriptor.js b/tests/unit-global/es.reflect.get-own-property-descriptor.js index 8a3c321b5429..51a12ec2898b 100644 --- a/tests/unit-global/es.reflect.get-own-property-descriptor.js +++ b/tests/unit-global/es.reflect.get-own-property-descriptor.js @@ -1,5 +1,3 @@ -import { DESCRIPTORS } from '../helpers/constants.js'; - QUnit.test('Reflect.getOwnPropertyDescriptor', assert => { const { getOwnPropertyDescriptor } = Reflect; assert.isFunction(getOwnPropertyDescriptor); @@ -12,7 +10,3 @@ QUnit.test('Reflect.getOwnPropertyDescriptor', assert => { assert.same(descriptor.value, 789); assert.throws(() => getOwnPropertyDescriptor(42, 'constructor'), TypeError, 'throws on primitive'); }); - -QUnit.test('Reflect.getOwnPropertyDescriptor.sham flag', assert => { - assert.same(Reflect.getOwnPropertyDescriptor.sham, DESCRIPTORS ? undefined : true); -}); diff --git a/tests/unit-global/es.reflect.get.js b/tests/unit-global/es.reflect.get.js index 7b368dfd93f4..d3b60f7547dc 100644 --- a/tests/unit-global/es.reflect.get.js +++ b/tests/unit-global/es.reflect.get.js @@ -1,4 +1,4 @@ -import { DESCRIPTORS, NATIVE } from '../helpers/constants.js'; +import { NATIVE } from '../helpers/constants.js'; QUnit.test('Reflect.get', assert => { const { defineProperty, create } = Object; @@ -9,28 +9,28 @@ QUnit.test('Reflect.get', assert => { assert.looksNative(get); assert.nonEnumerable(Reflect, 'get'); assert.same(get({ qux: 987 }, 'qux'), 987); - if (DESCRIPTORS) { - const target = create(defineProperty({ z: 3 }, 'w', { + + const target = create(defineProperty({ z: 3 }, 'w', { + get() { + return this; + }, + }), { + x: { + value: 1, + }, + y: { get() { return this; }, - }), { - x: { - value: 1, - }, - y: { - get() { - return this; - }, - }, - }); - const receiver = {}; - assert.same(get(target, 'x', receiver), 1, 'get x'); - assert.same(get(target, 'y', receiver), receiver, 'get y'); - assert.same(get(target, 'z', receiver), 3, 'get z'); - assert.same(get(target, 'w', receiver), receiver, 'get w'); - assert.same(get(target, 'u', receiver), undefined, 'get u'); - } + }, + }); + const receiver = {}; + assert.same(get(target, 'x', receiver), 1, 'get x'); + assert.same(get(target, 'y', receiver), receiver, 'get y'); + assert.same(get(target, 'z', receiver), 3, 'get z'); + assert.same(get(target, 'w', receiver), receiver, 'get w'); + assert.same(get(target, 'u', receiver), undefined, 'get u'); + assert.throws(() => get(42, 'constructor'), TypeError, 'throws on primitive'); }); diff --git a/tests/unit-global/es.reflect.is-extensible.js b/tests/unit-global/es.reflect.is-extensible.js index c8f3499ba844..f947b057cb61 100644 --- a/tests/unit-global/es.reflect.is-extensible.js +++ b/tests/unit-global/es.reflect.is-extensible.js @@ -1,5 +1,3 @@ -import { DESCRIPTORS } from '../helpers/constants.js'; - QUnit.test('Reflect.isExtensible', assert => { const { isExtensible } = Reflect; const { preventExtensions } = Object; @@ -9,9 +7,7 @@ QUnit.test('Reflect.isExtensible', assert => { assert.looksNative(isExtensible); assert.nonEnumerable(Reflect, 'isExtensible'); assert.true(isExtensible({})); - if (DESCRIPTORS) { - assert.false(isExtensible(preventExtensions({}))); - } + assert.false(isExtensible(preventExtensions({}))); assert.throws(() => isExtensible(42), TypeError, 'throws on primitive'); }); diff --git a/tests/unit-global/es.reflect.prevent-extensions.js b/tests/unit-global/es.reflect.prevent-extensions.js index 53dae0d9d0b1..f209bfed61ef 100644 --- a/tests/unit-global/es.reflect.prevent-extensions.js +++ b/tests/unit-global/es.reflect.prevent-extensions.js @@ -1,4 +1,4 @@ -import { DESCRIPTORS, FREEZING } from '../helpers/constants.js'; +import { FREEZING } from '../helpers/constants.js'; QUnit.test('Reflect.preventExtensions', assert => { const { preventExtensions } = Reflect; @@ -10,9 +10,7 @@ QUnit.test('Reflect.preventExtensions', assert => { assert.nonEnumerable(Reflect, 'preventExtensions'); const object = {}; assert.true(preventExtensions(object)); - if (DESCRIPTORS) { - assert.false(isExtensible(object)); - } + assert.false(isExtensible(object)); assert.throws(() => preventExtensions(42), TypeError, 'throws on primitive'); }); diff --git a/tests/unit-global/es.reflect.set.js b/tests/unit-global/es.reflect.set.js index 072143c12b59..f6eee9708f56 100644 --- a/tests/unit-global/es.reflect.set.js +++ b/tests/unit-global/es.reflect.set.js @@ -1,4 +1,4 @@ -import { DESCRIPTORS, NATIVE } from '../helpers/constants.js'; +import { NATIVE } from '../helpers/constants.js'; QUnit.test('Reflect.set', assert => { const { set } = Reflect; @@ -16,70 +16,69 @@ QUnit.test('Reflect.set', assert => { set(target, 'foo', 1, receiver); assert.same(target.foo, undefined, 'target.foo === undefined'); assert.same(receiver.foo, 1, 'receiver.foo === 1'); - if (DESCRIPTORS) { - defineProperty(receiver, 'bar', { - value: 0, + + defineProperty(receiver, 'bar', { + value: 0, + writable: true, + enumerable: false, + configurable: true, + }); + set(target, 'bar', 1, receiver); + assert.same(receiver.bar, 1, 'receiver.bar === 1'); + assert.false(getOwnPropertyDescriptor(receiver, 'bar').enumerable, 'enumerability not overridden'); + let out = null; + target = create(defineProperty({ z: 3 }, 'w', { + set() { + out = this; + }, + }), { + x: { + value: 1, writable: true, - enumerable: false, configurable: true, - }); - set(target, 'bar', 1, receiver); - assert.same(receiver.bar, 1, 'receiver.bar === 1'); - assert.false(getOwnPropertyDescriptor(receiver, 'bar').enumerable, 'enumerability not overridden'); - let out; - target = create(defineProperty({ z: 3 }, 'w', { + }, + y: { set() { out = this; }, - }), { - x: { - value: 1, - writable: true, - configurable: true, - }, - y: { - set() { - out = this; - }, - }, - c: { - value: 1, - writable: false, - configurable: false, - }, - }); - assert.true(set(target, 'x', 2, target), 'set x'); - assert.same(target.x, 2, 'set x'); - out = null; - assert.true(set(target, 'y', 2, target), 'set y'); - assert.same(out, target, 'set y'); - assert.true(set(target, 'z', 4, target)); - assert.same(target.z, 4, 'set z'); - out = null; - assert.true(set(target, 'w', 1, target), 'set w'); - assert.same(out, target, 'set w'); - assert.true(set(target, 'u', 0, target), 'set u'); - assert.same(target.u, 0, 'set u'); - assert.false(set(target, 'c', 2, target), 'set c'); - assert.same(target.c, 1, 'set c'); - - // https://github.com/zloirock/core-js/issues/392 - let o = defineProperty({}, 'test', { + }, + c: { + value: 1, writable: false, - configurable: true, - }); - assert.false(set(getPrototypeOf(o), 'test', 1, o)); + configurable: false, + }, + }); + assert.true(set(target, 'x', 2, target), 'set x'); + assert.same(target.x, 2, 'set x'); + assert.true(set(target, 'y', 2, target), 'set y'); + assert.same(out, target, 'set y'); + assert.true(set(target, 'z', 4, target)); + assert.same(target.z, 4, 'set z'); + out = null; + assert.true(set(target, 'w', 1, target), 'set w'); + assert.same(out, target, 'set w'); + assert.true(set(target, 'u', 0, target), 'set u'); + assert.same(target.u, 0, 'set u'); + assert.false(set(target, 'c', 2, target), 'set c'); + assert.same(target.c, 1, 'set c'); + + // https://github.com/zloirock/core-js/issues/392 + let o = defineProperty({}, 'test', { + writable: false, + configurable: true, + }); + assert.false(set(getPrototypeOf(o), 'test', 1, o)); + + // https://github.com/zloirock/core-js/issues/393 + o = defineProperty({}, 'test', { + get() { /* empty */ }, + }); + assert.notThrows(() => !set(getPrototypeOf(o), 'test', 1, o)); + o = defineProperty({}, 'test', { + // eslint-disable-next-line no-unused-vars -- required for testing + set(v) { /* empty */ }, + }); + assert.notThrows(() => !set(getPrototypeOf(o), 'test', 1, o)); - // https://github.com/zloirock/core-js/issues/393 - o = defineProperty({}, 'test', { - get() { /* empty */ }, - }); - assert.notThrows(() => !set(getPrototypeOf(o), 'test', 1, o)); - o = defineProperty({}, 'test', { - // eslint-disable-next-line no-unused-vars -- required for testing - set(v) { /* empty */ }, - }); - assert.notThrows(() => !set(getPrototypeOf(o), 'test', 1, o)); - } assert.throws(() => set(42, 'q', 42), TypeError, 'throws on primitive'); }); diff --git a/tests/unit-global/es.regexp.constructor.js b/tests/unit-global/es.regexp.constructor.js index d22e0ce562f6..df1279e2c5a9 100644 --- a/tests/unit-global/es.regexp.constructor.js +++ b/tests/unit-global/es.regexp.constructor.js @@ -1,108 +1,104 @@ /* eslint-disable prefer-regex-literals, regexp/no-invalid-regexp, regexp/sort-flags -- required for testing */ /* eslint-disable regexp/no-useless-character-class, regexp/no-useless-flag -- required for testing */ -import { DESCRIPTORS, GLOBAL } from '../helpers/constants.js'; +import { GLOBAL } from '../helpers/constants.js'; import { nativeSubclass } from '../helpers/helpers.js'; -const { getPrototypeOf } = Object; +QUnit.test('RegExp constructor', assert => { + const Symbol = GLOBAL.Symbol || {}; + assert.isFunction(RegExp); + assert.arity(RegExp, 2); + assert.name(RegExp, 'RegExp'); + assert.looksNative(RegExp); + assert.same({}.toString.call(RegExp()).slice(8, -1), 'RegExp'); + assert.same({}.toString.call(new RegExp()).slice(8, -1), 'RegExp'); + let regexp = /a/g; + assert.notSame(regexp, new RegExp(regexp), 'new RegExp(regexp) is not regexp'); + assert.same(regexp, RegExp(regexp), 'RegExp(regexp) is regexp'); + regexp[Symbol.match] = false; + assert.notSame(regexp, RegExp(regexp), 'RegExp(regexp) is not regexp, changed Symbol.match'); + const object = {}; + assert.notSame(object, RegExp(object), 'RegExp(O) is not O'); + object[Symbol.match] = true; + object.constructor = RegExp; + assert.same(object, RegExp(object), 'RegExp(O) is O, changed Symbol.match'); + assert.same(String(regexp), '/a/g', 'b is /a/g'); + assert.same(String(new RegExp(/a/g, 'mi')), '/a/im', 'Allows a regex with flags'); + assert.true(new RegExp(/a/g, 'im') instanceof RegExp, 'Works with instanceof'); + assert.same(new RegExp(/a/g, 'im').constructor, RegExp, 'Has the right constructor'); -if (DESCRIPTORS) { - QUnit.test('RegExp constructor', assert => { - const Symbol = GLOBAL.Symbol || {}; - assert.isFunction(RegExp); - assert.arity(RegExp, 2); - assert.name(RegExp, 'RegExp'); - assert.looksNative(RegExp); - assert.same({}.toString.call(RegExp()).slice(8, -1), 'RegExp'); - assert.same({}.toString.call(new RegExp()).slice(8, -1), 'RegExp'); - let regexp = /a/g; - assert.notSame(regexp, new RegExp(regexp), 'new RegExp(regexp) is not regexp'); - assert.same(regexp, RegExp(regexp), 'RegExp(regexp) is regexp'); - regexp[Symbol.match] = false; - assert.notSame(regexp, RegExp(regexp), 'RegExp(regexp) is not regexp, changed Symbol.match'); - const object = {}; - assert.notSame(object, RegExp(object), 'RegExp(O) is not O'); - object[Symbol.match] = true; - object.constructor = RegExp; - assert.same(object, RegExp(object), 'RegExp(O) is O, changed Symbol.match'); - assert.same(String(regexp), '/a/g', 'b is /a/g'); - assert.same(String(new RegExp(/a/g, 'mi')), '/a/im', 'Allows a regex with flags'); - assert.true(new RegExp(/a/g, 'im') instanceof RegExp, 'Works with instanceof'); - assert.same(new RegExp(/a/g, 'im').constructor, RegExp, 'Has the right constructor'); + const orig = /^https?:\/\//i; + regexp = new RegExp(orig); + assert.notSame(regexp, orig, 'new + re + no flags #1'); + assert.same(String(regexp), '/^https?:\\/\\//i', 'new + re + no flags #2'); + let result = regexp.exec('http://github.com'); + assert.deepEqual(result, ['http://'], 'new + re + no flags #3'); - const orig = /^https?:\/\//i; - regexp = new RegExp(orig); - assert.notSame(regexp, orig, 'new + re + no flags #1'); - assert.same(String(regexp), '/^https?:\\/\\//i', 'new + re + no flags #2'); - let result = regexp.exec('http://github.com'); - assert.deepEqual(result, ['http://'], 'new + re + no flags #3'); - - /(b)(c)(d)(e)(f)(g)(h)(i)(j)(k)(l)(m)(n)(o)(p)/.exec('abcdefghijklmnopq'); - result = true; - const characters = 'bcdefghij'; - for (let i = 0, { length } = characters; i < length; ++i) { - const chr = characters[i]; - if (RegExp[`$${ i + 1 }`] !== chr) { - result = false; - } - } - assert.true(result, 'Updates RegExp globals'); - if (nativeSubclass) { - const Subclass = nativeSubclass(RegExp); - assert.true(new Subclass() instanceof Subclass, 'correct subclassing with native classes #1'); - assert.true(new Subclass() instanceof RegExp, 'correct subclassing with native classes #2'); - assert.true(new Subclass('^abc$').test('abc'), 'correct subclassing with native classes #3'); + /(b)(c)(d)(e)(f)(g)(h)(i)(j)(k)(l)(m)(n)(o)(p)/.exec('abcdefghijklmnopq'); + result = true; + const characters = 'bcdefghij'; + for (let i = 0, { length } = characters; i < length; ++i) { + const chr = characters[i]; + if (RegExp[`$${ i + 1 }`] !== chr) { + result = false; } + } + assert.true(result, 'Updates RegExp globals'); + if (nativeSubclass) { + const Subclass = nativeSubclass(RegExp); + assert.true(new Subclass() instanceof Subclass, 'correct subclassing with native classes #1'); + assert.true(new Subclass() instanceof RegExp, 'correct subclassing with native classes #2'); + assert.true(new Subclass('^abc$').test('abc'), 'correct subclassing with native classes #3'); + } + + assert.throws(() => RegExp(Symbol(1)), 'throws on symbol argument'); +}); - assert.throws(() => RegExp(Symbol(1)), 'throws on symbol argument'); - }); +QUnit.test('RegExp dotAll', assert => { + assert.false(RegExp('.', '').test('\n'), 'dotAll missed'); + assert.true(RegExp('.', 's').test('\n'), 'dotAll basic'); + assert.false(RegExp('[.]', 's').test('\n'), 'dotAll brackets #1'); + assert.false(RegExp('[.].', '').test('.\n'), 'dotAll brackets #2'); + assert.true(RegExp('[.].', 's').test('.\n'), 'dotAll brackets #3'); + assert.true(RegExp('[[].', 's').test('[\n'), 'dotAll brackets #4'); + assert.same(RegExp('.[.[].\\..', 's').source, '.[.[].\\..', 'dotAll correct source'); - QUnit.test('RegExp dotAll', assert => { - assert.false(RegExp('.', '').test('\n'), 'dotAll missed'); - assert.true(RegExp('.', 's').test('\n'), 'dotAll basic'); - assert.false(RegExp('[.]', 's').test('\n'), 'dotAll brackets #1'); - assert.false(RegExp('[.].', '').test('.\n'), 'dotAll brackets #2'); - assert.true(RegExp('[.].', 's').test('.\n'), 'dotAll brackets #3'); - assert.true(RegExp('[[].', 's').test('[\n'), 'dotAll brackets #4'); - assert.same(RegExp('.[.[].\\..', 's').source, '.[.[].\\..', 'dotAll correct source'); + const string = '123\n456789\n012'; + const re = RegExp('(\\d{3}).\\d{3}', 'sy'); - const string = '123\n456789\n012'; - const re = RegExp('(\\d{3}).\\d{3}', 'sy'); + let match = re.exec(string); + assert.same(match[1], '123', 's with y #1'); + assert.same(re.lastIndex, 7, 's with y #2'); - let match = re.exec(string); - assert.same(match[1], '123', 's with y #1'); - assert.same(re.lastIndex, 7, 's with y #2'); + match = re.exec(string); + assert.same(match[1], '789', 's with y #3'); + assert.same(re.lastIndex, 14, 's with y #4'); +}); - match = re.exec(string); - assert.same(match[1], '789', 's with y #3'); - assert.same(re.lastIndex, 14, 's with y #4'); - }); +QUnit.test('RegExp NCG', assert => { + assert.same(RegExp('(?b)').exec('b').groups?.a, 'b', 'NCG #1'); + // eslint-disable-next-line regexp/no-unused-capturing-group -- required for testing + assert.same(RegExp('(b)').exec('b').groups, undefined, 'NCG #2'); + const { groups } = RegExp('foo:(?\\w+),bar:(?\\w+)').exec('foo:abc,bar:def'); + assert.deepEqual(groups, { foo: 'abc', bar: 'def' }, 'NCG #3'); + // fails in Safari + // assert.same(Object.getPrototypeOf(groups), null, 'NCG #4'); + assert.same('foo:abc,bar:def'.replace(RegExp('foo:(?\\w+),bar:(?\\w+)'), '$,$'), 'def,abc', 'replace #1'); + assert.same('foo:abc,bar:def'.replace(RegExp('foo:(?\\w+),bar:(?\\w+)'), (...args) => { + const { foo, bar } = args.pop(); + return `${ bar },${ foo }`; + }), 'def,abc', 'replace #2'); - QUnit.test('RegExp NCG', assert => { - assert.same(RegExp('(?b)').exec('b').groups?.a, 'b', 'NCG #1'); - // eslint-disable-next-line regexp/no-unused-capturing-group -- required for testing - assert.same(RegExp('(b)').exec('b').groups, undefined, 'NCG #2'); - const { groups } = RegExp('foo:(?\\w+),bar:(?\\w+)').exec('foo:abc,bar:def'); - assert.same(getPrototypeOf(groups), null, 'null prototype'); - assert.deepEqual(groups, { foo: 'abc', bar: 'def' }, 'NCG #3'); - // eslint-disable-next-line regexp/no-useless-non-capturing-group -- required for testing - const { groups: nonCaptured, length } = RegExp('foo:(?:value=(?\\w+)),bar:(?:value=(?\\w+))').exec('foo:value=abc,bar:value=def'); - assert.deepEqual(nonCaptured, { foo: 'abc', bar: 'def' }, 'NCG #4'); - assert.same(length, 3, 'incorrect number of matched entries #1'); + // eslint-disable-next-line regexp/no-useless-non-capturing-group -- required for testing + const { groups: nonCaptured, length } = RegExp('foo:(?:value=(?\\w+)),bar:(?:value=(?\\w+))').exec('foo:value=abc,bar:value=def'); + assert.deepEqual(nonCaptured, { foo: 'abc', bar: 'def' }, 'NCG #4'); + assert.same(length, 3, 'incorrect number of matched entries #1'); - // eslint-disable-next-line regexp/no-unused-capturing-group -- required for testing - const { groups: skipBar } = RegExp('foo:(?\\w+),bar:(\\w+),buz:(?\\w+)').exec('foo:abc,bar:def,buz:ghi'); - assert.deepEqual(skipBar, { foo: 'abc', buz: 'ghi' }, 'NCG #5'); + // eslint-disable-next-line regexp/no-unused-capturing-group -- required for testing + const { groups: skipBar } = RegExp('foo:(?\\w+),bar:(\\w+),buz:(?\\w+)').exec('foo:abc,bar:def,buz:ghi'); + assert.deepEqual(skipBar, { foo: 'abc', buz: 'ghi' }, 'NCG #5'); - // fails in Safari - // assert.same(Object.getPrototypeOf(groups), null, 'NCG #4'); - assert.same('foo:abc,bar:def'.replace(RegExp('foo:(?\\w+),bar:(?\\w+)'), '$,$'), 'def,abc', 'replace #1'); - assert.same('foo:abc,bar:def'.replace(RegExp('foo:(?\\w+),bar:(?\\w+)'), (...args) => { - const { foo, bar } = args.pop(); - return `${ bar },${ foo }`; - }), 'def,abc', 'replace #2'); - assert.same('12345'.replaceAll(RegExp('(?[2-4])', 'g'), '$$'), '12233445', 'replaceAll'); - assert.throws(() => RegExp('(?<1a>b)'), SyntaxError, 'incorrect group name #1'); - assert.throws(() => RegExp('(?b)'), SyntaxError, 'incorrect group name #2'); - assert.throws(() => RegExp('(?< a >b)'), SyntaxError, 'incorrect group name #3'); - }); -} + assert.same('12345'.replaceAll(RegExp('(?[2-4])', 'g'), '$$'), '12233445', 'replaceAll'); + assert.throws(() => RegExp('(?<1a>b)'), SyntaxError, 'incorrect group name #1'); + assert.throws(() => RegExp('(?b)'), SyntaxError, 'incorrect group name #2'); + assert.throws(() => RegExp('(?< a >b)'), SyntaxError, 'incorrect group name #3'); +}); diff --git a/tests/unit-global/es.regexp.dot-all.js b/tests/unit-global/es.regexp.dot-all.js index 7f7e1b071027..5b459490adff 100644 --- a/tests/unit-global/es.regexp.dot-all.js +++ b/tests/unit-global/es.regexp.dot-all.js @@ -1,33 +1,29 @@ /* eslint-disable prefer-regex-literals -- required for testing */ -import { DESCRIPTORS } from '../helpers/constants.js'; +QUnit.test('RegExp#dotAll', assert => { + const re = RegExp('.', 's'); + assert.true(re.dotAll, '.dotAll is true'); + assert.same(re.flags, 's', '.flags contains s'); + assert.false(RegExp('.').dotAll, 'no'); + assert.false(/a/.dotAll, 'no in literal'); -if (DESCRIPTORS) { - QUnit.test('RegExp#dotAll', assert => { - const re = RegExp('.', 's'); - assert.true(re.dotAll, '.dotAll is true'); - assert.same(re.flags, 's', '.flags contains s'); - assert.false(RegExp('.').dotAll, 'no'); - assert.false(/a/.dotAll, 'no in literal'); - - const dotAllGetter = Object.getOwnPropertyDescriptor(RegExp.prototype, 'dotAll').get; - if (typeof dotAllGetter == 'function') { - assert.throws(() => { - dotAllGetter.call({}); - }, undefined, '.dotAll getter can only be called on RegExp instances'); - try { - dotAllGetter.call(/a/); - assert.required('.dotAll getter works on literals'); - } catch { - assert.avoid('.dotAll getter works on literals'); - } - try { - dotAllGetter.call(new RegExp('a')); - assert.required('.dotAll getter works on instances'); - } catch { - assert.avoid('.dotAll getter works on instances'); - } - - assert.true(Object.hasOwn(RegExp.prototype, 'dotAll'), 'prototype has .dotAll property'); + const dotAllGetter = Object.getOwnPropertyDescriptor(RegExp.prototype, 'dotAll').get; + if (typeof dotAllGetter == 'function') { + assert.throws(() => { + dotAllGetter.call({}); + }, undefined, '.dotAll getter can only be called on RegExp instances'); + try { + dotAllGetter.call(/a/); + assert.required('.dotAll getter works on literals'); + } catch { + assert.avoid('.dotAll getter works on literals'); } - }); -} + try { + dotAllGetter.call(new RegExp('a')); + assert.required('.dotAll getter works on instances'); + } catch { + assert.avoid('.dotAll getter works on instances'); + } + + assert.true(Object.hasOwn(RegExp.prototype, 'dotAll'), 'prototype has .dotAll property'); + } +}); diff --git a/tests/unit-global/es.regexp.exec.js b/tests/unit-global/es.regexp.exec.js index c466e8520846..b73c007d1189 100644 --- a/tests/unit-global/es.regexp.exec.js +++ b/tests/unit-global/es.regexp.exec.js @@ -1,6 +1,4 @@ /* eslint-disable prefer-regex-literals -- required for testing */ -import { DESCRIPTORS } from '../helpers/constants.js'; - QUnit.test('RegExp#exec lastIndex updating', assert => { let re = /b/; assert.same(re.lastIndex, 0, '.lastIndex starts at 0 for non-global regexps'); @@ -30,56 +28,54 @@ QUnit.test('RegExp#exec capturing groups', assert => { // assert.deepEqual(/(a?)?/.exec('x'), ['', undefined], '/(a?)?/.exec("x") returns ["", undefined]'); }); -if (DESCRIPTORS) { - QUnit.test('RegExp#exec regression', assert => { - assert.throws(() => /l/.exec(Symbol('RegExp#exec test')), 'throws on symbol argument'); - }); - - QUnit.test('RegExp#exec sticky', assert => { - const re = new RegExp('a', 'y'); - const str = 'bbabaab'; - assert.same(re.lastIndex, 0, '#1'); - - assert.same(re.exec(str), null, '#2'); - assert.same(re.lastIndex, 0, '#3'); - - re.lastIndex = 1; - assert.same(re.exec(str), null, '#4'); - assert.same(re.lastIndex, 0, '#5'); - - re.lastIndex = 2; - const result = re.exec(str); - assert.deepEqual(result, ['a'], '#6'); - assert.same(result.index, 2, '#7'); - assert.same(re.lastIndex, 3, '#8'); - - assert.same(re.exec(str), null, '#9'); - assert.same(re.lastIndex, 0, '#10'); - - re.lastIndex = 4; - assert.deepEqual(re.exec(str), ['a'], '#11'); - assert.same(re.lastIndex, 5, '#12'); - - assert.deepEqual(re.exec(str), ['a'], '#13'); - assert.same(re.lastIndex, 6, '#14'); - - assert.same(re.exec(str), null, '#15'); - assert.same(re.lastIndex, 0, '#16'); - }); - - QUnit.test('RegExp#exec sticky anchored', assert => { - const regex = new RegExp('^foo', 'y'); - assert.deepEqual(regex.exec('foo'), ['foo'], '#1'); - regex.lastIndex = 2; - assert.same(regex.exec('..foo'), null, '#2'); - regex.lastIndex = 2; - assert.same(regex.exec('.\nfoo'), null, '#3'); - - const regex2 = new RegExp('^foo', 'my'); - regex2.lastIndex = 2; - assert.same(regex2.exec('..foo'), null, '#4'); - regex2.lastIndex = 2; - assert.deepEqual(regex2.exec('.\nfoo'), ['foo'], '#5'); - assert.same(regex2.lastIndex, 5, '#6'); - }); -} +QUnit.test('RegExp#exec regression', assert => { + assert.throws(() => /l/.exec(Symbol('RegExp#exec test')), 'throws on symbol argument'); +}); + +QUnit.test('RegExp#exec sticky', assert => { + const re = new RegExp('a', 'y'); + const str = 'bbabaab'; + assert.same(re.lastIndex, 0, '#1'); + + assert.same(re.exec(str), null, '#2'); + assert.same(re.lastIndex, 0, '#3'); + + re.lastIndex = 1; + assert.same(re.exec(str), null, '#4'); + assert.same(re.lastIndex, 0, '#5'); + + re.lastIndex = 2; + const result = re.exec(str); + assert.deepEqual(result, ['a'], '#6'); + assert.same(result.index, 2, '#7'); + assert.same(re.lastIndex, 3, '#8'); + + assert.same(re.exec(str), null, '#9'); + assert.same(re.lastIndex, 0, '#10'); + + re.lastIndex = 4; + assert.deepEqual(re.exec(str), ['a'], '#11'); + assert.same(re.lastIndex, 5, '#12'); + + assert.deepEqual(re.exec(str), ['a'], '#13'); + assert.same(re.lastIndex, 6, '#14'); + + assert.same(re.exec(str), null, '#15'); + assert.same(re.lastIndex, 0, '#16'); +}); + +QUnit.test('RegExp#exec sticky anchored', assert => { + const regex = new RegExp('^foo', 'y'); + assert.deepEqual(regex.exec('foo'), ['foo'], '#1'); + regex.lastIndex = 2; + assert.same(regex.exec('..foo'), null, '#2'); + regex.lastIndex = 2; + assert.same(regex.exec('.\nfoo'), null, '#3'); + + const regex2 = new RegExp('^foo', 'my'); + regex2.lastIndex = 2; + assert.same(regex2.exec('..foo'), null, '#4'); + regex2.lastIndex = 2; + assert.deepEqual(regex2.exec('.\nfoo'), ['foo'], '#5'); + assert.same(regex2.lastIndex, 5, '#6'); +}); diff --git a/tests/unit-global/es.regexp.flags.js b/tests/unit-global/es.regexp.flags.js index 21c9bb26c338..82607eff10f2 100644 --- a/tests/unit-global/es.regexp.flags.js +++ b/tests/unit-global/es.regexp.flags.js @@ -1,52 +1,48 @@ /* eslint-disable prefer-regex-literals, regexp/sort-flags, regexp/no-useless-flag -- required for testing */ -import { DESCRIPTORS } from '../helpers/constants.js'; - -if (DESCRIPTORS) { - QUnit.test('RegExp#flags', assert => { - assert.nonEnumerable(RegExp.prototype, 'flags'); - assert.same(/./g.flags, 'g', '/./g.flags is "g"'); - assert.same(/./.flags, '', '/./.flags is ""'); - assert.same(RegExp('.', 'gim').flags, 'gim', 'RegExp(".", "gim").flags is "gim"'); - assert.same(RegExp('.').flags, '', 'RegExp(".").flags is ""'); - assert.same(/./gim.flags, 'gim', '/./gim.flags is "gim"'); - assert.same(/./gmi.flags, 'gim', '/./gmi.flags is "gim"'); - assert.same(/./mig.flags, 'gim', '/./mig.flags is "gim"'); - assert.same(/./mgi.flags, 'gim', '/./mgi.flags is "gim"'); - - let INDICES_SUPPORT = true; - try { - RegExp('.', 'd'); - } catch { - INDICES_SUPPORT = false; - } - - const O = {}; - // modern V8 bug - let calls = ''; - const expected = INDICES_SUPPORT ? 'dgimsy' : 'gimsy'; - - function addGetter(key, chr) { - Object.defineProperty(O, key, { get() { - calls += chr; - return true; - } }); - } - - const pairs = { - dotAll: 's', - global: 'g', - ignoreCase: 'i', - multiline: 'm', - sticky: 'y', - }; - - if (INDICES_SUPPORT) pairs.hasIndices = 'd'; - - for (const key in pairs) addGetter(key, pairs[key]); - - const result = Object.getOwnPropertyDescriptor(RegExp.prototype, 'flags').get.call(O); - - assert.same(result, expected, 'proper order, result'); - assert.same(calls, expected, 'proper order, calls'); - }); -} +QUnit.test('RegExp#flags', assert => { + assert.nonEnumerable(RegExp.prototype, 'flags'); + assert.same(/./g.flags, 'g', '/./g.flags is "g"'); + assert.same(/./.flags, '', '/./.flags is ""'); + assert.same(RegExp('.', 'gim').flags, 'gim', 'RegExp(".", "gim").flags is "gim"'); + assert.same(RegExp('.').flags, '', 'RegExp(".").flags is ""'); + assert.same(/./gim.flags, 'gim', '/./gim.flags is "gim"'); + assert.same(/./gmi.flags, 'gim', '/./gmi.flags is "gim"'); + assert.same(/./mig.flags, 'gim', '/./mig.flags is "gim"'); + assert.same(/./mgi.flags, 'gim', '/./mgi.flags is "gim"'); + + let INDICES_SUPPORT = true; + try { + RegExp('.', 'd'); + } catch { + INDICES_SUPPORT = false; + } + + const O = {}; + // modern V8 bug + let calls = ''; + const expected = INDICES_SUPPORT ? 'dgimsy' : 'gimsy'; + + function addGetter(key, chr) { + Object.defineProperty(O, key, { get() { + calls += chr; + return true; + } }); + } + + const pairs = { + dotAll: 's', + global: 'g', + ignoreCase: 'i', + multiline: 'm', + sticky: 'y', + }; + + if (INDICES_SUPPORT) pairs.hasIndices = 'd'; + + for (const key in pairs) addGetter(key, pairs[key]); + + const result = Object.getOwnPropertyDescriptor(RegExp.prototype, 'flags').get.call(O); + + assert.same(result, expected, 'proper order, result'); + assert.same(calls, expected, 'proper order, calls'); +}); diff --git a/tests/unit-global/es.regexp.sticky.js b/tests/unit-global/es.regexp.sticky.js index faa611f9ac55..7c1ccdc68206 100644 --- a/tests/unit-global/es.regexp.sticky.js +++ b/tests/unit-global/es.regexp.sticky.js @@ -1,38 +1,34 @@ /* eslint-disable prefer-regex-literals -- required for testing */ -import { DESCRIPTORS } from '../helpers/constants.js'; +QUnit.test('RegExp#sticky', assert => { + const re = new RegExp('a', 'y'); + assert.true(re.sticky, '.sticky is true'); + assert.same(re.flags, 'y', '.flags contains y'); + assert.false(/a/.sticky); -if (DESCRIPTORS) { - QUnit.test('RegExp#sticky', assert => { - const re = new RegExp('a', 'y'); - assert.true(re.sticky, '.sticky is true'); - assert.same(re.flags, 'y', '.flags contains y'); - assert.false(/a/.sticky); + const stickyGetter = Object.getOwnPropertyDescriptor(RegExp.prototype, 'sticky').get; + if (typeof stickyGetter == 'function') { + // Old firefox versions set a non-configurable non-writable .sticky property + // It works correctly, but it isn't a getter and it can't be polyfilled. + // We need to skip these tests. - const stickyGetter = Object.getOwnPropertyDescriptor(RegExp.prototype, 'sticky').get; - if (typeof stickyGetter == 'function') { - // Old firefox versions set a non-configurable non-writable .sticky property - // It works correctly, but it isn't a getter and it can't be polyfilled. - // We need to skip these tests. - - assert.throws(() => { - stickyGetter.call({}); - }, undefined, '.sticky getter can only be called on RegExp instances'); - try { - stickyGetter.call(/a/); - assert.required('.sticky getter works on literals'); - } catch { - assert.avoid('.sticky getter works on literals'); - } - try { - stickyGetter.call(new RegExp('a')); - assert.required('.sticky getter works on instances'); - } catch { - assert.avoid('.sticky getter works on instances'); - } - - assert.true(Object.hasOwn(RegExp.prototype, 'sticky'), 'prototype has .sticky property'); - // relaxed for early implementations - // assert.same(RegExp.prototype.sticky, undefined, '.sticky is undefined on prototype'); + assert.throws(() => { + stickyGetter.call({}); + }, undefined, '.sticky getter can only be called on RegExp instances'); + try { + stickyGetter.call(/a/); + assert.required('.sticky getter works on literals'); + } catch { + assert.avoid('.sticky getter works on literals'); } - }); -} + try { + stickyGetter.call(new RegExp('a')); + assert.required('.sticky getter works on instances'); + } catch { + assert.avoid('.sticky getter works on instances'); + } + + assert.true(Object.hasOwn(RegExp.prototype, 'sticky'), 'prototype has .sticky property'); + // relaxed for early implementations + // assert.same(RegExp.prototype.sticky, undefined, '.sticky is undefined on prototype'); + } +}); diff --git a/tests/unit-global/es.set.constructor.js b/tests/unit-global/es.set.constructor.js index 27c22ba1e3a9..3bf3977245e1 100644 --- a/tests/unit-global/es.set.constructor.js +++ b/tests/unit-global/es.set.constructor.js @@ -1,5 +1,5 @@ /* eslint-disable sonarjs/no-element-overwrite -- required for testing */ -import { DESCRIPTORS, GLOBAL, NATIVE } from '../helpers/constants.js'; +import { GLOBAL, NATIVE } from '../helpers/constants.js'; import { createIterable, is, nativeSubclass } from '../helpers/helpers.js'; const Symbol = GLOBAL.Symbol || {}; @@ -62,12 +62,12 @@ QUnit.test('Set', assert => { assert.true(done); const object = {}; new Set().add(object); - if (DESCRIPTORS) { - const results = []; - for (const key in results) keys.push(key); - assert.arrayEqual(results, []); - assert.arrayEqual(keys(object), []); - } + + const results = []; + for (const key in results) keys.push(key); + assert.arrayEqual(results, []); + assert.arrayEqual(keys(object), []); + assert.arrayEqual(getOwnPropertyNames(object), []); if (getOwnPropertySymbols) assert.arrayEqual(getOwnPropertySymbols(object), []); if (ownKeys) assert.arrayEqual(ownKeys(object), []); @@ -256,14 +256,13 @@ QUnit.test('Set#size', assert => { const { size } = set; assert.same(typeof size, 'number', 'size is number'); assert.same(size, 1, 'size is correct'); - if (DESCRIPTORS) { - const sizeDescriptor = getOwnPropertyDescriptor(Set.prototype, 'size'); - const getter = sizeDescriptor && sizeDescriptor.get; - const setter = sizeDescriptor && sizeDescriptor.set; - assert.same(typeof getter, 'function', 'size is getter'); - assert.same(typeof setter, 'undefined', 'size is not setter'); - assert.throws(() => Set.prototype.size, TypeError); - } + + const sizeDescriptor = getOwnPropertyDescriptor(Set.prototype, 'size'); + const getter = sizeDescriptor && sizeDescriptor.get; + const setter = sizeDescriptor && sizeDescriptor.set; + assert.same(typeof getter, 'function', 'size is getter'); + assert.same(typeof setter, 'undefined', 'size is not setter'); + assert.throws(() => Set.prototype.size, TypeError); }); QUnit.test('Set & -0', assert => { diff --git a/tests/unit-global/es.set.symmetric-difference.js b/tests/unit-global/es.set.symmetric-difference.js index c46df88b2b9e..6efe5501ea89 100644 --- a/tests/unit-global/es.set.symmetric-difference.js +++ b/tests/unit-global/es.set.symmetric-difference.js @@ -1,4 +1,3 @@ -import { DESCRIPTORS } from '../helpers/constants.js'; import { createSetLike } from '../helpers/helpers.js'; QUnit.test('Set#symmetricDifference', assert => { @@ -47,7 +46,7 @@ QUnit.test('Set#symmetricDifference', assert => { assert.deepEqual(from(baseSet.symmetricDifference(setLike)), ['a', 'b', 'c', 'd', 'e', 'g', 'h', 'i', 'j']); } - if (DESCRIPTORS) { + { // Should get iterator record of a set-like object before cloning this // https://bugs.webkit.org/show_bug.cgi?id=289430 const baseSet = new Set(); diff --git a/tests/unit-global/es.set.union.js b/tests/unit-global/es.set.union.js index 0836dd45cffe..5b0cf320e18d 100644 --- a/tests/unit-global/es.set.union.js +++ b/tests/unit-global/es.set.union.js @@ -1,4 +1,3 @@ -import { DESCRIPTORS } from '../helpers/constants.js'; import { createSetLike } from '../helpers/helpers.js'; QUnit.test('Set#union', assert => { @@ -26,7 +25,7 @@ QUnit.test('Set#union', assert => { assert.throws(() => union.call(undefined, [1, 2, 3]), TypeError); assert.throws(() => union.call(null, [1, 2, 3]), TypeError); - if (DESCRIPTORS) { + { // Should get iterator record of a set-like object before cloning this // https://bugs.webkit.org/show_bug.cgi?id=289430 const baseSet = new Set(); diff --git a/tests/unit-global/es.string.match-all.js b/tests/unit-global/es.string.match-all.js index 1a06c99481f9..adab965d492c 100644 --- a/tests/unit-global/es.string.match-all.js +++ b/tests/unit-global/es.string.match-all.js @@ -1,4 +1,4 @@ -import { DESCRIPTORS, STRICT } from '../helpers/constants.js'; +import { STRICT } from '../helpers/constants.js'; QUnit.test('String#matchAll', assert => { const { matchAll } = String.prototype; @@ -99,35 +99,12 @@ QUnit.test('String#matchAll', assert => { value: undefined, done: true, }); - /* IE8- issue - iterator = 'abc'.matchAll(/\B/g); - assert.isIterator(iterator); - assert.isIterable(iterator); - assert.deepEqual(iterator.next(), { - value: assign([''], { - input: 'abc', - index: 1, - }), - done: false, - }); - assert.deepEqual(iterator.next(), { - value: assign([''], { - input: 'abc', - index: 2, - }), - done: false, - }); - assert.deepEqual(iterator.next(), { - value: undefined, - done: true, - }); - */ data = [null, undefined, NaN, 42, {}, []]; for (const target of data) { assert.notThrows(() => ''.matchAll(target), `Not throws on ${ target } as the first argument`); } - if (DESCRIPTORS && typeof Symbol == 'function' && !Symbol.sham) { + if (typeof Symbol == 'function' && !Symbol.sham) { const symbol = Symbol('matchAll test'); assert.throws(() => matchAll.call(symbol, /./), 'throws on symbol context'); assert.throws(() => matchAll.call('a', symbol), 'throws on symbol argument'); diff --git a/tests/unit-global/es.symbol.async-dispose.js b/tests/unit-global/es.symbol.async-dispose.js index 1111f1d2d931..d01dd379b0ce 100644 --- a/tests/unit-global/es.symbol.async-dispose.js +++ b/tests/unit-global/es.symbol.async-dispose.js @@ -1,14 +1,10 @@ -import { DESCRIPTORS } from '../helpers/constants.js'; - QUnit.test('Symbol.asyncDispose', assert => { assert.true('asyncDispose' in Symbol, 'Symbol.asyncDispose available'); assert.true(Object(Symbol.asyncDispose) instanceof Symbol, 'Symbol.asyncDispose is symbol'); // Node 20.4.0 add `Symbol.asyncDispose`, but with incorrect descriptor // https://github.com/nodejs/node/issues/48699 - if (DESCRIPTORS) { - const descriptor = Object.getOwnPropertyDescriptor(Symbol, 'asyncDispose'); - assert.false(descriptor.enumerable, 'non-enumerable'); - assert.false(descriptor.writable, 'non-writable'); - assert.false(descriptor.configurable, 'non-configurable'); - } + const descriptor = Object.getOwnPropertyDescriptor(Symbol, 'asyncDispose'); + assert.false(descriptor.enumerable, 'non-enumerable'); + assert.false(descriptor.writable, 'non-writable'); + assert.false(descriptor.configurable, 'non-configurable'); }); diff --git a/tests/unit-global/es.symbol.async-iterator.js b/tests/unit-global/es.symbol.async-iterator.js index 341c0907ddd3..d4c9093c514f 100644 --- a/tests/unit-global/es.symbol.async-iterator.js +++ b/tests/unit-global/es.symbol.async-iterator.js @@ -1,13 +1,10 @@ -import { DESCRIPTORS } from '../helpers/constants.js'; - QUnit.test('Symbol.asyncIterator', assert => { assert.true('asyncIterator' in Symbol, 'Symbol.asyncIterator available'); assert.nonEnumerable(Symbol, 'asyncIterator'); assert.true(Object(Symbol.asyncIterator) instanceof Symbol, 'Symbol.asyncIterator is symbol'); - if (DESCRIPTORS) { - const descriptor = Object.getOwnPropertyDescriptor(Symbol, 'asyncIterator'); - assert.false(descriptor.enumerable, 'non-enumerable'); - assert.false(descriptor.writable, 'non-writable'); - assert.false(descriptor.configurable, 'non-configurable'); - } + + const descriptor = Object.getOwnPropertyDescriptor(Symbol, 'asyncIterator'); + assert.false(descriptor.enumerable, 'non-enumerable'); + assert.false(descriptor.writable, 'non-writable'); + assert.false(descriptor.configurable, 'non-configurable'); }); diff --git a/tests/unit-global/es.symbol.constructor.js b/tests/unit-global/es.symbol.constructor.js index 864be5b0ea5d..c6d1fda62794 100644 --- a/tests/unit-global/es.symbol.constructor.js +++ b/tests/unit-global/es.symbol.constructor.js @@ -1,4 +1,4 @@ -import { DESCRIPTORS, GLOBAL, NATIVE } from '../helpers/constants.js'; +import { GLOBAL, NATIVE } from '../helpers/constants.js'; const { defineProperty, @@ -24,12 +24,10 @@ QUnit.test('Symbol', assert => { assert.same(object[symbol1], 42, 'Symbol() work as key'); assert.notSame(object[symbol2], 42, 'Various symbols from one description are various keys'); // assert.throws(() => Symbol(Symbol('foo')), 'throws on symbol argument'); - if (DESCRIPTORS) { - let count = 0; - // eslint-disable-next-line no-unused-vars -- required for testing - for (const key in object) count++; - assert.same(count, 0, 'object[Symbol()] is not enumerable'); - } + let count = 0; + // eslint-disable-next-line no-unused-vars -- required for testing + for (const key in object) count++; + assert.same(count, 0, 'object[Symbol()] is not enumerable'); }); QUnit.test('Symbol as global key', assert => { @@ -57,12 +55,11 @@ QUnit.test('Well-known Symbols', assert => { for (const name of wks) { assert.true(name in Symbol, `Symbol.${ name } available`); assert.true(Object(Symbol[name]) instanceof Symbol, `Symbol.${ name } is symbol`); - if (DESCRIPTORS) { - const descriptor = getOwnPropertyDescriptor(Symbol, name); - assert.false(descriptor.enumerable, 'non-enumerable'); - assert.false(descriptor.writable, 'non-writable'); - assert.false(descriptor.configurable, 'non-configurable'); - } + + const descriptor = getOwnPropertyDescriptor(Symbol, name); + assert.false(descriptor.enumerable, 'non-enumerable'); + assert.false(descriptor.writable, 'non-writable'); + assert.false(descriptor.configurable, 'non-configurable'); } }); @@ -76,171 +73,169 @@ QUnit.test('Symbol#@@toStringTag', assert => { assert.same(Symbol.prototype[Symbol.toStringTag], 'Symbol', 'Symbol::@@toStringTag is `Symbol`'); }); -if (DESCRIPTORS) { - QUnit.test('Symbols & descriptors', assert => { - const d = Symbol('d'); - const e = Symbol('e'); - const f = Symbol('f'); - const i = Symbol('i'); - const j = Symbol('j'); - const prototype = { g: 'g' }; - prototype[i] = 'i'; - defineProperty(prototype, 'h', { - value: 'h', - }); - defineProperty(prototype, 'j', { - value: 'j', - }); - const object = create(prototype); - object.a = 'a'; - object[d] = 'd'; - defineProperty(object, 'b', { - value: 'b', - }); - defineProperty(object, 'c', { - value: 'c', - enumerable: true, - }); - defineProperty(object, e, { - configurable: true, - writable: true, - value: 'e', - }); - const descriptor = { - value: 'f', - enumerable: true, - }; - defineProperty(object, f, descriptor); - assert.true(descriptor.enumerable, 'defineProperty not changes descriptor object'); - assert.deepEqual(getOwnPropertyDescriptor(object, 'a'), { - configurable: true, - writable: true, - enumerable: true, +QUnit.test('Symbols & descriptors', assert => { + const d = Symbol('d'); + const e = Symbol('e'); + const f = Symbol('f'); + const i = Symbol('i'); + const j = Symbol('j'); + const prototype = { g: 'g' }; + prototype[i] = 'i'; + defineProperty(prototype, 'h', { + value: 'h', + }); + defineProperty(prototype, 'j', { + value: 'j', + }); + const object = create(prototype); + object.a = 'a'; + object[d] = 'd'; + defineProperty(object, 'b', { + value: 'b', + }); + defineProperty(object, 'c', { + value: 'c', + enumerable: true, + }); + defineProperty(object, e, { + configurable: true, + writable: true, + value: 'e', + }); + const descriptor = { + value: 'f', + enumerable: true, + }; + defineProperty(object, f, descriptor); + assert.true(descriptor.enumerable, 'defineProperty not changes descriptor object'); + assert.deepEqual(getOwnPropertyDescriptor(object, 'a'), { + configurable: true, + writable: true, + enumerable: true, + value: 'a', + }, 'getOwnPropertyDescriptor a'); + assert.deepEqual(getOwnPropertyDescriptor(object, 'b'), { + configurable: false, + writable: false, + enumerable: false, + value: 'b', + }, 'getOwnPropertyDescriptor b'); + assert.deepEqual(getOwnPropertyDescriptor(object, 'c'), { + configurable: false, + writable: false, + enumerable: true, + value: 'c', + }, 'getOwnPropertyDescriptor c'); + assert.deepEqual(getOwnPropertyDescriptor(object, d), { + configurable: true, + writable: true, + enumerable: true, + value: 'd', + }, 'getOwnPropertyDescriptor d'); + assert.deepEqual(getOwnPropertyDescriptor(object, e), { + configurable: true, + writable: true, + enumerable: false, + value: 'e', + }, 'getOwnPropertyDescriptor e'); + assert.deepEqual(getOwnPropertyDescriptor(object, f), { + configurable: false, + writable: false, + enumerable: true, + value: 'f', + }, 'getOwnPropertyDescriptor f'); + assert.same(getOwnPropertyDescriptor(object, 'g'), undefined, 'getOwnPropertyDescriptor g'); + assert.same(getOwnPropertyDescriptor(object, 'h'), undefined, 'getOwnPropertyDescriptor h'); + assert.same(getOwnPropertyDescriptor(object, i), undefined, 'getOwnPropertyDescriptor i'); + assert.same(getOwnPropertyDescriptor(object, j), undefined, 'getOwnPropertyDescriptor j'); + assert.same(getOwnPropertyDescriptor(object, 'k'), undefined, 'getOwnPropertyDescriptor k'); + assert.false(getOwnPropertyDescriptor(Object.prototype, 'toString').enumerable, 'getOwnPropertyDescriptor on Object.prototype'); + assert.same(getOwnPropertyDescriptor(Object.prototype, d), undefined, 'getOwnPropertyDescriptor on Object.prototype missed symbol'); + assert.same(keys(object).length, 2, 'Object.keys'); + assert.same(getOwnPropertyNames(object).length, 3, 'Object.getOwnPropertyNames'); + assert.same(getOwnPropertySymbols(object).length, 3, 'Object.getOwnPropertySymbols'); + assert.same(ownKeys(object).length, 6, 'Reflect.ownKeys'); + delete object[e]; + object[e] = 'e'; + assert.deepEqual(getOwnPropertyDescriptor(object, e), { + configurable: true, + writable: true, + enumerable: true, + value: 'e', + }, 'redefined non-enum key'); +}); + +QUnit.test('Symbols & Object.defineProperties', assert => { + const c = Symbol('c'); + const d = Symbol('d'); + const descriptors = { + a: { value: 'a', - }, 'getOwnPropertyDescriptor a'); - assert.deepEqual(getOwnPropertyDescriptor(object, 'b'), { - configurable: false, - writable: false, - enumerable: false, + }, + }; + descriptors[c] = { + value: 'c', + }; + defineProperty(descriptors, 'b', { + value: { value: 'b', - }, 'getOwnPropertyDescriptor b'); - assert.deepEqual(getOwnPropertyDescriptor(object, 'c'), { - configurable: false, - writable: false, - enumerable: true, - value: 'c', - }, 'getOwnPropertyDescriptor c'); - assert.deepEqual(getOwnPropertyDescriptor(object, d), { - configurable: true, - writable: true, - enumerable: true, - value: 'd', - }, 'getOwnPropertyDescriptor d'); - assert.deepEqual(getOwnPropertyDescriptor(object, e), { - configurable: true, - writable: true, - enumerable: false, - value: 'e', - }, 'getOwnPropertyDescriptor e'); - assert.deepEqual(getOwnPropertyDescriptor(object, f), { - configurable: false, - writable: false, - enumerable: true, - value: 'f', - }, 'getOwnPropertyDescriptor f'); - assert.same(getOwnPropertyDescriptor(object, 'g'), undefined, 'getOwnPropertyDescriptor g'); - assert.same(getOwnPropertyDescriptor(object, 'h'), undefined, 'getOwnPropertyDescriptor h'); - assert.same(getOwnPropertyDescriptor(object, i), undefined, 'getOwnPropertyDescriptor i'); - assert.same(getOwnPropertyDescriptor(object, j), undefined, 'getOwnPropertyDescriptor j'); - assert.same(getOwnPropertyDescriptor(object, 'k'), undefined, 'getOwnPropertyDescriptor k'); - assert.false(getOwnPropertyDescriptor(Object.prototype, 'toString').enumerable, 'getOwnPropertyDescriptor on Object.prototype'); - assert.same(getOwnPropertyDescriptor(Object.prototype, d), undefined, 'getOwnPropertyDescriptor on Object.prototype missed symbol'); - assert.same(keys(object).length, 2, 'Object.keys'); - assert.same(getOwnPropertyNames(object).length, 3, 'Object.getOwnPropertyNames'); - assert.same(getOwnPropertySymbols(object).length, 3, 'Object.getOwnPropertySymbols'); - assert.same(ownKeys(object).length, 6, 'Reflect.ownKeys'); - delete object[e]; - object[e] = 'e'; - assert.deepEqual(getOwnPropertyDescriptor(object, e), { - configurable: true, - writable: true, - enumerable: true, - value: 'e', - }, 'redefined non-enum key'); + }, }); - - QUnit.test('Symbols & Object.defineProperties', assert => { - const c = Symbol('c'); - const d = Symbol('d'); - const descriptors = { - a: { - value: 'a', - }, - }; - descriptors[c] = { - value: 'c', - }; - defineProperty(descriptors, 'b', { - value: { - value: 'b', - }, - }); - defineProperty(descriptors, d, { - value: { - value: 'd', - }, - }); - const object = defineProperties({}, descriptors); - assert.same(object.a, 'a', 'a'); - assert.same(object.b, undefined, 'b'); - assert.same(object[c], 'c', 'c'); - assert.same(object[d], undefined, 'd'); + defineProperty(descriptors, d, { + value: { + value: 'd', + }, }); + const object = defineProperties({}, descriptors); + assert.same(object.a, 'a', 'a'); + assert.same(object.b, undefined, 'b'); + assert.same(object[c], 'c', 'c'); + assert.same(object[d], undefined, 'd'); +}); - QUnit.test('Symbols & Object.create', assert => { - const c = Symbol('c'); - const d = Symbol('d'); - const descriptors = { - a: { - value: 'a', - }, - }; - descriptors[c] = { - value: 'c', - }; - defineProperty(descriptors, 'b', { - value: { - value: 'b', - }, - }); - defineProperty(descriptors, d, { - value: { - value: 'd', - }, - }); - const object = create(null, descriptors); - assert.same(object.a, 'a', 'a'); - assert.same(object.b, undefined, 'b'); - assert.same(object[c], 'c', 'c'); - assert.same(object[d], undefined, 'd'); +QUnit.test('Symbols & Object.create', assert => { + const c = Symbol('c'); + const d = Symbol('d'); + const descriptors = { + a: { + value: 'a', + }, + }; + descriptors[c] = { + value: 'c', + }; + defineProperty(descriptors, 'b', { + value: { + value: 'b', + }, }); - - const constructors = ['Map', 'Set', 'Promise']; - for (const name of constructors) { - QUnit.test(`${ name }@@species`, assert => { - assert.same(GLOBAL[name][Symbol.species], GLOBAL[name], `${ name }@@species === ${ name }`); - const Subclass = create(GLOBAL[name]); - assert.same(Subclass[Symbol.species], Subclass, `${ name } subclass`); - }); - } - - QUnit.test('Array@@species', assert => { - assert.same(Array[Symbol.species], Array, 'Array@@species === Array'); - const Subclass = create(Array); - assert.same(Subclass[Symbol.species], Subclass, 'Array subclass'); + defineProperty(descriptors, d, { + value: { + value: 'd', + }, }); + const object = create(null, descriptors); + assert.same(object.a, 'a', 'a'); + assert.same(object.b, undefined, 'b'); + assert.same(object[c], 'c', 'c'); + assert.same(object[d], undefined, 'd'); +}); - QUnit.test('Symbol.sham flag', assert => { - assert.same(Symbol.sham, typeof Symbol('Symbol.sham flag test') == 'symbol' ? undefined : true); +const constructors = ['Map', 'Set', 'Promise']; +for (const name of constructors) { + QUnit.test(`${ name }@@species`, assert => { + assert.same(GLOBAL[name][Symbol.species], GLOBAL[name], `${ name }@@species === ${ name }`); + const Subclass = create(GLOBAL[name]); + assert.same(Subclass[Symbol.species], Subclass, `${ name } subclass`); }); } + +QUnit.test('Array@@species', assert => { + assert.same(Array[Symbol.species], Array, 'Array@@species === Array'); + const Subclass = create(Array); + assert.same(Subclass[Symbol.species], Subclass, 'Array subclass'); +}); + +QUnit.test('Symbol.sham flag', assert => { + assert.same(Symbol.sham, typeof Symbol('Symbol.sham flag test') == 'symbol' ? undefined : true); +}); diff --git a/tests/unit-global/es.symbol.description.js b/tests/unit-global/es.symbol.description.js index 7a42c31fbaa6..9d9cd7d8fb49 100644 --- a/tests/unit-global/es.symbol.description.js +++ b/tests/unit-global/es.symbol.description.js @@ -1,6 +1,4 @@ /* eslint-disable symbol-description -- required for testing */ -import { DESCRIPTORS } from '../helpers/constants.js'; - QUnit.test('Symbol#description', assert => { assert.same(Symbol('foo').description, 'foo'); assert.same(Symbol('').description, ''); @@ -11,13 +9,13 @@ QUnit.test('Symbol#description', assert => { assert.same(Symbol().description, undefined); assert.same(Object(Symbol('foo')).description, 'foo'); assert.same(Object(Symbol()).description, undefined); - if (DESCRIPTORS) { - assert.false(Object.hasOwn(Symbol('foo'), 'description')); - const descriptor = Object.getOwnPropertyDescriptor(Symbol.prototype, 'description'); - assert.false(descriptor.enumerable); - assert.true(descriptor.configurable); - assert.same(typeof descriptor.get, 'function'); - } + + assert.false(Object.hasOwn(Symbol('foo'), 'description')); + const descriptor = Object.getOwnPropertyDescriptor(Symbol.prototype, 'description'); + assert.false(descriptor.enumerable); + assert.true(descriptor.configurable); + assert.same(typeof descriptor.get, 'function'); + if (typeof Symbol() == 'symbol') { assert.same(Symbol('foo').toString(), 'Symbol(foo)'); assert.same(String(Symbol('foo')), 'Symbol(foo)'); diff --git a/tests/unit-global/es.symbol.dispose.js b/tests/unit-global/es.symbol.dispose.js index 910fcb2cb1e5..05e3770ddc5a 100644 --- a/tests/unit-global/es.symbol.dispose.js +++ b/tests/unit-global/es.symbol.dispose.js @@ -1,14 +1,10 @@ -import { DESCRIPTORS } from '../helpers/constants.js'; - QUnit.test('Symbol.dispose', assert => { assert.true('dispose' in Symbol, 'Symbol.dispose available'); assert.true(Object(Symbol.dispose) instanceof Symbol, 'Symbol.dispose is symbol'); // Node 20.4.0 add `Symbol.dispose`, but with incorrect descriptor // https://github.com/nodejs/node/issues/48699 - if (DESCRIPTORS) { - const descriptor = Object.getOwnPropertyDescriptor(Symbol, 'dispose'); - assert.false(descriptor.enumerable, 'non-enumerable'); - assert.false(descriptor.writable, 'non-writable'); - assert.false(descriptor.configurable, 'non-configurable'); - } + const descriptor = Object.getOwnPropertyDescriptor(Symbol, 'dispose'); + assert.false(descriptor.enumerable, 'non-enumerable'); + assert.false(descriptor.writable, 'non-writable'); + assert.false(descriptor.configurable, 'non-configurable'); }); diff --git a/tests/unit-global/es.typed-array.at.js b/tests/unit-global/es.typed-array.at.js index 9e674fbe9278..50332f24054e 100644 --- a/tests/unit-global/es.typed-array.at.js +++ b/tests/unit-global/es.typed-array.at.js @@ -1,6 +1,6 @@ -import { DESCRIPTORS, TYPED_ARRAYS } from '../helpers/constants.js'; +import { TYPED_ARRAYS } from '../helpers/constants.js'; -if (DESCRIPTORS) QUnit.test('%TypedArrayPrototype%.indexOf', assert => { +QUnit.test('%TypedArrayPrototype%.indexOf', assert => { // we can't implement %TypedArrayPrototype% in all engines, so run all tests for each typed array constructor for (const { name, TypedArray } of TYPED_ARRAYS) { const { at } = TypedArray.prototype; diff --git a/tests/unit-global/es.typed-array.constructors.js b/tests/unit-global/es.typed-array.constructors.js index eff383da8c17..20d07bf658ce 100644 --- a/tests/unit-global/es.typed-array.constructors.js +++ b/tests/unit-global/es.typed-array.constructors.js @@ -1,263 +1,261 @@ -import { DESCRIPTORS, NATIVE, TYPED_ARRAYS } from '../helpers/constants.js'; +import { NATIVE, TYPED_ARRAYS } from '../helpers/constants.js'; import { createIterable } from '../helpers/helpers.js'; const { keys, getOwnPropertyDescriptor, getPrototypeOf, defineProperty, assign } = Object; -if (DESCRIPTORS) { - for (const { name, TypedArray, bytes } of TYPED_ARRAYS) { - QUnit.test(`${ name } constructor`, assert => { - assert.isFunction(TypedArray); - assert.arity(TypedArray, 3); - assert.name(TypedArray, name); - // Safari 5 bug - if (NATIVE) assert.looksNative(TypedArray); - assert.same(TypedArray.BYTES_PER_ELEMENT, bytes, `${ name }.BYTES_PER_ELEMENT`); - let array = new TypedArray(4); - assert.same(array.BYTES_PER_ELEMENT, bytes, '#BYTES_PER_ELEMENT'); - assert.same(array.byteOffset, 0, `${ name }#byteOffset, passed number`); - assert.same(array.byteLength, 4 * bytes, '#byteLength, passed number'); - assert.arrayEqual(array, [0, 0, 0, 0], 'correct values, passed number'); - assert.notThrows(() => { - // throws in IE / Edge / FF - array = new TypedArray('0x4'); - assert.same(array.byteOffset, 0, '#byteOffset, passed string'); - assert.same(array.byteLength, 4 * bytes, '#byteLength, passed string'); - assert.arrayEqual(array, [0, 0, 0, 0], 'correct values, passed string'); - return true; - }, 'passed string'); - assert.notThrows(() => { - // throws in IE / Edge / FF - array = new TypedArray(true); - assert.same(array.byteOffset, 0, '#byteOffset, passed boolean'); - assert.same(array.byteLength, 1 * bytes, '#byteLength, passed boolean'); - assert.arrayEqual(array, [0], 'correct values, passed boolean'); - return true; - }, 'passed boolean'); - assert.notThrows(() => { - array = new TypedArray(); - assert.same(array.byteOffset, 0, '#byteOffset, without arguments'); - assert.same(array.byteLength, 0, '#byteLength, without arguments'); - assert.arrayEqual(array, [], 'correct values, without arguments'); - return true; - }, 'without arguments'); - assert.notThrows(() => { - array = new TypedArray(undefined); - assert.same(array.byteOffset, 0, '#byteOffset, passed undefined'); - assert.same(array.byteLength, 0, '#byteLength, passed undefined'); - assert.arrayEqual(array, [], 'correct values, passed undefined'); - return true; - }, 'passed undefined'); - assert.notThrows(() => { - array = new TypedArray(-0); - assert.same(array.byteOffset, 0, '#byteOffset, passed -0'); - assert.same(array.byteLength, 0, '#byteLength, passed -0'); - assert.arrayEqual(array, [], 'correct values, passed -0'); - return true; - }, 'passed -0'); - assert.notThrows(() => { - array = new TypedArray(NaN); - assert.same(array.byteOffset, 0, '#byteOffset, passed NaN'); - assert.same(array.byteLength, 0, '#byteLength, passed NaN'); - assert.arrayEqual(array, [], 'correct values, passed NaN'); - return true; - }, 'passed NaN'); - assert.notThrows(() => { - array = new TypedArray(1.5); - assert.same(array.byteOffset, 0, '#byteOffset, passed 1.5'); - assert.same(array.byteLength, 1 * bytes, '#byteLength, passed 1.5'); - assert.arrayEqual(array, [0], 'correct values, passed 1.5'); - return true; - }, 'passed 1.5'); - if (NATIVE) assert.throws(() => new TypedArray(-1), RangeError, 'throws on -1'); - assert.notThrows(() => { - array = new TypedArray(null); - assert.same(array.byteOffset, 0, '#byteOffset, passed null'); - assert.same(array.byteLength, 0, '#byteLength, passed null'); - assert.arrayEqual(array, [], 'correct values, passed null'); - return true; - }, 'passed null'); - array = new TypedArray([1, 2, 3, 4]); - assert.same(array.byteOffset, 0, '#byteOffset, passed array'); - assert.same(array.byteLength, 4 * bytes, '#byteLength, passed array'); - assert.arrayEqual(array, [1, 2, 3, 4], 'correct values, passed array'); - array = new TypedArray({ - 0: 1, - 1: 2, - 2: 3, - 3: 4, - length: 4, - }); - assert.same(array.byteOffset, 0, '#byteOffset, passed array-like'); - assert.same(array.byteLength, 4 * bytes, '#byteLength, passed array-like'); - assert.arrayEqual(array, [1, 2, 3, 4], 'correct values, passed array-like'); - assert.notThrows(() => { - // throws in IE / Edge - array = new TypedArray({}); - assert.same(array.byteOffset, 0, '#byteOffset, passed empty object (also array-like case)'); - assert.same(array.byteLength, 0, '#byteLength, passed empty object (also array-like case)'); - assert.arrayEqual(array, [], 'correct values, passed empty object (also array-like case)'); - return true; - }, 'passed empty object (also array-like case)'); - assert.notThrows(() => { - array = new TypedArray(createIterable([1, 2, 3, 4])); - assert.same(array.byteOffset, 0, '#byteOffset, passed iterable'); - assert.same(array.byteLength, 4 * bytes, '#byteLength, passed iterable'); - assert.arrayEqual(array, [1, 2, 3, 4], 'correct values, passed iterable'); - return true; - }, 'passed iterable'); - assert.notThrows(() => { - array = new TypedArray([{ valueOf() { return 2; } }]); - assert.same(array.byteOffset, 0, '#byteOffset, passed array with object convertible to primitive'); - assert.same(array.byteLength, bytes, '#byteLength, passed array with object convertible to primitive'); - assert.arrayEqual(array, [2], 'correct values, passed array with object convertible to primitive'); - return true; - }, 'passed array with object convertible to primitive'); - assert.notThrows(() => { - array = new TypedArray(createIterable([{ valueOf() { return 2; } }])); - assert.same(array.byteOffset, 0, '#byteOffset, passed iterable with object convertible to primitive'); - assert.same(array.byteLength, bytes, '#byteLength, passed iterable with object convertible to primitive'); - assert.arrayEqual(array, [2], 'correct values, passed iterable with object convertible to primitive'); - return true; - }, 'passed iterable with object convertible to primitive'); - array = new TypedArray(new TypedArray([1, 2, 3, 4])); - assert.same(array.byteOffset, 0, '#byteOffset, passed typed array'); - assert.same(array.byteLength, 4 * bytes, '#byteLength, passed typed array'); - assert.arrayEqual(array, [1, 2, 3, 4], 'correct values, passed typed array'); - const fake = new TypedArray([1, 2, 3, 4]); - fake[Symbol.iterator] = function () { - return createIterable([4, 3, 2, 1])[Symbol.iterator](); - }; - array = new TypedArray(fake); - assert.same(array.byteOffset, 0, '#byteOffset, passed typed array with custom iterator'); - assert.same(array.byteLength, 4 * bytes, '#byteLength, passed typed array with custom iterator'); - // https://code.google.com/p/v8/issues/detail?id=4552 - assert.arrayEqual(array, [1, 2, 3, 4], 'correct values, passed typed array with custom iterator'); - array = new TypedArray(new ArrayBuffer(8)); - assert.same(array.byteOffset, 0, '#byteOffset, passed buffer'); - assert.same(array.byteLength, 8, '#byteLength, passed buffer'); - assert.same(array.length, 8 / bytes, 'correct length, passed buffer'); - array = new TypedArray(new ArrayBuffer(16), 8); - assert.same(array.byteOffset, 8, '#byteOffset, passed buffer and byteOffset'); - assert.same(array.byteLength, 8, '#byteLength, passed buffer and byteOffset'); - assert.same(array.length, 8 / bytes, 'correct length, passed buffer and byteOffset'); - array = new TypedArray(new ArrayBuffer(24), 8, 8 / bytes); - assert.same(array.byteOffset, 8, '#byteOffset, passed buffer, byteOffset and length'); - assert.same(array.byteLength, 8, '#byteLength, passed buffer, byteOffset and length'); - assert.same(array.length, 8 / bytes, 'correct length, passed buffer, byteOffset and length'); - array = new TypedArray(new ArrayBuffer(8), undefined); - assert.same(array.byteOffset, 0, '#byteOffset, passed buffer and undefined'); - assert.same(array.byteLength, 8, '#byteLength, passed buffer and undefined'); - assert.same(array.length, 8 / bytes, 'correct length, passed buffer and undefined'); - array = new TypedArray(new ArrayBuffer(16), 8, undefined); - assert.same(array.byteOffset, 8, '#byteOffset, passed buffer, byteOffset and undefined'); - assert.same(array.byteLength, 8, '#byteLength, passed buffer, byteOffset and undefined'); - assert.same(array.length, 8 / bytes, 'correct length, passed buffer, byteOffset and undefined'); - array = new TypedArray(new ArrayBuffer(8), 8); - assert.same(array.byteOffset, 8, '#byteOffset, passed buffer and byteOffset with buffer length'); - assert.same(array.byteLength, 0, '#byteLength, passed buffer and byteOffset with buffer length'); - assert.arrayEqual(array, [], 'correct values, passed buffer and byteOffset with buffer length'); +for (const { name, TypedArray, bytes } of TYPED_ARRAYS) { + QUnit.test(`${ name } constructor`, assert => { + assert.isFunction(TypedArray); + assert.arity(TypedArray, 3); + assert.name(TypedArray, name); + // Safari 5 bug + if (NATIVE) assert.looksNative(TypedArray); + assert.same(TypedArray.BYTES_PER_ELEMENT, bytes, `${ name }.BYTES_PER_ELEMENT`); + let array = new TypedArray(4); + assert.same(array.BYTES_PER_ELEMENT, bytes, '#BYTES_PER_ELEMENT'); + assert.same(array.byteOffset, 0, `${ name }#byteOffset, passed number`); + assert.same(array.byteLength, 4 * bytes, '#byteLength, passed number'); + assert.arrayEqual(array, [0, 0, 0, 0], 'correct values, passed number'); + assert.notThrows(() => { + // throws in IE / Edge / FF + array = new TypedArray('0x4'); + assert.same(array.byteOffset, 0, '#byteOffset, passed string'); + assert.same(array.byteLength, 4 * bytes, '#byteLength, passed string'); + assert.arrayEqual(array, [0, 0, 0, 0], 'correct values, passed string'); + return true; + }, 'passed string'); + assert.notThrows(() => { + // throws in IE / Edge / FF + array = new TypedArray(true); + assert.same(array.byteOffset, 0, '#byteOffset, passed boolean'); + assert.same(array.byteLength, 1 * bytes, '#byteLength, passed boolean'); + assert.arrayEqual(array, [0], 'correct values, passed boolean'); + return true; + }, 'passed boolean'); + assert.notThrows(() => { + array = new TypedArray(); + assert.same(array.byteOffset, 0, '#byteOffset, without arguments'); + assert.same(array.byteLength, 0, '#byteLength, without arguments'); + assert.arrayEqual(array, [], 'correct values, without arguments'); + return true; + }, 'without arguments'); + assert.notThrows(() => { + array = new TypedArray(undefined); + assert.same(array.byteOffset, 0, '#byteOffset, passed undefined'); + assert.same(array.byteLength, 0, '#byteLength, passed undefined'); + assert.arrayEqual(array, [], 'correct values, passed undefined'); + return true; + }, 'passed undefined'); + assert.notThrows(() => { + array = new TypedArray(-0); + assert.same(array.byteOffset, 0, '#byteOffset, passed -0'); + assert.same(array.byteLength, 0, '#byteLength, passed -0'); + assert.arrayEqual(array, [], 'correct values, passed -0'); + return true; + }, 'passed -0'); + assert.notThrows(() => { + array = new TypedArray(NaN); + assert.same(array.byteOffset, 0, '#byteOffset, passed NaN'); + assert.same(array.byteLength, 0, '#byteLength, passed NaN'); + assert.arrayEqual(array, [], 'correct values, passed NaN'); + return true; + }, 'passed NaN'); + assert.notThrows(() => { + array = new TypedArray(1.5); + assert.same(array.byteOffset, 0, '#byteOffset, passed 1.5'); + assert.same(array.byteLength, 1 * bytes, '#byteLength, passed 1.5'); + assert.arrayEqual(array, [0], 'correct values, passed 1.5'); + return true; + }, 'passed 1.5'); + if (NATIVE) assert.throws(() => new TypedArray(-1), RangeError, 'throws on -1'); + assert.notThrows(() => { + array = new TypedArray(null); + assert.same(array.byteOffset, 0, '#byteOffset, passed null'); + assert.same(array.byteLength, 0, '#byteLength, passed null'); + assert.arrayEqual(array, [], 'correct values, passed null'); + return true; + }, 'passed null'); + array = new TypedArray([1, 2, 3, 4]); + assert.same(array.byteOffset, 0, '#byteOffset, passed array'); + assert.same(array.byteLength, 4 * bytes, '#byteLength, passed array'); + assert.arrayEqual(array, [1, 2, 3, 4], 'correct values, passed array'); + array = new TypedArray({ + 0: 1, + 1: 2, + 2: 3, + 3: 4, + length: 4, + }); + assert.same(array.byteOffset, 0, '#byteOffset, passed array-like'); + assert.same(array.byteLength, 4 * bytes, '#byteLength, passed array-like'); + assert.arrayEqual(array, [1, 2, 3, 4], 'correct values, passed array-like'); + assert.notThrows(() => { + // throws in IE / Edge + array = new TypedArray({}); + assert.same(array.byteOffset, 0, '#byteOffset, passed empty object (also array-like case)'); + assert.same(array.byteLength, 0, '#byteLength, passed empty object (also array-like case)'); + assert.arrayEqual(array, [], 'correct values, passed empty object (also array-like case)'); + return true; + }, 'passed empty object (also array-like case)'); + assert.notThrows(() => { + array = new TypedArray(createIterable([1, 2, 3, 4])); + assert.same(array.byteOffset, 0, '#byteOffset, passed iterable'); + assert.same(array.byteLength, 4 * bytes, '#byteLength, passed iterable'); + assert.arrayEqual(array, [1, 2, 3, 4], 'correct values, passed iterable'); + return true; + }, 'passed iterable'); + assert.notThrows(() => { + array = new TypedArray([{ valueOf() { return 2; } }]); + assert.same(array.byteOffset, 0, '#byteOffset, passed array with object convertible to primitive'); + assert.same(array.byteLength, bytes, '#byteLength, passed array with object convertible to primitive'); + assert.arrayEqual(array, [2], 'correct values, passed array with object convertible to primitive'); + return true; + }, 'passed array with object convertible to primitive'); + assert.notThrows(() => { + array = new TypedArray(createIterable([{ valueOf() { return 2; } }])); + assert.same(array.byteOffset, 0, '#byteOffset, passed iterable with object convertible to primitive'); + assert.same(array.byteLength, bytes, '#byteLength, passed iterable with object convertible to primitive'); + assert.arrayEqual(array, [2], 'correct values, passed iterable with object convertible to primitive'); + return true; + }, 'passed iterable with object convertible to primitive'); + array = new TypedArray(new TypedArray([1, 2, 3, 4])); + assert.same(array.byteOffset, 0, '#byteOffset, passed typed array'); + assert.same(array.byteLength, 4 * bytes, '#byteLength, passed typed array'); + assert.arrayEqual(array, [1, 2, 3, 4], 'correct values, passed typed array'); + const fake = new TypedArray([1, 2, 3, 4]); + fake[Symbol.iterator] = function () { + return createIterable([4, 3, 2, 1])[Symbol.iterator](); + }; + array = new TypedArray(fake); + assert.same(array.byteOffset, 0, '#byteOffset, passed typed array with custom iterator'); + assert.same(array.byteLength, 4 * bytes, '#byteLength, passed typed array with custom iterator'); + // https://code.google.com/p/v8/issues/detail?id=4552 + assert.arrayEqual(array, [1, 2, 3, 4], 'correct values, passed typed array with custom iterator'); + array = new TypedArray(new ArrayBuffer(8)); + assert.same(array.byteOffset, 0, '#byteOffset, passed buffer'); + assert.same(array.byteLength, 8, '#byteLength, passed buffer'); + assert.same(array.length, 8 / bytes, 'correct length, passed buffer'); + array = new TypedArray(new ArrayBuffer(16), 8); + assert.same(array.byteOffset, 8, '#byteOffset, passed buffer and byteOffset'); + assert.same(array.byteLength, 8, '#byteLength, passed buffer and byteOffset'); + assert.same(array.length, 8 / bytes, 'correct length, passed buffer and byteOffset'); + array = new TypedArray(new ArrayBuffer(24), 8, 8 / bytes); + assert.same(array.byteOffset, 8, '#byteOffset, passed buffer, byteOffset and length'); + assert.same(array.byteLength, 8, '#byteLength, passed buffer, byteOffset and length'); + assert.same(array.length, 8 / bytes, 'correct length, passed buffer, byteOffset and length'); + array = new TypedArray(new ArrayBuffer(8), undefined); + assert.same(array.byteOffset, 0, '#byteOffset, passed buffer and undefined'); + assert.same(array.byteLength, 8, '#byteLength, passed buffer and undefined'); + assert.same(array.length, 8 / bytes, 'correct length, passed buffer and undefined'); + array = new TypedArray(new ArrayBuffer(16), 8, undefined); + assert.same(array.byteOffset, 8, '#byteOffset, passed buffer, byteOffset and undefined'); + assert.same(array.byteLength, 8, '#byteLength, passed buffer, byteOffset and undefined'); + assert.same(array.length, 8 / bytes, 'correct length, passed buffer, byteOffset and undefined'); + array = new TypedArray(new ArrayBuffer(8), 8); + assert.same(array.byteOffset, 8, '#byteOffset, passed buffer and byteOffset with buffer length'); + assert.same(array.byteLength, 0, '#byteLength, passed buffer and byteOffset with buffer length'); + assert.arrayEqual(array, [], 'correct values, passed buffer and byteOffset with buffer length'); + // FF bug - TypeError instead of RangeError + assert.throws(() => new TypedArray(new ArrayBuffer(8), -1), RangeError, 'If offset < 0, throw a RangeError exception'); + if (bytes !== 1) { // FF bug - TypeError instead of RangeError - assert.throws(() => new TypedArray(new ArrayBuffer(8), -1), RangeError, 'If offset < 0, throw a RangeError exception'); + assert.throws(() => new TypedArray(new ArrayBuffer(8), 3), RangeError, 'If offset modulo elementSize ≠ 0, throw a RangeError exception'); + } + if (NATIVE) { if (bytes !== 1) { - // FF bug - TypeError instead of RangeError - assert.throws(() => new TypedArray(new ArrayBuffer(8), 3), RangeError, 'If offset modulo elementSize ≠ 0, throw a RangeError exception'); - } - if (NATIVE) { - if (bytes !== 1) { - // fails in Opera 12 - assert.throws(() => new TypedArray(new ArrayBuffer(9)), RangeError, 'If bufferByteLength modulo elementSize ≠ 0, throw a RangeError exception'); - } - assert.throws(() => new TypedArray(new ArrayBuffer(8), 16), RangeError, 'If newByteLength < 0, throw a RangeError exception'); - assert.throws(() => new TypedArray(new ArrayBuffer(24), 8, 24), RangeError, 'If offset+newByteLength > bufferByteLength, throw a RangeError exception'); - } else { // FF bug - TypeError instead of RangeError - assert.throws(() => new TypedArray(new ArrayBuffer(8), 16), 'If newByteLength < 0, throw a RangeError exception'); - assert.throws(() => new TypedArray(new ArrayBuffer(24), 8, 24), 'If offset+newByteLength > bufferByteLength, throw a RangeError exception'); + // fails in Opera 12 + assert.throws(() => new TypedArray(new ArrayBuffer(9)), RangeError, 'If bufferByteLength modulo elementSize ≠ 0, throw a RangeError exception'); } - // eslint-disable-next-line sonarjs/inconsistent-function-call -- required for testing - assert.throws(() => TypedArray(1), TypeError, 'throws without `new`'); - assert.same(TypedArray[Symbol.species], TypedArray, '@@species'); - }); + assert.throws(() => new TypedArray(new ArrayBuffer(8), 16), RangeError, 'If newByteLength < 0, throw a RangeError exception'); + assert.throws(() => new TypedArray(new ArrayBuffer(24), 8, 24), RangeError, 'If offset+newByteLength > bufferByteLength, throw a RangeError exception'); + } else { // FF bug - TypeError instead of RangeError + assert.throws(() => new TypedArray(new ArrayBuffer(8), 16), 'If newByteLength < 0, throw a RangeError exception'); + assert.throws(() => new TypedArray(new ArrayBuffer(24), 8, 24), 'If offset+newByteLength > bufferByteLength, throw a RangeError exception'); + } + // eslint-disable-next-line sonarjs/inconsistent-function-call -- required for testing + assert.throws(() => TypedArray(1), TypeError, 'throws without `new`'); + assert.same(TypedArray[Symbol.species], TypedArray, '@@species'); + }); - QUnit.test(`${ name } descriptors`, assert => { - const array = new TypedArray(2); - const descriptor = getOwnPropertyDescriptor(array, 0); - const base = NATIVE ? { + QUnit.test(`${ name } descriptors`, assert => { + const array = new TypedArray(2); + const descriptor = getOwnPropertyDescriptor(array, 0); + const base = NATIVE ? { + writable: true, + enumerable: true, + configurable: false, + } : { + writable: descriptor.writable, + enumerable: true, + configurable: descriptor.configurable, + }; + assert.deepEqual(getOwnPropertyDescriptor(array, 0), assign({ + value: 0, + }, base), 'Object.getOwnPropertyDescriptor'); + if (NATIVE) { + // fails in old WebKit + assert.arrayEqual(keys(array), ['0', '1'], 'Object.keys'); + const results = []; + for (const key in array) results.push(key); + // fails in old WebKit + assert.arrayEqual(results, ['0', '1'], 'for-in'); + defineProperty(array, 0, { + value: 1, writable: true, enumerable: true, configurable: false, - } : { - writable: descriptor.writable, - enumerable: true, - configurable: descriptor.configurable, - }; + }); + array[0] = array[1] = 2.5; assert.deepEqual(getOwnPropertyDescriptor(array, 0), assign({ - value: 0, - }, base), 'Object.getOwnPropertyDescriptor'); - if (NATIVE) { - // fails in old WebKit - assert.arrayEqual(keys(array), ['0', '1'], 'Object.keys'); - const results = []; - for (const key in array) results.push(key); - // fails in old WebKit - assert.arrayEqual(results, ['0', '1'], 'for-in'); - defineProperty(array, 0, { - value: 1, - writable: true, - enumerable: true, - configurable: false, - }); - array[0] = array[1] = 2.5; - assert.deepEqual(getOwnPropertyDescriptor(array, 0), assign({ - value: array[1], - }, base), 'Object.defineProperty, valid descriptor #1'); - defineProperty(array, 0, { - value: 1, - }); - array[0] = array[1] = 3.5; - assert.deepEqual(getOwnPropertyDescriptor(array, 0), assign({ - value: array[1], - }, base), 'Object.defineProperty, valid descriptor #2'); - assert.throws(() => defineProperty(array, 0, { - value: 2, - writable: false, - enumerable: true, - configurable: false, - }), 'Object.defineProperty, invalid descriptor #1'); - assert.throws(() => defineProperty(array, 0, { - value: 2, - writable: true, - enumerable: false, - configurable: false, - }), 'Object.defineProperty, invalid descriptor #2'); - assert.throws(() => defineProperty(array, 0, { - get() { - return 2; - }, - }), 'Object.defineProperty, invalid descriptor #3'); - } + value: array[1], + }, base), 'Object.defineProperty, valid descriptor #1'); + defineProperty(array, 0, { + value: 1, + }); + array[0] = array[1] = 3.5; + assert.deepEqual(getOwnPropertyDescriptor(array, 0), assign({ + value: array[1], + }, base), 'Object.defineProperty, valid descriptor #2'); assert.throws(() => defineProperty(array, 0, { value: 2, + writable: false, + enumerable: true, + configurable: false, + }), 'Object.defineProperty, invalid descriptor #1'); + assert.throws(() => defineProperty(array, 0, { + value: 2, + writable: true, + enumerable: false, + configurable: false, + }), 'Object.defineProperty, invalid descriptor #2'); + assert.throws(() => defineProperty(array, 0, { get() { return 2; }, - }), 'Object.defineProperty, invalid descriptor #4'); - }); + }), 'Object.defineProperty, invalid descriptor #3'); + } + assert.throws(() => defineProperty(array, 0, { + value: 2, + get() { + return 2; + }, + }), 'Object.defineProperty, invalid descriptor #4'); + }); - QUnit.test(`${ name } @@toStringTag`, assert => { - const TypedArrayPrototype = getPrototypeOf(TypedArray.prototype); - const descriptor = getOwnPropertyDescriptor(TypedArrayPrototype, Symbol.toStringTag); - const getter = descriptor.get; - assert.isFunction(getter); - assert.same(getter.call(new Int8Array(1)), 'Int8Array'); - assert.same(getter.call(new TypedArray(1)), name); - assert.same(getter.call([]), undefined); - assert.same(getter.call({}), undefined); - assert.same(getter.call(), undefined); - }); + QUnit.test(`${ name } @@toStringTag`, assert => { + const TypedArrayPrototype = getPrototypeOf(TypedArray.prototype); + const descriptor = getOwnPropertyDescriptor(TypedArrayPrototype, Symbol.toStringTag); + const getter = descriptor.get; + assert.isFunction(getter); + assert.same(getter.call(new Int8Array(1)), 'Int8Array'); + assert.same(getter.call(new TypedArray(1)), name); + assert.same(getter.call([]), undefined); + assert.same(getter.call({}), undefined); + assert.same(getter.call(), undefined); + }); - QUnit.test(`${ name }.sham`, assert => { - if (TypedArray.sham) assert.required(`${ name }.sham flag exists`); - else assert.required(`${ name }.sham flag missed`); - }); - } + QUnit.test(`${ name }.sham`, assert => { + if (TypedArray.sham) assert.required(`${ name }.sham flag exists`); + else assert.required(`${ name }.sham flag missed`); + }); } diff --git a/tests/unit-global/es.typed-array.copy-within.js b/tests/unit-global/es.typed-array.copy-within.js index b9aed39137f9..6114f3b28748 100644 --- a/tests/unit-global/es.typed-array.copy-within.js +++ b/tests/unit-global/es.typed-array.copy-within.js @@ -1,6 +1,6 @@ -import { DESCRIPTORS, TYPED_ARRAYS } from '../helpers/constants.js'; +import { TYPED_ARRAYS } from '../helpers/constants.js'; -if (DESCRIPTORS) QUnit.test('%TypedArrayPrototype%.copyWithin', assert => { +QUnit.test('%TypedArrayPrototype%.copyWithin', assert => { // we can't implement %TypedArrayPrototype% in all engines, so run all tests for each typed array constructor for (const { name, TypedArray } of TYPED_ARRAYS) { const { copyWithin } = TypedArray.prototype; diff --git a/tests/unit-global/es.typed-array.every.js b/tests/unit-global/es.typed-array.every.js index 0dfd361ae675..e84cdca2fb62 100644 --- a/tests/unit-global/es.typed-array.every.js +++ b/tests/unit-global/es.typed-array.every.js @@ -1,6 +1,6 @@ -import { DESCRIPTORS, TYPED_ARRAYS } from '../helpers/constants.js'; +import { TYPED_ARRAYS } from '../helpers/constants.js'; -if (DESCRIPTORS) QUnit.test('%TypedArrayPrototype%.every', assert => { +QUnit.test('%TypedArrayPrototype%.every', assert => { // we can't implement %TypedArrayPrototype% in all engines, so run all tests for each typed array constructor for (const { name, TypedArray } of TYPED_ARRAYS) { const { every } = TypedArray.prototype; diff --git a/tests/unit-global/es.typed-array.fill.js b/tests/unit-global/es.typed-array.fill.js index e3202eb12957..c19506904043 100644 --- a/tests/unit-global/es.typed-array.fill.js +++ b/tests/unit-global/es.typed-array.fill.js @@ -1,7 +1,7 @@ import { createConversionChecker } from '../helpers/helpers.js'; -import { DESCRIPTORS, TYPED_ARRAYS } from '../helpers/constants.js'; +import { TYPED_ARRAYS } from '../helpers/constants.js'; -if (DESCRIPTORS) QUnit.test('%TypedArrayPrototype%.fill', assert => { +QUnit.test('%TypedArrayPrototype%.fill', assert => { // we can't implement %TypedArrayPrototype% in all engines, so run all tests for each typed array constructor for (const { name, TypedArray } of TYPED_ARRAYS) { const { fill } = TypedArray.prototype; diff --git a/tests/unit-global/es.typed-array.filter.js b/tests/unit-global/es.typed-array.filter.js index 623ca6c4f25b..7555ca53af20 100644 --- a/tests/unit-global/es.typed-array.filter.js +++ b/tests/unit-global/es.typed-array.filter.js @@ -1,6 +1,6 @@ -import { DESCRIPTORS, TYPED_ARRAYS } from '../helpers/constants.js'; +import { TYPED_ARRAYS } from '../helpers/constants.js'; -if (DESCRIPTORS) QUnit.test('%TypedArrayPrototype%.filter', assert => { +QUnit.test('%TypedArrayPrototype%.filter', assert => { // we can't implement %TypedArrayPrototype% in all engines, so run all tests for each typed array constructor for (const { name, TypedArray } of TYPED_ARRAYS) { const { filter } = TypedArray.prototype; diff --git a/tests/unit-global/es.typed-array.find-index.js b/tests/unit-global/es.typed-array.find-index.js index 0893b25b7101..4e6f5a03913e 100644 --- a/tests/unit-global/es.typed-array.find-index.js +++ b/tests/unit-global/es.typed-array.find-index.js @@ -1,6 +1,6 @@ -import { DESCRIPTORS, TYPED_ARRAYS } from '../helpers/constants.js'; +import { TYPED_ARRAYS } from '../helpers/constants.js'; -if (DESCRIPTORS) QUnit.test('%TypedArrayPrototype%.findIndex', assert => { +QUnit.test('%TypedArrayPrototype%.findIndex', assert => { // we can't implement %TypedArrayPrototype% in all engines, so run all tests for each typed array constructor for (const { name, TypedArray } of TYPED_ARRAYS) { const { findIndex } = TypedArray.prototype; diff --git a/tests/unit-global/es.typed-array.find-last-index.js b/tests/unit-global/es.typed-array.find-last-index.js index 020b9e0e0ca3..8023f6c4ae14 100644 --- a/tests/unit-global/es.typed-array.find-last-index.js +++ b/tests/unit-global/es.typed-array.find-last-index.js @@ -1,6 +1,6 @@ -import { DESCRIPTORS, TYPED_ARRAYS } from '../helpers/constants.js'; +import { TYPED_ARRAYS } from '../helpers/constants.js'; -if (DESCRIPTORS) QUnit.test('%TypedArrayPrototype%.findLastIndex', assert => { +QUnit.test('%TypedArrayPrototype%.findLastIndex', assert => { // we can't implement %TypedArrayPrototype% in all engines, so run all tests for each typed array constructor for (const { name, TypedArray } of TYPED_ARRAYS) { const { findLastIndex } = TypedArray.prototype; diff --git a/tests/unit-global/es.typed-array.find-last.js b/tests/unit-global/es.typed-array.find-last.js index 504bbe31f5ff..e7a8cdf6de95 100644 --- a/tests/unit-global/es.typed-array.find-last.js +++ b/tests/unit-global/es.typed-array.find-last.js @@ -1,6 +1,6 @@ -import { DESCRIPTORS, TYPED_ARRAYS } from '../helpers/constants.js'; +import { TYPED_ARRAYS } from '../helpers/constants.js'; -if (DESCRIPTORS) QUnit.test('%TypedArrayPrototype%.findLast', assert => { +QUnit.test('%TypedArrayPrototype%.findLast', assert => { // we can't implement %TypedArrayPrototype% in all engines, so run all tests for each typed array constructor for (const { name, TypedArray } of TYPED_ARRAYS) { const { findLast } = TypedArray.prototype; diff --git a/tests/unit-global/es.typed-array.find.js b/tests/unit-global/es.typed-array.find.js index 74cb7978bc01..b7a2d491002c 100644 --- a/tests/unit-global/es.typed-array.find.js +++ b/tests/unit-global/es.typed-array.find.js @@ -1,6 +1,6 @@ -import { DESCRIPTORS, TYPED_ARRAYS } from '../helpers/constants.js'; +import { TYPED_ARRAYS } from '../helpers/constants.js'; -if (DESCRIPTORS) QUnit.test('%TypedArrayPrototype%.find', assert => { +QUnit.test('%TypedArrayPrototype%.find', assert => { // we can't implement %TypedArrayPrototype% in all engines, so run all tests for each typed array constructor for (const { name, TypedArray } of TYPED_ARRAYS) { const { find } = TypedArray.prototype; diff --git a/tests/unit-global/es.typed-array.for-each.js b/tests/unit-global/es.typed-array.for-each.js index 0552fa666399..2b4b471d0d4d 100644 --- a/tests/unit-global/es.typed-array.for-each.js +++ b/tests/unit-global/es.typed-array.for-each.js @@ -1,6 +1,6 @@ -import { DESCRIPTORS, TYPED_ARRAYS } from '../helpers/constants.js'; +import { TYPED_ARRAYS } from '../helpers/constants.js'; -if (DESCRIPTORS) QUnit.test('%TypedArrayPrototype%.forEach', assert => { +QUnit.test('%TypedArrayPrototype%.forEach', assert => { // we can't implement %TypedArrayPrototype% in all engines, so run all tests for each typed array constructor for (const { name, TypedArray } of TYPED_ARRAYS) { const { forEach } = TypedArray.prototype; diff --git a/tests/unit-global/es.typed-array.from.js b/tests/unit-global/es.typed-array.from.js index 46f3ae8985aa..608ce2296106 100644 --- a/tests/unit-global/es.typed-array.from.js +++ b/tests/unit-global/es.typed-array.from.js @@ -1,7 +1,7 @@ -import { DESCRIPTORS, NATIVE, TYPED_ARRAYS_WITH_BIG_INT } from '../helpers/constants.js'; +import { NATIVE, TYPED_ARRAYS_WITH_BIG_INT } from '../helpers/constants.js'; import { createIterable } from '../helpers/helpers.js'; -if (DESCRIPTORS) QUnit.test('%TypedArray%.from', assert => { +QUnit.test('%TypedArray%.from', assert => { // we can't implement %TypedArray% in all engines, so run all tests for each typed array constructor for (const { name, TypedArray, $ } of TYPED_ARRAYS_WITH_BIG_INT) { assert.isFunction(TypedArray.from, `${ name }.from is function`); diff --git a/tests/unit-global/es.typed-array.includes.js b/tests/unit-global/es.typed-array.includes.js index df3d07edd6d4..a859e302d498 100644 --- a/tests/unit-global/es.typed-array.includes.js +++ b/tests/unit-global/es.typed-array.includes.js @@ -1,6 +1,6 @@ -import { DESCRIPTORS, TYPED_ARRAYS } from '../helpers/constants.js'; +import { TYPED_ARRAYS } from '../helpers/constants.js'; -if (DESCRIPTORS) QUnit.test('%TypedArrayPrototype%.includes', assert => { +QUnit.test('%TypedArrayPrototype%.includes', assert => { // we can't implement %TypedArrayPrototype% in all engines, so run all tests for each typed array constructor for (const { name, TypedArray } of TYPED_ARRAYS) { const { includes } = TypedArray.prototype; diff --git a/tests/unit-global/es.typed-array.index-of.js b/tests/unit-global/es.typed-array.index-of.js index c590433f9e40..0c19682c3a3e 100644 --- a/tests/unit-global/es.typed-array.index-of.js +++ b/tests/unit-global/es.typed-array.index-of.js @@ -1,6 +1,6 @@ -import { DESCRIPTORS, TYPED_ARRAYS } from '../helpers/constants.js'; +import { TYPED_ARRAYS } from '../helpers/constants.js'; -if (DESCRIPTORS) QUnit.test('%TypedArrayPrototype%.indexOf', assert => { +QUnit.test('%TypedArrayPrototype%.indexOf', assert => { // we can't implement %TypedArrayPrototype% in all engines, so run all tests for each typed array constructor for (const { name, TypedArray } of TYPED_ARRAYS) { const { indexOf } = TypedArray.prototype; diff --git a/tests/unit-global/es.typed-array.iterator.js b/tests/unit-global/es.typed-array.iterator.js index 78a14854be51..7833d4a817cc 100644 --- a/tests/unit-global/es.typed-array.iterator.js +++ b/tests/unit-global/es.typed-array.iterator.js @@ -1,8 +1,8 @@ -import { DESCRIPTORS, GLOBAL, NATIVE, TYPED_ARRAYS } from '../helpers/constants.js'; +import { GLOBAL, NATIVE, TYPED_ARRAYS } from '../helpers/constants.js'; const Symbol = GLOBAL.Symbol || {}; -if (DESCRIPTORS) QUnit.test('%TypedArrayPrototype%.keys', assert => { +QUnit.test('%TypedArrayPrototype%.keys', assert => { // we can't implement %TypedArrayPrototype% in all engines, so run all tests for each typed array constructor for (const { name, TypedArray } of TYPED_ARRAYS) { const { keys } = TypedArray.prototype; @@ -34,7 +34,7 @@ if (DESCRIPTORS) QUnit.test('%TypedArrayPrototype%.keys', assert => { } }); -if (DESCRIPTORS) QUnit.test('%TypedArrayPrototype%.values', assert => { +QUnit.test('%TypedArrayPrototype%.values', assert => { // we can't implement %TypedArrayPrototype% in all engines, so run all tests for each typed array constructor for (const { name, TypedArray } of TYPED_ARRAYS) { const { values } = TypedArray.prototype; @@ -66,7 +66,7 @@ if (DESCRIPTORS) QUnit.test('%TypedArrayPrototype%.values', assert => { } }); -if (DESCRIPTORS) QUnit.test('%TypedArrayPrototype%.entries', assert => { +QUnit.test('%TypedArrayPrototype%.entries', assert => { // we can't implement %TypedArrayPrototype% in all engines, so run all tests for each typed array constructor for (const { name, TypedArray } of TYPED_ARRAYS) { const { entries } = TypedArray.prototype; @@ -98,7 +98,7 @@ if (DESCRIPTORS) QUnit.test('%TypedArrayPrototype%.entries', assert => { } }); -if (DESCRIPTORS) QUnit.test('%TypedArrayPrototype%.@@iterator', assert => { +QUnit.test('%TypedArrayPrototype%.@@iterator', assert => { // we can't implement %TypedArrayPrototype% in all engines, so run all tests for each typed array constructor for (const { name, TypedArray } of TYPED_ARRAYS) { assert.isIterable(TypedArray.prototype, `${ name } is iterable`); diff --git a/tests/unit-global/es.typed-array.join.js b/tests/unit-global/es.typed-array.join.js index 6a7ed10f6371..15adf91be6f5 100644 --- a/tests/unit-global/es.typed-array.join.js +++ b/tests/unit-global/es.typed-array.join.js @@ -1,7 +1,7 @@ /* eslint-disable unicorn/require-array-join-separator -- required for testing */ -import { DESCRIPTORS, TYPED_ARRAYS } from '../helpers/constants.js'; +import { TYPED_ARRAYS } from '../helpers/constants.js'; -if (DESCRIPTORS) QUnit.test('%TypedArrayPrototype%.join', assert => { +QUnit.test('%TypedArrayPrototype%.join', assert => { // we can't implement %TypedArrayPrototype% in all engines, so run all tests for each typed array constructor for (const { name, TypedArray } of TYPED_ARRAYS) { const { join } = TypedArray.prototype; diff --git a/tests/unit-global/es.typed-array.last-index-of.js b/tests/unit-global/es.typed-array.last-index-of.js index 1d71265ab8e7..1a6dae0c8e0e 100644 --- a/tests/unit-global/es.typed-array.last-index-of.js +++ b/tests/unit-global/es.typed-array.last-index-of.js @@ -1,6 +1,6 @@ -import { DESCRIPTORS, TYPED_ARRAYS } from '../helpers/constants.js'; +import { TYPED_ARRAYS } from '../helpers/constants.js'; -if (DESCRIPTORS) QUnit.test('%TypedArrayPrototype%.lastIndexOf', assert => { +QUnit.test('%TypedArrayPrototype%.lastIndexOf', assert => { // we can't implement %TypedArrayPrototype% in all engines, so run all tests for each typed array constructor for (const { name, TypedArray } of TYPED_ARRAYS) { const { lastIndexOf } = TypedArray.prototype; diff --git a/tests/unit-global/es.typed-array.map.js b/tests/unit-global/es.typed-array.map.js index 20a692a49c71..884d25ac59c3 100644 --- a/tests/unit-global/es.typed-array.map.js +++ b/tests/unit-global/es.typed-array.map.js @@ -1,6 +1,6 @@ -import { DESCRIPTORS, TYPED_ARRAYS } from '../helpers/constants.js'; +import { TYPED_ARRAYS } from '../helpers/constants.js'; -if (DESCRIPTORS) QUnit.test('%TypedArrayPrototype%.map', assert => { +QUnit.test('%TypedArrayPrototype%.map', assert => { // we can't implement %TypedArrayPrototype% in all engines, so run all tests for each typed array constructor for (const { name, TypedArray } of TYPED_ARRAYS) { const { map } = TypedArray.prototype; diff --git a/tests/unit-global/es.typed-array.of.js b/tests/unit-global/es.typed-array.of.js index a81a0d367db2..4d716df5cb61 100644 --- a/tests/unit-global/es.typed-array.of.js +++ b/tests/unit-global/es.typed-array.of.js @@ -1,6 +1,6 @@ -import { DESCRIPTORS, NATIVE, TYPED_ARRAYS } from '../helpers/constants.js'; +import { NATIVE, TYPED_ARRAYS } from '../helpers/constants.js'; -if (DESCRIPTORS) QUnit.test('%TypedArray%.of', assert => { +QUnit.test('%TypedArray%.of', assert => { // we can't implement %TypedArray% in all engines, so run all tests for each typed array constructor for (const { name, TypedArray } of TYPED_ARRAYS) { assert.isFunction(TypedArray.of, `${ name }.of is function`); diff --git a/tests/unit-global/es.typed-array.reduce-right.js b/tests/unit-global/es.typed-array.reduce-right.js index 858e83af0e0f..f8b59917baeb 100644 --- a/tests/unit-global/es.typed-array.reduce-right.js +++ b/tests/unit-global/es.typed-array.reduce-right.js @@ -1,6 +1,6 @@ -import { DESCRIPTORS, TYPED_ARRAYS } from '../helpers/constants.js'; +import { TYPED_ARRAYS } from '../helpers/constants.js'; -if (DESCRIPTORS) QUnit.test('%TypedArrayPrototype%.reduceRight', assert => { +QUnit.test('%TypedArrayPrototype%.reduceRight', assert => { // we can't implement %TypedArrayPrototype% in all engines, so run all tests for each typed array constructor for (const { name, TypedArray } of TYPED_ARRAYS) { const { reduceRight } = TypedArray.prototype; diff --git a/tests/unit-global/es.typed-array.reduce.js b/tests/unit-global/es.typed-array.reduce.js index a7c4477801ed..b1b1aa40f201 100644 --- a/tests/unit-global/es.typed-array.reduce.js +++ b/tests/unit-global/es.typed-array.reduce.js @@ -1,6 +1,6 @@ -import { DESCRIPTORS, TYPED_ARRAYS } from '../helpers/constants.js'; +import { TYPED_ARRAYS } from '../helpers/constants.js'; -if (DESCRIPTORS) QUnit.test('%TypedArrayPrototype%.reduce', assert => { +QUnit.test('%TypedArrayPrototype%.reduce', assert => { // we can't implement %TypedArrayPrototype% in all engines, so run all tests for each typed array constructor for (const { name, TypedArray } of TYPED_ARRAYS) { const { reduce } = TypedArray.prototype; diff --git a/tests/unit-global/es.typed-array.reverse.js b/tests/unit-global/es.typed-array.reverse.js index 908919379bf4..dec9d32e93bb 100644 --- a/tests/unit-global/es.typed-array.reverse.js +++ b/tests/unit-global/es.typed-array.reverse.js @@ -1,6 +1,6 @@ -import { DESCRIPTORS, TYPED_ARRAYS } from '../helpers/constants.js'; +import { TYPED_ARRAYS } from '../helpers/constants.js'; -if (DESCRIPTORS) QUnit.test('%TypedArrayPrototype%.reverse', assert => { +QUnit.test('%TypedArrayPrototype%.reverse', assert => { // we can't implement %TypedArrayPrototype% in all engines, so run all tests for each typed array constructor for (const { name, TypedArray } of TYPED_ARRAYS) { const { reverse } = TypedArray.prototype; diff --git a/tests/unit-global/es.typed-array.set.js b/tests/unit-global/es.typed-array.set.js index d8d1a182b032..a64717763463 100644 --- a/tests/unit-global/es.typed-array.set.js +++ b/tests/unit-global/es.typed-array.set.js @@ -1,6 +1,6 @@ -import { DESCRIPTORS, NATIVE, TYPED_ARRAYS } from '../helpers/constants.js'; +import { NATIVE, TYPED_ARRAYS } from '../helpers/constants.js'; -if (DESCRIPTORS) QUnit.test('%TypedArrayPrototype%.set', assert => { +QUnit.test('%TypedArrayPrototype%.set', assert => { // we can't implement %TypedArrayPrototype% in all engines, so run all tests for each typed array constructor for (const { name, TypedArray } of TYPED_ARRAYS) { const { set } = TypedArray.prototype; diff --git a/tests/unit-global/es.typed-array.slice.js b/tests/unit-global/es.typed-array.slice.js index 178694973dc5..184485f19d15 100644 --- a/tests/unit-global/es.typed-array.slice.js +++ b/tests/unit-global/es.typed-array.slice.js @@ -1,6 +1,6 @@ -import { DESCRIPTORS, TYPED_ARRAYS } from '../helpers/constants.js'; +import { TYPED_ARRAYS } from '../helpers/constants.js'; -if (DESCRIPTORS) QUnit.test('%TypedArrayPrototype%.slice', assert => { +QUnit.test('%TypedArrayPrototype%.slice', assert => { // we can't implement %TypedArrayPrototype% in all engines, so run all tests for each typed array constructor for (const { name, TypedArray } of TYPED_ARRAYS) { const { slice } = TypedArray.prototype; diff --git a/tests/unit-global/es.typed-array.some.js b/tests/unit-global/es.typed-array.some.js index 803e3a5e71aa..f8b5b815ca1d 100644 --- a/tests/unit-global/es.typed-array.some.js +++ b/tests/unit-global/es.typed-array.some.js @@ -1,6 +1,6 @@ -import { DESCRIPTORS, TYPED_ARRAYS } from '../helpers/constants.js'; +import { TYPED_ARRAYS } from '../helpers/constants.js'; -if (DESCRIPTORS) QUnit.test('%TypedArrayPrototype%.some', assert => { +QUnit.test('%TypedArrayPrototype%.some', assert => { // we can't implement %TypedArrayPrototype% in all engines, so run all tests for each typed array constructor for (const { name, TypedArray } of TYPED_ARRAYS) { const { some } = TypedArray.prototype; diff --git a/tests/unit-global/es.typed-array.sort.js b/tests/unit-global/es.typed-array.sort.js index 69034c454fd0..7d9685726c40 100644 --- a/tests/unit-global/es.typed-array.sort.js +++ b/tests/unit-global/es.typed-array.sort.js @@ -1,6 +1,6 @@ -import { DESCRIPTORS, STRICT, TYPED_ARRAYS } from '../helpers/constants.js'; +import { STRICT, TYPED_ARRAYS } from '../helpers/constants.js'; -if (DESCRIPTORS) QUnit.test('%TypedArrayPrototype%.sort', assert => { +QUnit.test('%TypedArrayPrototype%.sort', assert => { // we can't implement %TypedArrayPrototype% in all engines, so run all tests for each typed array constructor for (const { name, TypedArray } of TYPED_ARRAYS) { const { sort } = TypedArray.prototype; diff --git a/tests/unit-global/es.typed-array.subarray.js b/tests/unit-global/es.typed-array.subarray.js index e4943516b3e1..8e0c2b0c34d7 100644 --- a/tests/unit-global/es.typed-array.subarray.js +++ b/tests/unit-global/es.typed-array.subarray.js @@ -1,6 +1,6 @@ -import { DESCRIPTORS, NATIVE, TYPED_ARRAYS } from '../helpers/constants.js'; +import { NATIVE, TYPED_ARRAYS } from '../helpers/constants.js'; -if (DESCRIPTORS) QUnit.test('%TypedArrayPrototype%.subarray', assert => { +QUnit.test('%TypedArrayPrototype%.subarray', assert => { // we can't implement %TypedArrayPrototype% in all engines, so run all tests for each typed array constructor for (const { name, TypedArray } of TYPED_ARRAYS) { const { subarray } = TypedArray.prototype; diff --git a/tests/unit-global/es.typed-array.to-locale-string.js b/tests/unit-global/es.typed-array.to-locale-string.js index 381627f7c273..7582c98dc475 100644 --- a/tests/unit-global/es.typed-array.to-locale-string.js +++ b/tests/unit-global/es.typed-array.to-locale-string.js @@ -1,6 +1,6 @@ -import { DESCRIPTORS, TYPED_ARRAYS } from '../helpers/constants.js'; +import { TYPED_ARRAYS } from '../helpers/constants.js'; -if (DESCRIPTORS) QUnit.test('%TypedArrayPrototype%.toLocaleString', assert => { +QUnit.test('%TypedArrayPrototype%.toLocaleString', assert => { // we can't implement %TypedArrayPrototype% in all engines, so run all tests for each typed array constructor for (const { name, TypedArray } of TYPED_ARRAYS) { const { toLocaleString } = TypedArray.prototype; diff --git a/tests/unit-global/es.typed-array.to-reversed.js b/tests/unit-global/es.typed-array.to-reversed.js index d0935ff2a85a..87bfd4e2404e 100644 --- a/tests/unit-global/es.typed-array.to-reversed.js +++ b/tests/unit-global/es.typed-array.to-reversed.js @@ -1,6 +1,6 @@ -import { DESCRIPTORS, TYPED_ARRAYS_WITH_BIG_INT } from '../helpers/constants.js'; +import { TYPED_ARRAYS_WITH_BIG_INT } from '../helpers/constants.js'; -if (DESCRIPTORS) QUnit.test('%TypedArrayPrototype%.toReversed', assert => { +QUnit.test('%TypedArrayPrototype%.toReversed', assert => { // we can't implement %TypedArrayPrototype% in all engines, so run all tests for each typed array constructor for (const { name, TypedArray, $ } of TYPED_ARRAYS_WITH_BIG_INT) { const { toReversed } = TypedArray.prototype; diff --git a/tests/unit-global/es.typed-array.to-sorted.js b/tests/unit-global/es.typed-array.to-sorted.js index 933f79a1d6f7..dda3bf982d04 100644 --- a/tests/unit-global/es.typed-array.to-sorted.js +++ b/tests/unit-global/es.typed-array.to-sorted.js @@ -1,6 +1,6 @@ -import { DESCRIPTORS, TYPED_ARRAYS } from '../helpers/constants.js'; +import { TYPED_ARRAYS } from '../helpers/constants.js'; -if (DESCRIPTORS) QUnit.test('%TypedArrayPrototype%.toSorted', assert => { +QUnit.test('%TypedArrayPrototype%.toSorted', assert => { // we can't implement %TypedArrayPrototype% in all engines, so run all tests for each typed array constructor for (const { name, TypedArray } of TYPED_ARRAYS) { const { toSorted } = TypedArray.prototype; diff --git a/tests/unit-global/es.typed-array.to-string.js b/tests/unit-global/es.typed-array.to-string.js index c820bf8942b9..c90f99e0f6c9 100644 --- a/tests/unit-global/es.typed-array.to-string.js +++ b/tests/unit-global/es.typed-array.to-string.js @@ -1,6 +1,6 @@ -import { DESCRIPTORS, TYPED_ARRAYS } from '../helpers/constants.js'; +import { TYPED_ARRAYS } from '../helpers/constants.js'; -if (DESCRIPTORS) QUnit.test('%TypedArrayPrototype%.toString', assert => { +QUnit.test('%TypedArrayPrototype%.toString', assert => { // we can't implement %TypedArrayPrototype% in all engines, so run all tests for each typed array constructor for (const { name, TypedArray } of TYPED_ARRAYS) { const { toString } = TypedArray.prototype; diff --git a/tests/unit-global/es.typed-array.with.js b/tests/unit-global/es.typed-array.with.js index 6eb67bedd206..8ec10c6a67c0 100644 --- a/tests/unit-global/es.typed-array.with.js +++ b/tests/unit-global/es.typed-array.with.js @@ -1,7 +1,7 @@ import { createConversionChecker } from '../helpers/helpers.js'; -import { DESCRIPTORS, TYPED_ARRAYS_WITH_BIG_INT } from '../helpers/constants.js'; +import { TYPED_ARRAYS_WITH_BIG_INT } from '../helpers/constants.js'; -if (DESCRIPTORS) QUnit.test('%TypedArrayPrototype%.with', assert => { +QUnit.test('%TypedArrayPrototype%.with', assert => { // we can't implement %TypedArrayPrototype% in all engines, so run all tests for each typed array constructor for (const { name, TypedArray, $ } of TYPED_ARRAYS_WITH_BIG_INT) { const { with: withAt } = TypedArray.prototype; diff --git a/tests/unit-global/es.typed.conversions.float32.js b/tests/unit-global/es.typed.conversions.float32.js index 393cf8e40403..80588fe55771 100644 --- a/tests/unit-global/es.typed.conversions.float32.js +++ b/tests/unit-global/es.typed.conversions.float32.js @@ -1,6 +1,6 @@ -import { DESCRIPTORS, LITTLE_ENDIAN, MAX_SAFE_INTEGER, MIN_SAFE_INTEGER } from '../helpers/constants.js'; +import { LITTLE_ENDIAN, MAX_SAFE_INTEGER, MIN_SAFE_INTEGER } from '../helpers/constants.js'; -if (DESCRIPTORS) QUnit.test('Float32 conversions', assert => { +QUnit.test('Float32 conversions', assert => { const float32array = new Float32Array(1); const uint8array = new Uint8Array(float32array.buffer); const dataview = new DataView(float32array.buffer); diff --git a/tests/unit-global/es.typed.conversions.float64.js b/tests/unit-global/es.typed.conversions.float64.js index f9ef0ff4fd28..46e64396a44f 100644 --- a/tests/unit-global/es.typed.conversions.float64.js +++ b/tests/unit-global/es.typed.conversions.float64.js @@ -1,6 +1,6 @@ -import { DESCRIPTORS, LITTLE_ENDIAN, MAX_SAFE_INTEGER, MIN_SAFE_INTEGER } from '../helpers/constants.js'; +import { LITTLE_ENDIAN, MAX_SAFE_INTEGER, MIN_SAFE_INTEGER } from '../helpers/constants.js'; -if (DESCRIPTORS) QUnit.test('Float64 conversions', assert => { +QUnit.test('Float64 conversions', assert => { const float64array = new Float64Array(1); const uint8array = new Uint8Array(float64array.buffer); const dataview = new DataView(float64array.buffer); diff --git a/tests/unit-global/es.typed.conversions.int16.js b/tests/unit-global/es.typed.conversions.int16.js index 21809785ba43..decea632c662 100644 --- a/tests/unit-global/es.typed.conversions.int16.js +++ b/tests/unit-global/es.typed.conversions.int16.js @@ -1,6 +1,6 @@ -import { DESCRIPTORS, GLOBAL, LITTLE_ENDIAN, MAX_SAFE_INTEGER, MIN_SAFE_INTEGER, NATIVE } from '../helpers/constants.js'; +import { GLOBAL, LITTLE_ENDIAN, MAX_SAFE_INTEGER, MIN_SAFE_INTEGER, NATIVE } from '../helpers/constants.js'; -if (DESCRIPTORS) QUnit.test('Int16 conversions', assert => { +QUnit.test('Int16 conversions', assert => { const int16array = new Int16Array(1); const uint8array = new Uint8Array(int16array.buffer); const dataview = new DataView(int16array.buffer); diff --git a/tests/unit-global/es.typed.conversions.int32.js b/tests/unit-global/es.typed.conversions.int32.js index e91f45b039c7..7bc72f7e20d4 100644 --- a/tests/unit-global/es.typed.conversions.int32.js +++ b/tests/unit-global/es.typed.conversions.int32.js @@ -1,6 +1,6 @@ -import { DESCRIPTORS, LITTLE_ENDIAN, MAX_SAFE_INTEGER, MIN_SAFE_INTEGER } from '../helpers/constants.js'; +import { LITTLE_ENDIAN, MAX_SAFE_INTEGER, MIN_SAFE_INTEGER } from '../helpers/constants.js'; -if (DESCRIPTORS) QUnit.test('Int32 conversions', assert => { +QUnit.test('Int32 conversions', assert => { const int32array = new Int32Array(1); const uint8array = new Uint8Array(int32array.buffer); const dataview = new DataView(int32array.buffer); diff --git a/tests/unit-global/es.typed.conversions.int8.js b/tests/unit-global/es.typed.conversions.int8.js index 8ad1bba83b5f..950dd245c477 100644 --- a/tests/unit-global/es.typed.conversions.int8.js +++ b/tests/unit-global/es.typed.conversions.int8.js @@ -1,6 +1,6 @@ -import { DESCRIPTORS, GLOBAL, LITTLE_ENDIAN, MAX_SAFE_INTEGER, MIN_SAFE_INTEGER, NATIVE } from '../helpers/constants.js'; +import { GLOBAL, LITTLE_ENDIAN, MAX_SAFE_INTEGER, MIN_SAFE_INTEGER, NATIVE } from '../helpers/constants.js'; -if (DESCRIPTORS) QUnit.test('Int8 conversions', assert => { +QUnit.test('Int8 conversions', assert => { const int8array = new Int8Array(1); const uint8array = new Uint8Array(int8array.buffer); const dataview = new DataView(int8array.buffer); diff --git a/tests/unit-global/es.typed.conversions.uint16.js b/tests/unit-global/es.typed.conversions.uint16.js index 5de2cd0a85ae..b0bccdf7ee4f 100644 --- a/tests/unit-global/es.typed.conversions.uint16.js +++ b/tests/unit-global/es.typed.conversions.uint16.js @@ -1,6 +1,6 @@ -import { DESCRIPTORS, GLOBAL, LITTLE_ENDIAN, MAX_SAFE_INTEGER, MIN_SAFE_INTEGER, NATIVE } from '../helpers/constants.js'; +import { GLOBAL, LITTLE_ENDIAN, MAX_SAFE_INTEGER, MIN_SAFE_INTEGER, NATIVE } from '../helpers/constants.js'; -if (DESCRIPTORS) QUnit.test('Uint16 conversions', assert => { +QUnit.test('Uint16 conversions', assert => { const uint16array = new Uint16Array(1); const uint8array = new Uint8Array(uint16array.buffer); const dataview = new DataView(uint16array.buffer); diff --git a/tests/unit-global/es.typed.conversions.uint32.js b/tests/unit-global/es.typed.conversions.uint32.js index 994be27dc290..0e42f49e25b2 100644 --- a/tests/unit-global/es.typed.conversions.uint32.js +++ b/tests/unit-global/es.typed.conversions.uint32.js @@ -1,6 +1,6 @@ -import { DESCRIPTORS, LITTLE_ENDIAN, MAX_SAFE_INTEGER, MIN_SAFE_INTEGER } from '../helpers/constants.js'; +import { LITTLE_ENDIAN, MAX_SAFE_INTEGER, MIN_SAFE_INTEGER } from '../helpers/constants.js'; -if (DESCRIPTORS) QUnit.test('Uint32 conversions', assert => { +QUnit.test('Uint32 conversions', assert => { const uint32array = new Uint32Array(1); const uint8array = new Uint8Array(uint32array.buffer); const dataview = new DataView(uint32array.buffer); diff --git a/tests/unit-global/es.typed.conversions.uint8-clamped.js b/tests/unit-global/es.typed.conversions.uint8-clamped.js index ec265644a332..c4045279cc3a 100644 --- a/tests/unit-global/es.typed.conversions.uint8-clamped.js +++ b/tests/unit-global/es.typed.conversions.uint8-clamped.js @@ -1,6 +1,6 @@ -import { DESCRIPTORS, MAX_SAFE_INTEGER, MIN_SAFE_INTEGER } from '../helpers/constants.js'; +import { MAX_SAFE_INTEGER, MIN_SAFE_INTEGER } from '../helpers/constants.js'; -if (DESCRIPTORS) QUnit.test('Uint8Clamped conversions', assert => { +QUnit.test('Uint8Clamped conversions', assert => { const uint8clamped = new Uint8ClampedArray(1); const uint8array = new Uint8Array(uint8clamped.buffer); diff --git a/tests/unit-global/es.typed.conversions.uint8.js b/tests/unit-global/es.typed.conversions.uint8.js index eb6a548be106..fe857e464b3e 100644 --- a/tests/unit-global/es.typed.conversions.uint8.js +++ b/tests/unit-global/es.typed.conversions.uint8.js @@ -1,6 +1,6 @@ -import { DESCRIPTORS, GLOBAL, MAX_SAFE_INTEGER, MIN_SAFE_INTEGER, NATIVE } from '../helpers/constants.js'; +import { GLOBAL, MAX_SAFE_INTEGER, MIN_SAFE_INTEGER, NATIVE } from '../helpers/constants.js'; -if (DESCRIPTORS) QUnit.test('Uint8 conversions', assert => { +QUnit.test('Uint8 conversions', assert => { const uint8array = new Uint8Array(1); const dataview = new DataView(uint8array.buffer); diff --git a/tests/unit-global/es.uint8-array.from-base64.js b/tests/unit-global/es.uint8-array.from-base64.js index 1d03588caaa8..57c1d3eef62e 100644 --- a/tests/unit-global/es.uint8-array.from-base64.js +++ b/tests/unit-global/es.uint8-array.from-base64.js @@ -1,6 +1,4 @@ -import { DESCRIPTORS } from '../helpers/constants.js'; - -if (DESCRIPTORS) QUnit.test('Uint8Array.fromBase64', assert => { +QUnit.test('Uint8Array.fromBase64', assert => { const { fromBase64 } = Uint8Array; assert.isFunction(fromBase64); assert.arity(fromBase64, 1); diff --git a/tests/unit-global/es.uint8-array.from-hex.js b/tests/unit-global/es.uint8-array.from-hex.js index 609d264141e4..69c7c0e7f29b 100644 --- a/tests/unit-global/es.uint8-array.from-hex.js +++ b/tests/unit-global/es.uint8-array.from-hex.js @@ -1,6 +1,4 @@ -import { DESCRIPTORS } from '../helpers/constants.js'; - -if (DESCRIPTORS) QUnit.test('Uint8Array.fromHex', assert => { +QUnit.test('Uint8Array.fromHex', assert => { const { fromHex } = Uint8Array; assert.isFunction(fromHex); assert.arity(fromHex, 1); diff --git a/tests/unit-global/es.uint8-array.set-from-base64.js b/tests/unit-global/es.uint8-array.set-from-base64.js index e00c03bcdc7f..cedfdbdcbcbe 100644 --- a/tests/unit-global/es.uint8-array.set-from-base64.js +++ b/tests/unit-global/es.uint8-array.set-from-base64.js @@ -1,6 +1,4 @@ -import { DESCRIPTORS } from '../helpers/constants.js'; - -if (DESCRIPTORS) QUnit.test('Uint8Array.prototype.setFromBase64', assert => { +QUnit.test('Uint8Array.prototype.setFromBase64', assert => { const { setFromBase64 } = Uint8Array.prototype; assert.isFunction(setFromBase64); assert.arity(setFromBase64, 1); diff --git a/tests/unit-global/es.uint8-array.set-from-hex.js b/tests/unit-global/es.uint8-array.set-from-hex.js index 0cdc33816f0f..e34e19083901 100644 --- a/tests/unit-global/es.uint8-array.set-from-hex.js +++ b/tests/unit-global/es.uint8-array.set-from-hex.js @@ -1,6 +1,4 @@ -import { DESCRIPTORS } from '../helpers/constants.js'; - -if (DESCRIPTORS) QUnit.test('Uint8Array.prototype.setFromHex', assert => { +QUnit.test('Uint8Array.prototype.setFromHex', assert => { const { setFromHex } = Uint8Array.prototype; assert.isFunction(setFromHex); assert.arity(setFromHex, 1); diff --git a/tests/unit-global/es.uint8-array.to-base64.js b/tests/unit-global/es.uint8-array.to-base64.js index 0658274fe4f6..4c0d9351bd3b 100644 --- a/tests/unit-global/es.uint8-array.to-base64.js +++ b/tests/unit-global/es.uint8-array.to-base64.js @@ -1,6 +1,4 @@ -import { DESCRIPTORS } from '../helpers/constants.js'; - -if (DESCRIPTORS) QUnit.test('Uint8Array.prototype.toBase64', assert => { +QUnit.test('Uint8Array.prototype.toBase64', assert => { const { toBase64 } = Uint8Array.prototype; assert.isFunction(toBase64); assert.arity(toBase64, 0); diff --git a/tests/unit-global/es.uint8-array.to-hex.js b/tests/unit-global/es.uint8-array.to-hex.js index 0385c0a1f15d..a1d4c6a8ee7e 100644 --- a/tests/unit-global/es.uint8-array.to-hex.js +++ b/tests/unit-global/es.uint8-array.to-hex.js @@ -1,6 +1,4 @@ -import { DESCRIPTORS } from '../helpers/constants.js'; - -if (DESCRIPTORS) QUnit.test('Uint8Array.prototype.toHex', assert => { +QUnit.test('Uint8Array.prototype.toHex', assert => { const { toHex } = Uint8Array.prototype; assert.isFunction(toHex); assert.arity(toHex, 0); diff --git a/tests/unit-global/es.weak-map.constructor.js b/tests/unit-global/es.weak-map.constructor.js index 58c7aec921dc..0dcf79fcdd4b 100644 --- a/tests/unit-global/es.weak-map.constructor.js +++ b/tests/unit-global/es.weak-map.constructor.js @@ -1,4 +1,4 @@ -import { DESCRIPTORS, FREEZING, GLOBAL, NATIVE } from '../helpers/constants.js'; +import { FREEZING, GLOBAL, NATIVE } from '../helpers/constants.js'; import { createIterable, nativeSubclass } from '../helpers/helpers.js'; const Symbol = GLOBAL.Symbol || {}; @@ -50,12 +50,12 @@ QUnit.test('WeakMap', assert => { assert.true(done); object = {}; new WeakMap().set(object, 1); - if (DESCRIPTORS) { - const results = []; - for (const key in object) results.push(key); - assert.arrayEqual(results, []); - assert.arrayEqual(keys(object), []); - } + + const results = []; + for (const key in object) results.push(key); + assert.arrayEqual(results, []); + assert.arrayEqual(keys(object), []); + assert.arrayEqual(getOwnPropertyNames(object), []); if (getOwnPropertySymbols) assert.arrayEqual(getOwnPropertySymbols(object), []); if (ownKeys) assert.arrayEqual(ownKeys(object), []); diff --git a/tests/unit-global/es.weak-set.constructor.js b/tests/unit-global/es.weak-set.constructor.js index 4312240f04a1..b5e562f97f1f 100644 --- a/tests/unit-global/es.weak-set.constructor.js +++ b/tests/unit-global/es.weak-set.constructor.js @@ -1,4 +1,4 @@ -import { DESCRIPTORS, GLOBAL, NATIVE } from '../helpers/constants.js'; +import { GLOBAL, NATIVE } from '../helpers/constants.js'; import { createIterable, nativeSubclass } from '../helpers/helpers.js'; const Symbol = GLOBAL.Symbol || {}; @@ -44,12 +44,12 @@ QUnit.test('WeakSet', assert => { assert.true(done); object = {}; new WeakSet().add(object); - if (DESCRIPTORS) { - const results = []; - for (const key in object) results.push(key); - assert.arrayEqual(results, []); - assert.arrayEqual(keys(object), []); - } + + const results = []; + for (const key in object) results.push(key); + assert.arrayEqual(results, []); + assert.arrayEqual(keys(object), []); + assert.arrayEqual(getOwnPropertyNames(object), []); if (getOwnPropertySymbols) assert.arrayEqual(getOwnPropertySymbols(object), []); if (ownKeys) assert.arrayEqual(ownKeys(object), []); diff --git a/tests/unit-global/esnext.data-view.set-uint8-clamped.js b/tests/unit-global/esnext.data-view.set-uint8-clamped.js index d820b9f67df4..e07abd360f40 100644 --- a/tests/unit-global/esnext.data-view.set-uint8-clamped.js +++ b/tests/unit-global/esnext.data-view.set-uint8-clamped.js @@ -1,4 +1,4 @@ -import { DESCRIPTORS, MAX_SAFE_INTEGER, MIN_SAFE_INTEGER } from '../helpers/constants.js'; +import { MAX_SAFE_INTEGER, MIN_SAFE_INTEGER } from '../helpers/constants.js'; QUnit.test('DataView.prototype.{ getUint8Clamped, setUint8Clamped }', assert => { const { getUint8Clamped, setUint8Clamped } = DataView.prototype; @@ -70,12 +70,12 @@ QUnit.test('DataView.prototype.{ getUint8Clamped, setUint8Clamped }', assert => const buffer = new ArrayBuffer(1); const view = new DataView(buffer); - const array = DESCRIPTORS ? new Uint8Array(buffer) : null; + const array = new Uint8Array(buffer); for (const [value, conversion, little] of data) { view.setUint8Clamped(0, value); assert.same(view.getUint8Clamped(0), conversion, `DataView.prototype.setUint8Clamped + DataView.prototype.getUint8Clamped, ${ toString(value) } -> ${ toString(conversion) }`); assert.same(view.getUint8(0), conversion, `DataView.prototype.setUint8Clamped + DataView.prototype.getUint8, ${ toString(value) } -> ${ toString(conversion) }`); - if (DESCRIPTORS) assert.arrayEqual(array, little, `DataView.prototype.setUint8Clamped + Uint8Array ${ toString(value) } -> [${ little }]`); + assert.arrayEqual(array, little, `DataView.prototype.setUint8Clamped + Uint8Array ${ toString(value) } -> [${ little }]`); } }); diff --git a/tests/unit-global/esnext.iterator.zip-keyed.js b/tests/unit-global/esnext.iterator.zip-keyed.js index 9071515041de..473a44825de7 100644 --- a/tests/unit-global/esnext.iterator.zip-keyed.js +++ b/tests/unit-global/esnext.iterator.zip-keyed.js @@ -1,5 +1,4 @@ import { createIterator } from '../helpers/helpers.js'; -import { DESCRIPTORS } from '../helpers/constants.js'; function nullProto(obj) { return Object.assign(Object.create(null), obj); @@ -25,7 +24,7 @@ QUnit.test('Iterator.zipKeyed', assert => { result = zipKeyed({ a: [0, 1, 2], b: [3, 4, 5, 6], c: [7, 8, 9] }, { mode: 'strict' }); assert.throws(() => from(result), TypeError); - if (DESCRIPTORS) { + { let obj = {}; defineProperty(obj, 'a', { get: () => [0, 1, 2], enumerable: true }); defineProperty(obj, 'b', { get: () => [3, 4, 5], enumerable: true }); diff --git a/tests/unit-global/esnext.json.parse.js b/tests/unit-global/esnext.json.parse.js index 1eaf51d50910..5b5a943a8003 100644 --- a/tests/unit-global/esnext.json.parse.js +++ b/tests/unit-global/esnext.json.parse.js @@ -1,7 +1,7 @@ // Some tests adopted from Test262 project and governed by the BSD license. // Copyright (c) 2012 Ecma International. All rights reserved. /* eslint-disable unicorn/escape-case -- testing */ -import { DESCRIPTORS, REDEFINABLE_PROTO } from '../helpers/constants.js'; +import { REDEFINABLE_PROTO } from '../helpers/constants.js'; QUnit.test('JSON.parse', assert => { const { parse } = JSON; @@ -179,45 +179,43 @@ QUnit.test('JSON.parse', assert => { assert.true(hasOwn(obj1, 'b'), 'reviver-object-get-prop-from-prototype-2'); assert.same(obj1.b, 3, 'reviver-object-get-prop-from-prototype-3'); - if (DESCRIPTORS) { - const arr2 = parse('[1, 2]', function (key, value) { - if (key === '0') defineProperty(this, '1', { configurable: false }); - if (key === '1') return 22; - return value; - }); - assert.same(arr2[0], 1, 'reviver-array-non-configurable-prop-create-1'); - assert.same(arr2[1], 2, 'reviver-array-non-configurable-prop-create-2'); + const arr2 = parse('[1, 2]', function (key, value) { + if (key === '0') defineProperty(this, '1', { configurable: false }); + if (key === '1') return 22; + return value; + }); + assert.same(arr2[0], 1, 'reviver-array-non-configurable-prop-create-1'); + assert.same(arr2[1], 2, 'reviver-array-non-configurable-prop-create-2'); - const arr3 = parse('[1, 2]', function (key, value) { - if (key === '0') defineProperty(this, '1', { configurable: false }); - if (key === '1') return; - return value; - }); - assert.same(arr3[0], 1, 'reviver-array-non-configurable-prop-delete-1'); - assert.true(hasOwn(arr3, '1'), 'reviver-array-non-configurable-prop-delete-2'); - assert.same(arr3[1], 2, 'reviver-array-non-configurable-prop-delete-3'); + const arr3 = parse('[1, 2]', function (key, value) { + if (key === '0') defineProperty(this, '1', { configurable: false }); + if (key === '1') return; + return value; + }); + assert.same(arr3[0], 1, 'reviver-array-non-configurable-prop-delete-1'); + assert.true(hasOwn(arr3, '1'), 'reviver-array-non-configurable-prop-delete-2'); + assert.same(arr3[1], 2, 'reviver-array-non-configurable-prop-delete-3'); - const obj2 = parse('{"a": 1, "b": 2}', function (key, value) { - if (key === 'a') defineProperty(this, 'b', { configurable: false }); - if (key === 'b') return 22; - return value; - }); - assert.same(obj2.a, 1, 'reviver-object-non-configurable-prop-create-1'); - assert.same(obj2.b, 2, 'reviver-object-non-configurable-prop-create-2'); + const obj2 = parse('{"a": 1, "b": 2}', function (key, value) { + if (key === 'a') defineProperty(this, 'b', { configurable: false }); + if (key === 'b') return 22; + return value; + }); + assert.same(obj2.a, 1, 'reviver-object-non-configurable-prop-create-1'); + assert.same(obj2.b, 2, 'reviver-object-non-configurable-prop-create-2'); - const obj3 = parse('{"a": 1, "b": 2}', function (key, value) { - if (key === 'a') defineProperty(this, 'b', { configurable: false }); - if (key === 'b') return; - return value; - }); - assert.same(obj3.a, 1, 'reviver-object-non-configurable-prop-delete-1'); - assert.true(hasOwn(obj3, 'b'), 'reviver-object-non-configurable-prop-delete-2'); - assert.same(obj3.b, 2, 'reviver-object-non-configurable-prop-delete-3'); + const obj3 = parse('{"a": 1, "b": 2}', function (key, value) { + if (key === 'a') defineProperty(this, 'b', { configurable: false }); + if (key === 'b') return; + return value; + }); + assert.same(obj3.a, 1, 'reviver-object-non-configurable-prop-delete-1'); + assert.true(hasOwn(obj3, 'b'), 'reviver-object-non-configurable-prop-delete-2'); + assert.same(obj3.b, 2, 'reviver-object-non-configurable-prop-delete-3'); - assert.throws(() => parse('[0,0]', function () { - defineProperty(this, '1', { get: () => { throw new EvalError('t262'); } }); - }), EvalError, 'reviver-get-name-err'); - } + assert.throws(() => parse('[0,0]', function () { + defineProperty(this, '1', { get: () => { throw new EvalError('t262'); } }); + }), EvalError, 'reviver-get-name-err'); assert.throws(() => parse('0', () => { throw new EvalError('t262'); }), EvalError, 'reviver-call-err'); diff --git a/tests/unit-global/esnext.symbol.custom-matcher.js b/tests/unit-global/esnext.symbol.custom-matcher.js index eaa753a63125..2692ad4d73a8 100644 --- a/tests/unit-global/esnext.symbol.custom-matcher.js +++ b/tests/unit-global/esnext.symbol.custom-matcher.js @@ -1,13 +1,9 @@ -import { DESCRIPTORS } from '../helpers/constants.js'; - QUnit.test('Symbol.customMatcher', assert => { assert.true('customMatcher' in Symbol, 'Symbol.customMatcher available'); assert.nonEnumerable(Symbol, 'customMatcher'); assert.true(Object(Symbol.customMatcher) instanceof Symbol, 'Symbol.customMatcher is symbol'); - if (DESCRIPTORS) { - const descriptor = Object.getOwnPropertyDescriptor(Symbol, 'customMatcher'); - assert.false(descriptor.enumerable, 'non-enumerable'); - assert.false(descriptor.writable, 'non-writable'); - assert.false(descriptor.configurable, 'non-configurable'); - } + const descriptor = Object.getOwnPropertyDescriptor(Symbol, 'customMatcher'); + assert.false(descriptor.enumerable, 'non-enumerable'); + assert.false(descriptor.writable, 'non-writable'); + assert.false(descriptor.configurable, 'non-configurable'); }); diff --git a/tests/unit-global/esnext.symbol.metadata.js b/tests/unit-global/esnext.symbol.metadata.js index ee047b3e670b..878380c60934 100644 --- a/tests/unit-global/esnext.symbol.metadata.js +++ b/tests/unit-global/esnext.symbol.metadata.js @@ -1,13 +1,9 @@ -import { DESCRIPTORS } from '../helpers/constants.js'; - QUnit.test('Symbol.metadata', assert => { assert.true('metadata' in Symbol, 'Symbol.metadata available'); assert.nonEnumerable(Symbol, 'metadata'); assert.true(Object(Symbol.metadata) instanceof Symbol, 'Symbol.metadata is symbol'); - if (DESCRIPTORS) { - const descriptor = Object.getOwnPropertyDescriptor(Symbol, 'metadata'); - assert.false(descriptor.enumerable, 'non-enumerable'); - assert.false(descriptor.writable, 'non-writable'); - assert.false(descriptor.configurable, 'non-configurable'); - } + const descriptor = Object.getOwnPropertyDescriptor(Symbol, 'metadata'); + assert.false(descriptor.enumerable, 'non-enumerable'); + assert.false(descriptor.writable, 'non-writable'); + assert.false(descriptor.configurable, 'non-configurable'); }); diff --git a/tests/unit-global/esnext.symbol.observable.js b/tests/unit-global/esnext.symbol.observable.js index d325e3a330c4..b5d21179bcb3 100644 --- a/tests/unit-global/esnext.symbol.observable.js +++ b/tests/unit-global/esnext.symbol.observable.js @@ -1,13 +1,9 @@ -import { DESCRIPTORS } from '../helpers/constants.js'; - QUnit.test('Symbol.observable', assert => { assert.true('observable' in Symbol, 'Symbol.observable available'); assert.nonEnumerable(Symbol, 'observable'); assert.true(Object(Symbol.observable) instanceof Symbol, 'Symbol.observable is symbol'); - if (DESCRIPTORS) { - const descriptor = Object.getOwnPropertyDescriptor(Symbol, 'observable'); - assert.false(descriptor.enumerable, 'non-enumerable'); - assert.false(descriptor.writable, 'non-writable'); - assert.false(descriptor.configurable, 'non-configurable'); - } + const descriptor = Object.getOwnPropertyDescriptor(Symbol, 'observable'); + assert.false(descriptor.enumerable, 'non-enumerable'); + assert.false(descriptor.writable, 'non-writable'); + assert.false(descriptor.configurable, 'non-configurable'); }); diff --git a/tests/unit-global/esnext.typed-array.filter-reject.js b/tests/unit-global/esnext.typed-array.filter-reject.js index e88c34895499..bcfc37e0963c 100644 --- a/tests/unit-global/esnext.typed-array.filter-reject.js +++ b/tests/unit-global/esnext.typed-array.filter-reject.js @@ -1,6 +1,6 @@ -import { DESCRIPTORS, TYPED_ARRAYS } from '../helpers/constants.js'; +import { TYPED_ARRAYS } from '../helpers/constants.js'; -if (DESCRIPTORS) QUnit.test('%TypedArrayPrototype%.filterReject', assert => { +QUnit.test('%TypedArrayPrototype%.filterReject', assert => { // we can't implement %TypedArrayPrototype% in all engines, so run all tests for each typed array constructor for (const { name, TypedArray } of TYPED_ARRAYS) { const { filterReject } = TypedArray.prototype; diff --git a/tests/unit-global/esnext.typed-array.unique-by.js b/tests/unit-global/esnext.typed-array.unique-by.js index db0b04a629f6..27e6a89efd55 100644 --- a/tests/unit-global/esnext.typed-array.unique-by.js +++ b/tests/unit-global/esnext.typed-array.unique-by.js @@ -1,6 +1,6 @@ -import { DESCRIPTORS, TYPED_ARRAYS } from '../helpers/constants.js'; +import { TYPED_ARRAYS } from '../helpers/constants.js'; -if (DESCRIPTORS) QUnit.test('%TypedArrayPrototype%.uniqueBy', assert => { +QUnit.test('%TypedArrayPrototype%.uniqueBy', assert => { // we can't implement %TypedArrayPrototype% in all engines, so run all tests for each typed array constructor for (const { name, TypedArray } of TYPED_ARRAYS) { const { uniqueBy } = TypedArray.prototype; diff --git a/tests/unit-global/web.dom-exception.constructor.js b/tests/unit-global/web.dom-exception.constructor.js index 79113e23f730..7b518c2e4f8b 100644 --- a/tests/unit-global/web.dom-exception.constructor.js +++ b/tests/unit-global/web.dom-exception.constructor.js @@ -1,4 +1,4 @@ -import { DESCRIPTORS, NODE } from '../helpers/constants.js'; +import { NODE } from '../helpers/constants.js'; const errors = { IndexSizeError: { s: 'INDEX_SIZE_ERR', c: 1, m: 1 }, @@ -71,10 +71,8 @@ QUnit.test('DOMException', assert => { const symbol = Symbol('DOMException constructor test'); assert.throws(() => new DOMException(symbol, 'DataCloneError'), "new DOMException(Symbol(), 'DataCloneError')"); assert.throws(() => new DOMException(42, symbol), 'new DOMException(42, Symbol())'); - if (DESCRIPTORS) { - // assert.throws(() => DOMException.prototype.message, 'DOMException.prototype.message'); // FF55- , Safari 10.1 bug - // assert.throws(() => DOMException.prototype.name, 'DOMException.prototype.name'); // FF55-, Safari 10.1 bug bug - // assert.throws(() => DOMException.prototype.code, 'DOMException.prototype.code'); // Safari 10.1 bug - // assert.throws(() => DOMException.prototype.toString(), 'DOMException.prototype.toString()'); // FF55- bug - } + // assert.throws(() => DOMException.prototype.message, 'DOMException.prototype.message'); // FF55- , Safari 10.1 bug + // assert.throws(() => DOMException.prototype.name, 'DOMException.prototype.name'); // FF55-, Safari 10.1 bug bug + // assert.throws(() => DOMException.prototype.code, 'DOMException.prototype.code'); // Safari 10.1 bug + // assert.throws(() => DOMException.prototype.toString(), 'DOMException.prototype.toString()'); // FF55- bug }); diff --git a/tests/unit-global/web.self.js b/tests/unit-global/web.self.js index dec5895fdc02..2590ff2a687c 100644 --- a/tests/unit-global/web.self.js +++ b/tests/unit-global/web.self.js @@ -1,14 +1,10 @@ /* eslint-disable no-restricted-globals, unicorn/prefer-global-this -- safe */ -import { DESCRIPTORS } from '../helpers/constants.js'; - QUnit.test('self', assert => { assert.same(self, Object(self), 'is object'); assert.same(self.Math, Math, 'contains globals'); - if (DESCRIPTORS) { - const descriptor = Object.getOwnPropertyDescriptor(self, 'self'); - // can't be properly defined (non-configurable) in some ancient engines like PhantomJS - // assert.isFunction(descriptor.get, 'a getter'); - // assert.true(descriptor.configurable, 'configurable'); - assert.true(descriptor.enumerable, 'enumerable'); - } + const descriptor = Object.getOwnPropertyDescriptor(self, 'self'); + // can't be properly defined (non-configurable) in some ancient engines like PhantomJS + // assert.isFunction(descriptor.get, 'a getter'); + // assert.true(descriptor.configurable, 'configurable'); + assert.true(descriptor.enumerable, 'enumerable'); }); diff --git a/tests/unit-global/web.url-search-params.constructor.js b/tests/unit-global/web.url-search-params.constructor.js index fce193df4a5d..a90958fd0ab2 100644 --- a/tests/unit-global/web.url-search-params.constructor.js +++ b/tests/unit-global/web.url-search-params.constructor.js @@ -1,4 +1,4 @@ -import { DESCRIPTORS, NODE, BUN } from '../helpers/constants.js'; +import { NODE, BUN } from '../helpers/constants.js'; import { createIterable } from '../helpers/helpers.js'; const { getPrototypeOf, getOwnPropertyDescriptor } = Object; @@ -274,18 +274,16 @@ QUnit.test('URLSearchParams#delete', assert => { params.delete('a', undefined); assert.same(String(params), 'b=4'); - if (DESCRIPTORS) { - let url = new URL('http://example.com/?param1¶m2'); - url.searchParams.delete('param1'); - url.searchParams.delete('param2'); - assert.same(String(url), 'http://example.com/', 'url.href does not have ?'); - assert.same(url.search, '', 'url.search does not have ?'); - - url = new URL('http://example.com/?'); - url.searchParams.delete('param1'); - // assert.same(String(url), 'http://example.com/', 'url.href does not have ?'); // Safari bug - assert.same(url.search, '', 'url.search does not have ?'); - } + let url = new URL('http://example.com/?param1¶m2'); + url.searchParams.delete('param1'); + url.searchParams.delete('param2'); + assert.same(String(url), 'http://example.com/', 'url.href does not have ?'); + assert.same(url.search, '', 'url.search does not have ?'); + + url = new URL('http://example.com/?'); + url.searchParams.delete('param1'); + // assert.same(String(url), 'http://example.com/', 'url.href does not have ?'); // Safari bug + assert.same(url.search, '', 'url.search does not have ?'); assert.throws(() => { return new URLSearchParams('').delete(); @@ -560,12 +558,10 @@ QUnit.test('URLSearchParams#sort', assert => { }); } - if (DESCRIPTORS) { - const url = new URL('http://example.com/?'); - url.searchParams.sort(); - assert.same(url.href, 'http://example.com/', 'Sorting non-existent params removes ? from URL'); - assert.same(url.search, '', 'Sorting non-existent params removes ? from URL'); - } + const url = new URL('http://example.com/?'); + url.searchParams.sort(); + assert.same(url.href, 'http://example.com/', 'Sorting non-existent params removes ? from URL'); + assert.same(url.search, '', 'Sorting non-existent params removes ? from URL'); }); QUnit.test('URLSearchParams#toString', assert => { @@ -690,16 +686,14 @@ QUnit.test('URLSearchParams#forEach', assert => { }); // fails in Chrome 66- - if (DESCRIPTORS) { - const url = new URL('http://a.b/c?a=1&b=2&c=3&d=4'); - params = url.searchParams; - result = ''; - params.forEach((val, key) => { - url.search = 'x=1&y=2&z=3'; - result += key + val; - }); - assert.same(result, 'a1y2z3'); - } + const url = new URL('http://a.b/c?a=1&b=2&c=3&d=4'); + params = url.searchParams; + result = ''; + params.forEach((val, key) => { + url.search = 'x=1&y=2&z=3'; + result += key + val; + }); + assert.same(result, 'a1y2z3'); // fails in Chrome 66- params = new URLSearchParams('a=1&b=2&c=3'); @@ -735,17 +729,15 @@ QUnit.test('URLSearchParams#entries', assert => { assert.true(new URL('http://a.b/c').searchParams.entries().next().done, 'should be finished'); // fails in Chrome 66- - if (DESCRIPTORS) { - const url = new URL('http://a.b/c?a=1&b=2&c=3&d=4'); - iterator = url.searchParams.entries(); - result = ''; - while (!(entry = iterator.next()).done) { - const [key, value] = entry.value; - url.search = 'x=1&y=2&z=3'; - result += key + value; - } - assert.same(result, 'a1y2z3'); + const url = new URL('http://a.b/c?a=1&b=2&c=3&d=4'); + iterator = url.searchParams.entries(); + result = ''; + while (!(entry = iterator.next()).done) { + const [key, value] = entry.value; + url.search = 'x=1&y=2&z=3'; + result += key + value; } + assert.same(result, 'a1y2z3'); // fails in Chrome 66- params = new URLSearchParams('a=1&b=2&c=3'); @@ -758,7 +750,7 @@ QUnit.test('URLSearchParams#entries', assert => { } assert.same(result, 'a1c3'); - if (DESCRIPTORS) assert.true(getOwnPropertyDescriptor(getPrototypeOf(new URLSearchParams().entries()), 'next').enumerable, 'enumerable .next'); + assert.true(getOwnPropertyDescriptor(getPrototypeOf(new URLSearchParams().entries()), 'next').enumerable, 'enumerable .next'); }); QUnit.test('URLSearchParams#keys', assert => { @@ -780,17 +772,15 @@ QUnit.test('URLSearchParams#keys', assert => { assert.true(new URL('http://a.b/c').searchParams.keys().next().done, 'should be finished'); // fails in Chrome 66- - if (DESCRIPTORS) { - const url = new URL('http://a.b/c?a=1&b=2&c=3&d=4'); - iterator = url.searchParams.keys(); - result = ''; - while (!(entry = iterator.next()).done) { - const key = entry.value; - url.search = 'x=1&y=2&z=3'; - result += key; - } - assert.same(result, 'ayz'); + const url = new URL('http://a.b/c?a=1&b=2&c=3&d=4'); + iterator = url.searchParams.keys(); + result = ''; + while (!(entry = iterator.next()).done) { + const key = entry.value; + url.search = 'x=1&y=2&z=3'; + result += key; } + assert.same(result, 'ayz'); // fails in Chrome 66- const params = new URLSearchParams('a=1&b=2&c=3'); @@ -803,7 +793,7 @@ QUnit.test('URLSearchParams#keys', assert => { } assert.same(result, 'ac'); - if (DESCRIPTORS) assert.true(getOwnPropertyDescriptor(getPrototypeOf(new URLSearchParams().keys()), 'next').enumerable, 'enumerable .next'); + assert.true(getOwnPropertyDescriptor(getPrototypeOf(new URLSearchParams().keys()), 'next').enumerable, 'enumerable .next'); }); QUnit.test('URLSearchParams#values', assert => { @@ -825,17 +815,15 @@ QUnit.test('URLSearchParams#values', assert => { assert.true(new URL('http://a.b/c').searchParams.values().next().done, 'should be finished'); // fails in Chrome 66- - if (DESCRIPTORS) { - const url = new URL('http://a.b/c?a=a&b=b&c=c&d=d'); - iterator = url.searchParams.keys(); - result = ''; - while (!(entry = iterator.next()).done) { - const { value } = entry; - url.search = 'x=x&y=y&z=z'; - result += value; - } - assert.same(result, 'ayz'); + const url = new URL('http://a.b/c?a=a&b=b&c=c&d=d'); + iterator = url.searchParams.keys(); + result = ''; + while (!(entry = iterator.next()).done) { + const { value } = entry; + url.search = 'x=x&y=y&z=z'; + result += value; } + assert.same(result, 'ayz'); // fails in Chrome 66- const params = new URLSearchParams('a=1&b=2&c=3'); @@ -848,7 +836,7 @@ QUnit.test('URLSearchParams#values', assert => { } assert.same(result, '13'); - if (DESCRIPTORS) assert.true(getOwnPropertyDescriptor(getPrototypeOf(new URLSearchParams().values()), 'next').enumerable, 'enumerable .next'); + assert.true(getOwnPropertyDescriptor(getPrototypeOf(new URLSearchParams().values()), 'next').enumerable, 'enumerable .next'); }); QUnit.test('URLSearchParams#@@iterator', assert => { @@ -876,17 +864,15 @@ QUnit.test('URLSearchParams#@@iterator', assert => { assert.true(new URL('http://a.b/c').searchParams[Symbol.iterator]().next().done, 'should be finished'); // fails in Chrome 66- - if (DESCRIPTORS) { - const url = new URL('http://a.b/c?a=1&b=2&c=3&d=4'); - iterator = url.searchParams[Symbol.iterator](); - result = ''; - while (!(entry = iterator.next()).done) { - const [key, value] = entry.value; - url.search = 'x=1&y=2&z=3'; - result += key + value; - } - assert.same(result, 'a1y2z3'); + const url = new URL('http://a.b/c?a=1&b=2&c=3&d=4'); + iterator = url.searchParams[Symbol.iterator](); + result = ''; + while (!(entry = iterator.next()).done) { + const [key, value] = entry.value; + url.search = 'x=1&y=2&z=3'; + result += key + value; } + assert.same(result, 'a1y2z3'); // fails in Chrome 66- params = new URLSearchParams('a=1&b=2&c=3'); @@ -899,7 +885,7 @@ QUnit.test('URLSearchParams#@@iterator', assert => { } assert.same(result, 'a1c3'); - if (DESCRIPTORS) assert.true(getOwnPropertyDescriptor(getPrototypeOf(new URLSearchParams()[Symbol.iterator]()), 'next').enumerable, 'enumerable .next'); + assert.true(getOwnPropertyDescriptor(getPrototypeOf(new URLSearchParams()[Symbol.iterator]()), 'next').enumerable, 'enumerable .next'); }); QUnit.test('URLSearchParams#size', assert => { @@ -907,19 +893,17 @@ QUnit.test('URLSearchParams#size', assert => { assert.true('size' in params); assert.same(params.size, 3); - if (DESCRIPTORS) { - assert.true('size' in URLSearchParams.prototype); + assert.true('size' in URLSearchParams.prototype); - const { enumerable, configurable, get } = getOwnPropertyDescriptor(URLSearchParams.prototype, 'size'); + const { enumerable, configurable, get } = getOwnPropertyDescriptor(URLSearchParams.prototype, 'size'); - assert.true(enumerable, 'enumerable'); - // https://github.com/oven-sh/bun/issues/9251 - if (!BUN) assert.true(configurable, 'configurable'); + assert.true(enumerable, 'enumerable'); + // https://github.com/oven-sh/bun/issues/9251 + if (!BUN) assert.true(configurable, 'configurable'); - if (!NODE) assert.looksNative(get); + if (!NODE) assert.looksNative(get); - assert.throws(() => get.call([])); - } + assert.throws(() => get.call([])); }); QUnit.test('URLSearchParams#@@toStringTag', assert => { diff --git a/tests/unit-global/web.url.constructor.js b/tests/unit-global/web.url.constructor.js index 715b823c7817..eaf3c6e84881 100644 --- a/tests/unit-global/web.url.constructor.js +++ b/tests/unit-global/web.url.constructor.js @@ -1,5 +1,5 @@ /* eslint-disable unicorn/relative-url-style -- required for testing */ -import { DESCRIPTORS, NODE } from '../helpers/constants.js'; +import { NODE } from '../helpers/constants.js'; import urlTestData from '../wpt-url-resources/urltestdata.js'; import settersTestData from '../wpt-url-resources/setters.js'; import toASCIITestData from '../wpt-url-resources/toascii.js'; @@ -58,89 +58,83 @@ QUnit.test('URL constructor', assert => { QUnit.test('URL#href', assert => { let url = new URL('http://zloirock.ru/'); - if (DESCRIPTORS) { - assert.false(hasOwnProperty.call(url, 'href')); - const descriptor = Object.getOwnPropertyDescriptor(URL.prototype, 'href'); - assert.true(descriptor.enumerable); - assert.true(descriptor.configurable); - assert.same(typeof descriptor.get, 'function'); - assert.same(typeof descriptor.set, 'function'); - } + assert.false(hasOwnProperty.call(url, 'href')); + const descriptor = Object.getOwnPropertyDescriptor(URL.prototype, 'href'); + assert.true(descriptor.enumerable); + assert.true(descriptor.configurable); + assert.same(typeof descriptor.get, 'function'); + assert.same(typeof descriptor.set, 'function'); assert.same(url.href, 'http://zloirock.ru/'); - if (DESCRIPTORS) { - url.searchParams.append('foo', 'bar'); - assert.same(url.href, 'http://zloirock.ru/?foo=bar'); - - url = new URL('http://zloirock.ru/foo'); - url.href = 'https://測試'; - assert.same(url.href, 'https://xn--g6w251d/', 'unicode parsing'); - assert.same(String(url), 'https://xn--g6w251d/', 'unicode parsing'); - - url = new URL('http://zloirock.ru/foo'); - url.href = 'https://xxпривет.тест'; - assert.same(url.href, 'https://xn--xx-flcmn5bht.xn--e1aybc/', 'unicode parsing'); - assert.same(String(url), 'https://xn--xx-flcmn5bht.xn--e1aybc/', 'unicode parsing'); - - url = new URL('http://zloirock.ru/foo'); - url.href = 'https://xxПРИВЕТ.тест'; - assert.same(url.href, 'https://xn--xx-flcmn5bht.xn--e1aybc/', 'unicode parsing'); - assert.same(String(url), 'https://xn--xx-flcmn5bht.xn--e1aybc/', 'unicode parsing'); - - url = new URL('http://zloirock.ru/'); - url.href = 'http://0300.168.0xF0'; - assert.same(url.href, 'http://192.168.0.240/'); - assert.same(String(url), 'http://192.168.0.240/'); - - url = new URL('http://zloirock.ru/'); - url.href = 'http://[20:0:0:1:0:0:0:ff]'; - assert.same(url.href, 'http://[20:0:0:1::ff]/'); - assert.same(String(url), 'http://[20:0:0:1::ff]/'); - - // url = new URL('http://zloirock.ru/'); - // url.href = 'http://257.168.0xF0'; // TypeError and Safari - // assert.same(url.href, 'http://257.168.0xf0/', 'incorrect IPv4 parsed as host'); // `F` instead of `f` in Chrome - // assert.same(String(url), 'http://257.168.0xf0/', 'incorrect IPv4 parsed as host'); // `F` instead of `f` in Chrome - - url = new URL('http://zloirock.ru/'); - url.href = 'http://0300.168.0xG0'; - assert.same(url.href, 'http://0300.168.0xg0/', 'incorrect IPv4 parsed as host'); - assert.same(String(url), 'http://0300.168.0xg0/', 'incorrect IPv4 parsed as host'); - - url = new URL('http://192.168.0.240/'); - url.href = 'file:///var/log/system.log'; - assert.same(url.href, 'file:///var/log/system.log', 'file -> ip'); - assert.same(String(url), 'file:///var/log/system.log', 'file -> ip'); - - url = new URL('file:///var/log/system.log'); - url.href = 'http://0300.168.0xF0'; - // Node 19.7 - // https://github.com/nodejs/node/issues/46755 - // assert.same(url.href, 'http://192.168.0.240/', 'file -> http'); - // assert.same(String(url), 'http://192.168.0.240/', 'file -> http'); - - // assert.throws(() => new URL('http://zloirock.ru/').href = undefined, 'incorrect URL'); // no error in Chrome - // assert.throws(() => new URL('http://zloirock.ru/').href = '', 'incorrect URL'); // no error in Chrome - // assert.throws(() => new URL('http://zloirock.ru/').href = 'abc', 'incorrect URL'); // no error in Chrome - // assert.throws(() => new URL('http://zloirock.ru/').href = '//abc', 'incorrect URL'); // no error in Chrome - // assert.throws(() => new URL('http://zloirock.ru/').href = 'http://[20:0:0:1:0:0:0:ff', 'incorrect IPv6'); // no error in Chrome - // assert.throws(() => new URL('http://zloirock.ru/').href = 'http://[20:0:0:1:0:0:0:fg]', 'incorrect IPv6'); // no error in Chrome - // assert.throws(() => new URL('http://zloirock.ru/').href = 'http://a%b', 'forbidden host code point'); // no error in Chrome and FF - // assert.throws(() => new URL('http://zloirock.ru/').href = '1http://zloirock.ru', 'incorrect scheme'); // no error in Chrome - } + url.searchParams.append('foo', 'bar'); + assert.same(url.href, 'http://zloirock.ru/?foo=bar'); + + url = new URL('http://zloirock.ru/foo'); + url.href = 'https://測試'; + assert.same(url.href, 'https://xn--g6w251d/', 'unicode parsing'); + assert.same(String(url), 'https://xn--g6w251d/', 'unicode parsing'); + + url = new URL('http://zloirock.ru/foo'); + url.href = 'https://xxпривет.тест'; + assert.same(url.href, 'https://xn--xx-flcmn5bht.xn--e1aybc/', 'unicode parsing'); + assert.same(String(url), 'https://xn--xx-flcmn5bht.xn--e1aybc/', 'unicode parsing'); + + url = new URL('http://zloirock.ru/foo'); + url.href = 'https://xxПРИВЕТ.тест'; + assert.same(url.href, 'https://xn--xx-flcmn5bht.xn--e1aybc/', 'unicode parsing'); + assert.same(String(url), 'https://xn--xx-flcmn5bht.xn--e1aybc/', 'unicode parsing'); + + url = new URL('http://zloirock.ru/'); + url.href = 'http://0300.168.0xF0'; + assert.same(url.href, 'http://192.168.0.240/'); + assert.same(String(url), 'http://192.168.0.240/'); + + url = new URL('http://zloirock.ru/'); + url.href = 'http://[20:0:0:1:0:0:0:ff]'; + assert.same(url.href, 'http://[20:0:0:1::ff]/'); + assert.same(String(url), 'http://[20:0:0:1::ff]/'); + + // url = new URL('http://zloirock.ru/'); + // url.href = 'http://257.168.0xF0'; // TypeError and Safari + // assert.same(url.href, 'http://257.168.0xf0/', 'incorrect IPv4 parsed as host'); // `F` instead of `f` in Chrome + // assert.same(String(url), 'http://257.168.0xf0/', 'incorrect IPv4 parsed as host'); // `F` instead of `f` in Chrome + + url = new URL('http://zloirock.ru/'); + url.href = 'http://0300.168.0xG0'; + assert.same(url.href, 'http://0300.168.0xg0/', 'incorrect IPv4 parsed as host'); + assert.same(String(url), 'http://0300.168.0xg0/', 'incorrect IPv4 parsed as host'); + + url = new URL('http://192.168.0.240/'); + url.href = 'file:///var/log/system.log'; + assert.same(url.href, 'file:///var/log/system.log', 'file -> ip'); + assert.same(String(url), 'file:///var/log/system.log', 'file -> ip'); + + url = new URL('file:///var/log/system.log'); + url.href = 'http://0300.168.0xF0'; + // Node 19.7 + // https://github.com/nodejs/node/issues/46755 + // assert.same(url.href, 'http://192.168.0.240/', 'file -> http'); + // assert.same(String(url), 'http://192.168.0.240/', 'file -> http'); + + // assert.throws(() => new URL('http://zloirock.ru/').href = undefined, 'incorrect URL'); // no error in Chrome + // assert.throws(() => new URL('http://zloirock.ru/').href = '', 'incorrect URL'); // no error in Chrome + // assert.throws(() => new URL('http://zloirock.ru/').href = 'abc', 'incorrect URL'); // no error in Chrome + // assert.throws(() => new URL('http://zloirock.ru/').href = '//abc', 'incorrect URL'); // no error in Chrome + // assert.throws(() => new URL('http://zloirock.ru/').href = 'http://[20:0:0:1:0:0:0:ff', 'incorrect IPv6'); // no error in Chrome + // assert.throws(() => new URL('http://zloirock.ru/').href = 'http://[20:0:0:1:0:0:0:fg]', 'incorrect IPv6'); // no error in Chrome + // assert.throws(() => new URL('http://zloirock.ru/').href = 'http://a%b', 'forbidden host code point'); // no error in Chrome and FF + // assert.throws(() => new URL('http://zloirock.ru/').href = '1http://zloirock.ru', 'incorrect scheme'); // no error in Chrome }); QUnit.test('URL#origin', assert => { const url = new URL('http://es6.zloirock.ru/tests.html'); - if (DESCRIPTORS) { - assert.false(hasOwnProperty.call(url, 'origin')); - const descriptor = Object.getOwnPropertyDescriptor(URL.prototype, 'origin'); - assert.true(descriptor.enumerable); - assert.true(descriptor.configurable); - assert.same(typeof descriptor.get, 'function'); - } + assert.false(hasOwnProperty.call(url, 'origin')); + const descriptor = Object.getOwnPropertyDescriptor(URL.prototype, 'origin'); + assert.true(descriptor.enumerable); + assert.true(descriptor.configurable); + assert.same(typeof descriptor.get, 'function'); assert.same(url.origin, 'http://es6.zloirock.ru'); @@ -150,74 +144,64 @@ QUnit.test('URL#origin', assert => { QUnit.test('URL#protocol', assert => { let url = new URL('http://zloirock.ru/'); - if (DESCRIPTORS) { - assert.false(hasOwnProperty.call(url, 'protocol')); - const descriptor = Object.getOwnPropertyDescriptor(URL.prototype, 'protocol'); - assert.true(descriptor.enumerable); - assert.true(descriptor.configurable); - assert.same(typeof descriptor.get, 'function'); - assert.same(typeof descriptor.set, 'function'); - } + assert.false(hasOwnProperty.call(url, 'protocol')); + const descriptor = Object.getOwnPropertyDescriptor(URL.prototype, 'protocol'); + assert.true(descriptor.enumerable); + assert.true(descriptor.configurable); + assert.same(typeof descriptor.get, 'function'); + assert.same(typeof descriptor.set, 'function'); assert.same(url.protocol, 'http:'); - if (DESCRIPTORS) { - url = new URL('http://zloirock.ru/'); - url.protocol = 'https'; - assert.same(url.protocol, 'https:'); - assert.same(String(url), 'https://zloirock.ru/'); - - // https://nodejs.org/api/url.html#url_special_schemes - // url = new URL('http://zloirock.ru/'); - // url.protocol = 'fish'; - // assert.same(url.protocol, 'http:'); - // assert.same(url.href, 'http://zloirock.ru/'); - // assert.same(String(url), 'http://zloirock.ru/'); - - url = new URL('http://zloirock.ru/'); - url.protocol = '1http'; - assert.same(url.protocol, 'http:'); - assert.same(url.href, 'http://zloirock.ru/', 'incorrect scheme'); - assert.same(String(url), 'http://zloirock.ru/', 'incorrect scheme'); - } + url = new URL('http://zloirock.ru/'); + url.protocol = 'https'; + assert.same(url.protocol, 'https:'); + assert.same(String(url), 'https://zloirock.ru/'); + + // https://nodejs.org/api/url.html#url_special_schemes + // url = new URL('http://zloirock.ru/'); + // url.protocol = 'fish'; + // assert.same(url.protocol, 'http:'); + // assert.same(url.href, 'http://zloirock.ru/'); + // assert.same(String(url), 'http://zloirock.ru/'); + + url = new URL('http://zloirock.ru/'); + url.protocol = '1http'; + assert.same(url.protocol, 'http:'); + assert.same(url.href, 'http://zloirock.ru/', 'incorrect scheme'); + assert.same(String(url), 'http://zloirock.ru/', 'incorrect scheme'); }); QUnit.test('URL#username', assert => { let url = new URL('http://zloirock.ru/'); - if (DESCRIPTORS) { - assert.false(hasOwnProperty.call(url, 'username')); - const descriptor = Object.getOwnPropertyDescriptor(URL.prototype, 'username'); - assert.true(descriptor.enumerable); - assert.true(descriptor.configurable); - assert.same(typeof descriptor.get, 'function'); - assert.same(typeof descriptor.set, 'function'); - } + assert.false(hasOwnProperty.call(url, 'username')); + const descriptor = Object.getOwnPropertyDescriptor(URL.prototype, 'username'); + assert.true(descriptor.enumerable); + assert.true(descriptor.configurable); + assert.same(typeof descriptor.get, 'function'); + assert.same(typeof descriptor.set, 'function'); assert.same(url.username, ''); url = new URL('http://username@zloirock.ru/'); assert.same(url.username, 'username'); - if (DESCRIPTORS) { - url = new URL('http://zloirock.ru/'); - url.username = 'username'; - assert.same(url.username, 'username'); - assert.same(String(url), 'http://username@zloirock.ru/'); - } + url = new URL('http://zloirock.ru/'); + url.username = 'username'; + assert.same(url.username, 'username'); + assert.same(String(url), 'http://username@zloirock.ru/'); }); QUnit.test('URL#password', assert => { let url = new URL('http://zloirock.ru/'); - if (DESCRIPTORS) { - assert.false(hasOwnProperty.call(url, 'password')); - const descriptor = Object.getOwnPropertyDescriptor(URL.prototype, 'password'); - assert.true(descriptor.enumerable); - assert.true(descriptor.configurable); - assert.same(typeof descriptor.get, 'function'); - assert.same(typeof descriptor.set, 'function'); - } + assert.false(hasOwnProperty.call(url, 'password')); + const descriptor = Object.getOwnPropertyDescriptor(URL.prototype, 'password'); + assert.true(descriptor.enumerable); + assert.true(descriptor.configurable); + assert.same(typeof descriptor.get, 'function'); + assert.same(typeof descriptor.set, 'function'); assert.same(url.password, ''); @@ -227,304 +211,276 @@ QUnit.test('URL#password', assert => { // url = new URL('http://:password@zloirock.ru/'); // TypeError in FF // assert.same(url.password, 'password'); - if (DESCRIPTORS) { - url = new URL('http://zloirock.ru/'); - url.username = 'username'; - url.password = 'password'; - assert.same(url.password, 'password'); - assert.same(String(url), 'http://username:password@zloirock.ru/'); - - // url = new URL('http://zloirock.ru/'); - // url.password = 'password'; - // assert.same(url.password, 'password'); // '' in FF - // assert.same(String(url), 'http://:password@zloirock.ru/'); // 'http://zloirock.ru/' in FF - } + url = new URL('http://zloirock.ru/'); + url.username = 'username'; + url.password = 'password'; + assert.same(url.password, 'password'); + assert.same(String(url), 'http://username:password@zloirock.ru/'); + + // url = new URL('http://zloirock.ru/'); + // url.password = 'password'; + // assert.same(url.password, 'password'); // '' in FF + // assert.same(String(url), 'http://:password@zloirock.ru/'); // 'http://zloirock.ru/' in FF }); QUnit.test('URL#host', assert => { let url = new URL('http://zloirock.ru:81/path'); - if (DESCRIPTORS) { - assert.false(hasOwnProperty.call(url, 'host')); - const descriptor = Object.getOwnPropertyDescriptor(URL.prototype, 'host'); - assert.true(descriptor.enumerable); - assert.true(descriptor.configurable); - assert.same(typeof descriptor.get, 'function'); - assert.same(typeof descriptor.set, 'function'); - } + assert.false(hasOwnProperty.call(url, 'host')); + const descriptor = Object.getOwnPropertyDescriptor(URL.prototype, 'host'); + assert.true(descriptor.enumerable); + assert.true(descriptor.configurable); + assert.same(typeof descriptor.get, 'function'); + assert.same(typeof descriptor.set, 'function'); assert.same(url.host, 'zloirock.ru:81'); - if (DESCRIPTORS) { - url = new URL('http://zloirock.ru:81/path'); - url.host = 'example.com:82'; - assert.same(url.host, 'example.com:82'); - assert.same(String(url), 'http://example.com:82/path'); - - // url = new URL('http://zloirock.ru:81/path'); - // url.host = 'other?domain.com'; - // assert.same(String(url), 'http://other:81/path'); // 'http://other/?domain.com/path' in Safari - - url = new URL('https://www.mydomain.com:8080/path/'); - url.host = 'www.otherdomain.com:80'; - assert.same(url.href, 'https://www.otherdomain.com:80/path/', 'set default port for another protocol'); - - // url = new URL('https://www.mydomain.com:8080/path/'); - // url.host = 'www.otherdomain.com:443'; - // assert.same(url.href, 'https://www.otherdomain.com/path/', 'set default port'); - - url = new URL('http://zloirock.ru/foo'); - url.host = '測試'; - assert.same(url.host, 'xn--g6w251d', 'unicode parsing'); - assert.same(String(url), 'http://xn--g6w251d/foo', 'unicode parsing'); - - url = new URL('http://zloirock.ru/foo'); - url.host = 'xxпривет.тест'; - assert.same(url.host, 'xn--xx-flcmn5bht.xn--e1aybc', 'unicode parsing'); - assert.same(String(url), 'http://xn--xx-flcmn5bht.xn--e1aybc/foo', 'unicode parsing'); - - url = new URL('http://zloirock.ru/foo'); - url.host = 'xxПРИВЕТ.тест'; - assert.same(url.host, 'xn--xx-flcmn5bht.xn--e1aybc', 'unicode parsing'); - assert.same(String(url), 'http://xn--xx-flcmn5bht.xn--e1aybc/foo', 'unicode parsing'); - - url = new URL('http://zloirock.ru/foo'); - url.host = '0300.168.0xF0'; - assert.same(url.host, '192.168.0.240'); - assert.same(String(url), 'http://192.168.0.240/foo'); - - // url = new URL('http://zloirock.ru/foo'); - // url.host = '[20:0:0:1:0:0:0:ff]'; - // assert.same(url.host, '[20:0:0:1::ff]'); // ':0' in Chrome, 'zloirock.ru' in Safari - // assert.same(String(url), 'http://[20:0:0:1::ff]/foo'); // 'http://[20:0/foo' in Chrome, 'http://zloirock.ru/foo' in Safari - - // url = new URL('file:///var/log/system.log'); - // url.host = 'nnsc.nsf.net'; // does not work in FF - // assert.same(url.hostname, 'nnsc.nsf.net', 'file'); - // assert.same(String(url), 'file://nnsc.nsf.net/var/log/system.log', 'file'); - - // url = new URL('http://zloirock.ru/'); - // url.host = '[20:0:0:1:0:0:0:ff'; - // assert.same(url.host, 'zloirock.ru', 'incorrect IPv6'); // ':0' in Chrome - // assert.same(String(url), 'http://zloirock.ru/', 'incorrect IPv6'); // 'http://[20:0/' in Chrome - - // url = new URL('http://zloirock.ru/'); - // url.host = '[20:0:0:1:0:0:0:fg]'; - // assert.same(url.host, 'zloirock.ru', 'incorrect IPv6'); // ':0' in Chrome - // assert.same(String(url), 'http://zloirock.ru/', 'incorrect IPv6'); // 'http://[20:0/' in Chrome - - // url = new URL('http://zloirock.ru/'); - // url.host = 'a%b'; - // assert.same(url.host, 'zloirock.ru', 'forbidden host code point'); // '' in Chrome, 'a%b' in FF - // assert.same(String(url), 'http://zloirock.ru/', 'forbidden host code point'); // 'http://a%25b/' in Chrome, 'http://a%b/' in FF - } + url = new URL('http://zloirock.ru:81/path'); + url.host = 'example.com:82'; + assert.same(url.host, 'example.com:82'); + assert.same(String(url), 'http://example.com:82/path'); + + // url = new URL('http://zloirock.ru:81/path'); + // url.host = 'other?domain.com'; + // assert.same(String(url), 'http://other:81/path'); // 'http://other/?domain.com/path' in Safari + + url = new URL('https://www.mydomain.com:8080/path/'); + url.host = 'www.otherdomain.com:80'; + assert.same(url.href, 'https://www.otherdomain.com:80/path/', 'set default port for another protocol'); + + // url = new URL('https://www.mydomain.com:8080/path/'); + // url.host = 'www.otherdomain.com:443'; + // assert.same(url.href, 'https://www.otherdomain.com/path/', 'set default port'); + + url = new URL('http://zloirock.ru/foo'); + url.host = '測試'; + assert.same(url.host, 'xn--g6w251d', 'unicode parsing'); + assert.same(String(url), 'http://xn--g6w251d/foo', 'unicode parsing'); + + url = new URL('http://zloirock.ru/foo'); + url.host = 'xxпривет.тест'; + assert.same(url.host, 'xn--xx-flcmn5bht.xn--e1aybc', 'unicode parsing'); + assert.same(String(url), 'http://xn--xx-flcmn5bht.xn--e1aybc/foo', 'unicode parsing'); + + url = new URL('http://zloirock.ru/foo'); + url.host = 'xxПРИВЕТ.тест'; + assert.same(url.host, 'xn--xx-flcmn5bht.xn--e1aybc', 'unicode parsing'); + assert.same(String(url), 'http://xn--xx-flcmn5bht.xn--e1aybc/foo', 'unicode parsing'); + + url = new URL('http://zloirock.ru/foo'); + url.host = '0300.168.0xF0'; + assert.same(url.host, '192.168.0.240'); + assert.same(String(url), 'http://192.168.0.240/foo'); + + // url = new URL('http://zloirock.ru/foo'); + // url.host = '[20:0:0:1:0:0:0:ff]'; + // assert.same(url.host, '[20:0:0:1::ff]'); // ':0' in Chrome, 'zloirock.ru' in Safari + // assert.same(String(url), 'http://[20:0:0:1::ff]/foo'); // 'http://[20:0/foo' in Chrome, 'http://zloirock.ru/foo' in Safari + + // url = new URL('file:///var/log/system.log'); + // url.host = 'nnsc.nsf.net'; // does not work in FF + // assert.same(url.hostname, 'nnsc.nsf.net', 'file'); + // assert.same(String(url), 'file://nnsc.nsf.net/var/log/system.log', 'file'); + + // url = new URL('http://zloirock.ru/'); + // url.host = '[20:0:0:1:0:0:0:ff'; + // assert.same(url.host, 'zloirock.ru', 'incorrect IPv6'); // ':0' in Chrome + // assert.same(String(url), 'http://zloirock.ru/', 'incorrect IPv6'); // 'http://[20:0/' in Chrome + + // url = new URL('http://zloirock.ru/'); + // url.host = '[20:0:0:1:0:0:0:fg]'; + // assert.same(url.host, 'zloirock.ru', 'incorrect IPv6'); // ':0' in Chrome + // assert.same(String(url), 'http://zloirock.ru/', 'incorrect IPv6'); // 'http://[20:0/' in Chrome + + // url = new URL('http://zloirock.ru/'); + // url.host = 'a%b'; + // assert.same(url.host, 'zloirock.ru', 'forbidden host code point'); // '' in Chrome, 'a%b' in FF + // assert.same(String(url), 'http://zloirock.ru/', 'forbidden host code point'); // 'http://a%25b/' in Chrome, 'http://a%b/' in FF }); QUnit.test('URL#hostname', assert => { let url = new URL('http://zloirock.ru:81/'); - if (DESCRIPTORS) { - assert.false(hasOwnProperty.call(url, 'hostname')); - const descriptor = Object.getOwnPropertyDescriptor(URL.prototype, 'hostname'); - assert.true(descriptor.enumerable); - assert.true(descriptor.configurable); - assert.same(typeof descriptor.get, 'function'); - assert.same(typeof descriptor.set, 'function'); - } + assert.false(hasOwnProperty.call(url, 'hostname')); + const descriptor = Object.getOwnPropertyDescriptor(URL.prototype, 'hostname'); + assert.true(descriptor.enumerable); + assert.true(descriptor.configurable); + assert.same(typeof descriptor.get, 'function'); + assert.same(typeof descriptor.set, 'function'); assert.same(url.hostname, 'zloirock.ru'); - if (DESCRIPTORS) { - url = new URL('http://zloirock.ru:81/'); - url.hostname = 'example.com'; - assert.same(url.hostname, 'example.com'); - assert.same(String(url), 'http://example.com:81/'); - - // url = new URL('http://zloirock.ru:81/'); - // url.hostname = 'example.com:82'; - // assert.same(url.hostname, 'example.com'); // '' in Chrome - // assert.same(String(url), 'http://example.com:81/'); // 'http://example.com:82:81/' in Chrome - - url = new URL('http://zloirock.ru/foo'); - url.hostname = '測試'; - assert.same(url.hostname, 'xn--g6w251d', 'unicode parsing'); - assert.same(String(url), 'http://xn--g6w251d/foo', 'unicode parsing'); - - url = new URL('http://zloirock.ru/foo'); - url.hostname = 'xxпривет.тест'; - assert.same(url.hostname, 'xn--xx-flcmn5bht.xn--e1aybc', 'unicode parsing'); - assert.same(String(url), 'http://xn--xx-flcmn5bht.xn--e1aybc/foo', 'unicode parsing'); - - url = new URL('http://zloirock.ru/foo'); - url.hostname = 'xxПРИВЕТ.тест'; - assert.same(url.hostname, 'xn--xx-flcmn5bht.xn--e1aybc', 'unicode parsing'); - assert.same(String(url), 'http://xn--xx-flcmn5bht.xn--e1aybc/foo', 'unicode parsing'); - - url = new URL('http://zloirock.ru/foo'); - url.hostname = '0300.168.0xF0'; - assert.same(url.hostname, '192.168.0.240'); - assert.same(String(url), 'http://192.168.0.240/foo'); - - // url = new URL('http://zloirock.ru/foo'); - // url.hostname = '[20:0:0:1:0:0:0:ff]'; - // assert.same(url.hostname, '[20:0:0:1::ff]'); // 'zloirock.ru' in Safari - // assert.same(String(url), 'http://[20:0:0:1::ff]/foo'); // 'http://zloirock.ru/foo' in Safari - - // url = new URL('file:///var/log/system.log'); - // url.hostname = 'nnsc.nsf.net'; // does not work in FF - // assert.same(url.hostname, 'nnsc.nsf.net', 'file'); - // assert.same(String(url), 'file://nnsc.nsf.net/var/log/system.log', 'file'); - - // url = new URL('http://zloirock.ru/'); - // url.hostname = '[20:0:0:1:0:0:0:ff'; - // assert.same(url.hostname, 'zloirock.ru', 'incorrect IPv6'); // '' in Chrome - // assert.same(String(url), 'http://zloirock.ru/', 'incorrect IPv6'); // 'http://[20:0:0:1:0:0:0:ff' in Chrome - - // url = new URL('http://zloirock.ru/'); - // url.hostname = '[20:0:0:1:0:0:0:fg]'; - // assert.same(url.hostname, 'zloirock.ru', 'incorrect IPv6'); // '' in Chrome - // assert.same(String(url), 'http://zloirock.ru/', 'incorrect IPv6'); // 'http://[20:0:0:1:0:0:0:ff/' in Chrome - - // url = new URL('http://zloirock.ru/'); - // url.hostname = 'a%b'; - // assert.same(url.hostname, 'zloirock.ru', 'forbidden host code point'); // '' in Chrome, 'a%b' in FF - // assert.same(String(url), 'http://zloirock.ru/', 'forbidden host code point'); // 'http://a%25b/' in Chrome, 'http://a%b/' in FF - } + url = new URL('http://zloirock.ru:81/'); + url.hostname = 'example.com'; + assert.same(url.hostname, 'example.com'); + assert.same(String(url), 'http://example.com:81/'); + + // url = new URL('http://zloirock.ru:81/'); + // url.hostname = 'example.com:82'; + // assert.same(url.hostname, 'example.com'); // '' in Chrome + // assert.same(String(url), 'http://example.com:81/'); // 'http://example.com:82:81/' in Chrome + + url = new URL('http://zloirock.ru/foo'); + url.hostname = '測試'; + assert.same(url.hostname, 'xn--g6w251d', 'unicode parsing'); + assert.same(String(url), 'http://xn--g6w251d/foo', 'unicode parsing'); + + url = new URL('http://zloirock.ru/foo'); + url.hostname = 'xxпривет.тест'; + assert.same(url.hostname, 'xn--xx-flcmn5bht.xn--e1aybc', 'unicode parsing'); + assert.same(String(url), 'http://xn--xx-flcmn5bht.xn--e1aybc/foo', 'unicode parsing'); + + url = new URL('http://zloirock.ru/foo'); + url.hostname = 'xxПРИВЕТ.тест'; + assert.same(url.hostname, 'xn--xx-flcmn5bht.xn--e1aybc', 'unicode parsing'); + assert.same(String(url), 'http://xn--xx-flcmn5bht.xn--e1aybc/foo', 'unicode parsing'); + + url = new URL('http://zloirock.ru/foo'); + url.hostname = '0300.168.0xF0'; + assert.same(url.hostname, '192.168.0.240'); + assert.same(String(url), 'http://192.168.0.240/foo'); + + // url = new URL('http://zloirock.ru/foo'); + // url.hostname = '[20:0:0:1:0:0:0:ff]'; + // assert.same(url.hostname, '[20:0:0:1::ff]'); // 'zloirock.ru' in Safari + // assert.same(String(url), 'http://[20:0:0:1::ff]/foo'); // 'http://zloirock.ru/foo' in Safari + + // url = new URL('file:///var/log/system.log'); + // url.hostname = 'nnsc.nsf.net'; // does not work in FF + // assert.same(url.hostname, 'nnsc.nsf.net', 'file'); + // assert.same(String(url), 'file://nnsc.nsf.net/var/log/system.log', 'file'); + + // url = new URL('http://zloirock.ru/'); + // url.hostname = '[20:0:0:1:0:0:0:ff'; + // assert.same(url.hostname, 'zloirock.ru', 'incorrect IPv6'); // '' in Chrome + // assert.same(String(url), 'http://zloirock.ru/', 'incorrect IPv6'); // 'http://[20:0:0:1:0:0:0:ff' in Chrome + + // url = new URL('http://zloirock.ru/'); + // url.hostname = '[20:0:0:1:0:0:0:fg]'; + // assert.same(url.hostname, 'zloirock.ru', 'incorrect IPv6'); // '' in Chrome + // assert.same(String(url), 'http://zloirock.ru/', 'incorrect IPv6'); // 'http://[20:0:0:1:0:0:0:ff/' in Chrome + + // url = new URL('http://zloirock.ru/'); + // url.hostname = 'a%b'; + // assert.same(url.hostname, 'zloirock.ru', 'forbidden host code point'); // '' in Chrome, 'a%b' in FF + // assert.same(String(url), 'http://zloirock.ru/', 'forbidden host code point'); // 'http://a%25b/' in Chrome, 'http://a%b/' in FF }); QUnit.test('URL#port', assert => { let url = new URL('http://zloirock.ru:1337/'); - if (DESCRIPTORS) { - assert.false(hasOwnProperty.call(url, 'port')); - const descriptor = Object.getOwnPropertyDescriptor(URL.prototype, 'port'); - assert.true(descriptor.enumerable); - assert.true(descriptor.configurable); - assert.same(typeof descriptor.get, 'function'); - assert.same(typeof descriptor.set, 'function'); - } + assert.false(hasOwnProperty.call(url, 'port')); + const descriptor = Object.getOwnPropertyDescriptor(URL.prototype, 'port'); + assert.true(descriptor.enumerable); + assert.true(descriptor.configurable); + assert.same(typeof descriptor.get, 'function'); + assert.same(typeof descriptor.set, 'function'); assert.same(url.port, '1337'); - if (DESCRIPTORS) { - url = new URL('http://zloirock.ru/'); - url.port = 80; - assert.same(url.port, ''); - assert.same(String(url), 'http://zloirock.ru/'); - url.port = 1337; - assert.same(url.port, '1337'); - assert.same(String(url), 'http://zloirock.ru:1337/'); - // url.port = 'abcd'; - // assert.same(url.port, '1337'); // '0' in Chrome - // assert.same(String(url), 'http://zloirock.ru:1337/'); // 'http://zloirock.ru:0/' in Chrome - // url.port = '5678abcd'; - // assert.same(url.port, '5678'); // '1337' in FF - // assert.same(String(url), 'http://zloirock.ru:5678/'); // 'http://zloirock.ru:1337/"' in FF - url.port = 1234.5678; - assert.same(url.port, '1234'); - assert.same(String(url), 'http://zloirock.ru:1234/'); - // url.port = 1e10; - // assert.same(url.port, '1234'); // '0' in Chrome - // assert.same(String(url), 'http://zloirock.ru:1234/'); // 'http://zloirock.ru:0/' in Chrome - } + url = new URL('http://zloirock.ru/'); + url.port = 80; + assert.same(url.port, ''); + assert.same(String(url), 'http://zloirock.ru/'); + url.port = 1337; + assert.same(url.port, '1337'); + assert.same(String(url), 'http://zloirock.ru:1337/'); + // url.port = 'abcd'; + // assert.same(url.port, '1337'); // '0' in Chrome + // assert.same(String(url), 'http://zloirock.ru:1337/'); // 'http://zloirock.ru:0/' in Chrome + // url.port = '5678abcd'; + // assert.same(url.port, '5678'); // '1337' in FF + // assert.same(String(url), 'http://zloirock.ru:5678/'); // 'http://zloirock.ru:1337/"' in FF + url.port = 1234.5678; + assert.same(url.port, '1234'); + assert.same(String(url), 'http://zloirock.ru:1234/'); + // url.port = 1e10; + // assert.same(url.port, '1234'); // '0' in Chrome + // assert.same(String(url), 'http://zloirock.ru:1234/'); // 'http://zloirock.ru:0/' in Chrome }); QUnit.test('URL#pathname', assert => { let url = new URL('http://zloirock.ru/foo/bar'); - if (DESCRIPTORS) { - assert.false(hasOwnProperty.call(url, 'pathname')); - const descriptor = Object.getOwnPropertyDescriptor(URL.prototype, 'pathname'); - assert.true(descriptor.enumerable); - assert.true(descriptor.configurable); - assert.same(typeof descriptor.get, 'function'); - assert.same(typeof descriptor.set, 'function'); - } + assert.false(hasOwnProperty.call(url, 'pathname')); + const descriptor = Object.getOwnPropertyDescriptor(URL.prototype, 'pathname'); + assert.true(descriptor.enumerable); + assert.true(descriptor.configurable); + assert.same(typeof descriptor.get, 'function'); + assert.same(typeof descriptor.set, 'function'); assert.same(url.pathname, '/foo/bar'); - if (DESCRIPTORS) { - url = new URL('http://zloirock.ru/'); - url.pathname = 'bar/baz'; - assert.same(url.pathname, '/bar/baz'); - assert.same(String(url), 'http://zloirock.ru/bar/baz'); - } + url = new URL('http://zloirock.ru/'); + url.pathname = 'bar/baz'; + assert.same(url.pathname, '/bar/baz'); + assert.same(String(url), 'http://zloirock.ru/bar/baz'); }); QUnit.test('URL#search', assert => { let url = new URL('http://zloirock.ru/'); - if (DESCRIPTORS) { - assert.false(hasOwnProperty.call(url, 'search')); - const descriptor = Object.getOwnPropertyDescriptor(URL.prototype, 'search'); - assert.true(descriptor.enumerable); - assert.true(descriptor.configurable); - assert.same(typeof descriptor.get, 'function'); - assert.same(typeof descriptor.set, 'function'); - } + assert.false(hasOwnProperty.call(url, 'search')); + const descriptor = Object.getOwnPropertyDescriptor(URL.prototype, 'search'); + assert.true(descriptor.enumerable); + assert.true(descriptor.configurable); + assert.same(typeof descriptor.get, 'function'); + assert.same(typeof descriptor.set, 'function'); assert.same(url.search, ''); url = new URL('http://zloirock.ru/?foo=bar'); assert.same(url.search, '?foo=bar'); - if (DESCRIPTORS) { - url = new URL('http://zloirock.ru/?'); - assert.same(url.search, ''); - assert.same(String(url), 'http://zloirock.ru/?'); - url.search = 'foo=bar'; - assert.same(url.search, '?foo=bar'); - assert.same(String(url), 'http://zloirock.ru/?foo=bar'); - url.search = '?bar=baz'; - assert.same(url.search, '?bar=baz'); - assert.same(String(url), 'http://zloirock.ru/?bar=baz'); - url.search = ''; - assert.same(url.search, ''); - assert.same(String(url), 'http://zloirock.ru/'); - } + url = new URL('http://zloirock.ru/?'); + assert.same(url.search, ''); + assert.same(String(url), 'http://zloirock.ru/?'); + url.search = 'foo=bar'; + assert.same(url.search, '?foo=bar'); + assert.same(String(url), 'http://zloirock.ru/?foo=bar'); + url.search = '?bar=baz'; + assert.same(url.search, '?bar=baz'); + assert.same(String(url), 'http://zloirock.ru/?bar=baz'); + url.search = ''; + assert.same(url.search, ''); + assert.same(String(url), 'http://zloirock.ru/'); }); QUnit.test('URL#searchParams', assert => { let url = new URL('http://zloirock.ru/?foo=bar&bar=baz'); - if (DESCRIPTORS) { - assert.false(hasOwnProperty.call(url, 'searchParams')); - const descriptor = Object.getOwnPropertyDescriptor(URL.prototype, 'searchParams'); - assert.true(descriptor.enumerable); - assert.true(descriptor.configurable); - assert.same(typeof descriptor.get, 'function'); - } + assert.false(hasOwnProperty.call(url, 'searchParams')); + const descriptor = Object.getOwnPropertyDescriptor(URL.prototype, 'searchParams'); + assert.true(descriptor.enumerable); + assert.true(descriptor.configurable); + assert.same(typeof descriptor.get, 'function'); assert.true(url.searchParams instanceof URLSearchParams); assert.same(url.searchParams.get('foo'), 'bar'); assert.same(url.searchParams.get('bar'), 'baz'); - if (DESCRIPTORS) { - url = new URL('http://zloirock.ru/'); - url.searchParams.append('foo', 'bar'); - assert.same(String(url), 'http://zloirock.ru/?foo=bar'); + url = new URL('http://zloirock.ru/'); + url.searchParams.append('foo', 'bar'); + assert.same(String(url), 'http://zloirock.ru/?foo=bar'); - url = new URL('http://zloirock.ru/'); - url.search = 'foo=bar'; - assert.same(url.searchParams.get('foo'), 'bar'); + url = new URL('http://zloirock.ru/'); + url.search = 'foo=bar'; + assert.same(url.searchParams.get('foo'), 'bar'); - url = new URL('http://zloirock.ru/?foo=bar&bar=baz'); - url.search = ''; - assert.false(url.searchParams.has('foo')); - } + url = new URL('http://zloirock.ru/?foo=bar&bar=baz'); + url.search = ''; + assert.false(url.searchParams.has('foo')); }); QUnit.test('URL#hash', assert => { let url = new URL('http://zloirock.ru/'); - if (DESCRIPTORS) { - assert.false(hasOwnProperty.call(url, 'hash')); - const descriptor = Object.getOwnPropertyDescriptor(URL.prototype, 'hash'); - assert.true(descriptor.enumerable); - assert.true(descriptor.configurable); - assert.same(typeof descriptor.get, 'function'); - assert.same(typeof descriptor.set, 'function'); - } + assert.false(hasOwnProperty.call(url, 'hash')); + const descriptor = Object.getOwnPropertyDescriptor(URL.prototype, 'hash'); + assert.true(descriptor.enumerable); + assert.true(descriptor.configurable); + assert.same(typeof descriptor.get, 'function'); + assert.same(typeof descriptor.set, 'function'); assert.same(url.hash, ''); @@ -535,32 +491,30 @@ QUnit.test('URL#hash', assert => { assert.same(url.hash, ''); assert.same(String(url), 'http://zloirock.ru/#'); - if (DESCRIPTORS) { - url = new URL('http://zloirock.ru/#'); - url.hash = 'foo'; - assert.same(url.hash, '#foo'); - assert.same(String(url), 'http://zloirock.ru/#foo'); - url.hash = ''; - assert.same(url.hash, ''); - assert.same(String(url), 'http://zloirock.ru/'); - // url.hash = '#'; - // assert.same(url.hash, ''); - // assert.same(String(url), 'http://zloirock.ru/'); // 'http://zloirock.ru/#' in FF - url.hash = '#foo'; - assert.same(url.hash, '#foo'); - assert.same(String(url), 'http://zloirock.ru/#foo'); - url.hash = '#foo#bar'; - assert.same(url.hash, '#foo#bar'); - assert.same(String(url), 'http://zloirock.ru/#foo#bar'); - - url = new URL('http://zloirock.ru/'); - url.hash = 'абa'; - assert.same(url.hash, '#%D0%B0%D0%B1a'); - - // url = new URL('http://zloirock.ru/'); - // url.hash = '\udc01\ud802a'; - // assert.same(url.hash, '#%EF%BF%BD%EF%BF%BDa', 'unmatched surrogates'); - } + url = new URL('http://zloirock.ru/#'); + url.hash = 'foo'; + assert.same(url.hash, '#foo'); + assert.same(String(url), 'http://zloirock.ru/#foo'); + url.hash = ''; + assert.same(url.hash, ''); + assert.same(String(url), 'http://zloirock.ru/'); + // url.hash = '#'; + // assert.same(url.hash, ''); + // assert.same(String(url), 'http://zloirock.ru/'); // 'http://zloirock.ru/#' in FF + url.hash = '#foo'; + assert.same(url.hash, '#foo'); + assert.same(String(url), 'http://zloirock.ru/#foo'); + url.hash = '#foo#bar'; + assert.same(url.hash, '#foo#bar'); + assert.same(String(url), 'http://zloirock.ru/#foo#bar'); + + url = new URL('http://zloirock.ru/'); + url.hash = 'абa'; + assert.same(url.hash, '#%D0%B0%D0%B1a'); + + // url = new URL('http://zloirock.ru/'); + // url.hash = '\udc01\ud802a'; + // assert.same(url.hash, '#%EF%BF%BD%EF%BF%BDa', 'unmatched surrogates'); }); QUnit.test('URL#toJSON', assert => { @@ -574,10 +528,8 @@ QUnit.test('URL#toJSON', assert => { const url = new URL('http://zloirock.ru/'); assert.same(url.toJSON(), 'http://zloirock.ru/'); - if (DESCRIPTORS) { - url.searchParams.append('foo', 'bar'); - assert.same(url.toJSON(), 'http://zloirock.ru/?foo=bar'); - } + url.searchParams.append('foo', 'bar'); + assert.same(url.toJSON(), 'http://zloirock.ru/?foo=bar'); }); QUnit.test('URL#toString', assert => { @@ -591,10 +543,8 @@ QUnit.test('URL#toString', assert => { const url = new URL('http://zloirock.ru/'); assert.same(url.toString(), 'http://zloirock.ru/'); - if (DESCRIPTORS) { - url.searchParams.append('foo', 'bar'); - assert.same(url.toString(), 'http://zloirock.ru/?foo=bar'); - } + url.searchParams.append('foo', 'bar'); + assert.same(url.toString(), 'http://zloirock.ru/?foo=bar'); }); QUnit.test('URL#@@toStringTag', assert => { @@ -602,10 +552,6 @@ QUnit.test('URL#@@toStringTag', assert => { assert.same(({}).toString.call(url), '[object URL]'); }); -QUnit.test('URL.sham', assert => { - assert.same(URL.sham, DESCRIPTORS ? undefined : true); -}); - // `core-js` URL implementation pass all (exclude some encoding-related) tests // from the next 3 test cases, but URLs from all of popular browsers fail a serious part of tests. // Replacing all of them does not looks like a good idea, so next test cases disabled by default. @@ -640,7 +586,7 @@ QUnit.skip('WPT URL constructor tests', assert => { }); // see https://github.com/web-platform-tests/wpt/blob/master/url -if (DESCRIPTORS) QUnit.skip('WPT URL setters tests', assert => { +QUnit.skip('WPT URL setters tests', assert => { for (const setter in settersTestData) { const testCases = settersTestData[setter]; for (const { href, newValue, comment, expected } of testCases) { diff --git a/tests/unit-pure/es.array.flat.js b/tests/unit-pure/es.array.flat.js index de1f5ed7b757..d873f1bae9b0 100644 --- a/tests/unit-pure/es.array.flat.js +++ b/tests/unit-pure/es.array.flat.js @@ -1,4 +1,4 @@ -import { DESCRIPTORS, STRICT } from '../helpers/constants.js'; +import { STRICT } from '../helpers/constants.js'; import flat from 'core-js-pure/es/array/flat'; import defineProperty from 'core-js-pure/es/object/define-property'; @@ -18,11 +18,9 @@ QUnit.test('Array#flat', assert => { assert.throws(() => flat(null), TypeError); assert.throws(() => flat(undefined), TypeError); } - if (DESCRIPTORS) { - assert.notThrows(() => flat(defineProperty({ length: -1 }, 0, { - get() { - throw new Error(); - }, - })).length === 0, 'uses ToLength'); - } + assert.notThrows(() => flat(defineProperty({ length: -1 }, 0, { + get() { + throw new Error(); + }, + })).length === 0, 'uses ToLength'); }); diff --git a/tests/unit-pure/es.array.from.js b/tests/unit-pure/es.array.from.js index 5fa36f77956c..aa9e6bca0d1b 100644 --- a/tests/unit-pure/es.array.from.js +++ b/tests/unit-pure/es.array.from.js @@ -1,5 +1,4 @@ /* eslint-disable prefer-rest-params -- required for testing */ -import { DESCRIPTORS } from '../helpers/constants.js'; import { createIterable } from '../helpers/helpers.js'; import Symbol from 'core-js-pure/es/symbol'; @@ -113,14 +112,13 @@ QUnit.test('Array.from', assert => { assert.throws(() => from([], ''), TypeError, 'Throws with "" as second argument'); assert.throws(() => from([], false), TypeError, 'Throws with false as second argument'); assert.throws(() => from([], {}), TypeError, 'Throws with {} as second argument'); - if (DESCRIPTORS) { - let called = false; - defineProperty(C.prototype, 0, { - set() { - called = true; - }, - }); - from.call(C, [1, 2, 3]); - assert.false(called, 'Should not call prototype accessors'); - } + + let called = false; + defineProperty(C.prototype, 0, { + set() { + called = true; + }, + }); + from.call(C, [1, 2, 3]); + assert.false(called, 'Should not call prototype accessors'); }); diff --git a/tests/unit-pure/es.array.of.js b/tests/unit-pure/es.array.of.js index b786cbcd1dd1..ee7447d78893 100644 --- a/tests/unit-pure/es.array.of.js +++ b/tests/unit-pure/es.array.of.js @@ -1,5 +1,3 @@ -import { DESCRIPTORS } from '../helpers/constants.js'; - import defineProperty from 'core-js-pure/es/object/define-property'; import of from 'core-js-pure/es/array/of'; @@ -14,14 +12,13 @@ QUnit.test('Array.of', assert => { assert.same(instance[0], 1); assert.same(instance[1], 2); assert.same(instance.length, 2); - if (DESCRIPTORS) { - let called = false; - defineProperty(C.prototype, 0, { - set() { - called = true; - }, - }); - of.call(C, 1, 2, 3); - assert.false(called, 'Should not call prototype accessors'); - } + + let called = false; + defineProperty(C.prototype, 0, { + set() { + called = true; + }, + }); + of.call(C, 1, 2, 3); + assert.false(called, 'Should not call prototype accessors'); }); diff --git a/tests/unit-pure/es.json.stringify.js b/tests/unit-pure/es.json.stringify.js index aaf7511f1f44..2bb24bf3d4e3 100644 --- a/tests/unit-pure/es.json.stringify.js +++ b/tests/unit-pure/es.json.stringify.js @@ -1,7 +1,7 @@ // Some tests adopted from Test262 project and governed by the BSD license. // Copyright (c) 2012 Ecma International. All rights reserved. /* eslint-disable es/no-bigint,unicorn/no-hex-escape -- testing */ -import { DESCRIPTORS, GLOBAL } from '../helpers/constants.js'; +import { GLOBAL } from '../helpers/constants.js'; import stringify from 'core-js-pure/es/json/stringify'; import Symbol from 'core-js-pure/es/symbol'; import defineProperty from 'core-js-pure/es/object/define-property'; @@ -422,70 +422,68 @@ if (GLOBAL.JSON?.stringify) { num3.toJSON = () => ({ key: 7 }); assert.same(stringify([num3]), '[{"key":7}]', 'value-tojson-result-4'); - if (DESCRIPTORS) { - // This getter will be triggered during enumeration, but the property it adds should not be enumerated. - /* IE issue - const o = defineProperty({ - p1: 'p1', - p2: 'p2', - p3: 'p3', - }, 'add', { - enumerable: true, - get() { - o.extra = 'extra'; - return 'add'; - }, - }); - o.p4 = 'p4'; - o[2] = '2'; - o[0] = '0'; - o[1] = '1'; - delete o.p1; - delete o.p3; - o.p1 = 'p1'; - assert.same(stringify(o), '{"0":"0","1":"1","2":"2","p2":"p2","add":"add","p4":"p4","p1":"p1"}', 'property-order'); - */ - - let getCalls = 0; - assert.same(stringify(defineProperty({}, 'key', { - enumerable: true, - get() { - getCalls += 1; - return true; - }, - }), ['key', 'key']), '{"key":true}', 'replacer-array-duplicates-1'); - assert.same(getCalls, 1, 'replacer-array-duplicates-2'); - - /* old WebKit bug - however, fixing of this is not in priority - const obj3 = defineProperty({}, 'a', { - enumerable: true, - get() { - delete this.b; - return 1; - }, - }); - obj3.b = 2; - assert.same(stringify(obj3, (key, value) => { - if (key === 'b') { - assert.same(value, undefined, 'replacer-function-object-deleted-property-1'); - return ''; - } return value; - }), '{"a":1,"b":""}', 'replacer-function-object-deleted-property-2'); - */ - - assert.throws(() => stringify({ key: defineProperty(Array(1), '0', { - get() { throw new EvalError('t262'); }, - }) }), EvalError, 'value-array-abrupt'); - - assert.throws(() => stringify(defineProperty({}, 'key', { - enumerable: true, - get() { throw new EvalError('t262'); }, - })), EvalError, 'value-object-abrupt'); - - assert.throws(() => stringify(defineProperty({}, 'toJSON', { - get() { throw new EvalError('t262'); }, - })), EvalError, 'value-tojson-abrupt-2'); - } + // This getter will be triggered during enumeration, but the property it adds should not be enumerated. + /* IE issue + const o = defineProperty({ + p1: 'p1', + p2: 'p2', + p3: 'p3', + }, 'add', { + enumerable: true, + get() { + o.extra = 'extra'; + return 'add'; + }, + }); + o.p4 = 'p4'; + o[2] = '2'; + o[0] = '0'; + o[1] = '1'; + delete o.p1; + delete o.p3; + o.p1 = 'p1'; + assert.same(stringify(o), '{"0":"0","1":"1","2":"2","p2":"p2","add":"add","p4":"p4","p1":"p1"}', 'property-order'); + */ + + let getCalls = 0; + assert.same(stringify(defineProperty({}, 'key', { + enumerable: true, + get() { + getCalls += 1; + return true; + }, + }), ['key', 'key']), '{"key":true}', 'replacer-array-duplicates-1'); + assert.same(getCalls, 1, 'replacer-array-duplicates-2'); + + /* old WebKit bug - however, fixing of this is not in priority + const obj3 = defineProperty({}, 'a', { + enumerable: true, + get() { + delete this.b; + return 1; + }, + }); + obj3.b = 2; + assert.same(stringify(obj3, (key, value) => { + if (key === 'b') { + assert.same(value, undefined, 'replacer-function-object-deleted-property-1'); + return ''; + } return value; + }), '{"a":1,"b":""}', 'replacer-function-object-deleted-property-2'); + */ + + assert.throws(() => stringify({ key: defineProperty(Array(1), '0', { + get() { throw new EvalError('t262'); }, + }) }), EvalError, 'value-array-abrupt'); + + assert.throws(() => stringify(defineProperty({}, 'key', { + enumerable: true, + get() { throw new EvalError('t262'); }, + })), EvalError, 'value-object-abrupt'); + + assert.throws(() => stringify(defineProperty({}, 'toJSON', { + get() { throw new EvalError('t262'); }, + })), EvalError, 'value-tojson-abrupt-2'); }); QUnit.test('Symbols & JSON.stringify', assert => { @@ -502,11 +500,11 @@ if (GLOBAL.JSON?.stringify) { assert.same(stringify({ symbol: symbol1, }), '{}', 'object value'); - if (DESCRIPTORS) { - const object = { bar: 2 }; - object[symbol1] = 1; - assert.same(stringify(object), '{"bar":2}', 'object key'); - } + + const object = { bar: 2 }; + object[symbol1] = 1; + assert.same(stringify(object), '{"bar":2}', 'object key'); + assert.same(stringify(symbol1), undefined, 'symbol value'); if (typeof symbol1 == 'symbol') { assert.same(stringify(Object(symbol1)), '{}', 'boxed symbol'); diff --git a/tests/unit-pure/es.map.constructor.js b/tests/unit-pure/es.map.constructor.js index 5df6960845d8..8c22c616355b 100644 --- a/tests/unit-pure/es.map.constructor.js +++ b/tests/unit-pure/es.map.constructor.js @@ -1,6 +1,5 @@ /* eslint-disable sonarjs/no-element-overwrite -- required for testing */ import { createIterable, is, nativeSubclass } from '../helpers/helpers.js'; -import { DESCRIPTORS } from '../helpers/constants.js'; import getIterator from 'core-js-pure/es/get-iterator'; import getIteratorMethod from 'core-js-pure/es/get-iterator-method'; @@ -46,12 +45,12 @@ QUnit.test('Map', assert => { assert.true(done); const object = {}; new Map().set(object, 1); - if (DESCRIPTORS) { - const results = []; - for (const key in object) results.push(key); - assert.arrayEqual(results, []); - assert.arrayEqual(keys(object), []); - } + + const results = []; + for (const key in object) results.push(key); + assert.arrayEqual(results, []); + assert.arrayEqual(keys(object), []); + assert.arrayEqual(getOwnPropertyNames(object), []); if (getOwnPropertySymbols) assert.arrayEqual(getOwnPropertySymbols(object), []); if (ownKeys) assert.arrayEqual(ownKeys(object), []); @@ -246,14 +245,13 @@ QUnit.test('Map#size', assert => { const { size } = map; assert.same(typeof size, 'number', 'size is number'); assert.same(size, 1, 'size is correct'); - if (DESCRIPTORS) { - const sizeDescriptor = getOwnPropertyDescriptor(Map.prototype, 'size'); - const getter = sizeDescriptor && sizeDescriptor.get; - const setter = sizeDescriptor && sizeDescriptor.set; - assert.same(typeof getter, 'function', 'size is getter'); - assert.same(typeof setter, 'undefined', 'size is not setter'); - assert.throws(() => Map.prototype.size, TypeError); - } + + const sizeDescriptor = getOwnPropertyDescriptor(Map.prototype, 'size'); + const getter = sizeDescriptor && sizeDescriptor.get; + const setter = sizeDescriptor && sizeDescriptor.set; + assert.same(typeof getter, 'function', 'size is getter'); + assert.same(typeof setter, 'undefined', 'size is not setter'); + assert.throws(() => Map.prototype.size, TypeError); }); QUnit.test('Map & -0', assert => { diff --git a/tests/unit-pure/es.object.assign.js b/tests/unit-pure/es.object.assign.js index d80e5e6b0306..954f174c33d1 100644 --- a/tests/unit-pure/es.object.assign.js +++ b/tests/unit-pure/es.object.assign.js @@ -1,5 +1,3 @@ -import { DESCRIPTORS } from '../helpers/constants.js'; - import Symbol from 'core-js-pure/es/symbol'; import defineProperty from 'core-js-pure/es/object/define-property'; import keys from 'core-js-pure/es/object/keys'; @@ -19,43 +17,43 @@ QUnit.test('Object.assign', assert => { assert.same(String(string), 'qwe'); assert.same(string.q, 1); assert.same(assign({}, { valueOf: 42 }).valueOf, 42, 'IE enum keys bug'); - if (DESCRIPTORS) { - object = { baz: 1 }; - assign(object, defineProperty({}, 'bar', { - get() { - return this.baz + 1; - }, - })); - assert.same(object.bar, undefined, "assign don't copy descriptors"); - object = { a: 'a' }; - const c = Symbol('c'); - const d = Symbol('d'); - object[c] = 'c'; - defineProperty(object, 'b', { value: 'b' }); - defineProperty(object, d, { value: 'd' }); - const object2 = assign({}, object); - assert.same(object2.a, 'a', 'a'); - assert.same(object2.b, undefined, 'b'); - assert.same(object2[c], 'c', 'c'); - assert.same(object2[d], undefined, 'd'); - try { - assert.same(Function('assign', ` - return assign({ b: 1 }, { get a() { - delete this.b; - }, b: 2 }); - `)(assign).b, 1); - } catch { /* empty */ } - try { - assert.same(Function('assign', ` - return assign({ b: 1 }, { get a() { - Object.defineProperty(this, "b", { - value: 4, - enumerable: false - }); - }, b: 2 }); - `)(assign).b, 1); - } catch { /* empty */ } - } + + object = { baz: 1 }; + assign(object, defineProperty({}, 'bar', { + get() { + return this.baz + 1; + }, + })); + assert.same(object.bar, undefined, "assign don't copy descriptors"); + object = { a: 'a' }; + const c = Symbol('c'); + const d = Symbol('d'); + object[c] = 'c'; + defineProperty(object, 'b', { value: 'b' }); + defineProperty(object, d, { value: 'd' }); + const object2 = assign({}, object); + assert.same(object2.a, 'a', 'a'); + assert.same(object2.b, undefined, 'b'); + assert.same(object2[c], 'c', 'c'); + assert.same(object2[d], undefined, 'd'); + try { + assert.same(Function('assign', ` + return assign({ b: 1 }, { get a() { + delete this.b; + }, b: 2 }); + `)(assign).b, 1); + } catch { /* empty */ } + try { + assert.same(Function('assign', ` + return assign({ b: 1 }, { get a() { + Object.defineProperty(this, "b", { + value: 4, + enumerable: false + }); + }, b: 2 }); + `)(assign).b, 1); + } catch { /* empty */ } + string = 'abcdefghijklmnopqrst'; const result = {}; for (let i = 0, { length } = string; i < length; ++i) { diff --git a/tests/unit-pure/es.object.create.js b/tests/unit-pure/es.object.create.js index 2589f6443713..67858228cb13 100644 --- a/tests/unit-pure/es.object.create.js +++ b/tests/unit-pure/es.object.create.js @@ -1,5 +1,3 @@ -import { DESCRIPTORS } from '../helpers/constants.js'; - import getPrototypeOf from 'core-js-pure/es/object/get-prototype-of'; import getOwnPropertyNames from 'core-js-pure/es/object/get-own-property-names'; import create from 'core-js-pure/es/object/create'; @@ -30,7 +28,3 @@ QUnit.test('Object.create', assert => { assert.same(object.w, 2); assert.deepEqual(getPropertyNames(create(null)), []); }); - -QUnit.test('Object.create.sham flag', assert => { - assert.same(create.sham, DESCRIPTORS ? undefined : true); -}); diff --git a/tests/unit-pure/es.object.define-getter.js b/tests/unit-pure/es.object.define-getter.js index 8141a7b4dd49..344a3803b1da 100644 --- a/tests/unit-pure/es.object.define-getter.js +++ b/tests/unit-pure/es.object.define-getter.js @@ -1,24 +1,22 @@ /* eslint-disable id-match -- unification with global tests */ -import { DESCRIPTORS, STRICT } from '../helpers/constants.js'; +import { STRICT } from '../helpers/constants.js'; import __defineGetter__ from 'core-js-pure/es/object/define-getter'; import __defineSetter__ from 'core-js-pure/es/object/define-setter'; -if (DESCRIPTORS) { - QUnit.test('Object#__defineGetter__', assert => { - assert.isFunction(__defineGetter__); - const object = {}; - assert.same(__defineGetter__(object, 'key', () => 42), undefined, 'void'); - assert.same(object.key, 42, 'works'); - __defineSetter__(object, 'key', function () { - this.foo = 43; - }); - object.key = 44; - assert.same(object.key, 42, 'works with setter #1'); - assert.same(object.foo, 43, 'works with setter #2'); - if (STRICT) { - assert.throws(() => __defineGetter__(null, 1, () => { /* empty */ }), TypeError, 'Throws on null as `this`'); - assert.throws(() => __defineGetter__(undefined, 1, () => { /* empty */ }), TypeError, 'Throws on undefined as `this`'); - } +QUnit.test('Object#__defineGetter__', assert => { + assert.isFunction(__defineGetter__); + const object = {}; + assert.same(__defineGetter__(object, 'key', () => 42), undefined, 'void'); + assert.same(object.key, 42, 'works'); + __defineSetter__(object, 'key', function () { + this.foo = 43; }); -} + object.key = 44; + assert.same(object.key, 42, 'works with setter #1'); + assert.same(object.foo, 43, 'works with setter #2'); + if (STRICT) { + assert.throws(() => __defineGetter__(null, 1, () => { /* empty */ }), TypeError, 'Throws on null as `this`'); + assert.throws(() => __defineGetter__(undefined, 1, () => { /* empty */ }), TypeError, 'Throws on undefined as `this`'); + } +}); diff --git a/tests/unit-pure/es.object.define-properties.js b/tests/unit-pure/es.object.define-properties.js index 0aee4cf19a5c..54b382f576e2 100644 --- a/tests/unit-pure/es.object.define-properties.js +++ b/tests/unit-pure/es.object.define-properties.js @@ -1,5 +1,3 @@ -import { DESCRIPTORS } from '../helpers/constants.js'; - import defineProperties from 'core-js-pure/es/object/define-properties'; QUnit.test('Object.defineProperties', assert => { @@ -11,15 +9,9 @@ QUnit.test('Object.defineProperties', assert => { assert.same(result.q, 42); assert.same(result.w, 33); - if (DESCRIPTORS) { - // eslint-disable-next-line prefer-arrow-callback -- required for testing - assert.same(defineProperties(function () { /* empty */ }, { prototype: { - value: 42, - writable: false, - } }).prototype, 42, 'function prototype with non-writable descriptor'); - } -}); - -QUnit.test('Object.defineProperties.sham flag', assert => { - assert.same(defineProperties.sham, DESCRIPTORS ? undefined : true); + // eslint-disable-next-line prefer-arrow-callback -- required for testing + assert.same(defineProperties(function () { /* empty */ }, { prototype: { + value: 42, + writable: false, + } }).prototype, 42, 'function prototype with non-writable descriptor'); }); diff --git a/tests/unit-pure/es.object.define-property.js b/tests/unit-pure/es.object.define-property.js index f4c7a05217af..2217742277f6 100644 --- a/tests/unit-pure/es.object.define-property.js +++ b/tests/unit-pure/es.object.define-property.js @@ -1,5 +1,3 @@ -import { DESCRIPTORS } from '../helpers/constants.js'; - import create from 'core-js-pure/es/object/create'; import defineProperty from 'core-js-pure/es/object/define-property'; @@ -13,19 +11,13 @@ QUnit.test('Object.defineProperty', assert => { assert.same(result, source); assert.same(result.q, 42); - if (DESCRIPTORS) { - // eslint-disable-next-line prefer-arrow-callback -- required for testing - assert.same(defineProperty(function () { /* empty */ }, 'prototype', { - value: 42, - writable: false, - }).prototype, 42, 'function prototype with non-writable descriptor'); - } + // eslint-disable-next-line prefer-arrow-callback -- required for testing + assert.same(defineProperty(function () { /* empty */ }, 'prototype', { + value: 42, + writable: false, + }).prototype, 42, 'function prototype with non-writable descriptor'); assert.throws(() => defineProperty(42, 1, {})); assert.throws(() => defineProperty({}, create(null), {})); assert.throws(() => defineProperty({}, 1, 1)); }); - -QUnit.test('Object.defineProperty.sham flag', assert => { - assert.same(defineProperty.sham, DESCRIPTORS ? undefined : true); -}); diff --git a/tests/unit-pure/es.object.define-setter.js b/tests/unit-pure/es.object.define-setter.js index 40aa1362b197..d1a4dae404ee 100644 --- a/tests/unit-pure/es.object.define-setter.js +++ b/tests/unit-pure/es.object.define-setter.js @@ -1,29 +1,27 @@ /* eslint-disable id-match -- unification with global tests */ -import { DESCRIPTORS, STRICT } from '../helpers/constants.js'; +import { STRICT } from '../helpers/constants.js'; import __defineGetter__ from 'core-js-pure/es/object/define-getter'; import __defineSetter__ from 'core-js-pure/es/object/define-setter'; -if (DESCRIPTORS) { - QUnit.test('Object#__defineSetter__', assert => { - assert.isFunction(__defineSetter__); - let object = {}; - assert.same(__defineSetter__(object, 'key', function () { - this.foo = 43; - }), undefined, 'void'); - object.key = 44; - assert.same(object.foo, 43, 'works'); - object = {}; - __defineSetter__(object, 'key', function () { - this.foo = 43; - }); - __defineGetter__(object, 'key', () => 42); - object.key = 44; - assert.same(object.key, 42, 'works with getter #1'); - assert.same(object.foo, 43, 'works with getter #2'); - if (STRICT) { - assert.throws(() => __defineSetter__(null, 1, () => { /* empty */ }), TypeError, 'Throws on null as `this`'); - assert.throws(() => __defineSetter__(undefined, 1, () => { /* empty */ }), TypeError, 'Throws on undefined as `this`'); - } +QUnit.test('Object#__defineSetter__', assert => { + assert.isFunction(__defineSetter__); + let object = {}; + assert.same(__defineSetter__(object, 'key', function () { + this.foo = 43; + }), undefined, 'void'); + object.key = 44; + assert.same(object.foo, 43, 'works'); + object = {}; + __defineSetter__(object, 'key', function () { + this.foo = 43; }); -} + __defineGetter__(object, 'key', () => 42); + object.key = 44; + assert.same(object.key, 42, 'works with getter #1'); + assert.same(object.foo, 43, 'works with getter #2'); + if (STRICT) { + assert.throws(() => __defineSetter__(null, 1, () => { /* empty */ }), TypeError, 'Throws on null as `this`'); + assert.throws(() => __defineSetter__(undefined, 1, () => { /* empty */ }), TypeError, 'Throws on undefined as `this`'); + } +}); diff --git a/tests/unit-pure/es.object.get-own-property-descriptor.js b/tests/unit-pure/es.object.get-own-property-descriptor.js index b26b69d511aa..6568201051d1 100644 --- a/tests/unit-pure/es.object.get-own-property-descriptor.js +++ b/tests/unit-pure/es.object.get-own-property-descriptor.js @@ -1,5 +1,3 @@ -import { DESCRIPTORS } from '../helpers/constants.js'; - import getOwnPropertyDescriptor from 'core-js-pure/es/object/get-own-property-descriptor'; QUnit.test('Object.getOwnPropertyDescriptor', assert => { @@ -19,7 +17,3 @@ QUnit.test('Object.getOwnPropertyDescriptor', assert => { assert.throws(() => getOwnPropertyDescriptor(null), TypeError, 'throws on null'); assert.throws(() => getOwnPropertyDescriptor(undefined), TypeError, 'throws on undefined'); }); - -QUnit.test('Object.getOwnPropertyDescriptor.sham flag', assert => { - assert.same(getOwnPropertyDescriptor.sham, DESCRIPTORS ? undefined : true); -}); diff --git a/tests/unit-pure/es.object.get-own-property-descriptors.js b/tests/unit-pure/es.object.get-own-property-descriptors.js index ca70731b2cb6..94ed90f1e278 100644 --- a/tests/unit-pure/es.object.get-own-property-descriptors.js +++ b/tests/unit-pure/es.object.get-own-property-descriptors.js @@ -1,5 +1,3 @@ -import { DESCRIPTORS } from '../helpers/constants.js'; - import Symbol from 'core-js-pure/es/symbol'; import create from 'core-js-pure/es/object/create'; import getOwnPropertyDescriptors from 'core-js-pure/es/object/get-own-property-descriptors'; @@ -18,24 +16,11 @@ QUnit.test('Object.getOwnPropertyDescriptors', assert => { writable: true, value: 2, }); - if (DESCRIPTORS) { - assert.deepEqual(descriptors.e, { - enumerable: false, - configurable: false, - writable: false, - value: 3, - }); - } else { - assert.deepEqual(descriptors.e, { - enumerable: true, - configurable: true, - writable: true, - value: 3, - }); - } + assert.deepEqual(descriptors.e, { + enumerable: false, + configurable: false, + writable: false, + value: 3, + }); assert.same(descriptors[symbol].value, 4); }); - -QUnit.test('Object.getOwnPropertyDescriptors.sham flag', assert => { - assert.same(getOwnPropertyDescriptors.sham, DESCRIPTORS ? undefined : true); -}); diff --git a/tests/unit-pure/es.object.lookup-getter.js b/tests/unit-pure/es.object.lookup-getter.js index d1f9bb01c69e..bd676c5e1527 100644 --- a/tests/unit-pure/es.object.lookup-getter.js +++ b/tests/unit-pure/es.object.lookup-getter.js @@ -1,24 +1,22 @@ /* eslint-disable id-match -- unification with global tests */ -import { DESCRIPTORS, STRICT } from '../helpers/constants.js'; +import { STRICT } from '../helpers/constants.js'; import create from 'core-js-pure/es/object/create'; import __defineGetter__ from 'core-js-pure/es/object/define-getter'; import __lookupGetter__ from 'core-js-pure/es/object/lookup-getter'; -if (DESCRIPTORS) { - QUnit.test('Object#__lookupGetter__', assert => { - assert.isFunction(__lookupGetter__); - assert.same(__lookupGetter__({}, 'key'), undefined, 'empty object'); - assert.same(__lookupGetter__({ key: 42 }, 'key'), undefined, 'data descriptor'); - const object = {}; - function getter() { /* empty */ } - __defineGetter__(object, 'key', getter); - assert.same(__lookupGetter__(object, 'key'), getter, 'own getter'); - assert.same(__lookupGetter__(create(object), 'key'), getter, 'proto getter'); - assert.same(__lookupGetter__(create(object), 'foo'), undefined, 'empty proto'); - if (STRICT) { - assert.throws(() => __lookupGetter__(null, 1, () => { /* empty */ }), TypeError, 'Throws on null as `this`'); - assert.throws(() => __lookupGetter__(undefined, 1, () => { /* empty */ }), TypeError, 'Throws on undefined as `this`'); - } - }); -} +QUnit.test('Object#__lookupGetter__', assert => { + assert.isFunction(__lookupGetter__); + assert.same(__lookupGetter__({}, 'key'), undefined, 'empty object'); + assert.same(__lookupGetter__({ key: 42 }, 'key'), undefined, 'data descriptor'); + const object = {}; + function getter() { /* empty */ } + __defineGetter__(object, 'key', getter); + assert.same(__lookupGetter__(object, 'key'), getter, 'own getter'); + assert.same(__lookupGetter__(create(object), 'key'), getter, 'proto getter'); + assert.same(__lookupGetter__(create(object), 'foo'), undefined, 'empty proto'); + if (STRICT) { + assert.throws(() => __lookupGetter__(null, 1, () => { /* empty */ }), TypeError, 'Throws on null as `this`'); + assert.throws(() => __lookupGetter__(undefined, 1, () => { /* empty */ }), TypeError, 'Throws on undefined as `this`'); + } +}); diff --git a/tests/unit-pure/es.object.lookup-setter.js b/tests/unit-pure/es.object.lookup-setter.js index e8ce5dbcd06a..20bb8e92460d 100644 --- a/tests/unit-pure/es.object.lookup-setter.js +++ b/tests/unit-pure/es.object.lookup-setter.js @@ -1,24 +1,22 @@ /* eslint-disable id-match -- unification with global tests */ -import { DESCRIPTORS, STRICT } from '../helpers/constants.js'; +import { STRICT } from '../helpers/constants.js'; import create from 'core-js-pure/es/object/create'; import __defineSetter__ from 'core-js-pure/es/object/define-setter'; import __lookupSetter__ from 'core-js-pure/es/object/lookup-setter'; -if (DESCRIPTORS) { - QUnit.test('Object#__lookupSetter__', assert => { - assert.isFunction(__lookupSetter__); - assert.same(__lookupSetter__({}, 'key'), undefined, 'empty object'); - assert.same(__lookupSetter__({ key: 42 }, 'key'), undefined, 'data descriptor'); - const object = {}; - function setter() { /* empty */ } - __defineSetter__(object, 'key', setter); - assert.same(__lookupSetter__(object, 'key'), setter, 'own getter'); - assert.same(__lookupSetter__(create(object), 'key'), setter, 'proto getter'); - assert.same(__lookupSetter__(create(object), 'foo'), undefined, 'empty proto'); - if (STRICT) { - assert.throws(() => __lookupSetter__(null, 1, () => { /* empty */ }), TypeError, 'Throws on null as `this`'); - assert.throws(() => __lookupSetter__(undefined, 1, () => { /* empty */ }), TypeError, 'Throws on undefined as `this`'); - } - }); -} +QUnit.test('Object#__lookupSetter__', assert => { + assert.isFunction(__lookupSetter__); + assert.same(__lookupSetter__({}, 'key'), undefined, 'empty object'); + assert.same(__lookupSetter__({ key: 42 }, 'key'), undefined, 'data descriptor'); + const object = {}; + function setter() { /* empty */ } + __defineSetter__(object, 'key', setter); + assert.same(__lookupSetter__(object, 'key'), setter, 'own getter'); + assert.same(__lookupSetter__(create(object), 'key'), setter, 'proto getter'); + assert.same(__lookupSetter__(create(object), 'foo'), undefined, 'empty proto'); + if (STRICT) { + assert.throws(() => __lookupSetter__(null, 1, () => { /* empty */ }), TypeError, 'Throws on null as `this`'); + assert.throws(() => __lookupSetter__(undefined, 1, () => { /* empty */ }), TypeError, 'Throws on undefined as `this`'); + } +}); diff --git a/tests/unit-pure/es.promise.constructor.js b/tests/unit-pure/es.promise.constructor.js index 86919994175d..be306fa3b851 100644 --- a/tests/unit-pure/es.promise.constructor.js +++ b/tests/unit-pure/es.promise.constructor.js @@ -1,4 +1,4 @@ -import { DESCRIPTORS, GLOBAL, PROTO, STRICT } from '../helpers/constants.js'; +import { GLOBAL, PROTO, STRICT } from '../helpers/constants.js'; import Promise from 'core-js-pure/es/promise'; import Symbol from 'core-js-pure/es/symbol'; @@ -18,7 +18,7 @@ QUnit.test('Promise', assert => { }, 'throws w/o `new`'); }); -if (DESCRIPTORS) QUnit.test('Promise operations order', assert => { +QUnit.test('Promise operations order', assert => { let $resolve, $resolve2; assert.expect(1); const EXPECTED_ORDER = 'DEHAFGBC'; diff --git a/tests/unit-pure/es.reflect.define-property.js b/tests/unit-pure/es.reflect.define-property.js index 5d551696d88a..665edddbdcc0 100644 --- a/tests/unit-pure/es.reflect.define-property.js +++ b/tests/unit-pure/es.reflect.define-property.js @@ -1,5 +1,3 @@ -import { DESCRIPTORS } from '../helpers/constants.js'; - import getOwnPropertyDescriptor from 'core-js-pure/es/object/get-own-property-descriptor'; import create from 'core-js-pure/es/object/create'; import defineProperty from 'core-js-pure/es/reflect/define-property'; @@ -13,22 +11,22 @@ QUnit.test('Reflect.defineProperty', assert => { let object = {}; assert.true(defineProperty(object, 'foo', { value: 123 })); assert.same(object.foo, 123); - if (DESCRIPTORS) { - object = {}; - defineProperty(object, 'foo', { - value: 123, - enumerable: true, - }); - assert.deepEqual(getOwnPropertyDescriptor(object, 'foo'), { - value: 123, - enumerable: true, - configurable: false, - writable: false, - }); - assert.false(defineProperty(object, 'foo', { - value: 42, - })); - } + + object = {}; + defineProperty(object, 'foo', { + value: 123, + enumerable: true, + }); + assert.deepEqual(getOwnPropertyDescriptor(object, 'foo'), { + value: 123, + enumerable: true, + configurable: false, + writable: false, + }); + assert.false(defineProperty(object, 'foo', { + value: 42, + })); + assert.throws(() => defineProperty(42, 'foo', { value: 42, }), TypeError, 'throws on primitive'); @@ -36,7 +34,3 @@ QUnit.test('Reflect.defineProperty', assert => { assert.throws(() => defineProperty({}, create(null), {})); assert.throws(() => defineProperty({}, 1, 1)); }); - -QUnit.test('Reflect.defineProperty.sham flag', assert => { - assert.same(defineProperty.sham, DESCRIPTORS ? undefined : true); -}); diff --git a/tests/unit-pure/es.reflect.delete-property.js b/tests/unit-pure/es.reflect.delete-property.js index 1108007c5701..6501b3c38314 100644 --- a/tests/unit-pure/es.reflect.delete-property.js +++ b/tests/unit-pure/es.reflect.delete-property.js @@ -1,5 +1,3 @@ -import { DESCRIPTORS } from '../helpers/constants.js'; - import keys from 'core-js-pure/es/object/keys'; import defineProperty from 'core-js-pure/es/object/define-property'; import deleteProperty from 'core-js-pure/es/reflect/delete-property'; @@ -13,10 +11,10 @@ QUnit.test('Reflect.deleteProperty', assert => { const object = { bar: 456 }; assert.true(deleteProperty(object, 'bar')); assert.same(keys(object).length, 0); - if (DESCRIPTORS) { - assert.false(deleteProperty(defineProperty({}, 'foo', { - value: 42, - }), 'foo')); - } + + assert.false(deleteProperty(defineProperty({}, 'foo', { + value: 42, + }), 'foo')); + assert.throws(() => deleteProperty(42, 'foo'), TypeError, 'throws on primitive'); }); diff --git a/tests/unit-pure/es.reflect.get-own-property-descriptor.js b/tests/unit-pure/es.reflect.get-own-property-descriptor.js index e6baac2779c8..d6e68c329797 100644 --- a/tests/unit-pure/es.reflect.get-own-property-descriptor.js +++ b/tests/unit-pure/es.reflect.get-own-property-descriptor.js @@ -1,5 +1,3 @@ -import { DESCRIPTORS } from '../helpers/constants.js'; - import getOwnPropertyDescriptor from 'core-js-pure/es/reflect/get-own-property-descriptor'; QUnit.test('Reflect.getOwnPropertyDescriptor', assert => { @@ -13,7 +11,3 @@ QUnit.test('Reflect.getOwnPropertyDescriptor', assert => { assert.same(descriptor.value, 789); assert.throws(() => getOwnPropertyDescriptor(42, 'constructor'), TypeError, 'throws on primitive'); }); - -QUnit.test('Reflect.getOwnPropertyDescriptor.sham flag', assert => { - assert.same(getOwnPropertyDescriptor.sham, DESCRIPTORS ? undefined : true); -}); diff --git a/tests/unit-pure/es.reflect.get.js b/tests/unit-pure/es.reflect.get.js index ce942b98df5b..1afc26432b2a 100644 --- a/tests/unit-pure/es.reflect.get.js +++ b/tests/unit-pure/es.reflect.get.js @@ -1,5 +1,3 @@ -import { DESCRIPTORS } from '../helpers/constants.js'; - import create from 'core-js-pure/es/object/create'; import defineProperty from 'core-js-pure/es/object/define-property'; import get from 'core-js-pure/es/reflect/get'; @@ -10,27 +8,27 @@ QUnit.test('Reflect.get', assert => { assert.name(get, 'get'); } assert.same(get({ qux: 987 }, 'qux'), 987); - if (DESCRIPTORS) { - const target = create(defineProperty({ z: 3 }, 'w', { + + const target = create(defineProperty({ z: 3 }, 'w', { + get() { + return this; + }, + }), { + x: { + value: 1, + }, + y: { get() { return this; }, - }), { - x: { - value: 1, - }, - y: { - get() { - return this; - }, - }, - }); - const receiver = {}; - assert.same(get(target, 'x', receiver), 1, 'get x'); - assert.same(get(target, 'y', receiver), receiver, 'get y'); - assert.same(get(target, 'z', receiver), 3, 'get z'); - assert.same(get(target, 'w', receiver), receiver, 'get w'); - assert.same(get(target, 'u', receiver), undefined, 'get u'); - } + }, + }); + const receiver = {}; + assert.same(get(target, 'x', receiver), 1, 'get x'); + assert.same(get(target, 'y', receiver), receiver, 'get y'); + assert.same(get(target, 'z', receiver), 3, 'get z'); + assert.same(get(target, 'w', receiver), receiver, 'get w'); + assert.same(get(target, 'u', receiver), undefined, 'get u'); + assert.throws(() => get(42, 'constructor'), TypeError, 'throws on primitive'); }); diff --git a/tests/unit-pure/es.reflect.is-extensible.js b/tests/unit-pure/es.reflect.is-extensible.js index a9cf00dcbc8c..9de18d74f39a 100644 --- a/tests/unit-pure/es.reflect.is-extensible.js +++ b/tests/unit-pure/es.reflect.is-extensible.js @@ -1,5 +1,3 @@ -import { DESCRIPTORS } from '../helpers/constants.js'; - import preventExtensions from 'core-js-pure/es/object/prevent-extensions'; import isExtensible from 'core-js-pure/es/reflect/is-extensible'; @@ -10,8 +8,6 @@ QUnit.test('Reflect.isExtensible', assert => { assert.name(isExtensible, 'isExtensible'); } assert.true(isExtensible({})); - if (DESCRIPTORS) { - assert.false(isExtensible(preventExtensions({}))); - } + assert.false(isExtensible(preventExtensions({}))); assert.throws(() => isExtensible(42), TypeError, 'throws on primitive'); }); diff --git a/tests/unit-pure/es.reflect.prevent-extensions.js b/tests/unit-pure/es.reflect.prevent-extensions.js index 58344c8b124b..00471ce25327 100644 --- a/tests/unit-pure/es.reflect.prevent-extensions.js +++ b/tests/unit-pure/es.reflect.prevent-extensions.js @@ -1,4 +1,4 @@ -import { DESCRIPTORS, FREEZING } from '../helpers/constants.js'; +import { FREEZING } from '../helpers/constants.js'; import preventExtensions from 'core-js-pure/es/reflect/prevent-extensions'; import isExtensible from 'core-js-pure/es/object/is-extensible'; @@ -11,9 +11,7 @@ QUnit.test('Reflect.preventExtensions', assert => { } const object = {}; assert.true(preventExtensions(object)); - if (DESCRIPTORS) { - assert.false(isExtensible(object)); - } + assert.false(isExtensible(object)); assert.throws(() => preventExtensions(42), TypeError, 'throws on primitive'); }); diff --git a/tests/unit-pure/es.reflect.set.js b/tests/unit-pure/es.reflect.set.js index f19932d008a3..f5fedee80504 100644 --- a/tests/unit-pure/es.reflect.set.js +++ b/tests/unit-pure/es.reflect.set.js @@ -1,5 +1,3 @@ -import { DESCRIPTORS } from '../helpers/constants.js'; - import create from 'core-js-pure/es/object/create'; import defineProperty from 'core-js-pure/es/object/define-property'; import getOwnPropertyDescriptor from 'core-js-pure/es/object/get-own-property-descriptor'; @@ -19,70 +17,69 @@ QUnit.test('Reflect.set', assert => { set(target, 'foo', 1, receiver); assert.same(target.foo, undefined, 'target.foo === undefined'); assert.same(receiver.foo, 1, 'receiver.foo === 1'); - if (DESCRIPTORS) { - defineProperty(receiver, 'bar', { - value: 0, + + defineProperty(receiver, 'bar', { + value: 0, + writable: true, + enumerable: false, + configurable: true, + }); + set(target, 'bar', 1, receiver); + assert.same(receiver.bar, 1, 'receiver.bar === 1'); + assert.false(getOwnPropertyDescriptor(receiver, 'bar').enumerable, 'enumerability not overridden'); + let out = null; + target = create(defineProperty({ z: 3 }, 'w', { + set() { + out = this; + }, + }), { + x: { + value: 1, writable: true, - enumerable: false, configurable: true, - }); - set(target, 'bar', 1, receiver); - assert.same(receiver.bar, 1, 'receiver.bar === 1'); - assert.false(getOwnPropertyDescriptor(receiver, 'bar').enumerable, 'enumerability not overridden'); - let out; - target = create(defineProperty({ z: 3 }, 'w', { + }, + y: { set() { out = this; }, - }), { - x: { - value: 1, - writable: true, - configurable: true, - }, - y: { - set() { - out = this; - }, - }, - c: { - value: 1, - writable: false, - configurable: false, - }, - }); - assert.true(set(target, 'x', 2, target), 'set x'); - assert.same(target.x, 2, 'set x'); - out = null; - assert.true(set(target, 'y', 2, target), 'set y'); - assert.same(out, target, 'set y'); - assert.true(set(target, 'z', 4, target)); - assert.same(target.z, 4, 'set z'); - out = null; - assert.true(set(target, 'w', 1, target), 'set w'); - assert.same(out, target, 'set w'); - assert.true(set(target, 'u', 0, target), 'set u'); - assert.same(target.u, 0, 'set u'); - assert.false(set(target, 'c', 2, target), 'set c'); - assert.same(target.c, 1, 'set c'); - - // https://github.com/zloirock/core-js/issues/392 - let o = defineProperty({}, 'test', { + }, + c: { + value: 1, writable: false, - configurable: true, - }); - assert.false(set(getPrototypeOf(o), 'test', 1, o)); + configurable: false, + }, + }); + assert.true(set(target, 'x', 2, target), 'set x'); + assert.same(target.x, 2, 'set x'); + assert.true(set(target, 'y', 2, target), 'set y'); + assert.same(out, target, 'set y'); + assert.true(set(target, 'z', 4, target)); + assert.same(target.z, 4, 'set z'); + out = null; + assert.true(set(target, 'w', 1, target), 'set w'); + assert.same(out, target, 'set w'); + assert.true(set(target, 'u', 0, target), 'set u'); + assert.same(target.u, 0, 'set u'); + assert.false(set(target, 'c', 2, target), 'set c'); + assert.same(target.c, 1, 'set c'); + + // https://github.com/zloirock/core-js/issues/392 + let o = defineProperty({}, 'test', { + writable: false, + configurable: true, + }); + assert.false(set(getPrototypeOf(o), 'test', 1, o)); + + // https://github.com/zloirock/core-js/issues/393 + o = defineProperty({}, 'test', { + get() { /* empty */ }, + }); + assert.notThrows(() => !set(getPrototypeOf(o), 'test', 1, o)); + o = defineProperty({}, 'test', { + // eslint-disable-next-line no-unused-vars -- required for testing + set(v) { /* empty */ }, + }); + assert.notThrows(() => !set(getPrototypeOf(o), 'test', 1, o)); - // https://github.com/zloirock/core-js/issues/393 - o = defineProperty({}, 'test', { - get() { /* empty */ }, - }); - assert.notThrows(() => !set(getPrototypeOf(o), 'test', 1, o)); - o = defineProperty({}, 'test', { - // eslint-disable-next-line no-unused-vars -- required for testing - set(v) { /* empty */ }, - }); - assert.notThrows(() => !set(getPrototypeOf(o), 'test', 1, o)); - } assert.throws(() => set(42, 'q', 42), TypeError, 'throws on primitive'); }); diff --git a/tests/unit-pure/es.set.constructor.js b/tests/unit-pure/es.set.constructor.js index 434c66c21b7a..bced54668c23 100644 --- a/tests/unit-pure/es.set.constructor.js +++ b/tests/unit-pure/es.set.constructor.js @@ -1,6 +1,5 @@ /* eslint-disable sonarjs/no-element-overwrite -- required for testing */ import { createIterable, is, nativeSubclass } from '../helpers/helpers.js'; -import { DESCRIPTORS } from '../helpers/constants.js'; import getIterator from 'core-js-pure/es/get-iterator'; import getIteratorMethod from 'core-js-pure/es/get-iterator-method'; @@ -65,12 +64,12 @@ QUnit.test('Set', assert => { assert.true(done); const object = {}; new Set().add(object); - if (DESCRIPTORS) { - const results = []; - for (const key in results) keys.push(key); - assert.arrayEqual(results, []); - assert.arrayEqual(keys(object), []); - } + + const results = []; + for (const key in results) keys.push(key); + assert.arrayEqual(results, []); + assert.arrayEqual(keys(object), []); + assert.arrayEqual(getOwnPropertyNames(object), []); if (getOwnPropertySymbols) assert.arrayEqual(getOwnPropertySymbols(object), []); if (ownKeys) assert.arrayEqual(ownKeys(object), []); @@ -240,16 +239,15 @@ QUnit.test('Set#size', assert => { const { size } = set; assert.same(typeof size, 'number', 'size is number'); assert.same(size, 1, 'size is correct'); - if (DESCRIPTORS) { - const sizeDescriptor = getOwnPropertyDescriptor(Set.prototype, 'size'); - const getter = sizeDescriptor && sizeDescriptor.get; - const setter = sizeDescriptor && sizeDescriptor.set; - assert.same(typeof getter, 'function', 'size is getter'); - assert.same(typeof setter, 'undefined', 'size is not setter'); - assert.throws(() => { - Set.prototype.size; - }, TypeError); - } + + const sizeDescriptor = getOwnPropertyDescriptor(Set.prototype, 'size'); + const getter = sizeDescriptor && sizeDescriptor.get; + const setter = sizeDescriptor && sizeDescriptor.set; + assert.same(typeof getter, 'function', 'size is getter'); + assert.same(typeof setter, 'undefined', 'size is not setter'); + assert.throws(() => { + Set.prototype.size; + }, TypeError); }); QUnit.test('Set & -0', assert => { diff --git a/tests/unit-pure/es.set.symmetric-difference.js b/tests/unit-pure/es.set.symmetric-difference.js index 657a023fcd9d..a556138c5d12 100644 --- a/tests/unit-pure/es.set.symmetric-difference.js +++ b/tests/unit-pure/es.set.symmetric-difference.js @@ -1,4 +1,3 @@ -import { DESCRIPTORS } from '../helpers/constants.js'; import { createSetLike } from '../helpers/helpers.js'; import from from 'core-js-pure/es/array/from'; @@ -48,7 +47,7 @@ QUnit.test('Set#symmetricDifference', assert => { assert.deepEqual(from(baseSet.symmetricDifference(setLike)), ['a', 'b', 'c', 'd', 'e', 'g', 'h', 'i', 'j']); } - if (DESCRIPTORS) { + { // Should get iterator record of a set-like object before cloning this // https://bugs.webkit.org/show_bug.cgi?id=289430 const baseSet = new Set(); diff --git a/tests/unit-pure/es.set.union.js b/tests/unit-pure/es.set.union.js index 3784426f9949..b2c7343cf853 100644 --- a/tests/unit-pure/es.set.union.js +++ b/tests/unit-pure/es.set.union.js @@ -1,4 +1,3 @@ -import { DESCRIPTORS } from '../helpers/constants.js'; import { createSetLike } from '../helpers/helpers.js'; import from from 'core-js-pure/es/array/from'; @@ -27,7 +26,7 @@ QUnit.test('Set#union', assert => { assert.throws(() => union.call(undefined, [1, 2, 3]), TypeError); assert.throws(() => union.call(null, [1, 2, 3]), TypeError); - if (DESCRIPTORS) { + { // Should get iterator record of a set-like object before cloning this // https://bugs.webkit.org/show_bug.cgi?id=289430 const baseSet = new Set(); diff --git a/tests/unit-pure/es.symbol.constructor.js b/tests/unit-pure/es.symbol.constructor.js index 5db2ef5d77a0..720d1c38cf22 100644 --- a/tests/unit-pure/es.symbol.constructor.js +++ b/tests/unit-pure/es.symbol.constructor.js @@ -1,4 +1,4 @@ -import { DESCRIPTORS, GLOBAL } from '../helpers/constants.js'; +import { GLOBAL } from '../helpers/constants.js'; import create from 'core-js-pure/es/object/create'; import defineProperty from 'core-js-pure/es/object/define-property'; @@ -23,12 +23,10 @@ QUnit.test('Symbol', assert => { assert.same(object[symbol1], 42, 'Symbol() work as key'); assert.notSame(object[symbol2], 42, 'Various symbols from one description are various keys'); // assert.throws(() => Symbol(Symbol('foo')), 'throws on symbol argument'); - if (DESCRIPTORS) { - let count = 0; - // eslint-disable-next-line no-unused-vars -- required for testing - for (const key in object) count++; - assert.same(count, 0, 'object[Symbol()] is not enumerable'); - } + let count = 0; + // eslint-disable-next-line no-unused-vars -- required for testing + for (const key in object) count++; + assert.same(count, 0, 'object[Symbol()] is not enumerable'); }); QUnit.test('Symbol as global key', assert => { @@ -69,171 +67,169 @@ QUnit.test('Symbol#@@toStringTag', assert => { assert.same(Symbol.prototype[Symbol.toStringTag], 'Symbol', 'Symbol::@@toStringTag is `Symbol`'); }); -if (DESCRIPTORS) { - QUnit.test('Symbols & descriptors', assert => { - const d = Symbol('d'); - const e = Symbol('e'); - const f = Symbol('f'); - const i = Symbol('i'); - const j = Symbol('j'); - const prototype = { g: 'g' }; - prototype[i] = 'i'; - defineProperty(prototype, 'h', { - value: 'h', - }); - defineProperty(prototype, 'j', { - value: 'j', - }); - const object = create(prototype); - object.a = 'a'; - object[d] = 'd'; - defineProperty(object, 'b', { - value: 'b', - }); - defineProperty(object, 'c', { - value: 'c', - enumerable: true, - }); - defineProperty(object, e, { - configurable: true, - writable: true, - value: 'e', - }); - const descriptor = { - value: 'f', - enumerable: true, - }; - defineProperty(object, f, descriptor); - assert.true(descriptor.enumerable, 'defineProperty not changes descriptor object'); - assert.deepEqual(getOwnPropertyDescriptor(object, 'a'), { - configurable: true, - writable: true, - enumerable: true, +QUnit.test('Symbols & descriptors', assert => { + const d = Symbol('d'); + const e = Symbol('e'); + const f = Symbol('f'); + const i = Symbol('i'); + const j = Symbol('j'); + const prototype = { g: 'g' }; + prototype[i] = 'i'; + defineProperty(prototype, 'h', { + value: 'h', + }); + defineProperty(prototype, 'j', { + value: 'j', + }); + const object = create(prototype); + object.a = 'a'; + object[d] = 'd'; + defineProperty(object, 'b', { + value: 'b', + }); + defineProperty(object, 'c', { + value: 'c', + enumerable: true, + }); + defineProperty(object, e, { + configurable: true, + writable: true, + value: 'e', + }); + const descriptor = { + value: 'f', + enumerable: true, + }; + defineProperty(object, f, descriptor); + assert.true(descriptor.enumerable, 'defineProperty not changes descriptor object'); + assert.deepEqual(getOwnPropertyDescriptor(object, 'a'), { + configurable: true, + writable: true, + enumerable: true, + value: 'a', + }, 'getOwnPropertyDescriptor a'); + assert.deepEqual(getOwnPropertyDescriptor(object, 'b'), { + configurable: false, + writable: false, + enumerable: false, + value: 'b', + }, 'getOwnPropertyDescriptor b'); + assert.deepEqual(getOwnPropertyDescriptor(object, 'c'), { + configurable: false, + writable: false, + enumerable: true, + value: 'c', + }, 'getOwnPropertyDescriptor c'); + assert.deepEqual(getOwnPropertyDescriptor(object, d), { + configurable: true, + writable: true, + enumerable: true, + value: 'd', + }, 'getOwnPropertyDescriptor d'); + assert.deepEqual(getOwnPropertyDescriptor(object, e), { + configurable: true, + writable: true, + enumerable: false, + value: 'e', + }, 'getOwnPropertyDescriptor e'); + assert.deepEqual(getOwnPropertyDescriptor(object, f), { + configurable: false, + writable: false, + enumerable: true, + value: 'f', + }, 'getOwnPropertyDescriptor f'); + assert.same(getOwnPropertyDescriptor(object, 'g'), undefined, 'getOwnPropertyDescriptor g'); + assert.same(getOwnPropertyDescriptor(object, 'h'), undefined, 'getOwnPropertyDescriptor h'); + assert.same(getOwnPropertyDescriptor(object, i), undefined, 'getOwnPropertyDescriptor i'); + assert.same(getOwnPropertyDescriptor(object, j), undefined, 'getOwnPropertyDescriptor j'); + assert.same(getOwnPropertyDescriptor(object, 'k'), undefined, 'getOwnPropertyDescriptor k'); + assert.false(getOwnPropertyDescriptor(Object.prototype, 'toString').enumerable, 'getOwnPropertyDescriptor on Object.prototype'); + assert.same(getOwnPropertyDescriptor(Object.prototype, d), undefined, 'getOwnPropertyDescriptor on Object.prototype missed symbol'); + assert.same(keys(object).length, 2, 'Object.keys'); + assert.same(getOwnPropertyNames(object).length, 3, 'Object.getOwnPropertyNames'); + assert.same(getOwnPropertySymbols(object).length, 3, 'Object.getOwnPropertySymbols'); + assert.same(ownKeys(object).length, 6, 'Reflect.ownKeys'); + delete object[e]; + object[e] = 'e'; + assert.deepEqual(getOwnPropertyDescriptor(object, e), { + configurable: true, + writable: true, + enumerable: true, + value: 'e', + }, 'redefined non-enum key'); +}); + +QUnit.test('Symbols & Object.defineProperties', assert => { + const c = Symbol('c'); + const d = Symbol('d'); + const descriptors = { + a: { value: 'a', - }, 'getOwnPropertyDescriptor a'); - assert.deepEqual(getOwnPropertyDescriptor(object, 'b'), { - configurable: false, - writable: false, - enumerable: false, + }, + }; + descriptors[c] = { + value: 'c', + }; + defineProperty(descriptors, 'b', { + value: { value: 'b', - }, 'getOwnPropertyDescriptor b'); - assert.deepEqual(getOwnPropertyDescriptor(object, 'c'), { - configurable: false, - writable: false, - enumerable: true, - value: 'c', - }, 'getOwnPropertyDescriptor c'); - assert.deepEqual(getOwnPropertyDescriptor(object, d), { - configurable: true, - writable: true, - enumerable: true, - value: 'd', - }, 'getOwnPropertyDescriptor d'); - assert.deepEqual(getOwnPropertyDescriptor(object, e), { - configurable: true, - writable: true, - enumerable: false, - value: 'e', - }, 'getOwnPropertyDescriptor e'); - assert.deepEqual(getOwnPropertyDescriptor(object, f), { - configurable: false, - writable: false, - enumerable: true, - value: 'f', - }, 'getOwnPropertyDescriptor f'); - assert.same(getOwnPropertyDescriptor(object, 'g'), undefined, 'getOwnPropertyDescriptor g'); - assert.same(getOwnPropertyDescriptor(object, 'h'), undefined, 'getOwnPropertyDescriptor h'); - assert.same(getOwnPropertyDescriptor(object, i), undefined, 'getOwnPropertyDescriptor i'); - assert.same(getOwnPropertyDescriptor(object, j), undefined, 'getOwnPropertyDescriptor j'); - assert.same(getOwnPropertyDescriptor(object, 'k'), undefined, 'getOwnPropertyDescriptor k'); - assert.false(getOwnPropertyDescriptor(Object.prototype, 'toString').enumerable, 'getOwnPropertyDescriptor on Object.prototype'); - assert.same(getOwnPropertyDescriptor(Object.prototype, d), undefined, 'getOwnPropertyDescriptor on Object.prototype missed symbol'); - assert.same(keys(object).length, 2, 'Object.keys'); - assert.same(getOwnPropertyNames(object).length, 3, 'Object.getOwnPropertyNames'); - assert.same(getOwnPropertySymbols(object).length, 3, 'Object.getOwnPropertySymbols'); - assert.same(ownKeys(object).length, 6, 'Reflect.ownKeys'); - delete object[e]; - object[e] = 'e'; - assert.deepEqual(getOwnPropertyDescriptor(object, e), { - configurable: true, - writable: true, - enumerable: true, - value: 'e', - }, 'redefined non-enum key'); + }, }); - - QUnit.test('Symbols & Object.defineProperties', assert => { - const c = Symbol('c'); - const d = Symbol('d'); - const descriptors = { - a: { - value: 'a', - }, - }; - descriptors[c] = { - value: 'c', - }; - defineProperty(descriptors, 'b', { - value: { - value: 'b', - }, - }); - defineProperty(descriptors, d, { - value: { - value: 'd', - }, - }); - const object = defineProperties({}, descriptors); - assert.same(object.a, 'a', 'a'); - assert.same(object.b, undefined, 'b'); - assert.same(object[c], 'c', 'c'); - assert.same(object[d], undefined, 'd'); + defineProperty(descriptors, d, { + value: { + value: 'd', + }, }); + const object = defineProperties({}, descriptors); + assert.same(object.a, 'a', 'a'); + assert.same(object.b, undefined, 'b'); + assert.same(object[c], 'c', 'c'); + assert.same(object[d], undefined, 'd'); +}); - QUnit.test('Symbols & Object.create', assert => { - const c = Symbol('c'); - const d = Symbol('d'); - const descriptors = { - a: { - value: 'a', - }, - }; - descriptors[c] = { - value: 'c', - }; - defineProperty(descriptors, 'b', { - value: { - value: 'b', - }, - }); - defineProperty(descriptors, d, { - value: { - value: 'd', - }, - }); - const object = create(null, descriptors); - assert.same(object.a, 'a', 'a'); - assert.same(object.b, undefined, 'b'); - assert.same(object[c], 'c', 'c'); - assert.same(object[d], undefined, 'd'); +QUnit.test('Symbols & Object.create', assert => { + const c = Symbol('c'); + const d = Symbol('d'); + const descriptors = { + a: { + value: 'a', + }, + }; + descriptors[c] = { + value: 'c', + }; + defineProperty(descriptors, 'b', { + value: { + value: 'b', + }, }); - - const constructors = { Map, Set, Promise }; - for (const name in constructors) { - QUnit.test(`${ name }@@species`, assert => { - assert.same(constructors[name][Symbol.species], constructors[name], `${ name }@@species === ${ name }`); - const Subclass = create(constructors[name]); - assert.same(Subclass[Symbol.species], Subclass, `${ name } subclass`); - }); - } - - QUnit.test('Array@@species', assert => { - assert.same(Array[Symbol.species], Array, 'Array@@species === Array'); - const Subclass = create(Array); - assert.same(Subclass[Symbol.species], Subclass, 'Array subclass'); + defineProperty(descriptors, d, { + value: { + value: 'd', + }, }); + const object = create(null, descriptors); + assert.same(object.a, 'a', 'a'); + assert.same(object.b, undefined, 'b'); + assert.same(object[c], 'c', 'c'); + assert.same(object[d], undefined, 'd'); +}); - QUnit.test('Symbol.sham flag', assert => { - assert.same(Symbol.sham, typeof Symbol('Symbol.sham flag test') == 'symbol' ? undefined : true); +const constructors = { Map, Set, Promise }; +for (const name in constructors) { + QUnit.test(`${ name }@@species`, assert => { + assert.same(constructors[name][Symbol.species], constructors[name], `${ name }@@species === ${ name }`); + const Subclass = create(constructors[name]); + assert.same(Subclass[Symbol.species], Subclass, `${ name } subclass`); }); } + +QUnit.test('Array@@species', assert => { + assert.same(Array[Symbol.species], Array, 'Array@@species === Array'); + const Subclass = create(Array); + assert.same(Subclass[Symbol.species], Subclass, 'Array subclass'); +}); + +QUnit.test('Symbol.sham flag', assert => { + assert.same(Symbol.sham, typeof Symbol('Symbol.sham flag test') == 'symbol' ? undefined : true); +}); diff --git a/tests/unit-pure/es.weak-map.constructor.js b/tests/unit-pure/es.weak-map.constructor.js index 834f8c64db3d..ee7c6da10360 100644 --- a/tests/unit-pure/es.weak-map.constructor.js +++ b/tests/unit-pure/es.weak-map.constructor.js @@ -1,5 +1,5 @@ import { createIterable, nativeSubclass } from '../helpers/helpers.js'; -import { DESCRIPTORS, FREEZING } from '../helpers/constants.js'; +import { FREEZING } from '../helpers/constants.js'; import getIteratorMethod from 'core-js-pure/es/get-iterator-method'; import freeze from 'core-js-pure/es/object/freeze'; @@ -53,12 +53,12 @@ QUnit.test('WeakMap', assert => { assert.true(done); object = {}; new WeakMap().set(object, 1); - if (DESCRIPTORS) { - const results = []; - for (const key in object) results.push(key); - assert.arrayEqual(results, []); - assert.arrayEqual(keys(object), []); - } + + const results = []; + for (const key in object) results.push(key); + assert.arrayEqual(results, []); + assert.arrayEqual(keys(object), []); + assert.arrayEqual(getOwnPropertyNames(object), []); if (getOwnPropertySymbols) assert.arrayEqual(getOwnPropertySymbols(object), []); if (ownKeys) assert.arrayEqual(ownKeys(object), []); diff --git a/tests/unit-pure/es.weak-set.constructor.js b/tests/unit-pure/es.weak-set.constructor.js index f23b0f586465..e4a4c5f349a5 100644 --- a/tests/unit-pure/es.weak-set.constructor.js +++ b/tests/unit-pure/es.weak-set.constructor.js @@ -1,5 +1,4 @@ import { createIterable, nativeSubclass } from '../helpers/helpers.js'; -import { DESCRIPTORS } from '../helpers/constants.js'; import getIteratorMethod from 'core-js-pure/es/get-iterator-method'; import freeze from 'core-js-pure/es/object/freeze'; @@ -46,12 +45,12 @@ QUnit.test('WeakSet', assert => { assert.true(done); object = {}; new WeakSet().add(object); - if (DESCRIPTORS) { - const results = []; - for (const key in object) results.push(key); - assert.arrayEqual(results, []); - assert.arrayEqual(keys(object), []); - } + + const results = []; + for (const key in object) results.push(key); + assert.arrayEqual(results, []); + assert.arrayEqual(keys(object), []); + assert.arrayEqual(getOwnPropertyNames(object), []); if (getOwnPropertySymbols) assert.arrayEqual(getOwnPropertySymbols(object), []); if (ownKeys) assert.arrayEqual(ownKeys(object), []); diff --git a/tests/unit-pure/esnext.iterator.zip-keyed.js b/tests/unit-pure/esnext.iterator.zip-keyed.js index fea68ee21b4c..57734131b666 100644 --- a/tests/unit-pure/esnext.iterator.zip-keyed.js +++ b/tests/unit-pure/esnext.iterator.zip-keyed.js @@ -1,5 +1,4 @@ import { createIterator } from '../helpers/helpers.js'; -import { DESCRIPTORS } from '../helpers/constants.js'; import defineProperty from 'core-js-pure/actual/object/define-property'; import from from 'core-js-pure/es/array/from'; @@ -26,7 +25,7 @@ QUnit.test('Iterator.zipKeyed', assert => { result = zipKeyed({ a: [0, 1, 2], b: [3, 4, 5, 6], c: [7, 8, 9] }, { mode: 'strict' }); assert.throws(() => from(result), TypeError); - if (DESCRIPTORS) { + { let obj = {}; defineProperty(obj, 'a', { get: () => [0, 1, 2], enumerable: true }); defineProperty(obj, 'b', { get: () => [3, 4, 5], enumerable: true }); diff --git a/tests/unit-pure/esnext.json.parse.js b/tests/unit-pure/esnext.json.parse.js index 6b3d50eb623a..b75308557569 100644 --- a/tests/unit-pure/esnext.json.parse.js +++ b/tests/unit-pure/esnext.json.parse.js @@ -1,7 +1,7 @@ // Some tests adopted from Test262 project and governed by the BSD license. // Copyright (c) 2012 Ecma International. All rights reserved. /* eslint-disable unicorn/escape-case -- testing */ -import { DESCRIPTORS, REDEFINABLE_PROTO } from '../helpers/constants.js'; +import { REDEFINABLE_PROTO } from '../helpers/constants.js'; import parse from 'core-js-pure/actual/json/parse'; import defineProperty from 'core-js-pure/es/object/define-property'; import hasOwn from 'core-js-pure/es/object/has-own'; @@ -181,45 +181,43 @@ QUnit.test('JSON.parse', assert => { assert.true(hasOwn(obj1, 'b'), 'reviver-object-get-prop-from-prototype-2'); assert.same(obj1.b, 3, 'reviver-object-get-prop-from-prototype-3'); - if (DESCRIPTORS) { - const arr2 = parse('[1, 2]', function (key, value) { - if (key === '0') defineProperty(this, '1', { configurable: false }); - if (key === '1') return 22; - return value; - }); - assert.same(arr2[0], 1, 'reviver-array-non-configurable-prop-create-1'); - assert.same(arr2[1], 2, 'reviver-array-non-configurable-prop-create-2'); + const arr2 = parse('[1, 2]', function (key, value) { + if (key === '0') defineProperty(this, '1', { configurable: false }); + if (key === '1') return 22; + return value; + }); + assert.same(arr2[0], 1, 'reviver-array-non-configurable-prop-create-1'); + assert.same(arr2[1], 2, 'reviver-array-non-configurable-prop-create-2'); - const arr3 = parse('[1, 2]', function (key, value) { - if (key === '0') defineProperty(this, '1', { configurable: false }); - if (key === '1') return; - return value; - }); - assert.same(arr3[0], 1, 'reviver-array-non-configurable-prop-delete-1'); - assert.true(hasOwn(arr3, '1'), 'reviver-array-non-configurable-prop-delete-2'); - assert.same(arr3[1], 2, 'reviver-array-non-configurable-prop-delete-3'); + const arr3 = parse('[1, 2]', function (key, value) { + if (key === '0') defineProperty(this, '1', { configurable: false }); + if (key === '1') return; + return value; + }); + assert.same(arr3[0], 1, 'reviver-array-non-configurable-prop-delete-1'); + assert.true(hasOwn(arr3, '1'), 'reviver-array-non-configurable-prop-delete-2'); + assert.same(arr3[1], 2, 'reviver-array-non-configurable-prop-delete-3'); - const obj2 = parse('{"a": 1, "b": 2}', function (key, value) { - if (key === 'a') defineProperty(this, 'b', { configurable: false }); - if (key === 'b') return 22; - return value; - }); - assert.same(obj2.a, 1, 'reviver-object-non-configurable-prop-create-1'); - assert.same(obj2.b, 2, 'reviver-object-non-configurable-prop-create-2'); + const obj2 = parse('{"a": 1, "b": 2}', function (key, value) { + if (key === 'a') defineProperty(this, 'b', { configurable: false }); + if (key === 'b') return 22; + return value; + }); + assert.same(obj2.a, 1, 'reviver-object-non-configurable-prop-create-1'); + assert.same(obj2.b, 2, 'reviver-object-non-configurable-prop-create-2'); - const obj3 = parse('{"a": 1, "b": 2}', function (key, value) { - if (key === 'a') defineProperty(this, 'b', { configurable: false }); - if (key === 'b') return; - return value; - }); - assert.same(obj3.a, 1, 'reviver-object-non-configurable-prop-delete-1'); - assert.true(hasOwn(obj3, 'b'), 'reviver-object-non-configurable-prop-delete-2'); - assert.same(obj3.b, 2, 'reviver-object-non-configurable-prop-delete-3'); + const obj3 = parse('{"a": 1, "b": 2}', function (key, value) { + if (key === 'a') defineProperty(this, 'b', { configurable: false }); + if (key === 'b') return; + return value; + }); + assert.same(obj3.a, 1, 'reviver-object-non-configurable-prop-delete-1'); + assert.true(hasOwn(obj3, 'b'), 'reviver-object-non-configurable-prop-delete-2'); + assert.same(obj3.b, 2, 'reviver-object-non-configurable-prop-delete-3'); - assert.throws(() => parse('[0,0]', function () { - defineProperty(this, '1', { get: () => { throw new EvalError('t262'); } }); - }), EvalError, 'reviver-get-name-err'); - } + assert.throws(() => parse('[0,0]', function () { + defineProperty(this, '1', { get: () => { throw new EvalError('t262'); } }); + }), EvalError, 'reviver-get-name-err'); assert.throws(() => parse('0', () => { throw new EvalError('t262'); }), EvalError, 'reviver-call-err'); diff --git a/tests/unit-pure/web.dom-exception.constructor.js b/tests/unit-pure/web.dom-exception.constructor.js index ab259f6d2fe6..8daa85b9a043 100644 --- a/tests/unit-pure/web.dom-exception.constructor.js +++ b/tests/unit-pure/web.dom-exception.constructor.js @@ -1,4 +1,4 @@ -import { DESCRIPTORS, NODE } from '../helpers/constants.js'; +import { NODE } from '../helpers/constants.js'; import DOMException from 'core-js-pure/stable/dom-exception'; import Symbol from 'core-js-pure/es/symbol'; @@ -73,10 +73,8 @@ QUnit.test('DOMException', assert => { const symbol = Symbol('DOMException constructor test'); assert.throws(() => new DOMException(symbol, 'DataCloneError'), "new DOMException(Symbol(), 'DataCloneError')"); assert.throws(() => new DOMException(42, symbol), 'new DOMException(42, Symbol())'); - if (DESCRIPTORS) { - // assert.throws(() => DOMException.prototype.message, 'DOMException.prototype.message'); // FF55- , Safari 10.1 bug - // assert.throws(() => DOMException.prototype.name, 'DOMException.prototype.name'); // FF55-, Safari 10.1 bug bug - // assert.throws(() => DOMException.prototype.code, 'DOMException.prototype.code'); // Safari 10.1 bug - // assert.throws(() => DOMException.prototype.toString(), 'DOMException.prototype.toString()'); // FF55- bug - } + // assert.throws(() => DOMException.prototype.message, 'DOMException.prototype.message'); // FF55- , Safari 10.1 bug + // assert.throws(() => DOMException.prototype.name, 'DOMException.prototype.name'); // FF55-, Safari 10.1 bug bug + // assert.throws(() => DOMException.prototype.code, 'DOMException.prototype.code'); // Safari 10.1 bug + // assert.throws(() => DOMException.prototype.toString(), 'DOMException.prototype.toString()'); // FF55- bug }); diff --git a/tests/unit-pure/web.url-search-params.constructor.js b/tests/unit-pure/web.url-search-params.constructor.js index a8a92b7283d2..12505ab41b0c 100644 --- a/tests/unit-pure/web.url-search-params.constructor.js +++ b/tests/unit-pure/web.url-search-params.constructor.js @@ -1,4 +1,4 @@ -import { DESCRIPTORS, BUN } from '../helpers/constants.js'; +import { BUN } from '../helpers/constants.js'; import { createIterable } from '../helpers/helpers.js'; import getPrototypeOf from 'core-js-pure/es/object/get-prototype-of'; @@ -274,18 +274,16 @@ QUnit.test('URLSearchParams#delete', assert => { params.delete('a', undefined); assert.same(String(params), 'b=4'); - if (DESCRIPTORS) { - let url = new URL('http://example.com/?param1¶m2'); - url.searchParams.delete('param1'); - url.searchParams.delete('param2'); - assert.same(String(url), 'http://example.com/', 'url.href does not have ?'); - assert.same(url.search, '', 'url.search does not have ?'); - - url = new URL('http://example.com/?'); - url.searchParams.delete('param1'); - // assert.same(String(url), 'http://example.com/', 'url.href does not have ?'); // Safari bug - assert.same(url.search, '', 'url.search does not have ?'); - } + let url = new URL('http://example.com/?param1¶m2'); + url.searchParams.delete('param1'); + url.searchParams.delete('param2'); + assert.same(String(url), 'http://example.com/', 'url.href does not have ?'); + assert.same(url.search, '', 'url.search does not have ?'); + + url = new URL('http://example.com/?'); + url.searchParams.delete('param1'); + // assert.same(String(url), 'http://example.com/', 'url.href does not have ?'); // Safari bug + assert.same(url.search, '', 'url.search does not have ?'); assert.throws(() => { return new URLSearchParams('').delete(); @@ -550,12 +548,10 @@ QUnit.test('URLSearchParams#sort', assert => { }); } - if (DESCRIPTORS) { - const url = new URL('http://example.com/?'); - url.searchParams.sort(); - assert.same(url.href, 'http://example.com/', 'Sorting non-existent params removes ? from URL'); - assert.same(url.search, '', 'Sorting non-existent params removes ? from URL'); - } + const url = new URL('http://example.com/?'); + url.searchParams.sort(); + assert.same(url.href, 'http://example.com/', 'Sorting non-existent params removes ? from URL'); + assert.same(url.search, '', 'Sorting non-existent params removes ? from URL'); }); QUnit.test('URLSearchParams#toString', assert => { @@ -676,16 +672,14 @@ QUnit.test('URLSearchParams#forEach', assert => { }); // fails in Chrome 66- - if (DESCRIPTORS) { - const url = new URL('http://a.b/c?a=1&b=2&c=3&d=4'); - params = url.searchParams; - result = ''; - params.forEach((val, key) => { - url.search = 'x=1&y=2&z=3'; - result += key + val; - }); - assert.same(result, 'a1y2z3'); - } + const url = new URL('http://a.b/c?a=1&b=2&c=3&d=4'); + params = url.searchParams; + result = ''; + params.forEach((val, key) => { + url.search = 'x=1&y=2&z=3'; + result += key + val; + }); + assert.same(result, 'a1y2z3'); // fails in Chrome 66- params = new URLSearchParams('a=1&b=2&c=3'); @@ -719,17 +713,15 @@ QUnit.test('URLSearchParams#entries', assert => { assert.true(new URL('http://a.b/c').searchParams.entries().next().done, 'should be finished'); // fails in Chrome 66- - if (DESCRIPTORS) { - const url = new URL('http://a.b/c?a=1&b=2&c=3&d=4'); - iterator = url.searchParams.entries(); - result = ''; - while (!(entry = iterator.next()).done) { - const [key, value] = entry.value; - url.search = 'x=1&y=2&z=3'; - result += key + value; - } - assert.same(result, 'a1y2z3'); + const url = new URL('http://a.b/c?a=1&b=2&c=3&d=4'); + iterator = url.searchParams.entries(); + result = ''; + while (!(entry = iterator.next()).done) { + const [key, value] = entry.value; + url.search = 'x=1&y=2&z=3'; + result += key + value; } + assert.same(result, 'a1y2z3'); // fails in Chrome 66- params = new URLSearchParams('a=1&b=2&c=3'); @@ -742,7 +734,7 @@ QUnit.test('URLSearchParams#entries', assert => { } assert.same(result, 'a1c3'); - if (DESCRIPTORS) assert.true(getOwnPropertyDescriptor(getPrototypeOf(new URLSearchParams().entries()), 'next').enumerable, 'enumerable .next'); + assert.true(getOwnPropertyDescriptor(getPrototypeOf(new URLSearchParams().entries()), 'next').enumerable, 'enumerable .next'); }); QUnit.test('URLSearchParams#keys', assert => { @@ -762,17 +754,15 @@ QUnit.test('URLSearchParams#keys', assert => { assert.true(new URL('http://a.b/c').searchParams.keys().next().done, 'should be finished'); // fails in Chrome 66- - if (DESCRIPTORS) { - const url = new URL('http://a.b/c?a=1&b=2&c=3&d=4'); - iterator = url.searchParams.keys(); - result = ''; - while (!(entry = iterator.next()).done) { - const key = entry.value; - url.search = 'x=1&y=2&z=3'; - result += key; - } - assert.same(result, 'ayz'); + const url = new URL('http://a.b/c?a=1&b=2&c=3&d=4'); + iterator = url.searchParams.keys(); + result = ''; + while (!(entry = iterator.next()).done) { + const key = entry.value; + url.search = 'x=1&y=2&z=3'; + result += key; } + assert.same(result, 'ayz'); // fails in Chrome 66- const params = new URLSearchParams('a=1&b=2&c=3'); @@ -785,7 +775,7 @@ QUnit.test('URLSearchParams#keys', assert => { } assert.same(result, 'ac'); - if (DESCRIPTORS) assert.true(getOwnPropertyDescriptor(getPrototypeOf(new URLSearchParams().keys()), 'next').enumerable, 'enumerable .next'); + assert.true(getOwnPropertyDescriptor(getPrototypeOf(new URLSearchParams().keys()), 'next').enumerable, 'enumerable .next'); }); QUnit.test('URLSearchParams#values', assert => { @@ -805,17 +795,15 @@ QUnit.test('URLSearchParams#values', assert => { assert.true(new URL('http://a.b/c').searchParams.values().next().done, 'should be finished'); // fails in Chrome 66- - if (DESCRIPTORS) { - const url = new URL('http://a.b/c?a=a&b=b&c=c&d=d'); - iterator = url.searchParams.keys(); - result = ''; - while (!(entry = iterator.next()).done) { - const { value } = entry; - url.search = 'x=x&y=y&z=z'; - result += value; - } - assert.same(result, 'ayz'); + const url = new URL('http://a.b/c?a=a&b=b&c=c&d=d'); + iterator = url.searchParams.keys(); + result = ''; + while (!(entry = iterator.next()).done) { + const { value } = entry; + url.search = 'x=x&y=y&z=z'; + result += value; } + assert.same(result, 'ayz'); // fails in Chrome 66- const params = new URLSearchParams('a=1&b=2&c=3'); @@ -828,7 +816,7 @@ QUnit.test('URLSearchParams#values', assert => { } assert.same(result, '13'); - if (DESCRIPTORS) assert.true(getOwnPropertyDescriptor(getPrototypeOf(new URLSearchParams().values()), 'next').enumerable, 'enumerable .next'); + assert.true(getOwnPropertyDescriptor(getPrototypeOf(new URLSearchParams().values()), 'next').enumerable, 'enumerable .next'); }); QUnit.test('URLSearchParams#@@iterator', assert => { @@ -854,17 +842,15 @@ QUnit.test('URLSearchParams#@@iterator', assert => { assert.true(new URL('http://a.b/c').searchParams[Symbol.iterator]().next().done, 'should be finished'); // fails in Chrome 66- - if (DESCRIPTORS) { - const url = new URL('http://a.b/c?a=1&b=2&c=3&d=4'); - iterator = url.searchParams[Symbol.iterator](); - result = ''; - while (!(entry = iterator.next()).done) { - const [key, value] = entry.value; - url.search = 'x=1&y=2&z=3'; - result += key + value; - } - assert.same(result, 'a1y2z3'); + const url = new URL('http://a.b/c?a=1&b=2&c=3&d=4'); + iterator = url.searchParams[Symbol.iterator](); + result = ''; + while (!(entry = iterator.next()).done) { + const [key, value] = entry.value; + url.search = 'x=1&y=2&z=3'; + result += key + value; } + assert.same(result, 'a1y2z3'); // fails in Chrome 66- params = new URLSearchParams('a=1&b=2&c=3'); @@ -877,7 +863,7 @@ QUnit.test('URLSearchParams#@@iterator', assert => { } assert.same(result, 'a1c3'); - if (DESCRIPTORS) assert.true(getOwnPropertyDescriptor(getPrototypeOf(new URLSearchParams()[Symbol.iterator]()), 'next').enumerable, 'enumerable .next'); + assert.true(getOwnPropertyDescriptor(getPrototypeOf(new URLSearchParams()[Symbol.iterator]()), 'next').enumerable, 'enumerable .next'); }); QUnit.test('URLSearchParams#size', assert => { @@ -885,15 +871,13 @@ QUnit.test('URLSearchParams#size', assert => { assert.true('size' in params); assert.same(params.size, 3); - if (DESCRIPTORS) { - assert.true('size' in URLSearchParams.prototype); + assert.true('size' in URLSearchParams.prototype); - const { enumerable, configurable, get } = getOwnPropertyDescriptor(URLSearchParams.prototype, 'size'); + const { enumerable, configurable, get } = getOwnPropertyDescriptor(URLSearchParams.prototype, 'size'); - assert.true(enumerable, 'enumerable'); - // https://github.com/oven-sh/bun/issues/9251 - if (!BUN) assert.true(configurable, 'configurable'); + assert.true(enumerable, 'enumerable'); + // https://github.com/oven-sh/bun/issues/9251 + if (!BUN) assert.true(configurable, 'configurable'); - assert.throws(() => get.call([])); - } + assert.throws(() => get.call([])); }); diff --git a/tests/unit-pure/web.url.constructor.js b/tests/unit-pure/web.url.constructor.js index 19d66af2ca6d..eb6a89637ac8 100644 --- a/tests/unit-pure/web.url.constructor.js +++ b/tests/unit-pure/web.url.constructor.js @@ -1,5 +1,5 @@ /* eslint-disable es/no-object-getownpropertydescriptor, unicorn/relative-url-style -- required for testing */ -import { DESCRIPTORS, NODE } from '../helpers/constants.js'; +import { NODE } from '../helpers/constants.js'; import urlTestData from '../wpt-url-resources/urltestdata.js'; import settersTestData from '../wpt-url-resources/setters.js'; import toASCIITestData from '../wpt-url-resources/toascii.js'; @@ -59,89 +59,83 @@ QUnit.test('URL constructor', assert => { QUnit.test('URL#href', assert => { let url = new URL('http://zloirock.ru/'); - if (DESCRIPTORS) { - assert.false(hasOwnProperty.call(url, 'href')); - const descriptor = Object.getOwnPropertyDescriptor(URL.prototype, 'href'); - assert.true(descriptor.enumerable); - assert.true(descriptor.configurable); - assert.same(typeof descriptor.get, 'function'); - assert.same(typeof descriptor.set, 'function'); - } + assert.false(hasOwnProperty.call(url, 'href')); + const descriptor = Object.getOwnPropertyDescriptor(URL.prototype, 'href'); + assert.true(descriptor.enumerable); + assert.true(descriptor.configurable); + assert.same(typeof descriptor.get, 'function'); + assert.same(typeof descriptor.set, 'function'); assert.same(url.href, 'http://zloirock.ru/'); - if (DESCRIPTORS) { - url.searchParams.append('foo', 'bar'); - assert.same(url.href, 'http://zloirock.ru/?foo=bar'); - - url = new URL('http://zloirock.ru/foo'); - url.href = 'https://測試'; - assert.same(url.href, 'https://xn--g6w251d/', 'unicode parsing'); - assert.same(String(url), 'https://xn--g6w251d/', 'unicode parsing'); - - url = new URL('http://zloirock.ru/foo'); - url.href = 'https://xxпривет.тест'; - assert.same(url.href, 'https://xn--xx-flcmn5bht.xn--e1aybc/', 'unicode parsing'); - assert.same(String(url), 'https://xn--xx-flcmn5bht.xn--e1aybc/', 'unicode parsing'); - - url = new URL('http://zloirock.ru/foo'); - url.href = 'https://xxПРИВЕТ.тест'; - assert.same(url.href, 'https://xn--xx-flcmn5bht.xn--e1aybc/', 'unicode parsing'); - assert.same(String(url), 'https://xn--xx-flcmn5bht.xn--e1aybc/', 'unicode parsing'); - - url = new URL('http://zloirock.ru/'); - url.href = 'http://0300.168.0xF0'; - assert.same(url.href, 'http://192.168.0.240/'); - assert.same(String(url), 'http://192.168.0.240/'); - - url = new URL('http://zloirock.ru/'); - url.href = 'http://[20:0:0:1:0:0:0:ff]'; - assert.same(url.href, 'http://[20:0:0:1::ff]/'); - assert.same(String(url), 'http://[20:0:0:1::ff]/'); - - // url = new URL('http://zloirock.ru/'); - // url.href = 'http://257.168.0xF0'; // TypeError and Safari - // assert.same(url.href, 'http://257.168.0xf0/', 'incorrect IPv4 parsed as host'); // `F` instead of `f` in Chrome - // assert.same(String(url), 'http://257.168.0xf0/', 'incorrect IPv4 parsed as host'); // `F` instead of `f` in Chrome - - url = new URL('http://zloirock.ru/'); - url.href = 'http://0300.168.0xG0'; - assert.same(url.href, 'http://0300.168.0xg0/', 'incorrect IPv4 parsed as host'); - assert.same(String(url), 'http://0300.168.0xg0/', 'incorrect IPv4 parsed as host'); - - url = new URL('http://192.168.0.240/'); - url.href = 'file:///var/log/system.log'; - assert.same(url.href, 'file:///var/log/system.log', 'file -> ip'); - assert.same(String(url), 'file:///var/log/system.log', 'file -> ip'); - - url = new URL('file:///var/log/system.log'); - url.href = 'http://0300.168.0xF0'; - // Node 19.7 - // https://github.com/nodejs/node/issues/46755 - // assert.same(url.href, 'http://192.168.0.240/', 'file -> http'); - // assert.same(String(url), 'http://192.168.0.240/', 'file -> http'); - - // assert.throws(() => new URL('http://zloirock.ru/').href = undefined, 'incorrect URL'); // no error in Chrome - // assert.throws(() => new URL('http://zloirock.ru/').href = '', 'incorrect URL'); // no error in Chrome - // assert.throws(() => new URL('http://zloirock.ru/').href = 'abc', 'incorrect URL'); // no error in Chrome - // assert.throws(() => new URL('http://zloirock.ru/').href = '//abc', 'incorrect URL'); // no error in Chrome - // assert.throws(() => new URL('http://zloirock.ru/').href = 'http://[20:0:0:1:0:0:0:ff', 'incorrect IPv6'); // no error in Chrome - // assert.throws(() => new URL('http://zloirock.ru/').href = 'http://[20:0:0:1:0:0:0:fg]', 'incorrect IPv6'); // no error in Chrome - // assert.throws(() => new URL('http://zloirock.ru/').href = 'http://a%b', 'forbidden host code point'); // no error in Chrome and FF - // assert.throws(() => new URL('http://zloirock.ru/').href = '1http://zloirock.ru', 'incorrect scheme'); // no error in Chrome - } + url.searchParams.append('foo', 'bar'); + assert.same(url.href, 'http://zloirock.ru/?foo=bar'); + + url = new URL('http://zloirock.ru/foo'); + url.href = 'https://測試'; + assert.same(url.href, 'https://xn--g6w251d/', 'unicode parsing'); + assert.same(String(url), 'https://xn--g6w251d/', 'unicode parsing'); + + url = new URL('http://zloirock.ru/foo'); + url.href = 'https://xxпривет.тест'; + assert.same(url.href, 'https://xn--xx-flcmn5bht.xn--e1aybc/', 'unicode parsing'); + assert.same(String(url), 'https://xn--xx-flcmn5bht.xn--e1aybc/', 'unicode parsing'); + + url = new URL('http://zloirock.ru/foo'); + url.href = 'https://xxПРИВЕТ.тест'; + assert.same(url.href, 'https://xn--xx-flcmn5bht.xn--e1aybc/', 'unicode parsing'); + assert.same(String(url), 'https://xn--xx-flcmn5bht.xn--e1aybc/', 'unicode parsing'); + + url = new URL('http://zloirock.ru/'); + url.href = 'http://0300.168.0xF0'; + assert.same(url.href, 'http://192.168.0.240/'); + assert.same(String(url), 'http://192.168.0.240/'); + + url = new URL('http://zloirock.ru/'); + url.href = 'http://[20:0:0:1:0:0:0:ff]'; + assert.same(url.href, 'http://[20:0:0:1::ff]/'); + assert.same(String(url), 'http://[20:0:0:1::ff]/'); + + // url = new URL('http://zloirock.ru/'); + // url.href = 'http://257.168.0xF0'; // TypeError and Safari + // assert.same(url.href, 'http://257.168.0xf0/', 'incorrect IPv4 parsed as host'); // `F` instead of `f` in Chrome + // assert.same(String(url), 'http://257.168.0xf0/', 'incorrect IPv4 parsed as host'); // `F` instead of `f` in Chrome + + url = new URL('http://zloirock.ru/'); + url.href = 'http://0300.168.0xG0'; + assert.same(url.href, 'http://0300.168.0xg0/', 'incorrect IPv4 parsed as host'); + assert.same(String(url), 'http://0300.168.0xg0/', 'incorrect IPv4 parsed as host'); + + url = new URL('http://192.168.0.240/'); + url.href = 'file:///var/log/system.log'; + assert.same(url.href, 'file:///var/log/system.log', 'file -> ip'); + assert.same(String(url), 'file:///var/log/system.log', 'file -> ip'); + + url = new URL('file:///var/log/system.log'); + url.href = 'http://0300.168.0xF0'; + // Node 19.7 + // https://github.com/nodejs/node/issues/46755 + // assert.same(url.href, 'http://192.168.0.240/', 'file -> http'); + // assert.same(String(url), 'http://192.168.0.240/', 'file -> http'); + + // assert.throws(() => new URL('http://zloirock.ru/').href = undefined, 'incorrect URL'); // no error in Chrome + // assert.throws(() => new URL('http://zloirock.ru/').href = '', 'incorrect URL'); // no error in Chrome + // assert.throws(() => new URL('http://zloirock.ru/').href = 'abc', 'incorrect URL'); // no error in Chrome + // assert.throws(() => new URL('http://zloirock.ru/').href = '//abc', 'incorrect URL'); // no error in Chrome + // assert.throws(() => new URL('http://zloirock.ru/').href = 'http://[20:0:0:1:0:0:0:ff', 'incorrect IPv6'); // no error in Chrome + // assert.throws(() => new URL('http://zloirock.ru/').href = 'http://[20:0:0:1:0:0:0:fg]', 'incorrect IPv6'); // no error in Chrome + // assert.throws(() => new URL('http://zloirock.ru/').href = 'http://a%b', 'forbidden host code point'); // no error in Chrome and FF + // assert.throws(() => new URL('http://zloirock.ru/').href = '1http://zloirock.ru', 'incorrect scheme'); // no error in Chrome }); QUnit.test('URL#origin', assert => { const url = new URL('http://es6.zloirock.ru/tests.html'); - if (DESCRIPTORS) { - assert.false(hasOwnProperty.call(url, 'origin')); - const descriptor = Object.getOwnPropertyDescriptor(URL.prototype, 'origin'); - assert.true(descriptor.enumerable); - assert.true(descriptor.configurable); - assert.same(typeof descriptor.get, 'function'); - } + assert.false(hasOwnProperty.call(url, 'origin')); + const descriptor = Object.getOwnPropertyDescriptor(URL.prototype, 'origin'); + assert.true(descriptor.enumerable); + assert.true(descriptor.configurable); + assert.same(typeof descriptor.get, 'function'); assert.same(url.origin, 'http://es6.zloirock.ru'); @@ -151,74 +145,64 @@ QUnit.test('URL#origin', assert => { QUnit.test('URL#protocol', assert => { let url = new URL('http://zloirock.ru/'); - if (DESCRIPTORS) { - assert.false(hasOwnProperty.call(url, 'protocol')); - const descriptor = Object.getOwnPropertyDescriptor(URL.prototype, 'protocol'); - assert.true(descriptor.enumerable); - assert.true(descriptor.configurable); - assert.same(typeof descriptor.get, 'function'); - assert.same(typeof descriptor.set, 'function'); - } + assert.false(hasOwnProperty.call(url, 'protocol')); + const descriptor = Object.getOwnPropertyDescriptor(URL.prototype, 'protocol'); + assert.true(descriptor.enumerable); + assert.true(descriptor.configurable); + assert.same(typeof descriptor.get, 'function'); + assert.same(typeof descriptor.set, 'function'); assert.same(url.protocol, 'http:'); - if (DESCRIPTORS) { - url = new URL('http://zloirock.ru/'); - url.protocol = 'https'; - assert.same(url.protocol, 'https:'); - assert.same(String(url), 'https://zloirock.ru/'); - - // https://nodejs.org/api/url.html#url_special_schemes - // url = new URL('http://zloirock.ru/'); - // url.protocol = 'fish'; - // assert.same(url.protocol, 'http:'); - // assert.same(url.href, 'http://zloirock.ru/'); - // assert.same(String(url), 'http://zloirock.ru/'); - - url = new URL('http://zloirock.ru/'); - url.protocol = '1http'; - assert.same(url.protocol, 'http:'); - assert.same(url.href, 'http://zloirock.ru/', 'incorrect scheme'); - assert.same(String(url), 'http://zloirock.ru/', 'incorrect scheme'); - } + url = new URL('http://zloirock.ru/'); + url.protocol = 'https'; + assert.same(url.protocol, 'https:'); + assert.same(String(url), 'https://zloirock.ru/'); + + // https://nodejs.org/api/url.html#url_special_schemes + // url = new URL('http://zloirock.ru/'); + // url.protocol = 'fish'; + // assert.same(url.protocol, 'http:'); + // assert.same(url.href, 'http://zloirock.ru/'); + // assert.same(String(url), 'http://zloirock.ru/'); + + url = new URL('http://zloirock.ru/'); + url.protocol = '1http'; + assert.same(url.protocol, 'http:'); + assert.same(url.href, 'http://zloirock.ru/', 'incorrect scheme'); + assert.same(String(url), 'http://zloirock.ru/', 'incorrect scheme'); }); QUnit.test('URL#username', assert => { let url = new URL('http://zloirock.ru/'); - if (DESCRIPTORS) { - assert.false(hasOwnProperty.call(url, 'username')); - const descriptor = Object.getOwnPropertyDescriptor(URL.prototype, 'username'); - assert.true(descriptor.enumerable); - assert.true(descriptor.configurable); - assert.same(typeof descriptor.get, 'function'); - assert.same(typeof descriptor.set, 'function'); - } + assert.false(hasOwnProperty.call(url, 'username')); + const descriptor = Object.getOwnPropertyDescriptor(URL.prototype, 'username'); + assert.true(descriptor.enumerable); + assert.true(descriptor.configurable); + assert.same(typeof descriptor.get, 'function'); + assert.same(typeof descriptor.set, 'function'); assert.same(url.username, ''); url = new URL('http://username@zloirock.ru/'); assert.same(url.username, 'username'); - if (DESCRIPTORS) { - url = new URL('http://zloirock.ru/'); - url.username = 'username'; - assert.same(url.username, 'username'); - assert.same(String(url), 'http://username@zloirock.ru/'); - } + url = new URL('http://zloirock.ru/'); + url.username = 'username'; + assert.same(url.username, 'username'); + assert.same(String(url), 'http://username@zloirock.ru/'); }); QUnit.test('URL#password', assert => { let url = new URL('http://zloirock.ru/'); - if (DESCRIPTORS) { - assert.false(hasOwnProperty.call(url, 'password')); - const descriptor = Object.getOwnPropertyDescriptor(URL.prototype, 'password'); - assert.true(descriptor.enumerable); - assert.true(descriptor.configurable); - assert.same(typeof descriptor.get, 'function'); - assert.same(typeof descriptor.set, 'function'); - } + assert.false(hasOwnProperty.call(url, 'password')); + const descriptor = Object.getOwnPropertyDescriptor(URL.prototype, 'password'); + assert.true(descriptor.enumerable); + assert.true(descriptor.configurable); + assert.same(typeof descriptor.get, 'function'); + assert.same(typeof descriptor.set, 'function'); assert.same(url.password, ''); @@ -228,304 +212,276 @@ QUnit.test('URL#password', assert => { // url = new URL('http://:password@zloirock.ru/'); // TypeError in FF // assert.same(url.password, 'password'); - if (DESCRIPTORS) { - url = new URL('http://zloirock.ru/'); - url.username = 'username'; - url.password = 'password'; - assert.same(url.password, 'password'); - assert.same(String(url), 'http://username:password@zloirock.ru/'); - - // url = new URL('http://zloirock.ru/'); - // url.password = 'password'; - // assert.same(url.password, 'password'); // '' in FF - // assert.same(String(url), 'http://:password@zloirock.ru/'); // 'http://zloirock.ru/' in FF - } + url = new URL('http://zloirock.ru/'); + url.username = 'username'; + url.password = 'password'; + assert.same(url.password, 'password'); + assert.same(String(url), 'http://username:password@zloirock.ru/'); + + // url = new URL('http://zloirock.ru/'); + // url.password = 'password'; + // assert.same(url.password, 'password'); // '' in FF + // assert.same(String(url), 'http://:password@zloirock.ru/'); // 'http://zloirock.ru/' in FF }); QUnit.test('URL#host', assert => { let url = new URL('http://zloirock.ru:81/path'); - if (DESCRIPTORS) { - assert.false(hasOwnProperty.call(url, 'host')); - const descriptor = Object.getOwnPropertyDescriptor(URL.prototype, 'host'); - assert.true(descriptor.enumerable); - assert.true(descriptor.configurable); - assert.same(typeof descriptor.get, 'function'); - assert.same(typeof descriptor.set, 'function'); - } + assert.false(hasOwnProperty.call(url, 'host')); + const descriptor = Object.getOwnPropertyDescriptor(URL.prototype, 'host'); + assert.true(descriptor.enumerable); + assert.true(descriptor.configurable); + assert.same(typeof descriptor.get, 'function'); + assert.same(typeof descriptor.set, 'function'); assert.same(url.host, 'zloirock.ru:81'); - if (DESCRIPTORS) { - url = new URL('http://zloirock.ru:81/path'); - url.host = 'example.com:82'; - assert.same(url.host, 'example.com:82'); - assert.same(String(url), 'http://example.com:82/path'); - - // url = new URL('http://zloirock.ru:81/path'); - // url.host = 'other?domain.com'; - // assert.same(String(url), 'http://other:81/path'); // 'http://other/?domain.com/path' in Safari - - url = new URL('https://www.mydomain.com:8080/path/'); - url.host = 'www.otherdomain.com:80'; - assert.same(url.href, 'https://www.otherdomain.com:80/path/', 'set default port for another protocol'); - - // url = new URL('https://www.mydomain.com:8080/path/'); - // url.host = 'www.otherdomain.com:443'; - // assert.same(url.href, 'https://www.otherdomain.com/path/', 'set default port'); - - url = new URL('http://zloirock.ru/foo'); - url.host = '測試'; - assert.same(url.host, 'xn--g6w251d', 'unicode parsing'); - assert.same(String(url), 'http://xn--g6w251d/foo', 'unicode parsing'); - - url = new URL('http://zloirock.ru/foo'); - url.host = 'xxпривет.тест'; - assert.same(url.host, 'xn--xx-flcmn5bht.xn--e1aybc', 'unicode parsing'); - assert.same(String(url), 'http://xn--xx-flcmn5bht.xn--e1aybc/foo', 'unicode parsing'); - - url = new URL('http://zloirock.ru/foo'); - url.host = 'xxПРИВЕТ.тест'; - assert.same(url.host, 'xn--xx-flcmn5bht.xn--e1aybc', 'unicode parsing'); - assert.same(String(url), 'http://xn--xx-flcmn5bht.xn--e1aybc/foo', 'unicode parsing'); - - url = new URL('http://zloirock.ru/foo'); - url.host = '0300.168.0xF0'; - assert.same(url.host, '192.168.0.240'); - assert.same(String(url), 'http://192.168.0.240/foo'); - - // url = new URL('http://zloirock.ru/foo'); - // url.host = '[20:0:0:1:0:0:0:ff]'; - // assert.same(url.host, '[20:0:0:1::ff]'); // ':0' in Chrome, 'zloirock.ru' in Safari - // assert.same(String(url), 'http://[20:0:0:1::ff]/foo'); // 'http://[20:0/foo' in Chrome, 'http://zloirock.ru/foo' in Safari - - // url = new URL('file:///var/log/system.log'); - // url.host = 'nnsc.nsf.net'; // does not work in FF - // assert.same(url.hostname, 'nnsc.nsf.net', 'file'); - // assert.same(String(url), 'file://nnsc.nsf.net/var/log/system.log', 'file'); - - // url = new URL('http://zloirock.ru/'); - // url.host = '[20:0:0:1:0:0:0:ff'; - // assert.same(url.host, 'zloirock.ru', 'incorrect IPv6'); // ':0' in Chrome - // assert.same(String(url), 'http://zloirock.ru/', 'incorrect IPv6'); // 'http://[20:0/' in Chrome - - // url = new URL('http://zloirock.ru/'); - // url.host = '[20:0:0:1:0:0:0:fg]'; - // assert.same(url.host, 'zloirock.ru', 'incorrect IPv6'); // ':0' in Chrome - // assert.same(String(url), 'http://zloirock.ru/', 'incorrect IPv6'); // 'http://[20:0/' in Chrome - - // url = new URL('http://zloirock.ru/'); - // url.host = 'a%b'; - // assert.same(url.host, 'zloirock.ru', 'forbidden host code point'); // '' in Chrome, 'a%b' in FF - // assert.same(String(url), 'http://zloirock.ru/', 'forbidden host code point'); // 'http://a%25b/' in Chrome, 'http://a%b/' in FF - } + url = new URL('http://zloirock.ru:81/path'); + url.host = 'example.com:82'; + assert.same(url.host, 'example.com:82'); + assert.same(String(url), 'http://example.com:82/path'); + + // url = new URL('http://zloirock.ru:81/path'); + // url.host = 'other?domain.com'; + // assert.same(String(url), 'http://other:81/path'); // 'http://other/?domain.com/path' in Safari + + url = new URL('https://www.mydomain.com:8080/path/'); + url.host = 'www.otherdomain.com:80'; + assert.same(url.href, 'https://www.otherdomain.com:80/path/', 'set default port for another protocol'); + + // url = new URL('https://www.mydomain.com:8080/path/'); + // url.host = 'www.otherdomain.com:443'; + // assert.same(url.href, 'https://www.otherdomain.com/path/', 'set default port'); + + url = new URL('http://zloirock.ru/foo'); + url.host = '測試'; + assert.same(url.host, 'xn--g6w251d', 'unicode parsing'); + assert.same(String(url), 'http://xn--g6w251d/foo', 'unicode parsing'); + + url = new URL('http://zloirock.ru/foo'); + url.host = 'xxпривет.тест'; + assert.same(url.host, 'xn--xx-flcmn5bht.xn--e1aybc', 'unicode parsing'); + assert.same(String(url), 'http://xn--xx-flcmn5bht.xn--e1aybc/foo', 'unicode parsing'); + + url = new URL('http://zloirock.ru/foo'); + url.host = 'xxПРИВЕТ.тест'; + assert.same(url.host, 'xn--xx-flcmn5bht.xn--e1aybc', 'unicode parsing'); + assert.same(String(url), 'http://xn--xx-flcmn5bht.xn--e1aybc/foo', 'unicode parsing'); + + url = new URL('http://zloirock.ru/foo'); + url.host = '0300.168.0xF0'; + assert.same(url.host, '192.168.0.240'); + assert.same(String(url), 'http://192.168.0.240/foo'); + + // url = new URL('http://zloirock.ru/foo'); + // url.host = '[20:0:0:1:0:0:0:ff]'; + // assert.same(url.host, '[20:0:0:1::ff]'); // ':0' in Chrome, 'zloirock.ru' in Safari + // assert.same(String(url), 'http://[20:0:0:1::ff]/foo'); // 'http://[20:0/foo' in Chrome, 'http://zloirock.ru/foo' in Safari + + // url = new URL('file:///var/log/system.log'); + // url.host = 'nnsc.nsf.net'; // does not work in FF + // assert.same(url.hostname, 'nnsc.nsf.net', 'file'); + // assert.same(String(url), 'file://nnsc.nsf.net/var/log/system.log', 'file'); + + // url = new URL('http://zloirock.ru/'); + // url.host = '[20:0:0:1:0:0:0:ff'; + // assert.same(url.host, 'zloirock.ru', 'incorrect IPv6'); // ':0' in Chrome + // assert.same(String(url), 'http://zloirock.ru/', 'incorrect IPv6'); // 'http://[20:0/' in Chrome + + // url = new URL('http://zloirock.ru/'); + // url.host = '[20:0:0:1:0:0:0:fg]'; + // assert.same(url.host, 'zloirock.ru', 'incorrect IPv6'); // ':0' in Chrome + // assert.same(String(url), 'http://zloirock.ru/', 'incorrect IPv6'); // 'http://[20:0/' in Chrome + + // url = new URL('http://zloirock.ru/'); + // url.host = 'a%b'; + // assert.same(url.host, 'zloirock.ru', 'forbidden host code point'); // '' in Chrome, 'a%b' in FF + // assert.same(String(url), 'http://zloirock.ru/', 'forbidden host code point'); // 'http://a%25b/' in Chrome, 'http://a%b/' in FF }); QUnit.test('URL#hostname', assert => { let url = new URL('http://zloirock.ru:81/'); - if (DESCRIPTORS) { - assert.false(hasOwnProperty.call(url, 'hostname')); - const descriptor = Object.getOwnPropertyDescriptor(URL.prototype, 'hostname'); - assert.true(descriptor.enumerable); - assert.true(descriptor.configurable); - assert.same(typeof descriptor.get, 'function'); - assert.same(typeof descriptor.set, 'function'); - } + assert.false(hasOwnProperty.call(url, 'hostname')); + const descriptor = Object.getOwnPropertyDescriptor(URL.prototype, 'hostname'); + assert.true(descriptor.enumerable); + assert.true(descriptor.configurable); + assert.same(typeof descriptor.get, 'function'); + assert.same(typeof descriptor.set, 'function'); assert.same(url.hostname, 'zloirock.ru'); - if (DESCRIPTORS) { - url = new URL('http://zloirock.ru:81/'); - url.hostname = 'example.com'; - assert.same(url.hostname, 'example.com'); - assert.same(String(url), 'http://example.com:81/'); - - // url = new URL('http://zloirock.ru:81/'); - // url.hostname = 'example.com:82'; - // assert.same(url.hostname, 'example.com'); // '' in Chrome - // assert.same(String(url), 'http://example.com:81/'); // 'http://example.com:82:81/' in Chrome - - url = new URL('http://zloirock.ru/foo'); - url.hostname = '測試'; - assert.same(url.hostname, 'xn--g6w251d', 'unicode parsing'); - assert.same(String(url), 'http://xn--g6w251d/foo', 'unicode parsing'); - - url = new URL('http://zloirock.ru/foo'); - url.hostname = 'xxпривет.тест'; - assert.same(url.hostname, 'xn--xx-flcmn5bht.xn--e1aybc', 'unicode parsing'); - assert.same(String(url), 'http://xn--xx-flcmn5bht.xn--e1aybc/foo', 'unicode parsing'); - - url = new URL('http://zloirock.ru/foo'); - url.hostname = 'xxПРИВЕТ.тест'; - assert.same(url.hostname, 'xn--xx-flcmn5bht.xn--e1aybc', 'unicode parsing'); - assert.same(String(url), 'http://xn--xx-flcmn5bht.xn--e1aybc/foo', 'unicode parsing'); - - url = new URL('http://zloirock.ru/foo'); - url.hostname = '0300.168.0xF0'; - assert.same(url.hostname, '192.168.0.240'); - assert.same(String(url), 'http://192.168.0.240/foo'); - - // url = new URL('http://zloirock.ru/foo'); - // url.hostname = '[20:0:0:1:0:0:0:ff]'; - // assert.same(url.hostname, '[20:0:0:1::ff]'); // 'zloirock.ru' in Safari - // assert.same(String(url), 'http://[20:0:0:1::ff]/foo'); // 'http://zloirock.ru/foo' in Safari - - // url = new URL('file:///var/log/system.log'); - // url.hostname = 'nnsc.nsf.net'; // does not work in FF - // assert.same(url.hostname, 'nnsc.nsf.net', 'file'); - // assert.same(String(url), 'file://nnsc.nsf.net/var/log/system.log', 'file'); - - // url = new URL('http://zloirock.ru/'); - // url.hostname = '[20:0:0:1:0:0:0:ff'; - // assert.same(url.hostname, 'zloirock.ru', 'incorrect IPv6'); // '' in Chrome - // assert.same(String(url), 'http://zloirock.ru/', 'incorrect IPv6'); // 'http://[20:0:0:1:0:0:0:ff' in Chrome - - // url = new URL('http://zloirock.ru/'); - // url.hostname = '[20:0:0:1:0:0:0:fg]'; - // assert.same(url.hostname, 'zloirock.ru', 'incorrect IPv6'); // '' in Chrome - // assert.same(String(url), 'http://zloirock.ru/', 'incorrect IPv6'); // 'http://[20:0:0:1:0:0:0:ff/' in Chrome - - // url = new URL('http://zloirock.ru/'); - // url.hostname = 'a%b'; - // assert.same(url.hostname, 'zloirock.ru', 'forbidden host code point'); // '' in Chrome, 'a%b' in FF - // assert.same(String(url), 'http://zloirock.ru/', 'forbidden host code point'); // 'http://a%25b/' in Chrome, 'http://a%b/' in FF - } + url = new URL('http://zloirock.ru:81/'); + url.hostname = 'example.com'; + assert.same(url.hostname, 'example.com'); + assert.same(String(url), 'http://example.com:81/'); + + // url = new URL('http://zloirock.ru:81/'); + // url.hostname = 'example.com:82'; + // assert.same(url.hostname, 'example.com'); // '' in Chrome + // assert.same(String(url), 'http://example.com:81/'); // 'http://example.com:82:81/' in Chrome + + url = new URL('http://zloirock.ru/foo'); + url.hostname = '測試'; + assert.same(url.hostname, 'xn--g6w251d', 'unicode parsing'); + assert.same(String(url), 'http://xn--g6w251d/foo', 'unicode parsing'); + + url = new URL('http://zloirock.ru/foo'); + url.hostname = 'xxпривет.тест'; + assert.same(url.hostname, 'xn--xx-flcmn5bht.xn--e1aybc', 'unicode parsing'); + assert.same(String(url), 'http://xn--xx-flcmn5bht.xn--e1aybc/foo', 'unicode parsing'); + + url = new URL('http://zloirock.ru/foo'); + url.hostname = 'xxПРИВЕТ.тест'; + assert.same(url.hostname, 'xn--xx-flcmn5bht.xn--e1aybc', 'unicode parsing'); + assert.same(String(url), 'http://xn--xx-flcmn5bht.xn--e1aybc/foo', 'unicode parsing'); + + url = new URL('http://zloirock.ru/foo'); + url.hostname = '0300.168.0xF0'; + assert.same(url.hostname, '192.168.0.240'); + assert.same(String(url), 'http://192.168.0.240/foo'); + + // url = new URL('http://zloirock.ru/foo'); + // url.hostname = '[20:0:0:1:0:0:0:ff]'; + // assert.same(url.hostname, '[20:0:0:1::ff]'); // 'zloirock.ru' in Safari + // assert.same(String(url), 'http://[20:0:0:1::ff]/foo'); // 'http://zloirock.ru/foo' in Safari + + // url = new URL('file:///var/log/system.log'); + // url.hostname = 'nnsc.nsf.net'; // does not work in FF + // assert.same(url.hostname, 'nnsc.nsf.net', 'file'); + // assert.same(String(url), 'file://nnsc.nsf.net/var/log/system.log', 'file'); + + // url = new URL('http://zloirock.ru/'); + // url.hostname = '[20:0:0:1:0:0:0:ff'; + // assert.same(url.hostname, 'zloirock.ru', 'incorrect IPv6'); // '' in Chrome + // assert.same(String(url), 'http://zloirock.ru/', 'incorrect IPv6'); // 'http://[20:0:0:1:0:0:0:ff' in Chrome + + // url = new URL('http://zloirock.ru/'); + // url.hostname = '[20:0:0:1:0:0:0:fg]'; + // assert.same(url.hostname, 'zloirock.ru', 'incorrect IPv6'); // '' in Chrome + // assert.same(String(url), 'http://zloirock.ru/', 'incorrect IPv6'); // 'http://[20:0:0:1:0:0:0:ff/' in Chrome + + // url = new URL('http://zloirock.ru/'); + // url.hostname = 'a%b'; + // assert.same(url.hostname, 'zloirock.ru', 'forbidden host code point'); // '' in Chrome, 'a%b' in FF + // assert.same(String(url), 'http://zloirock.ru/', 'forbidden host code point'); // 'http://a%25b/' in Chrome, 'http://a%b/' in FF }); QUnit.test('URL#port', assert => { let url = new URL('http://zloirock.ru:1337/'); - if (DESCRIPTORS) { - assert.false(hasOwnProperty.call(url, 'port')); - const descriptor = Object.getOwnPropertyDescriptor(URL.prototype, 'port'); - assert.true(descriptor.enumerable); - assert.true(descriptor.configurable); - assert.same(typeof descriptor.get, 'function'); - assert.same(typeof descriptor.set, 'function'); - } + assert.false(hasOwnProperty.call(url, 'port')); + const descriptor = Object.getOwnPropertyDescriptor(URL.prototype, 'port'); + assert.true(descriptor.enumerable); + assert.true(descriptor.configurable); + assert.same(typeof descriptor.get, 'function'); + assert.same(typeof descriptor.set, 'function'); assert.same(url.port, '1337'); - if (DESCRIPTORS) { - url = new URL('http://zloirock.ru/'); - url.port = 80; - assert.same(url.port, ''); - assert.same(String(url), 'http://zloirock.ru/'); - url.port = 1337; - assert.same(url.port, '1337'); - assert.same(String(url), 'http://zloirock.ru:1337/'); - // url.port = 'abcd'; - // assert.same(url.port, '1337'); // '0' in Chrome - // assert.same(String(url), 'http://zloirock.ru:1337/'); // 'http://zloirock.ru:0/' in Chrome - // url.port = '5678abcd'; - // assert.same(url.port, '5678'); // '1337' in FF - // assert.same(String(url), 'http://zloirock.ru:5678/'); // 'http://zloirock.ru:1337/"' in FF - url.port = 1234.5678; - assert.same(url.port, '1234'); - assert.same(String(url), 'http://zloirock.ru:1234/'); - // url.port = 1e10; - // assert.same(url.port, '1234'); // '0' in Chrome - // assert.same(String(url), 'http://zloirock.ru:1234/'); // 'http://zloirock.ru:0/' in Chrome - } + url = new URL('http://zloirock.ru/'); + url.port = 80; + assert.same(url.port, ''); + assert.same(String(url), 'http://zloirock.ru/'); + url.port = 1337; + assert.same(url.port, '1337'); + assert.same(String(url), 'http://zloirock.ru:1337/'); + // url.port = 'abcd'; + // assert.same(url.port, '1337'); // '0' in Chrome + // assert.same(String(url), 'http://zloirock.ru:1337/'); // 'http://zloirock.ru:0/' in Chrome + // url.port = '5678abcd'; + // assert.same(url.port, '5678'); // '1337' in FF + // assert.same(String(url), 'http://zloirock.ru:5678/'); // 'http://zloirock.ru:1337/"' in FF + url.port = 1234.5678; + assert.same(url.port, '1234'); + assert.same(String(url), 'http://zloirock.ru:1234/'); + // url.port = 1e10; + // assert.same(url.port, '1234'); // '0' in Chrome + // assert.same(String(url), 'http://zloirock.ru:1234/'); // 'http://zloirock.ru:0/' in Chrome }); QUnit.test('URL#pathname', assert => { let url = new URL('http://zloirock.ru/foo/bar'); - if (DESCRIPTORS) { - assert.false(hasOwnProperty.call(url, 'pathname')); - const descriptor = Object.getOwnPropertyDescriptor(URL.prototype, 'pathname'); - assert.true(descriptor.enumerable); - assert.true(descriptor.configurable); - assert.same(typeof descriptor.get, 'function'); - assert.same(typeof descriptor.set, 'function'); - } + assert.false(hasOwnProperty.call(url, 'pathname')); + const descriptor = Object.getOwnPropertyDescriptor(URL.prototype, 'pathname'); + assert.true(descriptor.enumerable); + assert.true(descriptor.configurable); + assert.same(typeof descriptor.get, 'function'); + assert.same(typeof descriptor.set, 'function'); assert.same(url.pathname, '/foo/bar'); - if (DESCRIPTORS) { - url = new URL('http://zloirock.ru/'); - url.pathname = 'bar/baz'; - assert.same(url.pathname, '/bar/baz'); - assert.same(String(url), 'http://zloirock.ru/bar/baz'); - } + url = new URL('http://zloirock.ru/'); + url.pathname = 'bar/baz'; + assert.same(url.pathname, '/bar/baz'); + assert.same(String(url), 'http://zloirock.ru/bar/baz'); }); QUnit.test('URL#search', assert => { let url = new URL('http://zloirock.ru/'); - if (DESCRIPTORS) { - assert.false(hasOwnProperty.call(url, 'search')); - const descriptor = Object.getOwnPropertyDescriptor(URL.prototype, 'search'); - assert.true(descriptor.enumerable); - assert.true(descriptor.configurable); - assert.same(typeof descriptor.get, 'function'); - assert.same(typeof descriptor.set, 'function'); - } + assert.false(hasOwnProperty.call(url, 'search')); + const descriptor = Object.getOwnPropertyDescriptor(URL.prototype, 'search'); + assert.true(descriptor.enumerable); + assert.true(descriptor.configurable); + assert.same(typeof descriptor.get, 'function'); + assert.same(typeof descriptor.set, 'function'); assert.same(url.search, ''); url = new URL('http://zloirock.ru/?foo=bar'); assert.same(url.search, '?foo=bar'); - if (DESCRIPTORS) { - url = new URL('http://zloirock.ru/?'); - assert.same(url.search, ''); - assert.same(String(url), 'http://zloirock.ru/?'); - url.search = 'foo=bar'; - assert.same(url.search, '?foo=bar'); - assert.same(String(url), 'http://zloirock.ru/?foo=bar'); - url.search = '?bar=baz'; - assert.same(url.search, '?bar=baz'); - assert.same(String(url), 'http://zloirock.ru/?bar=baz'); - url.search = ''; - assert.same(url.search, ''); - assert.same(String(url), 'http://zloirock.ru/'); - } + url = new URL('http://zloirock.ru/?'); + assert.same(url.search, ''); + assert.same(String(url), 'http://zloirock.ru/?'); + url.search = 'foo=bar'; + assert.same(url.search, '?foo=bar'); + assert.same(String(url), 'http://zloirock.ru/?foo=bar'); + url.search = '?bar=baz'; + assert.same(url.search, '?bar=baz'); + assert.same(String(url), 'http://zloirock.ru/?bar=baz'); + url.search = ''; + assert.same(url.search, ''); + assert.same(String(url), 'http://zloirock.ru/'); }); QUnit.test('URL#searchParams', assert => { let url = new URL('http://zloirock.ru/?foo=bar&bar=baz'); - if (DESCRIPTORS) { - assert.false(hasOwnProperty.call(url, 'searchParams')); - const descriptor = Object.getOwnPropertyDescriptor(URL.prototype, 'searchParams'); - assert.true(descriptor.enumerable); - assert.true(descriptor.configurable); - assert.same(typeof descriptor.get, 'function'); - } + assert.false(hasOwnProperty.call(url, 'searchParams')); + const descriptor = Object.getOwnPropertyDescriptor(URL.prototype, 'searchParams'); + assert.true(descriptor.enumerable); + assert.true(descriptor.configurable); + assert.same(typeof descriptor.get, 'function'); assert.true(url.searchParams instanceof URLSearchParams); assert.same(url.searchParams.get('foo'), 'bar'); assert.same(url.searchParams.get('bar'), 'baz'); - if (DESCRIPTORS) { - url = new URL('http://zloirock.ru/'); - url.searchParams.append('foo', 'bar'); - assert.same(String(url), 'http://zloirock.ru/?foo=bar'); + url = new URL('http://zloirock.ru/'); + url.searchParams.append('foo', 'bar'); + assert.same(String(url), 'http://zloirock.ru/?foo=bar'); - url = new URL('http://zloirock.ru/'); - url.search = 'foo=bar'; - assert.same(url.searchParams.get('foo'), 'bar'); + url = new URL('http://zloirock.ru/'); + url.search = 'foo=bar'; + assert.same(url.searchParams.get('foo'), 'bar'); - url = new URL('http://zloirock.ru/?foo=bar&bar=baz'); - url.search = ''; - assert.false(url.searchParams.has('foo')); - } + url = new URL('http://zloirock.ru/?foo=bar&bar=baz'); + url.search = ''; + assert.false(url.searchParams.has('foo')); }); QUnit.test('URL#hash', assert => { let url = new URL('http://zloirock.ru/'); - if (DESCRIPTORS) { - assert.false(hasOwnProperty.call(url, 'hash')); - const descriptor = Object.getOwnPropertyDescriptor(URL.prototype, 'hash'); - assert.true(descriptor.enumerable); - assert.true(descriptor.configurable); - assert.same(typeof descriptor.get, 'function'); - assert.same(typeof descriptor.set, 'function'); - } + assert.false(hasOwnProperty.call(url, 'hash')); + const descriptor = Object.getOwnPropertyDescriptor(URL.prototype, 'hash'); + assert.true(descriptor.enumerable); + assert.true(descriptor.configurable); + assert.same(typeof descriptor.get, 'function'); + assert.same(typeof descriptor.set, 'function'); assert.same(url.hash, ''); @@ -536,32 +492,30 @@ QUnit.test('URL#hash', assert => { assert.same(url.hash, ''); assert.same(String(url), 'http://zloirock.ru/#'); - if (DESCRIPTORS) { - url = new URL('http://zloirock.ru/#'); - url.hash = 'foo'; - assert.same(url.hash, '#foo'); - assert.same(String(url), 'http://zloirock.ru/#foo'); - url.hash = ''; - assert.same(url.hash, ''); - assert.same(String(url), 'http://zloirock.ru/'); - // url.hash = '#'; - // assert.same(url.hash, ''); - // assert.same(String(url), 'http://zloirock.ru/'); // 'http://zloirock.ru/#' in FF - url.hash = '#foo'; - assert.same(url.hash, '#foo'); - assert.same(String(url), 'http://zloirock.ru/#foo'); - url.hash = '#foo#bar'; - assert.same(url.hash, '#foo#bar'); - assert.same(String(url), 'http://zloirock.ru/#foo#bar'); - - url = new URL('http://zloirock.ru/'); - url.hash = 'абa'; - assert.same(url.hash, '#%D0%B0%D0%B1a'); - - // url = new URL('http://zloirock.ru/'); - // url.hash = '\udc01\ud802a'; - // assert.same(url.hash, '#%EF%BF%BD%EF%BF%BDa', 'unmatched surrogates'); - } + url = new URL('http://zloirock.ru/#'); + url.hash = 'foo'; + assert.same(url.hash, '#foo'); + assert.same(String(url), 'http://zloirock.ru/#foo'); + url.hash = ''; + assert.same(url.hash, ''); + assert.same(String(url), 'http://zloirock.ru/'); + // url.hash = '#'; + // assert.same(url.hash, ''); + // assert.same(String(url), 'http://zloirock.ru/'); // 'http://zloirock.ru/#' in FF + url.hash = '#foo'; + assert.same(url.hash, '#foo'); + assert.same(String(url), 'http://zloirock.ru/#foo'); + url.hash = '#foo#bar'; + assert.same(url.hash, '#foo#bar'); + assert.same(String(url), 'http://zloirock.ru/#foo#bar'); + + url = new URL('http://zloirock.ru/'); + url.hash = 'абa'; + assert.same(url.hash, '#%D0%B0%D0%B1a'); + + // url = new URL('http://zloirock.ru/'); + // url.hash = '\udc01\ud802a'; + // assert.same(url.hash, '#%EF%BF%BD%EF%BF%BDa', 'unmatched surrogates'); }); QUnit.test('URL#toJSON', assert => { @@ -573,10 +527,8 @@ QUnit.test('URL#toJSON', assert => { const url = new URL('http://zloirock.ru/'); assert.same(url.toJSON(), 'http://zloirock.ru/'); - if (DESCRIPTORS) { - url.searchParams.append('foo', 'bar'); - assert.same(url.toJSON(), 'http://zloirock.ru/?foo=bar'); - } + url.searchParams.append('foo', 'bar'); + assert.same(url.toJSON(), 'http://zloirock.ru/?foo=bar'); }); QUnit.test('URL#toString', assert => { @@ -588,14 +540,8 @@ QUnit.test('URL#toString', assert => { const url = new URL('http://zloirock.ru/'); assert.same(url.toString(), 'http://zloirock.ru/'); - if (DESCRIPTORS) { - url.searchParams.append('foo', 'bar'); - assert.same(url.toString(), 'http://zloirock.ru/?foo=bar'); - } -}); - -QUnit.test('URL.sham', assert => { - assert.same(URL.sham, DESCRIPTORS ? undefined : true); + url.searchParams.append('foo', 'bar'); + assert.same(url.toString(), 'http://zloirock.ru/?foo=bar'); }); // `core-js` URL implementation pass all (exclude some encoding-related) tests @@ -632,7 +578,7 @@ QUnit.skip('WPT URL constructor tests', assert => { }); // see https://github.com/web-platform-tests/wpt/blob/master/url -if (DESCRIPTORS) QUnit.skip('WPT URL setters tests', assert => { +QUnit.skip('WPT URL setters tests', assert => { for (const setter in settersTestData) { const testCases = settersTestData[setter]; for (const { href, newValue, comment, expected } of testCases) { From 6764e63925ac2e89efce0ab992e4a8aab243206f Mon Sep 17 00:00:00 2001 From: Denis Pushkarev Date: Fri, 6 Oct 2023 09:03:29 +0700 Subject: [PATCH 097/428] drop `es.array.is-array` (required for ES3 only) --- README.md | 4 +--- packages/core-js-compat/src/data.mjs | 9 --------- packages/core-js/actual/array/is-array.js | 4 ---- packages/core-js/configurator.js | 2 +- packages/core-js/es/array/index.js | 1 - packages/core-js/es/array/is-array.js | 5 ----- packages/core-js/full/array/is-array.js | 4 ---- packages/core-js/internals/array-set-length.js | 3 +-- .../core-js/internals/array-species-constructor.js | 2 +- packages/core-js/internals/flatten-into-array.js | 3 ++- .../core-js/internals/get-json-replacer-function.js | 2 +- packages/core-js/internals/is-array.js | 9 --------- packages/core-js/modules/es.array.concat.js | 2 +- packages/core-js/modules/es.array.is-array.js | 9 --------- packages/core-js/modules/es.array.reverse.js | 2 +- packages/core-js/modules/es.array.slice.js | 2 +- packages/core-js/modules/es.weak-map.constructor.js | 1 - .../modules/esnext.array.is-template-object.js | 2 +- packages/core-js/modules/esnext.json.parse.js | 2 +- packages/core-js/stable/array/is-array.js | 4 ---- tests/compat/tests.js | 3 --- tests/entries/unit.mjs | 1 - tests/eslint/eslint.config.js | 1 - tests/unit-pure/es.array.is-array.js | 11 ----------- tests/unit-pure/es.array.slice.js | 3 +-- 25 files changed, 13 insertions(+), 78 deletions(-) delete mode 100644 packages/core-js/actual/array/is-array.js delete mode 100644 packages/core-js/es/array/is-array.js delete mode 100644 packages/core-js/full/array/is-array.js delete mode 100644 packages/core-js/internals/is-array.js delete mode 100644 packages/core-js/modules/es.array.is-array.js delete mode 100644 packages/core-js/stable/array/is-array.js delete mode 100644 tests/unit-pure/es.array.is-array.js diff --git a/README.md b/README.md index c42d708fa71a..a80cdf32b861 100644 --- a/README.md +++ b/README.md @@ -708,7 +708,7 @@ Error.isError(Object.create(Error.prototype)); // => false > We have no bulletproof way to polyfill this `Error.isError` / check if the object is an error, so it's an enough naive implementation. #### ECMAScript: Array[⬆](#index) -Modules [`es.array.from`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.array.from.js), [`es.array.from-async`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.array.from-async.js), [`es.array.is-array`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.array.is-array.js), [`es.array.of`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.array.of.js), [`es.array.copy-within`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.array.copy-within.js), [`es.array.fill`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.array.fill.js), [`es.array.find`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.array.find.js), [`es.array.find-index`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.array.find-index.js), [`es.array.find-last`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.array.find-last.js), [`es.array.find-last-index`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.array.find-last-index.js), [`es.array.iterator`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.array.iterator.js), [`es.array.includes`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.array.includes.js), [`es.array.push`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.array.push.js), [`es.array.slice`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.array.slice.js), [`es.array.join`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.array.join.js), [`es.array.unshift`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.array.unshift.js), [`es.array.index-of`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.array.index-of.js), [`es.array.last-index-of`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.array.last-index-of.js), [`es.array.every`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.array.every.js), [`es.array.some`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.array.some.js), [`es.array.for-each`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.array.for-each.js), [`es.array.map`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.array.map.js), [`es.array.filter`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.array.filter.js), [`es.array.reduce`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.array.reduce.js), [`es.array.reduce-right`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.array.reduce-right.js), [`es.array.reverse`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.array.reverse.js), [`es.array.sort`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.array.sort.js), [`es.array.flat`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.array.flat.js), [`es.array.flat-map`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.array.flat-map.js), [`es.array.unscopables.flat`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.array.unscopables.flat.js), [`es.array.unscopables.flat-map`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.array.unscopables.flat-map.js), [`es.array.at`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.array.at.js), [`es.array.to-reversed`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.array.to-reversed.js), [`es.array.to-sorted`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.array.to-sorted.js), [`es.array.to-spliced`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.array.to-spliced.js), [`es.array.with`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.array.with.js). +Modules [`es.array.from`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.array.from.js), [`es.array.from-async`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.array.from-async.js), [`es.array.of`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.array.of.js), [`es.array.copy-within`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.array.copy-within.js), [`es.array.fill`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.array.fill.js), [`es.array.find`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.array.find.js), [`es.array.find-index`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.array.find-index.js), [`es.array.find-last`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.array.find-last.js), [`es.array.find-last-index`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.array.find-last-index.js), [`es.array.iterator`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.array.iterator.js), [`es.array.includes`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.array.includes.js), [`es.array.push`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.array.push.js), [`es.array.slice`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.array.slice.js), [`es.array.join`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.array.join.js), [`es.array.unshift`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.array.unshift.js), [`es.array.index-of`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.array.index-of.js), [`es.array.last-index-of`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.array.last-index-of.js), [`es.array.every`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.array.every.js), [`es.array.some`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.array.some.js), [`es.array.for-each`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.array.for-each.js), [`es.array.map`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.array.map.js), [`es.array.filter`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.array.filter.js), [`es.array.reduce`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.array.reduce.js), [`es.array.reduce-right`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.array.reduce-right.js), [`es.array.reverse`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.array.reverse.js), [`es.array.sort`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.array.sort.js), [`es.array.flat`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.array.flat.js), [`es.array.flat-map`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.array.flat-map.js), [`es.array.unscopables.flat`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.array.unscopables.flat.js), [`es.array.unscopables.flat-map`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.array.unscopables.flat-map.js), [`es.array.at`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.array.at.js), [`es.array.to-reversed`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.array.to-reversed.js), [`es.array.to-sorted`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.array.to-sorted.js), [`es.array.to-spliced`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.array.to-spliced.js), [`es.array.with`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.array.with.js). ```ts class Array { at(index: int): any; @@ -749,7 +749,6 @@ class Array { @@unscopables: { [newMethodNames: string]: true }; static from(items: Iterable | ArrayLike, mapFn?: (value: any, index: number) => any, thisArg?: any): Array; static fromAsync(asyncItems: AsyncIterable | Iterable | ArrayLike, mapfn?: (value: any, index: number) => any, thisArg?: any): Array; - static isArray(value: any): boolean; static of(...args: Array): Array; } @@ -763,7 +762,6 @@ core-js(-pure)/es|stable|actual|full/array core-js(-pure)/es|stable|actual|full/array/from core-js(-pure)/es|stable|actual|full/array/from-async core-js(-pure)/es|stable|actual|full/array/of -core-js(-pure)/es|stable|actual|full/array/is-array core-js(-pure)/es|stable|actual|full/array(/virtual)/at core-js(-pure)/es|stable|actual|full/array(/virtual)/concat core-js(-pure)/es|stable|actual|full/array(/virtual)/copy-within diff --git a/packages/core-js-compat/src/data.mjs b/packages/core-js-compat/src/data.mjs index df77870d6d61..1341a90ceaff 100644 --- a/packages/core-js-compat/src/data.mjs +++ b/packages/core-js-compat/src/data.mjs @@ -310,15 +310,6 @@ export const data = { rhino: '1.7.13', safari: '7.1', }, - 'es.array.is-array': { - chrome: '5', - firefox: '4', - hermes: '0.1', - ie: '9', - opera: '10.50', - rhino: '1.7.13', - safari: '4.0', - }, 'es.array.iterator': { chrome: '66', edge: '15', diff --git a/packages/core-js/actual/array/is-array.js b/packages/core-js/actual/array/is-array.js deleted file mode 100644 index 95c9b86703dd..000000000000 --- a/packages/core-js/actual/array/is-array.js +++ /dev/null @@ -1,4 +0,0 @@ -'use strict'; -var parent = require('../../stable/array/is-array'); - -module.exports = parent; diff --git a/packages/core-js/configurator.js b/packages/core-js/configurator.js index b8cac18c6830..554c9632acda 100644 --- a/packages/core-js/configurator.js +++ b/packages/core-js/configurator.js @@ -1,9 +1,9 @@ 'use strict'; var hasOwn = require('./internals/has-own-property'); -var isArray = require('./internals/is-array'); var isForced = require('./internals/is-forced'); var shared = require('./internals/shared-store'); +var isArray = Array.isArray; var data = isForced.data; var normalize = isForced.normalize; var USE_FUNCTION_CONSTRUCTOR = 'USE_FUNCTION_CONSTRUCTOR'; diff --git a/packages/core-js/es/array/index.js b/packages/core-js/es/array/index.js index a74b0e3ffdfc..dcf633d3c856 100644 --- a/packages/core-js/es/array/index.js +++ b/packages/core-js/es/array/index.js @@ -1,6 +1,5 @@ 'use strict'; require('../../modules/es.array.from'); -require('../../modules/es.array.is-array'); require('../../modules/es.array.of'); require('../../modules/es.array.at'); require('../../modules/es.array.concat'); diff --git a/packages/core-js/es/array/is-array.js b/packages/core-js/es/array/is-array.js deleted file mode 100644 index 3db4bce2e8e8..000000000000 --- a/packages/core-js/es/array/is-array.js +++ /dev/null @@ -1,5 +0,0 @@ -'use strict'; -require('../../modules/es.array.is-array'); -var path = require('../../internals/path'); - -module.exports = path.Array.isArray; diff --git a/packages/core-js/full/array/is-array.js b/packages/core-js/full/array/is-array.js deleted file mode 100644 index 5d277cb81377..000000000000 --- a/packages/core-js/full/array/is-array.js +++ /dev/null @@ -1,4 +0,0 @@ -'use strict'; -var parent = require('../../actual/array/is-array'); - -module.exports = parent; diff --git a/packages/core-js/internals/array-set-length.js b/packages/core-js/internals/array-set-length.js index 4b0d13666875..5ad4f7ec0e2d 100644 --- a/packages/core-js/internals/array-set-length.js +++ b/packages/core-js/internals/array-set-length.js @@ -1,9 +1,8 @@ 'use strict'; -var isArray = require('../internals/is-array'); - var $TypeError = TypeError; // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe var getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor; +var isArray = Array.isArray; // Safari < 13 does not throw an error in this case var SILENT_ON_NON_WRITABLE_LENGTH_SET = !function () { diff --git a/packages/core-js/internals/array-species-constructor.js b/packages/core-js/internals/array-species-constructor.js index db2f18ca1a37..0438254adf7e 100644 --- a/packages/core-js/internals/array-species-constructor.js +++ b/packages/core-js/internals/array-species-constructor.js @@ -1,11 +1,11 @@ 'use strict'; -var isArray = require('../internals/is-array'); var isConstructor = require('../internals/is-constructor'); var isObject = require('../internals/is-object'); var wellKnownSymbol = require('../internals/well-known-symbol'); var SPECIES = wellKnownSymbol('species'); var $Array = Array; +var isArray = Array.isArray; // a part of `ArraySpeciesCreate` abstract operation // https://tc39.es/ecma262/#sec-arrayspeciescreate diff --git a/packages/core-js/internals/flatten-into-array.js b/packages/core-js/internals/flatten-into-array.js index 97409308ae1e..936f695913c7 100644 --- a/packages/core-js/internals/flatten-into-array.js +++ b/packages/core-js/internals/flatten-into-array.js @@ -1,9 +1,10 @@ 'use strict'; -var isArray = require('../internals/is-array'); var lengthOfArrayLike = require('../internals/length-of-array-like'); var doesNotExceedSafeInteger = require('../internals/does-not-exceed-safe-integer'); var bind = require('../internals/function-bind-context'); +var isArray = Array.isArray; + // `FlattenIntoArray` abstract operation // https://tc39.es/ecma262/#sec-flattenintoarray var flattenIntoArray = function (target, original, source, sourceLen, start, depth, mapper, thisArg) { diff --git a/packages/core-js/internals/get-json-replacer-function.js b/packages/core-js/internals/get-json-replacer-function.js index abfdce42b35e..5f60126a741f 100644 --- a/packages/core-js/internals/get-json-replacer-function.js +++ b/packages/core-js/internals/get-json-replacer-function.js @@ -1,10 +1,10 @@ 'use strict'; var uncurryThis = require('../internals/function-uncurry-this'); -var isArray = require('../internals/is-array'); var isCallable = require('../internals/is-callable'); var classof = require('../internals/classof-raw'); var toString = require('../internals/to-string'); +var isArray = Array.isArray; var push = uncurryThis([].push); module.exports = function (replacer) { diff --git a/packages/core-js/internals/is-array.js b/packages/core-js/internals/is-array.js deleted file mode 100644 index 14ea3b01ec1c..000000000000 --- a/packages/core-js/internals/is-array.js +++ /dev/null @@ -1,9 +0,0 @@ -'use strict'; -var classof = require('../internals/classof-raw'); - -// `IsArray` abstract operation -// https://tc39.es/ecma262/#sec-isarray -// eslint-disable-next-line es/no-array-isarray -- safe -module.exports = Array.isArray || function isArray(argument) { - return classof(argument) === 'Array'; -}; diff --git a/packages/core-js/modules/es.array.concat.js b/packages/core-js/modules/es.array.concat.js index 2e1a773a67eb..1b586b7d53a8 100644 --- a/packages/core-js/modules/es.array.concat.js +++ b/packages/core-js/modules/es.array.concat.js @@ -1,7 +1,6 @@ 'use strict'; var $ = require('../internals/export'); var fails = require('../internals/fails'); -var isArray = require('../internals/is-array'); var isObject = require('../internals/is-object'); var toObject = require('../internals/to-object'); var lengthOfArrayLike = require('../internals/length-of-array-like'); @@ -13,6 +12,7 @@ var wellKnownSymbol = require('../internals/well-known-symbol'); var V8_VERSION = require('../internals/environment-v8-version'); var IS_CONCAT_SPREADABLE = wellKnownSymbol('isConcatSpreadable'); +var isArray = Array.isArray; // We can't use this feature detection in V8 since it causes // deoptimization and serious performance degradation diff --git a/packages/core-js/modules/es.array.is-array.js b/packages/core-js/modules/es.array.is-array.js deleted file mode 100644 index 4482427969a1..000000000000 --- a/packages/core-js/modules/es.array.is-array.js +++ /dev/null @@ -1,9 +0,0 @@ -'use strict'; -var $ = require('../internals/export'); -var isArray = require('../internals/is-array'); - -// `Array.isArray` method -// https://tc39.es/ecma262/#sec-array.isarray -$({ target: 'Array', stat: true }, { - isArray: isArray -}); diff --git a/packages/core-js/modules/es.array.reverse.js b/packages/core-js/modules/es.array.reverse.js index 79047586daf0..efeafc2ddf18 100644 --- a/packages/core-js/modules/es.array.reverse.js +++ b/packages/core-js/modules/es.array.reverse.js @@ -1,8 +1,8 @@ 'use strict'; var $ = require('../internals/export'); var uncurryThis = require('../internals/function-uncurry-this'); -var isArray = require('../internals/is-array'); +var isArray = Array.isArray; var nativeReverse = uncurryThis([].reverse); var test = [1, 2]; diff --git a/packages/core-js/modules/es.array.slice.js b/packages/core-js/modules/es.array.slice.js index 373cab530099..ec449c551a3b 100644 --- a/packages/core-js/modules/es.array.slice.js +++ b/packages/core-js/modules/es.array.slice.js @@ -1,6 +1,5 @@ 'use strict'; var $ = require('../internals/export'); -var isArray = require('../internals/is-array'); var isConstructor = require('../internals/is-constructor'); var isObject = require('../internals/is-object'); var toAbsoluteIndex = require('../internals/to-absolute-index'); @@ -15,6 +14,7 @@ var HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('slice'); var SPECIES = wellKnownSymbol('species'); var $Array = Array; +var isArray = Array.isArray; var max = Math.max; // `Array.prototype.slice` method diff --git a/packages/core-js/modules/es.weak-map.constructor.js b/packages/core-js/modules/es.weak-map.constructor.js index d5105e4d4532..77562004a2c2 100644 --- a/packages/core-js/modules/es.weak-map.constructor.js +++ b/packages/core-js/modules/es.weak-map.constructor.js @@ -12,7 +12,6 @@ var fails = require('../internals/fails'); var NATIVE_WEAK_MAP = require('../internals/weak-map-basic-detection'); var $Object = Object; -// eslint-disable-next-line es/no-array-isarray -- safe var isArray = Array.isArray; // eslint-disable-next-line es/no-object-isextensible -- safe var isExtensible = $Object.isExtensible; diff --git a/packages/core-js/modules/esnext.array.is-template-object.js b/packages/core-js/modules/esnext.array.is-template-object.js index 0f1a826ffe4b..4a2984b7beae 100644 --- a/packages/core-js/modules/esnext.array.is-template-object.js +++ b/packages/core-js/modules/esnext.array.is-template-object.js @@ -1,7 +1,7 @@ 'use strict'; var $ = require('../internals/export'); -var isArray = require('../internals/is-array'); +var isArray = Array.isArray; // eslint-disable-next-line es/no-object-isfrozen -- safe var isFrozen = Object.isFrozen; diff --git a/packages/core-js/modules/esnext.json.parse.js b/packages/core-js/modules/esnext.json.parse.js index 47ac93b6caea..09e59ff4e2b8 100644 --- a/packages/core-js/modules/esnext.json.parse.js +++ b/packages/core-js/modules/esnext.json.parse.js @@ -6,7 +6,6 @@ var uncurryThis = require('../internals/function-uncurry-this'); var call = require('../internals/function-call'); var isCallable = require('../internals/is-callable'); var isObject = require('../internals/is-object'); -var isArray = require('../internals/is-array'); var hasOwn = require('../internals/has-own-property'); var toString = require('../internals/to-string'); var lengthOfArrayLike = require('../internals/length-of-array-like'); @@ -22,6 +21,7 @@ var nativeParse = JSON && JSON.parse; var enumerableOwnProperties = getBuiltIn('Object', 'keys'); // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe var getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor; +var isArray = Array.isArray; var at = uncurryThis(''.charAt); var slice = uncurryThis(''.slice); var exec = uncurryThis(/./.exec); diff --git a/packages/core-js/stable/array/is-array.js b/packages/core-js/stable/array/is-array.js deleted file mode 100644 index 7e5207eb31a1..000000000000 --- a/packages/core-js/stable/array/is-array.js +++ /dev/null @@ -1,4 +0,0 @@ -'use strict'; -var parent = require('../../es/array/is-array'); - -module.exports = parent; diff --git a/tests/compat/tests.js b/tests/compat/tests.js index 645424f93ac9..f833df11dc75 100644 --- a/tests/compat/tests.js +++ b/tests/compat/tests.js @@ -517,9 +517,6 @@ GLOBAL.tests = { return 1 / [1].indexOf(1, -0) > 0; } }, - 'es.array.is-array': function () { - return Array.isArray; - }, 'es.array.iterator': [SYMBOLS_SUPPORT, function () { return [][Symbol.iterator] === [].values && [][Symbol.iterator].name === 'values' diff --git a/tests/entries/unit.mjs b/tests/entries/unit.mjs index 1e7604209aea..d2a9a3dd4676 100644 --- a/tests/entries/unit.mjs +++ b/tests/entries/unit.mjs @@ -59,7 +59,6 @@ for (PATH of ['core-js-pure', 'core-js']) { load(NS, 'function'); ok(Array.isArray(load(NS, 'array/from')('qwe'))); ok(typeof load(NS, 'array/from-async') == 'function'); - ok(load(NS, 'array/is-array')([])); ok(Array.isArray(load(NS, 'array/of')('q', 'w', 'e'))); ok(load(NS, 'array/at')([1, 2, 3], -2) === 2); ok(load(NS, 'array/join')('qwe', 1) === 'q1w1e'); diff --git a/tests/eslint/eslint.config.js b/tests/eslint/eslint.config.js index 13903d528a38..5f3d58b1c95b 100644 --- a/tests/eslint/eslint.config.js +++ b/tests/eslint/eslint.config.js @@ -1446,7 +1446,6 @@ const forbidESAnnexBBuiltIns = { }; const forbidES5BuiltIns = { - 'es/no-array-isarray': ERROR, 'es/no-array-prototype-every': ERROR, 'es/no-array-prototype-filter': ERROR, 'es/no-array-prototype-foreach': ERROR, diff --git a/tests/unit-pure/es.array.is-array.js b/tests/unit-pure/es.array.is-array.js deleted file mode 100644 index 143f47e27281..000000000000 --- a/tests/unit-pure/es.array.is-array.js +++ /dev/null @@ -1,11 +0,0 @@ -import isArray from 'core-js-pure/es/array/is-array'; - -QUnit.test('Array.isArray', assert => { - assert.isFunction(isArray); - assert.false(isArray({})); - assert.false(isArray(function () { - // eslint-disable-next-line prefer-rest-params -- required for testing - return arguments; - }())); - assert.true(isArray([])); -}); diff --git a/tests/unit-pure/es.array.slice.js b/tests/unit-pure/es.array.slice.js index 412347c58414..a1cb70998c9f 100644 --- a/tests/unit-pure/es.array.slice.js +++ b/tests/unit-pure/es.array.slice.js @@ -1,7 +1,6 @@ import { GLOBAL } from '../helpers/constants.js'; import Symbol from 'core-js-pure/es/symbol'; -import isArray from 'core-js-pure/es/array/is-array'; import slice from 'core-js-pure/es/array/slice'; QUnit.test('Array#slice', assert => { @@ -22,7 +21,7 @@ QUnit.test('Array#slice', assert => { assert.deepEqual(slice(string, -2, -3), []); const list = GLOBAL.document && document.body && document.body.childNodes; if (list) { - assert.notThrows(() => isArray(slice(list)), 'works with NodeList'); + assert.notThrows(() => Array.isArray(slice(list)), 'works with NodeList'); } array = []; // eslint-disable-next-line object-shorthand -- constructor From a146cecc31e9223939aee94cbce507c23c445a44 Mon Sep 17 00:00:00 2001 From: Denis Pushkarev Date: Fri, 6 Oct 2023 09:26:38 +0700 Subject: [PATCH 098/428] drop `es.date.now` (required for ES3 only) --- README.md | 2 +- packages/core-js-compat/src/data.mjs | 10 ---------- packages/core-js/actual/date/now.js | 4 ---- packages/core-js/es/date/index.js | 1 - packages/core-js/es/date/now.js | 5 ----- packages/core-js/full/date/now.js | 4 ---- packages/core-js/modules/es.date.now.js | 15 --------------- packages/core-js/stable/date/now.js | 4 ---- tests/compat/tests.js | 4 ---- tests/entries/unit.mjs | 1 - tests/eslint/eslint.config.js | 3 --- tests/unit-pure/es.date.now.js | 6 ------ 12 files changed, 1 insertion(+), 58 deletions(-) delete mode 100644 packages/core-js/actual/date/now.js delete mode 100644 packages/core-js/es/date/now.js delete mode 100644 packages/core-js/full/date/now.js delete mode 100644 packages/core-js/modules/es.date.now.js delete mode 100644 packages/core-js/stable/date/now.js delete mode 100644 tests/unit-pure/es.date.now.js diff --git a/README.md b/README.md index a80cdf32b861..ec32612eab1a 100644 --- a/README.md +++ b/README.md @@ -1241,7 +1241,7 @@ Math.sumPrecise([1e20, 0.1, -1e20]); // => 0.1 ``` #### ECMAScript: Date[⬆](#index) -Modules [`es.date.to-string`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.date.to-string.js), ES5 features with fixes: [`es.date.now`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.date.now.js), [`es.date.to-iso-string`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.date.to-iso-string.js), [`es.date.to-json`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.date.to-json.js) and [`es.date.to-primitive`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.date.to-primitive.js). +Modules [`es.date.to-string`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.date.to-string.js), ES5 features with fixes: [`es.date.to-iso-string`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.date.to-iso-string.js), [`es.date.to-json`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.date.to-json.js) and [`es.date.to-primitive`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.date.to-primitive.js). Annex B methods. Modules [`es.date.get-year`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.date.get-year.js), [`es.date.set-year`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.date.set-year.js) and [`es.date.to-gmt-string`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.date.to-gmt-string.js). ```ts diff --git a/packages/core-js-compat/src/data.mjs b/packages/core-js-compat/src/data.mjs index 1341a90ceaff..764a66156858 100644 --- a/packages/core-js-compat/src/data.mjs +++ b/packages/core-js-compat/src/data.mjs @@ -545,16 +545,6 @@ export const data = { rhino: '1.7.13', safari: '1', }, - // TODO: Remove from `core-js@4` - 'es.date.now': { - chrome: '5', - firefox: '2', - hermes: '0.1', - ie: '9', - opera: '10.50', - rhino: '1.7.13', - safari: '4.0', - }, 'es.date.set-year': { chrome: '1', firefox: '1', diff --git a/packages/core-js/actual/date/now.js b/packages/core-js/actual/date/now.js deleted file mode 100644 index f0ca2b6653a8..000000000000 --- a/packages/core-js/actual/date/now.js +++ /dev/null @@ -1,4 +0,0 @@ -'use strict'; -var parent = require('../../stable/date/now'); - -module.exports = parent; diff --git a/packages/core-js/es/date/index.js b/packages/core-js/es/date/index.js index ec1d224523c2..08c9cb0b0eaa 100644 --- a/packages/core-js/es/date/index.js +++ b/packages/core-js/es/date/index.js @@ -1,6 +1,5 @@ 'use strict'; require('../../modules/es.date.get-year'); -require('../../modules/es.date.now'); require('../../modules/es.date.set-year'); require('../../modules/es.date.to-gmt-string'); require('../../modules/es.date.to-iso-string'); diff --git a/packages/core-js/es/date/now.js b/packages/core-js/es/date/now.js deleted file mode 100644 index 0e395aeb5637..000000000000 --- a/packages/core-js/es/date/now.js +++ /dev/null @@ -1,5 +0,0 @@ -'use strict'; -require('../../modules/es.date.now'); -var path = require('../../internals/path'); - -module.exports = path.Date.now; diff --git a/packages/core-js/full/date/now.js b/packages/core-js/full/date/now.js deleted file mode 100644 index 87da63897aea..000000000000 --- a/packages/core-js/full/date/now.js +++ /dev/null @@ -1,4 +0,0 @@ -'use strict'; -var parent = require('../../actual/date/now'); - -module.exports = parent; diff --git a/packages/core-js/modules/es.date.now.js b/packages/core-js/modules/es.date.now.js deleted file mode 100644 index df018fe15b91..000000000000 --- a/packages/core-js/modules/es.date.now.js +++ /dev/null @@ -1,15 +0,0 @@ -'use strict'; -// TODO: Remove from `core-js@4` -var $ = require('../internals/export'); -var uncurryThis = require('../internals/function-uncurry-this'); - -var $Date = Date; -var thisTimeValue = uncurryThis($Date.prototype.getTime); - -// `Date.now` method -// https://tc39.es/ecma262/#sec-date.now -$({ target: 'Date', stat: true }, { - now: function now() { - return thisTimeValue(new $Date()); - } -}); diff --git a/packages/core-js/stable/date/now.js b/packages/core-js/stable/date/now.js deleted file mode 100644 index 2b540540ca10..000000000000 --- a/packages/core-js/stable/date/now.js +++ /dev/null @@ -1,4 +0,0 @@ -'use strict'; -var parent = require('../../es/date/now'); - -module.exports = parent; diff --git a/tests/compat/tests.js b/tests/compat/tests.js index f833df11dc75..8bddd244cde5 100644 --- a/tests/compat/tests.js +++ b/tests/compat/tests.js @@ -718,10 +718,6 @@ GLOBAL.tests = { 'es.date.get-year': function () { return new Date(16e11).getYear() === 120; }, - // TODO: Remove from `core-js@4` - 'es.date.now': function () { - return Date.now; - }, 'es.date.set-year': function () { return Date.prototype.setYear; }, diff --git a/tests/entries/unit.mjs b/tests/entries/unit.mjs index d2a9a3dd4676..4eabba460cbb 100644 --- a/tests/entries/unit.mjs +++ b/tests/entries/unit.mjs @@ -277,7 +277,6 @@ for (PATH of ['core-js-pure', 'core-js']) { ok(load(NS, 'json').stringify([1]) === '[1]'); ok(load(NS, 'json/stringify')([1]) === '[1]'); ok(load(NS, 'json/to-string-tag') === 'JSON'); - ok(typeof load(NS, 'date/now')(new Date()) === 'number'); const date = new Date(); ok(load(NS, 'date/get-year')(date) === date.getFullYear() - 1900); load(NS, 'date/set-year')(date, 1); diff --git a/tests/eslint/eslint.config.js b/tests/eslint/eslint.config.js index 5f3d58b1c95b..bc1e55d62d3d 100644 --- a/tests/eslint/eslint.config.js +++ b/tests/eslint/eslint.config.js @@ -1455,7 +1455,6 @@ const forbidES5BuiltIns = { 'es/no-array-prototype-reduce': ERROR, 'es/no-array-prototype-reduceright': ERROR, 'es/no-array-prototype-some': ERROR, - 'es/no-date-now': ERROR, 'es/no-function-prototype-bind': ERROR, 'es/no-json': ERROR, 'es/no-object-create': ERROR, @@ -1472,8 +1471,6 @@ const forbidES5BuiltIns = { 'es/no-object-preventextensions': ERROR, 'es/no-object-seal': ERROR, 'es/no-string-prototype-trim': ERROR, - // prefer `Date.now()` to get the number of milliseconds since the Unix Epoch - 'unicorn/prefer-date-now': OFF, // prefer `globalThis` over `window`, `self`, and `global` 'unicorn/prefer-global-this': OFF, }; diff --git a/tests/unit-pure/es.date.now.js b/tests/unit-pure/es.date.now.js deleted file mode 100644 index 9851ec12dba9..000000000000 --- a/tests/unit-pure/es.date.now.js +++ /dev/null @@ -1,6 +0,0 @@ -import now from 'core-js-pure/es/date/now'; - -QUnit.test('Date.now', assert => { - assert.isFunction(now); - assert.same(typeof now(), 'number', 'typeof'); -}); From 204258f42acf65d0ec732aef43efc34b3b15258b Mon Sep 17 00:00:00 2001 From: Denis Pushkarev Date: Fri, 6 Oct 2023 09:35:15 +0700 Subject: [PATCH 099/428] allow unquoted keyword properties --- packages/core-js/actual/instance/with.js | 4 +-- packages/core-js/es/instance/with.js | 4 +-- packages/core-js/es/promise/try.js | 6 ++--- packages/core-js/es/symbol/for.js | 2 +- .../internals/async-from-sync-iterator.js | 2 +- .../internals/async-iterator-create-proxy.js | 2 +- .../check-correctness-of-iteration.js | 2 +- .../core-js/internals/collection-strong.js | 2 +- packages/core-js/internals/collection-weak.js | 6 ++--- .../internals/iterator-create-proxy.js | 2 +- ...r-helper-without-closing-on-early-error.js | 2 +- packages/core-js/internals/map-helpers.js | 2 +- .../promise-constructor-detection.js | 2 +- packages/core-js/internals/set-helpers.js | 2 +- .../internals/symbol-registry-detection.js | 2 +- .../internals/url-constructor-detection.js | 6 ++--- .../core-js/internals/weak-map-helpers.js | 2 +- .../core-js/internals/weak-set-helpers.js | 2 +- .../core-js/internals/well-known-symbol.js | 2 +- packages/core-js/modules/es.array.with.js | 4 +-- packages/core-js/modules/es.iterator.from.js | 2 +- packages/core-js/modules/es.promise.catch.js | 6 ++--- .../core-js/modules/es.promise.finally.js | 8 +++--- packages/core-js/modules/es.promise.try.js | 6 ++--- packages/core-js/modules/es.symbol.for.js | 2 +- .../core-js/modules/es.typed-array.with.js | 8 +++--- .../modules/es.weak-map.constructor.js | 6 ++--- .../modules/esnext.async-iterator.take.js | 2 +- .../modules/esnext.composite-symbol.js | 2 +- .../modules/esnext.reflect.delete-metadata.js | 6 ++--- .../web.url-search-params.constructor.js | 2 +- .../modules/web.url-search-params.delete.js | 6 ++--- scripts/bundle-package/bundle-package.mjs | 1 - tests/compat/tests.js | 25 +++++++++---------- tests/eslint/eslint.config.js | 6 +---- 35 files changed, 70 insertions(+), 76 deletions(-) diff --git a/packages/core-js/actual/instance/with.js b/packages/core-js/actual/instance/with.js index f3db9f4721d9..b6109d0e0618 100644 --- a/packages/core-js/actual/instance/with.js +++ b/packages/core-js/actual/instance/with.js @@ -5,6 +5,6 @@ var method = require('../array/virtual/with'); var ArrayPrototype = Array.prototype; module.exports = function (it) { - var own = it['with']; - return (it === ArrayPrototype || (isPrototypeOf(ArrayPrototype, it) && own === ArrayPrototype['with'])) ? method : own; + var own = it.with; + return (it === ArrayPrototype || (isPrototypeOf(ArrayPrototype, it) && own === ArrayPrototype.with)) ? method : own; }; diff --git a/packages/core-js/es/instance/with.js b/packages/core-js/es/instance/with.js index f3db9f4721d9..b6109d0e0618 100644 --- a/packages/core-js/es/instance/with.js +++ b/packages/core-js/es/instance/with.js @@ -5,6 +5,6 @@ var method = require('../array/virtual/with'); var ArrayPrototype = Array.prototype; module.exports = function (it) { - var own = it['with']; - return (it === ArrayPrototype || (isPrototypeOf(ArrayPrototype, it) && own === ArrayPrototype['with'])) ? method : own; + var own = it.with; + return (it === ArrayPrototype || (isPrototypeOf(ArrayPrototype, it) && own === ArrayPrototype.with)) ? method : own; }; diff --git a/packages/core-js/es/promise/try.js b/packages/core-js/es/promise/try.js index 253a3f0f1950..e18c25b3ee0f 100644 --- a/packages/core-js/es/promise/try.js +++ b/packages/core-js/es/promise/try.js @@ -7,9 +7,9 @@ var isCallable = require('../../internals/is-callable'); var path = require('../../internals/path'); var Promise = path.Promise; -var $try = Promise['try']; +var $try = Promise.try; // eslint-disable-next-line no-unused-vars -- required for arity -module.exports = ({ 'try': function (callbackfn /* , ...args */) { +module.exports = ({ try: function (callbackfn /* , ...args */) { return apply($try, isCallable(this) ? this : Promise, arguments); -} })['try']; +} }).try; diff --git a/packages/core-js/es/symbol/for.js b/packages/core-js/es/symbol/for.js index c8e60abb7219..576114ebb60d 100644 --- a/packages/core-js/es/symbol/for.js +++ b/packages/core-js/es/symbol/for.js @@ -3,4 +3,4 @@ require('../../modules/es.symbol.constructor'); require('../../modules/es.symbol.for'); var path = require('../../internals/path'); -module.exports = path.Symbol['for']; +module.exports = path.Symbol.for; diff --git a/packages/core-js/internals/async-from-sync-iterator.js b/packages/core-js/internals/async-from-sync-iterator.js index 1c97949aa455..124e73da3ff2 100644 --- a/packages/core-js/internals/async-from-sync-iterator.js +++ b/packages/core-js/internals/async-from-sync-iterator.js @@ -46,7 +46,7 @@ AsyncFromSyncIterator.prototype = defineBuiltIns(create(AsyncIteratorPrototype), asyncFromSyncIteratorContinuation(result, resolve, reject, state.iterator, true); }); }, - 'return': function () { + return: function () { var iterator = getInternalState(this).iterator; return new Promise(function (resolve, reject) { var $return = getMethod(iterator, 'return'); diff --git a/packages/core-js/internals/async-iterator-create-proxy.js b/packages/core-js/internals/async-iterator-create-proxy.js index 12f7c2d763fd..54d3775fce98 100644 --- a/packages/core-js/internals/async-iterator-create-proxy.js +++ b/packages/core-js/internals/async-iterator-create-proxy.js @@ -50,7 +50,7 @@ var createAsyncIteratorProxyPrototype = function (IS_ITERATOR) { if (handlerError) state.done = true; return handlerError ? Promise.reject(value) : Promise.resolve(value); }, - 'return': function () { + return: function () { var stateCompletion = getStateOrEarlyExit(this); var state = stateCompletion.value; if (stateCompletion.exit) return state; diff --git a/packages/core-js/internals/check-correctness-of-iteration.js b/packages/core-js/internals/check-correctness-of-iteration.js index ee9f0922abb1..f485aed43078 100644 --- a/packages/core-js/internals/check-correctness-of-iteration.js +++ b/packages/core-js/internals/check-correctness-of-iteration.js @@ -10,7 +10,7 @@ try { next: function () { return { done: !!called++ }; }, - 'return': function () { + return: function () { SAFE_CLOSING = true; } }; diff --git a/packages/core-js/internals/collection-strong.js b/packages/core-js/internals/collection-strong.js index b6fd3ea43dbe..d5139c3bfb84 100644 --- a/packages/core-js/internals/collection-strong.js +++ b/packages/core-js/internals/collection-strong.js @@ -90,7 +90,7 @@ module.exports = { // `{ Map, Set }.prototype.delete(key)` methods // https://tc39.es/ecma262/#sec-map.prototype.delete // https://tc39.es/ecma262/#sec-set.prototype.delete - 'delete': function (key) { + delete: function (key) { var that = this; var state = getInternalState(that); var entry = getEntry(that, key); diff --git a/packages/core-js/internals/collection-weak.js b/packages/core-js/internals/collection-weak.js index d13b7bc9de31..bff9f95dbe1e 100644 --- a/packages/core-js/internals/collection-weak.js +++ b/packages/core-js/internals/collection-weak.js @@ -46,7 +46,7 @@ UncaughtFrozenStore.prototype = { if (entry) entry[1] = value; else this.entries.push([key, value]); }, - 'delete': function (key) { + delete: function (key) { var index = findIndex(this.entries, function (it) { return it[0] === key; }); @@ -83,11 +83,11 @@ module.exports = { // `{ WeakMap, WeakSet }.prototype.delete(key)` methods // https://tc39.es/ecma262/#sec-weakmap.prototype.delete // https://tc39.es/ecma262/#sec-weakset.prototype.delete - 'delete': function (key) { + delete: function (key) { var state = getInternalState(this); if (!isObject(key)) return false; var data = getWeakData(key); - if (data === true) return uncaughtFrozenStore(state)['delete'](key); + if (data === true) return uncaughtFrozenStore(state).delete(key); return data && hasOwn(data, state.id) && delete data[state.id]; }, // `{ WeakMap, WeakSet }.prototype.has(key)` methods diff --git a/packages/core-js/internals/iterator-create-proxy.js b/packages/core-js/internals/iterator-create-proxy.js index e03c81d626a7..29660246c084 100644 --- a/packages/core-js/internals/iterator-create-proxy.js +++ b/packages/core-js/internals/iterator-create-proxy.js @@ -37,7 +37,7 @@ var createIteratorProxyPrototype = function (IS_ITERATOR) { throw error; } }, - 'return': function () { + return: function () { var state = getInternalState(this); var iterator = state.iterator; state.done = true; diff --git a/packages/core-js/internals/iterator-helper-without-closing-on-early-error.js b/packages/core-js/internals/iterator-helper-without-closing-on-early-error.js index a26c022ba278..2a6ec217f9ec 100644 --- a/packages/core-js/internals/iterator-helper-without-closing-on-early-error.js +++ b/packages/core-js/internals/iterator-helper-without-closing-on-early-error.js @@ -12,7 +12,7 @@ module.exports = function (METHOD_NAME, ExpectedError) { if (method) try { method.call({ next: function () { return { done: true }; }, - 'return': function () { CLOSED = true; } + return: function () { CLOSED = true; } }, -1); } catch (error) { // https://bugs.webkit.org/show_bug.cgi?id=291195 diff --git a/packages/core-js/internals/map-helpers.js b/packages/core-js/internals/map-helpers.js index 8120c7dc79a4..6e00181183d5 100644 --- a/packages/core-js/internals/map-helpers.js +++ b/packages/core-js/internals/map-helpers.js @@ -10,6 +10,6 @@ module.exports = { set: uncurryThis(MapPrototype.set), get: uncurryThis(MapPrototype.get), has: uncurryThis(MapPrototype.has), - remove: uncurryThis(MapPrototype['delete']), + remove: uncurryThis(MapPrototype.delete), proto: MapPrototype }; diff --git a/packages/core-js/internals/promise-constructor-detection.js b/packages/core-js/internals/promise-constructor-detection.js index 1c2e2035a9f4..ffa443e91972 100644 --- a/packages/core-js/internals/promise-constructor-detection.js +++ b/packages/core-js/internals/promise-constructor-detection.js @@ -22,7 +22,7 @@ var FORCED_PROMISE_CONSTRUCTOR = isForced('Promise', function () { // We can't detect it synchronously, so just check versions if (!GLOBAL_CORE_JS_PROMISE && V8_VERSION === 66) return true; // We need Promise#{ catch, finally } in the pure version for preventing prototype pollution - if (IS_PURE && !(NativePromisePrototype['catch'] && NativePromisePrototype['finally'])) return true; + if (IS_PURE && !(NativePromisePrototype.catch && NativePromisePrototype.finally)) return true; // We can't use @@species feature detection in V8 since it causes // deoptimization and performance degradation // https://github.com/zloirock/core-js/issues/679 diff --git a/packages/core-js/internals/set-helpers.js b/packages/core-js/internals/set-helpers.js index f4749870c359..234c2c61d14b 100644 --- a/packages/core-js/internals/set-helpers.js +++ b/packages/core-js/internals/set-helpers.js @@ -9,6 +9,6 @@ module.exports = { Set: Set, add: uncurryThis(SetPrototype.add), has: uncurryThis(SetPrototype.has), - remove: uncurryThis(SetPrototype['delete']), + remove: uncurryThis(SetPrototype.delete), proto: SetPrototype }; diff --git a/packages/core-js/internals/symbol-registry-detection.js b/packages/core-js/internals/symbol-registry-detection.js index d6fec4457132..361416c8da5c 100644 --- a/packages/core-js/internals/symbol-registry-detection.js +++ b/packages/core-js/internals/symbol-registry-detection.js @@ -2,4 +2,4 @@ var NATIVE_SYMBOL = require('../internals/symbol-constructor-detection'); /* eslint-disable es/no-symbol -- safe */ -module.exports = NATIVE_SYMBOL && !!Symbol['for'] && !!Symbol.keyFor; +module.exports = NATIVE_SYMBOL && !!Symbol.for && !!Symbol.keyFor; diff --git a/packages/core-js/internals/url-constructor-detection.js b/packages/core-js/internals/url-constructor-detection.js index 6f11112c2486..5db834656dec 100644 --- a/packages/core-js/internals/url-constructor-detection.js +++ b/packages/core-js/internals/url-constructor-detection.js @@ -13,13 +13,13 @@ module.exports = !fails(function () { var result = ''; url.pathname = 'c%20d'; params.forEach(function (value, key) { - params['delete']('b'); + params.delete('b'); result += key + value; }); - params2['delete']('a', 2); + params2.delete('a', 2); // `undefined` case is a Chromium 117 bug // https://bugs.chromium.org/p/v8/issues/detail?id=14222 - params2['delete']('b', undefined); + params2.delete('b', undefined); return (IS_PURE && (!url.toJSON || !params2.has('a', 1) || params2.has('a', 2) || !params2.has('a', undefined) || params2.has('b'))) || (!params.size && IS_PURE) || !params.sort diff --git a/packages/core-js/internals/weak-map-helpers.js b/packages/core-js/internals/weak-map-helpers.js index a58bc827c8c1..dca3140675ed 100644 --- a/packages/core-js/internals/weak-map-helpers.js +++ b/packages/core-js/internals/weak-map-helpers.js @@ -10,5 +10,5 @@ module.exports = { set: uncurryThis(WeakMapPrototype.set), get: uncurryThis(WeakMapPrototype.get), has: uncurryThis(WeakMapPrototype.has), - remove: uncurryThis(WeakMapPrototype['delete']) + remove: uncurryThis(WeakMapPrototype.delete) }; diff --git a/packages/core-js/internals/weak-set-helpers.js b/packages/core-js/internals/weak-set-helpers.js index 1714de942bff..2d1d210922ca 100644 --- a/packages/core-js/internals/weak-set-helpers.js +++ b/packages/core-js/internals/weak-set-helpers.js @@ -9,5 +9,5 @@ module.exports = { WeakSet: WeakSet, add: uncurryThis(WeakSetPrototype.add), has: uncurryThis(WeakSetPrototype.has), - remove: uncurryThis(WeakSetPrototype['delete']) + remove: uncurryThis(WeakSetPrototype.delete) }; diff --git a/packages/core-js/internals/well-known-symbol.js b/packages/core-js/internals/well-known-symbol.js index bc94b14b0e03..70995e369b65 100644 --- a/packages/core-js/internals/well-known-symbol.js +++ b/packages/core-js/internals/well-known-symbol.js @@ -8,7 +8,7 @@ var USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid'); var Symbol = globalThis.Symbol; var WellKnownSymbolsStore = shared('wks'); -var createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol['for'] || Symbol : Symbol && Symbol.withoutSetter || uid; +var createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol.for || Symbol : Symbol && Symbol.withoutSetter || uid; module.exports = function (name) { if (!hasOwn(WellKnownSymbolsStore, name)) { diff --git a/packages/core-js/modules/es.array.with.js b/packages/core-js/modules/es.array.with.js index b25af4bd24e6..dec2a8b19946 100644 --- a/packages/core-js/modules/es.array.with.js +++ b/packages/core-js/modules/es.array.with.js @@ -9,7 +9,7 @@ var $Array = Array; var INCORRECT_EXCEPTION_ON_COERCION_FAIL = (function () { try { // eslint-disable-next-line es/no-array-prototype-with, no-throw-literal -- needed for testing - []['with']({ valueOf: function () { throw 4; } }, null); + [].with({ valueOf: function () { throw 4; } }, null); } catch (error) { return error !== 4; } @@ -18,7 +18,7 @@ var INCORRECT_EXCEPTION_ON_COERCION_FAIL = (function () { // `Array.prototype.with` method // https://tc39.es/ecma262/#sec-array.prototype.with $({ target: 'Array', proto: true, forced: INCORRECT_EXCEPTION_ON_COERCION_FAIL }, { - 'with': function (index, value) { + with: function (index, value) { return arrayWith(toIndexedObject(this), $Array, index, value); } }); diff --git a/packages/core-js/modules/es.iterator.from.js b/packages/core-js/modules/es.iterator.from.js index 9db62793d1d2..4a02ee05abbc 100644 --- a/packages/core-js/modules/es.iterator.from.js +++ b/packages/core-js/modules/es.iterator.from.js @@ -13,7 +13,7 @@ var FORCED = IS_PURE || function () { // https://bugs.webkit.org/show_bug.cgi?id=288714 try { // eslint-disable-next-line es/no-iterator -- required for testing - Iterator.from({ 'return': null })['return'](); + Iterator.from({ return: null }).return(); } catch (error) { return true; } diff --git a/packages/core-js/modules/es.promise.catch.js b/packages/core-js/modules/es.promise.catch.js index c4947fde6d15..5f94e4c241fb 100644 --- a/packages/core-js/modules/es.promise.catch.js +++ b/packages/core-js/modules/es.promise.catch.js @@ -12,15 +12,15 @@ var NativePromisePrototype = NativePromiseConstructor && NativePromiseConstructo // `Promise.prototype.catch` method // https://tc39.es/ecma262/#sec-promise.prototype.catch $({ target: 'Promise', proto: true, forced: FORCED_PROMISE_CONSTRUCTOR, real: true }, { - 'catch': function (onRejected) { + catch: function (onRejected) { return this.then(undefined, onRejected); } }); // makes sure that native promise-based APIs `Promise#catch` properly works with patched `Promise#then` if (!IS_PURE && isCallable(NativePromiseConstructor)) { - var method = getBuiltIn('Promise').prototype['catch']; - if (NativePromisePrototype['catch'] !== method) { + var method = getBuiltIn('Promise').prototype.catch; + if (NativePromisePrototype.catch !== method) { defineBuiltIn(NativePromisePrototype, 'catch', method, { unsafe: true }); } } diff --git a/packages/core-js/modules/es.promise.finally.js b/packages/core-js/modules/es.promise.finally.js index d5644b6f5390..041143479b48 100644 --- a/packages/core-js/modules/es.promise.finally.js +++ b/packages/core-js/modules/es.promise.finally.js @@ -14,13 +14,13 @@ var NativePromisePrototype = NativePromiseConstructor && NativePromiseConstructo // Safari bug https://bugs.webkit.org/show_bug.cgi?id=200829 var NON_GENERIC = !!NativePromiseConstructor && fails(function () { // eslint-disable-next-line unicorn/no-thenable -- required for testing - NativePromisePrototype['finally'].call({ then: function () { /* empty */ } }, function () { /* empty */ }); + NativePromisePrototype.finally.call({ then: function () { /* empty */ } }, function () { /* empty */ }); }); // `Promise.prototype.finally` method // https://tc39.es/ecma262/#sec-promise.prototype.finally $({ target: 'Promise', proto: true, real: true, forced: NON_GENERIC }, { - 'finally': function (onFinally) { + finally: function (onFinally) { var C = speciesConstructor(this, getBuiltIn('Promise')); var isFunction = isCallable(onFinally); return this.then( @@ -36,8 +36,8 @@ $({ target: 'Promise', proto: true, real: true, forced: NON_GENERIC }, { // makes sure that native promise-based APIs `Promise#finally` properly works with patched `Promise#then` if (!IS_PURE && isCallable(NativePromiseConstructor)) { - var method = getBuiltIn('Promise').prototype['finally']; - if (NativePromisePrototype['finally'] !== method) { + var method = getBuiltIn('Promise').prototype.finally; + if (NativePromisePrototype.finally !== method) { defineBuiltIn(NativePromisePrototype, 'finally', method, { unsafe: true }); } } diff --git a/packages/core-js/modules/es.promise.try.js b/packages/core-js/modules/es.promise.try.js index 525b79ca0323..d683c3e7a625 100644 --- a/packages/core-js/modules/es.promise.try.js +++ b/packages/core-js/modules/es.promise.try.js @@ -12,8 +12,8 @@ var Promise = globalThis.Promise; var ACCEPT_ARGUMENTS = false; // Avoiding the use of polyfills of the previous iteration of this proposal // that does not accept arguments of the callback -var FORCED = !Promise || !Promise['try'] || perform(function () { - Promise['try'](function (argument) { +var FORCED = !Promise || !Promise.try || perform(function () { + Promise.try(function (argument) { ACCEPT_ARGUMENTS = argument === 8; }, 8); }).error || !ACCEPT_ARGUMENTS; @@ -21,7 +21,7 @@ var FORCED = !Promise || !Promise['try'] || perform(function () { // `Promise.try` method // https://tc39.es/ecma262/#sec-promise.try $({ target: 'Promise', stat: true, forced: FORCED }, { - 'try': function (callbackfn /* , ...args */) { + try: function (callbackfn /* , ...args */) { var args = arguments.length > 1 ? slice(arguments, 1) : []; var promiseCapability = newPromiseCapabilityModule.f(this); var result = perform(function () { diff --git a/packages/core-js/modules/es.symbol.for.js b/packages/core-js/modules/es.symbol.for.js index e056b6b5dd75..81e8e5eeba98 100644 --- a/packages/core-js/modules/es.symbol.for.js +++ b/packages/core-js/modules/es.symbol.for.js @@ -12,7 +12,7 @@ var SymbolToStringRegistry = shared('symbol-to-string-registry'); // `Symbol.for` method // https://tc39.es/ecma262/#sec-symbol.for $({ target: 'Symbol', stat: true, forced: !NATIVE_SYMBOL_REGISTRY }, { - 'for': function (key) { + for: function (key) { var string = toString(key); if (hasOwn(StringToSymbolRegistry, string)) return StringToSymbolRegistry[string]; var symbol = getBuiltIn('Symbol')(string); diff --git a/packages/core-js/modules/es.typed-array.with.js b/packages/core-js/modules/es.typed-array.with.js index 71d4aa78334e..b22761779474 100644 --- a/packages/core-js/modules/es.typed-array.with.js +++ b/packages/core-js/modules/es.typed-array.with.js @@ -12,7 +12,7 @@ var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod; var PROPER_ORDER = function () { try { // eslint-disable-next-line no-throw-literal, es/no-typed-arrays, es/no-array-prototype-with -- required for testing - new Int8Array(1)['with'](2, { valueOf: function () { throw 8; } }); + new Int8Array(1).with(2, { valueOf: function () { throw 8; } }); } catch (error) { // some early implementations, like WebKit, does not follow the final semantic // https://github.com/tc39/proposal-change-array-by-copy/pull/86 @@ -24,7 +24,7 @@ var PROPER_ORDER = function () { var THROW_ON_NEGATIVE_FRACTIONAL_INDEX = PROPER_ORDER && function () { try { // eslint-disable-next-line es/no-typed-arrays, es/no-array-prototype-with -- required for testing - new Int8Array(1)['with'](-0.5, 1); + new Int8Array(1).with(-0.5, 1); } catch (error) { return true; } @@ -32,9 +32,9 @@ var THROW_ON_NEGATIVE_FRACTIONAL_INDEX = PROPER_ORDER && function () { // `%TypedArray%.prototype.with` method // https://tc39.es/ecma262/#sec-%typedarray%.prototype.with -exportTypedArrayMethod('with', { 'with': function (index, value) { +exportTypedArrayMethod('with', { with: function (index, value) { var O = aTypedArray(this); var relativeIndex = toIntegerOrInfinity(index); var actualValue = isBigIntArray(O) ? toBigInt(value) : +value; return arrayWith(O, getTypedArrayConstructor(O), relativeIndex, actualValue); -} }['with'], !PROPER_ORDER || THROW_ON_NEGATIVE_FRACTIONAL_INDEX); +} }.with, !PROPER_ORDER || THROW_ON_NEGATIVE_FRACTIONAL_INDEX); diff --git a/packages/core-js/modules/es.weak-map.constructor.js b/packages/core-js/modules/es.weak-map.constructor.js index 77562004a2c2..546fc7cde3c9 100644 --- a/packages/core-js/modules/es.weak-map.constructor.js +++ b/packages/core-js/modules/es.weak-map.constructor.js @@ -54,15 +54,15 @@ var hasMSEdgeFreezingBug = function () { if (NATIVE_WEAK_MAP) if (IS_IE11) { InternalWeakMap = collectionWeak.getConstructor(wrapper, 'WeakMap', true); InternalMetadataModule.enable(); - var nativeDelete = uncurryThis(WeakMapPrototype['delete']); + var nativeDelete = uncurryThis(WeakMapPrototype.delete); var nativeHas = uncurryThis(WeakMapPrototype.has); var nativeGet = uncurryThis(WeakMapPrototype.get); defineBuiltIns(WeakMapPrototype, { - 'delete': function (key) { + delete: function (key) { if (isObject(key) && !isExtensible(key)) { var state = enforceInternalState(this); if (!state.frozen) state.frozen = new InternalWeakMap(); - return nativeDelete(this, key) || state.frozen['delete'](key); + return nativeDelete(this, key) || state.frozen.delete(key); } return nativeDelete(this, key); }, has: function has(key) { diff --git a/packages/core-js/modules/esnext.async-iterator.take.js b/packages/core-js/modules/esnext.async-iterator.take.js index c45aa54a3b30..1cf31ec861c9 100644 --- a/packages/core-js/modules/esnext.async-iterator.take.js +++ b/packages/core-js/modules/esnext.async-iterator.take.js @@ -16,7 +16,7 @@ var AsyncIteratorProxy = createAsyncIteratorProxy(function (Promise) { if (!state.remaining--) { var resultDone = createIterResultObject(undefined, true); state.done = true; - returnMethod = iterator['return']; + returnMethod = iterator.return; if (returnMethod !== undefined) { return Promise.resolve(call(returnMethod, iterator, undefined)).then(function () { return resultDone; diff --git a/packages/core-js/modules/esnext.composite-symbol.js b/packages/core-js/modules/esnext.composite-symbol.js index 93f5a08b8e7d..3ec0fc85cf5c 100644 --- a/packages/core-js/modules/esnext.composite-symbol.js +++ b/packages/core-js/modules/esnext.composite-symbol.js @@ -7,7 +7,7 @@ var apply = require('../internals/function-apply'); // https://github.com/tc39/proposal-richer-keys/tree/master/compositeKey $({ global: true, forced: true }, { compositeSymbol: function compositeSymbol() { - if (arguments.length === 1 && typeof arguments[0] == 'string') return getBuiltIn('Symbol')['for'](arguments[0]); + if (arguments.length === 1 && typeof arguments[0] == 'string') return getBuiltIn('Symbol').for(arguments[0]); return apply(getCompositeKeyNode, null, arguments).get('symbol', getBuiltIn('Symbol')); } }); diff --git a/packages/core-js/modules/esnext.reflect.delete-metadata.js b/packages/core-js/modules/esnext.reflect.delete-metadata.js index 13ba13d0e671..07f906de4221 100644 --- a/packages/core-js/modules/esnext.reflect.delete-metadata.js +++ b/packages/core-js/modules/esnext.reflect.delete-metadata.js @@ -13,10 +13,10 @@ $({ target: 'Reflect', stat: true }, { deleteMetadata: function deleteMetadata(metadataKey, target /* , targetKey */) { var targetKey = arguments.length < 3 ? undefined : toMetadataKey(arguments[2]); var metadataMap = getOrCreateMetadataMap(anObject(target), targetKey, false); - if (metadataMap === undefined || !metadataMap['delete'](metadataKey)) return false; + if (metadataMap === undefined || !metadataMap.delete(metadataKey)) return false; if (metadataMap.size) return true; var targetMetadata = store.get(target); - targetMetadata['delete'](targetKey); - return !!targetMetadata.size || store['delete'](target); + targetMetadata.delete(targetKey); + return !!targetMetadata.size || store.delete(target); } }); diff --git a/packages/core-js/modules/web.url-search-params.constructor.js b/packages/core-js/modules/web.url-search-params.constructor.js index f7db6ffdc99a..59b9b8284b96 100644 --- a/packages/core-js/modules/web.url-search-params.constructor.js +++ b/packages/core-js/modules/web.url-search-params.constructor.js @@ -315,7 +315,7 @@ defineBuiltIns(URLSearchParamsPrototype, { }, // `URLSearchParams.prototype.delete` method // https://url.spec.whatwg.org/#dom-urlsearchparams-delete - 'delete': function (name /* , value */) { + delete: function (name /* , value */) { var state = getInternalParamsState(this); var length = validateArgumentsLength(arguments.length, 1); var entries = state.entries; diff --git a/packages/core-js/modules/web.url-search-params.delete.js b/packages/core-js/modules/web.url-search-params.delete.js index 0d8023a1a990..78c1a10baebd 100644 --- a/packages/core-js/modules/web.url-search-params.delete.js +++ b/packages/core-js/modules/web.url-search-params.delete.js @@ -7,15 +7,15 @@ var validateArgumentsLength = require('../internals/validate-arguments-length'); var $URLSearchParams = URLSearchParams; var URLSearchParamsPrototype = $URLSearchParams.prototype; var append = uncurryThis(URLSearchParamsPrototype.append); -var $delete = uncurryThis(URLSearchParamsPrototype['delete']); +var $delete = uncurryThis(URLSearchParamsPrototype.delete); var forEach = uncurryThis(URLSearchParamsPrototype.forEach); var push = uncurryThis([].push); var params = new $URLSearchParams('a=1&a=2&b=3'); -params['delete']('a', 1); +params.delete('a', 1); // `undefined` case is a Chromium 117 bug // https://bugs.chromium.org/p/v8/issues/detail?id=14222 -params['delete']('b', undefined); +params.delete('b', undefined); if (params + '' !== 'a=2') { defineBuiltIn(URLSearchParamsPrototype, 'delete', function (name /* , value */) { diff --git a/scripts/bundle-package/bundle-package.mjs b/scripts/bundle-package/bundle-package.mjs index 473ddc2adaa4..b1fe5a5174dd 100644 --- a/scripts/bundle-package/bundle-package.mjs +++ b/scripts/bundle-package/bundle-package.mjs @@ -24,7 +24,6 @@ async function bundle({ bundled, minified, options = {} }) { const { code, map } = await minify(source, { ecma: 3, - ie8: true, safari10: true, keep_fnames: true, compress: { diff --git a/tests/compat/tests.js b/tests/compat/tests.js index 8bddd244cde5..13619aab2666 100644 --- a/tests/compat/tests.js +++ b/tests/compat/tests.js @@ -82,7 +82,7 @@ var SYMBOLS_SUPPORT = function () { }; var SYMBOL_REGISTRY = [SYMBOLS_SUPPORT, function () { - return Symbol['for'] && Symbol.keyFor; + return Symbol.for && Symbol.keyFor; }]; var URL_AND_URL_SEARCH_PARAMS_SUPPORT = function () { @@ -92,7 +92,7 @@ var URL_AND_URL_SEARCH_PARAMS_SUPPORT = function () { var result = ''; url.pathname = 'c%20d'; searchParams.forEach(function (value, key) { - searchParams['delete']('b'); + searchParams.delete('b'); result += key + value; }); return searchParams.sort @@ -127,7 +127,7 @@ var SAFE_ITERATION_CLOSING_SUPPORT = function () { next: function () { return { done: !!called++ }; }, - 'return': function () { + return: function () { SAFE_CLOSING = true; } }; @@ -329,7 +329,7 @@ function checkIteratorClosingOnEarlyError(METHOD_NAME, ExpectedError) { try { Iterator.prototype[METHOD_NAME].call({ next: function () { return { done: true }; }, - 'return': function () { CLOSED = true; } + return: function () { CLOSED = true; } }, -1); } catch (error) { // https://bugs.webkit.org/show_bug.cgi?id=291195 @@ -676,7 +676,7 @@ GLOBAL.tests = { 'es.array.with': function () { // Incorrect exception thrown when index coercion fails in Firefox try { - []['with']({ valueOf: function () { throw 4; } }, null); + [].with({ valueOf: function () { throw 4; } }, null); } catch (error) { return error === 4; } @@ -789,7 +789,7 @@ GLOBAL.tests = { ], 'es.iterator.for-each': checkIteratorClosingOnEarlyError('forEach', TypeError), 'es.iterator.from': function () { - Iterator.from({ 'return': null })['return'](); + Iterator.from({ return: null }).return(); return true; }, 'es.iterator.map': [ @@ -1105,7 +1105,7 @@ GLOBAL.tests = { 'es.promise.catch': PROMISES_SUPPORT, 'es.promise.finally': [PROMISES_SUPPORT, function () { // eslint-disable-next-line unicorn/no-thenable -- required for testing - return Promise.prototype['finally'].call({ then: function () { return this; } }, function () { /* empty */ }); + return Promise.prototype.finally.call({ then: function () { return this; } }, function () { /* empty */ }); }], 'es.promise.reject': PROMISES_SUPPORT, 'es.promise.resolve': PROMISES_SUPPORT, @@ -1123,7 +1123,7 @@ GLOBAL.tests = { }], 'es.promise.try': [PROMISES_SUPPORT, function () { var ACCEPT_ARGUMENTS = false; - Promise['try'](function (argument) { + Promise.try(function (argument) { ACCEPT_ARGUMENTS = argument === 8; }, 8); return ACCEPT_ARGUMENTS; @@ -1686,7 +1686,7 @@ GLOBAL.tests = { }, 'es.typed-array.with': [function () { try { - new Int8Array(1)['with'](2, { valueOf: function () { throw 8; } }); + new Int8Array(1).with(2, { valueOf: function () { throw 8; } }); } catch (error) { return error === 8; } @@ -1695,8 +1695,7 @@ GLOBAL.tests = { // Copyright (C) 2025 André Bargull. All rights reserved. // This code is governed by the BSD license found in the LICENSE file. // https://github.com/tc39/test262/pull/4477/commits/bd47071722d914036280cdd795a6ac6046d1c6f9 - var ta = new Int8Array(1); - var result = ta['with'](-0.5, 1); + var result = new Int8Array(1).with(-0.5, 1); return result[0] === 1; }], 'es.uint8-array.from-base64': function () { @@ -2207,10 +2206,10 @@ GLOBAL.tests = { 'web.url-search-params.constructor': URL_AND_URL_SEARCH_PARAMS_SUPPORT, 'web.url-search-params.delete': [URL_AND_URL_SEARCH_PARAMS_SUPPORT, function () { var params = new URLSearchParams('a=1&a=2&b=3'); - params['delete']('a', 1); + params.delete('a', 1); // `undefined` case is a Chromium 117 bug // https://bugs.chromium.org/p/v8/issues/detail?id=14222 - params['delete']('b', undefined); + params.delete('b', undefined); return params + '' === 'a=2'; }], 'web.url-search-params.has': [URL_AND_URL_SEARCH_PARAMS_SUPPORT, function () { diff --git a/tests/eslint/eslint.config.js b/tests/eslint/eslint.config.js index bc1e55d62d3d..eb072466c0bb 100644 --- a/tests/eslint/eslint.config.js +++ b/tests/eslint/eslint.config.js @@ -1110,8 +1110,6 @@ const noAsyncAwait = { const useES3Syntax = { ...noAsyncAwait, - // encourages use of dot notation whenever possible - 'dot-notation': [ERROR, { allowKeywords: false }], // disallow logical assignment operator shorthand 'logical-assignment-operators': [ERROR, NEVER], // disallow function or variable declarations in nested blocks @@ -1138,8 +1136,6 @@ const useES3Syntax = { 'prefer-template': OFF, // disallow trailing commas in multiline object literals '@stylistic/comma-dangle': [ERROR, NEVER], - // require or disallow use of quotes around object literal property names - '@stylistic/quote-props': [ERROR, 'as-needed', { keywords: true }], // enforce the use of exponentiation (`**`) operator instead of other calculations 'math/prefer-exponentiation-operator': OFF, // prefer lookarounds over capturing group that do not replace @@ -2311,7 +2307,7 @@ export default [ 'tests/@(compat|worker)/*.js', ], languageOptions: { - ecmaVersion: 3, + ecmaVersion: 5, }, rules: useES3Syntax, }, From 7bfdf0e9ad79f4a222b39142a03ada5a74e7dafe Mon Sep 17 00:00:00 2001 From: Denis Pushkarev Date: Fri, 6 Oct 2023 09:49:01 +0700 Subject: [PATCH 100/428] enforce trailing commas in multiline object literals --- .../override/internals/collection.js | 4 +- .../override/internals/map-helpers.js | 2 +- .../override/internals/set-helpers.js | 2 +- .../override/internals/weak-map-helpers.js | 2 +- .../override/internals/weak-set-helpers.js | 2 +- .../override/modules/es.date.to-json.js | 2 +- .../core-js-pure/override/modules/web.self.js | 2 +- .../core-js/internals/add-to-unscopables.js | 2 +- .../internals/array-buffer-view-core.js | 8 +- packages/core-js/internals/array-buffer.js | 12 +-- packages/core-js/internals/array-includes.js | 2 +- .../internals/array-iteration-from-last.js | 2 +- packages/core-js/internals/array-iteration.js | 2 +- packages/core-js/internals/array-reduce.js | 2 +- .../internals/async-from-sync-iterator.js | 2 +- .../internals/async-iterator-create-proxy.js | 2 +- .../internals/async-iterator-iteration.js | 2 +- packages/core-js/internals/base64-map.js | 2 +- .../check-correctness-of-iteration.js | 4 +- .../core-js/internals/collection-strong.js | 16 ++-- packages/core-js/internals/collection-weak.js | 12 +-- .../internals/create-property-descriptor.js | 2 +- packages/core-js/internals/define-built-in.js | 2 +- .../internals/dom-exception-constants.js | 2 +- packages/core-js/internals/dom-iterables.js | 2 +- packages/core-js/internals/enum-bug-keys.js | 2 +- packages/core-js/internals/function-name.js | 2 +- .../core-js/internals/get-iterator-direct.js | 2 +- packages/core-js/internals/get-set-record.js | 2 +- packages/core-js/internals/ieee754.js | 2 +- .../core-js/internals/internal-metadata.js | 6 +- packages/core-js/internals/internal-state.js | 2 +- .../internals/iterator-create-proxy.js | 2 +- packages/core-js/internals/iterator-define.js | 2 +- ...r-helper-without-closing-on-early-error.js | 2 +- packages/core-js/internals/iterator-window.js | 2 +- packages/core-js/internals/iterator-zip.js | 2 +- packages/core-js/internals/iterators-core.js | 2 +- packages/core-js/internals/map-helpers.js | 2 +- packages/core-js/internals/object-assign.js | 4 +- .../internals/object-define-property.js | 2 +- packages/core-js/internals/object-to-array.js | 2 +- .../core-js/internals/parse-json-string.js | 2 +- .../promise-constructor-detection.js | 2 +- packages/core-js/internals/proxy-accessor.js | 2 +- packages/core-js/internals/queue.js | 2 +- .../core-js/internals/reflect-metadata.js | 2 +- .../internals/regexp-flags-detection.js | 2 +- .../internals/regexp-sticky-helpers.js | 2 +- packages/core-js/internals/set-helpers.js | 2 +- .../internals/set-method-accept-set-like.js | 6 +- ...ethod-get-keys-before-cloning-detection.js | 4 +- packages/core-js/internals/set-species.js | 2 +- packages/core-js/internals/shared-store.js | 2 +- .../core-js/internals/string-multibyte.js | 2 +- packages/core-js/internals/string-pad.js | 2 +- packages/core-js/internals/string-trim.js | 2 +- packages/core-js/internals/task.js | 2 +- .../internals/typed-array-constructor.js | 8 +- .../core-js/internals/uint8-from-base64.js | 2 +- .../internals/v8-prototype-define-bug.js | 2 +- .../core-js/internals/weak-map-helpers.js | 2 +- .../core-js/internals/weak-set-helpers.js | 2 +- .../internals/well-known-symbol-define.js | 2 +- .../modules/es.aggregate-error.cause.js | 2 +- .../modules/es.aggregate-error.constructor.js | 4 +- .../modules/es.array-buffer.constructor.js | 2 +- .../modules/es.array-buffer.detached.js | 2 +- .../modules/es.array-buffer.is-view.js | 2 +- .../core-js/modules/es.array-buffer.slice.js | 2 +- ...s.array-buffer.transfer-to-fixed-length.js | 2 +- .../modules/es.array-buffer.transfer.js | 2 +- packages/core-js/modules/es.array.at.js | 2 +- packages/core-js/modules/es.array.concat.js | 2 +- .../core-js/modules/es.array.copy-within.js | 2 +- packages/core-js/modules/es.array.every.js | 2 +- packages/core-js/modules/es.array.fill.js | 2 +- packages/core-js/modules/es.array.filter.js | 2 +- .../core-js/modules/es.array.find-index.js | 2 +- .../modules/es.array.find-last-index.js | 2 +- .../core-js/modules/es.array.find-last.js | 2 +- packages/core-js/modules/es.array.find.js | 2 +- packages/core-js/modules/es.array.flat-map.js | 2 +- packages/core-js/modules/es.array.flat.js | 2 +- packages/core-js/modules/es.array.for-each.js | 2 +- .../core-js/modules/es.array.from-async.js | 2 +- packages/core-js/modules/es.array.from.js | 2 +- packages/core-js/modules/es.array.includes.js | 2 +- packages/core-js/modules/es.array.index-of.js | 2 +- packages/core-js/modules/es.array.iterator.js | 2 +- packages/core-js/modules/es.array.join.js | 2 +- .../core-js/modules/es.array.last-index-of.js | 2 +- packages/core-js/modules/es.array.map.js | 2 +- packages/core-js/modules/es.array.of.js | 2 +- packages/core-js/modules/es.array.push.js | 2 +- .../core-js/modules/es.array.reduce-right.js | 2 +- packages/core-js/modules/es.array.reduce.js | 2 +- packages/core-js/modules/es.array.reverse.js | 2 +- packages/core-js/modules/es.array.slice.js | 2 +- packages/core-js/modules/es.array.some.js | 2 +- packages/core-js/modules/es.array.sort.js | 2 +- packages/core-js/modules/es.array.splice.js | 2 +- .../core-js/modules/es.array.to-reversed.js | 2 +- .../core-js/modules/es.array.to-sorted.js | 2 +- .../core-js/modules/es.array.to-spliced.js | 2 +- packages/core-js/modules/es.array.unshift.js | 2 +- packages/core-js/modules/es.array.with.js | 2 +- .../es.async-disposable-stack.constructor.js | 8 +- .../modules/es.data-view.constructor.js | 2 +- .../modules/es.data-view.get-float16.js | 2 +- .../modules/es.data-view.set-float16.js | 2 +- packages/core-js/modules/es.date.get-year.js | 2 +- packages/core-js/modules/es.date.set-year.js | 2 +- .../core-js/modules/es.date.to-gmt-string.js | 2 +- .../core-js/modules/es.date.to-iso-string.js | 2 +- packages/core-js/modules/es.date.to-json.js | 2 +- .../es.disposable-stack.constructor.js | 8 +- packages/core-js/modules/es.error.is-error.js | 2 +- packages/core-js/modules/es.escape.js | 2 +- packages/core-js/modules/es.function.bind.js | 2 +- packages/core-js/modules/es.function.name.js | 2 +- packages/core-js/modules/es.global-this.js | 2 +- .../modules/es.iterator.constructor.js | 4 +- packages/core-js/modules/es.iterator.drop.js | 4 +- packages/core-js/modules/es.iterator.every.js | 2 +- .../core-js/modules/es.iterator.filter.js | 4 +- packages/core-js/modules/es.iterator.find.js | 2 +- .../core-js/modules/es.iterator.flat-map.js | 4 +- .../core-js/modules/es.iterator.for-each.js | 2 +- packages/core-js/modules/es.iterator.from.js | 2 +- packages/core-js/modules/es.iterator.map.js | 4 +- .../core-js/modules/es.iterator.reduce.js | 2 +- packages/core-js/modules/es.iterator.some.js | 2 +- packages/core-js/modules/es.iterator.take.js | 4 +- .../core-js/modules/es.iterator.to-array.js | 2 +- packages/core-js/modules/es.json.stringify.js | 2 +- packages/core-js/modules/es.map.group-by.js | 2 +- packages/core-js/modules/es.math.acosh.js | 2 +- packages/core-js/modules/es.math.asinh.js | 2 +- packages/core-js/modules/es.math.atanh.js | 2 +- packages/core-js/modules/es.math.cbrt.js | 2 +- packages/core-js/modules/es.math.clz32.js | 2 +- packages/core-js/modules/es.math.cosh.js | 2 +- packages/core-js/modules/es.math.f16round.js | 2 +- packages/core-js/modules/es.math.hypot.js | 2 +- packages/core-js/modules/es.math.imul.js | 2 +- packages/core-js/modules/es.math.log10.js | 2 +- packages/core-js/modules/es.math.log2.js | 2 +- packages/core-js/modules/es.math.sign.js | 2 +- packages/core-js/modules/es.math.sinh.js | 2 +- .../core-js/modules/es.math.sum-precise.js | 2 +- packages/core-js/modules/es.math.tanh.js | 2 +- packages/core-js/modules/es.math.trunc.js | 2 +- .../core-js/modules/es.number.constructor.js | 2 +- packages/core-js/modules/es.number.epsilon.js | 2 +- .../core-js/modules/es.number.is-integer.js | 2 +- packages/core-js/modules/es.number.is-nan.js | 2 +- .../modules/es.number.is-safe-integer.js | 2 +- .../modules/es.number.max-safe-integer.js | 2 +- .../modules/es.number.min-safe-integer.js | 2 +- .../core-js/modules/es.number.parse-float.js | 2 +- .../core-js/modules/es.number.parse-int.js | 2 +- .../modules/es.number.to-exponential.js | 2 +- .../core-js/modules/es.number.to-fixed.js | 2 +- .../core-js/modules/es.number.to-precision.js | 2 +- packages/core-js/modules/es.object.assign.js | 2 +- packages/core-js/modules/es.object.create.js | 2 +- .../modules/es.object.define-getter.js | 2 +- .../modules/es.object.define-properties.js | 2 +- .../modules/es.object.define-property.js | 2 +- .../modules/es.object.define-setter.js | 2 +- packages/core-js/modules/es.object.entries.js | 2 +- packages/core-js/modules/es.object.freeze.js | 2 +- .../core-js/modules/es.object.from-entries.js | 2 +- .../es.object.get-own-property-descriptor.js | 2 +- .../es.object.get-own-property-descriptors.js | 2 +- .../es.object.get-own-property-names.js | 2 +- .../es.object.get-own-property-symbols.js | 2 +- .../modules/es.object.get-prototype-of.js | 2 +- .../core-js/modules/es.object.group-by.js | 2 +- packages/core-js/modules/es.object.has-own.js | 2 +- .../modules/es.object.is-extensible.js | 2 +- .../core-js/modules/es.object.is-frozen.js | 2 +- .../core-js/modules/es.object.is-sealed.js | 2 +- packages/core-js/modules/es.object.is.js | 2 +- packages/core-js/modules/es.object.keys.js | 2 +- .../modules/es.object.lookup-getter.js | 2 +- .../modules/es.object.lookup-setter.js | 2 +- .../modules/es.object.prevent-extensions.js | 2 +- packages/core-js/modules/es.object.proto.js | 2 +- packages/core-js/modules/es.object.seal.js | 2 +- .../modules/es.object.set-prototype-of.js | 2 +- packages/core-js/modules/es.object.values.js | 2 +- packages/core-js/modules/es.parse-float.js | 2 +- packages/core-js/modules/es.parse-int.js | 2 +- .../core-js/modules/es.promise.all-settled.js | 2 +- packages/core-js/modules/es.promise.all.js | 2 +- packages/core-js/modules/es.promise.any.js | 2 +- packages/core-js/modules/es.promise.catch.js | 2 +- .../core-js/modules/es.promise.constructor.js | 4 +- .../core-js/modules/es.promise.finally.js | 2 +- packages/core-js/modules/es.promise.race.js | 2 +- packages/core-js/modules/es.promise.reject.js | 2 +- .../core-js/modules/es.promise.resolve.js | 2 +- packages/core-js/modules/es.promise.try.js | 2 +- .../modules/es.promise.with-resolvers.js | 4 +- packages/core-js/modules/es.reflect.apply.js | 2 +- .../core-js/modules/es.reflect.construct.js | 2 +- .../modules/es.reflect.define-property.js | 2 +- .../modules/es.reflect.delete-property.js | 2 +- .../es.reflect.get-own-property-descriptor.js | 2 +- .../modules/es.reflect.get-prototype-of.js | 2 +- packages/core-js/modules/es.reflect.get.js | 2 +- packages/core-js/modules/es.reflect.has.js | 2 +- .../modules/es.reflect.is-extensible.js | 2 +- .../core-js/modules/es.reflect.own-keys.js | 2 +- .../modules/es.reflect.prevent-extensions.js | 2 +- .../modules/es.reflect.set-prototype-of.js | 2 +- packages/core-js/modules/es.reflect.set.js | 2 +- packages/core-js/modules/es.regexp.dot-all.js | 2 +- packages/core-js/modules/es.regexp.escape.js | 4 +- packages/core-js/modules/es.regexp.exec.js | 2 +- packages/core-js/modules/es.regexp.flags.js | 2 +- packages/core-js/modules/es.regexp.sticky.js | 2 +- packages/core-js/modules/es.regexp.test.js | 2 +- packages/core-js/modules/es.set.difference.js | 6 +- .../core-js/modules/es.set.intersection.js | 2 +- .../modules/es.set.is-disjoint-from.js | 2 +- .../core-js/modules/es.set.is-subset-of.js | 2 +- .../core-js/modules/es.set.is-superset-of.js | 2 +- .../modules/es.set.symmetric-difference.js | 2 +- packages/core-js/modules/es.set.union.js | 2 +- packages/core-js/modules/es.string.anchor.js | 2 +- packages/core-js/modules/es.string.at.js | 2 +- packages/core-js/modules/es.string.big.js | 2 +- packages/core-js/modules/es.string.blink.js | 2 +- packages/core-js/modules/es.string.bold.js | 2 +- .../modules/es.string.code-point-at.js | 2 +- .../core-js/modules/es.string.ends-with.js | 2 +- packages/core-js/modules/es.string.fixed.js | 2 +- .../core-js/modules/es.string.fontcolor.js | 2 +- .../core-js/modules/es.string.fontsize.js | 2 +- .../modules/es.string.from-code-point.js | 2 +- .../core-js/modules/es.string.includes.js | 2 +- .../modules/es.string.is-well-formed.js | 2 +- packages/core-js/modules/es.string.italics.js | 2 +- .../core-js/modules/es.string.iterator.js | 2 +- packages/core-js/modules/es.string.link.js | 2 +- .../core-js/modules/es.string.match-all.js | 4 +- packages/core-js/modules/es.string.match.js | 2 +- packages/core-js/modules/es.string.pad-end.js | 2 +- .../core-js/modules/es.string.pad-start.js | 2 +- packages/core-js/modules/es.string.raw.js | 2 +- packages/core-js/modules/es.string.repeat.js | 2 +- .../core-js/modules/es.string.replace-all.js | 2 +- packages/core-js/modules/es.string.replace.js | 2 +- packages/core-js/modules/es.string.search.js | 2 +- packages/core-js/modules/es.string.small.js | 2 +- packages/core-js/modules/es.string.split.js | 2 +- .../core-js/modules/es.string.starts-with.js | 2 +- packages/core-js/modules/es.string.strike.js | 2 +- packages/core-js/modules/es.string.sub.js | 2 +- packages/core-js/modules/es.string.substr.js | 2 +- packages/core-js/modules/es.string.sup.js | 2 +- .../modules/es.string.to-well-formed.js | 2 +- .../core-js/modules/es.string.trim-end.js | 2 +- .../core-js/modules/es.string.trim-left.js | 2 +- .../core-js/modules/es.string.trim-right.js | 2 +- .../core-js/modules/es.string.trim-start.js | 2 +- packages/core-js/modules/es.string.trim.js | 2 +- .../es.suppressed-error.constructor.js | 4 +- .../core-js/modules/es.symbol.constructor.js | 14 ++-- .../core-js/modules/es.symbol.description.js | 4 +- packages/core-js/modules/es.symbol.for.js | 2 +- packages/core-js/modules/es.symbol.key-for.js | 2 +- .../modules/es.uint8-array.from-base64.js | 2 +- .../modules/es.uint8-array.from-hex.js | 2 +- .../modules/es.uint8-array.set-from-base64.js | 2 +- .../modules/es.uint8-array.set-from-hex.js | 2 +- .../modules/es.uint8-array.to-base64.js | 2 +- .../core-js/modules/es.uint8-array.to-hex.js | 2 +- packages/core-js/modules/es.unescape.js | 2 +- .../modules/es.weak-map.constructor.js | 4 +- .../modules/esnext.array.filter-reject.js | 2 +- .../esnext.array.is-template-object.js | 2 +- .../core-js/modules/esnext.array.unique-by.js | 2 +- .../esnext.async-iterator.constructor.js | 2 +- .../modules/esnext.async-iterator.drop.js | 4 +- .../modules/esnext.async-iterator.every.js | 2 +- .../modules/esnext.async-iterator.filter.js | 4 +- .../modules/esnext.async-iterator.find.js | 2 +- .../modules/esnext.async-iterator.flat-map.js | 4 +- .../modules/esnext.async-iterator.for-each.js | 2 +- .../modules/esnext.async-iterator.from.js | 2 +- .../modules/esnext.async-iterator.map.js | 4 +- .../modules/esnext.async-iterator.reduce.js | 2 +- .../modules/esnext.async-iterator.some.js | 2 +- .../modules/esnext.async-iterator.take.js | 4 +- .../modules/esnext.async-iterator.to-array.js | 2 +- .../core-js/modules/esnext.composite-key.js | 2 +- .../modules/esnext.composite-symbol.js | 2 +- .../esnext.data-view.get-uint8-clamped.js | 2 +- .../esnext.data-view.set-uint8-clamped.js | 2 +- .../modules/esnext.function.demethodize.js | 2 +- .../modules/esnext.function.is-callable.js | 2 +- .../modules/esnext.function.is-constructor.js | 2 +- .../modules/esnext.function.metadata.js | 2 +- .../core-js/modules/esnext.iterator.chunks.js | 4 +- .../core-js/modules/esnext.iterator.concat.js | 6 +- .../core-js/modules/esnext.iterator.range.js | 6 +- .../modules/esnext.iterator.sliding.js | 2 +- .../modules/esnext.iterator.to-async.js | 2 +- .../modules/esnext.iterator.windows.js | 2 +- .../modules/esnext.iterator.zip-keyed.js | 2 +- .../core-js/modules/esnext.iterator.zip.js | 2 +- .../modules/esnext.json.is-raw-json.js | 2 +- packages/core-js/modules/esnext.json.parse.js | 4 +- .../core-js/modules/esnext.json.raw-json.js | 4 +- .../core-js/modules/esnext.map.delete-all.js | 2 +- .../core-js/modules/esnext.map.emplace.js | 2 +- packages/core-js/modules/esnext.map.every.js | 2 +- packages/core-js/modules/esnext.map.filter.js | 2 +- .../core-js/modules/esnext.map.find-key.js | 2 +- packages/core-js/modules/esnext.map.find.js | 2 +- packages/core-js/modules/esnext.map.from.js | 2 +- .../esnext.map.get-or-insert-computed.js | 2 +- .../modules/esnext.map.get-or-insert.js | 2 +- .../core-js/modules/esnext.map.includes.js | 2 +- packages/core-js/modules/esnext.map.key-by.js | 2 +- packages/core-js/modules/esnext.map.key-of.js | 2 +- .../core-js/modules/esnext.map.map-keys.js | 2 +- .../core-js/modules/esnext.map.map-values.js | 2 +- packages/core-js/modules/esnext.map.merge.js | 2 +- packages/core-js/modules/esnext.map.of.js | 2 +- packages/core-js/modules/esnext.map.reduce.js | 2 +- packages/core-js/modules/esnext.map.some.js | 2 +- packages/core-js/modules/esnext.map.update.js | 2 +- .../modules/esnext.math.deg-per-rad.js | 2 +- .../core-js/modules/esnext.math.degrees.js | 2 +- .../core-js/modules/esnext.math.fscale.js | 2 +- .../modules/esnext.math.rad-per-deg.js | 2 +- .../core-js/modules/esnext.math.radians.js | 2 +- packages/core-js/modules/esnext.math.scale.js | 2 +- .../core-js/modules/esnext.math.signbit.js | 2 +- .../core-js/modules/esnext.number.clamp.js | 2 +- .../modules/esnext.number.from-string.js | 2 +- .../modules/esnext.observable.constructor.js | 20 ++--- .../core-js/modules/esnext.observable.from.js | 2 +- .../core-js/modules/esnext.observable.of.js | 2 +- .../modules/esnext.reflect.define-metadata.js | 2 +- .../modules/esnext.reflect.delete-metadata.js | 2 +- .../esnext.reflect.get-metadata-keys.js | 2 +- .../modules/esnext.reflect.get-metadata.js | 2 +- .../esnext.reflect.get-own-metadata-keys.js | 2 +- .../esnext.reflect.get-own-metadata.js | 2 +- .../modules/esnext.reflect.has-metadata.js | 2 +- .../esnext.reflect.has-own-metadata.js | 2 +- .../modules/esnext.reflect.metadata.js | 2 +- .../core-js/modules/esnext.set.add-all.js | 2 +- .../core-js/modules/esnext.set.delete-all.js | 2 +- packages/core-js/modules/esnext.set.every.js | 2 +- packages/core-js/modules/esnext.set.filter.js | 2 +- packages/core-js/modules/esnext.set.find.js | 2 +- packages/core-js/modules/esnext.set.from.js | 2 +- packages/core-js/modules/esnext.set.join.js | 2 +- packages/core-js/modules/esnext.set.map.js | 2 +- packages/core-js/modules/esnext.set.of.js | 2 +- packages/core-js/modules/esnext.set.reduce.js | 2 +- packages/core-js/modules/esnext.set.some.js | 2 +- .../modules/esnext.string.code-points.js | 4 +- .../core-js/modules/esnext.string.cooked.js | 2 +- .../core-js/modules/esnext.string.dedent.js | 4 +- .../esnext.symbol.is-registered-symbol.js | 2 +- .../esnext.symbol.is-well-known-symbol.js | 2 +- .../modules/esnext.weak-map.delete-all.js | 2 +- .../modules/esnext.weak-map.emplace.js | 2 +- .../core-js/modules/esnext.weak-map.from.js | 2 +- .../esnext.weak-map.get-or-insert-computed.js | 2 +- .../modules/esnext.weak-map.get-or-insert.js | 2 +- .../core-js/modules/esnext.weak-map.of.js | 2 +- .../modules/esnext.weak-set.add-all.js | 2 +- .../modules/esnext.weak-set.delete-all.js | 2 +- .../core-js/modules/esnext.weak-set.from.js | 2 +- .../core-js/modules/esnext.weak-set.of.js | 2 +- packages/core-js/modules/web.atob.js | 2 +- packages/core-js/modules/web.btoa.js | 2 +- .../core-js/modules/web.clear-immediate.js | 2 +- .../modules/web.dom-exception.constructor.js | 4 +- .../modules/web.dom-exception.stack.js | 2 +- .../core-js/modules/web.queue-microtask.js | 2 +- packages/core-js/modules/web.self.js | 4 +- packages/core-js/modules/web.set-immediate.js | 2 +- packages/core-js/modules/web.set-interval.js | 2 +- packages/core-js/modules/web.set-timeout.js | 2 +- .../core-js/modules/web.structured-clone.js | 2 +- .../web.url-search-params.constructor.js | 22 +++--- .../modules/web.url-search-params.size.js | 2 +- packages/core-js/modules/web.url.can-parse.js | 2 +- .../core-js/modules/web.url.constructor.js | 14 ++-- packages/core-js/modules/web.url.parse.js | 2 +- packages/core-js/modules/web.url.to-json.js | 2 +- packages/core-js/postinstall.js | 2 +- .../core-js/stable/dom-collections/index.js | 2 +- packages/core-js/stable/instance/entries.js | 2 +- packages/core-js/stable/instance/for-each.js | 2 +- packages/core-js/stable/instance/keys.js | 2 +- packages/core-js/stable/instance/values.js | 2 +- scripts/bundle-package/bundle-package.mjs | 2 +- tests/compat/browsers-runner.js | 12 +-- tests/compat/tests.js | 78 +++++++++---------- tests/eslint/eslint.config.js | 6 +- 411 files changed, 555 insertions(+), 557 deletions(-) diff --git a/packages/core-js-pure/override/internals/collection.js b/packages/core-js-pure/override/internals/collection.js index 79efa3b27a3b..a8b93ec880de 100644 --- a/packages/core-js-pure/override/internals/collection.js +++ b/packages/core-js-pure/override/internals/collection.js @@ -36,7 +36,7 @@ module.exports = function (CONSTRUCTOR_NAME, wrapper, common) { Constructor = wrapper(function (target, iterable) { setInternalState(anInstance(target, Prototype), { type: CONSTRUCTOR_NAME, - collection: new NativeConstructor() + collection: new NativeConstructor(), }); if (!isNullOrUndefined(iterable)) iterate(iterable, target[ADDER], { that: target, AS_ENTRIES: IS_MAP }); }); @@ -61,7 +61,7 @@ module.exports = function (CONSTRUCTOR_NAME, wrapper, common) { configurable: true, get: function () { return getInternalState(this).collection.size; - } + }, }); } diff --git a/packages/core-js-pure/override/internals/map-helpers.js b/packages/core-js-pure/override/internals/map-helpers.js index a7b06b9a35b2..13381f0e8ccf 100644 --- a/packages/core-js-pure/override/internals/map-helpers.js +++ b/packages/core-js-pure/override/internals/map-helpers.js @@ -10,5 +10,5 @@ module.exports = { get: caller('get', 1), has: caller('has', 1), remove: caller('delete', 1), - proto: Map.prototype + proto: Map.prototype, }; diff --git a/packages/core-js-pure/override/internals/set-helpers.js b/packages/core-js-pure/override/internals/set-helpers.js index 37dec9777c1b..548b22201482 100644 --- a/packages/core-js-pure/override/internals/set-helpers.js +++ b/packages/core-js-pure/override/internals/set-helpers.js @@ -10,5 +10,5 @@ module.exports = { add: caller('add', 1), has: caller('has', 1), remove: caller('delete', 1), - proto: SetPrototype + proto: SetPrototype, }; diff --git a/packages/core-js-pure/override/internals/weak-map-helpers.js b/packages/core-js-pure/override/internals/weak-map-helpers.js index ae8409334f2b..c7232ca3e05b 100644 --- a/packages/core-js-pure/override/internals/weak-map-helpers.js +++ b/packages/core-js-pure/override/internals/weak-map-helpers.js @@ -7,5 +7,5 @@ module.exports = { set: caller('set', 2), get: caller('get', 1), has: caller('has', 1), - remove: caller('delete', 1) + remove: caller('delete', 1), }; diff --git a/packages/core-js-pure/override/internals/weak-set-helpers.js b/packages/core-js-pure/override/internals/weak-set-helpers.js index c006885fbf7f..e16dcaa91369 100644 --- a/packages/core-js-pure/override/internals/weak-set-helpers.js +++ b/packages/core-js-pure/override/internals/weak-set-helpers.js @@ -6,5 +6,5 @@ module.exports = { WeakSet: getBuiltIn('WeakSet'), add: caller('add', 1), has: caller('has', 1), - remove: caller('delete', 1) + remove: caller('delete', 1), }; diff --git a/packages/core-js-pure/override/modules/es.date.to-json.js b/packages/core-js-pure/override/modules/es.date.to-json.js index 9537c0dc007a..7d56e2dff836 100644 --- a/packages/core-js-pure/override/modules/es.date.to-json.js +++ b/packages/core-js-pure/override/modules/es.date.to-json.js @@ -21,5 +21,5 @@ $({ target: 'Date', proto: true, forced: FORCED }, { var pv = toPrimitive(O, 'number'); return typeof pv == 'number' && !isFinite(pv) ? null : (!('toISOString' in O) && classof(O) === 'Date') ? call(toISOString, O) : O.toISOString(); - } + }, }); diff --git a/packages/core-js-pure/override/modules/web.self.js b/packages/core-js-pure/override/modules/web.self.js index 3a7c9e943850..4ee9d73c02db 100644 --- a/packages/core-js-pure/override/modules/web.self.js +++ b/packages/core-js-pure/override/modules/web.self.js @@ -5,5 +5,5 @@ var globalThis = require('../internals/global-this'); // `self` getter // https://html.spec.whatwg.org/multipage/window-object.html#dom-self $({ global: true, forced: globalThis.self !== globalThis }, { - self: globalThis + self: globalThis, }); diff --git a/packages/core-js/internals/add-to-unscopables.js b/packages/core-js/internals/add-to-unscopables.js index c0908db95fbb..c4329dc59005 100644 --- a/packages/core-js/internals/add-to-unscopables.js +++ b/packages/core-js/internals/add-to-unscopables.js @@ -11,7 +11,7 @@ var ArrayPrototype = Array.prototype; if (ArrayPrototype[UNSCOPABLES] === undefined) { defineProperty(ArrayPrototype, UNSCOPABLES, { configurable: true, - value: create(null) + value: create(null), }); } diff --git a/packages/core-js/internals/array-buffer-view-core.js b/packages/core-js/internals/array-buffer-view-core.js index ef8944c199b7..586f85c102a2 100644 --- a/packages/core-js/internals/array-buffer-view-core.js +++ b/packages/core-js/internals/array-buffer-view-core.js @@ -44,12 +44,12 @@ var TypedArrayConstructorsList = { Int32Array: 4, Uint32Array: 4, Float32Array: 4, - Float64Array: 8 + Float64Array: 8, }; var BigIntArrayConstructorsList = { BigInt64Array: 8, - BigUint64Array: 8 + BigUint64Array: 8, }; var isView = function isView(it) { @@ -168,7 +168,7 @@ if (!hasOwn(TypedArrayPrototype, TO_STRING_TAG)) { configurable: true, get: function () { return isObject(this) ? this[TYPED_ARRAY_TAG] : undefined; - } + }, }); for (NAME in TypedArrayConstructorsList) if (globalThis[NAME]) { createNonEnumerableProperty(globalThis[NAME], TYPED_ARRAY_TAG, NAME); @@ -186,5 +186,5 @@ module.exports = { isView: isView, isTypedArray: isTypedArray, TypedArray: TypedArray, - TypedArrayPrototype: TypedArrayPrototype + TypedArrayPrototype: TypedArrayPrototype, }; diff --git a/packages/core-js/internals/array-buffer.js b/packages/core-js/internals/array-buffer.js index df5e6be0b1df..107dc6456bfa 100644 --- a/packages/core-js/internals/array-buffer.js +++ b/packages/core-js/internals/array-buffer.js @@ -75,7 +75,7 @@ var addGetter = function (Constructor, key, getInternalState) { configurable: true, get: function () { return getInternalState(this)[key]; - } + }, }); }; @@ -108,7 +108,7 @@ if (!NATIVE_ARRAY_BUFFER) { setInternalState(this, { type: ARRAY_BUFFER, bytes: fill(Array(byteLength), 0), - byteLength: byteLength + byteLength: byteLength, }); }; @@ -128,7 +128,7 @@ if (!NATIVE_ARRAY_BUFFER) { buffer: buffer, byteLength: byteLength, byteOffset: offset, - bytes: bufferState.bytes + bytes: bufferState.bytes, }); }; @@ -189,7 +189,7 @@ if (!NATIVE_ARRAY_BUFFER) { }, setFloat64: function setFloat64(byteOffset, value /* , littleEndian */) { set(this, 8, byteOffset, packFloat64, value, arguments.length > 2 ? arguments[2] : false); - } + }, }); } else { var INCORRECT_ARRAY_BUFFER_NAME = PROPER_FUNCTION_NAME && NativeArrayBuffer.name !== ARRAY_BUFFER; @@ -235,7 +235,7 @@ if (!NATIVE_ARRAY_BUFFER) { }, setUint8: function setUint8(byteOffset, value) { $setInt8(this, byteOffset, value << 24 >> 24); - } + }, }, { unsafe: true }); } @@ -244,5 +244,5 @@ setToStringTag($DataView, DATA_VIEW); module.exports = { ArrayBuffer: $ArrayBuffer, - DataView: $DataView + DataView: $DataView, }; diff --git a/packages/core-js/internals/array-includes.js b/packages/core-js/internals/array-includes.js index 556d54a7e9fe..f73d142a3a0d 100644 --- a/packages/core-js/internals/array-includes.js +++ b/packages/core-js/internals/array-includes.js @@ -30,5 +30,5 @@ module.exports = { includes: createMethod(true), // `Array.prototype.indexOf` method // https://tc39.es/ecma262/#sec-array.prototype.indexof - indexOf: createMethod(false) + indexOf: createMethod(false), }; diff --git a/packages/core-js/internals/array-iteration-from-last.js b/packages/core-js/internals/array-iteration-from-last.js index aa797243b1aa..b67ab0a43635 100644 --- a/packages/core-js/internals/array-iteration-from-last.js +++ b/packages/core-js/internals/array-iteration-from-last.js @@ -31,5 +31,5 @@ module.exports = { findLast: createMethod(0), // `Array.prototype.findLastIndex` method // https://github.com/tc39/proposal-array-find-from-last - findLastIndex: createMethod(1) + findLastIndex: createMethod(1), }; diff --git a/packages/core-js/internals/array-iteration.js b/packages/core-js/internals/array-iteration.js index 689c885452be..ed7c0af09571 100644 --- a/packages/core-js/internals/array-iteration.js +++ b/packages/core-js/internals/array-iteration.js @@ -70,5 +70,5 @@ module.exports = { findIndex: createMethod(6), // `Array.prototype.filterReject` method // https://github.com/tc39/proposal-array-filtering - filterReject: createMethod(7) + filterReject: createMethod(7), }; diff --git a/packages/core-js/internals/array-reduce.js b/packages/core-js/internals/array-reduce.js index 0c6b6896c407..e29ff6cef109 100644 --- a/packages/core-js/internals/array-reduce.js +++ b/packages/core-js/internals/array-reduce.js @@ -42,5 +42,5 @@ module.exports = { left: createMethod(false), // `Array.prototype.reduceRight` method // https://tc39.es/ecma262/#sec-array.prototype.reduceright - right: createMethod(true) + right: createMethod(true), }; diff --git a/packages/core-js/internals/async-from-sync-iterator.js b/packages/core-js/internals/async-from-sync-iterator.js index 124e73da3ff2..f6d7505de6e1 100644 --- a/packages/core-js/internals/async-from-sync-iterator.js +++ b/packages/core-js/internals/async-from-sync-iterator.js @@ -54,7 +54,7 @@ AsyncFromSyncIterator.prototype = defineBuiltIns(create(AsyncIteratorPrototype), var result = anObject(call($return, iterator)); asyncFromSyncIteratorContinuation(result, resolve, reject, iterator); }); - } + }, }); module.exports = AsyncFromSyncIterator; diff --git a/packages/core-js/internals/async-iterator-create-proxy.js b/packages/core-js/internals/async-iterator-create-proxy.js index 54d3775fce98..ded4ba979833 100644 --- a/packages/core-js/internals/async-iterator-create-proxy.js +++ b/packages/core-js/internals/async-iterator-create-proxy.js @@ -77,7 +77,7 @@ var createAsyncIteratorProxyPrototype = function (IS_ITERATOR) { anObject(resolved); return createIterResultObject(undefined, true); }); - } + }, }); }; diff --git a/packages/core-js/internals/async-iterator-iteration.js b/packages/core-js/internals/async-iterator-iteration.js index f49a9c687162..6e0866dc177d 100644 --- a/packages/core-js/internals/async-iterator-iteration.js +++ b/packages/core-js/internals/async-iterator-iteration.js @@ -91,5 +91,5 @@ module.exports = { // `AsyncIterator.prototype.some` method some: createMethod(3), // `AsyncIterator.prototype.find` method - find: createMethod(4) + find: createMethod(4), }; diff --git a/packages/core-js/internals/base64-map.js b/packages/core-js/internals/base64-map.js index 2bda13a71388..ff423e53fba3 100644 --- a/packages/core-js/internals/base64-map.js +++ b/packages/core-js/internals/base64-map.js @@ -15,5 +15,5 @@ module.exports = { i2c: base64Alphabet, c2i: inverse(base64Alphabet), i2cUrl: base64UrlAlphabet, - c2iUrl: inverse(base64UrlAlphabet) + c2iUrl: inverse(base64UrlAlphabet), }; diff --git a/packages/core-js/internals/check-correctness-of-iteration.js b/packages/core-js/internals/check-correctness-of-iteration.js index f485aed43078..8fba8e1e6372 100644 --- a/packages/core-js/internals/check-correctness-of-iteration.js +++ b/packages/core-js/internals/check-correctness-of-iteration.js @@ -12,7 +12,7 @@ try { }, return: function () { SAFE_CLOSING = true; - } + }, }; iteratorWithReturn[ITERATOR] = function () { return this; @@ -32,7 +32,7 @@ module.exports = function (exec, SKIP_CLOSING) { return { next: function () { return { done: ITERATION_SUPPORT = true }; - } + }, }; }; exec(object); diff --git a/packages/core-js/internals/collection-strong.js b/packages/core-js/internals/collection-strong.js index d5139c3bfb84..a171de813a63 100644 --- a/packages/core-js/internals/collection-strong.js +++ b/packages/core-js/internals/collection-strong.js @@ -24,7 +24,7 @@ module.exports = { index: create(null), first: null, last: null, - size: 0 + size: 0, }); if (!isNullOrUndefined(iterable)) iterate(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP }); }); @@ -48,7 +48,7 @@ module.exports = { value: value, previous: previous = state.last, next: null, - removed: false + removed: false, }; if (!state.first) state.first = entry; if (previous) previous.next = entry; @@ -124,7 +124,7 @@ module.exports = { // https://tc39.es/ecma262/#sec-set.prototype.has has: function has(key) { return !!getEntry(this, key); - } + }, }); defineBuiltIns(Prototype, IS_MAP ? { @@ -138,19 +138,19 @@ module.exports = { // https://tc39.es/ecma262/#sec-map.prototype.set set: function set(key, value) { return define(this, key === 0 ? 0 : key, value); - } + }, } : { // `Set.prototype.add(value)` method // https://tc39.es/ecma262/#sec-set.prototype.add add: function add(value) { return define(this, value = value === 0 ? 0 : value, value); - } + }, }); defineBuiltInAccessor(Prototype, 'size', { configurable: true, get: function () { return getInternalState(this).size; - } + }, }); return Constructor; }, @@ -173,7 +173,7 @@ module.exports = { target: iterated, state: getInternalCollectionState(iterated), kind: kind, - last: null + last: null, }); }, function () { var state = getInternalIteratorState(this); @@ -197,5 +197,5 @@ module.exports = { // https://tc39.es/ecma262/#sec-get-map-@@species // https://tc39.es/ecma262/#sec-get-set-@@species setSpecies(CONSTRUCTOR_NAME); - } + }, }; diff --git a/packages/core-js/internals/collection-weak.js b/packages/core-js/internals/collection-weak.js index bff9f95dbe1e..752a3ab4e0f4 100644 --- a/packages/core-js/internals/collection-weak.js +++ b/packages/core-js/internals/collection-weak.js @@ -52,7 +52,7 @@ UncaughtFrozenStore.prototype = { }); if (~index) splice(this.entries, index, 1); return !!~index; - } + }, }; module.exports = { @@ -62,7 +62,7 @@ module.exports = { setInternalState(that, { type: CONSTRUCTOR_NAME, id: id++, - frozen: null + frozen: null, }); if (!isNullOrUndefined(iterable)) iterate(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP }); }); @@ -99,7 +99,7 @@ module.exports = { var data = getWeakData(key); if (data === true) return uncaughtFrozenStore(state).has(key); return data && hasOwn(data, state.id); - } + }, }); defineBuiltIns(Prototype, IS_MAP ? { @@ -117,15 +117,15 @@ module.exports = { // https://tc39.es/ecma262/#sec-weakmap.prototype.set set: function set(key, value) { return define(this, key, value); - } + }, } : { // `WeakSet.prototype.add(value)` method // https://tc39.es/ecma262/#sec-weakset.prototype.add add: function add(value) { return define(this, value, true); - } + }, }); return Constructor; - } + }, }; diff --git a/packages/core-js/internals/create-property-descriptor.js b/packages/core-js/internals/create-property-descriptor.js index 5ef2773c2a3b..123706ab4177 100644 --- a/packages/core-js/internals/create-property-descriptor.js +++ b/packages/core-js/internals/create-property-descriptor.js @@ -4,6 +4,6 @@ module.exports = function (bitmap, value) { enumerable: !(bitmap & 1), configurable: !(bitmap & 2), writable: !(bitmap & 4), - value: value + value: value, }; }; diff --git a/packages/core-js/internals/define-built-in.js b/packages/core-js/internals/define-built-in.js index 3594306ffe63..df7cd3396ad4 100644 --- a/packages/core-js/internals/define-built-in.js +++ b/packages/core-js/internals/define-built-in.js @@ -22,7 +22,7 @@ module.exports = function (O, key, value, options) { value: value, enumerable: false, configurable: !options.nonConfigurable, - writable: !options.nonWritable + writable: !options.nonWritable, }); } return O; }; diff --git a/packages/core-js/internals/dom-exception-constants.js b/packages/core-js/internals/dom-exception-constants.js index 158895379ddc..1d1b8d8c1f77 100644 --- a/packages/core-js/internals/dom-exception-constants.js +++ b/packages/core-js/internals/dom-exception-constants.js @@ -24,5 +24,5 @@ module.exports = { QuotaExceededError: { s: 'QUOTA_EXCEEDED_ERR', c: 22, m: 1 }, TimeoutError: { s: 'TIMEOUT_ERR', c: 23, m: 1 }, InvalidNodeTypeError: { s: 'INVALID_NODE_TYPE_ERR', c: 24, m: 1 }, - DataCloneError: { s: 'DATA_CLONE_ERR', c: 25, m: 1 } + DataCloneError: { s: 'DATA_CLONE_ERR', c: 25, m: 1 }, }; diff --git a/packages/core-js/internals/dom-iterables.js b/packages/core-js/internals/dom-iterables.js index 1dbc1f7f1e44..ed85d66484f3 100644 --- a/packages/core-js/internals/dom-iterables.js +++ b/packages/core-js/internals/dom-iterables.js @@ -32,5 +32,5 @@ module.exports = { StyleSheetList: 0, TextTrackCueList: 0, TextTrackList: 0, - TouchList: 0 + TouchList: 0, }; diff --git a/packages/core-js/internals/enum-bug-keys.js b/packages/core-js/internals/enum-bug-keys.js index a99e8a0c3adb..e52637126cd5 100644 --- a/packages/core-js/internals/enum-bug-keys.js +++ b/packages/core-js/internals/enum-bug-keys.js @@ -7,5 +7,5 @@ module.exports = [ 'propertyIsEnumerable', 'toLocaleString', 'toString', - 'valueOf' + 'valueOf', ]; diff --git a/packages/core-js/internals/function-name.js b/packages/core-js/internals/function-name.js index 0afc1165d6c1..b248b2fbd5b9 100644 --- a/packages/core-js/internals/function-name.js +++ b/packages/core-js/internals/function-name.js @@ -13,5 +13,5 @@ var CONFIGURABLE = EXISTS && getDescriptor(FunctionPrototype, 'name').configurab module.exports = { EXISTS: EXISTS, PROPER: PROPER, - CONFIGURABLE: CONFIGURABLE + CONFIGURABLE: CONFIGURABLE, }; diff --git a/packages/core-js/internals/get-iterator-direct.js b/packages/core-js/internals/get-iterator-direct.js index c6286900ab20..41e05d0fc920 100644 --- a/packages/core-js/internals/get-iterator-direct.js +++ b/packages/core-js/internals/get-iterator-direct.js @@ -5,6 +5,6 @@ module.exports = function (obj) { return { iterator: obj, next: obj.next, - done: false + done: false, }; }; diff --git a/packages/core-js/internals/get-set-record.js b/packages/core-js/internals/get-set-record.js index ab43f32525f8..de25e11e9b18 100644 --- a/packages/core-js/internals/get-set-record.js +++ b/packages/core-js/internals/get-set-record.js @@ -23,7 +23,7 @@ SetRecord.prototype = { }, includes: function (it) { return call(this.has, this.set, it); - } + }, }; // `GetSetRecord` abstract operation diff --git a/packages/core-js/internals/ieee754.js b/packages/core-js/internals/ieee754.js index ae60a47fd74f..345e4fc93f3e 100644 --- a/packages/core-js/internals/ieee754.js +++ b/packages/core-js/internals/ieee754.js @@ -99,5 +99,5 @@ var unpack = function (buffer, mantissaLength) { module.exports = { pack: pack, - unpack: unpack + unpack: unpack, }; diff --git a/packages/core-js/internals/internal-metadata.js b/packages/core-js/internals/internal-metadata.js index df8b33808ddd..08f6398c0bdb 100644 --- a/packages/core-js/internals/internal-metadata.js +++ b/packages/core-js/internals/internal-metadata.js @@ -18,7 +18,7 @@ var id = 0; var setMetadata = function (it) { defineProperty(it, METADATA, { value: { objectID: 'O' + id++, // object ID - weakData: {} // weak collections IDs + weakData: {}, // weak collections IDs } }); }; @@ -75,7 +75,7 @@ var enable = function () { }; $({ target: 'Object', stat: true, forced: true }, { - getOwnPropertyNames: getOwnPropertyNamesExternalModule.f + getOwnPropertyNames: getOwnPropertyNamesExternalModule.f, }); } }; @@ -84,7 +84,7 @@ var meta = module.exports = { enable: enable, fastKey: fastKey, getWeakData: getWeakData, - onFreeze: onFreeze + onFreeze: onFreeze, }; hiddenKeys[METADATA] = true; diff --git a/packages/core-js/internals/internal-state.js b/packages/core-js/internals/internal-state.js index 83e70b642815..48f980e88270 100644 --- a/packages/core-js/internals/internal-state.js +++ b/packages/core-js/internals/internal-state.js @@ -67,5 +67,5 @@ module.exports = { get: get, has: has, enforce: enforce, - getterFor: getterFor + getterFor: getterFor, }; diff --git a/packages/core-js/internals/iterator-create-proxy.js b/packages/core-js/internals/iterator-create-proxy.js index 29660246c084..0f5ccdc3e96e 100644 --- a/packages/core-js/internals/iterator-create-proxy.js +++ b/packages/core-js/internals/iterator-create-proxy.js @@ -57,7 +57,7 @@ var createIteratorProxyPrototype = function (IS_ITERATOR) { } if (iterator) iteratorClose(iterator, NORMAL); return createIterResultObject(undefined, true); - } + }, }); }; diff --git a/packages/core-js/internals/iterator-define.js b/packages/core-js/internals/iterator-define.js index c1eebd48e904..8d8aff1f7013 100644 --- a/packages/core-js/internals/iterator-define.js +++ b/packages/core-js/internals/iterator-define.js @@ -83,7 +83,7 @@ module.exports = function (Iterable, NAME, IteratorConstructor, next, DEFAULT, I methods = { values: getIterationMethod(VALUES), keys: IS_SET ? defaultIterator : getIterationMethod(KEYS), - entries: getIterationMethod(ENTRIES) + entries: getIterationMethod(ENTRIES), }; if (FORCED) for (KEY in methods) { if (BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME || !(KEY in IterablePrototype)) { diff --git a/packages/core-js/internals/iterator-helper-without-closing-on-early-error.js b/packages/core-js/internals/iterator-helper-without-closing-on-early-error.js index 2a6ec217f9ec..fd032ed67c05 100644 --- a/packages/core-js/internals/iterator-helper-without-closing-on-early-error.js +++ b/packages/core-js/internals/iterator-helper-without-closing-on-early-error.js @@ -12,7 +12,7 @@ module.exports = function (METHOD_NAME, ExpectedError) { if (method) try { method.call({ next: function () { return { done: true }; }, - return: function () { CLOSED = true; } + return: function () { CLOSED = true; }, }, -1); } catch (error) { // https://bugs.webkit.org/show_bug.cgi?id=291195 diff --git a/packages/core-js/internals/iterator-window.js b/packages/core-js/internals/iterator-window.js index 4e73f7aa50b7..92ea30d41d41 100644 --- a/packages/core-js/internals/iterator-window.js +++ b/packages/core-js/internals/iterator-window.js @@ -45,6 +45,6 @@ module.exports = function (O, windowSize, undersized) { return new IteratorProxy(getIteratorDirect(O), { windowSize: windowSize, buffer: [], - allowPartial: undersized === ALLOW_PARTIAL + allowPartial: undersized === ALLOW_PARTIAL, }); }; diff --git a/packages/core-js/internals/iterator-zip.js b/packages/core-js/internals/iterator-zip.js index 57f6df463a2e..0f076f0164cc 100644 --- a/packages/core-js/internals/iterator-zip.js +++ b/packages/core-js/internals/iterator-zip.js @@ -95,6 +95,6 @@ module.exports = function (iters, mode, padding, finishResults) { openItersCount: iterCount, mode: mode, padding: padding, - finishResults: finishResults + finishResults: finishResults, }); }; diff --git a/packages/core-js/internals/iterators-core.js b/packages/core-js/internals/iterators-core.js index 9ebcaae6048c..6145ab6da7d7 100644 --- a/packages/core-js/internals/iterators-core.js +++ b/packages/core-js/internals/iterators-core.js @@ -45,5 +45,5 @@ if (!isCallable(IteratorPrototype[ITERATOR])) { module.exports = { IteratorPrototype: IteratorPrototype, - BUGGY_SAFARI_ITERATORS: BUGGY_SAFARI_ITERATORS + BUGGY_SAFARI_ITERATORS: BUGGY_SAFARI_ITERATORS, }; diff --git a/packages/core-js/internals/map-helpers.js b/packages/core-js/internals/map-helpers.js index 6e00181183d5..6496d82a26e9 100644 --- a/packages/core-js/internals/map-helpers.js +++ b/packages/core-js/internals/map-helpers.js @@ -11,5 +11,5 @@ module.exports = { get: uncurryThis(MapPrototype.get), has: uncurryThis(MapPrototype.has), remove: uncurryThis(MapPrototype.delete), - proto: MapPrototype + proto: MapPrototype, }; diff --git a/packages/core-js/internals/object-assign.js b/packages/core-js/internals/object-assign.js index c765336bc352..f73ae8eef3c0 100644 --- a/packages/core-js/internals/object-assign.js +++ b/packages/core-js/internals/object-assign.js @@ -23,9 +23,9 @@ module.exports = !$assign || fails(function () { get: function () { defineProperty(this, 'b', { value: 3, - enumerable: false + enumerable: false, }); - } + }, }), { b: 2 })).b !== 1) return true; // should work with symbols and should have deterministic property order (V8 bug) var A = {}; diff --git a/packages/core-js/internals/object-define-property.js b/packages/core-js/internals/object-define-property.js index a193183bbdbf..e3e5cdebc3d7 100644 --- a/packages/core-js/internals/object-define-property.js +++ b/packages/core-js/internals/object-define-property.js @@ -24,7 +24,7 @@ exports.f = V8_PROTOTYPE_DEFINE_BUG ? function defineProperty(O, P, Attributes) Attributes = { configurable: CONFIGURABLE in Attributes ? Attributes[CONFIGURABLE] : current[CONFIGURABLE], enumerable: ENUMERABLE in Attributes ? Attributes[ENUMERABLE] : current[ENUMERABLE], - writable: false + writable: false, }; } } return $defineProperty(O, P, Attributes); diff --git a/packages/core-js/internals/object-to-array.js b/packages/core-js/internals/object-to-array.js index 31ea8a2ecc89..ba09342840ef 100644 --- a/packages/core-js/internals/object-to-array.js +++ b/packages/core-js/internals/object-to-array.js @@ -44,5 +44,5 @@ module.exports = { entries: createMethod(true), // `Object.values` method // https://tc39.es/ecma262/#sec-object.values - values: createMethod(false) + values: createMethod(false), }; diff --git a/packages/core-js/internals/parse-json-string.js b/packages/core-js/internals/parse-json-string.js index 741c0bd81018..b76431dba0f7 100644 --- a/packages/core-js/internals/parse-json-string.js +++ b/packages/core-js/internals/parse-json-string.js @@ -17,7 +17,7 @@ var codePoints = { '\\f': '\f', '\\n': '\n', '\\r': '\r', - '\\t': '\t' + '\\t': '\t', }; var IS_4_HEX_DIGITS = /^[\da-f]{4}$/i; diff --git a/packages/core-js/internals/promise-constructor-detection.js b/packages/core-js/internals/promise-constructor-detection.js index ffa443e91972..4462ddb7e377 100644 --- a/packages/core-js/internals/promise-constructor-detection.js +++ b/packages/core-js/internals/promise-constructor-detection.js @@ -43,5 +43,5 @@ var FORCED_PROMISE_CONSTRUCTOR = isForced('Promise', function () { module.exports = { CONSTRUCTOR: FORCED_PROMISE_CONSTRUCTOR, REJECTION_EVENT: NATIVE_PROMISE_REJECTION_EVENT, - SUBCLASSING: SUBCLASSING + SUBCLASSING: SUBCLASSING, }; diff --git a/packages/core-js/internals/proxy-accessor.js b/packages/core-js/internals/proxy-accessor.js index 8718bb7b721d..a41e3b70434e 100644 --- a/packages/core-js/internals/proxy-accessor.js +++ b/packages/core-js/internals/proxy-accessor.js @@ -5,6 +5,6 @@ module.exports = function (Target, Source, key) { key in Target || defineProperty(Target, key, { configurable: true, get: function () { return Source[key]; }, - set: function (it) { Source[key] = it; } + set: function (it) { Source[key] = it; }, }); }; diff --git a/packages/core-js/internals/queue.js b/packages/core-js/internals/queue.js index 0785558e32ed..70a4505acb9d 100644 --- a/packages/core-js/internals/queue.js +++ b/packages/core-js/internals/queue.js @@ -19,7 +19,7 @@ Queue.prototype = { if (next === null) this.tail = null; return entry.item; } - } + }, }; module.exports = Queue; diff --git a/packages/core-js/internals/reflect-metadata.js b/packages/core-js/internals/reflect-metadata.js index b9a1fcf97532..235a7e7eb81b 100644 --- a/packages/core-js/internals/reflect-metadata.js +++ b/packages/core-js/internals/reflect-metadata.js @@ -58,5 +58,5 @@ module.exports = { get: ordinaryGetOwnMetadata, set: ordinaryDefineOwnMetadata, keys: ordinaryOwnMetadataKeys, - toKey: toMetadataKey + toKey: toMetadataKey, }; diff --git a/packages/core-js/internals/regexp-flags-detection.js b/packages/core-js/internals/regexp-flags-detection.js index b2025a900af6..9a0576b91071 100644 --- a/packages/core-js/internals/regexp-flags-detection.js +++ b/packages/core-js/internals/regexp-flags-detection.js @@ -31,7 +31,7 @@ var FLAGS_GETTER_IS_CORRECT = !fails(function () { global: 'g', ignoreCase: 'i', multiline: 'm', - sticky: 'y' + sticky: 'y', }; if (INDICES_SUPPORT) pairs.hasIndices = 'd'; diff --git a/packages/core-js/internals/regexp-sticky-helpers.js b/packages/core-js/internals/regexp-sticky-helpers.js index 7e266f27632b..b5d54ee97ecc 100644 --- a/packages/core-js/internals/regexp-sticky-helpers.js +++ b/packages/core-js/internals/regexp-sticky-helpers.js @@ -27,5 +27,5 @@ var BROKEN_CARET = UNSUPPORTED_Y || fails(function () { module.exports = { BROKEN_CARET: BROKEN_CARET, MISSED_STICKY: MISSED_STICKY, - UNSUPPORTED_Y: UNSUPPORTED_Y + UNSUPPORTED_Y: UNSUPPORTED_Y, }; diff --git a/packages/core-js/internals/set-helpers.js b/packages/core-js/internals/set-helpers.js index 234c2c61d14b..a12fe9ead4ff 100644 --- a/packages/core-js/internals/set-helpers.js +++ b/packages/core-js/internals/set-helpers.js @@ -10,5 +10,5 @@ module.exports = { add: uncurryThis(SetPrototype.add), has: uncurryThis(SetPrototype.has), remove: uncurryThis(SetPrototype.delete), - proto: SetPrototype + proto: SetPrototype, }; diff --git a/packages/core-js/internals/set-method-accept-set-like.js b/packages/core-js/internals/set-method-accept-set-like.js index 9c0b09591807..48e72a5cdd99 100644 --- a/packages/core-js/internals/set-method-accept-set-like.js +++ b/packages/core-js/internals/set-method-accept-set-like.js @@ -11,9 +11,9 @@ var createSetLike = function (size) { return { next: function () { return { done: true }; - } + }, }; - } + }, }; }; @@ -25,7 +25,7 @@ var createSetLikeWithInfinitySize = function (size) { }, keys: function () { throw new Error('e'); - } + }, }; }; diff --git a/packages/core-js/internals/set-method-get-keys-before-cloning-detection.js b/packages/core-js/internals/set-method-get-keys-before-cloning-detection.js index e2485977c063..780a5c05973d 100644 --- a/packages/core-js/internals/set-method-get-keys-before-cloning-detection.js +++ b/packages/core-js/internals/set-method-get-keys-before-cloning-detection.js @@ -17,9 +17,9 @@ module.exports = function (METHOD_NAME) { return function () { return { done: true }; }; - } + }, }); - } + }, }; var result = baseSet[METHOD_NAME](setLike); diff --git a/packages/core-js/internals/set-species.js b/packages/core-js/internals/set-species.js index 3d979debab8e..68bacb5cdff6 100644 --- a/packages/core-js/internals/set-species.js +++ b/packages/core-js/internals/set-species.js @@ -11,7 +11,7 @@ module.exports = function (CONSTRUCTOR_NAME) { if (Constructor && !Constructor[SPECIES]) { defineBuiltInAccessor(Constructor, SPECIES, { configurable: true, - get: function () { return this; } + get: function () { return this; }, }); } }; diff --git a/packages/core-js/internals/shared-store.js b/packages/core-js/internals/shared-store.js index 17d4f927447d..acb0de20e4f5 100644 --- a/packages/core-js/internals/shared-store.js +++ b/packages/core-js/internals/shared-store.js @@ -11,5 +11,5 @@ var store = module.exports = globalThis[SHARED] || defineGlobalProperty(SHARED, mode: IS_PURE ? 'pure' : 'global', copyright: '© 2014-2025 Denis Pushkarev (zloirock.ru), 2025 CoreJS Company (core-js.io)', license: 'https://github.com/zloirock/core-js/blob/v3.46.0/LICENSE', - source: 'https://github.com/zloirock/core-js' + source: 'https://github.com/zloirock/core-js', }); diff --git a/packages/core-js/internals/string-multibyte.js b/packages/core-js/internals/string-multibyte.js index d4093a7a6ef6..d03c437df1f2 100644 --- a/packages/core-js/internals/string-multibyte.js +++ b/packages/core-js/internals/string-multibyte.js @@ -33,5 +33,5 @@ module.exports = { codeAt: createMethod(false), // `String.prototype.at` method // https://github.com/mathiasbynens/String.prototype.at - charAt: createMethod(true) + charAt: createMethod(true), }; diff --git a/packages/core-js/internals/string-pad.js b/packages/core-js/internals/string-pad.js index 0a1053a1291a..5ed5db066c1a 100644 --- a/packages/core-js/internals/string-pad.js +++ b/packages/core-js/internals/string-pad.js @@ -31,5 +31,5 @@ module.exports = { start: createMethod(false), // `String.prototype.padEnd` method // https://tc39.es/ecma262/#sec-string.prototype.padend - end: createMethod(true) + end: createMethod(true), }; diff --git a/packages/core-js/internals/string-trim.js b/packages/core-js/internals/string-trim.js index 01379b55e56c..9c7013f1a4e1 100644 --- a/packages/core-js/internals/string-trim.js +++ b/packages/core-js/internals/string-trim.js @@ -27,5 +27,5 @@ module.exports = { end: createMethod(2), // `String.prototype.trim` method // https://tc39.es/ecma262/#sec-string.prototype.trim - trim: createMethod(3) + trim: createMethod(3), }; diff --git a/packages/core-js/internals/task.js b/packages/core-js/internals/task.js index 691b36e89c72..d801b7a4baec 100644 --- a/packages/core-js/internals/task.js +++ b/packages/core-js/internals/task.js @@ -113,5 +113,5 @@ if (!set || !clear) { module.exports = { set: set, - clear: clear + clear: clear, }; diff --git a/packages/core-js/internals/typed-array-constructor.js b/packages/core-js/internals/typed-array-constructor.js index da7d33763aa4..ad3a08653fd8 100644 --- a/packages/core-js/internals/typed-array-constructor.js +++ b/packages/core-js/internals/typed-array-constructor.js @@ -54,7 +54,7 @@ var addGetter = function (it, key) { configurable: true, get: function () { return getInternalState(this)[key]; - } + }, }); }; @@ -106,7 +106,7 @@ if (!NATIVE_ARRAY_BUFFER_VIEWS) { $({ target: 'Object', stat: true, forced: !NATIVE_ARRAY_BUFFER_VIEWS }, { getOwnPropertyDescriptor: wrappedGetOwnPropertyDescriptor, - defineProperty: wrappedDefineProperty + defineProperty: wrappedDefineProperty, }); module.exports = function (TYPE, wrapper, CLAMPED) { @@ -137,7 +137,7 @@ module.exports = function (TYPE, wrapper, CLAMPED) { set: function (value) { return setter(this, index, value); }, - enumerable: true + enumerable: true, }); }; @@ -174,7 +174,7 @@ module.exports = function (TYPE, wrapper, CLAMPED) { byteOffset: byteOffset, byteLength: byteLength, length: length, - view: new DataView(buffer) + view: new DataView(buffer), }); while (index < length) addElement(that, index++); }); diff --git a/packages/core-js/internals/uint8-from-base64.js b/packages/core-js/internals/uint8-from-base64.js index 47a3d4382ee1..b1d9b5768a68 100644 --- a/packages/core-js/internals/uint8-from-base64.js +++ b/packages/core-js/internals/uint8-from-base64.js @@ -38,7 +38,7 @@ var decodeBase64Chunk = function (chunk, alphabet, throwOnExtraBits) { var chunkBytes = [ (triplet >> 16) & 255, (triplet >> 8) & 255, - triplet & 255 + triplet & 255, ]; if (chunkLength === 2) { diff --git a/packages/core-js/internals/v8-prototype-define-bug.js b/packages/core-js/internals/v8-prototype-define-bug.js index f7748b4fd886..ffb966c6dfd1 100644 --- a/packages/core-js/internals/v8-prototype-define-bug.js +++ b/packages/core-js/internals/v8-prototype-define-bug.js @@ -7,6 +7,6 @@ module.exports = fails(function () { // eslint-disable-next-line es/no-object-defineproperty -- required for testing return Object.defineProperty(function () { /* empty */ }, 'prototype', { value: 42, - writable: false + writable: false, }).prototype !== 42; }); diff --git a/packages/core-js/internals/weak-map-helpers.js b/packages/core-js/internals/weak-map-helpers.js index dca3140675ed..835ac759a704 100644 --- a/packages/core-js/internals/weak-map-helpers.js +++ b/packages/core-js/internals/weak-map-helpers.js @@ -10,5 +10,5 @@ module.exports = { set: uncurryThis(WeakMapPrototype.set), get: uncurryThis(WeakMapPrototype.get), has: uncurryThis(WeakMapPrototype.has), - remove: uncurryThis(WeakMapPrototype.delete) + remove: uncurryThis(WeakMapPrototype.delete), }; diff --git a/packages/core-js/internals/weak-set-helpers.js b/packages/core-js/internals/weak-set-helpers.js index 2d1d210922ca..a53594a489ec 100644 --- a/packages/core-js/internals/weak-set-helpers.js +++ b/packages/core-js/internals/weak-set-helpers.js @@ -9,5 +9,5 @@ module.exports = { WeakSet: WeakSet, add: uncurryThis(WeakSetPrototype.add), has: uncurryThis(WeakSetPrototype.has), - remove: uncurryThis(WeakSetPrototype.delete) + remove: uncurryThis(WeakSetPrototype.delete), }; diff --git a/packages/core-js/internals/well-known-symbol-define.js b/packages/core-js/internals/well-known-symbol-define.js index f17892ca76a2..9e681174c735 100644 --- a/packages/core-js/internals/well-known-symbol-define.js +++ b/packages/core-js/internals/well-known-symbol-define.js @@ -7,6 +7,6 @@ var defineProperty = require('../internals/object-define-property').f; module.exports = function (NAME) { var Symbol = path.Symbol || (path.Symbol = {}); if (!hasOwn(Symbol, NAME)) defineProperty(Symbol, NAME, { - value: wrappedWellKnownSymbolModule.f(NAME) + value: wrappedWellKnownSymbolModule.f(NAME), }); }; diff --git a/packages/core-js/modules/es.aggregate-error.cause.js b/packages/core-js/modules/es.aggregate-error.cause.js index dfc3b38d2e67..1dcaaeac5bd7 100644 --- a/packages/core-js/modules/es.aggregate-error.cause.js +++ b/packages/core-js/modules/es.aggregate-error.cause.js @@ -19,5 +19,5 @@ $({ global: true, constructor: true, arity: 2, forced: FORCED }, { AggregateError: wrapErrorConstructorWithCause(AGGREGATE_ERROR, function (init) { // eslint-disable-next-line no-unused-vars -- required for functions `.length` return function AggregateError(errors, message) { return apply(init, this, arguments); }; - }, FORCED, true) + }, FORCED, true), }); diff --git a/packages/core-js/modules/es.aggregate-error.constructor.js b/packages/core-js/modules/es.aggregate-error.constructor.js index 0d76dd02e50d..ac8cdbc7c532 100644 --- a/packages/core-js/modules/es.aggregate-error.constructor.js +++ b/packages/core-js/modules/es.aggregate-error.constructor.js @@ -41,11 +41,11 @@ else copyConstructorProperties($AggregateError, $Error, { name: true }); var AggregateErrorPrototype = $AggregateError.prototype = create($Error.prototype, { constructor: createPropertyDescriptor(1, $AggregateError), message: createPropertyDescriptor(1, ''), - name: createPropertyDescriptor(1, 'AggregateError') + name: createPropertyDescriptor(1, 'AggregateError'), }); // `AggregateError` constructor // https://tc39.es/ecma262/#sec-aggregate-error-constructor $({ global: true, constructor: true, arity: 2 }, { - AggregateError: $AggregateError + AggregateError: $AggregateError, }); diff --git a/packages/core-js/modules/es.array-buffer.constructor.js b/packages/core-js/modules/es.array-buffer.constructor.js index 810c906f722e..c4a6e5ca9511 100644 --- a/packages/core-js/modules/es.array-buffer.constructor.js +++ b/packages/core-js/modules/es.array-buffer.constructor.js @@ -11,7 +11,7 @@ var NativeArrayBuffer = globalThis[ARRAY_BUFFER]; // `ArrayBuffer` constructor // https://tc39.es/ecma262/#sec-arraybuffer-constructor $({ global: true, constructor: true, forced: NativeArrayBuffer !== ArrayBuffer }, { - ArrayBuffer: ArrayBuffer + ArrayBuffer: ArrayBuffer, }); setSpecies(ARRAY_BUFFER); diff --git a/packages/core-js/modules/es.array-buffer.detached.js b/packages/core-js/modules/es.array-buffer.detached.js index 6cd9ac54ce90..7431a99048dc 100644 --- a/packages/core-js/modules/es.array-buffer.detached.js +++ b/packages/core-js/modules/es.array-buffer.detached.js @@ -11,6 +11,6 @@ if (!('detached' in ArrayBufferPrototype)) { configurable: true, get: function detached() { return isDetached(this); - } + }, }); } diff --git a/packages/core-js/modules/es.array-buffer.is-view.js b/packages/core-js/modules/es.array-buffer.is-view.js index b83a614b7aa8..ef451f64a31a 100644 --- a/packages/core-js/modules/es.array-buffer.is-view.js +++ b/packages/core-js/modules/es.array-buffer.is-view.js @@ -7,5 +7,5 @@ var NATIVE_ARRAY_BUFFER_VIEWS = ArrayBufferViewCore.NATIVE_ARRAY_BUFFER_VIEWS; // `ArrayBuffer.isView` method // https://tc39.es/ecma262/#sec-arraybuffer.isview $({ target: 'ArrayBuffer', stat: true, forced: !NATIVE_ARRAY_BUFFER_VIEWS }, { - isView: ArrayBufferViewCore.isView + isView: ArrayBufferViewCore.isView, }); diff --git a/packages/core-js/modules/es.array-buffer.slice.js b/packages/core-js/modules/es.array-buffer.slice.js index b337ee5a10e0..a984dd287d6f 100644 --- a/packages/core-js/modules/es.array-buffer.slice.js +++ b/packages/core-js/modules/es.array-buffer.slice.js @@ -35,5 +35,5 @@ $({ target: 'ArrayBuffer', proto: true, unsafe: true, forced: INCORRECT_SLICE }, while (first < fin) { setUint8(viewTarget, index++, getUint8(viewSource, first++)); } return result; - } + }, }); diff --git a/packages/core-js/modules/es.array-buffer.transfer-to-fixed-length.js b/packages/core-js/modules/es.array-buffer.transfer-to-fixed-length.js index bbb98f65da72..aee2a08f8bda 100644 --- a/packages/core-js/modules/es.array-buffer.transfer-to-fixed-length.js +++ b/packages/core-js/modules/es.array-buffer.transfer-to-fixed-length.js @@ -7,5 +7,5 @@ var $transfer = require('../internals/array-buffer-transfer'); if ($transfer) $({ target: 'ArrayBuffer', proto: true }, { transferToFixedLength: function transferToFixedLength() { return $transfer(this, arguments.length ? arguments[0] : undefined, false); - } + }, }); diff --git a/packages/core-js/modules/es.array-buffer.transfer.js b/packages/core-js/modules/es.array-buffer.transfer.js index 94adabae75fa..ba6102c38127 100644 --- a/packages/core-js/modules/es.array-buffer.transfer.js +++ b/packages/core-js/modules/es.array-buffer.transfer.js @@ -7,5 +7,5 @@ var $transfer = require('../internals/array-buffer-transfer'); if ($transfer) $({ target: 'ArrayBuffer', proto: true }, { transfer: function transfer() { return $transfer(this, arguments.length ? arguments[0] : undefined, true); - } + }, }); diff --git a/packages/core-js/modules/es.array.at.js b/packages/core-js/modules/es.array.at.js index 965c266a7896..c1973582df5f 100644 --- a/packages/core-js/modules/es.array.at.js +++ b/packages/core-js/modules/es.array.at.js @@ -14,7 +14,7 @@ $({ target: 'Array', proto: true }, { var relativeIndex = toIntegerOrInfinity(index); var k = relativeIndex >= 0 ? relativeIndex : len + relativeIndex; return (k < 0 || k >= len) ? undefined : O[k]; - } + }, }); addToUnscopables('at'); diff --git a/packages/core-js/modules/es.array.concat.js b/packages/core-js/modules/es.array.concat.js index 1b586b7d53a8..8fa6dfa83006 100644 --- a/packages/core-js/modules/es.array.concat.js +++ b/packages/core-js/modules/es.array.concat.js @@ -54,5 +54,5 @@ $({ target: 'Array', proto: true, arity: 1, forced: FORCED }, { } A.length = n; return A; - } + }, }); diff --git a/packages/core-js/modules/es.array.copy-within.js b/packages/core-js/modules/es.array.copy-within.js index 021ca3cf88ad..04bf2d92000e 100644 --- a/packages/core-js/modules/es.array.copy-within.js +++ b/packages/core-js/modules/es.array.copy-within.js @@ -6,7 +6,7 @@ var addToUnscopables = require('../internals/add-to-unscopables'); // `Array.prototype.copyWithin` method // https://tc39.es/ecma262/#sec-array.prototype.copywithin $({ target: 'Array', proto: true }, { - copyWithin: copyWithin + copyWithin: copyWithin, }); // https://tc39.es/ecma262/#sec-array.prototype-@@unscopables diff --git a/packages/core-js/modules/es.array.every.js b/packages/core-js/modules/es.array.every.js index 61b526e1d4ab..42785a3f5b95 100644 --- a/packages/core-js/modules/es.array.every.js +++ b/packages/core-js/modules/es.array.every.js @@ -10,5 +10,5 @@ var STRICT_METHOD = arrayMethodIsStrict('every'); $({ target: 'Array', proto: true, forced: !STRICT_METHOD }, { every: function every(callbackfn /* , thisArg */) { return $every(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined); - } + }, }); diff --git a/packages/core-js/modules/es.array.fill.js b/packages/core-js/modules/es.array.fill.js index 31e640e4fdbf..3c6197b4cb17 100644 --- a/packages/core-js/modules/es.array.fill.js +++ b/packages/core-js/modules/es.array.fill.js @@ -6,7 +6,7 @@ var addToUnscopables = require('../internals/add-to-unscopables'); // `Array.prototype.fill` method // https://tc39.es/ecma262/#sec-array.prototype.fill $({ target: 'Array', proto: true }, { - fill: fill + fill: fill, }); // https://tc39.es/ecma262/#sec-array.prototype-@@unscopables diff --git a/packages/core-js/modules/es.array.filter.js b/packages/core-js/modules/es.array.filter.js index beb43a5d3386..d5dda426d23a 100644 --- a/packages/core-js/modules/es.array.filter.js +++ b/packages/core-js/modules/es.array.filter.js @@ -11,5 +11,5 @@ var HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('filter'); $({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, { filter: function filter(callbackfn /* , thisArg */) { return $filter(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined); - } + }, }); diff --git a/packages/core-js/modules/es.array.find-index.js b/packages/core-js/modules/es.array.find-index.js index ba3fd9fb74eb..839aac2e0c51 100644 --- a/packages/core-js/modules/es.array.find-index.js +++ b/packages/core-js/modules/es.array.find-index.js @@ -15,7 +15,7 @@ if (FIND_INDEX in []) Array(1)[FIND_INDEX](function () { SKIPS_HOLES = false; }) $({ target: 'Array', proto: true, forced: SKIPS_HOLES }, { findIndex: function findIndex(callbackfn /* , that = undefined */) { return $findIndex(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined); - } + }, }); // https://tc39.es/ecma262/#sec-array.prototype-@@unscopables diff --git a/packages/core-js/modules/es.array.find-last-index.js b/packages/core-js/modules/es.array.find-last-index.js index 82d8984de683..5ab5abf320a3 100644 --- a/packages/core-js/modules/es.array.find-last-index.js +++ b/packages/core-js/modules/es.array.find-last-index.js @@ -8,7 +8,7 @@ var addToUnscopables = require('../internals/add-to-unscopables'); $({ target: 'Array', proto: true }, { findLastIndex: function findLastIndex(callbackfn /* , that = undefined */) { return $findLastIndex(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined); - } + }, }); addToUnscopables('findLastIndex'); diff --git a/packages/core-js/modules/es.array.find-last.js b/packages/core-js/modules/es.array.find-last.js index 479c17330105..2c00b6046b54 100644 --- a/packages/core-js/modules/es.array.find-last.js +++ b/packages/core-js/modules/es.array.find-last.js @@ -8,7 +8,7 @@ var addToUnscopables = require('../internals/add-to-unscopables'); $({ target: 'Array', proto: true }, { findLast: function findLast(callbackfn /* , that = undefined */) { return $findLast(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined); - } + }, }); addToUnscopables('findLast'); diff --git a/packages/core-js/modules/es.array.find.js b/packages/core-js/modules/es.array.find.js index f7fab66f5257..cc8eec15772a 100644 --- a/packages/core-js/modules/es.array.find.js +++ b/packages/core-js/modules/es.array.find.js @@ -15,7 +15,7 @@ if (FIND in []) Array(1)[FIND](function () { SKIPS_HOLES = false; }); $({ target: 'Array', proto: true, forced: SKIPS_HOLES }, { find: function find(callbackfn /* , that = undefined */) { return $find(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined); - } + }, }); // https://tc39.es/ecma262/#sec-array.prototype-@@unscopables diff --git a/packages/core-js/modules/es.array.flat-map.js b/packages/core-js/modules/es.array.flat-map.js index 9b177dececcf..9a1865b7d23b 100644 --- a/packages/core-js/modules/es.array.flat-map.js +++ b/packages/core-js/modules/es.array.flat-map.js @@ -17,5 +17,5 @@ $({ target: 'Array', proto: true }, { A = arraySpeciesCreate(O, 0); A.length = flattenIntoArray(A, O, O, sourceLen, 0, 1, callbackfn, arguments.length > 1 ? arguments[1] : undefined); return A; - } + }, }); diff --git a/packages/core-js/modules/es.array.flat.js b/packages/core-js/modules/es.array.flat.js index 146adecf093b..862515ee9183 100644 --- a/packages/core-js/modules/es.array.flat.js +++ b/packages/core-js/modules/es.array.flat.js @@ -16,5 +16,5 @@ $({ target: 'Array', proto: true }, { var A = arraySpeciesCreate(O, 0); A.length = flattenIntoArray(A, O, O, sourceLen, 0, depthArg === undefined ? 1 : toIntegerOrInfinity(depthArg)); return A; - } + }, }); diff --git a/packages/core-js/modules/es.array.for-each.js b/packages/core-js/modules/es.array.for-each.js index 6f45b51d740b..2d8be846db6d 100644 --- a/packages/core-js/modules/es.array.for-each.js +++ b/packages/core-js/modules/es.array.for-each.js @@ -6,5 +6,5 @@ var forEach = require('../internals/array-for-each'); // https://tc39.es/ecma262/#sec-array.prototype.foreach // eslint-disable-next-line es/no-array-prototype-foreach -- safe $({ target: 'Array', proto: true, forced: [].forEach !== forEach }, { - forEach: forEach + forEach: forEach, }); diff --git a/packages/core-js/modules/es.array.from-async.js b/packages/core-js/modules/es.array.from-async.js index e18f6c3b3d37..0e32be8a5900 100644 --- a/packages/core-js/modules/es.array.from-async.js +++ b/packages/core-js/modules/es.array.from-async.js @@ -63,5 +63,5 @@ $({ target: 'Array', stat: true, forced: INCORRECT_CONSTRUCTURING }, { : new AsyncFromSyncIterator(getIteratorDirect(getIterator(O, usingSyncIterator))); resolve(toArray(iterator, mapfn, A)); }); - } + }, }); diff --git a/packages/core-js/modules/es.array.from.js b/packages/core-js/modules/es.array.from.js index 0015b09d8c2b..9db05d1cd997 100644 --- a/packages/core-js/modules/es.array.from.js +++ b/packages/core-js/modules/es.array.from.js @@ -11,5 +11,5 @@ var INCORRECT_ITERATION = !checkCorrectnessOfIteration(function (iterable) { // `Array.from` method // https://tc39.es/ecma262/#sec-array.from $({ target: 'Array', stat: true, forced: INCORRECT_ITERATION }, { - from: from + from: from, }); diff --git a/packages/core-js/modules/es.array.includes.js b/packages/core-js/modules/es.array.includes.js index 7ada6d96e528..26125efc3887 100644 --- a/packages/core-js/modules/es.array.includes.js +++ b/packages/core-js/modules/es.array.includes.js @@ -15,7 +15,7 @@ var BROKEN_ON_SPARSE = fails(function () { $({ target: 'Array', proto: true, forced: BROKEN_ON_SPARSE }, { includes: function includes(el /* , fromIndex = 0 */) { return $includes(this, el, arguments.length > 1 ? arguments[1] : undefined); - } + }, }); // https://tc39.es/ecma262/#sec-array.prototype-@@unscopables diff --git a/packages/core-js/modules/es.array.index-of.js b/packages/core-js/modules/es.array.index-of.js index 9cca6115e45f..e876129b08e4 100644 --- a/packages/core-js/modules/es.array.index-of.js +++ b/packages/core-js/modules/es.array.index-of.js @@ -19,5 +19,5 @@ $({ target: 'Array', proto: true, forced: FORCED }, { // convert -0 to +0 ? nativeIndexOf(this, searchElement, fromIndex) || 0 : $indexOf(this, searchElement, fromIndex); - } + }, }); diff --git a/packages/core-js/modules/es.array.iterator.js b/packages/core-js/modules/es.array.iterator.js index b9f4915c71f3..b0b22618447b 100644 --- a/packages/core-js/modules/es.array.iterator.js +++ b/packages/core-js/modules/es.array.iterator.js @@ -27,7 +27,7 @@ module.exports = defineIterator(Array, 'Array', function (iterated, kind) { type: ARRAY_ITERATOR, target: toIndexedObject(iterated), // target index: 0, // next index - kind: kind // kind + kind: kind, // kind }); // `%ArrayIteratorPrototype%.next` method // https://tc39.es/ecma262/#sec-%arrayiteratorprototype%.next diff --git a/packages/core-js/modules/es.array.join.js b/packages/core-js/modules/es.array.join.js index 9f2ebf2ad8cb..67a8674d9905 100644 --- a/packages/core-js/modules/es.array.join.js +++ b/packages/core-js/modules/es.array.join.js @@ -15,5 +15,5 @@ var FORCED = ES3_STRINGS || !arrayMethodIsStrict('join', ','); $({ target: 'Array', proto: true, forced: FORCED }, { join: function join(separator) { return nativeJoin(toIndexedObject(this), separator === undefined ? ',' : separator); - } + }, }); diff --git a/packages/core-js/modules/es.array.last-index-of.js b/packages/core-js/modules/es.array.last-index-of.js index 0f3cfc529ab1..dde6f8b2046e 100644 --- a/packages/core-js/modules/es.array.last-index-of.js +++ b/packages/core-js/modules/es.array.last-index-of.js @@ -6,5 +6,5 @@ var lastIndexOf = require('../internals/array-last-index-of'); // https://tc39.es/ecma262/#sec-array.prototype.lastindexof // eslint-disable-next-line es/no-array-prototype-lastindexof -- required for testing $({ target: 'Array', proto: true, forced: lastIndexOf !== [].lastIndexOf }, { - lastIndexOf: lastIndexOf + lastIndexOf: lastIndexOf, }); diff --git a/packages/core-js/modules/es.array.map.js b/packages/core-js/modules/es.array.map.js index 4419a0b7e0fe..d0982b29be3a 100644 --- a/packages/core-js/modules/es.array.map.js +++ b/packages/core-js/modules/es.array.map.js @@ -11,5 +11,5 @@ var HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('map'); $({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, { map: function map(callbackfn /* , thisArg */) { return $map(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined); - } + }, }); diff --git a/packages/core-js/modules/es.array.of.js b/packages/core-js/modules/es.array.of.js index 4dbb2341bd50..7d76e4d7bcd8 100644 --- a/packages/core-js/modules/es.array.of.js +++ b/packages/core-js/modules/es.array.of.js @@ -23,5 +23,5 @@ $({ target: 'Array', stat: true, forced: ISNT_GENERIC }, { while (argumentsLength > index) createProperty(result, index, arguments[index++]); result.length = argumentsLength; return result; - } + }, }); diff --git a/packages/core-js/modules/es.array.push.js b/packages/core-js/modules/es.array.push.js index 71db9767d4db..c9a5496982ab 100644 --- a/packages/core-js/modules/es.array.push.js +++ b/packages/core-js/modules/es.array.push.js @@ -38,5 +38,5 @@ $({ target: 'Array', proto: true, arity: 1, forced: FORCED }, { } setArrayLength(O, len); return len; - } + }, }); diff --git a/packages/core-js/modules/es.array.reduce-right.js b/packages/core-js/modules/es.array.reduce-right.js index 495010409f5e..05249a8f25cd 100644 --- a/packages/core-js/modules/es.array.reduce-right.js +++ b/packages/core-js/modules/es.array.reduce-right.js @@ -15,5 +15,5 @@ var FORCED = CHROME_BUG || !arrayMethodIsStrict('reduceRight'); $({ target: 'Array', proto: true, forced: FORCED }, { reduceRight: function reduceRight(callbackfn /* , initialValue */) { return $reduceRight(this, callbackfn, arguments.length, arguments.length > 1 ? arguments[1] : undefined); - } + }, }); diff --git a/packages/core-js/modules/es.array.reduce.js b/packages/core-js/modules/es.array.reduce.js index 42a008edd1b0..396c00db60f8 100644 --- a/packages/core-js/modules/es.array.reduce.js +++ b/packages/core-js/modules/es.array.reduce.js @@ -16,5 +16,5 @@ $({ target: 'Array', proto: true, forced: FORCED }, { reduce: function reduce(callbackfn /* , initialValue */) { var length = arguments.length; return $reduce(this, callbackfn, length, length > 1 ? arguments[1] : undefined); - } + }, }); diff --git a/packages/core-js/modules/es.array.reverse.js b/packages/core-js/modules/es.array.reverse.js index efeafc2ddf18..6b6c84143e25 100644 --- a/packages/core-js/modules/es.array.reverse.js +++ b/packages/core-js/modules/es.array.reverse.js @@ -15,5 +15,5 @@ $({ target: 'Array', proto: true, forced: String(test) === String(test.reverse() // eslint-disable-next-line no-self-assign -- dirty hack if (isArray(this)) this.length = this.length; return nativeReverse(this); - } + }, }); diff --git a/packages/core-js/modules/es.array.slice.js b/packages/core-js/modules/es.array.slice.js index ec449c551a3b..4f391831c3f7 100644 --- a/packages/core-js/modules/es.array.slice.js +++ b/packages/core-js/modules/es.array.slice.js @@ -45,5 +45,5 @@ $({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, { for (n = 0; k < fin; k++, n++) if (k in O) createProperty(result, n, O[k]); result.length = n; return result; - } + }, }); diff --git a/packages/core-js/modules/es.array.some.js b/packages/core-js/modules/es.array.some.js index f1b4462dd72f..4e1ec4904765 100644 --- a/packages/core-js/modules/es.array.some.js +++ b/packages/core-js/modules/es.array.some.js @@ -10,5 +10,5 @@ var STRICT_METHOD = arrayMethodIsStrict('some'); $({ target: 'Array', proto: true, forced: !STRICT_METHOD }, { some: function some(callbackfn /* , thisArg */) { return $some(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined); - } + }, }); diff --git a/packages/core-js/modules/es.array.sort.js b/packages/core-js/modules/es.array.sort.js index 9e9b0fefa1f4..4bf55503f70c 100644 --- a/packages/core-js/modules/es.array.sort.js +++ b/packages/core-js/modules/es.array.sort.js @@ -102,5 +102,5 @@ $({ target: 'Array', proto: true, forced: FORCED }, { while (index < arrayLength) deletePropertyOrThrow(array, index++); return array; - } + }, }); diff --git a/packages/core-js/modules/es.array.splice.js b/packages/core-js/modules/es.array.splice.js index 2da6a7955463..eab65629d24c 100644 --- a/packages/core-js/modules/es.array.splice.js +++ b/packages/core-js/modules/es.array.splice.js @@ -63,5 +63,5 @@ $({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, { } setArrayLength(O, len - actualDeleteCount + insertCount); return A; - } + }, }); diff --git a/packages/core-js/modules/es.array.to-reversed.js b/packages/core-js/modules/es.array.to-reversed.js index 00c5d0d0fba9..3b8db599f32b 100644 --- a/packages/core-js/modules/es.array.to-reversed.js +++ b/packages/core-js/modules/es.array.to-reversed.js @@ -11,7 +11,7 @@ var $Array = Array; $({ target: 'Array', proto: true }, { toReversed: function toReversed() { return arrayToReversed(toIndexedObject(this), $Array); - } + }, }); addToUnscopables('toReversed'); diff --git a/packages/core-js/modules/es.array.to-sorted.js b/packages/core-js/modules/es.array.to-sorted.js index b3ce4786754c..7ef5c3a907e2 100644 --- a/packages/core-js/modules/es.array.to-sorted.js +++ b/packages/core-js/modules/es.array.to-sorted.js @@ -18,7 +18,7 @@ $({ target: 'Array', proto: true }, { var O = toIndexedObject(this); var A = arrayFromConstructorAndList($Array, O); return sort(A, compareFn); - } + }, }); addToUnscopables('toSorted'); diff --git a/packages/core-js/modules/es.array.to-spliced.js b/packages/core-js/modules/es.array.to-spliced.js index cad654eea2c5..01fce6fedc17 100644 --- a/packages/core-js/modules/es.array.to-spliced.js +++ b/packages/core-js/modules/es.array.to-spliced.js @@ -38,7 +38,7 @@ $({ target: 'Array', proto: true }, { for (; k < newLen; k++) A[k] = O[k + actualDeleteCount - insertCount]; return A; - } + }, }); addToUnscopables('toSpliced'); diff --git a/packages/core-js/modules/es.array.unshift.js b/packages/core-js/modules/es.array.unshift.js index 4d31cd894906..326f13a53a4f 100644 --- a/packages/core-js/modules/es.array.unshift.js +++ b/packages/core-js/modules/es.array.unshift.js @@ -41,5 +41,5 @@ $({ target: 'Array', proto: true, arity: 1, forced: FORCED }, { O[j] = arguments[j]; } } return setArrayLength(O, len + argCount); - } + }, }); diff --git a/packages/core-js/modules/es.array.with.js b/packages/core-js/modules/es.array.with.js index dec2a8b19946..9412e85b9445 100644 --- a/packages/core-js/modules/es.array.with.js +++ b/packages/core-js/modules/es.array.with.js @@ -20,5 +20,5 @@ var INCORRECT_EXCEPTION_ON_COERCION_FAIL = (function () { $({ target: 'Array', proto: true, forced: INCORRECT_EXCEPTION_ON_COERCION_FAIL }, { with: function (index, value) { return arrayWith(toIndexedObject(this), $Array, index, value); - } + }, }); diff --git a/packages/core-js/modules/es.async-disposable-stack.constructor.js b/packages/core-js/modules/es.async-disposable-stack.constructor.js index d6dedee39378..35c68e0cffaf 100644 --- a/packages/core-js/modules/es.async-disposable-stack.constructor.js +++ b/packages/core-js/modules/es.async-disposable-stack.constructor.js @@ -37,7 +37,7 @@ var $AsyncDisposableStack = function AsyncDisposableStack() { setInternalState(anInstance(this, AsyncDisposableStackPrototype), { type: ASYNC_DISPOSABLE_STACK, state: PENDING, - stack: [] + stack: [], }); }; @@ -108,14 +108,14 @@ defineBuiltIns(AsyncDisposableStackPrototype, { internalState.stack = []; internalState.state = DISPOSED; return newAsyncDisposableStack; - } + }, }); defineBuiltInAccessor(AsyncDisposableStackPrototype, 'disposed', { configurable: true, get: function disposed() { return getAsyncDisposableStackInternalState(this).state === DISPOSED; - } + }, }); defineBuiltIn(AsyncDisposableStackPrototype, ASYNC_DISPOSE, AsyncDisposableStackPrototype.disposeAsync, { name: 'disposeAsync' }); @@ -126,5 +126,5 @@ defineBuiltIn(AsyncDisposableStackPrototype, TO_STRING_TAG, ASYNC_DISPOSABLE_STA var SYNC_DISPOSE_RETURNING_PROMISE_RESOLUTION_BUG = V8_VERSION && V8_VERSION < 136; $({ global: true, constructor: true, forced: SYNC_DISPOSE_RETURNING_PROMISE_RESOLUTION_BUG }, { - AsyncDisposableStack: $AsyncDisposableStack + AsyncDisposableStack: $AsyncDisposableStack, }); diff --git a/packages/core-js/modules/es.data-view.constructor.js b/packages/core-js/modules/es.data-view.constructor.js index 0c33e768dbf6..2345b63f6a40 100644 --- a/packages/core-js/modules/es.data-view.constructor.js +++ b/packages/core-js/modules/es.data-view.constructor.js @@ -6,5 +6,5 @@ var NATIVE_ARRAY_BUFFER = require('../internals/array-buffer-basic-detection'); // `DataView` constructor // https://tc39.es/ecma262/#sec-dataview-constructor $({ global: true, constructor: true, forced: !NATIVE_ARRAY_BUFFER }, { - DataView: ArrayBufferModule.DataView + DataView: ArrayBufferModule.DataView, }); diff --git a/packages/core-js/modules/es.data-view.get-float16.js b/packages/core-js/modules/es.data-view.get-float16.js index fc5fed500d6d..d06778421ca0 100644 --- a/packages/core-js/modules/es.data-view.get-float16.js +++ b/packages/core-js/modules/es.data-view.get-float16.js @@ -26,5 +26,5 @@ var getUint16 = uncurryThis(DataView.prototype.getUint16); $({ target: 'DataView', proto: true }, { getFloat16: function getFloat16(byteOffset /* , littleEndian */) { return unpackFloat16(getUint16(this, byteOffset, arguments.length > 1 ? arguments[1] : false)); - } + }, }); diff --git a/packages/core-js/modules/es.data-view.set-float16.js b/packages/core-js/modules/es.data-view.set-float16.js index f68038be26c8..d1502c526d39 100644 --- a/packages/core-js/modules/es.data-view.set-float16.js +++ b/packages/core-js/modules/es.data-view.set-float16.js @@ -52,5 +52,5 @@ $({ target: 'DataView', proto: true }, { packFloat16(+value), arguments.length > 2 ? arguments[2] : false ); - } + }, }); diff --git a/packages/core-js/modules/es.date.get-year.js b/packages/core-js/modules/es.date.get-year.js index 3558c192e0a7..4bc0d46f638b 100644 --- a/packages/core-js/modules/es.date.get-year.js +++ b/packages/core-js/modules/es.date.get-year.js @@ -16,5 +16,5 @@ var getFullYear = uncurryThis(Date.prototype.getFullYear); $({ target: 'Date', proto: true, forced: FORCED }, { getYear: function getYear() { return getFullYear(this) - 1900; - } + }, }); diff --git a/packages/core-js/modules/es.date.set-year.js b/packages/core-js/modules/es.date.set-year.js index 0ee20fc07953..09ea5a50304b 100644 --- a/packages/core-js/modules/es.date.set-year.js +++ b/packages/core-js/modules/es.date.set-year.js @@ -16,5 +16,5 @@ $({ target: 'Date', proto: true }, { var yi = toIntegerOrInfinity(year); var yyyy = yi >= 0 && yi <= 99 ? yi + 1900 : yi; return setFullYear(this, yyyy); - } + }, }); diff --git a/packages/core-js/modules/es.date.to-gmt-string.js b/packages/core-js/modules/es.date.to-gmt-string.js index 7be854ea63e0..cd7398eabe3f 100644 --- a/packages/core-js/modules/es.date.to-gmt-string.js +++ b/packages/core-js/modules/es.date.to-gmt-string.js @@ -4,5 +4,5 @@ var $ = require('../internals/export'); // `Date.prototype.toGMTString` method // https://tc39.es/ecma262/#sec-date.prototype.togmtstring $({ target: 'Date', proto: true }, { - toGMTString: Date.prototype.toUTCString + toGMTString: Date.prototype.toUTCString, }); diff --git a/packages/core-js/modules/es.date.to-iso-string.js b/packages/core-js/modules/es.date.to-iso-string.js index d22cd2739e71..37589a5355cd 100644 --- a/packages/core-js/modules/es.date.to-iso-string.js +++ b/packages/core-js/modules/es.date.to-iso-string.js @@ -6,5 +6,5 @@ var toISOString = require('../internals/date-to-iso-string'); // https://tc39.es/ecma262/#sec-date.prototype.toisostring // PhantomJS / old WebKit has a broken implementations $({ target: 'Date', proto: true, forced: Date.prototype.toISOString !== toISOString }, { - toISOString: toISOString + toISOString: toISOString, }); diff --git a/packages/core-js/modules/es.date.to-json.js b/packages/core-js/modules/es.date.to-json.js index 328ee26f75cc..30aab57d9bce 100644 --- a/packages/core-js/modules/es.date.to-json.js +++ b/packages/core-js/modules/es.date.to-json.js @@ -17,5 +17,5 @@ $({ target: 'Date', proto: true, arity: 1, forced: FORCED }, { var O = toObject(this); var pv = toPrimitive(O, 'number'); return typeof pv == 'number' && !isFinite(pv) ? null : O.toISOString(); - } + }, }); diff --git a/packages/core-js/modules/es.disposable-stack.constructor.js b/packages/core-js/modules/es.disposable-stack.constructor.js index 109ad7687886..04238e777934 100644 --- a/packages/core-js/modules/es.disposable-stack.constructor.js +++ b/packages/core-js/modules/es.disposable-stack.constructor.js @@ -35,7 +35,7 @@ var $DisposableStack = function DisposableStack() { setInternalState(anInstance(this, DisposableStackPrototype), { type: DISPOSABLE_STACK, state: PENDING, - stack: [] + stack: [], }); }; @@ -91,19 +91,19 @@ defineBuiltIns(DisposableStackPrototype, { internalState.stack = []; internalState.state = DISPOSED; return newDisposableStack; - } + }, }); defineBuiltInAccessor(DisposableStackPrototype, 'disposed', { configurable: true, get: function disposed() { return getDisposableStackInternalState(this).state === DISPOSED; - } + }, }); defineBuiltIn(DisposableStackPrototype, DISPOSE, DisposableStackPrototype.dispose, { name: 'dispose' }); defineBuiltIn(DisposableStackPrototype, TO_STRING_TAG, DISPOSABLE_STACK, { nonWritable: true }); $({ global: true, constructor: true }, { - DisposableStack: $DisposableStack + DisposableStack: $DisposableStack, }); diff --git a/packages/core-js/modules/es.error.is-error.js b/packages/core-js/modules/es.error.is-error.js index f221548b96fe..d4e2361a168c 100644 --- a/packages/core-js/modules/es.error.is-error.js +++ b/packages/core-js/modules/es.error.is-error.js @@ -33,5 +33,5 @@ $({ target: 'Error', stat: true, sham: true, forced: FORCED }, { if (!isObject(arg)) return false; var tag = classof(arg); return tag === ERROR || tag === DOM_EXCEPTION; - } + }, }); diff --git a/packages/core-js/modules/es.escape.js b/packages/core-js/modules/es.escape.js index 8e96d4efa65a..6b70d9636d46 100644 --- a/packages/core-js/modules/es.escape.js +++ b/packages/core-js/modules/es.escape.js @@ -39,5 +39,5 @@ $({ global: true }, { } } } return result; - } + }, }); diff --git a/packages/core-js/modules/es.function.bind.js b/packages/core-js/modules/es.function.bind.js index f8650c2c2b45..2ed753d3ed0e 100644 --- a/packages/core-js/modules/es.function.bind.js +++ b/packages/core-js/modules/es.function.bind.js @@ -7,5 +7,5 @@ var bind = require('../internals/function-bind'); // https://tc39.es/ecma262/#sec-function.prototype.bind // eslint-disable-next-line es/no-function-prototype-bind -- detection $({ target: 'Function', proto: true, forced: Function.bind !== bind }, { - bind: bind + bind: bind, }); diff --git a/packages/core-js/modules/es.function.name.js b/packages/core-js/modules/es.function.name.js index 1d5dac9bca44..52541181c297 100644 --- a/packages/core-js/modules/es.function.name.js +++ b/packages/core-js/modules/es.function.name.js @@ -20,6 +20,6 @@ if (!FUNCTION_NAME_EXISTS) { } catch (error) { return ''; } - } + }, }); } diff --git a/packages/core-js/modules/es.global-this.js b/packages/core-js/modules/es.global-this.js index 92635853abba..77a9d88eeaed 100644 --- a/packages/core-js/modules/es.global-this.js +++ b/packages/core-js/modules/es.global-this.js @@ -5,5 +5,5 @@ var globalThis = require('../internals/global-this'); // `globalThis` object // https://tc39.es/ecma262/#sec-globalthis $({ global: true, forced: globalThis.globalThis !== globalThis }, { - globalThis: globalThis + globalThis: globalThis, }); diff --git a/packages/core-js/modules/es.iterator.constructor.js b/packages/core-js/modules/es.iterator.constructor.js index 2f79358e7fb5..8c8cb42430a4 100644 --- a/packages/core-js/modules/es.iterator.constructor.js +++ b/packages/core-js/modules/es.iterator.constructor.js @@ -43,7 +43,7 @@ var defineIteratorPrototypeAccessor = function (key, value) { if (this === IteratorPrototype) throw new $TypeError("You can't redefine this property"); if (hasOwn(this, key)) this[key] = replacement; else createProperty(this, key, replacement); - } + }, }); }; @@ -58,5 +58,5 @@ IteratorConstructor.prototype = IteratorPrototype; // `Iterator` constructor // https://tc39.es/ecma262/#sec-iterator $({ global: true, constructor: true, forced: FORCED }, { - Iterator: IteratorConstructor + Iterator: IteratorConstructor, }); diff --git a/packages/core-js/modules/es.iterator.drop.js b/packages/core-js/modules/es.iterator.drop.js index 7d462336b73b..e7d93034e07e 100644 --- a/packages/core-js/modules/es.iterator.drop.js +++ b/packages/core-js/modules/es.iterator.drop.js @@ -47,7 +47,7 @@ $({ target: 'Iterator', proto: true, real: true, forced: FORCED }, { if (dropWithoutClosingOnEarlyError) return call(dropWithoutClosingOnEarlyError, this, remaining); return new IteratorProxy(getIteratorDirect(this), { - remaining: remaining + remaining: remaining, }); - } + }, }); diff --git a/packages/core-js/modules/es.iterator.every.js b/packages/core-js/modules/es.iterator.every.js index f04bc3087a59..16df9f92819a 100644 --- a/packages/core-js/modules/es.iterator.every.js +++ b/packages/core-js/modules/es.iterator.every.js @@ -28,5 +28,5 @@ $({ target: 'Iterator', proto: true, real: true, forced: everyWithoutClosingOnEa return !iterate(record, function (value, stop) { if (!predicate(value, counter++)) return stop(); }, { IS_RECORD: true, INTERRUPTED: true }).stopped; - } + }, }); diff --git a/packages/core-js/modules/es.iterator.filter.js b/packages/core-js/modules/es.iterator.filter.js index 0f33d1e1a1f2..7d72281aebf0 100644 --- a/packages/core-js/modules/es.iterator.filter.js +++ b/packages/core-js/modules/es.iterator.filter.js @@ -45,7 +45,7 @@ $({ target: 'Iterator', proto: true, real: true, forced: FORCED }, { if (filterWithoutClosingOnEarlyError) return call(filterWithoutClosingOnEarlyError, this, predicate); return new IteratorProxy(getIteratorDirect(this), { - predicate: predicate + predicate: predicate, }); - } + }, }); diff --git a/packages/core-js/modules/es.iterator.find.js b/packages/core-js/modules/es.iterator.find.js index 43a4fc88266c..43f234e91f0a 100644 --- a/packages/core-js/modules/es.iterator.find.js +++ b/packages/core-js/modules/es.iterator.find.js @@ -28,5 +28,5 @@ $({ target: 'Iterator', proto: true, real: true, forced: findWithoutClosingOnEar return iterate(record, function (value, stop) { if (predicate(value, counter++)) return stop(value); }, { IS_RECORD: true, INTERRUPTED: true }).result; - } + }, }); diff --git a/packages/core-js/modules/es.iterator.flat-map.js b/packages/core-js/modules/es.iterator.flat-map.js index cc381daf511c..049865c3f6e8 100644 --- a/packages/core-js/modules/es.iterator.flat-map.js +++ b/packages/core-js/modules/es.iterator.flat-map.js @@ -55,7 +55,7 @@ $({ target: 'Iterator', proto: true, real: true, forced: FORCED }, { return new IteratorProxy(getIteratorDirect(this), { mapper: mapper, - inner: null + inner: null, }); - } + }, }); diff --git a/packages/core-js/modules/es.iterator.for-each.js b/packages/core-js/modules/es.iterator.for-each.js index c7dc55f499dd..3e55d5a26adc 100644 --- a/packages/core-js/modules/es.iterator.for-each.js +++ b/packages/core-js/modules/es.iterator.for-each.js @@ -28,5 +28,5 @@ $({ target: 'Iterator', proto: true, real: true, forced: forEachWithoutClosingOn iterate(record, function (value) { fn(value, counter++); }, { IS_RECORD: true }); - } + }, }); diff --git a/packages/core-js/modules/es.iterator.from.js b/packages/core-js/modules/es.iterator.from.js index 4a02ee05abbc..4af41f60c4af 100644 --- a/packages/core-js/modules/es.iterator.from.js +++ b/packages/core-js/modules/es.iterator.from.js @@ -31,5 +31,5 @@ $({ target: 'Iterator', stat: true, forced: FORCED }, { return isPrototypeOf(IteratorPrototype, iteratorRecord.iterator) ? iteratorRecord.iterator : new IteratorProxy(iteratorRecord); - } + }, }); diff --git a/packages/core-js/modules/es.iterator.map.js b/packages/core-js/modules/es.iterator.map.js index 1b298ee8b2c2..e102b8ad24c4 100644 --- a/packages/core-js/modules/es.iterator.map.js +++ b/packages/core-js/modules/es.iterator.map.js @@ -38,7 +38,7 @@ $({ target: 'Iterator', proto: true, real: true, forced: FORCED }, { if (mapWithoutClosingOnEarlyError) return call(mapWithoutClosingOnEarlyError, this, mapper); return new IteratorProxy(getIteratorDirect(this), { - mapper: mapper + mapper: mapper, }); - } + }, }); diff --git a/packages/core-js/modules/es.iterator.reduce.js b/packages/core-js/modules/es.iterator.reduce.js index 964ac1df57f3..1489431d9092 100644 --- a/packages/core-js/modules/es.iterator.reduce.js +++ b/packages/core-js/modules/es.iterator.reduce.js @@ -48,5 +48,5 @@ $({ target: 'Iterator', proto: true, real: true, forced: FAILS_ON_INITIAL_UNDEFI }, { IS_RECORD: true }); if (noInitial) throw new $TypeError('Reduce of empty iterator with no initial value'); return accumulator; - } + }, }); diff --git a/packages/core-js/modules/es.iterator.some.js b/packages/core-js/modules/es.iterator.some.js index b0e6eba0fd7a..0e6385ce483f 100644 --- a/packages/core-js/modules/es.iterator.some.js +++ b/packages/core-js/modules/es.iterator.some.js @@ -28,5 +28,5 @@ $({ target: 'Iterator', proto: true, real: true, forced: someWithoutClosingOnEar return iterate(record, function (value, stop) { if (predicate(value, counter++)) return stop(); }, { IS_RECORD: true, INTERRUPTED: true }).stopped; - } + }, }); diff --git a/packages/core-js/modules/es.iterator.take.js b/packages/core-js/modules/es.iterator.take.js index d9cff0ccbf39..d74dc4b8ac52 100644 --- a/packages/core-js/modules/es.iterator.take.js +++ b/packages/core-js/modules/es.iterator.take.js @@ -38,7 +38,7 @@ $({ target: 'Iterator', proto: true, real: true, forced: IS_PURE || takeWithoutC if (takeWithoutClosingOnEarlyError) return call(takeWithoutClosingOnEarlyError, this, remaining); return new IteratorProxy(getIteratorDirect(this), { - remaining: remaining + remaining: remaining, }); - } + }, }); diff --git a/packages/core-js/modules/es.iterator.to-array.js b/packages/core-js/modules/es.iterator.to-array.js index 79c9da4725b0..104b17401fd3 100644 --- a/packages/core-js/modules/es.iterator.to-array.js +++ b/packages/core-js/modules/es.iterator.to-array.js @@ -13,5 +13,5 @@ $({ target: 'Iterator', proto: true, real: true }, { var result = []; iterate(getIteratorDirect(anObject(this)), push, { that: result, IS_RECORD: true }); return result; - } + }, }); diff --git a/packages/core-js/modules/es.json.stringify.js b/packages/core-js/modules/es.json.stringify.js index 7e72349bf0f8..213e8d84cb40 100644 --- a/packages/core-js/modules/es.json.stringify.js +++ b/packages/core-js/modules/es.json.stringify.js @@ -68,6 +68,6 @@ if ($stringify) { var args = arraySlice(arguments); var result = apply(WRONG_SYMBOLS_CONVERSION ? stringifyWithSymbolsFix : $stringify, null, args); return ILL_FORMED_UNICODE && typeof result == 'string' ? replace(result, tester, fixIllFormed) : result; - } + }, }); } diff --git a/packages/core-js/modules/es.map.group-by.js b/packages/core-js/modules/es.map.group-by.js index 04cb2418ae74..1dd0a98bf039 100644 --- a/packages/core-js/modules/es.map.group-by.js +++ b/packages/core-js/modules/es.map.group-by.js @@ -35,5 +35,5 @@ $({ target: 'Map', stat: true, forced: IS_PURE || DOES_NOT_WORK_WITH_PRIMITIVES else push(get(map, key), value); }); return map; - } + }, }); diff --git a/packages/core-js/modules/es.math.acosh.js b/packages/core-js/modules/es.math.acosh.js index d49bb772e938..cb33486bfd15 100644 --- a/packages/core-js/modules/es.math.acosh.js +++ b/packages/core-js/modules/es.math.acosh.js @@ -22,5 +22,5 @@ $({ target: 'Math', stat: true, forced: FORCED }, { return n < 1 ? NaN : n > 94906265.62425156 ? log(n) + LN2 : log1p(n - 1 + sqrt(n - 1) * sqrt(n + 1)); - } + }, }); diff --git a/packages/core-js/modules/es.math.asinh.js b/packages/core-js/modules/es.math.asinh.js index 0069392e8bad..b518914c745f 100644 --- a/packages/core-js/modules/es.math.asinh.js +++ b/packages/core-js/modules/es.math.asinh.js @@ -17,5 +17,5 @@ var FORCED = !($asinh && 1 / $asinh(0) > 0); // https://tc39.es/ecma262/#sec-math.asinh // Tor Browser bug: Math.asinh(0) -> -0 $({ target: 'Math', stat: true, forced: FORCED }, { - asinh: asinh + asinh: asinh, }); diff --git a/packages/core-js/modules/es.math.atanh.js b/packages/core-js/modules/es.math.atanh.js index 125a1b7a24ce..2e26dc7c79de 100644 --- a/packages/core-js/modules/es.math.atanh.js +++ b/packages/core-js/modules/es.math.atanh.js @@ -14,5 +14,5 @@ $({ target: 'Math', stat: true, forced: FORCED }, { atanh: function atanh(x) { var n = +x; return n === 0 ? n : log((1 + n) / (1 - n)) / 2; - } + }, }); diff --git a/packages/core-js/modules/es.math.cbrt.js b/packages/core-js/modules/es.math.cbrt.js index 1c634cfb8a72..4a0863c950c0 100644 --- a/packages/core-js/modules/es.math.cbrt.js +++ b/packages/core-js/modules/es.math.cbrt.js @@ -11,5 +11,5 @@ $({ target: 'Math', stat: true }, { cbrt: function cbrt(x) { var n = +x; return sign(n) * pow(abs(n), 1 / 3); - } + }, }); diff --git a/packages/core-js/modules/es.math.clz32.js b/packages/core-js/modules/es.math.clz32.js index 65f7ffc0e81f..60890755e215 100644 --- a/packages/core-js/modules/es.math.clz32.js +++ b/packages/core-js/modules/es.math.clz32.js @@ -11,5 +11,5 @@ $({ target: 'Math', stat: true }, { clz32: function clz32(x) { var n = x >>> 0; return n ? 31 - floor(log(n + 0.5) * LOG2E) : 32; - } + }, }); diff --git a/packages/core-js/modules/es.math.cosh.js b/packages/core-js/modules/es.math.cosh.js index 6846eadbbf84..3d7d53534e9d 100644 --- a/packages/core-js/modules/es.math.cosh.js +++ b/packages/core-js/modules/es.math.cosh.js @@ -15,5 +15,5 @@ $({ target: 'Math', stat: true, forced: FORCED }, { cosh: function cosh(x) { var t = expm1(abs(x) - 1) + 1; return (t + 1 / (t * E * E)) * (E / 2); - } + }, }); diff --git a/packages/core-js/modules/es.math.f16round.js b/packages/core-js/modules/es.math.f16round.js index a0df19cc45eb..d0ef46d863a1 100644 --- a/packages/core-js/modules/es.math.f16round.js +++ b/packages/core-js/modules/es.math.f16round.js @@ -11,5 +11,5 @@ var FLOAT16_MIN_VALUE = 6.103515625e-05; $({ target: 'Math', stat: true }, { f16round: function f16round(x) { return floatRound(x, FLOAT16_EPSILON, FLOAT16_MAX_VALUE, FLOAT16_MIN_VALUE); - } + }, }); diff --git a/packages/core-js/modules/es.math.hypot.js b/packages/core-js/modules/es.math.hypot.js index 0c15598d5869..7ac3dab4a9f1 100644 --- a/packages/core-js/modules/es.math.hypot.js +++ b/packages/core-js/modules/es.math.hypot.js @@ -32,5 +32,5 @@ $({ target: 'Math', stat: true, arity: 2, forced: FORCED }, { } else sum += arg; } return larg === Infinity ? Infinity : larg * sqrt(sum); - } + }, }); diff --git a/packages/core-js/modules/es.math.imul.js b/packages/core-js/modules/es.math.imul.js index 23e73b64fc00..3eda3cab8a78 100644 --- a/packages/core-js/modules/es.math.imul.js +++ b/packages/core-js/modules/es.math.imul.js @@ -20,5 +20,5 @@ $({ target: 'Math', stat: true, forced: FORCED }, { var xl = UINT16 & xn; var yl = UINT16 & yn; return 0 | xl * yl + ((UINT16 & xn >>> 16) * yl + xl * (UINT16 & yn >>> 16) << 16 >>> 0); - } + }, }); diff --git a/packages/core-js/modules/es.math.log10.js b/packages/core-js/modules/es.math.log10.js index ebdcea32a76a..a1f80fb8ba76 100644 --- a/packages/core-js/modules/es.math.log10.js +++ b/packages/core-js/modules/es.math.log10.js @@ -5,5 +5,5 @@ var log10 = require('../internals/math-log10'); // `Math.log10` method // https://tc39.es/ecma262/#sec-math.log10 $({ target: 'Math', stat: true }, { - log10: log10 + log10: log10, }); diff --git a/packages/core-js/modules/es.math.log2.js b/packages/core-js/modules/es.math.log2.js index 8fb473393153..bd4b97e7a59c 100644 --- a/packages/core-js/modules/es.math.log2.js +++ b/packages/core-js/modules/es.math.log2.js @@ -5,5 +5,5 @@ var log2 = require('../internals/math-log2'); // `Math.log2` method // https://tc39.es/ecma262/#sec-math.log2 $({ target: 'Math', stat: true }, { - log2: log2 + log2: log2, }); diff --git a/packages/core-js/modules/es.math.sign.js b/packages/core-js/modules/es.math.sign.js index f28f17f14bb7..de79bf8e78ad 100644 --- a/packages/core-js/modules/es.math.sign.js +++ b/packages/core-js/modules/es.math.sign.js @@ -5,5 +5,5 @@ var sign = require('../internals/math-sign'); // `Math.sign` method // https://tc39.es/ecma262/#sec-math.sign $({ target: 'Math', stat: true }, { - sign: sign + sign: sign, }); diff --git a/packages/core-js/modules/es.math.sinh.js b/packages/core-js/modules/es.math.sinh.js index 6e80ba07e241..29e0e9f1e981 100644 --- a/packages/core-js/modules/es.math.sinh.js +++ b/packages/core-js/modules/es.math.sinh.js @@ -19,5 +19,5 @@ $({ target: 'Math', stat: true, forced: FORCED }, { sinh: function sinh(x) { var n = +x; return abs(n) < 1 ? (expm1(n) - expm1(-n)) / 2 : (exp(n - 1) - exp(-n - 1)) * (E / 2); - } + }, }); diff --git a/packages/core-js/modules/es.math.sum-precise.js b/packages/core-js/modules/es.math.sum-precise.js index 80ba8d49d489..81765dc6ec5d 100644 --- a/packages/core-js/modules/es.math.sum-precise.js +++ b/packages/core-js/modules/es.math.sum-precise.js @@ -147,5 +147,5 @@ $({ target: 'Math', stat: true }, { } return hi; - } + }, }); diff --git a/packages/core-js/modules/es.math.tanh.js b/packages/core-js/modules/es.math.tanh.js index a93da241f8c1..6ae952e68fad 100644 --- a/packages/core-js/modules/es.math.tanh.js +++ b/packages/core-js/modules/es.math.tanh.js @@ -12,5 +12,5 @@ $({ target: 'Math', stat: true }, { var a = expm1(n); var b = expm1(-n); return a === Infinity ? 1 : b === Infinity ? -1 : (a - b) / (exp(n) + exp(-n)); - } + }, }); diff --git a/packages/core-js/modules/es.math.trunc.js b/packages/core-js/modules/es.math.trunc.js index 68d99216f1c5..c1944b3432a9 100644 --- a/packages/core-js/modules/es.math.trunc.js +++ b/packages/core-js/modules/es.math.trunc.js @@ -5,5 +5,5 @@ var trunc = require('../internals/math-trunc'); // `Math.trunc` method // https://tc39.es/ecma262/#sec-math.trunc $({ target: 'Math', stat: true }, { - trunc: trunc + trunc: trunc, }); diff --git a/packages/core-js/modules/es.number.constructor.js b/packages/core-js/modules/es.number.constructor.js index d28ce374c399..54b756ac2616 100644 --- a/packages/core-js/modules/es.number.constructor.js +++ b/packages/core-js/modules/es.number.constructor.js @@ -91,7 +91,7 @@ NumberWrapper.prototype = NumberPrototype; if (FORCED && !IS_PURE) NumberPrototype.constructor = NumberWrapper; $({ global: true, constructor: true, wrap: true, forced: FORCED }, { - Number: NumberWrapper + Number: NumberWrapper, }); // Use `internal/copy-constructor-properties` helper in `core-js@4` diff --git a/packages/core-js/modules/es.number.epsilon.js b/packages/core-js/modules/es.number.epsilon.js index 30aa42a2e7e0..e6932c48a1ad 100644 --- a/packages/core-js/modules/es.number.epsilon.js +++ b/packages/core-js/modules/es.number.epsilon.js @@ -4,5 +4,5 @@ var $ = require('../internals/export'); // `Number.EPSILON` constant // https://tc39.es/ecma262/#sec-number.epsilon $({ target: 'Number', stat: true, nonConfigurable: true, nonWritable: true }, { - EPSILON: Math.pow(2, -52) + EPSILON: Math.pow(2, -52), }); diff --git a/packages/core-js/modules/es.number.is-integer.js b/packages/core-js/modules/es.number.is-integer.js index 57620dfe770e..eb2103eb2188 100644 --- a/packages/core-js/modules/es.number.is-integer.js +++ b/packages/core-js/modules/es.number.is-integer.js @@ -5,5 +5,5 @@ var isIntegralNumber = require('../internals/is-integral-number'); // `Number.isInteger` method // https://tc39.es/ecma262/#sec-number.isinteger $({ target: 'Number', stat: true }, { - isInteger: isIntegralNumber + isInteger: isIntegralNumber, }); diff --git a/packages/core-js/modules/es.number.is-nan.js b/packages/core-js/modules/es.number.is-nan.js index d12d708bca2e..3c7f695311f1 100644 --- a/packages/core-js/modules/es.number.is-nan.js +++ b/packages/core-js/modules/es.number.is-nan.js @@ -7,5 +7,5 @@ $({ target: 'Number', stat: true }, { isNaN: function isNaN(number) { // eslint-disable-next-line no-self-compare -- NaN check return number !== number; - } + }, }); diff --git a/packages/core-js/modules/es.number.is-safe-integer.js b/packages/core-js/modules/es.number.is-safe-integer.js index 5720637c0360..f0c8bc1b6322 100644 --- a/packages/core-js/modules/es.number.is-safe-integer.js +++ b/packages/core-js/modules/es.number.is-safe-integer.js @@ -9,5 +9,5 @@ var abs = Math.abs; $({ target: 'Number', stat: true }, { isSafeInteger: function isSafeInteger(number) { return isIntegralNumber(number) && abs(number) <= 0x1FFFFFFFFFFFFF; - } + }, }); diff --git a/packages/core-js/modules/es.number.max-safe-integer.js b/packages/core-js/modules/es.number.max-safe-integer.js index 44e1cbbadb53..dc2468ef5522 100644 --- a/packages/core-js/modules/es.number.max-safe-integer.js +++ b/packages/core-js/modules/es.number.max-safe-integer.js @@ -4,5 +4,5 @@ var $ = require('../internals/export'); // `Number.MAX_SAFE_INTEGER` constant // https://tc39.es/ecma262/#sec-number.max_safe_integer $({ target: 'Number', stat: true, nonConfigurable: true, nonWritable: true }, { - MAX_SAFE_INTEGER: 0x1FFFFFFFFFFFFF + MAX_SAFE_INTEGER: 0x1FFFFFFFFFFFFF, }); diff --git a/packages/core-js/modules/es.number.min-safe-integer.js b/packages/core-js/modules/es.number.min-safe-integer.js index 1d6a87123167..51f0f26db4a3 100644 --- a/packages/core-js/modules/es.number.min-safe-integer.js +++ b/packages/core-js/modules/es.number.min-safe-integer.js @@ -4,5 +4,5 @@ var $ = require('../internals/export'); // `Number.MIN_SAFE_INTEGER` constant // https://tc39.es/ecma262/#sec-number.min_safe_integer $({ target: 'Number', stat: true, nonConfigurable: true, nonWritable: true }, { - MIN_SAFE_INTEGER: -0x1FFFFFFFFFFFFF + MIN_SAFE_INTEGER: -0x1FFFFFFFFFFFFF, }); diff --git a/packages/core-js/modules/es.number.parse-float.js b/packages/core-js/modules/es.number.parse-float.js index 754bed778b99..35e567f11842 100644 --- a/packages/core-js/modules/es.number.parse-float.js +++ b/packages/core-js/modules/es.number.parse-float.js @@ -6,5 +6,5 @@ var parseFloat = require('../internals/number-parse-float'); // https://tc39.es/ecma262/#sec-number.parseFloat // eslint-disable-next-line es/no-number-parsefloat -- required for testing $({ target: 'Number', stat: true, forced: Number.parseFloat !== parseFloat }, { - parseFloat: parseFloat + parseFloat: parseFloat, }); diff --git a/packages/core-js/modules/es.number.parse-int.js b/packages/core-js/modules/es.number.parse-int.js index 9cd681382144..97eef805f61f 100644 --- a/packages/core-js/modules/es.number.parse-int.js +++ b/packages/core-js/modules/es.number.parse-int.js @@ -6,5 +6,5 @@ var parseInt = require('../internals/number-parse-int'); // https://tc39.es/ecma262/#sec-number.parseint // eslint-disable-next-line es/no-number-parseint -- required for testing $({ target: 'Number', stat: true, forced: Number.parseInt !== parseInt }, { - parseInt: parseInt + parseInt: parseInt, }); diff --git a/packages/core-js/modules/es.number.to-exponential.js b/packages/core-js/modules/es.number.to-exponential.js index 045de3b9fd14..2b46b630faf3 100644 --- a/packages/core-js/modules/es.number.to-exponential.js +++ b/packages/core-js/modules/es.number.to-exponential.js @@ -94,5 +94,5 @@ $({ target: 'Number', proto: true, forced: FORCED }, { } m += 'e' + c + d; return s + m; - } + }, }); diff --git a/packages/core-js/modules/es.number.to-fixed.js b/packages/core-js/modules/es.number.to-fixed.js index e0cab4079dd3..d6a3f1139fc6 100644 --- a/packages/core-js/modules/es.number.to-fixed.js +++ b/packages/core-js/modules/es.number.to-fixed.js @@ -127,5 +127,5 @@ $({ target: 'Number', proto: true, forced: FORCED }, { } else { result = sign + result; } return result; - } + }, }); diff --git a/packages/core-js/modules/es.number.to-precision.js b/packages/core-js/modules/es.number.to-precision.js index 61899ef02ea2..3f012b78c758 100644 --- a/packages/core-js/modules/es.number.to-precision.js +++ b/packages/core-js/modules/es.number.to-precision.js @@ -21,5 +21,5 @@ $({ target: 'Number', proto: true, forced: FORCED }, { return precision === undefined ? nativeToPrecision(thisNumberValue(this)) : nativeToPrecision(thisNumberValue(this), precision); - } + }, }); diff --git a/packages/core-js/modules/es.object.assign.js b/packages/core-js/modules/es.object.assign.js index 88b10728f328..241bd9577d94 100644 --- a/packages/core-js/modules/es.object.assign.js +++ b/packages/core-js/modules/es.object.assign.js @@ -6,5 +6,5 @@ var assign = require('../internals/object-assign'); // https://tc39.es/ecma262/#sec-object.assign // eslint-disable-next-line es/no-object-assign -- required for testing $({ target: 'Object', stat: true, arity: 2, forced: Object.assign !== assign }, { - assign: assign + assign: assign, }); diff --git a/packages/core-js/modules/es.object.create.js b/packages/core-js/modules/es.object.create.js index 83d782bc95f3..28743c353153 100644 --- a/packages/core-js/modules/es.object.create.js +++ b/packages/core-js/modules/es.object.create.js @@ -6,5 +6,5 @@ var create = require('../internals/object-create'); // `Object.create` method // https://tc39.es/ecma262/#sec-object.create $({ target: 'Object', stat: true }, { - create: create + create: create, }); diff --git a/packages/core-js/modules/es.object.define-getter.js b/packages/core-js/modules/es.object.define-getter.js index 1483a40b3aca..0700a5161711 100644 --- a/packages/core-js/modules/es.object.define-getter.js +++ b/packages/core-js/modules/es.object.define-getter.js @@ -10,5 +10,5 @@ var definePropertyModule = require('../internals/object-define-property'); $({ target: 'Object', proto: true, forced: FORCED }, { __defineGetter__: function __defineGetter__(P, getter) { definePropertyModule.f(toObject(this), P, { get: aCallable(getter), enumerable: true, configurable: true }); - } + }, }); diff --git a/packages/core-js/modules/es.object.define-properties.js b/packages/core-js/modules/es.object.define-properties.js index a87f24d2b4ee..654f8f07e8f6 100644 --- a/packages/core-js/modules/es.object.define-properties.js +++ b/packages/core-js/modules/es.object.define-properties.js @@ -6,5 +6,5 @@ var defineProperties = require('../internals/object-define-properties').f; // https://tc39.es/ecma262/#sec-object.defineproperties // eslint-disable-next-line es/no-object-defineproperties -- safe $({ target: 'Object', stat: true, forced: Object.defineProperties !== defineProperties }, { - defineProperties: defineProperties + defineProperties: defineProperties, }); diff --git a/packages/core-js/modules/es.object.define-property.js b/packages/core-js/modules/es.object.define-property.js index fb767d1c7cf6..fe083d5bcb2c 100644 --- a/packages/core-js/modules/es.object.define-property.js +++ b/packages/core-js/modules/es.object.define-property.js @@ -6,5 +6,5 @@ var defineProperty = require('../internals/object-define-property').f; // https://tc39.es/ecma262/#sec-object.defineproperty // eslint-disable-next-line es/no-object-defineproperty -- safe $({ target: 'Object', stat: true, forced: Object.defineProperty !== defineProperty }, { - defineProperty: defineProperty + defineProperty: defineProperty, }); diff --git a/packages/core-js/modules/es.object.define-setter.js b/packages/core-js/modules/es.object.define-setter.js index 4e6d87278fb8..75c76d38f6bf 100644 --- a/packages/core-js/modules/es.object.define-setter.js +++ b/packages/core-js/modules/es.object.define-setter.js @@ -10,5 +10,5 @@ var definePropertyModule = require('../internals/object-define-property'); $({ target: 'Object', proto: true, forced: FORCED }, { __defineSetter__: function __defineSetter__(P, setter) { definePropertyModule.f(toObject(this), P, { set: aCallable(setter), enumerable: true, configurable: true }); - } + }, }); diff --git a/packages/core-js/modules/es.object.entries.js b/packages/core-js/modules/es.object.entries.js index 41b6ad2582e1..4735d9251987 100644 --- a/packages/core-js/modules/es.object.entries.js +++ b/packages/core-js/modules/es.object.entries.js @@ -7,5 +7,5 @@ var $entries = require('../internals/object-to-array').entries; $({ target: 'Object', stat: true }, { entries: function entries(O) { return $entries(O); - } + }, }); diff --git a/packages/core-js/modules/es.object.freeze.js b/packages/core-js/modules/es.object.freeze.js index bd48bc74532a..8ef4190d8200 100644 --- a/packages/core-js/modules/es.object.freeze.js +++ b/packages/core-js/modules/es.object.freeze.js @@ -14,5 +14,5 @@ var FAILS_ON_PRIMITIVES = fails(function () { $freeze(1); }); $({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES, sham: !FREEZING }, { freeze: function freeze(it) { return $freeze && isObject(it) ? $freeze(onFreeze(it)) : it; - } + }, }); diff --git a/packages/core-js/modules/es.object.from-entries.js b/packages/core-js/modules/es.object.from-entries.js index fbfa32f90e00..060b2d42c2b9 100644 --- a/packages/core-js/modules/es.object.from-entries.js +++ b/packages/core-js/modules/es.object.from-entries.js @@ -12,5 +12,5 @@ $({ target: 'Object', stat: true }, { createProperty(obj, k, v); }, { AS_ENTRIES: true }); return obj; - } + }, }); diff --git a/packages/core-js/modules/es.object.get-own-property-descriptor.js b/packages/core-js/modules/es.object.get-own-property-descriptor.js index 7d87260fc4d4..4046023a57ec 100644 --- a/packages/core-js/modules/es.object.get-own-property-descriptor.js +++ b/packages/core-js/modules/es.object.get-own-property-descriptor.js @@ -11,5 +11,5 @@ var FORCED = fails(function () { nativeGetOwnPropertyDescriptor(1); }); $({ target: 'Object', stat: true, forced: FORCED }, { getOwnPropertyDescriptor: function getOwnPropertyDescriptor(it, key) { return nativeGetOwnPropertyDescriptor(toIndexedObject(it), key); - } + }, }); diff --git a/packages/core-js/modules/es.object.get-own-property-descriptors.js b/packages/core-js/modules/es.object.get-own-property-descriptors.js index 812b0cf653ab..03108d495e9d 100644 --- a/packages/core-js/modules/es.object.get-own-property-descriptors.js +++ b/packages/core-js/modules/es.object.get-own-property-descriptors.js @@ -20,5 +20,5 @@ $({ target: 'Object', stat: true }, { if (descriptor !== undefined) createProperty(result, key, descriptor); } return result; - } + }, }); diff --git a/packages/core-js/modules/es.object.get-own-property-names.js b/packages/core-js/modules/es.object.get-own-property-names.js index c076a51ca663..830632369914 100644 --- a/packages/core-js/modules/es.object.get-own-property-names.js +++ b/packages/core-js/modules/es.object.get-own-property-names.js @@ -9,5 +9,5 @@ var FAILS_ON_PRIMITIVES = fails(function () { return !Object.getOwnPropertyNames // `Object.getOwnPropertyNames` method // https://tc39.es/ecma262/#sec-object.getownpropertynames $({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES }, { - getOwnPropertyNames: getOwnPropertyNames + getOwnPropertyNames: getOwnPropertyNames, }); diff --git a/packages/core-js/modules/es.object.get-own-property-symbols.js b/packages/core-js/modules/es.object.get-own-property-symbols.js index 62ebd30d0d27..85e15801536c 100644 --- a/packages/core-js/modules/es.object.get-own-property-symbols.js +++ b/packages/core-js/modules/es.object.get-own-property-symbols.js @@ -15,5 +15,5 @@ $({ target: 'Object', stat: true, forced: FORCED }, { getOwnPropertySymbols: function getOwnPropertySymbols(it) { var $getOwnPropertySymbols = getOwnPropertySymbolsModule.f; return $getOwnPropertySymbols ? $getOwnPropertySymbols(toObject(it)) : []; - } + }, }); diff --git a/packages/core-js/modules/es.object.get-prototype-of.js b/packages/core-js/modules/es.object.get-prototype-of.js index e8b531633d7d..afb5816f8999 100644 --- a/packages/core-js/modules/es.object.get-prototype-of.js +++ b/packages/core-js/modules/es.object.get-prototype-of.js @@ -12,6 +12,6 @@ var FAILS_ON_PRIMITIVES = fails(function () { nativeGetPrototypeOf(1); }); $({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES, sham: !CORRECT_PROTOTYPE_GETTER }, { getPrototypeOf: function getPrototypeOf(it) { return nativeGetPrototypeOf(toObject(it)); - } + }, }); diff --git a/packages/core-js/modules/es.object.group-by.js b/packages/core-js/modules/es.object.group-by.js index dc2ce756a724..f88baac43120 100644 --- a/packages/core-js/modules/es.object.group-by.js +++ b/packages/core-js/modules/es.object.group-by.js @@ -37,5 +37,5 @@ $({ target: 'Object', stat: true, forced: DOES_NOT_WORK_WITH_PRIMITIVES }, { else createProperty(obj, key, [value]); }); return obj; - } + }, }); diff --git a/packages/core-js/modules/es.object.has-own.js b/packages/core-js/modules/es.object.has-own.js index 0723a80174c2..974e60c3b609 100644 --- a/packages/core-js/modules/es.object.has-own.js +++ b/packages/core-js/modules/es.object.has-own.js @@ -5,5 +5,5 @@ var hasOwn = require('../internals/has-own-property'); // `Object.hasOwn` method // https://tc39.es/ecma262/#sec-object.hasown $({ target: 'Object', stat: true }, { - hasOwn: hasOwn + hasOwn: hasOwn, }); diff --git a/packages/core-js/modules/es.object.is-extensible.js b/packages/core-js/modules/es.object.is-extensible.js index 4b05a297381e..480128efc832 100644 --- a/packages/core-js/modules/es.object.is-extensible.js +++ b/packages/core-js/modules/es.object.is-extensible.js @@ -6,5 +6,5 @@ var $isExtensible = require('../internals/object-is-extensible'); // https://tc39.es/ecma262/#sec-object.isextensible // eslint-disable-next-line es/no-object-isextensible -- safe $({ target: 'Object', stat: true, forced: Object.isExtensible !== $isExtensible }, { - isExtensible: $isExtensible + isExtensible: $isExtensible, }); diff --git a/packages/core-js/modules/es.object.is-frozen.js b/packages/core-js/modules/es.object.is-frozen.js index 4cd6ddb2a92b..e4f8ba7caaf7 100644 --- a/packages/core-js/modules/es.object.is-frozen.js +++ b/packages/core-js/modules/es.object.is-frozen.js @@ -17,5 +17,5 @@ $({ target: 'Object', stat: true, forced: FORCED }, { if (!isObject(it)) return true; if (ARRAY_BUFFER_NON_EXTENSIBLE && classof(it) === 'ArrayBuffer') return true; return $isFrozen ? $isFrozen(it) : false; - } + }, }); diff --git a/packages/core-js/modules/es.object.is-sealed.js b/packages/core-js/modules/es.object.is-sealed.js index cf3a787ff374..08fa984d534a 100644 --- a/packages/core-js/modules/es.object.is-sealed.js +++ b/packages/core-js/modules/es.object.is-sealed.js @@ -17,5 +17,5 @@ $({ target: 'Object', stat: true, forced: FORCED }, { if (!isObject(it)) return true; if (ARRAY_BUFFER_NON_EXTENSIBLE && classof(it) === 'ArrayBuffer') return true; return $isSealed ? $isSealed(it) : false; - } + }, }); diff --git a/packages/core-js/modules/es.object.is.js b/packages/core-js/modules/es.object.is.js index 7478e2d060db..d05cb45804ca 100644 --- a/packages/core-js/modules/es.object.is.js +++ b/packages/core-js/modules/es.object.is.js @@ -5,5 +5,5 @@ var is = require('../internals/same-value'); // `Object.is` method // https://tc39.es/ecma262/#sec-object.is $({ target: 'Object', stat: true }, { - is: is + is: is, }); diff --git a/packages/core-js/modules/es.object.keys.js b/packages/core-js/modules/es.object.keys.js index 92356b7d2387..92466e55bdc7 100644 --- a/packages/core-js/modules/es.object.keys.js +++ b/packages/core-js/modules/es.object.keys.js @@ -11,5 +11,5 @@ var FAILS_ON_PRIMITIVES = fails(function () { nativeKeys(1); }); $({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES }, { keys: function keys(it) { return nativeKeys(toObject(it)); - } + }, }); diff --git a/packages/core-js/modules/es.object.lookup-getter.js b/packages/core-js/modules/es.object.lookup-getter.js index c8048e4b080e..46de68066bf3 100644 --- a/packages/core-js/modules/es.object.lookup-getter.js +++ b/packages/core-js/modules/es.object.lookup-getter.js @@ -16,5 +16,5 @@ $({ target: 'Object', proto: true, forced: FORCED }, { do { if (desc = getOwnPropertyDescriptor(O, key)) return desc.get; } while (O = getPrototypeOf(O)); - } + }, }); diff --git a/packages/core-js/modules/es.object.lookup-setter.js b/packages/core-js/modules/es.object.lookup-setter.js index f5bd5f0f446c..fc38484388ce 100644 --- a/packages/core-js/modules/es.object.lookup-setter.js +++ b/packages/core-js/modules/es.object.lookup-setter.js @@ -16,5 +16,5 @@ $({ target: 'Object', proto: true, forced: FORCED }, { do { if (desc = getOwnPropertyDescriptor(O, key)) return desc.set; } while (O = getPrototypeOf(O)); - } + }, }); diff --git a/packages/core-js/modules/es.object.prevent-extensions.js b/packages/core-js/modules/es.object.prevent-extensions.js index 0f826f8c8b30..b50ba95b9a35 100644 --- a/packages/core-js/modules/es.object.prevent-extensions.js +++ b/packages/core-js/modules/es.object.prevent-extensions.js @@ -14,5 +14,5 @@ var FAILS_ON_PRIMITIVES = fails(function () { $preventExtensions(1); }); $({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES, sham: !FREEZING }, { preventExtensions: function preventExtensions(it) { return $preventExtensions && isObject(it) ? $preventExtensions(onFreeze(it)) : it; - } + }, }); diff --git a/packages/core-js/modules/es.object.proto.js b/packages/core-js/modules/es.object.proto.js index f8692e353b2a..c595eae34360 100644 --- a/packages/core-js/modules/es.object.proto.js +++ b/packages/core-js/modules/es.object.proto.js @@ -25,6 +25,6 @@ if (getPrototypeOf && setPrototypeOf && !(PROTO in ObjectPrototype)) try { if (isPossiblePrototype(proto) && isObject(O)) { setPrototypeOf(O, proto); } - } + }, }); } catch (error) { /* empty */ } diff --git a/packages/core-js/modules/es.object.seal.js b/packages/core-js/modules/es.object.seal.js index b77983b6e087..6451ed39419d 100644 --- a/packages/core-js/modules/es.object.seal.js +++ b/packages/core-js/modules/es.object.seal.js @@ -14,5 +14,5 @@ var FAILS_ON_PRIMITIVES = fails(function () { $seal(1); }); $({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES, sham: !FREEZING }, { seal: function seal(it) { return $seal && isObject(it) ? $seal(onFreeze(it)) : it; - } + }, }); diff --git a/packages/core-js/modules/es.object.set-prototype-of.js b/packages/core-js/modules/es.object.set-prototype-of.js index 3d0952e7b491..2050227512b3 100644 --- a/packages/core-js/modules/es.object.set-prototype-of.js +++ b/packages/core-js/modules/es.object.set-prototype-of.js @@ -5,5 +5,5 @@ var setPrototypeOf = require('../internals/object-set-prototype-of'); // `Object.setPrototypeOf` method // https://tc39.es/ecma262/#sec-object.setprototypeof $({ target: 'Object', stat: true }, { - setPrototypeOf: setPrototypeOf + setPrototypeOf: setPrototypeOf, }); diff --git a/packages/core-js/modules/es.object.values.js b/packages/core-js/modules/es.object.values.js index e35348e09e13..349595ddfe2a 100644 --- a/packages/core-js/modules/es.object.values.js +++ b/packages/core-js/modules/es.object.values.js @@ -7,5 +7,5 @@ var $values = require('../internals/object-to-array').values; $({ target: 'Object', stat: true }, { values: function values(O) { return $values(O); - } + }, }); diff --git a/packages/core-js/modules/es.parse-float.js b/packages/core-js/modules/es.parse-float.js index 109e0751ea91..618c6d9f8c00 100644 --- a/packages/core-js/modules/es.parse-float.js +++ b/packages/core-js/modules/es.parse-float.js @@ -5,5 +5,5 @@ var $parseFloat = require('../internals/number-parse-float'); // `parseFloat` method // https://tc39.es/ecma262/#sec-parsefloat-string $({ global: true, forced: parseFloat !== $parseFloat }, { - parseFloat: $parseFloat + parseFloat: $parseFloat, }); diff --git a/packages/core-js/modules/es.parse-int.js b/packages/core-js/modules/es.parse-int.js index 7422a73ed28c..ed0ad953b16a 100644 --- a/packages/core-js/modules/es.parse-int.js +++ b/packages/core-js/modules/es.parse-int.js @@ -5,5 +5,5 @@ var $parseInt = require('../internals/number-parse-int'); // `parseInt` method // https://tc39.es/ecma262/#sec-parseint-string-radix $({ global: true, forced: parseInt !== $parseInt }, { - parseInt: $parseInt + parseInt: $parseInt, }); diff --git a/packages/core-js/modules/es.promise.all-settled.js b/packages/core-js/modules/es.promise.all-settled.js index 73b282a49a3a..1fee2572c4c2 100644 --- a/packages/core-js/modules/es.promise.all-settled.js +++ b/packages/core-js/modules/es.promise.all-settled.js @@ -40,5 +40,5 @@ $({ target: 'Promise', stat: true, forced: PROMISE_STATICS_INCORRECT_ITERATION } }); if (result.error) reject(result.value); return capability.promise; - } + }, }); diff --git a/packages/core-js/modules/es.promise.all.js b/packages/core-js/modules/es.promise.all.js index 77e81c9377ba..c2c3e9efed47 100644 --- a/packages/core-js/modules/es.promise.all.js +++ b/packages/core-js/modules/es.promise.all.js @@ -35,5 +35,5 @@ $({ target: 'Promise', stat: true, forced: PROMISE_STATICS_INCORRECT_ITERATION } }); if (result.error) reject(result.value); return capability.promise; - } + }, }); diff --git a/packages/core-js/modules/es.promise.any.js b/packages/core-js/modules/es.promise.any.js index dd92bd76bc0a..235ca0f9dbd0 100644 --- a/packages/core-js/modules/es.promise.any.js +++ b/packages/core-js/modules/es.promise.any.js @@ -44,5 +44,5 @@ $({ target: 'Promise', stat: true, forced: PROMISE_STATICS_INCORRECT_ITERATION } }); if (result.error) reject(result.value); return capability.promise; - } + }, }); diff --git a/packages/core-js/modules/es.promise.catch.js b/packages/core-js/modules/es.promise.catch.js index 5f94e4c241fb..79b79ddf841e 100644 --- a/packages/core-js/modules/es.promise.catch.js +++ b/packages/core-js/modules/es.promise.catch.js @@ -14,7 +14,7 @@ var NativePromisePrototype = NativePromiseConstructor && NativePromiseConstructo $({ target: 'Promise', proto: true, forced: FORCED_PROMISE_CONSTRUCTOR, real: true }, { catch: function (onRejected) { return this.then(undefined, onRejected); - } + }, }); // makes sure that native promise-based APIs `Promise#catch` properly works with patched `Promise#then` diff --git a/packages/core-js/modules/es.promise.constructor.js b/packages/core-js/modules/es.promise.constructor.js index 92b14670b2bd..4ad05adf1a3a 100644 --- a/packages/core-js/modules/es.promise.constructor.js +++ b/packages/core-js/modules/es.promise.constructor.js @@ -221,7 +221,7 @@ if (FORCED_PROMISE_CONSTRUCTOR) { reactions: new Queue(), rejection: false, state: PENDING, - value: null + value: null, }); }; @@ -284,7 +284,7 @@ if (FORCED_PROMISE_CONSTRUCTOR) { // `Promise` constructor // https://tc39.es/ecma262/#sec-promise-executor $({ global: true, constructor: true, wrap: true, forced: FORCED_PROMISE_CONSTRUCTOR }, { - Promise: PromiseConstructor + Promise: PromiseConstructor, }); PromiseWrapper = path.Promise; diff --git a/packages/core-js/modules/es.promise.finally.js b/packages/core-js/modules/es.promise.finally.js index 041143479b48..8a74bfe8f1fc 100644 --- a/packages/core-js/modules/es.promise.finally.js +++ b/packages/core-js/modules/es.promise.finally.js @@ -31,7 +31,7 @@ $({ target: 'Promise', proto: true, real: true, forced: NON_GENERIC }, { return promiseResolve(C, onFinally()).then(function () { throw e; }); } : onFinally ); - } + }, }); // makes sure that native promise-based APIs `Promise#finally` properly works with patched `Promise#then` diff --git a/packages/core-js/modules/es.promise.race.js b/packages/core-js/modules/es.promise.race.js index 2fb470d267cb..742bb8a50f62 100644 --- a/packages/core-js/modules/es.promise.race.js +++ b/packages/core-js/modules/es.promise.race.js @@ -22,5 +22,5 @@ $({ target: 'Promise', stat: true, forced: PROMISE_STATICS_INCORRECT_ITERATION } }); if (result.error) reject(result.value); return capability.promise; - } + }, }); diff --git a/packages/core-js/modules/es.promise.reject.js b/packages/core-js/modules/es.promise.reject.js index 44e1456e332e..a32e88e0e9ee 100644 --- a/packages/core-js/modules/es.promise.reject.js +++ b/packages/core-js/modules/es.promise.reject.js @@ -11,5 +11,5 @@ $({ target: 'Promise', stat: true, forced: FORCED_PROMISE_CONSTRUCTOR }, { var capabilityReject = capability.reject; capabilityReject(r); return capability.promise; - } + }, }); diff --git a/packages/core-js/modules/es.promise.resolve.js b/packages/core-js/modules/es.promise.resolve.js index f1a0a0eaef8a..7f7a398099ad 100644 --- a/packages/core-js/modules/es.promise.resolve.js +++ b/packages/core-js/modules/es.promise.resolve.js @@ -14,5 +14,5 @@ var CHECK_WRAPPER = IS_PURE && !FORCED_PROMISE_CONSTRUCTOR; $({ target: 'Promise', stat: true, forced: IS_PURE || FORCED_PROMISE_CONSTRUCTOR }, { resolve: function resolve(x) { return promiseResolve(CHECK_WRAPPER && this === PromiseConstructorWrapper ? NativePromiseConstructor : this, x); - } + }, }); diff --git a/packages/core-js/modules/es.promise.try.js b/packages/core-js/modules/es.promise.try.js index d683c3e7a625..5cde1ae84707 100644 --- a/packages/core-js/modules/es.promise.try.js +++ b/packages/core-js/modules/es.promise.try.js @@ -29,5 +29,5 @@ $({ target: 'Promise', stat: true, forced: FORCED }, { }); (result.error ? promiseCapability.reject : promiseCapability.resolve)(result.value); return promiseCapability.promise; - } + }, }); diff --git a/packages/core-js/modules/es.promise.with-resolvers.js b/packages/core-js/modules/es.promise.with-resolvers.js index 834f0ebd6555..45f79163e2b1 100644 --- a/packages/core-js/modules/es.promise.with-resolvers.js +++ b/packages/core-js/modules/es.promise.with-resolvers.js @@ -10,7 +10,7 @@ $({ target: 'Promise', stat: true }, { return { promise: promiseCapability.promise, resolve: promiseCapability.resolve, - reject: promiseCapability.reject + reject: promiseCapability.reject, }; - } + }, }); diff --git a/packages/core-js/modules/es.reflect.apply.js b/packages/core-js/modules/es.reflect.apply.js index 2e19c8f3e954..9444381fdba0 100644 --- a/packages/core-js/modules/es.reflect.apply.js +++ b/packages/core-js/modules/es.reflect.apply.js @@ -16,5 +16,5 @@ var OPTIONAL_ARGUMENTS_LIST = !fails(function () { $({ target: 'Reflect', stat: true, forced: OPTIONAL_ARGUMENTS_LIST }, { apply: function apply(target, thisArgument, argumentsList) { return functionApply(aCallable(target), thisArgument, anObject(argumentsList)); - } + }, }); diff --git a/packages/core-js/modules/es.reflect.construct.js b/packages/core-js/modules/es.reflect.construct.js index d2283e396621..0adc932bb723 100644 --- a/packages/core-js/modules/es.reflect.construct.js +++ b/packages/core-js/modules/es.reflect.construct.js @@ -53,5 +53,5 @@ $({ target: 'Reflect', stat: true, forced: FORCED, sham: FORCED }, { var instance = create(isObject(proto) ? proto : ObjectPrototype); var result = apply(Target, instance, args); return isObject(result) ? result : instance; - } + }, }); diff --git a/packages/core-js/modules/es.reflect.define-property.js b/packages/core-js/modules/es.reflect.define-property.js index 22552127a415..9ace814078f6 100644 --- a/packages/core-js/modules/es.reflect.define-property.js +++ b/packages/core-js/modules/es.reflect.define-property.js @@ -24,5 +24,5 @@ $({ target: 'Reflect', stat: true, forced: ERROR_INSTEAD_OF_FALSE }, { } catch (error) { return false; } - } + }, }); diff --git a/packages/core-js/modules/es.reflect.delete-property.js b/packages/core-js/modules/es.reflect.delete-property.js index fa9c1e6658df..5c1ad1dc335a 100644 --- a/packages/core-js/modules/es.reflect.delete-property.js +++ b/packages/core-js/modules/es.reflect.delete-property.js @@ -9,5 +9,5 @@ $({ target: 'Reflect', stat: true }, { deleteProperty: function deleteProperty(target, propertyKey) { var descriptor = getOwnPropertyDescriptor(anObject(target), propertyKey); return descriptor && !descriptor.configurable ? false : delete target[propertyKey]; - } + }, }); diff --git a/packages/core-js/modules/es.reflect.get-own-property-descriptor.js b/packages/core-js/modules/es.reflect.get-own-property-descriptor.js index b59191cb867a..bc9feb8ea9de 100644 --- a/packages/core-js/modules/es.reflect.get-own-property-descriptor.js +++ b/packages/core-js/modules/es.reflect.get-own-property-descriptor.js @@ -8,5 +8,5 @@ var getOwnPropertyDescriptorModule = require('../internals/object-get-own-proper $({ target: 'Reflect', stat: true }, { getOwnPropertyDescriptor: function getOwnPropertyDescriptor(target, propertyKey) { return getOwnPropertyDescriptorModule.f(anObject(target), propertyKey); - } + }, }); diff --git a/packages/core-js/modules/es.reflect.get-prototype-of.js b/packages/core-js/modules/es.reflect.get-prototype-of.js index 1fef329efe85..f76585658441 100644 --- a/packages/core-js/modules/es.reflect.get-prototype-of.js +++ b/packages/core-js/modules/es.reflect.get-prototype-of.js @@ -9,5 +9,5 @@ var CORRECT_PROTOTYPE_GETTER = require('../internals/correct-prototype-getter'); $({ target: 'Reflect', stat: true, sham: !CORRECT_PROTOTYPE_GETTER }, { getPrototypeOf: function getPrototypeOf(target) { return objectGetPrototypeOf(anObject(target)); - } + }, }); diff --git a/packages/core-js/modules/es.reflect.get.js b/packages/core-js/modules/es.reflect.get.js index e5fc8d1ba646..d4786d79b97f 100644 --- a/packages/core-js/modules/es.reflect.get.js +++ b/packages/core-js/modules/es.reflect.get.js @@ -21,5 +21,5 @@ function get(target, propertyKey /* , receiver */) { } $({ target: 'Reflect', stat: true }, { - get: get + get: get, }); diff --git a/packages/core-js/modules/es.reflect.has.js b/packages/core-js/modules/es.reflect.has.js index 5d4a7f26dfe2..b10645a49f95 100644 --- a/packages/core-js/modules/es.reflect.has.js +++ b/packages/core-js/modules/es.reflect.has.js @@ -6,5 +6,5 @@ var $ = require('../internals/export'); $({ target: 'Reflect', stat: true }, { has: function has(target, propertyKey) { return propertyKey in target; - } + }, }); diff --git a/packages/core-js/modules/es.reflect.is-extensible.js b/packages/core-js/modules/es.reflect.is-extensible.js index 35480ba96a6d..f88628e68a3e 100644 --- a/packages/core-js/modules/es.reflect.is-extensible.js +++ b/packages/core-js/modules/es.reflect.is-extensible.js @@ -9,5 +9,5 @@ $({ target: 'Reflect', stat: true }, { isExtensible: function isExtensible(target) { anObject(target); return $isExtensible(target); - } + }, }); diff --git a/packages/core-js/modules/es.reflect.own-keys.js b/packages/core-js/modules/es.reflect.own-keys.js index 17646526b12a..d3a663c1c9fd 100644 --- a/packages/core-js/modules/es.reflect.own-keys.js +++ b/packages/core-js/modules/es.reflect.own-keys.js @@ -5,5 +5,5 @@ var ownKeys = require('../internals/own-keys'); // `Reflect.ownKeys` method // https://tc39.es/ecma262/#sec-reflect.ownkeys $({ target: 'Reflect', stat: true }, { - ownKeys: ownKeys + ownKeys: ownKeys, }); diff --git a/packages/core-js/modules/es.reflect.prevent-extensions.js b/packages/core-js/modules/es.reflect.prevent-extensions.js index 57b298d8a538..f560e79ccc59 100644 --- a/packages/core-js/modules/es.reflect.prevent-extensions.js +++ b/packages/core-js/modules/es.reflect.prevent-extensions.js @@ -16,5 +16,5 @@ $({ target: 'Reflect', stat: true, sham: !FREEZING }, { } catch (error) { return false; } - } + }, }); diff --git a/packages/core-js/modules/es.reflect.set-prototype-of.js b/packages/core-js/modules/es.reflect.set-prototype-of.js index 4b7faffc70e4..ed571284491e 100644 --- a/packages/core-js/modules/es.reflect.set-prototype-of.js +++ b/packages/core-js/modules/es.reflect.set-prototype-of.js @@ -16,5 +16,5 @@ if (objectSetPrototypeOf) $({ target: 'Reflect', stat: true }, { } catch (error) { return false; } - } + }, }); diff --git a/packages/core-js/modules/es.reflect.set.js b/packages/core-js/modules/es.reflect.set.js index 5a0d3b1280c7..c71d8fee5ece 100644 --- a/packages/core-js/modules/es.reflect.set.js +++ b/packages/core-js/modules/es.reflect.set.js @@ -46,5 +46,5 @@ var MS_EDGE_BUG = fails(function () { }); $({ target: 'Reflect', stat: true, forced: MS_EDGE_BUG }, { - set: set + set: set, }); diff --git a/packages/core-js/modules/es.regexp.dot-all.js b/packages/core-js/modules/es.regexp.dot-all.js index 56882ffe572f..b6d8895cc6a7 100644 --- a/packages/core-js/modules/es.regexp.dot-all.js +++ b/packages/core-js/modules/es.regexp.dot-all.js @@ -20,6 +20,6 @@ if (UNSUPPORTED_DOT_ALL) { return !!getInternalState(this).dotAll; } throw new $TypeError('Incompatible receiver, RegExp required'); - } + }, }); } diff --git a/packages/core-js/modules/es.regexp.escape.js b/packages/core-js/modules/es.regexp.escape.js index 72e09d7b5288..9c58cb15a3b8 100644 --- a/packages/core-js/modules/es.regexp.escape.js +++ b/packages/core-js/modules/es.regexp.escape.js @@ -22,7 +22,7 @@ var ControlEscape = { '\u000A': 'n', '\u000B': 'v', '\u000C': 'f', - '\u000D': 'r' + '\u000D': 'r', }; var escapeChar = function (chr) { @@ -66,5 +66,5 @@ $({ target: 'RegExp', stat: true, forced: FORCED }, { } return join(result, ''); - } + }, }); diff --git a/packages/core-js/modules/es.regexp.exec.js b/packages/core-js/modules/es.regexp.exec.js index 072f2be382a6..b2396e5816b6 100644 --- a/packages/core-js/modules/es.regexp.exec.js +++ b/packages/core-js/modules/es.regexp.exec.js @@ -5,5 +5,5 @@ var exec = require('../internals/regexp-exec'); // `RegExp.prototype.exec` method // https://tc39.es/ecma262/#sec-regexp.prototype.exec $({ target: 'RegExp', proto: true, forced: /./.exec !== exec }, { - exec: exec + exec: exec, }); diff --git a/packages/core-js/modules/es.regexp.flags.js b/packages/core-js/modules/es.regexp.flags.js index 273bbb05d059..2d4f6264e0f3 100644 --- a/packages/core-js/modules/es.regexp.flags.js +++ b/packages/core-js/modules/es.regexp.flags.js @@ -8,7 +8,7 @@ var regExpFlagsGetterImplementation = require('../internals/regexp-flags'); if (!regExpFlagsDetection.correct) { defineBuiltInAccessor(RegExp.prototype, 'flags', { configurable: true, - get: regExpFlagsGetterImplementation + get: regExpFlagsGetterImplementation, }); regExpFlagsDetection.correct = true; diff --git a/packages/core-js/modules/es.regexp.sticky.js b/packages/core-js/modules/es.regexp.sticky.js index 7b11dd969f8a..4942c292099f 100644 --- a/packages/core-js/modules/es.regexp.sticky.js +++ b/packages/core-js/modules/es.regexp.sticky.js @@ -20,6 +20,6 @@ if (MISSED_STICKY) { return !!getInternalState(this).sticky; } throw new $TypeError('Incompatible receiver, RegExp required'); - } + }, }); } diff --git a/packages/core-js/modules/es.regexp.test.js b/packages/core-js/modules/es.regexp.test.js index 20daaa006597..251711d4421b 100644 --- a/packages/core-js/modules/es.regexp.test.js +++ b/packages/core-js/modules/es.regexp.test.js @@ -31,5 +31,5 @@ $({ target: 'RegExp', proto: true, forced: !DELEGATES_TO_EXEC }, { if (result === null) return false; anObject(result); return true; - } + }, }); diff --git a/packages/core-js/modules/es.set.difference.js b/packages/core-js/modules/es.set.difference.js index 818c4015a79d..50f365202091 100644 --- a/packages/core-js/modules/es.set.difference.js +++ b/packages/core-js/modules/es.set.difference.js @@ -29,9 +29,9 @@ var FORCED = SET_LIKE_INCORRECT_BEHAVIOR || fails(function () { var done = index++ > 1; if (baseSet.has(1)) baseSet.clear(); return { done: done, value: 2 }; - } + }, }; - } + }, }; // eslint-disable-next-line es/no-set -- testing var baseSet = new Set([1, 2, 3, 4]); @@ -53,5 +53,5 @@ $({ target: 'Set', proto: true, real: true, forced: FORCED }, { if (has(result, e)) remove(result, e); }); return result; - } + }, }); diff --git a/packages/core-js/modules/es.set.intersection.js b/packages/core-js/modules/es.set.intersection.js index a47cd8e5baeb..2fd74d5bbb30 100644 --- a/packages/core-js/modules/es.set.intersection.js +++ b/packages/core-js/modules/es.set.intersection.js @@ -39,5 +39,5 @@ $({ target: 'Set', proto: true, real: true, forced: INCORRECT }, { } return result; - } + }, }); diff --git a/packages/core-js/modules/es.set.is-disjoint-from.js b/packages/core-js/modules/es.set.is-disjoint-from.js index 7293716b949e..80976a886b4e 100644 --- a/packages/core-js/modules/es.set.is-disjoint-from.js +++ b/packages/core-js/modules/es.set.is-disjoint-from.js @@ -26,5 +26,5 @@ $({ target: 'Set', proto: true, real: true, forced: INCORRECT }, { return iterateSimple(iterator, function (e) { if (has(O, e)) return iteratorClose(iterator, 'normal', false); }) !== false; - } + }, }); diff --git a/packages/core-js/modules/es.set.is-subset-of.js b/packages/core-js/modules/es.set.is-subset-of.js index d7f4a32e1d5f..9cfa54bf6611 100644 --- a/packages/core-js/modules/es.set.is-subset-of.js +++ b/packages/core-js/modules/es.set.is-subset-of.js @@ -20,5 +20,5 @@ $({ target: 'Set', proto: true, real: true, forced: INCORRECT }, { return iterate(O, function (e) { if (!otherRec.includes(e)) return false; }, true) !== false; - } + }, }); diff --git a/packages/core-js/modules/es.set.is-superset-of.js b/packages/core-js/modules/es.set.is-superset-of.js index b8c3e503dfd8..7fcb35b6ef0d 100644 --- a/packages/core-js/modules/es.set.is-superset-of.js +++ b/packages/core-js/modules/es.set.is-superset-of.js @@ -23,5 +23,5 @@ $({ target: 'Set', proto: true, real: true, forced: INCORRECT }, { return iterateSimple(iterator, function (e) { if (!has(O, e)) return iteratorClose(iterator, 'normal', false); }) !== false; - } + }, }); diff --git a/packages/core-js/modules/es.set.symmetric-difference.js b/packages/core-js/modules/es.set.symmetric-difference.js index f883054679db..75ea7a2b5784 100644 --- a/packages/core-js/modules/es.set.symmetric-difference.js +++ b/packages/core-js/modules/es.set.symmetric-difference.js @@ -26,5 +26,5 @@ $({ target: 'Set', proto: true, real: true, forced: FORCED }, { else add(result, e); }); return result; - } + }, }); diff --git a/packages/core-js/modules/es.set.union.js b/packages/core-js/modules/es.set.union.js index 22ab2ea76966..e0e1b3412647 100644 --- a/packages/core-js/modules/es.set.union.js +++ b/packages/core-js/modules/es.set.union.js @@ -21,5 +21,5 @@ $({ target: 'Set', proto: true, real: true, forced: FORCED }, { add(result, it); }); return result; - } + }, }); diff --git a/packages/core-js/modules/es.string.anchor.js b/packages/core-js/modules/es.string.anchor.js index 9c0f0dae6e06..81ee919bd687 100644 --- a/packages/core-js/modules/es.string.anchor.js +++ b/packages/core-js/modules/es.string.anchor.js @@ -8,5 +8,5 @@ var forcedStringHTMLMethod = require('../internals/string-html-forced'); $({ target: 'String', proto: true, forced: forcedStringHTMLMethod('anchor') }, { anchor: function anchor(name) { return createHTML(this, 'a', 'name', name); - } + }, }); diff --git a/packages/core-js/modules/es.string.at.js b/packages/core-js/modules/es.string.at.js index b7b99a7031ea..8c640e6dca3c 100644 --- a/packages/core-js/modules/es.string.at.js +++ b/packages/core-js/modules/es.string.at.js @@ -22,5 +22,5 @@ $({ target: 'String', proto: true, forced: FORCED }, { var relativeIndex = toIntegerOrInfinity(index); var k = relativeIndex >= 0 ? relativeIndex : len + relativeIndex; return (k < 0 || k >= len) ? undefined : charAt(S, k); - } + }, }); diff --git a/packages/core-js/modules/es.string.big.js b/packages/core-js/modules/es.string.big.js index 478a31c43fbc..dd4d30aaeff3 100644 --- a/packages/core-js/modules/es.string.big.js +++ b/packages/core-js/modules/es.string.big.js @@ -8,5 +8,5 @@ var forcedStringHTMLMethod = require('../internals/string-html-forced'); $({ target: 'String', proto: true, forced: forcedStringHTMLMethod('big') }, { big: function big() { return createHTML(this, 'big', '', ''); - } + }, }); diff --git a/packages/core-js/modules/es.string.blink.js b/packages/core-js/modules/es.string.blink.js index 2599a0fe95ed..ea2a2b9115bb 100644 --- a/packages/core-js/modules/es.string.blink.js +++ b/packages/core-js/modules/es.string.blink.js @@ -8,5 +8,5 @@ var forcedStringHTMLMethod = require('../internals/string-html-forced'); $({ target: 'String', proto: true, forced: forcedStringHTMLMethod('blink') }, { blink: function blink() { return createHTML(this, 'blink', '', ''); - } + }, }); diff --git a/packages/core-js/modules/es.string.bold.js b/packages/core-js/modules/es.string.bold.js index ed15e7280854..619b908127c9 100644 --- a/packages/core-js/modules/es.string.bold.js +++ b/packages/core-js/modules/es.string.bold.js @@ -8,5 +8,5 @@ var forcedStringHTMLMethod = require('../internals/string-html-forced'); $({ target: 'String', proto: true, forced: forcedStringHTMLMethod('bold') }, { bold: function bold() { return createHTML(this, 'b', '', ''); - } + }, }); diff --git a/packages/core-js/modules/es.string.code-point-at.js b/packages/core-js/modules/es.string.code-point-at.js index 927e41386598..be09f3d857c8 100644 --- a/packages/core-js/modules/es.string.code-point-at.js +++ b/packages/core-js/modules/es.string.code-point-at.js @@ -7,5 +7,5 @@ var codeAt = require('../internals/string-multibyte').codeAt; $({ target: 'String', proto: true }, { codePointAt: function codePointAt(pos) { return codeAt(this, pos); - } + }, }); diff --git a/packages/core-js/modules/es.string.ends-with.js b/packages/core-js/modules/es.string.ends-with.js index 04913f861a6a..1ce5e1821833 100644 --- a/packages/core-js/modules/es.string.ends-with.js +++ b/packages/core-js/modules/es.string.ends-with.js @@ -30,5 +30,5 @@ $({ target: 'String', proto: true, forced: !MDN_POLYFILL_BUG && !CORRECT_IS_REGE var end = endPosition === undefined ? len : min(toLength(endPosition), len); var search = toString(searchString); return slice(that, end - search.length, end) === search; - } + }, }); diff --git a/packages/core-js/modules/es.string.fixed.js b/packages/core-js/modules/es.string.fixed.js index 9f9b87d54d23..45031a8b535a 100644 --- a/packages/core-js/modules/es.string.fixed.js +++ b/packages/core-js/modules/es.string.fixed.js @@ -8,5 +8,5 @@ var forcedStringHTMLMethod = require('../internals/string-html-forced'); $({ target: 'String', proto: true, forced: forcedStringHTMLMethod('fixed') }, { fixed: function fixed() { return createHTML(this, 'tt', '', ''); - } + }, }); diff --git a/packages/core-js/modules/es.string.fontcolor.js b/packages/core-js/modules/es.string.fontcolor.js index f96ebb4eb55a..9794e8225ccb 100644 --- a/packages/core-js/modules/es.string.fontcolor.js +++ b/packages/core-js/modules/es.string.fontcolor.js @@ -8,5 +8,5 @@ var forcedStringHTMLMethod = require('../internals/string-html-forced'); $({ target: 'String', proto: true, forced: forcedStringHTMLMethod('fontcolor') }, { fontcolor: function fontcolor(color) { return createHTML(this, 'font', 'color', color); - } + }, }); diff --git a/packages/core-js/modules/es.string.fontsize.js b/packages/core-js/modules/es.string.fontsize.js index e5760460a413..8720f60ed0df 100644 --- a/packages/core-js/modules/es.string.fontsize.js +++ b/packages/core-js/modules/es.string.fontsize.js @@ -8,5 +8,5 @@ var forcedStringHTMLMethod = require('../internals/string-html-forced'); $({ target: 'String', proto: true, forced: forcedStringHTMLMethod('fontsize') }, { fontsize: function fontsize(size) { return createHTML(this, 'font', 'size', size); - } + }, }); diff --git a/packages/core-js/modules/es.string.from-code-point.js b/packages/core-js/modules/es.string.from-code-point.js index 112f39aa6d63..fb7b47a6f9c4 100644 --- a/packages/core-js/modules/es.string.from-code-point.js +++ b/packages/core-js/modules/es.string.from-code-point.js @@ -28,5 +28,5 @@ $({ target: 'String', stat: true, arity: 1, forced: INCORRECT_LENGTH }, { ? fromCharCode(code) : fromCharCode(((code -= 0x10000) >> 10) + 0xD800, code % 0x400 + 0xDC00); } return join(elements, ''); - } + }, }); diff --git a/packages/core-js/modules/es.string.includes.js b/packages/core-js/modules/es.string.includes.js index 22afdcaf7bf1..2b8e053e50ef 100644 --- a/packages/core-js/modules/es.string.includes.js +++ b/packages/core-js/modules/es.string.includes.js @@ -17,5 +17,5 @@ $({ target: 'String', proto: true, forced: !correctIsRegExpLogic('includes') }, toString(notARegExp(searchString)), arguments.length > 1 ? arguments[1] : undefined ); - } + }, }); diff --git a/packages/core-js/modules/es.string.is-well-formed.js b/packages/core-js/modules/es.string.is-well-formed.js index 7698440c3942..f4cb056c692d 100644 --- a/packages/core-js/modules/es.string.is-well-formed.js +++ b/packages/core-js/modules/es.string.is-well-formed.js @@ -19,5 +19,5 @@ $({ target: 'String', proto: true }, { // unpaired surrogate if (charCode >= 0xDC00 || ++i >= length || (charCodeAt(S, i) & 0xFC00) !== 0xDC00) return false; } return true; - } + }, }); diff --git a/packages/core-js/modules/es.string.italics.js b/packages/core-js/modules/es.string.italics.js index fca5e06e1b10..60b83e17d738 100644 --- a/packages/core-js/modules/es.string.italics.js +++ b/packages/core-js/modules/es.string.italics.js @@ -8,5 +8,5 @@ var forcedStringHTMLMethod = require('../internals/string-html-forced'); $({ target: 'String', proto: true, forced: forcedStringHTMLMethod('italics') }, { italics: function italics() { return createHTML(this, 'i', '', ''); - } + }, }); diff --git a/packages/core-js/modules/es.string.iterator.js b/packages/core-js/modules/es.string.iterator.js index cfd486c1b58e..51436250460e 100644 --- a/packages/core-js/modules/es.string.iterator.js +++ b/packages/core-js/modules/es.string.iterator.js @@ -15,7 +15,7 @@ defineIterator(String, 'String', function (iterated) { setInternalState(this, { type: STRING_ITERATOR, string: toString(iterated), - index: 0 + index: 0, }); // `%StringIteratorPrototype%.next` method // https://tc39.es/ecma262/#sec-%stringiteratorprototype%.next diff --git a/packages/core-js/modules/es.string.link.js b/packages/core-js/modules/es.string.link.js index 0d12891587e8..5d2d3c722ea0 100644 --- a/packages/core-js/modules/es.string.link.js +++ b/packages/core-js/modules/es.string.link.js @@ -8,5 +8,5 @@ var forcedStringHTMLMethod = require('../internals/string-html-forced'); $({ target: 'String', proto: true, forced: forcedStringHTMLMethod('link') }, { link: function link(url) { return createHTML(this, 'a', 'href', url); - } + }, }); diff --git a/packages/core-js/modules/es.string.match-all.js b/packages/core-js/modules/es.string.match-all.js index 45e98bacadb0..cf544de23094 100644 --- a/packages/core-js/modules/es.string.match-all.js +++ b/packages/core-js/modules/es.string.match-all.js @@ -44,7 +44,7 @@ var $RegExpStringIterator = createIteratorConstructor(function RegExpStringItera string: string, global: $global, unicode: fullUnicode, - done: false + done: false, }); }, REGEXP_STRING, function next() { var state = getInternalState(this); @@ -96,7 +96,7 @@ $({ target: 'String', proto: true, forced: WORKS_WITH_NON_GLOBAL_REGEX }, { S = toString(O); rx = new RegExp(regexp, 'g'); return IS_PURE ? call($matchAll, rx, S) : rx[MATCH_ALL](S); - } + }, }); IS_PURE || MATCH_ALL in RegExpPrototype || defineBuiltIn(RegExpPrototype, MATCH_ALL, $matchAll); diff --git a/packages/core-js/modules/es.string.match.js b/packages/core-js/modules/es.string.match.js index 6ad6713b9d75..a9abff2b5490 100644 --- a/packages/core-js/modules/es.string.match.js +++ b/packages/core-js/modules/es.string.match.js @@ -49,6 +49,6 @@ fixRegExpWellKnownSymbolLogic('match', function (MATCH, nativeMatch, maybeCallNa n++; } return n === 0 ? null : A; - } + }, ]; }); diff --git a/packages/core-js/modules/es.string.pad-end.js b/packages/core-js/modules/es.string.pad-end.js index f770a85fa33f..c671bae66897 100644 --- a/packages/core-js/modules/es.string.pad-end.js +++ b/packages/core-js/modules/es.string.pad-end.js @@ -8,5 +8,5 @@ var WEBKIT_BUG = require('../internals/string-pad-webkit-bug'); $({ target: 'String', proto: true, forced: WEBKIT_BUG }, { padEnd: function padEnd(maxLength /* , fillString = ' ' */) { return $padEnd(this, maxLength, arguments.length > 1 ? arguments[1] : undefined); - } + }, }); diff --git a/packages/core-js/modules/es.string.pad-start.js b/packages/core-js/modules/es.string.pad-start.js index d213b46eae90..b4bc677c4e45 100644 --- a/packages/core-js/modules/es.string.pad-start.js +++ b/packages/core-js/modules/es.string.pad-start.js @@ -8,5 +8,5 @@ var WEBKIT_BUG = require('../internals/string-pad-webkit-bug'); $({ target: 'String', proto: true, forced: WEBKIT_BUG }, { padStart: function padStart(maxLength /* , fillString = ' ' */) { return $padStart(this, maxLength, arguments.length > 1 ? arguments[1] : undefined); - } + }, }); diff --git a/packages/core-js/modules/es.string.raw.js b/packages/core-js/modules/es.string.raw.js index 65ed7c86b583..f8dda46baba1 100644 --- a/packages/core-js/modules/es.string.raw.js +++ b/packages/core-js/modules/es.string.raw.js @@ -24,5 +24,5 @@ $({ target: 'String', stat: true }, { if (i === literalSegments) return join(elements, ''); if (i < argumentsLength) push(elements, toString(arguments[i])); } - } + }, }); diff --git a/packages/core-js/modules/es.string.repeat.js b/packages/core-js/modules/es.string.repeat.js index 7ec1c2ba97d1..4f287d51cf95 100644 --- a/packages/core-js/modules/es.string.repeat.js +++ b/packages/core-js/modules/es.string.repeat.js @@ -5,5 +5,5 @@ var repeat = require('../internals/string-repeat'); // `String.prototype.repeat` method // https://tc39.es/ecma262/#sec-string.prototype.repeat $({ target: 'String', proto: true }, { - repeat: repeat + repeat: repeat, }); diff --git a/packages/core-js/modules/es.string.replace-all.js b/packages/core-js/modules/es.string.replace-all.js index 3c531f853286..43edceb140fa 100644 --- a/packages/core-js/modules/es.string.replace-all.js +++ b/packages/core-js/modules/es.string.replace-all.js @@ -57,5 +57,5 @@ $({ target: 'String', proto: true }, { result += stringSlice(string, endOfLastMatch); } return result; - } + }, }); diff --git a/packages/core-js/modules/es.string.replace.js b/packages/core-js/modules/es.string.replace.js index f9c9f03ae6c0..3faee15e626f 100644 --- a/packages/core-js/modules/es.string.replace.js +++ b/packages/core-js/modules/es.string.replace.js @@ -139,6 +139,6 @@ fixRegExpWellKnownSymbolLogic('replace', function (_, nativeReplace, maybeCallNa } return accumulatedResult + stringSlice(S, nextSourcePosition); - } + }, ]; }, !REPLACE_SUPPORTS_NAMED_GROUPS || !REPLACE_KEEPS_$0 || REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE); diff --git a/packages/core-js/modules/es.string.search.js b/packages/core-js/modules/es.string.search.js index a954c176e9df..c55a32aa91f3 100644 --- a/packages/core-js/modules/es.string.search.js +++ b/packages/core-js/modules/es.string.search.js @@ -33,6 +33,6 @@ fixRegExpWellKnownSymbolLogic('search', function (SEARCH, nativeSearch, maybeCal var result = regExpExec(rx, S); if (!sameValue(rx.lastIndex, previousLastIndex)) rx.lastIndex = previousLastIndex; return result === null ? -1 : result.index; - } + }, ]; }); diff --git a/packages/core-js/modules/es.string.small.js b/packages/core-js/modules/es.string.small.js index ab9f66584ebc..8d971ba6a867 100644 --- a/packages/core-js/modules/es.string.small.js +++ b/packages/core-js/modules/es.string.small.js @@ -8,5 +8,5 @@ var forcedStringHTMLMethod = require('../internals/string-html-forced'); $({ target: 'String', proto: true, forced: forcedStringHTMLMethod('small') }, { small: function small() { return createHTML(this, 'small', '', ''); - } + }, }); diff --git a/packages/core-js/modules/es.string.split.js b/packages/core-js/modules/es.string.split.js index 8e6a5832fb22..43d2b21fc968 100644 --- a/packages/core-js/modules/es.string.split.js +++ b/packages/core-js/modules/es.string.split.js @@ -106,6 +106,6 @@ fixRegExpWellKnownSymbolLogic('split', function (SPLIT, nativeSplit, maybeCallNa } push(A, stringSlice(S, p)); return A; - } + }, ]; }, BUGGY || !SPLIT_WORKS_WITH_OVERWRITTEN_EXEC, UNSUPPORTED_Y); diff --git a/packages/core-js/modules/es.string.starts-with.js b/packages/core-js/modules/es.string.starts-with.js index c95bc913196b..371faf9f3cbd 100644 --- a/packages/core-js/modules/es.string.starts-with.js +++ b/packages/core-js/modules/es.string.starts-with.js @@ -28,5 +28,5 @@ $({ target: 'String', proto: true, forced: !MDN_POLYFILL_BUG && !CORRECT_IS_REGE var index = toLength(min(arguments.length > 1 ? arguments[1] : undefined, that.length)); var search = toString(searchString); return stringSlice(that, index, index + search.length) === search; - } + }, }); diff --git a/packages/core-js/modules/es.string.strike.js b/packages/core-js/modules/es.string.strike.js index f78a222e3994..9d4d51b99cd7 100644 --- a/packages/core-js/modules/es.string.strike.js +++ b/packages/core-js/modules/es.string.strike.js @@ -8,5 +8,5 @@ var forcedStringHTMLMethod = require('../internals/string-html-forced'); $({ target: 'String', proto: true, forced: forcedStringHTMLMethod('strike') }, { strike: function strike() { return createHTML(this, 'strike', '', ''); - } + }, }); diff --git a/packages/core-js/modules/es.string.sub.js b/packages/core-js/modules/es.string.sub.js index bc62879c09bb..9441430a738b 100644 --- a/packages/core-js/modules/es.string.sub.js +++ b/packages/core-js/modules/es.string.sub.js @@ -8,5 +8,5 @@ var forcedStringHTMLMethod = require('../internals/string-html-forced'); $({ target: 'String', proto: true, forced: forcedStringHTMLMethod('sub') }, { sub: function sub() { return createHTML(this, 'sub', '', ''); - } + }, }); diff --git a/packages/core-js/modules/es.string.substr.js b/packages/core-js/modules/es.string.substr.js index 57595da644be..b5265907a7d2 100644 --- a/packages/core-js/modules/es.string.substr.js +++ b/packages/core-js/modules/es.string.substr.js @@ -26,5 +26,5 @@ $({ target: 'String', proto: true, forced: FORCED }, { if (intLength <= 0 || intLength === Infinity) return ''; intEnd = min(intStart + intLength, size); return intStart >= intEnd ? '' : stringSlice(that, intStart, intEnd); - } + }, }); diff --git a/packages/core-js/modules/es.string.sup.js b/packages/core-js/modules/es.string.sup.js index 6e1e5cbe1a01..566732e9287b 100644 --- a/packages/core-js/modules/es.string.sup.js +++ b/packages/core-js/modules/es.string.sup.js @@ -8,5 +8,5 @@ var forcedStringHTMLMethod = require('../internals/string-html-forced'); $({ target: 'String', proto: true, forced: forcedStringHTMLMethod('sup') }, { sup: function sup() { return createHTML(this, 'sup', '', ''); - } + }, }); diff --git a/packages/core-js/modules/es.string.to-well-formed.js b/packages/core-js/modules/es.string.to-well-formed.js index 5f18c97114f2..4f0a0a17df65 100644 --- a/packages/core-js/modules/es.string.to-well-formed.js +++ b/packages/core-js/modules/es.string.to-well-formed.js @@ -39,5 +39,5 @@ $({ target: 'String', proto: true, forced: TO_STRING_CONVERSION_BUG }, { result[++i] = charAt(S, i); } } return join(result, ''); - } + }, }); diff --git a/packages/core-js/modules/es.string.trim-end.js b/packages/core-js/modules/es.string.trim-end.js index ce2c75f69f2c..215978f998bd 100644 --- a/packages/core-js/modules/es.string.trim-end.js +++ b/packages/core-js/modules/es.string.trim-end.js @@ -6,5 +6,5 @@ var trimEnd = require('../internals/string-trim-end'); // https://tc39.es/ecma262/#sec-string.prototype.trimend // eslint-disable-next-line es/no-string-prototype-trimstart-trimend -- safe $({ target: 'String', proto: true, name: 'trimEnd', forced: ''.trimEnd !== trimEnd }, { - trimEnd: trimEnd + trimEnd: trimEnd, }); diff --git a/packages/core-js/modules/es.string.trim-left.js b/packages/core-js/modules/es.string.trim-left.js index 55a38f450d4b..d40b2951262d 100644 --- a/packages/core-js/modules/es.string.trim-left.js +++ b/packages/core-js/modules/es.string.trim-left.js @@ -6,5 +6,5 @@ var trimStart = require('../internals/string-trim-start'); // https://tc39.es/ecma262/#sec-string.prototype.trimleft // eslint-disable-next-line es/no-string-prototype-trimleft-trimright -- safe $({ target: 'String', proto: true, name: 'trimStart', forced: ''.trimLeft !== trimStart }, { - trimLeft: trimStart + trimLeft: trimStart, }); diff --git a/packages/core-js/modules/es.string.trim-right.js b/packages/core-js/modules/es.string.trim-right.js index eb33758c5759..50232778d204 100644 --- a/packages/core-js/modules/es.string.trim-right.js +++ b/packages/core-js/modules/es.string.trim-right.js @@ -6,5 +6,5 @@ var trimEnd = require('../internals/string-trim-end'); // https://tc39.es/ecma262/#sec-string.prototype.trimend // eslint-disable-next-line es/no-string-prototype-trimleft-trimright -- safe $({ target: 'String', proto: true, name: 'trimEnd', forced: ''.trimRight !== trimEnd }, { - trimRight: trimEnd + trimRight: trimEnd, }); diff --git a/packages/core-js/modules/es.string.trim-start.js b/packages/core-js/modules/es.string.trim-start.js index ac9aac3406eb..2fcd9f4ad0aa 100644 --- a/packages/core-js/modules/es.string.trim-start.js +++ b/packages/core-js/modules/es.string.trim-start.js @@ -6,5 +6,5 @@ var trimStart = require('../internals/string-trim-start'); // https://tc39.es/ecma262/#sec-string.prototype.trimstart // eslint-disable-next-line es/no-string-prototype-trimstart-trimend -- safe $({ target: 'String', proto: true, name: 'trimStart', forced: ''.trimStart !== trimStart }, { - trimStart: trimStart + trimStart: trimStart, }); diff --git a/packages/core-js/modules/es.string.trim.js b/packages/core-js/modules/es.string.trim.js index e9cfb4ba469c..6014a2b15287 100644 --- a/packages/core-js/modules/es.string.trim.js +++ b/packages/core-js/modules/es.string.trim.js @@ -8,5 +8,5 @@ var forcedStringTrimMethod = require('../internals/string-trim-forced'); $({ target: 'String', proto: true, forced: forcedStringTrimMethod('trim') }, { trim: function trim() { return $trim(this); - } + }, }); diff --git a/packages/core-js/modules/es.suppressed-error.constructor.js b/packages/core-js/modules/es.suppressed-error.constructor.js index f1f57e995e75..d842f6580a0b 100644 --- a/packages/core-js/modules/es.suppressed-error.constructor.js +++ b/packages/core-js/modules/es.suppressed-error.constructor.js @@ -52,7 +52,7 @@ else copyConstructorProperties($SuppressedError, $Error, { name: true }); var SuppressedErrorPrototype = $SuppressedError.prototype = PATCH ? NativeSuppressedError.prototype : create($Error.prototype, { constructor: createPropertyDescriptor(1, $SuppressedError), message: createPropertyDescriptor(1, ''), - name: createPropertyDescriptor(1, 'SuppressedError') + name: createPropertyDescriptor(1, 'SuppressedError'), }); if (PATCH && !IS_PURE) SuppressedErrorPrototype.constructor = $SuppressedError; @@ -60,5 +60,5 @@ if (PATCH && !IS_PURE) SuppressedErrorPrototype.constructor = $SuppressedError; // `SuppressedError` constructor // https://github.com/tc39/proposal-explicit-resource-management $({ global: true, constructor: true, arity: 3, forced: PATCH }, { - SuppressedError: $SuppressedError + SuppressedError: $SuppressedError, }); diff --git a/packages/core-js/modules/es.symbol.constructor.js b/packages/core-js/modules/es.symbol.constructor.js index 05584583b689..bbecfe2efcee 100644 --- a/packages/core-js/modules/es.symbol.constructor.js +++ b/packages/core-js/modules/es.symbol.constructor.js @@ -74,7 +74,7 @@ var fallbackDefineProperty = function (O, P, Attributes) { var setSymbolDescriptor = fails(function () { return nativeObjectCreate(nativeDefineProperty({}, 'a', { - get: function () { return nativeDefineProperty(this, 'a', { value: 7 }).a; } + get: function () { return nativeDefineProperty(this, 'a', { value: 7 }).a; }, })).a !== 7; }) ? fallbackDefineProperty : nativeDefineProperty; @@ -83,7 +83,7 @@ var wrap = function (tag, description) { setInternalState(symbol, { type: SYMBOL, tag: tag, - description: description + description: description, }); return symbol; }; @@ -207,7 +207,7 @@ if (!NATIVE_SYMBOL) { configurable: true, get: function description() { return getInternalState(this).description; - } + }, }); if (!IS_PURE) { defineBuiltIn(ObjectPrototype, 'propertyIsEnumerable', $propertyIsEnumerable, { unsafe: true }); @@ -215,7 +215,7 @@ if (!NATIVE_SYMBOL) { } $({ global: true, constructor: true, wrap: true, forced: !NATIVE_SYMBOL, sham: !NATIVE_SYMBOL }, { - Symbol: $Symbol + Symbol: $Symbol, }); $forEach(objectKeys(WellKnownSymbolsStore), function (name) { @@ -224,7 +224,7 @@ $forEach(objectKeys(WellKnownSymbolsStore), function (name) { $({ target: SYMBOL, stat: true, forced: !NATIVE_SYMBOL }, { useSetter: function () { USE_SETTER = true; }, - useSimple: function () { USE_SETTER = false; } + useSimple: function () { USE_SETTER = false; }, }); $({ target: 'Object', stat: true, forced: !NATIVE_SYMBOL }, { @@ -239,13 +239,13 @@ $({ target: 'Object', stat: true, forced: !NATIVE_SYMBOL }, { defineProperties: $defineProperties, // `Object.getOwnPropertyDescriptor` method // https://tc39.es/ecma262/#sec-object.getownpropertydescriptors - getOwnPropertyDescriptor: $getOwnPropertyDescriptor + getOwnPropertyDescriptor: $getOwnPropertyDescriptor, }); $({ target: 'Object', stat: true, forced: !NATIVE_SYMBOL }, { // `Object.getOwnPropertyNames` method // https://tc39.es/ecma262/#sec-object.getownpropertynames - getOwnPropertyNames: $getOwnPropertyNames + getOwnPropertyNames: $getOwnPropertyNames, }); // `Symbol.prototype[@@toPrimitive]` method diff --git a/packages/core-js/modules/es.symbol.description.js b/packages/core-js/modules/es.symbol.description.js index 538df9e4c772..bcfe45a9863e 100644 --- a/packages/core-js/modules/es.symbol.description.js +++ b/packages/core-js/modules/es.symbol.description.js @@ -50,10 +50,10 @@ if (isCallable(NativeSymbol) && (!('description' in SymbolPrototype) || var string = symbolDescriptiveString(symbol); var desc = NATIVE_SYMBOL ? stringSlice(string, 7, -1) : replace(string, regexp, '$1'); return desc === '' ? undefined : desc; - } + }, }); $({ global: true, constructor: true, forced: true }, { - Symbol: SymbolWrapper + Symbol: SymbolWrapper, }); } diff --git a/packages/core-js/modules/es.symbol.for.js b/packages/core-js/modules/es.symbol.for.js index 81e8e5eeba98..ac28498099b6 100644 --- a/packages/core-js/modules/es.symbol.for.js +++ b/packages/core-js/modules/es.symbol.for.js @@ -19,5 +19,5 @@ $({ target: 'Symbol', stat: true, forced: !NATIVE_SYMBOL_REGISTRY }, { StringToSymbolRegistry[string] = symbol; SymbolToStringRegistry[symbol] = string; return symbol; - } + }, }); diff --git a/packages/core-js/modules/es.symbol.key-for.js b/packages/core-js/modules/es.symbol.key-for.js index c7f4d25cc8f7..b81cf82e5969 100644 --- a/packages/core-js/modules/es.symbol.key-for.js +++ b/packages/core-js/modules/es.symbol.key-for.js @@ -14,5 +14,5 @@ $({ target: 'Symbol', stat: true, forced: !NATIVE_SYMBOL_REGISTRY }, { keyFor: function keyFor(sym) { if (!isSymbol(sym)) throw new TypeError(tryToString(sym) + ' is not a symbol'); if (hasOwn(SymbolToStringRegistry, sym)) return SymbolToStringRegistry[sym]; - } + }, }); diff --git a/packages/core-js/modules/es.uint8-array.from-base64.js b/packages/core-js/modules/es.uint8-array.from-base64.js index d4559d5c454a..b35a52be73e2 100644 --- a/packages/core-js/modules/es.uint8-array.from-base64.js +++ b/packages/core-js/modules/es.uint8-array.from-base64.js @@ -25,5 +25,5 @@ if (Uint8Array) $({ target: 'Uint8Array', stat: true, forced: INCORRECT_BEHAVIOR fromBase64: function fromBase64(string /* , options */) { var result = $fromBase64(string, arguments.length > 1 ? arguments[1] : undefined, null, 0x1FFFFFFFFFFFFF); return arrayFromConstructorAndList(Uint8Array, result.bytes); - } + }, }); diff --git a/packages/core-js/modules/es.uint8-array.from-hex.js b/packages/core-js/modules/es.uint8-array.from-hex.js index 036f3a8b11a6..dcbec6fc130a 100644 --- a/packages/core-js/modules/es.uint8-array.from-hex.js +++ b/packages/core-js/modules/es.uint8-array.from-hex.js @@ -9,5 +9,5 @@ var $fromHex = require('../internals/uint8-from-hex'); if (globalThis.Uint8Array) $({ target: 'Uint8Array', stat: true }, { fromHex: function fromHex(string) { return $fromHex(aString(string)).bytes; - } + }, }); diff --git a/packages/core-js/modules/es.uint8-array.set-from-base64.js b/packages/core-js/modules/es.uint8-array.set-from-base64.js index 545e4ce1f6df..1d28f22a2fe9 100644 --- a/packages/core-js/modules/es.uint8-array.set-from-base64.js +++ b/packages/core-js/modules/es.uint8-array.set-from-base64.js @@ -33,5 +33,5 @@ if (Uint8Array) $({ target: 'Uint8Array', proto: true, forced: INCORRECT_BEHAVIO var result = $fromBase64(string, arguments.length > 1 ? arguments[1] : undefined, this, this.length); return { read: result.read, written: result.written }; - } + }, }); diff --git a/packages/core-js/modules/es.uint8-array.set-from-hex.js b/packages/core-js/modules/es.uint8-array.set-from-hex.js index 29f54208db6a..91895d8ac57c 100644 --- a/packages/core-js/modules/es.uint8-array.set-from-hex.js +++ b/packages/core-js/modules/es.uint8-array.set-from-hex.js @@ -15,5 +15,5 @@ if (globalThis.Uint8Array) $({ target: 'Uint8Array', proto: true }, { notDetached(this.buffer); var read = $fromHex(string, this).read; return { read: read, written: read / 2 }; - } + }, }); diff --git a/packages/core-js/modules/es.uint8-array.to-base64.js b/packages/core-js/modules/es.uint8-array.to-base64.js index 29e60f020873..a15d99b64105 100644 --- a/packages/core-js/modules/es.uint8-array.to-base64.js +++ b/packages/core-js/modules/es.uint8-array.to-base64.js @@ -56,5 +56,5 @@ if (Uint8Array) $({ target: 'Uint8Array', proto: true, forced: INCORRECT_BEHAVIO } return result; - } + }, }); diff --git a/packages/core-js/modules/es.uint8-array.to-hex.js b/packages/core-js/modules/es.uint8-array.to-hex.js index 8cf01569055f..0184b652172c 100644 --- a/packages/core-js/modules/es.uint8-array.to-hex.js +++ b/packages/core-js/modules/es.uint8-array.to-hex.js @@ -30,5 +30,5 @@ if (Uint8Array) $({ target: 'Uint8Array', proto: true, forced: INCORRECT_BEHAVIO result += hex.length === 1 ? '0' + hex : hex; } return result; - } + }, }); diff --git a/packages/core-js/modules/es.unescape.js b/packages/core-js/modules/es.unescape.js index c23b68c12241..03fb5bfdfc8d 100644 --- a/packages/core-js/modules/es.unescape.js +++ b/packages/core-js/modules/es.unescape.js @@ -41,5 +41,5 @@ $({ global: true }, { } result += chr; } return result; - } + }, }); diff --git a/packages/core-js/modules/es.weak-map.constructor.js b/packages/core-js/modules/es.weak-map.constructor.js index 546fc7cde3c9..300f70383f67 100644 --- a/packages/core-js/modules/es.weak-map.constructor.js +++ b/packages/core-js/modules/es.weak-map.constructor.js @@ -86,7 +86,7 @@ if (NATIVE_WEAK_MAP) if (IS_IE11) { nativeHas(this, key) ? nativeSet(this, key, value) : state.frozen.set(key, value); } else nativeSet(this, key, value); return this; - } + }, }); // Chakra Edge frozen keys fix } else if (hasMSEdgeFreezingBug()) { @@ -100,6 +100,6 @@ if (NATIVE_WEAK_MAP) if (IS_IE11) { nativeSet(this, key, value); if (arrayIntegrityLevel) arrayIntegrityLevel(key); return this; - } + }, }); } diff --git a/packages/core-js/modules/esnext.array.filter-reject.js b/packages/core-js/modules/esnext.array.filter-reject.js index 8a9ee56decdf..9e0604e3ef6d 100644 --- a/packages/core-js/modules/esnext.array.filter-reject.js +++ b/packages/core-js/modules/esnext.array.filter-reject.js @@ -8,7 +8,7 @@ var addToUnscopables = require('../internals/add-to-unscopables'); $({ target: 'Array', proto: true, forced: true }, { filterReject: function filterReject(callbackfn /* , thisArg */) { return $filterReject(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined); - } + }, }); addToUnscopables('filterReject'); diff --git a/packages/core-js/modules/esnext.array.is-template-object.js b/packages/core-js/modules/esnext.array.is-template-object.js index 4a2984b7beae..18fa1b3f4291 100644 --- a/packages/core-js/modules/esnext.array.is-template-object.js +++ b/packages/core-js/modules/esnext.array.is-template-object.js @@ -25,5 +25,5 @@ $({ target: 'Array', stat: true, sham: true, forced: true }, { if (!isFrozenStringArray(value, true)) return false; var raw = value.raw; return raw.length === value.length && isFrozenStringArray(raw, false); - } + }, }); diff --git a/packages/core-js/modules/esnext.array.unique-by.js b/packages/core-js/modules/esnext.array.unique-by.js index ea8f4f97f9ab..efc5b7daeffa 100644 --- a/packages/core-js/modules/esnext.array.unique-by.js +++ b/packages/core-js/modules/esnext.array.unique-by.js @@ -6,7 +6,7 @@ var uniqueBy = require('../internals/array-unique-by'); // `Array.prototype.uniqueBy` method // https://github.com/tc39/proposal-array-unique $({ target: 'Array', proto: true, forced: true }, { - uniqueBy: uniqueBy + uniqueBy: uniqueBy, }); addToUnscopables('uniqueBy'); diff --git a/packages/core-js/modules/esnext.async-iterator.constructor.js b/packages/core-js/modules/esnext.async-iterator.constructor.js index b82b37369fe4..ae20efc70031 100644 --- a/packages/core-js/modules/esnext.async-iterator.constructor.js +++ b/packages/core-js/modules/esnext.async-iterator.constructor.js @@ -30,5 +30,5 @@ if (IS_PURE || !hasOwn(AsyncIteratorPrototype, 'constructor') || AsyncIteratorPr // `AsyncIterator` constructor // https://github.com/tc39/proposal-async-iterator-helpers $({ global: true, constructor: true, forced: IS_PURE }, { - AsyncIterator: AsyncIteratorConstructor + AsyncIterator: AsyncIteratorConstructor, }); diff --git a/packages/core-js/modules/esnext.async-iterator.drop.js b/packages/core-js/modules/esnext.async-iterator.drop.js index ec7ff6913aaf..53e4ba482017 100644 --- a/packages/core-js/modules/esnext.async-iterator.drop.js +++ b/packages/core-js/modules/esnext.async-iterator.drop.js @@ -44,7 +44,7 @@ $({ target: 'AsyncIterator', proto: true, real: true, forced: true }, { anObject(this); var remaining = toPositiveInteger(notANaN(+limit)); return new AsyncIteratorProxy(getIteratorDirect(this), { - remaining: remaining + remaining: remaining, }); - } + }, }); diff --git a/packages/core-js/modules/esnext.async-iterator.every.js b/packages/core-js/modules/esnext.async-iterator.every.js index 0da3fb2f99d2..af0493b06763 100644 --- a/packages/core-js/modules/esnext.async-iterator.every.js +++ b/packages/core-js/modules/esnext.async-iterator.every.js @@ -7,5 +7,5 @@ var $every = require('../internals/async-iterator-iteration').every; $({ target: 'AsyncIterator', proto: true, real: true, forced: true }, { every: function every(predicate) { return $every(this, predicate); - } + }, }); diff --git a/packages/core-js/modules/esnext.async-iterator.filter.js b/packages/core-js/modules/esnext.async-iterator.filter.js index 9a703120ed7d..99e45cc94f91 100644 --- a/packages/core-js/modules/esnext.async-iterator.filter.js +++ b/packages/core-js/modules/esnext.async-iterator.filter.js @@ -60,7 +60,7 @@ $({ target: 'AsyncIterator', proto: true, real: true, forced: true }, { anObject(this); aCallable(predicate); return new AsyncIteratorProxy(getIteratorDirect(this), { - predicate: predicate + predicate: predicate, }); - } + }, }); diff --git a/packages/core-js/modules/esnext.async-iterator.find.js b/packages/core-js/modules/esnext.async-iterator.find.js index e6ee6bfa7a06..0c43cae65b90 100644 --- a/packages/core-js/modules/esnext.async-iterator.find.js +++ b/packages/core-js/modules/esnext.async-iterator.find.js @@ -7,5 +7,5 @@ var $find = require('../internals/async-iterator-iteration').find; $({ target: 'AsyncIterator', proto: true, real: true, forced: true }, { find: function find(predicate) { return $find(this, predicate); - } + }, }); diff --git a/packages/core-js/modules/esnext.async-iterator.flat-map.js b/packages/core-js/modules/esnext.async-iterator.flat-map.js index 638e6a0a5a4a..8a3763994266 100644 --- a/packages/core-js/modules/esnext.async-iterator.flat-map.js +++ b/packages/core-js/modules/esnext.async-iterator.flat-map.js @@ -81,7 +81,7 @@ $({ target: 'AsyncIterator', proto: true, real: true, forced: true }, { aCallable(mapper); return new AsyncIteratorProxy(getIteratorDirect(this), { mapper: mapper, - inner: null + inner: null, }); - } + }, }); diff --git a/packages/core-js/modules/esnext.async-iterator.for-each.js b/packages/core-js/modules/esnext.async-iterator.for-each.js index 43da0f5bbb0a..7b39c4a6d13a 100644 --- a/packages/core-js/modules/esnext.async-iterator.for-each.js +++ b/packages/core-js/modules/esnext.async-iterator.for-each.js @@ -7,5 +7,5 @@ var $forEach = require('../internals/async-iterator-iteration').forEach; $({ target: 'AsyncIterator', proto: true, real: true, forced: true }, { forEach: function forEach(fn) { return $forEach(this, fn); - } + }, }); diff --git a/packages/core-js/modules/esnext.async-iterator.from.js b/packages/core-js/modules/esnext.async-iterator.from.js index 055270601226..c604b226fa24 100644 --- a/packages/core-js/modules/esnext.async-iterator.from.js +++ b/packages/core-js/modules/esnext.async-iterator.from.js @@ -14,5 +14,5 @@ $({ target: 'AsyncIterator', stat: true, forced: true }, { return isPrototypeOf(AsyncIteratorPrototype, iteratorRecord.iterator) ? iteratorRecord.iterator : new WrapAsyncIterator(iteratorRecord); - } + }, }); diff --git a/packages/core-js/modules/esnext.async-iterator.map.js b/packages/core-js/modules/esnext.async-iterator.map.js index 4e94d9679155..7af1d484191d 100644 --- a/packages/core-js/modules/esnext.async-iterator.map.js +++ b/packages/core-js/modules/esnext.async-iterator.map.js @@ -54,7 +54,7 @@ $({ target: 'AsyncIterator', proto: true, real: true, forced: true }, { anObject(this); aCallable(mapper); return new AsyncIteratorProxy(getIteratorDirect(this), { - mapper: mapper + mapper: mapper, }); - } + }, }); diff --git a/packages/core-js/modules/esnext.async-iterator.reduce.js b/packages/core-js/modules/esnext.async-iterator.reduce.js index 622a36d4270c..1251ec7d772d 100644 --- a/packages/core-js/modules/esnext.async-iterator.reduce.js +++ b/packages/core-js/modules/esnext.async-iterator.reduce.js @@ -61,5 +61,5 @@ $({ target: 'AsyncIterator', proto: true, real: true, forced: true }, { loop(); }); - } + }, }); diff --git a/packages/core-js/modules/esnext.async-iterator.some.js b/packages/core-js/modules/esnext.async-iterator.some.js index db51110f5b0f..b07ed2d6e1f0 100644 --- a/packages/core-js/modules/esnext.async-iterator.some.js +++ b/packages/core-js/modules/esnext.async-iterator.some.js @@ -7,5 +7,5 @@ var $some = require('../internals/async-iterator-iteration').some; $({ target: 'AsyncIterator', proto: true, real: true, forced: true }, { some: function some(predicate) { return $some(this, predicate); - } + }, }); diff --git a/packages/core-js/modules/esnext.async-iterator.take.js b/packages/core-js/modules/esnext.async-iterator.take.js index 1cf31ec861c9..7fc3109d9400 100644 --- a/packages/core-js/modules/esnext.async-iterator.take.js +++ b/packages/core-js/modules/esnext.async-iterator.take.js @@ -41,7 +41,7 @@ $({ target: 'AsyncIterator', proto: true, real: true, forced: true }, { anObject(this); var remaining = toPositiveInteger(notANaN(+limit)); return new AsyncIteratorProxy(getIteratorDirect(this), { - remaining: remaining + remaining: remaining, }); - } + }, }); diff --git a/packages/core-js/modules/esnext.async-iterator.to-array.js b/packages/core-js/modules/esnext.async-iterator.to-array.js index d8f150cb16e7..18b16a1d6b0f 100644 --- a/packages/core-js/modules/esnext.async-iterator.to-array.js +++ b/packages/core-js/modules/esnext.async-iterator.to-array.js @@ -7,5 +7,5 @@ var $toArray = require('../internals/async-iterator-iteration').toArray; $({ target: 'AsyncIterator', proto: true, real: true, forced: true }, { toArray: function toArray() { return $toArray(this, undefined, []); - } + }, }); diff --git a/packages/core-js/modules/esnext.composite-key.js b/packages/core-js/modules/esnext.composite-key.js index 5eeacfb14c65..0759e3962f4b 100644 --- a/packages/core-js/modules/esnext.composite-key.js +++ b/packages/core-js/modules/esnext.composite-key.js @@ -16,5 +16,5 @@ var initializer = function () { $({ global: true, forced: true }, { compositeKey: function compositeKey() { return apply(getCompositeKeyNode, $Object, arguments).get('object', initializer); - } + }, }); diff --git a/packages/core-js/modules/esnext.composite-symbol.js b/packages/core-js/modules/esnext.composite-symbol.js index 3ec0fc85cf5c..871fcce86abc 100644 --- a/packages/core-js/modules/esnext.composite-symbol.js +++ b/packages/core-js/modules/esnext.composite-symbol.js @@ -9,5 +9,5 @@ $({ global: true, forced: true }, { compositeSymbol: function compositeSymbol() { if (arguments.length === 1 && typeof arguments[0] == 'string') return getBuiltIn('Symbol').for(arguments[0]); return apply(getCompositeKeyNode, null, arguments).get('symbol', getBuiltIn('Symbol')); - } + }, }); diff --git a/packages/core-js/modules/esnext.data-view.get-uint8-clamped.js b/packages/core-js/modules/esnext.data-view.get-uint8-clamped.js index a29208211a2e..81117707e109 100644 --- a/packages/core-js/modules/esnext.data-view.get-uint8-clamped.js +++ b/packages/core-js/modules/esnext.data-view.get-uint8-clamped.js @@ -10,5 +10,5 @@ var getUint8 = uncurryThis(DataView.prototype.getUint8); $({ target: 'DataView', proto: true, forced: true }, { getUint8Clamped: function getUint8Clamped(byteOffset) { return getUint8(this, byteOffset); - } + }, }); diff --git a/packages/core-js/modules/esnext.data-view.set-uint8-clamped.js b/packages/core-js/modules/esnext.data-view.set-uint8-clamped.js index e70458b0b4cb..40f050b69006 100644 --- a/packages/core-js/modules/esnext.data-view.set-uint8-clamped.js +++ b/packages/core-js/modules/esnext.data-view.set-uint8-clamped.js @@ -17,5 +17,5 @@ $({ target: 'DataView', proto: true, forced: true }, { toIndex(byteOffset), toUint8Clamped(value) ); - } + }, }); diff --git a/packages/core-js/modules/esnext.function.demethodize.js b/packages/core-js/modules/esnext.function.demethodize.js index a779b7bf4746..1d8f9ec11418 100644 --- a/packages/core-js/modules/esnext.function.demethodize.js +++ b/packages/core-js/modules/esnext.function.demethodize.js @@ -8,5 +8,5 @@ var aCallable = require('../internals/a-callable'); $({ target: 'Function', proto: true, forced: true }, { demethodize: function demethodize() { return uncurryThis(aCallable(this)); - } + }, }); diff --git a/packages/core-js/modules/esnext.function.is-callable.js b/packages/core-js/modules/esnext.function.is-callable.js index e830a018092d..6d389bfc654f 100644 --- a/packages/core-js/modules/esnext.function.is-callable.js +++ b/packages/core-js/modules/esnext.function.is-callable.js @@ -25,5 +25,5 @@ var isClassConstructor = function (argument) { $({ target: 'Function', stat: true, sham: true, forced: true }, { isCallable: function isCallable(argument) { return $isCallable(argument) && !isClassConstructor(argument); - } + }, }); diff --git a/packages/core-js/modules/esnext.function.is-constructor.js b/packages/core-js/modules/esnext.function.is-constructor.js index 5ad81e1303fe..4fe847021469 100644 --- a/packages/core-js/modules/esnext.function.is-constructor.js +++ b/packages/core-js/modules/esnext.function.is-constructor.js @@ -5,5 +5,5 @@ var isConstructor = require('../internals/is-constructor'); // `Function.isConstructor` method // https://github.com/caitp/TC39-Proposals/blob/trunk/tc39-reflect-isconstructor-iscallable.md $({ target: 'Function', stat: true, forced: true }, { - isConstructor: isConstructor + isConstructor: isConstructor, }); diff --git a/packages/core-js/modules/esnext.function.metadata.js b/packages/core-js/modules/esnext.function.metadata.js index 58dfa7afdc7c..b01382be8e9f 100644 --- a/packages/core-js/modules/esnext.function.metadata.js +++ b/packages/core-js/modules/esnext.function.metadata.js @@ -9,6 +9,6 @@ var FunctionPrototype = Function.prototype; // https://github.com/tc39/proposal-decorator-metadata if (FunctionPrototype[METADATA] === undefined) { defineProperty(FunctionPrototype, METADATA, { - value: null + value: null, }); } diff --git a/packages/core-js/modules/esnext.iterator.chunks.js b/packages/core-js/modules/esnext.iterator.chunks.js index de783b37660a..f19e42c21041 100644 --- a/packages/core-js/modules/esnext.iterator.chunks.js +++ b/packages/core-js/modules/esnext.iterator.chunks.js @@ -38,7 +38,7 @@ $({ target: 'Iterator', proto: true, real: true, forced: true }, { return iteratorClose(O, 'throw', new $RangeError('chunkSize must be integer in [1, 2^32-1]')); } return new IteratorProxy(getIteratorDirect(O), { - chunkSize: chunkSize + chunkSize: chunkSize, }); - } + }, }); diff --git a/packages/core-js/modules/esnext.iterator.concat.js b/packages/core-js/modules/esnext.iterator.concat.js index 380301a5d9a8..584d7b014f77 100644 --- a/packages/core-js/modules/esnext.iterator.concat.js +++ b/packages/core-js/modules/esnext.iterator.concat.js @@ -43,14 +43,14 @@ $({ target: 'Iterator', stat: true }, { var item = anObject(arguments[index]); iterables[index] = { iterable: item, - method: aCallable(getIteratorMethod(item)) + method: aCallable(getIteratorMethod(item)), }; } return new IteratorProxy({ iterables: iterables, nextIterableIndex: 0, iterator: null, - next: null + next: null, }); - } + }, }); diff --git a/packages/core-js/modules/esnext.iterator.range.js b/packages/core-js/modules/esnext.iterator.range.js index 1e9da0c5a6c3..a26fe66201e6 100644 --- a/packages/core-js/modules/esnext.iterator.range.js +++ b/packages/core-js/modules/esnext.iterator.range.js @@ -57,7 +57,7 @@ var $NumericRangeIterator = createIteratorConstructor(function NumericRangeItera inclusive: inclusiveEnd, hitsEnd: hitsEnd, currentCount: zero, - zero: zero + zero: zero, }); }, NUMERIC_RANGE_ITERATOR, function next() { var state = getInternalState(this); @@ -87,7 +87,7 @@ var addGetter = function (key) { }, set: function () { /* empty */ }, configurable: true, - enumerable: false + enumerable: false, }); }; @@ -103,5 +103,5 @@ $({ target: 'Iterator', stat: true, forced: true }, { if (typeof start == 'number') return new $NumericRangeIterator(start, end, option, 'number', 0, 1); if (typeof start == 'bigint') return new $NumericRangeIterator(start, end, option, 'bigint', BigInt(0), BigInt(1)); throw new $TypeError('Incorrect Iterator.range arguments'); - } + }, }); diff --git a/packages/core-js/modules/esnext.iterator.sliding.js b/packages/core-js/modules/esnext.iterator.sliding.js index 608d0738e074..187ece26f450 100644 --- a/packages/core-js/modules/esnext.iterator.sliding.js +++ b/packages/core-js/modules/esnext.iterator.sliding.js @@ -7,5 +7,5 @@ var iteratorWindow = require('../internals/iterator-window'); $({ target: 'Iterator', proto: true, real: true, forced: true }, { sliding: function sliding(windowSize) { return iteratorWindow(this, windowSize, 'allow-partial'); - } + }, }); diff --git a/packages/core-js/modules/esnext.iterator.to-async.js b/packages/core-js/modules/esnext.iterator.to-async.js index ce670c1a97f5..a2035009b9a5 100644 --- a/packages/core-js/modules/esnext.iterator.to-async.js +++ b/packages/core-js/modules/esnext.iterator.to-async.js @@ -10,5 +10,5 @@ var getIteratorDirect = require('../internals/get-iterator-direct'); $({ target: 'Iterator', proto: true, real: true, forced: true }, { toAsync: function toAsync() { return new WrapAsyncIterator(getIteratorDirect(new AsyncFromSyncIterator(getIteratorDirect(anObject(this))))); - } + }, }); diff --git a/packages/core-js/modules/esnext.iterator.windows.js b/packages/core-js/modules/esnext.iterator.windows.js index a81c1d771d6b..c5375631bf95 100644 --- a/packages/core-js/modules/esnext.iterator.windows.js +++ b/packages/core-js/modules/esnext.iterator.windows.js @@ -7,5 +7,5 @@ var iteratorWindow = require('../internals/iterator-window'); $({ target: 'Iterator', proto: true, real: true, forced: true }, { windows: function windows(windowSize /* , undersized */) { return iteratorWindow(this, windowSize, arguments.length < 2 ? undefined : arguments[1]); - } + }, }); diff --git a/packages/core-js/modules/esnext.iterator.zip-keyed.js b/packages/core-js/modules/esnext.iterator.zip-keyed.js index c3533d196211..f4b7d65e1a00 100644 --- a/packages/core-js/modules/esnext.iterator.zip-keyed.js +++ b/packages/core-js/modules/esnext.iterator.zip-keyed.js @@ -67,5 +67,5 @@ $({ target: 'Iterator', stat: true, forced: true }, { } return obj; }); - } + }, }); diff --git a/packages/core-js/modules/esnext.iterator.zip.js b/packages/core-js/modules/esnext.iterator.zip.js index 5b47a6f82ecf..147320cbc9a8 100644 --- a/packages/core-js/modules/esnext.iterator.zip.js +++ b/packages/core-js/modules/esnext.iterator.zip.js @@ -87,5 +87,5 @@ $({ target: 'Iterator', stat: true, forced: true }, { } return iteratorZip(iters, mode, padding); - } + }, }); diff --git a/packages/core-js/modules/esnext.json.is-raw-json.js b/packages/core-js/modules/esnext.json.is-raw-json.js index 375ae627bbc9..90290c4853be 100644 --- a/packages/core-js/modules/esnext.json.is-raw-json.js +++ b/packages/core-js/modules/esnext.json.is-raw-json.js @@ -7,5 +7,5 @@ var isRawJSON = require('../internals/is-raw-json'); // https://tc39.es/proposal-json-parse-with-source/#sec-json.israwjson // https://github.com/tc39/proposal-json-parse-with-source $({ target: 'JSON', stat: true, forced: !NATIVE_RAW_JSON }, { - isRawJSON: isRawJSON + isRawJSON: isRawJSON, }); diff --git a/packages/core-js/modules/esnext.json.parse.js b/packages/core-js/modules/esnext.json.parse.js index 09e59ff4e2b8..a5f7fa09b990 100644 --- a/packages/core-js/modules/esnext.json.parse.js +++ b/packages/core-js/modules/esnext.json.parse.js @@ -221,7 +221,7 @@ Context.prototype = { var chr = at(this.source, i); for (var j = 0; j < array.length; j++) if (array[j] === chr) return i; throw new SyntaxError('Unexpected character: "' + chr + '" at: ' + i); - } + }, }; var NO_SOURCE_SUPPORT = fails(function () { @@ -244,5 +244,5 @@ var PROPER_BASE_PARSE = NATIVE_SYMBOL && !fails(function () { $({ target: 'JSON', stat: true, forced: NO_SOURCE_SUPPORT }, { parse: function parse(text, reviver) { return PROPER_BASE_PARSE && !isCallable(reviver) ? nativeParse(text) : $parse(text, reviver); - } + }, }); diff --git a/packages/core-js/modules/esnext.json.raw-json.js b/packages/core-js/modules/esnext.json.raw-json.js index 00959384ccf9..6d93806a951b 100644 --- a/packages/core-js/modules/esnext.json.raw-json.js +++ b/packages/core-js/modules/esnext.json.raw-json.js @@ -47,7 +47,7 @@ $({ target: 'JSON', stat: true, forced: !NATIVE_RAW_JSON }, { setInternalState(obj, { type: 'RawJSON' }); createProperty(obj, 'rawJSON', jsonString); return FREEZING ? freeze(obj) : obj; - } + }, }); // `JSON.stringify` method @@ -82,5 +82,5 @@ if ($stringify) $({ target: 'JSON', stat: true, arity: 3, forced: !NATIVE_RAW_JS } return result; - } + }, }); diff --git a/packages/core-js/modules/esnext.map.delete-all.js b/packages/core-js/modules/esnext.map.delete-all.js index 5a0d242556f5..1abfe1c481b6 100644 --- a/packages/core-js/modules/esnext.map.delete-all.js +++ b/packages/core-js/modules/esnext.map.delete-all.js @@ -14,5 +14,5 @@ $({ target: 'Map', proto: true, real: true, forced: true }, { wasDeleted = remove(collection, arguments[k]); allDeleted = allDeleted && wasDeleted; } return !!allDeleted; - } + }, }); diff --git a/packages/core-js/modules/esnext.map.emplace.js b/packages/core-js/modules/esnext.map.emplace.js index 24fe86ef8e6a..6303c9559d18 100644 --- a/packages/core-js/modules/esnext.map.emplace.js +++ b/packages/core-js/modules/esnext.map.emplace.js @@ -23,5 +23,5 @@ $({ target: 'Map', proto: true, real: true, forced: true }, { inserted = handler.insert(key, map); set(map, key, inserted); return inserted; - } + }, }); diff --git a/packages/core-js/modules/esnext.map.every.js b/packages/core-js/modules/esnext.map.every.js index 85264c7bc282..b4e4fbbf19ea 100644 --- a/packages/core-js/modules/esnext.map.every.js +++ b/packages/core-js/modules/esnext.map.every.js @@ -13,5 +13,5 @@ $({ target: 'Map', proto: true, real: true, forced: true }, { return iterate(map, function (value, key) { if (!boundFunction(value, key, map)) return false; }, true) !== false; - } + }, }); diff --git a/packages/core-js/modules/esnext.map.filter.js b/packages/core-js/modules/esnext.map.filter.js index 67ffe5c81fc0..c76b737b8694 100644 --- a/packages/core-js/modules/esnext.map.filter.js +++ b/packages/core-js/modules/esnext.map.filter.js @@ -19,5 +19,5 @@ $({ target: 'Map', proto: true, real: true, forced: true }, { if (boundFunction(value, key, map)) set(newMap, key, value); }); return newMap; - } + }, }); diff --git a/packages/core-js/modules/esnext.map.find-key.js b/packages/core-js/modules/esnext.map.find-key.js index c3779a82bc88..c892293e8c07 100644 --- a/packages/core-js/modules/esnext.map.find-key.js +++ b/packages/core-js/modules/esnext.map.find-key.js @@ -14,5 +14,5 @@ $({ target: 'Map', proto: true, real: true, forced: true }, { if (boundFunction(value, key, map)) return { key: key }; }, true); return result && result.key; - } + }, }); diff --git a/packages/core-js/modules/esnext.map.find.js b/packages/core-js/modules/esnext.map.find.js index ca1f0f9b8a77..fcf6a6f08e6e 100644 --- a/packages/core-js/modules/esnext.map.find.js +++ b/packages/core-js/modules/esnext.map.find.js @@ -14,5 +14,5 @@ $({ target: 'Map', proto: true, real: true, forced: true }, { if (boundFunction(value, key, map)) return { value: value }; }, true); return result && result.value; - } + }, }); diff --git a/packages/core-js/modules/esnext.map.from.js b/packages/core-js/modules/esnext.map.from.js index 2d916b2bd412..5b251973032a 100644 --- a/packages/core-js/modules/esnext.map.from.js +++ b/packages/core-js/modules/esnext.map.from.js @@ -6,5 +6,5 @@ var createCollectionFrom = require('../internals/collection-from'); // `Map.from` method // https://tc39.github.io/proposal-setmap-offrom/#sec-map.from $({ target: 'Map', stat: true, forced: true }, { - from: createCollectionFrom(MapHelpers.Map, MapHelpers.set, true) + from: createCollectionFrom(MapHelpers.Map, MapHelpers.set, true), }); diff --git a/packages/core-js/modules/esnext.map.get-or-insert-computed.js b/packages/core-js/modules/esnext.map.get-or-insert-computed.js index adda79efb511..2347be5dfa52 100644 --- a/packages/core-js/modules/esnext.map.get-or-insert-computed.js +++ b/packages/core-js/modules/esnext.map.get-or-insert-computed.js @@ -21,5 +21,5 @@ $({ target: 'Map', proto: true, real: true, forced: IS_PURE }, { var value = callbackfn(key); set(this, key, value); return value; - } + }, }); diff --git a/packages/core-js/modules/esnext.map.get-or-insert.js b/packages/core-js/modules/esnext.map.get-or-insert.js index 9f16261e506c..47ec5275775e 100644 --- a/packages/core-js/modules/esnext.map.get-or-insert.js +++ b/packages/core-js/modules/esnext.map.get-or-insert.js @@ -15,5 +15,5 @@ $({ target: 'Map', proto: true, real: true, forced: IS_PURE }, { if (has(aMap(this), key)) return get(this, key); set(this, key, value); return value; - } + }, }); diff --git a/packages/core-js/modules/esnext.map.includes.js b/packages/core-js/modules/esnext.map.includes.js index 14b51ab5e849..6cc23a3d5687 100644 --- a/packages/core-js/modules/esnext.map.includes.js +++ b/packages/core-js/modules/esnext.map.includes.js @@ -11,5 +11,5 @@ $({ target: 'Map', proto: true, real: true, forced: true }, { return iterate(aMap(this), function (value) { if (sameValueZero(value, searchElement)) return true; }, true) === true; - } + }, }); diff --git a/packages/core-js/modules/esnext.map.key-by.js b/packages/core-js/modules/esnext.map.key-by.js index 67933b5992ac..f7c849e9d55a 100644 --- a/packages/core-js/modules/esnext.map.key-by.js +++ b/packages/core-js/modules/esnext.map.key-by.js @@ -18,5 +18,5 @@ $({ target: 'Map', stat: true, forced: true }, { call(setter, newMap, keyDerivative(element), element); }); return newMap; - } + }, }); diff --git a/packages/core-js/modules/esnext.map.key-of.js b/packages/core-js/modules/esnext.map.key-of.js index 07d5d18e8d89..84236f0a6516 100644 --- a/packages/core-js/modules/esnext.map.key-of.js +++ b/packages/core-js/modules/esnext.map.key-of.js @@ -11,5 +11,5 @@ $({ target: 'Map', proto: true, real: true, forced: true }, { if (value === searchElement) return { key: key }; }, true); return result && result.key; - } + }, }); diff --git a/packages/core-js/modules/esnext.map.map-keys.js b/packages/core-js/modules/esnext.map.map-keys.js index dcb1ea82a248..818c5757a236 100644 --- a/packages/core-js/modules/esnext.map.map-keys.js +++ b/packages/core-js/modules/esnext.map.map-keys.js @@ -19,5 +19,5 @@ $({ target: 'Map', proto: true, real: true, forced: true }, { set(newMap, boundFunction(value, key, map), value); }); return newMap; - } + }, }); diff --git a/packages/core-js/modules/esnext.map.map-values.js b/packages/core-js/modules/esnext.map.map-values.js index e10f42be1ccc..07034477bc81 100644 --- a/packages/core-js/modules/esnext.map.map-values.js +++ b/packages/core-js/modules/esnext.map.map-values.js @@ -19,5 +19,5 @@ $({ target: 'Map', proto: true, real: true, forced: true }, { set(newMap, key, boundFunction(value, key, map)); }); return newMap; - } + }, }); diff --git a/packages/core-js/modules/esnext.map.merge.js b/packages/core-js/modules/esnext.map.merge.js index d2174f800444..e9bfcb47a8f1 100644 --- a/packages/core-js/modules/esnext.map.merge.js +++ b/packages/core-js/modules/esnext.map.merge.js @@ -18,5 +18,5 @@ $({ target: 'Map', proto: true, real: true, arity: 1, forced: true }, { }, { AS_ENTRIES: true }); } return map; - } + }, }); diff --git a/packages/core-js/modules/esnext.map.of.js b/packages/core-js/modules/esnext.map.of.js index 5fc111ede369..2c0683595248 100644 --- a/packages/core-js/modules/esnext.map.of.js +++ b/packages/core-js/modules/esnext.map.of.js @@ -6,5 +6,5 @@ var createCollectionOf = require('../internals/collection-of'); // `Map.of` method // https://tc39.github.io/proposal-setmap-offrom/#sec-map.of $({ target: 'Map', stat: true, forced: true }, { - of: createCollectionOf(MapHelpers.Map, MapHelpers.set, true) + of: createCollectionOf(MapHelpers.Map, MapHelpers.set, true), }); diff --git a/packages/core-js/modules/esnext.map.reduce.js b/packages/core-js/modules/esnext.map.reduce.js index 1067337e337e..493d427842d4 100644 --- a/packages/core-js/modules/esnext.map.reduce.js +++ b/packages/core-js/modules/esnext.map.reduce.js @@ -24,5 +24,5 @@ $({ target: 'Map', proto: true, real: true, forced: true }, { }); if (noInitial) throw new $TypeError('Reduce of empty map with no initial value'); return accumulator; - } + }, }); diff --git a/packages/core-js/modules/esnext.map.some.js b/packages/core-js/modules/esnext.map.some.js index c3d6421fab44..8e8ef186cbe3 100644 --- a/packages/core-js/modules/esnext.map.some.js +++ b/packages/core-js/modules/esnext.map.some.js @@ -13,5 +13,5 @@ $({ target: 'Map', proto: true, real: true, forced: true }, { return iterate(map, function (value, key) { if (boundFunction(value, key, map)) return true; }, true) === true; - } + }, }); diff --git a/packages/core-js/modules/esnext.map.update.js b/packages/core-js/modules/esnext.map.update.js index a112f7118c44..bf01a9639667 100644 --- a/packages/core-js/modules/esnext.map.update.js +++ b/packages/core-js/modules/esnext.map.update.js @@ -23,5 +23,5 @@ $({ target: 'Map', proto: true, real: true, forced: true }, { var value = isPresentInMap ? get(map, key) : aCallable(length > 2 ? arguments[2] : undefined)(key, map); set(map, key, callback(value, key, map)); return map; - } + }, }); diff --git a/packages/core-js/modules/esnext.math.deg-per-rad.js b/packages/core-js/modules/esnext.math.deg-per-rad.js index 2b1d8c443419..1753594d78ea 100644 --- a/packages/core-js/modules/esnext.math.deg-per-rad.js +++ b/packages/core-js/modules/esnext.math.deg-per-rad.js @@ -4,5 +4,5 @@ var $ = require('../internals/export'); // `Math.DEG_PER_RAD` constant // https://rwaldron.github.io/proposal-math-extensions/ $({ target: 'Math', stat: true, nonConfigurable: true, nonWritable: true }, { - DEG_PER_RAD: Math.PI / 180 + DEG_PER_RAD: Math.PI / 180, }); diff --git a/packages/core-js/modules/esnext.math.degrees.js b/packages/core-js/modules/esnext.math.degrees.js index aa21ad765f79..ad06c7c06ded 100644 --- a/packages/core-js/modules/esnext.math.degrees.js +++ b/packages/core-js/modules/esnext.math.degrees.js @@ -8,5 +8,5 @@ var RAD_PER_DEG = 180 / Math.PI; $({ target: 'Math', stat: true, forced: true }, { degrees: function degrees(radians) { return radians * RAD_PER_DEG; - } + }, }); diff --git a/packages/core-js/modules/esnext.math.fscale.js b/packages/core-js/modules/esnext.math.fscale.js index d9767c5665e8..075cab23f920 100644 --- a/packages/core-js/modules/esnext.math.fscale.js +++ b/packages/core-js/modules/esnext.math.fscale.js @@ -9,5 +9,5 @@ var fround = require('../internals/math-fround'); $({ target: 'Math', stat: true, forced: true }, { fscale: function fscale(x, inLow, inHigh, outLow, outHigh) { return fround(scale(x, inLow, inHigh, outLow, outHigh)); - } + }, }); diff --git a/packages/core-js/modules/esnext.math.rad-per-deg.js b/packages/core-js/modules/esnext.math.rad-per-deg.js index ea50751a471f..c29fe389fe53 100644 --- a/packages/core-js/modules/esnext.math.rad-per-deg.js +++ b/packages/core-js/modules/esnext.math.rad-per-deg.js @@ -4,5 +4,5 @@ var $ = require('../internals/export'); // `Math.RAD_PER_DEG` constant // https://rwaldron.github.io/proposal-math-extensions/ $({ target: 'Math', stat: true, nonConfigurable: true, nonWritable: true }, { - RAD_PER_DEG: 180 / Math.PI + RAD_PER_DEG: 180 / Math.PI, }); diff --git a/packages/core-js/modules/esnext.math.radians.js b/packages/core-js/modules/esnext.math.radians.js index ea6227183954..481ec7654bfc 100644 --- a/packages/core-js/modules/esnext.math.radians.js +++ b/packages/core-js/modules/esnext.math.radians.js @@ -8,5 +8,5 @@ var DEG_PER_RAD = Math.PI / 180; $({ target: 'Math', stat: true, forced: true }, { radians: function radians(degrees) { return degrees * DEG_PER_RAD; - } + }, }); diff --git a/packages/core-js/modules/esnext.math.scale.js b/packages/core-js/modules/esnext.math.scale.js index be0b6c426a63..9d096950f6fa 100644 --- a/packages/core-js/modules/esnext.math.scale.js +++ b/packages/core-js/modules/esnext.math.scale.js @@ -5,5 +5,5 @@ var scale = require('../internals/math-scale'); // `Math.scale` method // https://rwaldron.github.io/proposal-math-extensions/ $({ target: 'Math', stat: true, forced: true }, { - scale: scale + scale: scale, }); diff --git a/packages/core-js/modules/esnext.math.signbit.js b/packages/core-js/modules/esnext.math.signbit.js index 1d4cad0c691f..94aa6e4d520d 100644 --- a/packages/core-js/modules/esnext.math.signbit.js +++ b/packages/core-js/modules/esnext.math.signbit.js @@ -8,5 +8,5 @@ $({ target: 'Math', stat: true, forced: true }, { var n = +x; // eslint-disable-next-line no-self-compare -- NaN check return n === n && n === 0 ? 1 / n === -Infinity : n < 0; - } + }, }); diff --git a/packages/core-js/modules/esnext.number.clamp.js b/packages/core-js/modules/esnext.number.clamp.js index 62192ab91af9..c3730d79a5d5 100644 --- a/packages/core-js/modules/esnext.number.clamp.js +++ b/packages/core-js/modules/esnext.number.clamp.js @@ -11,5 +11,5 @@ var $max = Math.max; $({ target: 'Number', proto: true, forced: true }, { clamp: function clamp(min, max) { return $min($max(thisNumberValue(this), aNumber(min)), aNumber(max)); - } + }, }); diff --git a/packages/core-js/modules/esnext.number.from-string.js b/packages/core-js/modules/esnext.number.from-string.js index abab4814f092..79ea8653faa6 100644 --- a/packages/core-js/modules/esnext.number.from-string.js +++ b/packages/core-js/modules/esnext.number.from-string.js @@ -37,5 +37,5 @@ $({ target: 'Number', stat: true, forced: true }, { if (parts.length > 1) mathNum += $parseInt(parts[1], R) / pow(R, parts[1].length); if (R === 10 && numberToString(mathNum, R) !== string) throw new $SyntaxError(INVALID_NUMBER_REPRESENTATION); return sign * mathNum; - } + }, }); diff --git a/packages/core-js/modules/esnext.observable.constructor.js b/packages/core-js/modules/esnext.observable.constructor.js index 2f4a440f4b2f..0ffd7af15c97 100644 --- a/packages/core-js/modules/esnext.observable.constructor.js +++ b/packages/core-js/modules/esnext.observable.constructor.js @@ -51,7 +51,7 @@ SubscriptionState.prototype = { }, isClosed: function () { return this.observer === null; - } + }, }; var Subscription = function (observer, subscriber) { @@ -83,20 +83,20 @@ Subscription.prototype = defineBuiltIns({}, { subscriptionState.close(); subscriptionState.clean(); } - } + }, }); defineBuiltInAccessor(Subscription.prototype, 'closed', { configurable: true, get: function closed() { return getSubscriptionInternalState(this).isClosed(); - } + }, }); var SubscriptionObserver = function (subscriptionState) { setInternalState(this, { type: SUBSCRIPTION_OBSERVER, - subscriptionState: subscriptionState + subscriptionState: subscriptionState, }); }; @@ -139,21 +139,21 @@ SubscriptionObserver.prototype = defineBuiltIns({}, { hostReportErrors(error); } subscriptionState.clean(); } - } + }, }); defineBuiltInAccessor(SubscriptionObserver.prototype, 'closed', { configurable: true, get: function closed() { return getSubscriptionObserverInternalState(this).subscriptionState.isClosed(); - } + }, }); var $Observable = function Observable(subscriber) { anInstance(this, ObservablePrototype); setInternalState(this, { type: OBSERVABLE, - subscriber: aCallable(subscriber) + subscriber: aCallable(subscriber), }); }; @@ -165,15 +165,15 @@ defineBuiltIns(ObservablePrototype, { return new Subscription(isCallable(observer) ? { next: observer, error: length > 1 ? arguments[1] : undefined, - complete: length > 2 ? arguments[2] : undefined + complete: length > 2 ? arguments[2] : undefined, } : isObject(observer) ? observer : {}, getObservableInternalState(this).subscriber); - } + }, }); defineBuiltIn(ObservablePrototype, $$OBSERVABLE, function () { return this; }); $({ global: true, constructor: true, forced: true }, { - Observable: $Observable + Observable: $Observable, }); setSpecies(OBSERVABLE); diff --git a/packages/core-js/modules/esnext.observable.from.js b/packages/core-js/modules/esnext.observable.from.js index e1f81c197e53..968920a8173b 100644 --- a/packages/core-js/modules/esnext.observable.from.js +++ b/packages/core-js/modules/esnext.observable.from.js @@ -31,5 +31,5 @@ $({ target: 'Observable', stat: true, forced: true }, { }, { IS_ITERATOR: true, INTERRUPTED: true }); observer.complete(); }); - } + }, }); diff --git a/packages/core-js/modules/esnext.observable.of.js b/packages/core-js/modules/esnext.observable.of.js index 3082f04b6ca6..a666202b9019 100644 --- a/packages/core-js/modules/esnext.observable.of.js +++ b/packages/core-js/modules/esnext.observable.of.js @@ -20,5 +20,5 @@ $({ target: 'Observable', stat: true, forced: true }, { if (observer.closed) return; } observer.complete(); }); - } + }, }); diff --git a/packages/core-js/modules/esnext.reflect.define-metadata.js b/packages/core-js/modules/esnext.reflect.define-metadata.js index 8ace9f443164..807b90b3c2cf 100644 --- a/packages/core-js/modules/esnext.reflect.define-metadata.js +++ b/packages/core-js/modules/esnext.reflect.define-metadata.js @@ -13,5 +13,5 @@ $({ target: 'Reflect', stat: true }, { defineMetadata: function defineMetadata(metadataKey, metadataValue, target /* , targetKey */) { var targetKey = arguments.length < 4 ? undefined : toMetadataKey(arguments[3]); ordinaryDefineOwnMetadata(metadataKey, metadataValue, anObject(target), targetKey); - } + }, }); diff --git a/packages/core-js/modules/esnext.reflect.delete-metadata.js b/packages/core-js/modules/esnext.reflect.delete-metadata.js index 07f906de4221..8ba7f837f5fa 100644 --- a/packages/core-js/modules/esnext.reflect.delete-metadata.js +++ b/packages/core-js/modules/esnext.reflect.delete-metadata.js @@ -18,5 +18,5 @@ $({ target: 'Reflect', stat: true }, { var targetMetadata = store.get(target); targetMetadata.delete(targetKey); return !!targetMetadata.size || store.delete(target); - } + }, }); diff --git a/packages/core-js/modules/esnext.reflect.get-metadata-keys.js b/packages/core-js/modules/esnext.reflect.get-metadata-keys.js index 34fad84b7229..db0e2a448552 100644 --- a/packages/core-js/modules/esnext.reflect.get-metadata-keys.js +++ b/packages/core-js/modules/esnext.reflect.get-metadata-keys.js @@ -26,5 +26,5 @@ $({ target: 'Reflect', stat: true }, { getMetadataKeys: function getMetadataKeys(target /* , targetKey */) { var targetKey = arguments.length < 2 ? undefined : toMetadataKey(arguments[1]); return ordinaryMetadataKeys(anObject(target), targetKey); - } + }, }); diff --git a/packages/core-js/modules/esnext.reflect.get-metadata.js b/packages/core-js/modules/esnext.reflect.get-metadata.js index 72582523b473..6ea65b3f43f7 100644 --- a/packages/core-js/modules/esnext.reflect.get-metadata.js +++ b/packages/core-js/modules/esnext.reflect.get-metadata.js @@ -22,5 +22,5 @@ $({ target: 'Reflect', stat: true }, { getMetadata: function getMetadata(metadataKey, target /* , targetKey */) { var targetKey = arguments.length < 3 ? undefined : toMetadataKey(arguments[2]); return ordinaryGetMetadata(metadataKey, anObject(target), targetKey); - } + }, }); diff --git a/packages/core-js/modules/esnext.reflect.get-own-metadata-keys.js b/packages/core-js/modules/esnext.reflect.get-own-metadata-keys.js index 3b44e0f0514b..d7f409576176 100644 --- a/packages/core-js/modules/esnext.reflect.get-own-metadata-keys.js +++ b/packages/core-js/modules/esnext.reflect.get-own-metadata-keys.js @@ -13,5 +13,5 @@ $({ target: 'Reflect', stat: true }, { getOwnMetadataKeys: function getOwnMetadataKeys(target /* , targetKey */) { var targetKey = arguments.length < 2 ? undefined : toMetadataKey(arguments[1]); return ordinaryOwnMetadataKeys(anObject(target), targetKey); - } + }, }); diff --git a/packages/core-js/modules/esnext.reflect.get-own-metadata.js b/packages/core-js/modules/esnext.reflect.get-own-metadata.js index e1f62fc526db..15b8593f3aee 100644 --- a/packages/core-js/modules/esnext.reflect.get-own-metadata.js +++ b/packages/core-js/modules/esnext.reflect.get-own-metadata.js @@ -13,5 +13,5 @@ $({ target: 'Reflect', stat: true }, { getOwnMetadata: function getOwnMetadata(metadataKey, target /* , targetKey */) { var targetKey = arguments.length < 3 ? undefined : toMetadataKey(arguments[2]); return ordinaryGetOwnMetadata(metadataKey, anObject(target), targetKey); - } + }, }); diff --git a/packages/core-js/modules/esnext.reflect.has-metadata.js b/packages/core-js/modules/esnext.reflect.has-metadata.js index 26ce25699fc5..602759c6d87e 100644 --- a/packages/core-js/modules/esnext.reflect.has-metadata.js +++ b/packages/core-js/modules/esnext.reflect.has-metadata.js @@ -21,5 +21,5 @@ $({ target: 'Reflect', stat: true }, { hasMetadata: function hasMetadata(metadataKey, target /* , targetKey */) { var targetKey = arguments.length < 3 ? undefined : toMetadataKey(arguments[2]); return ordinaryHasMetadata(metadataKey, anObject(target), targetKey); - } + }, }); diff --git a/packages/core-js/modules/esnext.reflect.has-own-metadata.js b/packages/core-js/modules/esnext.reflect.has-own-metadata.js index 5e388856f9e4..b3009283f08a 100644 --- a/packages/core-js/modules/esnext.reflect.has-own-metadata.js +++ b/packages/core-js/modules/esnext.reflect.has-own-metadata.js @@ -13,5 +13,5 @@ $({ target: 'Reflect', stat: true }, { hasOwnMetadata: function hasOwnMetadata(metadataKey, target /* , targetKey */) { var targetKey = arguments.length < 3 ? undefined : toMetadataKey(arguments[2]); return ordinaryHasOwnMetadata(metadataKey, anObject(target), targetKey); - } + }, }); diff --git a/packages/core-js/modules/esnext.reflect.metadata.js b/packages/core-js/modules/esnext.reflect.metadata.js index 5d98d032bb07..67c065091c28 100644 --- a/packages/core-js/modules/esnext.reflect.metadata.js +++ b/packages/core-js/modules/esnext.reflect.metadata.js @@ -13,5 +13,5 @@ $({ target: 'Reflect', stat: true }, { return function decorator(target, key) { ordinaryDefineOwnMetadata(metadataKey, metadataValue, anObject(target), toMetadataKey(key)); }; - } + }, }); diff --git a/packages/core-js/modules/esnext.set.add-all.js b/packages/core-js/modules/esnext.set.add-all.js index d168fbe45c3e..a1d65d0a717d 100644 --- a/packages/core-js/modules/esnext.set.add-all.js +++ b/packages/core-js/modules/esnext.set.add-all.js @@ -11,5 +11,5 @@ $({ target: 'Set', proto: true, real: true, forced: true }, { for (var k = 0, len = arguments.length; k < len; k++) { add(set, arguments[k]); } return set; - } + }, }); diff --git a/packages/core-js/modules/esnext.set.delete-all.js b/packages/core-js/modules/esnext.set.delete-all.js index cbba8743de50..84135a18acd4 100644 --- a/packages/core-js/modules/esnext.set.delete-all.js +++ b/packages/core-js/modules/esnext.set.delete-all.js @@ -14,5 +14,5 @@ $({ target: 'Set', proto: true, real: true, forced: true }, { wasDeleted = remove(collection, arguments[k]); allDeleted = allDeleted && wasDeleted; } return !!allDeleted; - } + }, }); diff --git a/packages/core-js/modules/esnext.set.every.js b/packages/core-js/modules/esnext.set.every.js index 999c6be4c3c3..8259887a47bb 100644 --- a/packages/core-js/modules/esnext.set.every.js +++ b/packages/core-js/modules/esnext.set.every.js @@ -13,5 +13,5 @@ $({ target: 'Set', proto: true, real: true, forced: true }, { return iterate(set, function (value) { if (!boundFunction(value, value, set)) return false; }, true) !== false; - } + }, }); diff --git a/packages/core-js/modules/esnext.set.filter.js b/packages/core-js/modules/esnext.set.filter.js index 84e1dac7b7eb..5f32935e925d 100644 --- a/packages/core-js/modules/esnext.set.filter.js +++ b/packages/core-js/modules/esnext.set.filter.js @@ -19,5 +19,5 @@ $({ target: 'Set', proto: true, real: true, forced: true }, { if (boundFunction(value, value, set)) add(newSet, value); }); return newSet; - } + }, }); diff --git a/packages/core-js/modules/esnext.set.find.js b/packages/core-js/modules/esnext.set.find.js index ae18ca7c9e1f..4c8ce2757d7d 100644 --- a/packages/core-js/modules/esnext.set.find.js +++ b/packages/core-js/modules/esnext.set.find.js @@ -14,5 +14,5 @@ $({ target: 'Set', proto: true, real: true, forced: true }, { if (boundFunction(value, value, set)) return { value: value }; }, true); return result && result.value; - } + }, }); diff --git a/packages/core-js/modules/esnext.set.from.js b/packages/core-js/modules/esnext.set.from.js index 1704a4bb341b..a4bf35102749 100644 --- a/packages/core-js/modules/esnext.set.from.js +++ b/packages/core-js/modules/esnext.set.from.js @@ -6,5 +6,5 @@ var createCollectionFrom = require('../internals/collection-from'); // `Set.from` method // https://tc39.github.io/proposal-setmap-offrom/#sec-set.from $({ target: 'Set', stat: true, forced: true }, { - from: createCollectionFrom(SetHelpers.Set, SetHelpers.add, false) + from: createCollectionFrom(SetHelpers.Set, SetHelpers.add, false), }); diff --git a/packages/core-js/modules/esnext.set.join.js b/packages/core-js/modules/esnext.set.join.js index 4f7a62aab6a2..5abba10633e9 100644 --- a/packages/core-js/modules/esnext.set.join.js +++ b/packages/core-js/modules/esnext.set.join.js @@ -19,5 +19,5 @@ $({ target: 'Set', proto: true, real: true, forced: true }, { push(array, value); }); return arrayJoin(array, sep); - } + }, }); diff --git a/packages/core-js/modules/esnext.set.map.js b/packages/core-js/modules/esnext.set.map.js index 2eea3de7cf33..69cb8a3f371f 100644 --- a/packages/core-js/modules/esnext.set.map.js +++ b/packages/core-js/modules/esnext.set.map.js @@ -19,5 +19,5 @@ $({ target: 'Set', proto: true, real: true, forced: true }, { add(newSet, boundFunction(value, value, set)); }); return newSet; - } + }, }); diff --git a/packages/core-js/modules/esnext.set.of.js b/packages/core-js/modules/esnext.set.of.js index a1a5424067c9..5385c198fed7 100644 --- a/packages/core-js/modules/esnext.set.of.js +++ b/packages/core-js/modules/esnext.set.of.js @@ -6,5 +6,5 @@ var createCollectionOf = require('../internals/collection-of'); // `Set.of` method // https://tc39.github.io/proposal-setmap-offrom/#sec-set.of $({ target: 'Set', stat: true, forced: true }, { - of: createCollectionOf(SetHelpers.Set, SetHelpers.add, false) + of: createCollectionOf(SetHelpers.Set, SetHelpers.add, false), }); diff --git a/packages/core-js/modules/esnext.set.reduce.js b/packages/core-js/modules/esnext.set.reduce.js index 988af322f57c..1dfdf9c06659 100644 --- a/packages/core-js/modules/esnext.set.reduce.js +++ b/packages/core-js/modules/esnext.set.reduce.js @@ -24,5 +24,5 @@ $({ target: 'Set', proto: true, real: true, forced: true }, { }); if (noInitial) throw new $TypeError('Reduce of empty set with no initial value'); return accumulator; - } + }, }); diff --git a/packages/core-js/modules/esnext.set.some.js b/packages/core-js/modules/esnext.set.some.js index ab86d1cff145..04519081a780 100644 --- a/packages/core-js/modules/esnext.set.some.js +++ b/packages/core-js/modules/esnext.set.some.js @@ -13,5 +13,5 @@ $({ target: 'Set', proto: true, real: true, forced: true }, { return iterate(set, function (value) { if (boundFunction(value, value, set)) return true; }, true) === true; - } + }, }); diff --git a/packages/core-js/modules/esnext.string.code-points.js b/packages/core-js/modules/esnext.string.code-points.js index 68720f4b16c2..5d2279c9cf47 100644 --- a/packages/core-js/modules/esnext.string.code-points.js +++ b/packages/core-js/modules/esnext.string.code-points.js @@ -18,7 +18,7 @@ var $StringIterator = createIteratorConstructor(function StringIterator(string) setInternalState(this, { type: STRING_ITERATOR, string: string, - index: 0 + index: 0, }); }, 'String', function next() { var state = getInternalState(this); @@ -36,5 +36,5 @@ var $StringIterator = createIteratorConstructor(function StringIterator(string) $({ target: 'String', proto: true, forced: true }, { codePoints: function codePoints() { return new $StringIterator(toString(requireObjectCoercible(this))); - } + }, }); diff --git a/packages/core-js/modules/esnext.string.cooked.js b/packages/core-js/modules/esnext.string.cooked.js index 68c7e0aadd72..3b4e9511b176 100644 --- a/packages/core-js/modules/esnext.string.cooked.js +++ b/packages/core-js/modules/esnext.string.cooked.js @@ -5,5 +5,5 @@ var cooked = require('../internals/string-cooked'); // `String.cooked` method // https://github.com/tc39/proposal-string-cooked $({ target: 'String', stat: true, forced: true }, { - cooked: cooked + cooked: cooked, }); diff --git a/packages/core-js/modules/esnext.string.dedent.js b/packages/core-js/modules/esnext.string.dedent.js index 571f0846760e..6738fa232c6d 100644 --- a/packages/core-js/modules/esnext.string.dedent.js +++ b/packages/core-js/modules/esnext.string.dedent.js @@ -47,7 +47,7 @@ var dedentTemplateStringsArray = function (template) { var raw = dedentStringsArray(rawInput); var cookedArr = cookStrings(raw); defineProperty(cookedArr, 'raw', { - value: freeze(raw) + value: freeze(raw), }); freeze(cookedArr); weakMapSet(DedentMap, rawInput, cookedArr); @@ -149,5 +149,5 @@ $({ target: 'String', stat: true, forced: true }, { anObject(templateOrFn); if (isCallable(templateOrFn)) return makeDedentTag(templateOrFn); return apply(cookedDedentTag, this, arguments); - } + }, }); diff --git a/packages/core-js/modules/esnext.symbol.is-registered-symbol.js b/packages/core-js/modules/esnext.symbol.is-registered-symbol.js index 35675bee564c..773aa92380fc 100644 --- a/packages/core-js/modules/esnext.symbol.is-registered-symbol.js +++ b/packages/core-js/modules/esnext.symbol.is-registered-symbol.js @@ -16,5 +16,5 @@ $({ target: 'Symbol', stat: true }, { } catch (error) { return false; } - } + }, }); diff --git a/packages/core-js/modules/esnext.symbol.is-well-known-symbol.js b/packages/core-js/modules/esnext.symbol.is-well-known-symbol.js index 5b51b477de8e..27ef336388f5 100644 --- a/packages/core-js/modules/esnext.symbol.is-well-known-symbol.js +++ b/packages/core-js/modules/esnext.symbol.is-well-known-symbol.js @@ -35,5 +35,5 @@ $({ target: 'Symbol', stat: true, forced: true }, { } } catch (error) { /* empty */ } return false; - } + }, }); diff --git a/packages/core-js/modules/esnext.weak-map.delete-all.js b/packages/core-js/modules/esnext.weak-map.delete-all.js index 7d83a4acff8e..ed2448057f25 100644 --- a/packages/core-js/modules/esnext.weak-map.delete-all.js +++ b/packages/core-js/modules/esnext.weak-map.delete-all.js @@ -14,5 +14,5 @@ $({ target: 'WeakMap', proto: true, real: true, forced: true }, { wasDeleted = remove(collection, arguments[k]); allDeleted = allDeleted && wasDeleted; } return !!allDeleted; - } + }, }); diff --git a/packages/core-js/modules/esnext.weak-map.emplace.js b/packages/core-js/modules/esnext.weak-map.emplace.js index 9050c153a53d..b9bce393b7ee 100644 --- a/packages/core-js/modules/esnext.weak-map.emplace.js +++ b/packages/core-js/modules/esnext.weak-map.emplace.js @@ -23,5 +23,5 @@ $({ target: 'WeakMap', proto: true, real: true, forced: true }, { inserted = handler.insert(key, map); set(map, key, inserted); return inserted; - } + }, }); diff --git a/packages/core-js/modules/esnext.weak-map.from.js b/packages/core-js/modules/esnext.weak-map.from.js index a14b008bf7fb..ebd25d4f03da 100644 --- a/packages/core-js/modules/esnext.weak-map.from.js +++ b/packages/core-js/modules/esnext.weak-map.from.js @@ -6,5 +6,5 @@ var createCollectionFrom = require('../internals/collection-from'); // `WeakMap.from` method // https://tc39.github.io/proposal-setmap-offrom/#sec-weakmap.from $({ target: 'WeakMap', stat: true, forced: true }, { - from: createCollectionFrom(WeakMapHelpers.WeakMap, WeakMapHelpers.set, true) + from: createCollectionFrom(WeakMapHelpers.WeakMap, WeakMapHelpers.set, true), }); diff --git a/packages/core-js/modules/esnext.weak-map.get-or-insert-computed.js b/packages/core-js/modules/esnext.weak-map.get-or-insert-computed.js index a2d20655ee09..ae570814d1f3 100644 --- a/packages/core-js/modules/esnext.weak-map.get-or-insert-computed.js +++ b/packages/core-js/modules/esnext.weak-map.get-or-insert-computed.js @@ -32,5 +32,5 @@ $({ target: 'WeakMap', proto: true, real: true, forced: FORCED }, { var value = callbackfn(key); set(this, key, value); return value; - } + }, }); diff --git a/packages/core-js/modules/esnext.weak-map.get-or-insert.js b/packages/core-js/modules/esnext.weak-map.get-or-insert.js index 695e3af9652e..0dbe13773d2f 100644 --- a/packages/core-js/modules/esnext.weak-map.get-or-insert.js +++ b/packages/core-js/modules/esnext.weak-map.get-or-insert.js @@ -15,5 +15,5 @@ $({ target: 'WeakMap', proto: true, real: true, forced: IS_PURE }, { if (has(aWeakMap(this), key)) return get(this, key); set(this, key, value); return value; - } + }, }); diff --git a/packages/core-js/modules/esnext.weak-map.of.js b/packages/core-js/modules/esnext.weak-map.of.js index e411172b09c9..f776a14d8e48 100644 --- a/packages/core-js/modules/esnext.weak-map.of.js +++ b/packages/core-js/modules/esnext.weak-map.of.js @@ -6,5 +6,5 @@ var createCollectionOf = require('../internals/collection-of'); // `WeakMap.of` method // https://tc39.github.io/proposal-setmap-offrom/#sec-weakmap.of $({ target: 'WeakMap', stat: true, forced: true }, { - of: createCollectionOf(WeakMapHelpers.WeakMap, WeakMapHelpers.set, true) + of: createCollectionOf(WeakMapHelpers.WeakMap, WeakMapHelpers.set, true), }); diff --git a/packages/core-js/modules/esnext.weak-set.add-all.js b/packages/core-js/modules/esnext.weak-set.add-all.js index 3880c709558e..065fa4594dbc 100644 --- a/packages/core-js/modules/esnext.weak-set.add-all.js +++ b/packages/core-js/modules/esnext.weak-set.add-all.js @@ -11,5 +11,5 @@ $({ target: 'WeakSet', proto: true, real: true, forced: true }, { for (var k = 0, len = arguments.length; k < len; k++) { add(set, arguments[k]); } return set; - } + }, }); diff --git a/packages/core-js/modules/esnext.weak-set.delete-all.js b/packages/core-js/modules/esnext.weak-set.delete-all.js index a3913ac6ea95..9e59cb1e01f3 100644 --- a/packages/core-js/modules/esnext.weak-set.delete-all.js +++ b/packages/core-js/modules/esnext.weak-set.delete-all.js @@ -14,5 +14,5 @@ $({ target: 'WeakSet', proto: true, real: true, forced: true }, { wasDeleted = remove(collection, arguments[k]); allDeleted = allDeleted && wasDeleted; } return !!allDeleted; - } + }, }); diff --git a/packages/core-js/modules/esnext.weak-set.from.js b/packages/core-js/modules/esnext.weak-set.from.js index a2143e115514..12175c999959 100644 --- a/packages/core-js/modules/esnext.weak-set.from.js +++ b/packages/core-js/modules/esnext.weak-set.from.js @@ -6,5 +6,5 @@ var createCollectionFrom = require('../internals/collection-from'); // `WeakSet.from` method // https://tc39.github.io/proposal-setmap-offrom/#sec-weakset.from $({ target: 'WeakSet', stat: true, forced: true }, { - from: createCollectionFrom(WeakSetHelpers.WeakSet, WeakSetHelpers.add, false) + from: createCollectionFrom(WeakSetHelpers.WeakSet, WeakSetHelpers.add, false), }); diff --git a/packages/core-js/modules/esnext.weak-set.of.js b/packages/core-js/modules/esnext.weak-set.of.js index 92cfd49df84c..4028d6ef7867 100644 --- a/packages/core-js/modules/esnext.weak-set.of.js +++ b/packages/core-js/modules/esnext.weak-set.of.js @@ -6,5 +6,5 @@ var createCollectionOf = require('../internals/collection-of'); // `WeakSet.of` method // https://tc39.github.io/proposal-setmap-offrom/#sec-weakset.of $({ target: 'WeakSet', stat: true, forced: true }, { - of: createCollectionOf(WeakSetHelpers.WeakSet, WeakSetHelpers.add, false) + of: createCollectionOf(WeakSetHelpers.WeakSet, WeakSetHelpers.add, false), }); diff --git a/packages/core-js/modules/web.atob.js b/packages/core-js/modules/web.atob.js index c3221c6647c0..1510ace4690d 100644 --- a/packages/core-js/modules/web.atob.js +++ b/packages/core-js/modules/web.atob.js @@ -63,5 +63,5 @@ $({ global: true, bind: true, enumerable: true, forced: FORCED }, { bs = bc % 4 ? bs * 64 + c2i[chr] : c2i[chr]; if (bc++ % 4) output += fromCharCode(255 & bs >> (-2 * bc & 6)); } return output; - } + }, }); diff --git a/packages/core-js/modules/web.btoa.js b/packages/core-js/modules/web.btoa.js index b8bda16c5b17..ae10b5162d25 100644 --- a/packages/core-js/modules/web.btoa.js +++ b/packages/core-js/modules/web.btoa.js @@ -47,5 +47,5 @@ $({ global: true, bind: true, enumerable: true, forced: !BASIC || NO_ARG_RECEIVI block = block << 8 | charCode; output += charAt(map, 63 & block >> 8 - position % 1 * 8); } return output; - } + }, }); diff --git a/packages/core-js/modules/web.clear-immediate.js b/packages/core-js/modules/web.clear-immediate.js index e2d8eb5bdb23..2d3a0c731a3a 100644 --- a/packages/core-js/modules/web.clear-immediate.js +++ b/packages/core-js/modules/web.clear-immediate.js @@ -6,5 +6,5 @@ var clearImmediate = require('../internals/task').clear; // `clearImmediate` method // http://w3c.github.io/setImmediate/#si-clearImmediate $({ global: true, bind: true, enumerable: true, forced: globalThis.clearImmediate !== clearImmediate }, { - clearImmediate: clearImmediate + clearImmediate: clearImmediate, }); diff --git a/packages/core-js/modules/web.dom-exception.constructor.js b/packages/core-js/modules/web.dom-exception.constructor.js index cf82ec8f6327..e2d779714e04 100644 --- a/packages/core-js/modules/web.dom-exception.constructor.js +++ b/packages/core-js/modules/web.dom-exception.constructor.js @@ -52,7 +52,7 @@ var $DOMException = function DOMException() { type: DOM_EXCEPTION, name: name, message: message, - code: code + code: code, }); if (HAS_STACK) { var error = new Error(message); @@ -107,7 +107,7 @@ var FORCED_CONSTRUCTOR = IS_PURE ? INCORRECT_TO_STRING || INCORRECT_CODE || MISS // `DOMException` constructor // https://webidl.spec.whatwg.org/#idl-DOMException $({ global: true, constructor: true, forced: FORCED_CONSTRUCTOR }, { - DOMException: FORCED_CONSTRUCTOR ? $DOMException : NativeDOMException + DOMException: FORCED_CONSTRUCTOR ? $DOMException : NativeDOMException, }); var PolyfilledDOMException = getBuiltIn(DOM_EXCEPTION); diff --git a/packages/core-js/modules/web.dom-exception.stack.js b/packages/core-js/modules/web.dom-exception.stack.js index 581e306ad0d2..871992fc8b7c 100644 --- a/packages/core-js/modules/web.dom-exception.stack.js +++ b/packages/core-js/modules/web.dom-exception.stack.js @@ -46,7 +46,7 @@ var FORCED_CONSTRUCTOR = ERROR_HAS_STACK && !BUGGY_DESCRIPTOR && !DOM_EXCEPTION_ // `DOMException` constructor patch for `.stack` where it's required // https://webidl.spec.whatwg.org/#es-DOMException-specialness $({ global: true, constructor: true, forced: IS_PURE || FORCED_CONSTRUCTOR }, { // TODO: fix export logic - DOMException: FORCED_CONSTRUCTOR ? $DOMException : NativeDOMException + DOMException: FORCED_CONSTRUCTOR ? $DOMException : NativeDOMException, }); var PolyfilledDOMException = getBuiltIn(DOM_EXCEPTION); diff --git a/packages/core-js/modules/web.queue-microtask.js b/packages/core-js/modules/web.queue-microtask.js index b318c187e918..728a3d87f110 100644 --- a/packages/core-js/modules/web.queue-microtask.js +++ b/packages/core-js/modules/web.queue-microtask.js @@ -20,5 +20,5 @@ $({ global: true, enumerable: true, dontCallGetSet: true, forced: WRONG_ARITY }, queueMicrotask: function queueMicrotask(fn) { validateArgumentsLength(arguments.length, 1); microtask(aCallable(fn)); - } + }, }); diff --git a/packages/core-js/modules/web.self.js b/packages/core-js/modules/web.self.js index a720d9c2606c..30169e502678 100644 --- a/packages/core-js/modules/web.self.js +++ b/packages/core-js/modules/web.self.js @@ -25,11 +25,11 @@ try { value: value, writable: true, configurable: true, - enumerable: true + enumerable: true, }); }, configurable: true, - enumerable: true + enumerable: true, }); } } catch (error) { /* empty */ } diff --git a/packages/core-js/modules/web.set-immediate.js b/packages/core-js/modules/web.set-immediate.js index 8aa3dc8721fa..8879649fbada 100644 --- a/packages/core-js/modules/web.set-immediate.js +++ b/packages/core-js/modules/web.set-immediate.js @@ -10,5 +10,5 @@ var setImmediate = globalThis.setImmediate ? schedulersFix(setTask, false) : set // `setImmediate` method // http://w3c.github.io/setImmediate/#si-setImmediate $({ global: true, bind: true, enumerable: true, forced: globalThis.setImmediate !== setImmediate }, { - setImmediate: setImmediate + setImmediate: setImmediate, }); diff --git a/packages/core-js/modules/web.set-interval.js b/packages/core-js/modules/web.set-interval.js index d0b6bb700f04..16e307a265de 100644 --- a/packages/core-js/modules/web.set-interval.js +++ b/packages/core-js/modules/web.set-interval.js @@ -8,5 +8,5 @@ var setInterval = schedulersFix(globalThis.setInterval, true); // Bun / IE9- setInterval additional parameters fix // https://html.spec.whatwg.org/multipage/timers-and-user-prompts.html#dom-setinterval $({ global: true, bind: true, forced: globalThis.setInterval !== setInterval }, { - setInterval: setInterval + setInterval: setInterval, }); diff --git a/packages/core-js/modules/web.set-timeout.js b/packages/core-js/modules/web.set-timeout.js index 3b054ae37750..484a0946695a 100644 --- a/packages/core-js/modules/web.set-timeout.js +++ b/packages/core-js/modules/web.set-timeout.js @@ -8,5 +8,5 @@ var setTimeout = schedulersFix(globalThis.setTimeout, true); // Bun / IE9- setTimeout additional parameters fix // https://html.spec.whatwg.org/multipage/timers-and-user-prompts.html#dom-settimeout $({ global: true, bind: true, forced: globalThis.setTimeout !== setTimeout }, { - setTimeout: setTimeout + setTimeout: setTimeout, }); diff --git a/packages/core-js/modules/web.structured-clone.js b/packages/core-js/modules/web.structured-clone.js index b274d34c1961..860a7a97cd6d 100644 --- a/packages/core-js/modules/web.structured-clone.js +++ b/packages/core-js/modules/web.structured-clone.js @@ -531,5 +531,5 @@ $({ global: true, enumerable: true, sham: !PROPER_STRUCTURED_CLONE_TRANSFER, for if (buffers) detachBuffers(buffers); return clone; - } + }, }); diff --git a/packages/core-js/modules/web.url-search-params.constructor.js b/packages/core-js/modules/web.url-search-params.constructor.js index 59b9b8284b96..bb72bafea91a 100644 --- a/packages/core-js/modules/web.url-search-params.constructor.js +++ b/packages/core-js/modules/web.url-search-params.constructor.js @@ -186,7 +186,7 @@ var replacements = { '(': '%28', ')': '%29', '~': '%7E', - '%20': '+' + '%20': '+', }; var replacer = function (match) { @@ -202,7 +202,7 @@ var URLSearchParamsIterator = createIteratorConstructor(function Iterator(params type: URL_SEARCH_PARAMS_ITERATOR, target: getInternalParamsState(params).entries, index: 0, - kind: kind + kind: kind, }); }, URL_SEARCH_PARAMS, function next() { var state = getInternalIteratorState(this); @@ -269,7 +269,7 @@ URLSearchParamsState.prototype = { entry = split(attribute, '='); push(entries, { key: decode(shift(entry)), - value: decode(join(entry, '=')) + value: decode(join(entry, '=')), }); } } @@ -291,7 +291,7 @@ URLSearchParamsState.prototype = { }, updateURL: function () { if (this.url) this.url.update(); - } + }, }; // `URLSearchParams` constructor @@ -427,7 +427,7 @@ defineBuiltIns(URLSearchParamsPrototype, { // `URLSearchParams.prototype.entries` method entries: function entries() { return new URLSearchParamsIterator(this, 'entries'); - } + }, }, { enumerable: true }); // `URLSearchParams.prototype[@@iterator]` method @@ -446,13 +446,13 @@ defineBuiltInAccessor(URLSearchParamsPrototype, 'size', { return getInternalParamsState(this).entries.length; }, configurable: true, - enumerable: true + enumerable: true, }); setToStringTag(URLSearchParamsConstructor, URL_SEARCH_PARAMS); $({ global: true, constructor: true, forced: !USE_NATIVE_URL }, { - URLSearchParams: URLSearchParamsConstructor + URLSearchParams: URLSearchParamsConstructor, }); // Wrap `fetch` and `Request` for correct work with polyfilled `URLSearchParams` @@ -471,7 +471,7 @@ if (!USE_NATIVE_URL && isCallable(Headers)) { } return create(init, { body: createPropertyDescriptor(0, $toString(body)), - headers: createPropertyDescriptor(0, headers) + headers: createPropertyDescriptor(0, headers), }); } } return init; @@ -481,7 +481,7 @@ if (!USE_NATIVE_URL && isCallable(Headers)) { $({ global: true, enumerable: true, dontCallGetSet: true, forced: true }, { fetch: function fetch(input /* , init */) { return nativeFetch(input, arguments.length > 1 ? wrapRequestOptions(arguments[1]) : {}); - } + }, }); } @@ -495,12 +495,12 @@ if (!USE_NATIVE_URL && isCallable(Headers)) { RequestConstructor.prototype = RequestPrototype; $({ global: true, constructor: true, dontCallGetSet: true, forced: true }, { - Request: RequestConstructor + Request: RequestConstructor, }); } } module.exports = { URLSearchParams: URLSearchParamsConstructor, - getState: getInternalParamsState + getState: getInternalParamsState, }; diff --git a/packages/core-js/modules/web.url-search-params.size.js b/packages/core-js/modules/web.url-search-params.size.js index 291113bc61ec..21ab749f8501 100644 --- a/packages/core-js/modules/web.url-search-params.size.js +++ b/packages/core-js/modules/web.url-search-params.size.js @@ -15,6 +15,6 @@ if (!('size' in URLSearchParamsPrototype)) { return count; }, configurable: true, - enumerable: true + enumerable: true, }); } diff --git a/packages/core-js/modules/web.url.can-parse.js b/packages/core-js/modules/web.url.can-parse.js index bf7a96f577d2..01af14dc5019 100644 --- a/packages/core-js/modules/web.url.can-parse.js +++ b/packages/core-js/modules/web.url.can-parse.js @@ -32,5 +32,5 @@ $({ target: 'URL', stat: true, forced: !THROWS_WITHOUT_ARGUMENTS || WRONG_ARITY } catch (error) { return false; } - } + }, }); diff --git a/packages/core-js/modules/web.url.constructor.js b/packages/core-js/modules/web.url.constructor.js index 7bd9da3a77e1..af3b0cfe3217 100644 --- a/packages/core-js/modules/web.url.constructor.js +++ b/packages/core-js/modules/web.url.constructor.js @@ -243,13 +243,13 @@ var serializeHost = function (host) { var C0ControlPercentEncodeSet = {}; var fragmentPercentEncodeSet = assign({}, C0ControlPercentEncodeSet, { - ' ': 1, '"': 1, '<': 1, '>': 1, '`': 1 + ' ': 1, '"': 1, '<': 1, '>': 1, '`': 1, }); var pathPercentEncodeSet = assign({}, fragmentPercentEncodeSet, { - '#': 1, '?': 1, '{': 1, '}': 1 + '#': 1, '?': 1, '{': 1, '}': 1, }); var userinfoPercentEncodeSet = assign({}, pathPercentEncodeSet, { - '/': 1, ':': 1, ';': 1, '=': 1, '@': 1, '[': 1, '\\': 1, ']': 1, '^': 1, '|': 1 + '/': 1, ':': 1, ';': 1, '=': 1, '@': 1, '[': 1, '\\': 1, ']': 1, '^': 1, '|': 1, }); var percentEncode = function (chr, set) { @@ -264,7 +264,7 @@ var specialSchemes = { http: 80, https: 443, ws: 80, - wss: 443 + wss: 443, }; // https://url.spec.whatwg.org/#windows-drive-letter @@ -941,7 +941,7 @@ URLState.prototype = { }, update: function () { this.query = this.searchParams.serialize() || null; - } + }, }; // `URL` constructor @@ -963,7 +963,7 @@ var accessorDescriptor = function (getter, setter) { return getInternalURLState(this)[setter](value); }, configurable: true, - enumerable: true + enumerable: true, }; }; @@ -1030,5 +1030,5 @@ if (NativeURL) { setToStringTag(URLConstructor, 'URL'); $({ global: true, constructor: true, forced: !USE_NATIVE_URL }, { - URL: URLConstructor + URL: URLConstructor, }); diff --git a/packages/core-js/modules/web.url.parse.js b/packages/core-js/modules/web.url.parse.js index 1a89d6f3d3d4..45f546a68a3a 100644 --- a/packages/core-js/modules/web.url.parse.js +++ b/packages/core-js/modules/web.url.parse.js @@ -19,5 +19,5 @@ $({ target: 'URL', stat: true, forced: !USE_NATIVE_URL }, { } catch (error) { return null; } - } + }, }); diff --git a/packages/core-js/modules/web.url.to-json.js b/packages/core-js/modules/web.url.to-json.js index f4f41c36c428..d7e40cb97946 100644 --- a/packages/core-js/modules/web.url.to-json.js +++ b/packages/core-js/modules/web.url.to-json.js @@ -7,5 +7,5 @@ var call = require('../internals/function-call'); $({ target: 'URL', proto: true, enumerable: true }, { toJSON: function toJSON() { return call(URL.prototype.toString, this); - } + }, }); diff --git a/packages/core-js/postinstall.js b/packages/core-js/postinstall.js index a75132c4e741..36645bb14aff 100644 --- a/packages/core-js/postinstall.js +++ b/packages/core-js/postinstall.js @@ -19,7 +19,7 @@ var CI = [ 'CI', 'CONTINUOUS_INTEGRATION', 'DRONE', - 'RUN_ID' + 'RUN_ID', ].some(function (it) { return is(env[it]); }); var BANNER = '\u001B[96mThank you for using core-js (\u001B[94m https://github.com/zloirock/core-js \u001B[96m) for polyfilling JavaScript standard library!\u001B[0m\n\n' + diff --git a/packages/core-js/stable/dom-collections/index.js b/packages/core-js/stable/dom-collections/index.js index 5436ac51c55e..3f63d8089680 100644 --- a/packages/core-js/stable/dom-collections/index.js +++ b/packages/core-js/stable/dom-collections/index.js @@ -10,5 +10,5 @@ module.exports = { values: ArrayIterators.values, entries: ArrayIterators.entries, iterator: ArrayIterators.values, - forEach: forEach + forEach: forEach, }; diff --git a/packages/core-js/stable/instance/entries.js b/packages/core-js/stable/instance/entries.js index 0a9918dc61d5..29a7f0b12b90 100644 --- a/packages/core-js/stable/instance/entries.js +++ b/packages/core-js/stable/instance/entries.js @@ -9,7 +9,7 @@ var ArrayPrototype = Array.prototype; var DOMIterables = { DOMTokenList: true, - NodeList: true + NodeList: true, }; module.exports = function (it) { diff --git a/packages/core-js/stable/instance/for-each.js b/packages/core-js/stable/instance/for-each.js index 0ed3caedebbf..a0358f34ea3e 100644 --- a/packages/core-js/stable/instance/for-each.js +++ b/packages/core-js/stable/instance/for-each.js @@ -9,7 +9,7 @@ var ArrayPrototype = Array.prototype; var DOMIterables = { DOMTokenList: true, - NodeList: true + NodeList: true, }; module.exports = function (it) { diff --git a/packages/core-js/stable/instance/keys.js b/packages/core-js/stable/instance/keys.js index 4c00406d31e2..a3feeddf9003 100644 --- a/packages/core-js/stable/instance/keys.js +++ b/packages/core-js/stable/instance/keys.js @@ -9,7 +9,7 @@ var ArrayPrototype = Array.prototype; var DOMIterables = { DOMTokenList: true, - NodeList: true + NodeList: true, }; module.exports = function (it) { diff --git a/packages/core-js/stable/instance/values.js b/packages/core-js/stable/instance/values.js index 0ef76852cb28..10935408e3bb 100644 --- a/packages/core-js/stable/instance/values.js +++ b/packages/core-js/stable/instance/values.js @@ -9,7 +9,7 @@ var ArrayPrototype = Array.prototype; var DOMIterables = { DOMTokenList: true, - NodeList: true + NodeList: true, }; module.exports = function (it) { diff --git a/scripts/bundle-package/bundle-package.mjs b/scripts/bundle-package/bundle-package.mjs index b1fe5a5174dd..cc5174baf027 100644 --- a/scripts/bundle-package/bundle-package.mjs +++ b/scripts/bundle-package/bundle-package.mjs @@ -23,7 +23,7 @@ async function bundle({ bundled, minified, options = {} }) { if (!minified) return; const { code, map } = await minify(source, { - ecma: 3, + ecma: 5, safari10: true, keep_fnames: true, compress: { diff --git a/tests/compat/browsers-runner.js b/tests/compat/browsers-runner.js index 9de477a6bf52..4d7ba04aec0b 100644 --- a/tests/compat/browsers-runner.js +++ b/tests/compat/browsers-runner.js @@ -30,7 +30,7 @@ var environments = [ 'react-native', 'rhino', 'safari', - 'samsung' + 'samsung', ]; var tableHeader = createElement('tr'); @@ -38,7 +38,7 @@ var columnHeaders = ['module', 'current'].concat(environments); for (var i = 0; i < columnHeaders.length; i++) { tableHeader.appendChild(createElement('th', { - innerHTML: columnHeaders[i].replace(/-/g, '
') + innerHTML: columnHeaders[i].replace(/-/g, '
'), })); } @@ -59,20 +59,20 @@ for (var moduleName in tests) { var row = createElement('tr'); var rowHeader = createElement('td', { - className: result + className: result, }); rowHeader.appendChild(createElement('a', { href: "https://github.com/zloirock/core-js/blob/master/tests/compat/tests.js#:~:text='" + moduleName.replace(/-/g, '%2D') + "'", target: '_blank', - innerHTML: moduleName + innerHTML: moduleName, })); row.appendChild(rowHeader); row.appendChild(createElement('td', { innerHTML: result ? 'not required' : 'required', - className: result + ' data' + className: result + ' data', })); var moduleData = data[moduleName]; @@ -81,7 +81,7 @@ for (var moduleName in tests) { var environmentVersion = moduleData && moduleData[environments[j]]; row.appendChild(createElement('td', { innerHTML: moduleData ? environmentVersion || 'no' : 'no data', - className: (moduleData ? !!environmentVersion : 'nodata') + ' data' + className: (moduleData ? !!environmentVersion : 'nodata') + ' data', })); } diff --git a/tests/compat/tests.js b/tests/compat/tests.js index 13619aab2666..7d72e7242f83 100644 --- a/tests/compat/tests.js +++ b/tests/compat/tests.js @@ -45,7 +45,7 @@ var WEBKIT_STRING_PAD_BUG = /Version\/10(?:\.\d+){1,2}(?: [\w./]+)?(?: Mobile\/\ var V8_PROTOTYPE_DEFINE_BUG = function () { return Object.defineProperty(function () { /* empty */ }, 'prototype', { value: 42, - writable: false + writable: false, }).prototype === 42; }; @@ -69,7 +69,7 @@ var PROMISE_STATICS_ITERATION = function () { return { next: function () { return { done: ITERATION_SUPPORT = true }; - } + }, }; }; Promise.all(object).then(undefined, function () { /* empty */ }); @@ -129,7 +129,7 @@ var SAFE_ITERATION_CLOSING_SUPPORT = function () { }, return: function () { SAFE_CLOSING = true; - } + }, }; iteratorWithReturn[Symbol.iterator] = function () { return this; @@ -153,7 +153,7 @@ var TYPED_ARRAY_CONSTRUCTORS_LIST = { Int32Array: 4, Uint32Array: 4, Float32Array: 4, - Float64Array: 8 + Float64Array: 8, }; var ARRAY_BUFFER_VIEWS_SUPPORT = function () { @@ -176,7 +176,7 @@ var TYPED_ARRAY_CONSTRUCTORS_NOT_REQUIRES_WRAPPERS = function () { var iterable = { next: function () { return { done: !!called++, value: 1 }; - } + }, }; iterable[Symbol.iterator] = function () { return this; @@ -231,9 +231,9 @@ function createSetLike(size) { return { next: function () { return { done: true }; - } + }, }; - } + }, }; } @@ -245,7 +245,7 @@ function createSetLikeWithInfinitySize(size) { }, keys: function () { throw new Error('e'); - } + }, }; } @@ -292,9 +292,9 @@ function createSetMethodTestShouldGetKeysBeforeCloning(METHOD_NAME) { return function () { return { done: true }; }; - } + }, }); - } + }, }; var result = baseSet[METHOD_NAME](setLike); @@ -329,7 +329,7 @@ function checkIteratorClosingOnEarlyError(METHOD_NAME, ExpectedError) { try { Iterator.prototype[METHOD_NAME].call({ next: function () { return { done: true }; }, - return: function () { CLOSED = true; } + return: function () { CLOSED = true; }, }, -1); } catch (error) { // https://bugs.webkit.org/show_bug.cgi?id=291195 @@ -775,17 +775,17 @@ GLOBAL.tests = { }, 'es.iterator.drop': [ iteratorHelperThrowsErrorOnInvalidIterator('drop', 0), - checkIteratorClosingOnEarlyError('drop', RangeError) + checkIteratorClosingOnEarlyError('drop', RangeError), ], 'es.iterator.every': checkIteratorClosingOnEarlyError('every', TypeError), 'es.iterator.filter': [ iteratorHelperThrowsErrorOnInvalidIterator('filter', function () { /* empty */ }), - checkIteratorClosingOnEarlyError('filter', TypeError) + checkIteratorClosingOnEarlyError('filter', TypeError), ], 'es.iterator.find': checkIteratorClosingOnEarlyError('find', TypeError), 'es.iterator.flat-map': [ iteratorHelperThrowsErrorOnInvalidIterator('flatMap', function () { /* empty */ }), - checkIteratorClosingOnEarlyError('flatMap', TypeError) + checkIteratorClosingOnEarlyError('flatMap', TypeError), ], 'es.iterator.for-each': checkIteratorClosingOnEarlyError('forEach', TypeError), 'es.iterator.from': function () { @@ -794,7 +794,7 @@ GLOBAL.tests = { }, 'es.iterator.map': [ iteratorHelperThrowsErrorOnInvalidIterator('map', function () { /* empty */ }), - checkIteratorClosingOnEarlyError('map', TypeError) + checkIteratorClosingOnEarlyError('map', TypeError), ], 'es.iterator.reduce': [checkIteratorClosingOnEarlyError('reduce', TypeError), function () { // fails on undefined initial parameter @@ -823,7 +823,7 @@ GLOBAL.tests = { var iterable = { next: function () { return { done: !!called++, value: [1, 2] }; - } + }, }; iterable[Symbol.iterator] = function () { return this; @@ -994,9 +994,9 @@ GLOBAL.tests = { get: function () { Object.defineProperty(this, 'b', { value: 3, - enumerable: false + enumerable: false, }); - } + }, }), { b: 2 })).b !== 1) return false; var A = {}; var B = {}; @@ -1266,7 +1266,7 @@ GLOBAL.tests = { global: 'g', ignoreCase: 'i', multiline: 'm', - sticky: 'y' + sticky: 'y', }; if (INDICES_SUPPORT) pairs.hasIndices = 'd'; @@ -1298,7 +1298,7 @@ GLOBAL.tests = { var iterable = { next: function () { return { done: !!called++, value: 1 }; - } + }, }; iterable[Symbol.iterator] = function () { return this; @@ -1327,9 +1327,9 @@ GLOBAL.tests = { var done = index++ > 1; if (baseSet.has(1)) baseSet.clear(); return { done: done, value: 2 }; - } + }, }; - } + }, }; var baseSet = new Set([1, 2, 3, 4]); @@ -1352,11 +1352,11 @@ GLOBAL.tests = { }), 'es.set.symmetric-difference': [ createSetMethodTest('symmetricDifference'), - createSetMethodTestShouldGetKeysBeforeCloning('symmetricDifference') + createSetMethodTestShouldGetKeysBeforeCloning('symmetricDifference'), ], 'es.set.union': [ createSetMethodTest('union'), - createSetMethodTestShouldGetKeysBeforeCloning('union') + createSetMethodTestShouldGetKeysBeforeCloning('union'), ], 'es.string.at': function () { return '𠮷'.at(-2) === '\uD842'; @@ -1513,39 +1513,39 @@ GLOBAL.tests = { 'es.string.sup': createStringHTMLMethodTest('sup'), 'es.typed-array.float32-array': [ ARRAY_BUFFER_VIEWS_SUPPORT, - TYPED_ARRAY_CONSTRUCTORS_NOT_REQUIRES_WRAPPERS + TYPED_ARRAY_CONSTRUCTORS_NOT_REQUIRES_WRAPPERS, ], 'es.typed-array.float64-array': [ ARRAY_BUFFER_VIEWS_SUPPORT, - TYPED_ARRAY_CONSTRUCTORS_NOT_REQUIRES_WRAPPERS + TYPED_ARRAY_CONSTRUCTORS_NOT_REQUIRES_WRAPPERS, ], 'es.typed-array.int8-array': [ ARRAY_BUFFER_VIEWS_SUPPORT, - TYPED_ARRAY_CONSTRUCTORS_NOT_REQUIRES_WRAPPERS + TYPED_ARRAY_CONSTRUCTORS_NOT_REQUIRES_WRAPPERS, ], 'es.typed-array.int16-array': [ ARRAY_BUFFER_VIEWS_SUPPORT, - TYPED_ARRAY_CONSTRUCTORS_NOT_REQUIRES_WRAPPERS + TYPED_ARRAY_CONSTRUCTORS_NOT_REQUIRES_WRAPPERS, ], 'es.typed-array.int32-array': [ ARRAY_BUFFER_VIEWS_SUPPORT, - TYPED_ARRAY_CONSTRUCTORS_NOT_REQUIRES_WRAPPERS + TYPED_ARRAY_CONSTRUCTORS_NOT_REQUIRES_WRAPPERS, ], 'es.typed-array.uint8-array': [ ARRAY_BUFFER_VIEWS_SUPPORT, - TYPED_ARRAY_CONSTRUCTORS_NOT_REQUIRES_WRAPPERS + TYPED_ARRAY_CONSTRUCTORS_NOT_REQUIRES_WRAPPERS, ], 'es.typed-array.uint8-clamped-array': [ ARRAY_BUFFER_VIEWS_SUPPORT, - TYPED_ARRAY_CONSTRUCTORS_NOT_REQUIRES_WRAPPERS + TYPED_ARRAY_CONSTRUCTORS_NOT_REQUIRES_WRAPPERS, ], 'es.typed-array.uint16-array': [ ARRAY_BUFFER_VIEWS_SUPPORT, - TYPED_ARRAY_CONSTRUCTORS_NOT_REQUIRES_WRAPPERS + TYPED_ARRAY_CONSTRUCTORS_NOT_REQUIRES_WRAPPERS, ], 'es.typed-array.uint32-array': [ ARRAY_BUFFER_VIEWS_SUPPORT, - TYPED_ARRAY_CONSTRUCTORS_NOT_REQUIRES_WRAPPERS + TYPED_ARRAY_CONSTRUCTORS_NOT_REQUIRES_WRAPPERS, ], 'es.typed-array.at': function () { return Int8Array.prototype.at; @@ -1584,7 +1584,7 @@ GLOBAL.tests = { TYPED_ARRAY_CONSTRUCTORS_NOT_REQUIRES_WRAPPERS, function () { return Int8Array.from; - } + }, ], 'es.typed-array.includes': [ARRAY_BUFFER_VIEWS_SUPPORT, function () { return Int8Array.prototype.includes; @@ -1616,7 +1616,7 @@ GLOBAL.tests = { TYPED_ARRAY_CONSTRUCTORS_NOT_REQUIRES_WRAPPERS, function () { return Int8Array.of; - } + }, ], 'es.typed-array.reduce': [ARRAY_BUFFER_VIEWS_SUPPORT, function () { return Int8Array.prototype.reduce; @@ -1759,7 +1759,7 @@ GLOBAL.tests = { var iterable = { next: function () { return { done: !!called++, value: [key, 1] }; - } + }, }; iterable[Symbol.iterator] = function () { return this; @@ -1780,7 +1780,7 @@ GLOBAL.tests = { var iterable = { next: function () { return { done: !!called++, value: key }; - } + }, }; iterable[Symbol.iterator] = function () { return this; @@ -2130,7 +2130,7 @@ GLOBAL.tests = { StyleSheetList: 0, TextTrackCueList: 0, TextTrackList: 0, - TouchList: 0 + TouchList: 0, }; for (var collection in DOMIterables) { if (GLOBAL[collection]) { @@ -2220,5 +2220,5 @@ GLOBAL.tests = { }], 'web.url-search-params.size': [URL_AND_URL_SEARCH_PARAMS_SUPPORT, function () { return 'size' in URLSearchParams.prototype; - }] + }], }; diff --git a/tests/eslint/eslint.config.js b/tests/eslint/eslint.config.js index eb072466c0bb..2216049d3522 100644 --- a/tests/eslint/eslint.config.js +++ b/tests/eslint/eslint.config.js @@ -1108,7 +1108,7 @@ const noAsyncAwait = { 'promise/prefer-await-to-then': OFF, }; -const useES3Syntax = { +const useES5Syntax = { ...noAsyncAwait, // disallow logical assignment operator shorthand 'logical-assignment-operators': [ERROR, NEVER], @@ -1134,8 +1134,6 @@ const useES3Syntax = { 'prefer-spread': OFF, // require template literals instead of string concatenation 'prefer-template': OFF, - // disallow trailing commas in multiline object literals - '@stylistic/comma-dangle': [ERROR, NEVER], // enforce the use of exponentiation (`**`) operator instead of other calculations 'math/prefer-exponentiation-operator': OFF, // prefer lookarounds over capturing group that do not replace @@ -2309,7 +2307,7 @@ export default [ languageOptions: { ecmaVersion: 5, }, - rules: useES3Syntax, + rules: useES5Syntax, }, { files: [ From 9d460e78c1d5c3161c9c194b8bd1a2ae34d8afcf Mon Sep 17 00:00:00 2001 From: Denis Pushkarev Date: Fri, 6 Oct 2023 11:11:09 +0700 Subject: [PATCH 101/428] drop `es.object.create` (required for ES3 only) --- README.md | 2 +- packages/core-js-compat/src/data.mjs | 10 --- packages/core-js/actual/error/index.js | 1 - packages/core-js/actual/json/index.js | 1 - packages/core-js/actual/json/raw-json.js | 1 - packages/core-js/actual/object/group-by.js | 1 - packages/core-js/es/error/is-error.js | 1 - packages/core-js/es/object/create.js | 7 +- packages/core-js/es/object/group-by.js | 1 - packages/core-js/es/object/index.js | 1 - packages/core-js/full/iterator/zip-keyed.js | 1 - .../core-js/internals/add-to-unscopables.js | 2 +- .../internals/async-from-sync-iterator.js | 2 +- .../internals/async-iterator-create-proxy.js | 2 +- .../internals/async-iterator-prototype.js | 3 +- .../core-js/internals/collection-strong.js | 2 +- packages/core-js/internals/composite-key.js | 2 +- packages/core-js/internals/error-to-string.js | 2 +- .../internals/iterator-create-constructor.js | 3 +- .../internals/iterator-create-proxy.js | 2 +- packages/core-js/internals/iterators-core.js | 2 +- packages/core-js/internals/object-create.js | 85 ------------------- packages/core-js/internals/object-to-array.js | 1 - packages/core-js/internals/regexp-exec.js | 2 +- .../internals/typed-array-constructor.js | 2 +- .../modules/es.aggregate-error.constructor.js | 2 +- packages/core-js/modules/es.error.is-error.js | 2 +- packages/core-js/modules/es.object.create.js | 10 --- .../core-js/modules/es.object.group-by.js | 3 +- .../core-js/modules/es.reflect.construct.js | 2 +- .../core-js/modules/es.regexp.constructor.js | 2 +- .../es.suppressed-error.constructor.js | 2 +- .../core-js/modules/es.symbol.constructor.js | 2 +- .../core-js/modules/esnext.composite-key.js | 2 +- .../modules/esnext.iterator.zip-keyed.js | 2 +- .../core-js/modules/esnext.json.raw-json.js | 2 +- .../modules/web.dom-exception.constructor.js | 2 +- .../web.url-search-params.constructor.js | 2 +- tests/compat/tests.js | 4 - tests/eslint/eslint.config.js | 1 - 40 files changed, 28 insertions(+), 151 deletions(-) delete mode 100644 packages/core-js/internals/object-create.js delete mode 100644 packages/core-js/modules/es.object.create.js diff --git a/README.md b/README.md index ec32612eab1a..b47d4ff95f94 100644 --- a/README.md +++ b/README.md @@ -481,7 +481,7 @@ core-js(-pure) core-js(-pure)/es ``` #### ECMAScript: Object[⬆](#index) -Modules [`es.object.assign`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.object.assign.js), [`es.object.create`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.object.create.js), [`es.object.define-getter`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.object.define-getter.js), [`es.object.define-property`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.object.define-property.js), [`es.object.define-properties`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.object.define-properties.js), [`es.object.define-setter`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.object.define-setter.js), [`es.object.entries`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.object.entries.js), [`es.object.freeze`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.object.freeze.js), [`es.object.from-entries`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.object.from-entries.js), [`es.object.get-own-property-descriptor`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.object.get-own-property-descriptor.js), [`es.object.get-own-property-descriptors`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.object.get-own-property-descriptors.js), [`es.object.get-own-property-names`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.object.get-own-property-names.js), [`es.object.get-prototype-of`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.object.get-prototype-of.js), [`es.object.group-by`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.object.group-by.js), [`es.object.has-own`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.object.has-own.js), [`es.object.is`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.object.is.js), [`es.object.is-extensible`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.object.is-extensible.js), [`es.object.is-frozen`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.object.is-frozen.js), [`es.object.is-sealed`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.object.is-sealed.js), [`es.object.keys`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.object.keys.js), [`es.object.lookup-setter`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.object.lookup-setter.js), [`es.object.lookup-getter`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.object.lookup-getter.js), [`es.object.prevent-extensions`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.object.prevent-extensions.js), [`es.object.proto`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.object.proto.js), [`es.object.to-string`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.object.to-string.js), [`es.object.seal`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.object.seal.js), [`es.object.set-prototype-of`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.object.set-prototype-of.js), [`es.object.values`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.object.values.js). +Modules [`es.object.assign`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.object.assign.js), [`es.object.define-getter`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.object.define-getter.js), [`es.object.define-property`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.object.define-property.js), [`es.object.define-properties`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.object.define-properties.js), [`es.object.define-setter`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.object.define-setter.js), [`es.object.entries`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.object.entries.js), [`es.object.freeze`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.object.freeze.js), [`es.object.from-entries`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.object.from-entries.js), [`es.object.get-own-property-descriptor`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.object.get-own-property-descriptor.js), [`es.object.get-own-property-descriptors`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.object.get-own-property-descriptors.js), [`es.object.get-own-property-names`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.object.get-own-property-names.js), [`es.object.get-prototype-of`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.object.get-prototype-of.js), [`es.object.group-by`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.object.group-by.js), [`es.object.has-own`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.object.has-own.js), [`es.object.is`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.object.is.js), [`es.object.is-extensible`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.object.is-extensible.js), [`es.object.is-frozen`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.object.is-frozen.js), [`es.object.is-sealed`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.object.is-sealed.js), [`es.object.keys`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.object.keys.js), [`es.object.lookup-setter`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.object.lookup-setter.js), [`es.object.lookup-getter`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.object.lookup-getter.js), [`es.object.prevent-extensions`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.object.prevent-extensions.js), [`es.object.proto`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.object.proto.js), [`es.object.to-string`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.object.to-string.js), [`es.object.seal`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.object.seal.js), [`es.object.set-prototype-of`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.object.set-prototype-of.js), [`es.object.values`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.object.values.js). ```ts class Object { diff --git a/packages/core-js-compat/src/data.mjs b/packages/core-js-compat/src/data.mjs index 764a66156858..26096a608b4b 100644 --- a/packages/core-js-compat/src/data.mjs +++ b/packages/core-js-compat/src/data.mjs @@ -1069,16 +1069,6 @@ export const data = { hermes: '0.4', safari: '9.0', }, - // TODO: Remove from `core-js@4` - 'es.object.create': { - chrome: '5', - firefox: '4', - hermes: '0.1', - ie: '9', - opera: '12', - rhino: '1.7.13', - safari: '4.0', - }, 'es.object.define-getter': { chrome: '62', edge: '16', diff --git a/packages/core-js/actual/error/index.js b/packages/core-js/actual/error/index.js index 2c0da9fac71e..55ad9f1a19d0 100644 --- a/packages/core-js/actual/error/index.js +++ b/packages/core-js/actual/error/index.js @@ -1,6 +1,5 @@ 'use strict'; var parent = require('../../stable/error'); -require('../../modules/es.object.create'); require('../../modules/esnext.error.is-error'); module.exports = parent; diff --git a/packages/core-js/actual/json/index.js b/packages/core-js/actual/json/index.js index 6061c65d69fe..4ab6909f12e5 100644 --- a/packages/core-js/actual/json/index.js +++ b/packages/core-js/actual/json/index.js @@ -1,6 +1,5 @@ 'use strict'; var parent = require('../../stable/json'); -require('../../modules/es.object.create'); require('../../modules/es.object.freeze'); require('../../modules/es.object.keys'); require('../../modules/esnext.json.is-raw-json'); diff --git a/packages/core-js/actual/json/raw-json.js b/packages/core-js/actual/json/raw-json.js index 5a2856920294..08243c136319 100644 --- a/packages/core-js/actual/json/raw-json.js +++ b/packages/core-js/actual/json/raw-json.js @@ -1,5 +1,4 @@ 'use strict'; -require('../../modules/es.object.create'); require('../../modules/es.object.freeze'); require('../../modules/esnext.json.raw-json'); var path = require('../../internals/path'); diff --git a/packages/core-js/actual/object/group-by.js b/packages/core-js/actual/object/group-by.js index 71b12459766a..77a0adeacf13 100644 --- a/packages/core-js/actual/object/group-by.js +++ b/packages/core-js/actual/object/group-by.js @@ -1,5 +1,4 @@ 'use strict'; var parent = require('../../stable/object/group-by'); -require('../../modules/esnext.object.group-by'); module.exports = parent; diff --git a/packages/core-js/es/error/is-error.js b/packages/core-js/es/error/is-error.js index c86cf1ae2206..d08022343654 100644 --- a/packages/core-js/es/error/is-error.js +++ b/packages/core-js/es/error/is-error.js @@ -1,5 +1,4 @@ 'use strict'; -require('../../modules/es.object.create'); require('../../modules/es.error.is-error'); var path = require('../../internals/path'); diff --git a/packages/core-js/es/object/create.js b/packages/core-js/es/object/create.js index 4c8ed6d9a454..db9822160d03 100644 --- a/packages/core-js/es/object/create.js +++ b/packages/core-js/es/object/create.js @@ -1,9 +1,6 @@ 'use strict'; -require('../../modules/es.object.create'); -var path = require('../../internals/path'); - -var Object = path.Object; +var getBuiltIn = require('../../internals/get-built-in'); module.exports = function create(P, D) { - return Object.create(P, D); + return getBuiltIn('Object', 'create')(P, D); }; diff --git a/packages/core-js/es/object/group-by.js b/packages/core-js/es/object/group-by.js index 52a006cfa489..33e6110008e0 100644 --- a/packages/core-js/es/object/group-by.js +++ b/packages/core-js/es/object/group-by.js @@ -1,5 +1,4 @@ 'use strict'; -require('../../modules/es.object.create'); require('../../modules/es.object.group-by'); var path = require('../../internals/path'); diff --git a/packages/core-js/es/object/index.js b/packages/core-js/es/object/index.js index 2945b3905d35..f1bcad893f00 100644 --- a/packages/core-js/es/object/index.js +++ b/packages/core-js/es/object/index.js @@ -1,6 +1,5 @@ 'use strict'; require('../../modules/es.object.assign'); -require('../../modules/es.object.create'); require('../../modules/es.object.define-property'); require('../../modules/es.object.define-properties'); require('../../modules/es.object.entries'); diff --git a/packages/core-js/full/iterator/zip-keyed.js b/packages/core-js/full/iterator/zip-keyed.js index de9ad1d63c1f..4063887a2670 100644 --- a/packages/core-js/full/iterator/zip-keyed.js +++ b/packages/core-js/full/iterator/zip-keyed.js @@ -1,6 +1,5 @@ 'use strict'; require('../../modules/es.array.iterator'); -require('../../modules/es.object.create'); require('../../modules/es.object.to-string'); require('../../modules/es.string.iterator'); require('../../modules/es.iterator.constructor'); diff --git a/packages/core-js/internals/add-to-unscopables.js b/packages/core-js/internals/add-to-unscopables.js index c4329dc59005..bce1c211540c 100644 --- a/packages/core-js/internals/add-to-unscopables.js +++ b/packages/core-js/internals/add-to-unscopables.js @@ -1,10 +1,10 @@ 'use strict'; var wellKnownSymbol = require('../internals/well-known-symbol'); -var create = require('../internals/object-create'); var defineProperty = require('../internals/object-define-property').f; var UNSCOPABLES = wellKnownSymbol('unscopables'); var ArrayPrototype = Array.prototype; +var create = Object.create; // Array.prototype[@@unscopables] // https://tc39.es/ecma262/#sec-array.prototype-@@unscopables diff --git a/packages/core-js/internals/async-from-sync-iterator.js b/packages/core-js/internals/async-from-sync-iterator.js index f6d7505de6e1..be2091faecbd 100644 --- a/packages/core-js/internals/async-from-sync-iterator.js +++ b/packages/core-js/internals/async-from-sync-iterator.js @@ -1,7 +1,6 @@ 'use strict'; var call = require('../internals/function-call'); var anObject = require('../internals/an-object'); -var create = require('../internals/object-create'); var getMethod = require('../internals/get-method'); var defineBuiltIns = require('../internals/define-built-ins'); var InternalStateModule = require('../internals/internal-state'); @@ -11,6 +10,7 @@ var AsyncIteratorPrototype = require('../internals/async-iterator-prototype'); var createIterResultObject = require('../internals/create-iter-result-object'); var Promise = getBuiltIn('Promise'); +var create = Object.create; var ASYNC_FROM_SYNC_ITERATOR = 'AsyncFromSyncIterator'; var setInternalState = InternalStateModule.set; diff --git a/packages/core-js/internals/async-iterator-create-proxy.js b/packages/core-js/internals/async-iterator-create-proxy.js index ded4ba979833..06756fe23de3 100644 --- a/packages/core-js/internals/async-iterator-create-proxy.js +++ b/packages/core-js/internals/async-iterator-create-proxy.js @@ -2,7 +2,6 @@ var call = require('../internals/function-call'); var perform = require('../internals/perform'); var anObject = require('../internals/an-object'); -var create = require('../internals/object-create'); var createNonEnumerableProperty = require('../internals/create-non-enumerable-property'); var defineBuiltIns = require('../internals/define-built-ins'); var wellKnownSymbol = require('../internals/well-known-symbol'); @@ -14,6 +13,7 @@ var createIterResultObject = require('../internals/create-iter-result-object'); var iteratorClose = require('../internals/iterator-close'); var Promise = getBuiltIn('Promise'); +var create = Object.create; var TO_STRING_TAG = wellKnownSymbol('toStringTag'); var ASYNC_ITERATOR_HELPER = 'AsyncIteratorHelper'; diff --git a/packages/core-js/internals/async-iterator-prototype.js b/packages/core-js/internals/async-iterator-prototype.js index 1fed1354a9b7..c436128e6dc0 100644 --- a/packages/core-js/internals/async-iterator-prototype.js +++ b/packages/core-js/internals/async-iterator-prototype.js @@ -2,7 +2,6 @@ var globalThis = require('../internals/global-this'); var shared = require('../internals/shared-store'); var isCallable = require('../internals/is-callable'); -var create = require('../internals/object-create'); var getPrototypeOf = require('../internals/object-get-prototype-of'); var defineBuiltIn = require('../internals/define-built-in'); var wellKnownSymbol = require('../internals/well-known-symbol'); @@ -27,7 +26,7 @@ if (PassedAsyncIteratorPrototype) { } if (!AsyncIteratorPrototype) AsyncIteratorPrototype = {}; -else if (IS_PURE) AsyncIteratorPrototype = create(AsyncIteratorPrototype); +else if (IS_PURE) AsyncIteratorPrototype = Object.create(AsyncIteratorPrototype); if (!isCallable(AsyncIteratorPrototype[ASYNC_ITERATOR])) { defineBuiltIn(AsyncIteratorPrototype, ASYNC_ITERATOR, function () { diff --git a/packages/core-js/internals/collection-strong.js b/packages/core-js/internals/collection-strong.js index a171de813a63..8c6b3e912b4d 100644 --- a/packages/core-js/internals/collection-strong.js +++ b/packages/core-js/internals/collection-strong.js @@ -1,5 +1,4 @@ 'use strict'; -var create = require('../internals/object-create'); var defineBuiltInAccessor = require('../internals/define-built-in-accessor'); var defineBuiltIns = require('../internals/define-built-ins'); var bind = require('../internals/function-bind-context'); @@ -14,6 +13,7 @@ var InternalStateModule = require('../internals/internal-state'); var setInternalState = InternalStateModule.set; var internalStateGetterFor = InternalStateModule.getterFor; +var create = Object.create; module.exports = { getConstructor: function (wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER) { diff --git a/packages/core-js/internals/composite-key.js b/packages/core-js/internals/composite-key.js index 43415ce4b452..e76bd3714aba 100644 --- a/packages/core-js/internals/composite-key.js +++ b/packages/core-js/internals/composite-key.js @@ -3,13 +3,13 @@ require('../modules/es.map.constructor'); require('../modules/es.weak-map.constructor'); var getBuiltIn = require('../internals/get-built-in'); -var create = require('../internals/object-create'); var isObject = require('../internals/is-object'); var $Object = Object; var $TypeError = TypeError; var Map = getBuiltIn('Map'); var WeakMap = getBuiltIn('WeakMap'); +var create = Object.create; var Node = function () { // keys diff --git a/packages/core-js/internals/error-to-string.js b/packages/core-js/internals/error-to-string.js index 2a87ce399ed1..ffa2cc09f87c 100644 --- a/packages/core-js/internals/error-to-string.js +++ b/packages/core-js/internals/error-to-string.js @@ -7,7 +7,7 @@ var nativeErrorToString = Error.prototype.toString; var INCORRECT_TO_STRING = fails(function () { // Chrome 32- incorrectly call accessor - // eslint-disable-next-line es/no-object-create, es/no-object-defineproperty -- safe + // eslint-disable-next-line es/no-object-defineproperty -- safe var object = Object.create(Object.defineProperty({}, 'name', { get: function () { return this === object; } })); diff --git a/packages/core-js/internals/iterator-create-constructor.js b/packages/core-js/internals/iterator-create-constructor.js index e519c9f2efcc..a8eb5d46d9fb 100644 --- a/packages/core-js/internals/iterator-create-constructor.js +++ b/packages/core-js/internals/iterator-create-constructor.js @@ -1,10 +1,11 @@ 'use strict'; var IteratorPrototype = require('../internals/iterators-core').IteratorPrototype; -var create = require('../internals/object-create'); var createPropertyDescriptor = require('../internals/create-property-descriptor'); var setToStringTag = require('../internals/set-to-string-tag'); var Iterators = require('../internals/iterators'); +var create = Object.create; + var returnThis = function () { return this; }; module.exports = function (IteratorConstructor, NAME, next, ENUMERABLE_NEXT) { diff --git a/packages/core-js/internals/iterator-create-proxy.js b/packages/core-js/internals/iterator-create-proxy.js index 0f5ccdc3e96e..68d4ca19c46a 100644 --- a/packages/core-js/internals/iterator-create-proxy.js +++ b/packages/core-js/internals/iterator-create-proxy.js @@ -1,6 +1,5 @@ 'use strict'; var call = require('../internals/function-call'); -var create = require('../internals/object-create'); var createNonEnumerableProperty = require('../internals/create-non-enumerable-property'); var defineBuiltIns = require('../internals/define-built-ins'); var wellKnownSymbol = require('../internals/well-known-symbol'); @@ -11,6 +10,7 @@ var createIterResultObject = require('../internals/create-iter-result-object'); var iteratorClose = require('../internals/iterator-close'); var iteratorCloseAll = require('../internals/iterator-close-all'); +var create = Object.create; var TO_STRING_TAG = wellKnownSymbol('toStringTag'); var ITERATOR_HELPER = 'IteratorHelper'; var WRAP_FOR_VALID_ITERATOR = 'WrapForValidIterator'; diff --git a/packages/core-js/internals/iterators-core.js b/packages/core-js/internals/iterators-core.js index 6145ab6da7d7..861198623e22 100644 --- a/packages/core-js/internals/iterators-core.js +++ b/packages/core-js/internals/iterators-core.js @@ -2,12 +2,12 @@ var fails = require('../internals/fails'); var isCallable = require('../internals/is-callable'); var isObject = require('../internals/is-object'); -var create = require('../internals/object-create'); var getPrototypeOf = require('../internals/object-get-prototype-of'); var defineBuiltIn = require('../internals/define-built-in'); var wellKnownSymbol = require('../internals/well-known-symbol'); var IS_PURE = require('../internals/is-pure'); +var create = Object.create; var ITERATOR = wellKnownSymbol('iterator'); var BUGGY_SAFARI_ITERATORS = false; diff --git a/packages/core-js/internals/object-create.js b/packages/core-js/internals/object-create.js deleted file mode 100644 index e24560ef653b..000000000000 --- a/packages/core-js/internals/object-create.js +++ /dev/null @@ -1,85 +0,0 @@ -'use strict'; -/* global ActiveXObject -- old IE, WSH */ -var anObject = require('../internals/an-object'); -var definePropertiesModule = require('../internals/object-define-properties'); -var enumBugKeys = require('../internals/enum-bug-keys'); -var hiddenKeys = require('../internals/hidden-keys'); -var html = require('../internals/html'); -var documentCreateElement = require('../internals/document-create-element'); -var sharedKey = require('../internals/shared-key'); - -var GT = '>'; -var LT = '<'; -var PROTOTYPE = 'prototype'; -var SCRIPT = 'script'; -var IE_PROTO = sharedKey('IE_PROTO'); - -var EmptyConstructor = function () { /* empty */ }; - -var scriptTag = function (content) { - return LT + SCRIPT + GT + content + LT + '/' + SCRIPT + GT; -}; - -// Create object with fake `null` prototype: use ActiveX Object with cleared prototype -var NullProtoObjectViaActiveX = function (activeXDocument) { - activeXDocument.write(scriptTag('')); - activeXDocument.close(); - var temp = activeXDocument.parentWindow.Object; - // eslint-disable-next-line no-useless-assignment -- avoid memory leak - activeXDocument = null; - return temp; -}; - -// Create object with fake `null` prototype: use iframe Object with cleared prototype -var NullProtoObjectViaIFrame = function () { - // Thrash, waste and sodomy: IE GC bug - var iframe = documentCreateElement('iframe'); - var JS = 'java' + SCRIPT + ':'; - var iframeDocument; - iframe.style.display = 'none'; - html.appendChild(iframe); - // https://github.com/zloirock/core-js/issues/475 - iframe.src = String(JS); - iframeDocument = iframe.contentWindow.document; - iframeDocument.open(); - iframeDocument.write(scriptTag('document.F=Object')); - iframeDocument.close(); - return iframeDocument.F; -}; - -// Check for document.domain and active x support -// No need to use active x approach when document.domain is not set -// see https://github.com/es-shims/es5-shim/issues/150 -// variation of https://github.com/kitcambridge/es5-shim/commit/4f738ac066346 -// avoid IE GC bug -var activeXDocument; -var NullProtoObject = function () { - try { - activeXDocument = new ActiveXObject('htmlfile'); - } catch (error) { /* ignore */ } - NullProtoObject = typeof document != 'undefined' - ? document.domain && activeXDocument - ? NullProtoObjectViaActiveX(activeXDocument) // old IE - : NullProtoObjectViaIFrame() - : NullProtoObjectViaActiveX(activeXDocument); // WSH - var length = enumBugKeys.length; - while (length--) delete NullProtoObject[PROTOTYPE][enumBugKeys[length]]; - return NullProtoObject(); -}; - -hiddenKeys[IE_PROTO] = true; - -// `Object.create` method -// https://tc39.es/ecma262/#sec-object.create -// eslint-disable-next-line es/no-object-create -- safe -module.exports = Object.create || function create(O, Properties) { - var result; - if (O !== null) { - EmptyConstructor[PROTOTYPE] = anObject(O); - result = new EmptyConstructor(); - EmptyConstructor[PROTOTYPE] = null; - // add "__proto__" for Object.getPrototypeOf polyfill - result[IE_PROTO] = O; - } else result = NullProtoObject(); - return Properties === undefined ? result : definePropertiesModule.f(result, Properties); -}; diff --git a/packages/core-js/internals/object-to-array.js b/packages/core-js/internals/object-to-array.js index ba09342840ef..8d0f872d0619 100644 --- a/packages/core-js/internals/object-to-array.js +++ b/packages/core-js/internals/object-to-array.js @@ -12,7 +12,6 @@ var push = uncurryThis([].push); // in some IE versions, `propertyIsEnumerable` returns incorrect result on integer keys // of `null` prototype objects var IE_BUG = fails(function () { - // eslint-disable-next-line es/no-object-create -- safe var O = Object.create(null); O[2] = 2; return !propertyIsEnumerable(O, 2); diff --git a/packages/core-js/internals/regexp-exec.js b/packages/core-js/internals/regexp-exec.js index a23cf2adedfd..497e8b1e67fc 100644 --- a/packages/core-js/internals/regexp-exec.js +++ b/packages/core-js/internals/regexp-exec.js @@ -7,11 +7,11 @@ var toString = require('../internals/to-string'); var regexpFlags = require('../internals/regexp-flags'); var stickyHelpers = require('../internals/regexp-sticky-helpers'); var shared = require('../internals/shared'); -var create = require('../internals/object-create'); var getInternalState = require('../internals/internal-state').get; var UNSUPPORTED_DOT_ALL = require('../internals/regexp-unsupported-dot-all'); var UNSUPPORTED_NCG = require('../internals/regexp-unsupported-ncg'); +var create = Object.create; var nativeReplace = shared('native-string-replace', String.prototype.replace); var nativeExec = RegExp.prototype.exec; var patchedExec = nativeExec; diff --git a/packages/core-js/internals/typed-array-constructor.js b/packages/core-js/internals/typed-array-constructor.js index ad3a08653fd8..5bae0f53d292 100644 --- a/packages/core-js/internals/typed-array-constructor.js +++ b/packages/core-js/internals/typed-array-constructor.js @@ -18,7 +18,6 @@ var hasOwn = require('../internals/has-own-property'); var classof = require('../internals/classof'); var isObject = require('../internals/is-object'); var isSymbol = require('../internals/is-symbol'); -var create = require('../internals/object-create'); var isPrototypeOf = require('../internals/object-is-prototype-of'); var setPrototypeOf = require('../internals/object-set-prototype-of'); var getOwnPropertyNames = require('../internals/object-get-own-property-names').f; @@ -35,6 +34,7 @@ var inheritIfRequired = require('../internals/inherit-if-required'); var getInternalState = InternalStateModule.get; var setInternalState = InternalStateModule.set; var enforceInternalState = InternalStateModule.enforce; +var create = Object.create; var nativeDefineProperty = definePropertyModule.f; var nativeGetOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f; var RangeError = globalThis.RangeError; diff --git a/packages/core-js/modules/es.aggregate-error.constructor.js b/packages/core-js/modules/es.aggregate-error.constructor.js index ac8cdbc7c532..16a2b158d915 100644 --- a/packages/core-js/modules/es.aggregate-error.constructor.js +++ b/packages/core-js/modules/es.aggregate-error.constructor.js @@ -4,7 +4,6 @@ var isPrototypeOf = require('../internals/object-is-prototype-of'); var getPrototypeOf = require('../internals/object-get-prototype-of'); var setPrototypeOf = require('../internals/object-set-prototype-of'); var copyConstructorProperties = require('../internals/copy-constructor-properties'); -var create = require('../internals/object-create'); var createNonEnumerableProperty = require('../internals/create-non-enumerable-property'); var createPropertyDescriptor = require('../internals/create-property-descriptor'); var installErrorCause = require('../internals/install-error-cause'); @@ -15,6 +14,7 @@ var wellKnownSymbol = require('../internals/well-known-symbol'); var TO_STRING_TAG = wellKnownSymbol('toStringTag'); var $Error = Error; +var create = Object.create; var push = [].push; var $AggregateError = function AggregateError(errors, message /* , options */) { diff --git a/packages/core-js/modules/es.error.is-error.js b/packages/core-js/modules/es.error.is-error.js index d4e2361a168c..1797efe410ac 100644 --- a/packages/core-js/modules/es.error.is-error.js +++ b/packages/core-js/modules/es.error.is-error.js @@ -23,7 +23,7 @@ var FORCED = !$isError || !PROTOTYPE_SETTING_AVAILABLE || fails(function () { // eslint-disable-next-line es/no-error-cause -- detection !$isError(new $Error(ERROR, { cause: function () { /* empty */ } })) || // instanceof-based and FF Error#stack-based implementations - $isError(getBuiltIn('Object', 'create')($Error.prototype)); + $isError(Object.create($Error.prototype)); }); // `Error.isError` method diff --git a/packages/core-js/modules/es.object.create.js b/packages/core-js/modules/es.object.create.js deleted file mode 100644 index 28743c353153..000000000000 --- a/packages/core-js/modules/es.object.create.js +++ /dev/null @@ -1,10 +0,0 @@ -'use strict'; -// TODO: Remove from `core-js@4` -var $ = require('../internals/export'); -var create = require('../internals/object-create'); - -// `Object.create` method -// https://tc39.es/ecma262/#sec-object.create -$({ target: 'Object', stat: true }, { - create: create, -}); diff --git a/packages/core-js/modules/es.object.group-by.js b/packages/core-js/modules/es.object.group-by.js index f88baac43120..28d07bcb626d 100644 --- a/packages/core-js/modules/es.object.group-by.js +++ b/packages/core-js/modules/es.object.group-by.js @@ -1,7 +1,6 @@ 'use strict'; var $ = require('../internals/export'); var createProperty = require('../internals/create-property'); -var getBuiltIn = require('../internals/get-built-in'); var uncurryThis = require('../internals/function-uncurry-this'); var aCallable = require('../internals/a-callable'); var requireObjectCoercible = require('../internals/require-object-coercible'); @@ -11,7 +10,7 @@ var fails = require('../internals/fails'); // eslint-disable-next-line es/no-object-groupby -- testing var nativeGroupBy = Object.groupBy; -var create = getBuiltIn('Object', 'create'); +var create = Object.create; var push = uncurryThis([].push); // https://bugs.webkit.org/show_bug.cgi?id=271524 diff --git a/packages/core-js/modules/es.reflect.construct.js b/packages/core-js/modules/es.reflect.construct.js index 0adc932bb723..2c87364eb7f4 100644 --- a/packages/core-js/modules/es.reflect.construct.js +++ b/packages/core-js/modules/es.reflect.construct.js @@ -6,9 +6,9 @@ var bind = require('../internals/function-bind'); var aConstructor = require('../internals/a-constructor'); var anObject = require('../internals/an-object'); var isObject = require('../internals/is-object'); -var create = require('../internals/object-create'); var fails = require('../internals/fails'); +var create = Object.create; var nativeConstruct = getBuiltIn('Reflect', 'construct'); var ObjectPrototype = Object.prototype; var push = [].push; diff --git a/packages/core-js/modules/es.regexp.constructor.js b/packages/core-js/modules/es.regexp.constructor.js index 54d0380040b4..686b753761ca 100644 --- a/packages/core-js/modules/es.regexp.constructor.js +++ b/packages/core-js/modules/es.regexp.constructor.js @@ -4,7 +4,6 @@ var uncurryThis = require('../internals/function-uncurry-this'); var isForced = require('../internals/is-forced'); var inheritIfRequired = require('../internals/inherit-if-required'); var createNonEnumerableProperty = require('../internals/create-non-enumerable-property'); -var create = require('../internals/object-create'); var getOwnPropertyNames = require('../internals/object-get-own-property-names').f; var isPrototypeOf = require('../internals/object-is-prototype-of'); var isRegExp = require('../internals/is-regexp'); @@ -25,6 +24,7 @@ var MATCH = wellKnownSymbol('match'); var NativeRegExp = globalThis.RegExp; var RegExpPrototype = NativeRegExp.prototype; var SyntaxError = globalThis.SyntaxError; +var create = Object.create; var exec = uncurryThis(RegExpPrototype.exec); var charAt = uncurryThis(''.charAt); var replace = uncurryThis(''.replace); diff --git a/packages/core-js/modules/es.suppressed-error.constructor.js b/packages/core-js/modules/es.suppressed-error.constructor.js index d842f6580a0b..96fb3c3ba267 100644 --- a/packages/core-js/modules/es.suppressed-error.constructor.js +++ b/packages/core-js/modules/es.suppressed-error.constructor.js @@ -5,7 +5,6 @@ var isPrototypeOf = require('../internals/object-is-prototype-of'); var getPrototypeOf = require('../internals/object-get-prototype-of'); var setPrototypeOf = require('../internals/object-set-prototype-of'); var copyConstructorProperties = require('../internals/copy-constructor-properties'); -var create = require('../internals/object-create'); var createNonEnumerableProperty = require('../internals/create-non-enumerable-property'); var createPropertyDescriptor = require('../internals/create-property-descriptor'); var installErrorStack = require('../internals/error-stack-install'); @@ -17,6 +16,7 @@ var IS_PURE = require('../internals/is-pure'); var NativeSuppressedError = globalThis.SuppressedError; var TO_STRING_TAG = wellKnownSymbol('toStringTag'); var $Error = Error; +var create = Object.create; // https://github.com/oven-sh/bun/issues/9282 var WRONG_ARITY = !!NativeSuppressedError && NativeSuppressedError.length !== 3; diff --git a/packages/core-js/modules/es.symbol.constructor.js b/packages/core-js/modules/es.symbol.constructor.js index bbecfe2efcee..b9aee920dd75 100644 --- a/packages/core-js/modules/es.symbol.constructor.js +++ b/packages/core-js/modules/es.symbol.constructor.js @@ -13,7 +13,6 @@ var toIndexedObject = require('../internals/to-indexed-object'); var toPropertyKey = require('../internals/to-property-key'); var $toString = require('../internals/to-string'); var createPropertyDescriptor = require('../internals/create-property-descriptor'); -var nativeObjectCreate = require('../internals/object-create'); var objectKeys = require('../internals/object-keys'); var getOwnPropertyNamesModule = require('../internals/object-get-own-property-names'); var getOwnPropertyNamesExternal = require('../internals/object-get-own-property-names-external'); @@ -49,6 +48,7 @@ var SymbolPrototype = $Symbol && $Symbol[PROTOTYPE]; var RangeError = globalThis.RangeError; var TypeError = globalThis.TypeError; var QObject = globalThis.QObject; +var nativeObjectCreate = Object.create; var nativeGetOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f; var nativeDefineProperty = definePropertyModule.f; var nativeGetOwnPropertyNames = getOwnPropertyNamesExternal.f; diff --git a/packages/core-js/modules/esnext.composite-key.js b/packages/core-js/modules/esnext.composite-key.js index 0759e3962f4b..973f2094335d 100644 --- a/packages/core-js/modules/esnext.composite-key.js +++ b/packages/core-js/modules/esnext.composite-key.js @@ -3,9 +3,9 @@ var $ = require('../internals/export'); var apply = require('../internals/function-apply'); var getCompositeKeyNode = require('../internals/composite-key'); var getBuiltIn = require('../internals/get-built-in'); -var create = require('../internals/object-create'); var $Object = Object; +var create = Object.create; var initializer = function () { var freeze = getBuiltIn('Object', 'freeze'); diff --git a/packages/core-js/modules/esnext.iterator.zip-keyed.js b/packages/core-js/modules/esnext.iterator.zip-keyed.js index f4b7d65e1a00..1cce084202fd 100644 --- a/packages/core-js/modules/esnext.iterator.zip-keyed.js +++ b/packages/core-js/modules/esnext.iterator.zip-keyed.js @@ -12,7 +12,7 @@ var getModeOption = require('../internals/get-mode-option'); var iteratorCloseAll = require('../internals/iterator-close-all'); var iteratorZip = require('../internals/iterator-zip'); -var create = getBuiltIn('Object', 'create'); +var create = Object.create; var ownKeys = getBuiltIn('Reflect', 'ownKeys'); var push = uncurryThis([].push); var THROW = 'throw'; diff --git a/packages/core-js/modules/esnext.json.raw-json.js b/packages/core-js/modules/esnext.json.raw-json.js index 6d93806a951b..cfbc9c044f7d 100644 --- a/packages/core-js/modules/esnext.json.raw-json.js +++ b/packages/core-js/modules/esnext.json.raw-json.js @@ -18,7 +18,7 @@ var $String = String; var $SyntaxError = SyntaxError; var parse = getBuiltIn('JSON', 'parse'); var $stringify = getBuiltIn('JSON', 'stringify'); -var create = getBuiltIn('Object', 'create'); +var create = Object.create; var freeze = getBuiltIn('Object', 'freeze'); var at = uncurryThis(''.charAt); var slice = uncurryThis(''.slice); diff --git a/packages/core-js/modules/web.dom-exception.constructor.js b/packages/core-js/modules/web.dom-exception.constructor.js index e2d779714e04..760745fa45fd 100644 --- a/packages/core-js/modules/web.dom-exception.constructor.js +++ b/packages/core-js/modules/web.dom-exception.constructor.js @@ -3,7 +3,6 @@ var $ = require('../internals/export'); var getBuiltIn = require('../internals/get-built-in'); var getBuiltInNodeModule = require('../internals/get-built-in-node-module'); var fails = require('../internals/fails'); -var create = require('../internals/object-create'); var createPropertyDescriptor = require('../internals/create-property-descriptor'); var defineProperty = require('../internals/object-define-property').f; var defineBuiltIn = require('../internals/define-built-in'); @@ -21,6 +20,7 @@ var IS_PURE = require('../internals/is-pure'); var DOM_EXCEPTION = 'DOMException'; var DATA_CLONE_ERR = 'DATA_CLONE_ERR'; var Error = getBuiltIn('Error'); +var create = Object.create; // NodeJS < 17.0 does not expose `DOMException` to global var NativeDOMException = getBuiltIn(DOM_EXCEPTION) || (function () { try { diff --git a/packages/core-js/modules/web.url-search-params.constructor.js b/packages/core-js/modules/web.url-search-params.constructor.js index bb72bafea91a..c88bd38bf3bc 100644 --- a/packages/core-js/modules/web.url-search-params.constructor.js +++ b/packages/core-js/modules/web.url-search-params.constructor.js @@ -23,7 +23,6 @@ var classof = require('../internals/classof'); var anObject = require('../internals/an-object'); var isObject = require('../internals/is-object'); var $toString = require('../internals/to-string'); -var create = require('../internals/object-create'); var createPropertyDescriptor = require('../internals/create-property-descriptor'); var getIterator = require('../internals/get-iterator'); var getIteratorMethod = require('../internals/get-iterator-method'); @@ -38,6 +37,7 @@ var URL_SEARCH_PARAMS_ITERATOR = URL_SEARCH_PARAMS + 'Iterator'; var setInternalState = InternalStateModule.set; var getInternalParamsState = InternalStateModule.getterFor(URL_SEARCH_PARAMS); var getInternalIteratorState = InternalStateModule.getterFor(URL_SEARCH_PARAMS_ITERATOR); +var create = Object.create; var nativeFetch = safeGetBuiltIn('fetch'); var NativeRequest = safeGetBuiltIn('Request'); diff --git a/tests/compat/tests.js b/tests/compat/tests.js index 7d72e7242f83..d617f73bb498 100644 --- a/tests/compat/tests.js +++ b/tests/compat/tests.js @@ -1006,10 +1006,6 @@ GLOBAL.tests = { alphabet.split('').forEach(function (chr) { B[chr] = chr; }); return Object.assign({}, A)[symbol] === 7 && Object.keys(Object.assign({}, B)).join('') === alphabet; }, - // TODO: Remove from `core-js@4` - 'es.object.create': function () { - return Object.create; - }, 'es.object.define-getter': OBJECT_PROTOTYPE_ACCESSORS_SUPPORT, 'es.object.define-properties': [V8_PROTOTYPE_DEFINE_BUG, function () { return Object.defineProperties; diff --git a/tests/eslint/eslint.config.js b/tests/eslint/eslint.config.js index 2216049d3522..3b34a8619800 100644 --- a/tests/eslint/eslint.config.js +++ b/tests/eslint/eslint.config.js @@ -1451,7 +1451,6 @@ const forbidES5BuiltIns = { 'es/no-array-prototype-some': ERROR, 'es/no-function-prototype-bind': ERROR, 'es/no-json': ERROR, - 'es/no-object-create': ERROR, 'es/no-object-defineproperties': ERROR, 'es/no-object-defineproperty': ERROR, 'es/no-object-freeze': ERROR, From aef812acf542797c305d5357ff383fc4cad3aa59 Mon Sep 17 00:00:00 2001 From: Denis Pushkarev Date: Fri, 6 Oct 2023 11:34:53 +0700 Subject: [PATCH 102/428] use native `Object.getPrototypeOf` without fallbacks in simple cases --- .../internals/array-buffer-view-core.js | 2 +- packages/core-js/internals/array-buffer.js | 4 ++-- .../internals/async-iterator-prototype.js | 2 +- .../internals/correct-prototype-getter.js | 9 -------- packages/core-js/internals/iterator-define.js | 3 ++- packages/core-js/internals/iterators-core.js | 2 +- .../internals/object-get-prototype-of.js | 22 ------------------- packages/core-js/internals/object-to-array.js | 4 ++-- .../modules/es.aggregate-error.constructor.js | 2 +- .../modules/es.iterator.constructor.js | 2 +- .../modules/es.object.get-prototype-of.js | 6 ++--- .../modules/es.object.lookup-getter.js | 3 ++- .../modules/es.object.lookup-setter.js | 3 ++- packages/core-js/modules/es.object.proto.js | 3 +-- .../modules/es.reflect.get-prototype-of.js | 6 ++--- packages/core-js/modules/es.reflect.get.js | 3 ++- packages/core-js/modules/es.reflect.set.js | 3 ++- .../es.suppressed-error.constructor.js | 2 +- .../esnext.async-iterator.constructor.js | 2 +- .../esnext.reflect.get-metadata-keys.js | 2 +- .../modules/esnext.reflect.get-metadata.js | 2 +- .../modules/esnext.reflect.has-metadata.js | 2 +- tests/eslint/eslint.config.js | 1 - tests/helpers/constants.js | 11 ---------- .../unit-global/es.object.get-prototype-of.js | 6 ----- .../es.reflect.get-prototype-of.js | 6 ----- tests/unit-pure/es.object.create.js | 3 ++- tests/unit-pure/es.object.get-prototype-of.js | 6 ----- tests/unit-pure/es.object.group-by.js | 3 ++- tests/unit-pure/es.promise.with-resolvers.js | 3 ++- tests/unit-pure/es.reflect.construct.js | 3 ++- .../unit-pure/es.reflect.get-prototype-of.js | 6 ----- tests/unit-pure/es.reflect.set.js | 3 ++- tests/unit-pure/web.structured-clone.js | 3 ++- .../web.url-search-params.constructor.js | 3 ++- 35 files changed, 45 insertions(+), 101 deletions(-) delete mode 100644 packages/core-js/internals/correct-prototype-getter.js delete mode 100644 packages/core-js/internals/object-get-prototype-of.js diff --git a/packages/core-js/internals/array-buffer-view-core.js b/packages/core-js/internals/array-buffer-view-core.js index 586f85c102a2..df24532b6005 100644 --- a/packages/core-js/internals/array-buffer-view-core.js +++ b/packages/core-js/internals/array-buffer-view-core.js @@ -10,7 +10,6 @@ var createNonEnumerableProperty = require('../internals/create-non-enumerable-pr var defineBuiltIn = require('../internals/define-built-in'); var defineBuiltInAccessor = require('../internals/define-built-in-accessor'); var isPrototypeOf = require('../internals/object-is-prototype-of'); -var getPrototypeOf = require('../internals/object-get-prototype-of'); var setPrototypeOf = require('../internals/object-set-prototype-of'); var wellKnownSymbol = require('../internals/well-known-symbol'); var uid = require('../internals/uid'); @@ -18,6 +17,7 @@ var InternalStateModule = require('../internals/internal-state'); var enforceInternalState = InternalStateModule.enforce; var getInternalState = InternalStateModule.get; +var getPrototypeOf = Object.getPrototypeOf; var Int8Array = globalThis.Int8Array; var Int8ArrayPrototype = Int8Array && Int8Array.prototype; var Uint8ClampedArray = globalThis.Uint8ClampedArray; diff --git a/packages/core-js/internals/array-buffer.js b/packages/core-js/internals/array-buffer.js index 107dc6456bfa..85ddbbc23170 100644 --- a/packages/core-js/internals/array-buffer.js +++ b/packages/core-js/internals/array-buffer.js @@ -13,7 +13,6 @@ var toLength = require('../internals/to-length'); var toIndex = require('../internals/to-index'); var fround = require('../internals/math-fround'); var IEEE754 = require('../internals/ieee754'); -var getPrototypeOf = require('../internals/object-get-prototype-of'); var setPrototypeOf = require('../internals/object-set-prototype-of'); var arrayFill = require('../internals/array-fill'); var arraySlice = require('../internals/array-slice'); @@ -37,9 +36,10 @@ var $ArrayBuffer = NativeArrayBuffer; var ArrayBufferPrototype = $ArrayBuffer && $ArrayBuffer[PROTOTYPE]; var $DataView = globalThis[DATA_VIEW]; var DataViewPrototype = $DataView && $DataView[PROTOTYPE]; -var ObjectPrototype = Object.prototype; var Array = globalThis.Array; var RangeError = globalThis.RangeError; +var ObjectPrototype = Object.prototype; +var getPrototypeOf = Object.getPrototypeOf; var fill = uncurryThis(arrayFill); var reverse = uncurryThis([].reverse); diff --git a/packages/core-js/internals/async-iterator-prototype.js b/packages/core-js/internals/async-iterator-prototype.js index c436128e6dc0..18caebb3852e 100644 --- a/packages/core-js/internals/async-iterator-prototype.js +++ b/packages/core-js/internals/async-iterator-prototype.js @@ -2,7 +2,6 @@ var globalThis = require('../internals/global-this'); var shared = require('../internals/shared-store'); var isCallable = require('../internals/is-callable'); -var getPrototypeOf = require('../internals/object-get-prototype-of'); var defineBuiltIn = require('../internals/define-built-in'); var wellKnownSymbol = require('../internals/well-known-symbol'); var IS_PURE = require('../internals/is-pure'); @@ -10,6 +9,7 @@ var IS_PURE = require('../internals/is-pure'); var USE_FUNCTION_CONSTRUCTOR = 'USE_FUNCTION_CONSTRUCTOR'; var ASYNC_ITERATOR = wellKnownSymbol('asyncIterator'); var AsyncIterator = globalThis.AsyncIterator; +var getPrototypeOf = Object.getPrototypeOf; var PassedAsyncIteratorPrototype = shared.AsyncIteratorPrototype; var AsyncIteratorPrototype, prototype; diff --git a/packages/core-js/internals/correct-prototype-getter.js b/packages/core-js/internals/correct-prototype-getter.js deleted file mode 100644 index e14d4af74fe6..000000000000 --- a/packages/core-js/internals/correct-prototype-getter.js +++ /dev/null @@ -1,9 +0,0 @@ -'use strict'; -var fails = require('../internals/fails'); - -module.exports = !fails(function () { - function F() { /* empty */ } - F.prototype.constructor = null; - // eslint-disable-next-line es/no-object-getprototypeof -- required for testing - return Object.getPrototypeOf(new F()) !== F.prototype; -}); diff --git a/packages/core-js/internals/iterator-define.js b/packages/core-js/internals/iterator-define.js index 8d8aff1f7013..f6744c864cf3 100644 --- a/packages/core-js/internals/iterator-define.js +++ b/packages/core-js/internals/iterator-define.js @@ -5,7 +5,6 @@ var IS_PURE = require('../internals/is-pure'); var FunctionName = require('../internals/function-name'); var isCallable = require('../internals/is-callable'); var createIteratorConstructor = require('../internals/iterator-create-constructor'); -var getPrototypeOf = require('../internals/object-get-prototype-of'); var setPrototypeOf = require('../internals/object-set-prototype-of'); var setToStringTag = require('../internals/set-to-string-tag'); var createNonEnumerableProperty = require('../internals/create-non-enumerable-property'); @@ -23,6 +22,8 @@ var KEYS = 'keys'; var VALUES = 'values'; var ENTRIES = 'entries'; +var getPrototypeOf = Object.getPrototypeOf; + var returnThis = function () { return this; }; module.exports = function (Iterable, NAME, IteratorConstructor, next, DEFAULT, IS_SET, FORCED) { diff --git a/packages/core-js/internals/iterators-core.js b/packages/core-js/internals/iterators-core.js index 861198623e22..8fe61a6a3f68 100644 --- a/packages/core-js/internals/iterators-core.js +++ b/packages/core-js/internals/iterators-core.js @@ -2,12 +2,12 @@ var fails = require('../internals/fails'); var isCallable = require('../internals/is-callable'); var isObject = require('../internals/is-object'); -var getPrototypeOf = require('../internals/object-get-prototype-of'); var defineBuiltIn = require('../internals/define-built-in'); var wellKnownSymbol = require('../internals/well-known-symbol'); var IS_PURE = require('../internals/is-pure'); var create = Object.create; +var getPrototypeOf = Object.getPrototypeOf; var ITERATOR = wellKnownSymbol('iterator'); var BUGGY_SAFARI_ITERATORS = false; diff --git a/packages/core-js/internals/object-get-prototype-of.js b/packages/core-js/internals/object-get-prototype-of.js deleted file mode 100644 index 75201d3aa987..000000000000 --- a/packages/core-js/internals/object-get-prototype-of.js +++ /dev/null @@ -1,22 +0,0 @@ -'use strict'; -var hasOwn = require('../internals/has-own-property'); -var isCallable = require('../internals/is-callable'); -var toObject = require('../internals/to-object'); -var sharedKey = require('../internals/shared-key'); -var CORRECT_PROTOTYPE_GETTER = require('../internals/correct-prototype-getter'); - -var IE_PROTO = sharedKey('IE_PROTO'); -var $Object = Object; -var ObjectPrototype = $Object.prototype; - -// `Object.getPrototypeOf` method -// https://tc39.es/ecma262/#sec-object.getprototypeof -// eslint-disable-next-line es/no-object-getprototypeof -- safe -module.exports = CORRECT_PROTOTYPE_GETTER ? $Object.getPrototypeOf : function (O) { - var object = toObject(O); - if (hasOwn(object, IE_PROTO)) return object[IE_PROTO]; - var constructor = object.constructor; - if (isCallable(constructor) && object instanceof constructor) { - return constructor.prototype; - } return object instanceof $Object ? ObjectPrototype : null; -}; diff --git a/packages/core-js/internals/object-to-array.js b/packages/core-js/internals/object-to-array.js index 8d0f872d0619..605848bb3247 100644 --- a/packages/core-js/internals/object-to-array.js +++ b/packages/core-js/internals/object-to-array.js @@ -1,11 +1,11 @@ 'use strict'; var fails = require('../internals/fails'); var uncurryThis = require('../internals/function-uncurry-this'); -var objectGetPrototypeOf = require('../internals/object-get-prototype-of'); var objectKeys = require('../internals/object-keys'); var toIndexedObject = require('../internals/to-indexed-object'); var $propertyIsEnumerable = require('../internals/object-property-is-enumerable').f; +var getPrototypeOf = Object.getPrototypeOf; var propertyIsEnumerable = uncurryThis($propertyIsEnumerable); var push = uncurryThis([].push); @@ -22,7 +22,7 @@ var createMethod = function (TO_ENTRIES) { return function (it) { var O = toIndexedObject(it); var keys = objectKeys(O); - var IE_WORKAROUND = IE_BUG && objectGetPrototypeOf(O) === null; + var IE_WORKAROUND = IE_BUG && getPrototypeOf(O) === null; var length = keys.length; var i = 0; var result = []; diff --git a/packages/core-js/modules/es.aggregate-error.constructor.js b/packages/core-js/modules/es.aggregate-error.constructor.js index 16a2b158d915..0fede14323ce 100644 --- a/packages/core-js/modules/es.aggregate-error.constructor.js +++ b/packages/core-js/modules/es.aggregate-error.constructor.js @@ -1,7 +1,6 @@ 'use strict'; var $ = require('../internals/export'); var isPrototypeOf = require('../internals/object-is-prototype-of'); -var getPrototypeOf = require('../internals/object-get-prototype-of'); var setPrototypeOf = require('../internals/object-set-prototype-of'); var copyConstructorProperties = require('../internals/copy-constructor-properties'); var createNonEnumerableProperty = require('../internals/create-non-enumerable-property'); @@ -15,6 +14,7 @@ var wellKnownSymbol = require('../internals/well-known-symbol'); var TO_STRING_TAG = wellKnownSymbol('toStringTag'); var $Error = Error; var create = Object.create; +var getPrototypeOf = Object.getPrototypeOf; var push = [].push; var $AggregateError = function AggregateError(errors, message /* , options */) { diff --git a/packages/core-js/modules/es.iterator.constructor.js b/packages/core-js/modules/es.iterator.constructor.js index 8c8cb42430a4..f76da68fc04e 100644 --- a/packages/core-js/modules/es.iterator.constructor.js +++ b/packages/core-js/modules/es.iterator.constructor.js @@ -4,7 +4,6 @@ var globalThis = require('../internals/global-this'); var anInstance = require('../internals/an-instance'); var anObject = require('../internals/an-object'); var isCallable = require('../internals/is-callable'); -var getPrototypeOf = require('../internals/object-get-prototype-of'); var defineBuiltInAccessor = require('../internals/define-built-in-accessor'); var createProperty = require('../internals/create-property'); var fails = require('../internals/fails'); @@ -19,6 +18,7 @@ var TO_STRING_TAG = wellKnownSymbol('toStringTag'); var $TypeError = TypeError; var NativeIterator = globalThis[ITERATOR]; +var getPrototypeOf = Object.getPrototypeOf; // FF56- have non-standard global helper `Iterator` var FORCED = IS_PURE diff --git a/packages/core-js/modules/es.object.get-prototype-of.js b/packages/core-js/modules/es.object.get-prototype-of.js index afb5816f8999..25d311dbc39f 100644 --- a/packages/core-js/modules/es.object.get-prototype-of.js +++ b/packages/core-js/modules/es.object.get-prototype-of.js @@ -2,14 +2,14 @@ var $ = require('../internals/export'); var fails = require('../internals/fails'); var toObject = require('../internals/to-object'); -var nativeGetPrototypeOf = require('../internals/object-get-prototype-of'); -var CORRECT_PROTOTYPE_GETTER = require('../internals/correct-prototype-getter'); + +var nativeGetPrototypeOf = Object.getPrototypeOf; var FAILS_ON_PRIMITIVES = fails(function () { nativeGetPrototypeOf(1); }); // `Object.getPrototypeOf` method // https://tc39.es/ecma262/#sec-object.getprototypeof -$({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES, sham: !CORRECT_PROTOTYPE_GETTER }, { +$({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES }, { getPrototypeOf: function getPrototypeOf(it) { return nativeGetPrototypeOf(toObject(it)); }, diff --git a/packages/core-js/modules/es.object.lookup-getter.js b/packages/core-js/modules/es.object.lookup-getter.js index 46de68066bf3..0181cd264caa 100644 --- a/packages/core-js/modules/es.object.lookup-getter.js +++ b/packages/core-js/modules/es.object.lookup-getter.js @@ -3,9 +3,10 @@ var $ = require('../internals/export'); var FORCED = require('../internals/object-prototype-accessors-forced'); var toObject = require('../internals/to-object'); var toPropertyKey = require('../internals/to-property-key'); -var getPrototypeOf = require('../internals/object-get-prototype-of'); var getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f; +var getPrototypeOf = Object.getPrototypeOf; + // `Object.prototype.__lookupGetter__` method // https://tc39.es/ecma262/#sec-object.prototype.__lookupGetter__ $({ target: 'Object', proto: true, forced: FORCED }, { diff --git a/packages/core-js/modules/es.object.lookup-setter.js b/packages/core-js/modules/es.object.lookup-setter.js index fc38484388ce..8efeef1d65ef 100644 --- a/packages/core-js/modules/es.object.lookup-setter.js +++ b/packages/core-js/modules/es.object.lookup-setter.js @@ -3,9 +3,10 @@ var $ = require('../internals/export'); var FORCED = require('../internals/object-prototype-accessors-forced'); var toObject = require('../internals/to-object'); var toPropertyKey = require('../internals/to-property-key'); -var getPrototypeOf = require('../internals/object-get-prototype-of'); var getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f; +var getPrototypeOf = Object.getPrototypeOf; + // `Object.prototype.__lookupSetter__` method // https://tc39.es/ecma262/#sec-object.prototype.__lookupSetter__ $({ target: 'Object', proto: true, forced: FORCED }, { diff --git a/packages/core-js/modules/es.object.proto.js b/packages/core-js/modules/es.object.proto.js index c595eae34360..79f1dd534e1c 100644 --- a/packages/core-js/modules/es.object.proto.js +++ b/packages/core-js/modules/es.object.proto.js @@ -5,7 +5,6 @@ var isPossiblePrototype = require('../internals/is-possible-prototype'); var toObject = require('../internals/to-object'); var requireObjectCoercible = require('../internals/require-object-coercible'); -// eslint-disable-next-line es/no-object-getprototypeof -- safe var getPrototypeOf = Object.getPrototypeOf; // eslint-disable-next-line es/no-object-setprototypeof -- safe var setPrototypeOf = Object.setPrototypeOf; @@ -14,7 +13,7 @@ var PROTO = '__proto__'; // `Object.prototype.__proto__` accessor // https://tc39.es/ecma262/#sec-object.prototype.__proto__ -if (getPrototypeOf && setPrototypeOf && !(PROTO in ObjectPrototype)) try { +if (setPrototypeOf && !(PROTO in ObjectPrototype)) try { defineBuiltInAccessor(ObjectPrototype, PROTO, { configurable: true, get: function __proto__() { diff --git a/packages/core-js/modules/es.reflect.get-prototype-of.js b/packages/core-js/modules/es.reflect.get-prototype-of.js index f76585658441..3ba31959d74b 100644 --- a/packages/core-js/modules/es.reflect.get-prototype-of.js +++ b/packages/core-js/modules/es.reflect.get-prototype-of.js @@ -1,12 +1,12 @@ 'use strict'; var $ = require('../internals/export'); var anObject = require('../internals/an-object'); -var objectGetPrototypeOf = require('../internals/object-get-prototype-of'); -var CORRECT_PROTOTYPE_GETTER = require('../internals/correct-prototype-getter'); + +var objectGetPrototypeOf = Object.getPrototypeOf; // `Reflect.getPrototypeOf` method // https://tc39.es/ecma262/#sec-reflect.getprototypeof -$({ target: 'Reflect', stat: true, sham: !CORRECT_PROTOTYPE_GETTER }, { +$({ target: 'Reflect', stat: true }, { getPrototypeOf: function getPrototypeOf(target) { return objectGetPrototypeOf(anObject(target)); }, diff --git a/packages/core-js/modules/es.reflect.get.js b/packages/core-js/modules/es.reflect.get.js index d4786d79b97f..0a20285b7ee3 100644 --- a/packages/core-js/modules/es.reflect.get.js +++ b/packages/core-js/modules/es.reflect.get.js @@ -5,7 +5,8 @@ var isObject = require('../internals/is-object'); var anObject = require('../internals/an-object'); var isDataDescriptor = require('../internals/is-data-descriptor'); var getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor'); -var getPrototypeOf = require('../internals/object-get-prototype-of'); + +var getPrototypeOf = Object.getPrototypeOf; // `Reflect.get` method // https://tc39.es/ecma262/#sec-reflect.get diff --git a/packages/core-js/modules/es.reflect.set.js b/packages/core-js/modules/es.reflect.set.js index c71d8fee5ece..627f09b0905a 100644 --- a/packages/core-js/modules/es.reflect.set.js +++ b/packages/core-js/modules/es.reflect.set.js @@ -7,9 +7,10 @@ var isDataDescriptor = require('../internals/is-data-descriptor'); var fails = require('../internals/fails'); var definePropertyModule = require('../internals/object-define-property'); var getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor'); -var getPrototypeOf = require('../internals/object-get-prototype-of'); var createPropertyDescriptor = require('../internals/create-property-descriptor'); +var getPrototypeOf = Object.getPrototypeOf; + // `Reflect.set` method // https://tc39.es/ecma262/#sec-reflect.set function set(target, propertyKey, V /* , receiver */) { diff --git a/packages/core-js/modules/es.suppressed-error.constructor.js b/packages/core-js/modules/es.suppressed-error.constructor.js index 96fb3c3ba267..16af5c3a9fcc 100644 --- a/packages/core-js/modules/es.suppressed-error.constructor.js +++ b/packages/core-js/modules/es.suppressed-error.constructor.js @@ -2,7 +2,6 @@ var $ = require('../internals/export'); var globalThis = require('../internals/global-this'); var isPrototypeOf = require('../internals/object-is-prototype-of'); -var getPrototypeOf = require('../internals/object-get-prototype-of'); var setPrototypeOf = require('../internals/object-set-prototype-of'); var copyConstructorProperties = require('../internals/copy-constructor-properties'); var createNonEnumerableProperty = require('../internals/create-non-enumerable-property'); @@ -17,6 +16,7 @@ var NativeSuppressedError = globalThis.SuppressedError; var TO_STRING_TAG = wellKnownSymbol('toStringTag'); var $Error = Error; var create = Object.create; +var getPrototypeOf = Object.getPrototypeOf; // https://github.com/oven-sh/bun/issues/9282 var WRONG_ARITY = !!NativeSuppressedError && NativeSuppressedError.length !== 3; diff --git a/packages/core-js/modules/esnext.async-iterator.constructor.js b/packages/core-js/modules/esnext.async-iterator.constructor.js index ae20efc70031..7915f3b86f06 100644 --- a/packages/core-js/modules/esnext.async-iterator.constructor.js +++ b/packages/core-js/modules/esnext.async-iterator.constructor.js @@ -1,13 +1,13 @@ 'use strict'; var $ = require('../internals/export'); var anInstance = require('../internals/an-instance'); -var getPrototypeOf = require('../internals/object-get-prototype-of'); var createNonEnumerableProperty = require('../internals/create-non-enumerable-property'); var hasOwn = require('../internals/has-own-property'); var wellKnownSymbol = require('../internals/well-known-symbol'); var AsyncIteratorPrototype = require('../internals/async-iterator-prototype'); var IS_PURE = require('../internals/is-pure'); +var getPrototypeOf = Object.getPrototypeOf; var TO_STRING_TAG = wellKnownSymbol('toStringTag'); var $TypeError = TypeError; diff --git a/packages/core-js/modules/esnext.reflect.get-metadata-keys.js b/packages/core-js/modules/esnext.reflect.get-metadata-keys.js index db0e2a448552..2ea7c7e70a45 100644 --- a/packages/core-js/modules/esnext.reflect.get-metadata-keys.js +++ b/packages/core-js/modules/esnext.reflect.get-metadata-keys.js @@ -4,9 +4,9 @@ var $ = require('../internals/export'); var uncurryThis = require('../internals/function-uncurry-this'); var ReflectMetadataModule = require('../internals/reflect-metadata'); var anObject = require('../internals/an-object'); -var getPrototypeOf = require('../internals/object-get-prototype-of'); var $arrayUniqueBy = require('../internals/array-unique-by'); +var getPrototypeOf = Object.getPrototypeOf; var arrayUniqueBy = uncurryThis($arrayUniqueBy); var concat = uncurryThis([].concat); var ordinaryOwnMetadataKeys = ReflectMetadataModule.keys; diff --git a/packages/core-js/modules/esnext.reflect.get-metadata.js b/packages/core-js/modules/esnext.reflect.get-metadata.js index 6ea65b3f43f7..414726740b12 100644 --- a/packages/core-js/modules/esnext.reflect.get-metadata.js +++ b/packages/core-js/modules/esnext.reflect.get-metadata.js @@ -3,8 +3,8 @@ var $ = require('../internals/export'); var ReflectMetadataModule = require('../internals/reflect-metadata'); var anObject = require('../internals/an-object'); -var getPrototypeOf = require('../internals/object-get-prototype-of'); +var getPrototypeOf = Object.getPrototypeOf; var ordinaryHasOwnMetadata = ReflectMetadataModule.has; var ordinaryGetOwnMetadata = ReflectMetadataModule.get; var toMetadataKey = ReflectMetadataModule.toKey; diff --git a/packages/core-js/modules/esnext.reflect.has-metadata.js b/packages/core-js/modules/esnext.reflect.has-metadata.js index 602759c6d87e..9a3cee33e51d 100644 --- a/packages/core-js/modules/esnext.reflect.has-metadata.js +++ b/packages/core-js/modules/esnext.reflect.has-metadata.js @@ -3,8 +3,8 @@ var $ = require('../internals/export'); var ReflectMetadataModule = require('../internals/reflect-metadata'); var anObject = require('../internals/an-object'); -var getPrototypeOf = require('../internals/object-get-prototype-of'); +var getPrototypeOf = Object.getPrototypeOf; var ordinaryHasOwnMetadata = ReflectMetadataModule.has; var toMetadataKey = ReflectMetadataModule.toKey; diff --git a/tests/eslint/eslint.config.js b/tests/eslint/eslint.config.js index 3b34a8619800..47db1985e0d4 100644 --- a/tests/eslint/eslint.config.js +++ b/tests/eslint/eslint.config.js @@ -1456,7 +1456,6 @@ const forbidES5BuiltIns = { 'es/no-object-freeze': ERROR, 'es/no-object-getownpropertydescriptor': ERROR, 'es/no-object-getownpropertynames': ERROR, - 'es/no-object-getprototypeof': ERROR, 'es/no-object-isextensible': ERROR, 'es/no-object-isfrozen': ERROR, 'es/no-object-issealed': ERROR, diff --git a/tests/helpers/constants.js b/tests/helpers/constants.js index ab305b66a286..ce8b799a37ca 100644 --- a/tests/helpers/constants.js +++ b/tests/helpers/constants.js @@ -73,17 +73,6 @@ export const FREEZING = !function () { } }(); -export const CORRECT_PROTOTYPE_GETTER = !function () { - try { - function F() { /* empty */ } - F.prototype.constructor = null; - // eslint-disable-next-line es/no-object-getprototypeof -- detection - return Object.getPrototypeOf(new F()) !== F.prototype; - } catch { - return true; - } -}(); - // FF < 23 bug export const REDEFINABLE_ARRAY_LENGTH_DESCRIPTOR = !function () { try { diff --git a/tests/unit-global/es.object.get-prototype-of.js b/tests/unit-global/es.object.get-prototype-of.js index 43edc1983227..28f5e0be59c6 100644 --- a/tests/unit-global/es.object.get-prototype-of.js +++ b/tests/unit-global/es.object.get-prototype-of.js @@ -1,5 +1,3 @@ -import { CORRECT_PROTOTYPE_GETTER } from '../helpers/constants.js'; - QUnit.test('Object.getPrototypeOf', assert => { const { create, getPrototypeOf } = Object; assert.isFunction(getPrototypeOf); @@ -29,7 +27,3 @@ QUnit.test('Object.getPrototypeOf', assert => { assert.throws(() => getPrototypeOf(undefined), TypeError, 'throws on undefined'); assert.same(getPrototypeOf('foo'), String.prototype); }); - -QUnit.test('Object.getPrototypeOf.sham flag', assert => { - assert.same(Object.getPrototypeOf.sham, CORRECT_PROTOTYPE_GETTER ? undefined : true); -}); diff --git a/tests/unit-global/es.reflect.get-prototype-of.js b/tests/unit-global/es.reflect.get-prototype-of.js index f5fd23cd3505..32cbab898658 100644 --- a/tests/unit-global/es.reflect.get-prototype-of.js +++ b/tests/unit-global/es.reflect.get-prototype-of.js @@ -1,5 +1,3 @@ -import { CORRECT_PROTOTYPE_GETTER } from '../helpers/constants.js'; - QUnit.test('Reflect.getPrototypeOf', assert => { const { getPrototypeOf } = Reflect; assert.isFunction(getPrototypeOf); @@ -10,7 +8,3 @@ QUnit.test('Reflect.getPrototypeOf', assert => { assert.same(getPrototypeOf([]), Array.prototype); assert.throws(() => getPrototypeOf(42), TypeError, 'throws on primitive'); }); - -QUnit.test('Reflect.getPrototypeOf.sham flag', assert => { - assert.same(Reflect.getPrototypeOf.sham, CORRECT_PROTOTYPE_GETTER ? undefined : true); -}); diff --git a/tests/unit-pure/es.object.create.js b/tests/unit-pure/es.object.create.js index 67858228cb13..350515d009db 100644 --- a/tests/unit-pure/es.object.create.js +++ b/tests/unit-pure/es.object.create.js @@ -1,7 +1,8 @@ -import getPrototypeOf from 'core-js-pure/es/object/get-prototype-of'; import getOwnPropertyNames from 'core-js-pure/es/object/get-own-property-names'; import create from 'core-js-pure/es/object/create'; +const { getPrototypeOf } = Object; + QUnit.test('Object.create', assert => { function getPropertyNames(object) { let result = []; diff --git a/tests/unit-pure/es.object.get-prototype-of.js b/tests/unit-pure/es.object.get-prototype-of.js index 48430b4ee0ee..36ef3d3cf32c 100644 --- a/tests/unit-pure/es.object.get-prototype-of.js +++ b/tests/unit-pure/es.object.get-prototype-of.js @@ -1,5 +1,3 @@ -import { CORRECT_PROTOTYPE_GETTER } from '../helpers/constants.js'; - import create from 'core-js-pure/es/object/create'; import getPrototypeOf from 'core-js-pure/es/object/get-prototype-of'; @@ -28,7 +26,3 @@ QUnit.test('Object.getPrototypeOf', assert => { assert.throws(() => getPrototypeOf(undefined), TypeError, 'throws on undefined'); assert.same(getPrototypeOf('foo'), String.prototype); }); - -QUnit.test('Object.getPrototypeOf.sham flag', assert => { - assert.same(getPrototypeOf.sham, CORRECT_PROTOTYPE_GETTER ? undefined : true); -}); diff --git a/tests/unit-pure/es.object.group-by.js b/tests/unit-pure/es.object.group-by.js index 595d0042e910..8cf7305e6941 100644 --- a/tests/unit-pure/es.object.group-by.js +++ b/tests/unit-pure/es.object.group-by.js @@ -1,9 +1,10 @@ import { createIterable } from '../helpers/helpers.js'; import groupBy from 'core-js-pure/es/object/group-by'; -import getPrototypeOf from 'core-js-pure/es/object/get-prototype-of'; import entries from 'core-js-pure/es/object/entries'; import Symbol from 'core-js-pure/full/symbol'; +const { getPrototypeOf } = Object; + QUnit.test('Object.groupBy', assert => { assert.isFunction(groupBy); assert.arity(groupBy, 2); diff --git a/tests/unit-pure/es.promise.with-resolvers.js b/tests/unit-pure/es.promise.with-resolvers.js index b94fc22cbffe..02e83622275d 100644 --- a/tests/unit-pure/es.promise.with-resolvers.js +++ b/tests/unit-pure/es.promise.with-resolvers.js @@ -1,5 +1,6 @@ import Promise from 'core-js-pure/es/promise'; -import getPrototypeOf from 'core-js-pure/es/object/get-prototype-of'; + +const { getPrototypeOf } = Object; QUnit.test('Promise.withResolvers', assert => { const { withResolvers } = Promise; diff --git a/tests/unit-pure/es.reflect.construct.js b/tests/unit-pure/es.reflect.construct.js index 005e514613e7..38f127b92850 100644 --- a/tests/unit-pure/es.reflect.construct.js +++ b/tests/unit-pure/es.reflect.construct.js @@ -1,5 +1,6 @@ import construct from 'core-js-pure/es/reflect/construct'; -import getPrototypeOf from 'core-js-pure/es/object/get-prototype-of'; + +const { getPrototypeOf } = Object; QUnit.test('Reflect.construct', assert => { assert.isFunction(construct); diff --git a/tests/unit-pure/es.reflect.get-prototype-of.js b/tests/unit-pure/es.reflect.get-prototype-of.js index ddca73ba1a95..e13e4bad548e 100644 --- a/tests/unit-pure/es.reflect.get-prototype-of.js +++ b/tests/unit-pure/es.reflect.get-prototype-of.js @@ -1,5 +1,3 @@ -import { CORRECT_PROTOTYPE_GETTER } from '../helpers/constants.js'; - import getPrototypeOf from 'core-js-pure/es/reflect/get-prototype-of'; QUnit.test('Reflect.getPrototypeOf', assert => { @@ -11,7 +9,3 @@ QUnit.test('Reflect.getPrototypeOf', assert => { assert.same(getPrototypeOf([]), Array.prototype); assert.throws(() => getPrototypeOf(42), TypeError, 'throws on primitive'); }); - -QUnit.test('Reflect.getPrototypeOf.sham flag', assert => { - assert.same(getPrototypeOf.sham, CORRECT_PROTOTYPE_GETTER ? undefined : true); -}); diff --git a/tests/unit-pure/es.reflect.set.js b/tests/unit-pure/es.reflect.set.js index f5fedee80504..1a3c2badb063 100644 --- a/tests/unit-pure/es.reflect.set.js +++ b/tests/unit-pure/es.reflect.set.js @@ -1,9 +1,10 @@ import create from 'core-js-pure/es/object/create'; import defineProperty from 'core-js-pure/es/object/define-property'; import getOwnPropertyDescriptor from 'core-js-pure/es/object/get-own-property-descriptor'; -import getPrototypeOf from 'core-js-pure/es/object/get-prototype-of'; import set from 'core-js-pure/es/reflect/set'; +const { getPrototypeOf } = Object; + QUnit.test('Reflect.set', assert => { assert.isFunction(set); if ('name' in set) { diff --git a/tests/unit-pure/web.structured-clone.js b/tests/unit-pure/web.structured-clone.js index f2c365b04cf7..10c7604cb1b9 100644 --- a/tests/unit-pure/web.structured-clone.js +++ b/tests/unit-pure/web.structured-clone.js @@ -7,7 +7,6 @@ import { bufferToArray, fromSource } from '../helpers/helpers.js'; import structuredClone from 'core-js-pure/stable/structured-clone'; import from from 'core-js-pure/es/array/from'; import assign from 'core-js-pure/es/object/assign'; -import getPrototypeOf from 'core-js-pure/es/object/get-prototype-of'; import keys from 'core-js-pure/es/object/keys'; import Symbol from 'core-js-pure/es/symbol'; import Map from 'core-js-pure/es/map'; @@ -15,6 +14,8 @@ import Set from 'core-js-pure/es/set'; import AggregateError from 'core-js-pure/es/aggregate-error'; import DOMException from 'core-js-pure/stable/dom-exception'; +const { getPrototypeOf } = Object; + QUnit.module('structuredClone', () => { QUnit.test('identity', assert => { assert.isFunction(structuredClone, 'structuredClone is a function'); diff --git a/tests/unit-pure/web.url-search-params.constructor.js b/tests/unit-pure/web.url-search-params.constructor.js index 12505ab41b0c..a3bf4484f230 100644 --- a/tests/unit-pure/web.url-search-params.constructor.js +++ b/tests/unit-pure/web.url-search-params.constructor.js @@ -1,12 +1,13 @@ import { BUN } from '../helpers/constants.js'; import { createIterable } from '../helpers/helpers.js'; -import getPrototypeOf from 'core-js-pure/es/object/get-prototype-of'; import getOwnPropertyDescriptor from 'core-js-pure/es/object/get-own-property-descriptor'; import Symbol from 'core-js-pure/es/symbol'; import URL from 'core-js-pure/stable/url'; import URLSearchParams from 'core-js-pure/stable/url-search-params'; +const { getPrototypeOf } = Object; + QUnit.test('URLSearchParams', assert => { assert.isFunction(URLSearchParams); assert.arity(URLSearchParams, 0); From dbd631fc17cb9c1a6b0fe3eb200f131b87e72474 Mon Sep 17 00:00:00 2001 From: Denis Pushkarev Date: Fri, 6 Oct 2023 23:40:19 +0700 Subject: [PATCH 103/428] consider base `JSON` methods as existent --- packages/core-js/es/json/index.js | 2 +- packages/core-js/es/json/stringify.js | 3 --- packages/core-js/internals/native-raw-json.js | 1 - packages/core-js/modules/es.json.stringify.js | 22 +++++++++---------- .../core-js/modules/es.json.to-string-tag.js | 4 ++-- packages/core-js/modules/esnext.json.parse.js | 3 +-- .../core-js/modules/esnext.json.raw-json.js | 2 +- tests/compat/node-runner.js | 1 - tests/eslint/eslint.config.js | 1 - 9 files changed, 15 insertions(+), 24 deletions(-) diff --git a/packages/core-js/es/json/index.js b/packages/core-js/es/json/index.js index ea69c7f651b9..604e422a750f 100644 --- a/packages/core-js/es/json/index.js +++ b/packages/core-js/es/json/index.js @@ -5,4 +5,4 @@ require('../../modules/es.json.to-string-tag'); var path = require('../../internals/path'); // eslint-disable-next-line es/no-json -- safe -module.exports = path.JSON || (path.JSON = { stringify: JSON.stringify }); +module.exports = path.JSON; diff --git a/packages/core-js/es/json/stringify.js b/packages/core-js/es/json/stringify.js index 068f1ea2c76d..c24a0d1a0d96 100644 --- a/packages/core-js/es/json/stringify.js +++ b/packages/core-js/es/json/stringify.js @@ -4,9 +4,6 @@ require('../../modules/es.json.stringify'); var path = require('../../internals/path'); var apply = require('../../internals/function-apply'); -// eslint-disable-next-line es/no-json -- safe -if (!path.JSON) path.JSON = { stringify: JSON.stringify }; - // eslint-disable-next-line no-unused-vars -- required for `.length` module.exports = function stringify(it, replacer, space) { return apply(path.JSON.stringify, null, arguments); diff --git a/packages/core-js/internals/native-raw-json.js b/packages/core-js/internals/native-raw-json.js index 96b353103eac..f5063e7683db 100644 --- a/packages/core-js/internals/native-raw-json.js +++ b/packages/core-js/internals/native-raw-json.js @@ -1,5 +1,4 @@ 'use strict'; -/* eslint-disable es/no-json -- safe */ var fails = require('../internals/fails'); module.exports = !fails(function () { diff --git a/packages/core-js/modules/es.json.stringify.js b/packages/core-js/modules/es.json.stringify.js index 213e8d84cb40..d72940d2df73 100644 --- a/packages/core-js/modules/es.json.stringify.js +++ b/packages/core-js/modules/es.json.stringify.js @@ -59,15 +59,13 @@ var fixIllFormed = function (match, offset, string) { } return match; }; -if ($stringify) { - // `JSON.stringify` method - // https://tc39.es/ecma262/#sec-json.stringify - $({ target: 'JSON', stat: true, arity: 3, forced: WRONG_SYMBOLS_CONVERSION || ILL_FORMED_UNICODE }, { - // eslint-disable-next-line no-unused-vars -- required for `.length` - stringify: function stringify(it, replacer, space) { - var args = arraySlice(arguments); - var result = apply(WRONG_SYMBOLS_CONVERSION ? stringifyWithSymbolsFix : $stringify, null, args); - return ILL_FORMED_UNICODE && typeof result == 'string' ? replace(result, tester, fixIllFormed) : result; - }, - }); -} +// `JSON.stringify` method +// https://tc39.es/ecma262/#sec-json.stringify +$({ target: 'JSON', stat: true, arity: 3, forced: WRONG_SYMBOLS_CONVERSION || ILL_FORMED_UNICODE }, { + // eslint-disable-next-line no-unused-vars -- required for `.length` + stringify: function stringify(it, replacer, space) { + var args = arraySlice(arguments); + var result = apply(WRONG_SYMBOLS_CONVERSION ? stringifyWithSymbolsFix : $stringify, null, args); + return ILL_FORMED_UNICODE && typeof result == 'string' ? replace(result, tester, fixIllFormed) : result; + }, +}); diff --git a/packages/core-js/modules/es.json.to-string-tag.js b/packages/core-js/modules/es.json.to-string-tag.js index b886b62bf049..95668a2d1c11 100644 --- a/packages/core-js/modules/es.json.to-string-tag.js +++ b/packages/core-js/modules/es.json.to-string-tag.js @@ -1,7 +1,7 @@ 'use strict'; -var globalThis = require('../internals/global-this'); +var path = require('../internals/path'); var setToStringTag = require('../internals/set-to-string-tag'); // JSON[@@toStringTag] property // https://tc39.es/ecma262/#sec-json-@@tostringtag -setToStringTag(globalThis.JSON, 'JSON', true); +setToStringTag(path.JSON, 'JSON', true); diff --git a/packages/core-js/modules/esnext.json.parse.js b/packages/core-js/modules/esnext.json.parse.js index a5f7fa09b990..b8df4dae2993 100644 --- a/packages/core-js/modules/esnext.json.parse.js +++ b/packages/core-js/modules/esnext.json.parse.js @@ -14,10 +14,9 @@ var fails = require('../internals/fails'); var parseJSONString = require('../internals/parse-json-string'); var NATIVE_SYMBOL = require('../internals/symbol-constructor-detection'); -var JSON = globalThis.JSON; var Number = globalThis.Number; var SyntaxError = globalThis.SyntaxError; -var nativeParse = JSON && JSON.parse; +var nativeParse = JSON.parse; var enumerableOwnProperties = getBuiltIn('Object', 'keys'); // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe var getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor; diff --git a/packages/core-js/modules/esnext.json.raw-json.js b/packages/core-js/modules/esnext.json.raw-json.js index cfbc9c044f7d..81db199392a8 100644 --- a/packages/core-js/modules/esnext.json.raw-json.js +++ b/packages/core-js/modules/esnext.json.raw-json.js @@ -53,7 +53,7 @@ $({ target: 'JSON', stat: true, forced: !NATIVE_RAW_JSON }, { // `JSON.stringify` method // https://tc39.es/ecma262/#sec-json.stringify // https://github.com/tc39/proposal-json-parse-with-source -if ($stringify) $({ target: 'JSON', stat: true, arity: 3, forced: !NATIVE_RAW_JSON }, { +$({ target: 'JSON', stat: true, arity: 3, forced: !NATIVE_RAW_JSON }, { stringify: function stringify(text, replacer, space) { var replacerFunction = getReplacerFunction(replacer); var rawStrings = []; diff --git a/tests/compat/node-runner.js b/tests/compat/node-runner.js index 4a5ae2548ce6..c16e5bbcdef8 100644 --- a/tests/compat/node-runner.js +++ b/tests/compat/node-runner.js @@ -5,6 +5,5 @@ require('./compat-data'); require('./common-runner'); if (process.argv.indexOf('json') !== -1) { - // eslint-disable-next-line es/no-json -- safe console.log(JSON.stringify(global.results, null, ' ')); } else global.showResults('node', console.log); diff --git a/tests/eslint/eslint.config.js b/tests/eslint/eslint.config.js index 47db1985e0d4..1caf44bf8a57 100644 --- a/tests/eslint/eslint.config.js +++ b/tests/eslint/eslint.config.js @@ -1450,7 +1450,6 @@ const forbidES5BuiltIns = { 'es/no-array-prototype-reduceright': ERROR, 'es/no-array-prototype-some': ERROR, 'es/no-function-prototype-bind': ERROR, - 'es/no-json': ERROR, 'es/no-object-defineproperties': ERROR, 'es/no-object-defineproperty': ERROR, 'es/no-object-freeze': ERROR, From cdab1cfbb99e615d5f1edac5957b5dc55b0d5979 Mon Sep 17 00:00:00 2001 From: Denis Pushkarev Date: Sat, 7 Oct 2023 00:25:05 +0700 Subject: [PATCH 104/428] drop `es.date.to-string` (required for IE8- only) --- README.md | 6 ++---- packages/core-js-compat/src/data.mjs | 10 ---------- .../override/modules/es.date.to-string.js | 1 - packages/core-js/actual/date/to-string.js | 4 ---- packages/core-js/es/date/index.js | 1 - packages/core-js/es/date/to-string.js | 5 ----- packages/core-js/es/json/index.js | 1 - packages/core-js/full/date/to-string.js | 4 ---- packages/core-js/modules/es.date.to-string.js | 20 ------------------- packages/core-js/stable/date/to-string.js | 4 ---- tests/compat/tests.js | 4 ---- tests/entries/unit.mjs | 1 - 12 files changed, 2 insertions(+), 59 deletions(-) delete mode 100644 packages/core-js-pure/override/modules/es.date.to-string.js delete mode 100644 packages/core-js/actual/date/to-string.js delete mode 100644 packages/core-js/es/date/to-string.js delete mode 100644 packages/core-js/full/date/to-string.js delete mode 100644 packages/core-js/modules/es.date.to-string.js delete mode 100644 packages/core-js/stable/date/to-string.js diff --git a/README.md b/README.md index b47d4ff95f94..061f9af85f1c 100644 --- a/README.md +++ b/README.md @@ -1241,9 +1241,9 @@ Math.sumPrecise([1e20, 0.1, -1e20]); // => 0.1 ``` #### ECMAScript: Date[⬆](#index) -Modules [`es.date.to-string`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.date.to-string.js), ES5 features with fixes: [`es.date.to-iso-string`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.date.to-iso-string.js), [`es.date.to-json`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.date.to-json.js) and [`es.date.to-primitive`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.date.to-primitive.js). +ES5 features with fixes. Modules: [`es.date.to-iso-string`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.date.to-iso-string.js), [`es.date.to-json`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.date.to-json.js) and [`es.date.to-primitive`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.date.to-primitive.js). -Annex B methods. Modules [`es.date.get-year`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.date.get-year.js), [`es.date.set-year`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.date.set-year.js) and [`es.date.to-gmt-string`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.date.to-gmt-string.js). +Annex B methods. Modules: [`es.date.get-year`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.date.get-year.js), [`es.date.set-year`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.date.set-year.js) and [`es.date.to-gmt-string`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.date.to-gmt-string.js). ```ts class Date { getYear(): int; @@ -1251,7 +1251,6 @@ class Date { toGMTString(): string; toISOString(): string; toJSON(): string; - toString(): string; @@toPrimitive(hint: 'default' | 'number' | 'string'): string | number; static now(): number; } @@ -1259,7 +1258,6 @@ class Date { [*CommonJS entry points:*](#commonjs-api) ``` core-js/es|stable|actual|full/date -core-js/es|stable|actual|full/date/to-string core-js(-pure)/es|stable|actual|full/date/now core-js(-pure)/es|stable|actual|full/date/get-year core-js(-pure)/es|stable|actual|full/date/set-year diff --git a/packages/core-js-compat/src/data.mjs b/packages/core-js-compat/src/data.mjs index 26096a608b4b..44366f50b89c 100644 --- a/packages/core-js-compat/src/data.mjs +++ b/packages/core-js-compat/src/data.mjs @@ -587,16 +587,6 @@ export const data = { rhino: '1.8.0', safari: '10.0', }, - // TODO: Remove from `core-js@4` - 'es.date.to-string': { - chrome: '5', - firefox: '2', - hermes: '0.1', - ie: '9', - opera: '10.50', - rhino: '1.7.13', - safari: '3.1', - }, 'es.disposable-stack.constructor': { // reverted in https://issues.chromium.org/issues/42203506#comment25 // disabled again in 135 and re-enabled in 136 diff --git a/packages/core-js-pure/override/modules/es.date.to-string.js b/packages/core-js-pure/override/modules/es.date.to-string.js deleted file mode 100644 index 8b1a393741c9..000000000000 --- a/packages/core-js-pure/override/modules/es.date.to-string.js +++ /dev/null @@ -1 +0,0 @@ -// empty diff --git a/packages/core-js/actual/date/to-string.js b/packages/core-js/actual/date/to-string.js deleted file mode 100644 index e07e11af0178..000000000000 --- a/packages/core-js/actual/date/to-string.js +++ /dev/null @@ -1,4 +0,0 @@ -'use strict'; -var parent = require('../../stable/date/to-string'); - -module.exports = parent; diff --git a/packages/core-js/es/date/index.js b/packages/core-js/es/date/index.js index 08c9cb0b0eaa..d771651a1f8b 100644 --- a/packages/core-js/es/date/index.js +++ b/packages/core-js/es/date/index.js @@ -4,7 +4,6 @@ require('../../modules/es.date.set-year'); require('../../modules/es.date.to-gmt-string'); require('../../modules/es.date.to-iso-string'); require('../../modules/es.date.to-json'); -require('../../modules/es.date.to-string'); require('../../modules/es.date.to-primitive'); var path = require('../../internals/path'); diff --git a/packages/core-js/es/date/to-string.js b/packages/core-js/es/date/to-string.js deleted file mode 100644 index 4dc3ee2bcb32..000000000000 --- a/packages/core-js/es/date/to-string.js +++ /dev/null @@ -1,5 +0,0 @@ -'use strict'; -require('../../modules/es.date.to-string'); -var uncurryThis = require('../../internals/function-uncurry-this'); - -module.exports = uncurryThis(Date.prototype.toString); diff --git a/packages/core-js/es/json/index.js b/packages/core-js/es/json/index.js index 604e422a750f..5102dac754c0 100644 --- a/packages/core-js/es/json/index.js +++ b/packages/core-js/es/json/index.js @@ -4,5 +4,4 @@ require('../../modules/es.json.stringify'); require('../../modules/es.json.to-string-tag'); var path = require('../../internals/path'); -// eslint-disable-next-line es/no-json -- safe module.exports = path.JSON; diff --git a/packages/core-js/full/date/to-string.js b/packages/core-js/full/date/to-string.js deleted file mode 100644 index 15f2903501c1..000000000000 --- a/packages/core-js/full/date/to-string.js +++ /dev/null @@ -1,4 +0,0 @@ -'use strict'; -var parent = require('../../actual/date/to-string'); - -module.exports = parent; diff --git a/packages/core-js/modules/es.date.to-string.js b/packages/core-js/modules/es.date.to-string.js deleted file mode 100644 index 32e0d52ffc8a..000000000000 --- a/packages/core-js/modules/es.date.to-string.js +++ /dev/null @@ -1,20 +0,0 @@ -'use strict'; -// TODO: Remove from `core-js@4` -var uncurryThis = require('../internals/function-uncurry-this'); -var defineBuiltIn = require('../internals/define-built-in'); - -var DatePrototype = Date.prototype; -var INVALID_DATE = 'Invalid Date'; -var TO_STRING = 'toString'; -var nativeDateToString = uncurryThis(DatePrototype[TO_STRING]); -var thisTimeValue = uncurryThis(DatePrototype.getTime); - -// `Date.prototype.toString` method -// https://tc39.es/ecma262/#sec-date.prototype.tostring -if (String(new Date(NaN)) !== INVALID_DATE) { - defineBuiltIn(DatePrototype, TO_STRING, function toString() { - var value = thisTimeValue(this); - // eslint-disable-next-line no-self-compare -- NaN check - return value === value ? nativeDateToString(this) : INVALID_DATE; - }); -} diff --git a/packages/core-js/stable/date/to-string.js b/packages/core-js/stable/date/to-string.js deleted file mode 100644 index 65fcdf6b6d57..000000000000 --- a/packages/core-js/stable/date/to-string.js +++ /dev/null @@ -1,4 +0,0 @@ -'use strict'; -var parent = require('../../es/date/to-string'); - -module.exports = parent; diff --git a/tests/compat/tests.js b/tests/compat/tests.js index d617f73bb498..b8cf7a5eccc2 100644 --- a/tests/compat/tests.js +++ b/tests/compat/tests.js @@ -738,10 +738,6 @@ GLOBAL.tests = { 'es.date.to-primitive': [SYMBOLS_SUPPORT, function () { return Date.prototype[Symbol.toPrimitive]; }], - // TODO: Remove from `core-js@4` - 'es.date.to-string': function () { - return new Date(NaN).toString() === 'Invalid Date'; - }, 'es.disposable-stack.constructor': function () { return typeof DisposableStack == 'function'; }, diff --git a/tests/entries/unit.mjs b/tests/entries/unit.mjs index 4eabba460cbb..18736d024b32 100644 --- a/tests/entries/unit.mjs +++ b/tests/entries/unit.mjs @@ -281,7 +281,6 @@ for (PATH of ['core-js-pure', 'core-js']) { ok(load(NS, 'date/get-year')(date) === date.getFullYear() - 1900); load(NS, 'date/set-year')(date, 1); ok(date.getFullYear() === 1901); - ok(typeof load(NS, 'date/to-string')(date) === 'string'); ok(load(NS, 'date/to-gmt-string')(date) === date.toUTCString()); ok(typeof load(NS, 'date/to-primitive')(new Date(), 'number') === 'number'); ok(typeof load(NS, 'date/to-iso-string')(new Date()) === 'string'); From 09e4e9f845e635a58e53b903a87e234d5af2c7a4 Mon Sep 17 00:00:00 2001 From: Denis Pushkarev Date: Sat, 7 Oct 2023 04:02:31 +0700 Subject: [PATCH 105/428] use native `Object.{ freeze, seal, preventExtensions }` without fallbacks in simple cases --- packages/core-js/actual/json/index.js | 1 - packages/core-js/actual/json/raw-json.js | 1 - packages/core-js/internals/freezing.js | 7 ------- packages/core-js/internals/internal-metadata.js | 3 +-- packages/core-js/internals/object-is-extensible.js | 2 +- packages/core-js/modules/es.object.freeze.js | 6 ++---- packages/core-js/modules/es.object.is-frozen.js | 2 +- packages/core-js/modules/es.object.is-sealed.js | 2 +- packages/core-js/modules/es.object.prevent-extensions.js | 6 ++---- packages/core-js/modules/es.object.seal.js | 6 ++---- .../core-js/modules/es.reflect.prevent-extensions.js | 3 +-- packages/core-js/modules/es.weak-map.constructor.js | 5 +---- packages/core-js/modules/esnext.composite-key.js | 7 +++---- packages/core-js/modules/esnext.json.raw-json.js | 5 ++--- packages/core-js/modules/esnext.string.dedent.js | 6 ++---- tests/eslint/eslint.config.js | 3 --- tests/helpers/constants.js | 9 --------- tests/helpers/qunit-helpers.js | 4 ---- tests/unit-global/es.reflect.prevent-extensions.js | 6 ------ tests/unit-global/es.weak-map.constructor.js | 4 ++-- tests/unit-global/esnext.composite-key.js | 4 +--- tests/unit-global/esnext.json.raw-json.js | 4 +--- tests/unit-pure/es.reflect.prevent-extensions.js | 6 ------ tests/unit-pure/es.weak-map.constructor.js | 4 +--- tests/unit-pure/esnext.composite-key.js | 5 +---- tests/unit-pure/esnext.json.raw-json.js | 3 +-- 26 files changed, 26 insertions(+), 88 deletions(-) delete mode 100644 packages/core-js/internals/freezing.js diff --git a/packages/core-js/actual/json/index.js b/packages/core-js/actual/json/index.js index 4ab6909f12e5..42daa0960c39 100644 --- a/packages/core-js/actual/json/index.js +++ b/packages/core-js/actual/json/index.js @@ -1,6 +1,5 @@ 'use strict'; var parent = require('../../stable/json'); -require('../../modules/es.object.freeze'); require('../../modules/es.object.keys'); require('../../modules/esnext.json.is-raw-json'); require('../../modules/esnext.json.parse'); diff --git a/packages/core-js/actual/json/raw-json.js b/packages/core-js/actual/json/raw-json.js index 08243c136319..2a10968286b5 100644 --- a/packages/core-js/actual/json/raw-json.js +++ b/packages/core-js/actual/json/raw-json.js @@ -1,5 +1,4 @@ 'use strict'; -require('../../modules/es.object.freeze'); require('../../modules/esnext.json.raw-json'); var path = require('../../internals/path'); diff --git a/packages/core-js/internals/freezing.js b/packages/core-js/internals/freezing.js deleted file mode 100644 index 17212adfccca..000000000000 --- a/packages/core-js/internals/freezing.js +++ /dev/null @@ -1,7 +0,0 @@ -'use strict'; -var fails = require('../internals/fails'); - -module.exports = !fails(function () { - // eslint-disable-next-line es/no-object-isextensible, es/no-object-preventextensions -- required for testing - return Object.isExtensible(Object.preventExtensions({})); -}); diff --git a/packages/core-js/internals/internal-metadata.js b/packages/core-js/internals/internal-metadata.js index 08f6398c0bdb..fae21a03a7bb 100644 --- a/packages/core-js/internals/internal-metadata.js +++ b/packages/core-js/internals/internal-metadata.js @@ -9,7 +9,6 @@ var getOwnPropertyNamesModule = require('../internals/object-get-own-property-na var getOwnPropertyNamesExternalModule = require('../internals/object-get-own-property-names-external'); var isExtensible = require('../internals/object-is-extensible'); var uid = require('../internals/uid'); -var FREEZING = require('../internals/freezing'); var REQUIRED = false; var METADATA = uid('meta'); @@ -50,7 +49,7 @@ var getWeakData = function (it, create) { // add metadata on freeze-family methods calling var onFreeze = function (it) { - if (FREEZING && REQUIRED && isExtensible(it) && !hasOwn(it, METADATA)) setMetadata(it); + if (REQUIRED && isExtensible(it) && !hasOwn(it, METADATA)) setMetadata(it); return it; }; diff --git a/packages/core-js/internals/object-is-extensible.js b/packages/core-js/internals/object-is-extensible.js index 1f3d6288e5d3..4a4d03fd71ed 100644 --- a/packages/core-js/internals/object-is-extensible.js +++ b/packages/core-js/internals/object-is-extensible.js @@ -13,5 +13,5 @@ var FAILS_ON_PRIMITIVES = fails(function () { $isExtensible(1); }); module.exports = (FAILS_ON_PRIMITIVES || ARRAY_BUFFER_NON_EXTENSIBLE) ? function isExtensible(it) { if (!isObject(it)) return false; if (ARRAY_BUFFER_NON_EXTENSIBLE && classof(it) === 'ArrayBuffer') return false; - return $isExtensible ? $isExtensible(it) : true; + return $isExtensible(it); } : $isExtensible; diff --git a/packages/core-js/modules/es.object.freeze.js b/packages/core-js/modules/es.object.freeze.js index 8ef4190d8200..722c789fc029 100644 --- a/packages/core-js/modules/es.object.freeze.js +++ b/packages/core-js/modules/es.object.freeze.js @@ -1,18 +1,16 @@ 'use strict'; var $ = require('../internals/export'); -var FREEZING = require('../internals/freezing'); var fails = require('../internals/fails'); var isObject = require('../internals/is-object'); var onFreeze = require('../internals/internal-metadata').onFreeze; -// eslint-disable-next-line es/no-object-freeze -- safe var $freeze = Object.freeze; var FAILS_ON_PRIMITIVES = fails(function () { $freeze(1); }); // `Object.freeze` method // https://tc39.es/ecma262/#sec-object.freeze -$({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES, sham: !FREEZING }, { +$({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES }, { freeze: function freeze(it) { - return $freeze && isObject(it) ? $freeze(onFreeze(it)) : it; + return isObject(it) ? $freeze(onFreeze(it)) : it; }, }); diff --git a/packages/core-js/modules/es.object.is-frozen.js b/packages/core-js/modules/es.object.is-frozen.js index e4f8ba7caaf7..3292b84a602a 100644 --- a/packages/core-js/modules/es.object.is-frozen.js +++ b/packages/core-js/modules/es.object.is-frozen.js @@ -16,6 +16,6 @@ $({ target: 'Object', stat: true, forced: FORCED }, { isFrozen: function isFrozen(it) { if (!isObject(it)) return true; if (ARRAY_BUFFER_NON_EXTENSIBLE && classof(it) === 'ArrayBuffer') return true; - return $isFrozen ? $isFrozen(it) : false; + return $isFrozen(it); }, }); diff --git a/packages/core-js/modules/es.object.is-sealed.js b/packages/core-js/modules/es.object.is-sealed.js index 08fa984d534a..aaba47ca19fc 100644 --- a/packages/core-js/modules/es.object.is-sealed.js +++ b/packages/core-js/modules/es.object.is-sealed.js @@ -16,6 +16,6 @@ $({ target: 'Object', stat: true, forced: FORCED }, { isSealed: function isSealed(it) { if (!isObject(it)) return true; if (ARRAY_BUFFER_NON_EXTENSIBLE && classof(it) === 'ArrayBuffer') return true; - return $isSealed ? $isSealed(it) : false; + return $isSealed(it); }, }); diff --git a/packages/core-js/modules/es.object.prevent-extensions.js b/packages/core-js/modules/es.object.prevent-extensions.js index b50ba95b9a35..424d2a703e7a 100644 --- a/packages/core-js/modules/es.object.prevent-extensions.js +++ b/packages/core-js/modules/es.object.prevent-extensions.js @@ -2,17 +2,15 @@ var $ = require('../internals/export'); var isObject = require('../internals/is-object'); var onFreeze = require('../internals/internal-metadata').onFreeze; -var FREEZING = require('../internals/freezing'); var fails = require('../internals/fails'); -// eslint-disable-next-line es/no-object-preventextensions -- safe var $preventExtensions = Object.preventExtensions; var FAILS_ON_PRIMITIVES = fails(function () { $preventExtensions(1); }); // `Object.preventExtensions` method // https://tc39.es/ecma262/#sec-object.preventextensions -$({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES, sham: !FREEZING }, { +$({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES }, { preventExtensions: function preventExtensions(it) { - return $preventExtensions && isObject(it) ? $preventExtensions(onFreeze(it)) : it; + return isObject(it) ? $preventExtensions(onFreeze(it)) : it; }, }); diff --git a/packages/core-js/modules/es.object.seal.js b/packages/core-js/modules/es.object.seal.js index 6451ed39419d..bab5ea5333d1 100644 --- a/packages/core-js/modules/es.object.seal.js +++ b/packages/core-js/modules/es.object.seal.js @@ -2,17 +2,15 @@ var $ = require('../internals/export'); var isObject = require('../internals/is-object'); var onFreeze = require('../internals/internal-metadata').onFreeze; -var FREEZING = require('../internals/freezing'); var fails = require('../internals/fails'); -// eslint-disable-next-line es/no-object-seal -- safe var $seal = Object.seal; var FAILS_ON_PRIMITIVES = fails(function () { $seal(1); }); // `Object.seal` method // https://tc39.es/ecma262/#sec-object.seal -$({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES, sham: !FREEZING }, { +$({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES }, { seal: function seal(it) { - return $seal && isObject(it) ? $seal(onFreeze(it)) : it; + return isObject(it) ? $seal(onFreeze(it)) : it; }, }); diff --git a/packages/core-js/modules/es.reflect.prevent-extensions.js b/packages/core-js/modules/es.reflect.prevent-extensions.js index f560e79ccc59..8b9e6f858ecb 100644 --- a/packages/core-js/modules/es.reflect.prevent-extensions.js +++ b/packages/core-js/modules/es.reflect.prevent-extensions.js @@ -2,11 +2,10 @@ var $ = require('../internals/export'); var getBuiltIn = require('../internals/get-built-in'); var anObject = require('../internals/an-object'); -var FREEZING = require('../internals/freezing'); // `Reflect.preventExtensions` method // https://tc39.es/ecma262/#sec-reflect.preventextensions -$({ target: 'Reflect', stat: true, sham: !FREEZING }, { +$({ target: 'Reflect', stat: true }, { preventExtensions: function preventExtensions(target) { anObject(target); try { diff --git a/packages/core-js/modules/es.weak-map.constructor.js b/packages/core-js/modules/es.weak-map.constructor.js index 300f70383f67..0e7deb3cfdee 100644 --- a/packages/core-js/modules/es.weak-map.constructor.js +++ b/packages/core-js/modules/es.weak-map.constructor.js @@ -1,5 +1,4 @@ 'use strict'; -var FREEZING = require('../internals/freezing'); var globalThis = require('../internals/global-this'); var uncurryThis = require('../internals/function-uncurry-this'); var defineBuiltIns = require('../internals/define-built-ins'); @@ -19,9 +18,7 @@ var isExtensible = $Object.isExtensible; var isFrozen = $Object.isFrozen; // eslint-disable-next-line es/no-object-issealed -- safe var isSealed = $Object.isSealed; -// eslint-disable-next-line es/no-object-freeze -- safe var freeze = $Object.freeze; -// eslint-disable-next-line es/no-object-seal -- safe var seal = $Object.seal; var IS_IE11 = !globalThis.ActiveXObject && 'ActiveXObject' in globalThis; @@ -41,7 +38,7 @@ var nativeSet = uncurryThis(WeakMapPrototype.set); // Chakra Edge bug: adding frozen arrays to WeakMap unfreeze them var hasMSEdgeFreezingBug = function () { - return FREEZING && fails(function () { + return fails(function () { var frozenArray = freeze([]); nativeSet(new $WeakMap(), frozenArray, 1); return !isFrozen(frozenArray); diff --git a/packages/core-js/modules/esnext.composite-key.js b/packages/core-js/modules/esnext.composite-key.js index 973f2094335d..1696d5f37e41 100644 --- a/packages/core-js/modules/esnext.composite-key.js +++ b/packages/core-js/modules/esnext.composite-key.js @@ -2,14 +2,13 @@ var $ = require('../internals/export'); var apply = require('../internals/function-apply'); var getCompositeKeyNode = require('../internals/composite-key'); -var getBuiltIn = require('../internals/get-built-in'); var $Object = Object; -var create = Object.create; +var create = $Object.create; +var freeze = $Object.freeze; var initializer = function () { - var freeze = getBuiltIn('Object', 'freeze'); - return freeze ? freeze(create(null)) : create(null); + return freeze(create(null)); }; // https://github.com/tc39/proposal-richer-keys/tree/master/compositeKey diff --git a/packages/core-js/modules/esnext.json.raw-json.js b/packages/core-js/modules/esnext.json.raw-json.js index 81db199392a8..5597c875b8e9 100644 --- a/packages/core-js/modules/esnext.json.raw-json.js +++ b/packages/core-js/modules/esnext.json.raw-json.js @@ -1,6 +1,5 @@ 'use strict'; var $ = require('../internals/export'); -var FREEZING = require('../internals/freezing'); var NATIVE_RAW_JSON = require('../internals/native-raw-json'); var getBuiltIn = require('../internals/get-built-in'); var call = require('../internals/function-call'); @@ -19,7 +18,7 @@ var $SyntaxError = SyntaxError; var parse = getBuiltIn('JSON', 'parse'); var $stringify = getBuiltIn('JSON', 'stringify'); var create = Object.create; -var freeze = getBuiltIn('Object', 'freeze'); +var freeze = Object.freeze; var at = uncurryThis(''.charAt); var slice = uncurryThis(''.slice); var push = uncurryThis([].push); @@ -46,7 +45,7 @@ $({ target: 'JSON', stat: true, forced: !NATIVE_RAW_JSON }, { var obj = create(null); setInternalState(obj, { type: 'RawJSON' }); createProperty(obj, 'rawJSON', jsonString); - return FREEZING ? freeze(obj) : obj; + return freeze(obj); }, }); diff --git a/packages/core-js/modules/esnext.string.dedent.js b/packages/core-js/modules/esnext.string.dedent.js index 6738fa232c6d..4d5abbdb8cee 100644 --- a/packages/core-js/modules/esnext.string.dedent.js +++ b/packages/core-js/modules/esnext.string.dedent.js @@ -1,5 +1,4 @@ 'use strict'; -var FREEZING = require('../internals/freezing'); var $ = require('../internals/export'); var makeBuiltIn = require('../internals/make-built-in'); var uncurryThis = require('../internals/function-uncurry-this'); @@ -22,8 +21,7 @@ var weakMapSet = WeakMapHelpers.set; var $Array = Array; var $TypeError = TypeError; -// eslint-disable-next-line es/no-object-freeze -- safe -var freeze = Object.freeze || Object; +var freeze = Object.freeze; // eslint-disable-next-line es/no-object-isfrozen -- safe var isFrozen = Object.isFrozen; var min = Math.min; @@ -42,7 +40,7 @@ var INVALID_CLOSING_LINE = 'Invalid closing line'; var dedentTemplateStringsArray = function (template) { var rawInput = template.raw; // https://github.com/tc39/proposal-string-dedent/issues/75 - if (FREEZING && !isFrozen(rawInput)) throw new $TypeError('Raw template should be frozen'); + if (!isFrozen(rawInput)) throw new $TypeError('Raw template should be frozen'); if (weakMapHas(DedentMap, rawInput)) return weakMapGet(DedentMap, rawInput); var raw = dedentStringsArray(rawInput); var cookedArr = cookStrings(raw); diff --git a/tests/eslint/eslint.config.js b/tests/eslint/eslint.config.js index 1caf44bf8a57..e4a8ba1bd172 100644 --- a/tests/eslint/eslint.config.js +++ b/tests/eslint/eslint.config.js @@ -1452,15 +1452,12 @@ const forbidES5BuiltIns = { 'es/no-function-prototype-bind': ERROR, 'es/no-object-defineproperties': ERROR, 'es/no-object-defineproperty': ERROR, - 'es/no-object-freeze': ERROR, 'es/no-object-getownpropertydescriptor': ERROR, 'es/no-object-getownpropertynames': ERROR, 'es/no-object-isextensible': ERROR, 'es/no-object-isfrozen': ERROR, 'es/no-object-issealed': ERROR, 'es/no-object-keys': ERROR, - 'es/no-object-preventextensions': ERROR, - 'es/no-object-seal': ERROR, 'es/no-string-prototype-trim': ERROR, // prefer `globalThis` over `window`, `self`, and `global` 'unicorn/prefer-global-this': OFF, diff --git a/tests/helpers/constants.js b/tests/helpers/constants.js index ce8b799a37ca..a77c314d3ad3 100644 --- a/tests/helpers/constants.js +++ b/tests/helpers/constants.js @@ -64,15 +64,6 @@ export const STRICT_THIS = (function () { export const STRICT = !STRICT_THIS; -export const FREEZING = !function () { - try { - // eslint-disable-next-line es/no-object-isextensible, es/no-object-preventextensions -- detection - return Object.isExtensible(Object.preventExtensions({})); - } catch { - return true; - } -}(); - // FF < 23 bug export const REDEFINABLE_ARRAY_LENGTH_DESCRIPTOR = !function () { try { diff --git a/tests/helpers/qunit-helpers.js b/tests/helpers/qunit-helpers.js index 6f4c43e986b4..8b2cce115e1d 100644 --- a/tests/helpers/qunit-helpers.js +++ b/tests/helpers/qunit-helpers.js @@ -3,10 +3,6 @@ import isIterable from 'core-js-pure/es/is-iterable'; import ASYNC_ITERATOR from 'core-js-pure/es/symbol/async-iterator'; import { is, arrayFromArrayLike } from './helpers.js'; -// for Babel template transform -// eslint-disable-next-line es/no-object-freeze -- safe -if (!Object.freeze) Object.freeze = Object; - // eslint-disable-next-line es/no-object-getownpropertydescriptor, es/no-object-getownpropertynames -- safe const { getOwnPropertyDescriptor, getOwnPropertyNames } = Object; const { toString, propertyIsEnumerable } = Object.prototype; diff --git a/tests/unit-global/es.reflect.prevent-extensions.js b/tests/unit-global/es.reflect.prevent-extensions.js index f209bfed61ef..ff7bb175620c 100644 --- a/tests/unit-global/es.reflect.prevent-extensions.js +++ b/tests/unit-global/es.reflect.prevent-extensions.js @@ -1,5 +1,3 @@ -import { FREEZING } from '../helpers/constants.js'; - QUnit.test('Reflect.preventExtensions', assert => { const { preventExtensions } = Reflect; const { isExtensible } = Object; @@ -13,7 +11,3 @@ QUnit.test('Reflect.preventExtensions', assert => { assert.false(isExtensible(object)); assert.throws(() => preventExtensions(42), TypeError, 'throws on primitive'); }); - -QUnit.test('Reflect.preventExtensions.sham flag', assert => { - assert.same(Reflect.preventExtensions.sham, FREEZING ? undefined : true); -}); diff --git a/tests/unit-global/es.weak-map.constructor.js b/tests/unit-global/es.weak-map.constructor.js index 0dcf79fcdd4b..0e9d55c85c38 100644 --- a/tests/unit-global/es.weak-map.constructor.js +++ b/tests/unit-global/es.weak-map.constructor.js @@ -1,4 +1,4 @@ -import { FREEZING, GLOBAL, NATIVE } from '../helpers/constants.js'; +import { GLOBAL, NATIVE } from '../helpers/constants.js'; import { createIterable, nativeSubclass } from '../helpers/helpers.js'; const Symbol = GLOBAL.Symbol || {}; @@ -167,7 +167,7 @@ QUnit.test('WeakMap#set', assert => { const array = freeze([]); weakmap.set(array, 42); assert.same(weakmap.get(array), 42, 'works with frozen arrays #1'); - if (FREEZING) assert.true(isFrozen(array), 'works with frozen arrays #2'); + assert.true(isFrozen(array), 'works with frozen arrays #2'); }); QUnit.test('WeakMap#@@toStringTag', assert => { diff --git a/tests/unit-global/esnext.composite-key.js b/tests/unit-global/esnext.composite-key.js index b6eb154ca3a2..8f0ffa78b6df 100644 --- a/tests/unit-global/esnext.composite-key.js +++ b/tests/unit-global/esnext.composite-key.js @@ -1,6 +1,4 @@ -import { FREEZING } from '../helpers/constants.js'; - const { getPrototypeOf, isFrozen } = Object; QUnit.test('compositeKey', assert => { @@ -12,7 +10,7 @@ QUnit.test('compositeKey', assert => { assert.same(typeof key, 'object'); assert.same({}.toString.call(key), '[object Object]'); assert.same(getPrototypeOf(key), null); - if (FREEZING) assert.true(isFrozen(key)); + assert.true(isFrozen(key)); const a = ['a']; const b = ['b']; diff --git a/tests/unit-global/esnext.json.raw-json.js b/tests/unit-global/esnext.json.raw-json.js index f7b261805c62..f91e768e816a 100644 --- a/tests/unit-global/esnext.json.raw-json.js +++ b/tests/unit-global/esnext.json.raw-json.js @@ -1,5 +1,3 @@ -import { FREEZING } from '../helpers/constants.js'; - QUnit.test('JSON.rawJSON', assert => { const { rawJSON, stringify } = JSON; const { isFrozen, hasOwn } = Object; @@ -12,7 +10,7 @@ QUnit.test('JSON.rawJSON', assert => { const raw = rawJSON(1); assert.true(hasOwn(raw, 'rawJSON'), 'own rawJSON'); assert.same(raw.rawJSON, '1', 'is string 1'); - if (FREEZING) assert.true(isFrozen(raw), 'frozen'); + assert.true(isFrozen(raw), 'frozen'); assert.same(stringify(rawJSON('"qwe"')), '"qwe"'); assert.same(stringify(rawJSON('null')), 'null'); diff --git a/tests/unit-pure/es.reflect.prevent-extensions.js b/tests/unit-pure/es.reflect.prevent-extensions.js index 00471ce25327..33c5b0065085 100644 --- a/tests/unit-pure/es.reflect.prevent-extensions.js +++ b/tests/unit-pure/es.reflect.prevent-extensions.js @@ -1,5 +1,3 @@ -import { FREEZING } from '../helpers/constants.js'; - import preventExtensions from 'core-js-pure/es/reflect/prevent-extensions'; import isExtensible from 'core-js-pure/es/object/is-extensible'; @@ -14,7 +12,3 @@ QUnit.test('Reflect.preventExtensions', assert => { assert.false(isExtensible(object)); assert.throws(() => preventExtensions(42), TypeError, 'throws on primitive'); }); - -QUnit.test('Reflect.preventExtensions.sham flag', assert => { - assert.same(preventExtensions.sham, FREEZING ? undefined : true); -}); diff --git a/tests/unit-pure/es.weak-map.constructor.js b/tests/unit-pure/es.weak-map.constructor.js index ee7c6da10360..28f6fb631b7e 100644 --- a/tests/unit-pure/es.weak-map.constructor.js +++ b/tests/unit-pure/es.weak-map.constructor.js @@ -1,6 +1,4 @@ import { createIterable, nativeSubclass } from '../helpers/helpers.js'; -import { FREEZING } from '../helpers/constants.js'; - import getIteratorMethod from 'core-js-pure/es/get-iterator-method'; import freeze from 'core-js-pure/es/object/freeze'; import isFrozen from 'core-js-pure/es/object/is-frozen'; @@ -156,7 +154,7 @@ QUnit.test('WeakMap#set', assert => { const array = freeze([]); weakmap.set(array, 42); assert.same(weakmap.get(array), 42, 'works with frozen arrays #1'); - if (FREEZING) assert.true(isFrozen(array), 'works with frozen arrays #2'); + assert.true(isFrozen(array), 'works with frozen arrays #2'); }); QUnit.test('WeakMap#@@toStringTag', assert => { diff --git a/tests/unit-pure/esnext.composite-key.js b/tests/unit-pure/esnext.composite-key.js index c79fa1ebd9ea..cd73a4dfa1de 100644 --- a/tests/unit-pure/esnext.composite-key.js +++ b/tests/unit-pure/esnext.composite-key.js @@ -1,6 +1,3 @@ - -import { FREEZING } from '../helpers/constants.js'; - import { getPrototypeOf, isFrozen } from 'core-js-pure/es/object'; import compositeKey from 'core-js-pure/full/composite-key'; @@ -12,7 +9,7 @@ QUnit.test('compositeKey', assert => { assert.same(typeof key, 'object'); assert.same({}.toString.call(key), '[object Object]'); assert.same(getPrototypeOf(key), null); - if (FREEZING) assert.true(isFrozen(key)); + assert.true(isFrozen(key)); const a = ['a']; const b = ['b']; diff --git a/tests/unit-pure/esnext.json.raw-json.js b/tests/unit-pure/esnext.json.raw-json.js index fded7db96f9f..440bd09170d3 100644 --- a/tests/unit-pure/esnext.json.raw-json.js +++ b/tests/unit-pure/esnext.json.raw-json.js @@ -1,4 +1,3 @@ -import { FREEZING } from '../helpers/constants.js'; import rawJSON from 'core-js-pure/actual/json/raw-json'; import stringify from 'core-js-pure/actual/json/stringify'; import isFrozen from 'core-js-pure/es/object/is-frozen'; @@ -12,7 +11,7 @@ QUnit.test('JSON.rawJSON', assert => { const raw = rawJSON(1); assert.true(hasOwn(raw, 'rawJSON'), 'own rawJSON'); assert.same(raw.rawJSON, '1', 'is string 1'); - if (FREEZING) assert.true(isFrozen(raw), 'frozen'); + assert.true(isFrozen(raw), 'frozen'); assert.same(stringify(rawJSON('"qwe"')), '"qwe"'); assert.same(stringify(rawJSON('null')), 'null'); From 6c39598232a2e7b2dc865a648b0ecd71fce93d86 Mon Sep 17 00:00:00 2001 From: Denis Pushkarev Date: Sat, 7 Oct 2023 06:50:46 +0700 Subject: [PATCH 106/428] make `core-js` entry an equal of `core-js/actual` --- packages/core-js-compat/compat.js | 4 +++- packages/core-js/index.js | 2 +- scripts/bundle-package/bundle-package.mjs | 2 +- tests/entries/content.mjs | 2 +- tests/unit-node/runner.mjs | 4 ++-- 5 files changed, 8 insertions(+), 6 deletions(-) diff --git a/packages/core-js-compat/compat.js b/packages/core-js-compat/compat.js index d325e28c24e7..cea932d8f454 100644 --- a/packages/core-js-compat/compat.js +++ b/packages/core-js-compat/compat.js @@ -6,6 +6,8 @@ const getModulesListForTargetVersion = require('./get-modules-list-for-target-ve const allModules = require('./modules'); const targetsParser = require('./targets-parser'); +const actualModules = entries['core-js/actual']; + function throwInvalidFilter(filter) { throw new TypeError(`Specified invalid module name or pattern: ${ filter }`); } @@ -69,7 +71,7 @@ module.exports = function ({ exclude = normalizeModules(exclude); - modules = modules ? [...normalizeModules(modules)] : allModules; + modules = modules ? [...normalizeModules(modules)] : actualModules; if (exclude.size) modules = modules.filter(it => !exclude.has(it)); diff --git a/packages/core-js/index.js b/packages/core-js/index.js index b4eca7ef2da5..e11bfe7355dc 100644 --- a/packages/core-js/index.js +++ b/packages/core-js/index.js @@ -1,2 +1,2 @@ 'use strict'; -module.exports = require('./full'); +module.exports = require('./actual'); diff --git a/scripts/bundle-package/bundle-package.mjs b/scripts/bundle-package/bundle-package.mjs index cc5174baf027..444418e6edb5 100644 --- a/scripts/bundle-package/bundle-package.mjs +++ b/scripts/bundle-package/bundle-package.mjs @@ -15,7 +15,7 @@ function log(kind, name, code) { } async function bundle({ bundled, minified, options = {} }) { - const source = await builder(options); + const source = await builder({ modules: 'core-js/full', ...options }); log('bundling', bundled, source); await fs.writeFile(`${ PATH }${ bundled }.js`, source); diff --git a/tests/entries/content.mjs b/tests/entries/content.mjs index 51c8ed0ecd47..c5a0b6aa5a54 100644 --- a/tests/entries/content.mjs +++ b/tests/entries/content.mjs @@ -30,7 +30,7 @@ function subset(name, required) { } } -equal('core-js', allModules); +superset('core-js/actual', /^(?:es|web)\./); equal('core-js/es', /^es\./); superset('core-js/es/array', /^es\.array\./); superset('core-js/es/array-buffer', /^es\.array-buffer\./); diff --git a/tests/unit-node/runner.mjs b/tests/unit-node/runner.mjs index e3f50a52ff86..9eb8a8079e6d 100644 --- a/tests/unit-node/runner.mjs +++ b/tests/unit-node/runner.mjs @@ -1,5 +1,5 @@ await Promise.all([ - ['packages/core-js/index', 'tests/bundles/unit-global'], - ['packages/core-js/index', 'packages/core-js-bundle/index', 'tests/bundles/unit-global'], + ['packages/core-js/full/index', 'tests/bundles/unit-global'], + ['packages/core-js/full/index', 'packages/core-js-bundle/index', 'tests/bundles/unit-global'], ['tests/bundles/unit-pure'], ].map(files => $`qunit ${ files.map(file => `${ file }.js`) }`)); From bfd3d06a44edd18b71e96f8c94ebf23aa26a814a Mon Sep 17 00:00:00 2001 From: Denis Pushkarev Date: Sat, 7 Oct 2023 07:04:35 +0700 Subject: [PATCH 107/428] drop deprecated `@core-js/{ compat, builder }` options --- packages/core-js-builder/index.js | 3 +-- packages/core-js-compat/compat.d.ts | 4 ---- packages/core-js-compat/compat.js | 2 -- 3 files changed, 1 insertion(+), 8 deletions(-) diff --git a/packages/core-js-builder/index.js b/packages/core-js-builder/index.js index e5f8dcb053e2..19a8e7fb6599 100644 --- a/packages/core-js-builder/index.js +++ b/packages/core-js-builder/index.js @@ -26,7 +26,6 @@ function normalizeSummary(unit = {}) { module.exports = async function ({ modules = null, - blacklist = null, // TODO: Obsolete, remove from `core-js@4` exclude = [], targets = null, format = 'bundle', @@ -40,7 +39,7 @@ module.exports = async function ({ let script = banner; let code = '\n'; - const { list, targets: compatTargets } = compat({ targets, modules, exclude: exclude || blacklist }); + const { list, targets: compatTargets } = compat({ targets, modules, exclude }); if (list.length) { if (format === 'bundle') { diff --git a/packages/core-js-compat/compat.d.ts b/packages/core-js-compat/compat.d.ts index 61c3912af81a..f362759ea1eb 100644 --- a/packages/core-js-compat/compat.d.ts +++ b/packages/core-js-compat/compat.d.ts @@ -26,10 +26,6 @@ type CompatOptions = { version?: string, /** inverse of the result, shows modules that are NOT required for the target environment */ inverse?: boolean, - /** - * @deprecated use `modules` instead - */ - filter?: Modules }; type CompatOutput = { diff --git a/packages/core-js-compat/compat.js b/packages/core-js-compat/compat.js index cea932d8f454..deb61d2afc51 100644 --- a/packages/core-js-compat/compat.js +++ b/packages/core-js-compat/compat.js @@ -52,14 +52,12 @@ function checkModule(name, targets) { } module.exports = function ({ - filter = null, // TODO: Obsolete, remove from `core-js@4` modules = null, exclude = [], targets = null, version = null, inverse = false, } = {}) { - if (modules === null || modules === undefined) modules = filter; inverse = !!inverse; const parsedTargets = targets ? targetsParser(targets) : null; From 93511bc59518d1ac283af54f9e5a809b80f85da0 Mon Sep 17 00:00:00 2001 From: Denis Pushkarev Date: Sat, 7 Oct 2023 07:23:21 +0700 Subject: [PATCH 108/428] drop non-standard `Symbol.{ useSetter, useSimple }` methods control of `Symbol` polyfill --- README.md | 29 ++++--------------- .../core-js/modules/es.symbol.constructor.js | 5 ---- 2 files changed, 6 insertions(+), 28 deletions(-) diff --git a/README.md b/README.md index 061f9af85f1c..985975dcf8a9 100644 --- a/README.md +++ b/README.md @@ -1480,8 +1480,6 @@ class Symbol { static unscopables: @@unscopables; static for(key: string): symbol; static keyFor(sym: symbol): string; - static useSimple(): void; - static useSetter(): void; } class Object { @@ -1565,28 +1563,13 @@ Symbol('foo').description; // => 'foo' // eslint-disable-next-line symbol-description -- example Symbol().description; // => undefined ``` -##### Caveats when using `Symbol` polyfill:[⬆](#index) -- We can't add a new primitive type, `Symbol` returns an object. -- `Symbol.for` and `Symbol.keyFor` can't be polyfilled cross-realm. -- By default, to hide the keys, `Symbol` polyfill defines a setter in `Object.prototype`. For this reason, an uncontrolled creation of symbols can cause a memory leak and the `in` operator is not working correctly with `Symbol` polyfill: `Symbol() in {} // => true`. - -You can disable defining setters in `Object.prototype`. [Example](https://tinyurl.com/2blse6aa): -```js -Symbol.useSimple(); -let symbol1 = Symbol('symbol1'); -let object1 = {}; -object1[symbol1] = true; -for (let key in object1) console.log(key); // => 'Symbol(symbol1)_t.qamkg9f3q', w/o native Symbol - -Symbol.useSetter(); -let symbol2 = Symbol('symbol2'); -let object2 = {}; -object2[symbol2] = true; -for (let key in object2) console.log(key); // nothing -``` -- Currently, `core-js` does not add setters to `Object.prototype` for well-known symbols for correct work something like `Symbol.iterator in foo`. It can cause problems with their enumerability. -- Some problems are possible with environment exotic objects (for example, IE `localStorage`). +> [!WARNING] +> - We can't add a new primitive type, `Symbol` returns an object. +> - `Symbol.for` and `Symbol.keyFor` can't be polyfilled cross-realm. +> - `Symbol` polyfill defines setter in `Object.prototype`. For this reason, uncontrolled creation of symbols can cause memory leak and the `in` operator is not working correctly with `Symbol` polyfill: `Symbol() in {} // => true`. +> - `core-js` does not add setters to `Object.prototype` for well-known symbols for correct work something like `Symbol.iterator in foo`. It can cause problems with their enumerability. +> - Some problems are possible with environment exotic objects (for example, IE `localStorage`). #### ECMAScript: Collections[⬆](#index) `core-js` uses native collections in most cases, just fixes methods / constructor, if it's required, and in the old environment uses fast polyfill (O(1) lookup). diff --git a/packages/core-js/modules/es.symbol.constructor.js b/packages/core-js/modules/es.symbol.constructor.js index b9aee920dd75..f3570f5f0607 100644 --- a/packages/core-js/modules/es.symbol.constructor.js +++ b/packages/core-js/modules/es.symbol.constructor.js @@ -222,11 +222,6 @@ $forEach(objectKeys(WellKnownSymbolsStore), function (name) { defineWellKnownSymbol(name); }); -$({ target: SYMBOL, stat: true, forced: !NATIVE_SYMBOL }, { - useSetter: function () { USE_SETTER = true; }, - useSimple: function () { USE_SETTER = false; }, -}); - $({ target: 'Object', stat: true, forced: !NATIVE_SYMBOL }, { // `Object.create` method // https://tc39.es/ecma262/#sec-object.create From db2ea34afd1988ff05fdb405f3ac535016db7fdd Mon Sep 17 00:00:00 2001 From: Denis Pushkarev Date: Sat, 7 Oct 2023 11:03:44 +0700 Subject: [PATCH 109/428] drop `es.function.bind` (required for IE8- only) --- README.md | 7 +--- packages/core-js-compat/src/data.mjs | 9 ----- packages/core-js/actual/function/bind.js | 4 --- .../core-js/actual/function/virtual/bind.js | 4 --- packages/core-js/actual/instance/bind.js | 4 --- packages/core-js/es/function/bind.js | 5 --- packages/core-js/es/function/index.js | 1 - packages/core-js/es/function/virtual/bind.js | 5 --- packages/core-js/es/instance/bind.js | 10 ------ packages/core-js/full/function/bind.js | 4 --- .../core-js/full/function/virtual/bind.js | 4 --- packages/core-js/full/instance/bind.js | 4 --- packages/core-js/internals/function-apply.js | 12 ++----- .../internals/function-bind-context.js | 9 ++--- .../core-js/internals/function-bind-native.js | 9 ----- packages/core-js/internals/function-bind.js | 34 +------------------ packages/core-js/internals/function-call.js | 8 ++--- .../internals/function-uncurry-this.js | 13 ++----- packages/core-js/internals/microtask.js | 5 ++- packages/core-js/internals/task.js | 2 +- packages/core-js/modules/es.function.bind.js | 11 ------ .../core-js/modules/es.reflect.construct.js | 4 +-- packages/core-js/stable/function/bind.js | 4 --- .../core-js/stable/function/virtual/bind.js | 4 --- packages/core-js/stable/instance/bind.js | 4 --- tests/compat/tests.js | 5 --- tests/entries/unit.mjs | 12 ------- tests/eslint/eslint.config.js | 1 - tests/unit-pure/es.function.bind.js | 26 -------------- tests/unit-pure/es.promise.all-settled.js | 5 ++- tests/unit-pure/es.promise.all.js | 5 ++- tests/unit-pure/es.promise.any.js | 5 ++- tests/unit-pure/es.promise.race.js | 5 ++- tests/unit-pure/es.promise.try.js | 5 ++- 34 files changed, 26 insertions(+), 223 deletions(-) delete mode 100644 packages/core-js/actual/function/bind.js delete mode 100644 packages/core-js/actual/function/virtual/bind.js delete mode 100644 packages/core-js/actual/instance/bind.js delete mode 100644 packages/core-js/es/function/bind.js delete mode 100644 packages/core-js/es/function/virtual/bind.js delete mode 100644 packages/core-js/es/instance/bind.js delete mode 100644 packages/core-js/full/function/bind.js delete mode 100644 packages/core-js/full/function/virtual/bind.js delete mode 100644 packages/core-js/full/instance/bind.js delete mode 100644 packages/core-js/internals/function-bind-native.js delete mode 100644 packages/core-js/modules/es.function.bind.js delete mode 100644 packages/core-js/stable/function/bind.js delete mode 100644 packages/core-js/stable/function/virtual/bind.js delete mode 100644 packages/core-js/stable/instance/bind.js delete mode 100644 tests/unit-pure/es.function.bind.js diff --git a/README.md b/README.md index 985975dcf8a9..531496604367 100644 --- a/README.md +++ b/README.md @@ -609,11 +609,10 @@ Object.groupBy([1, 2, 3, 4, 5], it => it % 2); // => { 1: [1, 3, 5], 0: [2, 4] } ``` #### ECMAScript: Function[⬆](#index) -Modules [`es.function.name`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.function.name.js), [`es.function.has-instance`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.function.has-instance.js). Just ES5: [`es.function.bind`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.function.bind.js). +Modules [`es.function.name`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.function.name.js), [`es.function.has-instance`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.function.has-instance.js). ```ts class Function { name: string; - bind(thisArg: any, ...args: Array): Function; @@hasInstance(value: any): boolean; } ``` @@ -622,14 +621,10 @@ class Function { core-js/es|stable|actual|full/function core-js/es|stable|actual|full/function/name core-js/es|stable|actual|full/function/has-instance -core-js(-pure)/es|stable|actual|full/function/bind -core-js(-pure)/es|stable|actual|full/function/virtual/bind ``` [*Example*](https://tinyurl.com/22na9nbm): ```js (function foo() { /* empty */ }).name; // => 'foo' - -console.log.bind(console, 42)(43); // => 42 43 ``` #### ECMAScript: Error[⬆](#index) diff --git a/packages/core-js-compat/src/data.mjs b/packages/core-js-compat/src/data.mjs index 44366f50b89c..7f91f461b713 100644 --- a/packages/core-js-compat/src/data.mjs +++ b/packages/core-js-compat/src/data.mjs @@ -603,15 +603,6 @@ export const data = { rhino: '1.7.13', safari: '1', }, - 'es.function.bind': { - chrome: '7', - firefox: '4', - hermes: '0.1', - ie: '9', - opera: '12', - rhino: '1.7.13', - safari: '5.1', - }, 'es.function.has-instance': { chrome: '51', edge: '15', diff --git a/packages/core-js/actual/function/bind.js b/packages/core-js/actual/function/bind.js deleted file mode 100644 index 510ca612c4aa..000000000000 --- a/packages/core-js/actual/function/bind.js +++ /dev/null @@ -1,4 +0,0 @@ -'use strict'; -var parent = require('../../stable/function/bind'); - -module.exports = parent; diff --git a/packages/core-js/actual/function/virtual/bind.js b/packages/core-js/actual/function/virtual/bind.js deleted file mode 100644 index 03e8ccca4e01..000000000000 --- a/packages/core-js/actual/function/virtual/bind.js +++ /dev/null @@ -1,4 +0,0 @@ -'use strict'; -var parent = require('../../../stable/function/virtual/bind'); - -module.exports = parent; diff --git a/packages/core-js/actual/instance/bind.js b/packages/core-js/actual/instance/bind.js deleted file mode 100644 index dbc4848dc480..000000000000 --- a/packages/core-js/actual/instance/bind.js +++ /dev/null @@ -1,4 +0,0 @@ -'use strict'; -var parent = require('../../stable/instance/bind'); - -module.exports = parent; diff --git a/packages/core-js/es/function/bind.js b/packages/core-js/es/function/bind.js deleted file mode 100644 index 4b35a80eb951..000000000000 --- a/packages/core-js/es/function/bind.js +++ /dev/null @@ -1,5 +0,0 @@ -'use strict'; -require('../../modules/es.function.bind'); -var entryUnbind = require('../../internals/entry-unbind'); - -module.exports = entryUnbind('Function', 'bind'); diff --git a/packages/core-js/es/function/index.js b/packages/core-js/es/function/index.js index c58835fae177..24d926c48ff7 100644 --- a/packages/core-js/es/function/index.js +++ b/packages/core-js/es/function/index.js @@ -1,5 +1,4 @@ 'use strict'; -require('../../modules/es.function.bind'); require('../../modules/es.function.name'); require('../../modules/es.function.has-instance'); var path = require('../../internals/path'); diff --git a/packages/core-js/es/function/virtual/bind.js b/packages/core-js/es/function/virtual/bind.js deleted file mode 100644 index 46bf50228c82..000000000000 --- a/packages/core-js/es/function/virtual/bind.js +++ /dev/null @@ -1,5 +0,0 @@ -'use strict'; -require('../../../modules/es.function.bind'); -var getBuiltInPrototypeMethod = require('../../../internals/get-built-in-prototype-method'); - -module.exports = getBuiltInPrototypeMethod('Function', 'bind'); diff --git a/packages/core-js/es/instance/bind.js b/packages/core-js/es/instance/bind.js deleted file mode 100644 index e8fb66fc91db..000000000000 --- a/packages/core-js/es/instance/bind.js +++ /dev/null @@ -1,10 +0,0 @@ -'use strict'; -var isPrototypeOf = require('../../internals/object-is-prototype-of'); -var method = require('../function/virtual/bind'); - -var FunctionPrototype = Function.prototype; - -module.exports = function (it) { - var own = it.bind; - return it === FunctionPrototype || (isPrototypeOf(FunctionPrototype, it) && own === FunctionPrototype.bind) ? method : own; -}; diff --git a/packages/core-js/full/function/bind.js b/packages/core-js/full/function/bind.js deleted file mode 100644 index 33687e0c3892..000000000000 --- a/packages/core-js/full/function/bind.js +++ /dev/null @@ -1,4 +0,0 @@ -'use strict'; -var parent = require('../../actual/function/bind'); - -module.exports = parent; diff --git a/packages/core-js/full/function/virtual/bind.js b/packages/core-js/full/function/virtual/bind.js deleted file mode 100644 index 2262d5f9b09d..000000000000 --- a/packages/core-js/full/function/virtual/bind.js +++ /dev/null @@ -1,4 +0,0 @@ -'use strict'; -var parent = require('../../../actual/function/virtual/bind'); - -module.exports = parent; diff --git a/packages/core-js/full/instance/bind.js b/packages/core-js/full/instance/bind.js deleted file mode 100644 index 229d51a20cd3..000000000000 --- a/packages/core-js/full/instance/bind.js +++ /dev/null @@ -1,4 +0,0 @@ -'use strict'; -var parent = require('../../actual/instance/bind'); - -module.exports = parent; diff --git a/packages/core-js/internals/function-apply.js b/packages/core-js/internals/function-apply.js index ad3facaf0873..d2dc7bc095de 100644 --- a/packages/core-js/internals/function-apply.js +++ b/packages/core-js/internals/function-apply.js @@ -1,11 +1,5 @@ 'use strict'; -var NATIVE_BIND = require('../internals/function-bind-native'); +var uncurryThis = require('../internals/function-uncurry-this'); -var FunctionPrototype = Function.prototype; -var apply = FunctionPrototype.apply; -var call = FunctionPrototype.call; - -// eslint-disable-next-line es/no-function-prototype-bind, es/no-reflect -- safe -module.exports = typeof Reflect == 'object' && Reflect.apply || (NATIVE_BIND ? call.bind(apply) : function () { - return call.apply(apply, arguments); -}); +// eslint-disable-next-line es/no-reflect -- safe +module.exports = typeof Reflect == 'object' && Reflect.apply || uncurryThis(uncurryThis.apply); diff --git a/packages/core-js/internals/function-bind-context.js b/packages/core-js/internals/function-bind-context.js index 73378e8ff435..04f8aa2aa1e8 100644 --- a/packages/core-js/internals/function-bind-context.js +++ b/packages/core-js/internals/function-bind-context.js @@ -1,14 +1,9 @@ 'use strict'; -var uncurryThis = require('../internals/function-uncurry-this-clause'); var aCallable = require('../internals/a-callable'); -var NATIVE_BIND = require('../internals/function-bind-native'); - -var bind = uncurryThis(uncurryThis.bind); +var bind = require('../internals/function-bind'); // optional / simple context binding module.exports = function (fn, that) { aCallable(fn); - return that === undefined ? fn : NATIVE_BIND ? bind(fn, that) : function (/* ...args */) { - return fn.apply(that, arguments); - }; + return that === undefined ? fn : bind(fn, that); }; diff --git a/packages/core-js/internals/function-bind-native.js b/packages/core-js/internals/function-bind-native.js deleted file mode 100644 index 424f934d9e3c..000000000000 --- a/packages/core-js/internals/function-bind-native.js +++ /dev/null @@ -1,9 +0,0 @@ -'use strict'; -var fails = require('../internals/fails'); - -module.exports = !fails(function () { - // eslint-disable-next-line es/no-function-prototype-bind -- safe - var test = (function () { /* empty */ }).bind(); - // eslint-disable-next-line no-prototype-builtins -- safe - return typeof test != 'function' || test.hasOwnProperty('prototype'); -}); diff --git a/packages/core-js/internals/function-bind.js b/packages/core-js/internals/function-bind.js index fe22ec595dfa..e73727b7c4a6 100644 --- a/packages/core-js/internals/function-bind.js +++ b/packages/core-js/internals/function-bind.js @@ -1,36 +1,4 @@ 'use strict'; var uncurryThis = require('../internals/function-uncurry-this'); -var aCallable = require('../internals/a-callable'); -var isObject = require('../internals/is-object'); -var hasOwn = require('../internals/has-own-property'); -var arraySlice = require('../internals/array-slice'); -var NATIVE_BIND = require('../internals/function-bind-native'); -var $Function = Function; -var concat = uncurryThis([].concat); -var join = uncurryThis([].join); -var factories = {}; - -var construct = function (C, argsLength, args) { - if (!hasOwn(factories, argsLength)) { - var list = []; - var i = 0; - for (; i < argsLength; i++) list[i] = 'a[' + i + ']'; - factories[argsLength] = $Function('C,a', 'return new C(' + join(list, ',') + ')'); - } return factories[argsLength](C, args); -}; - -// `Function.prototype.bind` method implementation -// https://tc39.es/ecma262/#sec-function.prototype.bind -// eslint-disable-next-line es/no-function-prototype-bind -- detection -module.exports = NATIVE_BIND ? $Function.bind : function bind(that /* , ...args */) { - var F = aCallable(this); - var Prototype = F.prototype; - var partArgs = arraySlice(arguments, 1); - var boundFunction = function bound(/* args... */) { - var args = concat(partArgs, arraySlice(arguments)); - return this instanceof boundFunction ? construct(F, args.length, args) : F.apply(that, args); - }; - if (isObject(Prototype)) boundFunction.prototype = Prototype; - return boundFunction; -}; +module.exports = uncurryThis(uncurryThis.bind); diff --git a/packages/core-js/internals/function-call.js b/packages/core-js/internals/function-call.js index 122c3f43403b..2060aa9b2228 100644 --- a/packages/core-js/internals/function-call.js +++ b/packages/core-js/internals/function-call.js @@ -1,8 +1,4 @@ 'use strict'; -var NATIVE_BIND = require('../internals/function-bind-native'); +var uncurryThis = require('../internals/function-uncurry-this'); -var call = Function.prototype.call; -// eslint-disable-next-line es/no-function-prototype-bind -- safe -module.exports = NATIVE_BIND ? call.bind(call) : function () { - return call.apply(call, arguments); -}; +module.exports = uncurryThis(uncurryThis.call); diff --git a/packages/core-js/internals/function-uncurry-this.js b/packages/core-js/internals/function-uncurry-this.js index cd1c9ee076d0..36e797bf086e 100644 --- a/packages/core-js/internals/function-uncurry-this.js +++ b/packages/core-js/internals/function-uncurry-this.js @@ -1,13 +1,4 @@ 'use strict'; -var NATIVE_BIND = require('../internals/function-bind-native'); +var call = Function.prototype.call; -var FunctionPrototype = Function.prototype; -var call = FunctionPrototype.call; -// eslint-disable-next-line es/no-function-prototype-bind -- safe -var uncurryThisWithBind = NATIVE_BIND && FunctionPrototype.bind.bind(call, call); - -module.exports = NATIVE_BIND ? uncurryThisWithBind : function (fn) { - return function () { - return call.apply(fn, arguments); - }; -}; +module.exports = call.bind.bind(call, call); diff --git a/packages/core-js/internals/microtask.js b/packages/core-js/internals/microtask.js index 906ffc4395d5..7ae1000817dc 100644 --- a/packages/core-js/internals/microtask.js +++ b/packages/core-js/internals/microtask.js @@ -1,7 +1,6 @@ 'use strict'; var globalThis = require('../internals/global-this'); var safeGetBuiltIn = require('../internals/safe-get-built-in'); -var bind = require('../internals/function-bind-context'); var macrotask = require('../internals/task').set; var Queue = require('../internals/queue'); var IS_IOS = require('../internals/environment-is-ios'); @@ -47,7 +46,7 @@ if (!microtask) { promise = Promise.resolve(undefined); // workaround of WebKit ~ iOS Safari 10.1 bug promise.constructor = Promise; - then = bind(promise.then, promise); + then = promise.then.bind(promise); notify = function () { then(flush); }; @@ -64,7 +63,7 @@ if (!microtask) { // - setTimeout } else { // `webpack` dev server bug on IE global methods - use bind(fn, global) - macrotask = bind(macrotask, globalThis); + macrotask = macrotask.bind(globalThis); notify = function () { macrotask(flush); }; diff --git a/packages/core-js/internals/task.js b/packages/core-js/internals/task.js index d801b7a4baec..56495aa84d40 100644 --- a/packages/core-js/internals/task.js +++ b/packages/core-js/internals/task.js @@ -1,7 +1,7 @@ 'use strict'; var globalThis = require('../internals/global-this'); var apply = require('../internals/function-apply'); -var bind = require('../internals/function-bind-context'); +var bind = require('../internals/function-bind'); var isCallable = require('../internals/is-callable'); var hasOwn = require('../internals/has-own-property'); var fails = require('../internals/fails'); diff --git a/packages/core-js/modules/es.function.bind.js b/packages/core-js/modules/es.function.bind.js deleted file mode 100644 index 2ed753d3ed0e..000000000000 --- a/packages/core-js/modules/es.function.bind.js +++ /dev/null @@ -1,11 +0,0 @@ -'use strict'; -// TODO: Remove from `core-js@4` -var $ = require('../internals/export'); -var bind = require('../internals/function-bind'); - -// `Function.prototype.bind` method -// https://tc39.es/ecma262/#sec-function.prototype.bind -// eslint-disable-next-line es/no-function-prototype-bind -- detection -$({ target: 'Function', proto: true, forced: Function.bind !== bind }, { - bind: bind, -}); diff --git a/packages/core-js/modules/es.reflect.construct.js b/packages/core-js/modules/es.reflect.construct.js index 2c87364eb7f4..4e99ab0ed121 100644 --- a/packages/core-js/modules/es.reflect.construct.js +++ b/packages/core-js/modules/es.reflect.construct.js @@ -2,15 +2,15 @@ var $ = require('../internals/export'); var getBuiltIn = require('../internals/get-built-in'); var apply = require('../internals/function-apply'); -var bind = require('../internals/function-bind'); var aConstructor = require('../internals/a-constructor'); var anObject = require('../internals/an-object'); var isObject = require('../internals/is-object'); var fails = require('../internals/fails'); +var ObjectPrototype = Object.prototype; var create = Object.create; var nativeConstruct = getBuiltIn('Reflect', 'construct'); -var ObjectPrototype = Object.prototype; +var bind = create.bind; var push = [].push; // `Reflect.construct` method diff --git a/packages/core-js/stable/function/bind.js b/packages/core-js/stable/function/bind.js deleted file mode 100644 index de54f8ad8d19..000000000000 --- a/packages/core-js/stable/function/bind.js +++ /dev/null @@ -1,4 +0,0 @@ -'use strict'; -var parent = require('../../es/function/bind'); - -module.exports = parent; diff --git a/packages/core-js/stable/function/virtual/bind.js b/packages/core-js/stable/function/virtual/bind.js deleted file mode 100644 index 1dde33d714cb..000000000000 --- a/packages/core-js/stable/function/virtual/bind.js +++ /dev/null @@ -1,4 +0,0 @@ -'use strict'; -var parent = require('../../../es/function/virtual/bind'); - -module.exports = parent; diff --git a/packages/core-js/stable/instance/bind.js b/packages/core-js/stable/instance/bind.js deleted file mode 100644 index ad5f7e0af7be..000000000000 --- a/packages/core-js/stable/instance/bind.js +++ /dev/null @@ -1,4 +0,0 @@ -'use strict'; -var parent = require('../../es/instance/bind'); - -module.exports = parent; diff --git a/tests/compat/tests.js b/tests/compat/tests.js index b8cf7a5eccc2..f2dafc5e82f6 100644 --- a/tests/compat/tests.js +++ b/tests/compat/tests.js @@ -744,11 +744,6 @@ GLOBAL.tests = { 'es.escape': function () { return escape; }, - 'es.function.bind': function () { - var test = (function () { /* empty */ }).bind(); - // eslint-disable-next-line no-prototype-builtins -- safe - return typeof test == 'function' && !test.hasOwnProperty('prototype'); - }, 'es.function.has-instance': [SYMBOLS_SUPPORT, function () { return Symbol.hasInstance in Function.prototype; }], diff --git a/tests/entries/unit.mjs b/tests/entries/unit.mjs index 18736d024b32..c3c6300d6e1b 100644 --- a/tests/entries/unit.mjs +++ b/tests/entries/unit.mjs @@ -48,12 +48,6 @@ for (PATH of ['core-js-pure', 'core-js']) { ok(typeof load(NS, 'object/lookup-getter') == 'function'); ok(typeof load(NS, 'object/lookup-setter') == 'function'); ok('values' in load(NS, 'object')); - ok(load(NS, 'function/bind')(function (a, b) { - return this + a + b; - }, 1, 2)(3) === 6); - ok(load(NS, 'function/virtual/bind').call(function (a, b) { - return this + a + b; - }, 1, 2)(3) === 6); load(NS, 'function/name'); load(NS, 'function/has-instance'); load(NS, 'function'); @@ -362,12 +356,6 @@ for (PATH of ['core-js-pure', 'core-js']) { ok(instanceAt([]).call([1, 2, 3], 2) === 3); ok(instanceAt('').call('123', 2) === '3'); - const instanceBind = load(NS, 'instance/bind'); - ok(typeof instanceBind == 'function'); - ok(instanceBind({}) === undefined); - ok(typeof instanceBind(it => it) == 'function'); - ok(instanceBind(it => it).call(it => it, 1, 2)() === 2); - const instanceCodePointAt = load(NS, 'instance/code-point-at'); ok(typeof instanceCodePointAt == 'function'); ok(instanceCodePointAt({}) === undefined); diff --git a/tests/eslint/eslint.config.js b/tests/eslint/eslint.config.js index e4a8ba1bd172..69b5bcc20082 100644 --- a/tests/eslint/eslint.config.js +++ b/tests/eslint/eslint.config.js @@ -1449,7 +1449,6 @@ const forbidES5BuiltIns = { 'es/no-array-prototype-reduce': ERROR, 'es/no-array-prototype-reduceright': ERROR, 'es/no-array-prototype-some': ERROR, - 'es/no-function-prototype-bind': ERROR, 'es/no-object-defineproperties': ERROR, 'es/no-object-defineproperty': ERROR, 'es/no-object-getownpropertydescriptor': ERROR, diff --git a/tests/unit-pure/es.function.bind.js b/tests/unit-pure/es.function.bind.js deleted file mode 100644 index 895975b478ed..000000000000 --- a/tests/unit-pure/es.function.bind.js +++ /dev/null @@ -1,26 +0,0 @@ -import bind from 'core-js-pure/es/function/bind'; - -QUnit.test('Function#bind', assert => { - assert.isFunction(bind); - const object = { a: 42 }; - assert.same(bind(function () { - return this.a; - }, object)(), 42); - assert.same(new (bind(() => { /* empty */ }, object))().a, undefined); - function C(a, b) { - this.a = a; - this.b = b; - } - const instance = new (bind(C, null, 1))(2); - assert.true(instance instanceof C); - assert.same(instance.a, 1); - assert.same(instance.b, 2); - assert.same(bind((it => it), null, 42)(), 42); - const regExpTest = bind(RegExp.prototype.test, /a/); - assert.true(regExpTest('a')); - const Date2017 = bind(Date, null, 2017); - const date = new Date2017(11); - assert.true(date instanceof Date); - assert.same(date.getFullYear(), 2017); - assert.same(date.getMonth(), 11); -}); diff --git a/tests/unit-pure/es.promise.all-settled.js b/tests/unit-pure/es.promise.all-settled.js index 9f75809dabec..af27697db1c6 100644 --- a/tests/unit-pure/es.promise.all-settled.js +++ b/tests/unit-pure/es.promise.all-settled.js @@ -1,7 +1,6 @@ import { createIterable } from '../helpers/helpers.js'; import $allSettled from 'core-js-pure/es/promise/all-settled'; -import bind from 'core-js-pure/es/function/bind'; import getIteratorMethod from 'core-js-pure/es/get-iterator-method'; import Promise from 'core-js-pure/es/promise'; import Symbol from 'core-js-pure/es/symbol'; @@ -68,7 +67,7 @@ QUnit.test('Promise.allSettled, subclassing', assert => { function SubPromise(executor) { executor(() => { /* empty */ }, () => { /* empty */ }); } - SubPromise.resolve = bind(resolve, Promise); + SubPromise.resolve = resolve.bind(Promise); assert.true(allSettled.call(SubPromise, [1, 2, 3]) instanceof SubPromise, 'subclassing, `this` pattern'); function FakePromise1() { /* empty */ } @@ -78,7 +77,7 @@ QUnit.test('Promise.allSettled, subclassing', assert => { function FakePromise3(executor) { executor(() => { /* empty */ }, null); } - FakePromise1.resolve = FakePromise2.resolve = FakePromise3.resolve = bind(resolve, Promise); + FakePromise1.resolve = FakePromise2.resolve = FakePromise3.resolve = resolve.bind(Promise); assert.throws(() => { allSettled.call(FakePromise1, [1, 2, 3]); }, 'NewPromiseCapability validations, #1'); diff --git a/tests/unit-pure/es.promise.all.js b/tests/unit-pure/es.promise.all.js index b3676cc9b434..b7b3cd01272f 100644 --- a/tests/unit-pure/es.promise.all.js +++ b/tests/unit-pure/es.promise.all.js @@ -1,6 +1,5 @@ import { createIterable } from '../helpers/helpers.js'; -import bind from 'core-js-pure/es/function/bind'; import getIteratorMethod from 'core-js-pure/es/get-iterator-method'; import Promise from 'core-js-pure/es/promise'; import Symbol from 'core-js-pure/es/symbol'; @@ -56,7 +55,7 @@ QUnit.test('Promise.all, subclassing', assert => { function SubPromise(executor) { executor(() => { /* empty */ }, () => { /* empty */ }); } - SubPromise.resolve = bind(resolve, Promise); + SubPromise.resolve = resolve.bind(Promise); assert.true(all.call(SubPromise, [1, 2, 3]) instanceof SubPromise, 'subclassing, `this` pattern'); function FakePromise1() { /* empty */ } @@ -66,7 +65,7 @@ QUnit.test('Promise.all, subclassing', assert => { function FakePromise3(executor) { executor(() => { /* empty */ }, null); } - FakePromise1.resolve = FakePromise2.resolve = FakePromise3.resolve = bind(resolve, Promise); + FakePromise1.resolve = FakePromise2.resolve = FakePromise3.resolve = resolve.bind(Promise); assert.throws(() => { all.call(FakePromise1, [1, 2, 3]); }, 'NewPromiseCapability validations, #1'); diff --git a/tests/unit-pure/es.promise.any.js b/tests/unit-pure/es.promise.any.js index fa78d56b4030..b4e5aecc4a26 100644 --- a/tests/unit-pure/es.promise.any.js +++ b/tests/unit-pure/es.promise.any.js @@ -2,7 +2,6 @@ import { createIterable } from '../helpers/helpers.js'; import $any from 'core-js-pure/es/promise/any'; import AggregateError from 'core-js-pure/es/aggregate-error'; -import bind from 'core-js-pure/es/function/bind'; import getIteratorMethod from 'core-js-pure/es/get-iterator-method'; import Promise from 'core-js-pure/es/promise'; import Symbol from 'core-js-pure/es/symbol'; @@ -68,7 +67,7 @@ QUnit.test('Promise.any, subclassing', assert => { function SubPromise(executor) { executor(() => { /* empty */ }, () => { /* empty */ }); } - SubPromise.resolve = bind(resolve, Promise); + SubPromise.resolve = resolve.bind(Promise); assert.true(any.call(SubPromise, [1, 2, 3]) instanceof SubPromise, 'subclassing, `this` pattern'); function FakePromise1() { /* empty */ } @@ -78,7 +77,7 @@ QUnit.test('Promise.any, subclassing', assert => { function FakePromise3(executor) { executor(() => { /* empty */ }, null); } - FakePromise1.resolve = FakePromise2.resolve = FakePromise3.resolve = bind(resolve, Promise); + FakePromise1.resolve = FakePromise2.resolve = FakePromise3.resolve = resolve.bind(Promise); assert.throws(() => { any.call(FakePromise1, [1, 2, 3]); }, 'NewPromiseCapability validations, #1'); diff --git a/tests/unit-pure/es.promise.race.js b/tests/unit-pure/es.promise.race.js index e5927c568934..e3aa5c489cdb 100644 --- a/tests/unit-pure/es.promise.race.js +++ b/tests/unit-pure/es.promise.race.js @@ -1,6 +1,5 @@ import { createIterable } from '../helpers/helpers.js'; -import bind from 'core-js-pure/es/function/bind'; import getIteratorMethod from 'core-js-pure/es/get-iterator-method'; import Promise from 'core-js-pure/es/promise'; import Symbol from 'core-js-pure/es/symbol'; @@ -47,7 +46,7 @@ QUnit.test('Promise.race, subclassing', assert => { function SubPromise(executor) { executor(() => { /* empty */ }, () => { /* empty */ }); } - SubPromise.resolve = bind(resolve, Promise); + SubPromise.resolve = resolve.bind(Promise); assert.true(race.call(SubPromise, [1, 2, 3]) instanceof SubPromise, 'subclassing, `this` pattern'); function FakePromise1() { /* empty */ } @@ -57,7 +56,7 @@ QUnit.test('Promise.race, subclassing', assert => { function FakePromise3(executor) { executor(() => { /* empty */ }, null); } - FakePromise1.resolve = FakePromise2.resolve = FakePromise3.resolve = bind(resolve, Promise); + FakePromise1.resolve = FakePromise2.resolve = FakePromise3.resolve = resolve.bind(Promise); assert.throws(() => { race.call(FakePromise1, [1, 2, 3]); }, 'NewPromiseCapability validations, #1'); diff --git a/tests/unit-pure/es.promise.try.js b/tests/unit-pure/es.promise.try.js index 986df0e11bb6..195646e10001 100644 --- a/tests/unit-pure/es.promise.try.js +++ b/tests/unit-pure/es.promise.try.js @@ -1,5 +1,4 @@ import $try from 'core-js-pure/es/promise/try'; -import bind from 'core-js-pure/es/function/bind'; import Promise from 'core-js-pure/es/promise'; QUnit.test('Promise.try', assert => { @@ -35,7 +34,7 @@ QUnit.test('Promise.try, subclassing', assert => { function SubPromise(executor) { executor(() => { /* empty */ }, () => { /* empty */ }); } - SubPromise.resolve = bind(resolve, Promise); + SubPromise.resolve = resolve.bind(Promise); assert.true(promiseTry.call(SubPromise, () => 42) instanceof SubPromise, 'subclassing, `this` pattern'); function FakePromise1() { /* empty */ } @@ -45,7 +44,7 @@ QUnit.test('Promise.try, subclassing', assert => { function FakePromise3(executor) { executor(() => { /* empty */ }, null); } - FakePromise1.resolve = FakePromise2.resolve = FakePromise3.resolve = bind(resolve, Promise); + FakePromise1.resolve = FakePromise2.resolve = FakePromise3.resolve = resolve.bind(Promise); assert.throws(() => { promiseTry.call(FakePromise1, () => 42); }, 'NewPromiseCapability validations, #1'); From dd359900945d81d5f1d2d2edd99f6e47ae840e7f Mon Sep 17 00:00:00 2001 From: Denis Pushkarev Date: Sun, 8 Oct 2023 05:53:33 +0700 Subject: [PATCH 110/428] use native `Object.{ keys, getOwnPropertyNames }` without fallbacks in simple cases --- packages/core-js/actual/json/index.js | 1 - packages/core-js/actual/json/parse.js | 1 - packages/core-js/internals/enum-bug-keys.js | 11 ---------- packages/core-js/internals/object-assign.js | 2 +- .../internals/object-define-properties.js | 3 ++- .../object-get-own-property-names-external.js | 1 - .../object-get-own-property-names.js | 10 +-------- .../core-js/internals/object-keys-internal.js | 21 ------------------- packages/core-js/internals/object-keys.js | 10 --------- packages/core-js/internals/object-to-array.js | 2 +- .../internals/typed-array-constructor.js | 2 +- .../core-js/modules/es.number.constructor.js | 3 +-- .../es.object.get-own-property-names.js | 1 - packages/core-js/modules/es.object.keys.js | 7 ++++--- .../core-js/modules/es.regexp.constructor.js | 2 +- .../core-js/modules/es.symbol.constructor.js | 6 +++--- packages/core-js/modules/esnext.json.parse.js | 3 +-- .../core-js/modules/web.structured-clone.js | 2 +- packages/core-js/stable/structured-clone.js | 1 - tests/eslint/eslint.config.js | 2 -- 20 files changed, 17 insertions(+), 74 deletions(-) delete mode 100644 packages/core-js/internals/enum-bug-keys.js delete mode 100644 packages/core-js/internals/object-keys-internal.js delete mode 100644 packages/core-js/internals/object-keys.js diff --git a/packages/core-js/actual/json/index.js b/packages/core-js/actual/json/index.js index 42daa0960c39..a0a1fb2481a5 100644 --- a/packages/core-js/actual/json/index.js +++ b/packages/core-js/actual/json/index.js @@ -1,6 +1,5 @@ 'use strict'; var parent = require('../../stable/json'); -require('../../modules/es.object.keys'); require('../../modules/esnext.json.is-raw-json'); require('../../modules/esnext.json.parse'); require('../../modules/esnext.json.raw-json'); diff --git a/packages/core-js/actual/json/parse.js b/packages/core-js/actual/json/parse.js index b2ae46952827..f20563b1e2f5 100644 --- a/packages/core-js/actual/json/parse.js +++ b/packages/core-js/actual/json/parse.js @@ -1,5 +1,4 @@ 'use strict'; -require('../../modules/es.object.keys'); require('../../modules/esnext.json.parse'); var path = require('../../internals/path'); diff --git a/packages/core-js/internals/enum-bug-keys.js b/packages/core-js/internals/enum-bug-keys.js deleted file mode 100644 index e52637126cd5..000000000000 --- a/packages/core-js/internals/enum-bug-keys.js +++ /dev/null @@ -1,11 +0,0 @@ -'use strict'; -// IE8- don't enum bug keys -module.exports = [ - 'constructor', - 'hasOwnProperty', - 'isPrototypeOf', - 'propertyIsEnumerable', - 'toLocaleString', - 'toString', - 'valueOf', -]; diff --git a/packages/core-js/internals/object-assign.js b/packages/core-js/internals/object-assign.js index f73ae8eef3c0..831ea912714e 100644 --- a/packages/core-js/internals/object-assign.js +++ b/packages/core-js/internals/object-assign.js @@ -2,7 +2,6 @@ var uncurryThis = require('../internals/function-uncurry-this'); var call = require('../internals/function-call'); var fails = require('../internals/fails'); -var objectKeys = require('../internals/object-keys'); var getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols'); var propertyIsEnumerableModule = require('../internals/object-property-is-enumerable'); var toObject = require('../internals/to-object'); @@ -12,6 +11,7 @@ var IndexedObject = require('../internals/indexed-object'); var $assign = Object.assign; // eslint-disable-next-line es/no-object-defineproperty -- required for testing var defineProperty = Object.defineProperty; +var objectKeys = Object.keys; var concat = uncurryThis([].concat); // `Object.assign` method diff --git a/packages/core-js/internals/object-define-properties.js b/packages/core-js/internals/object-define-properties.js index a3d9a2c41acd..b1ae6acd5841 100644 --- a/packages/core-js/internals/object-define-properties.js +++ b/packages/core-js/internals/object-define-properties.js @@ -3,7 +3,8 @@ var V8_PROTOTYPE_DEFINE_BUG = require('../internals/v8-prototype-define-bug'); var definePropertyModule = require('../internals/object-define-property'); var anObject = require('../internals/an-object'); var toIndexedObject = require('../internals/to-indexed-object'); -var objectKeys = require('../internals/object-keys'); + +var objectKeys = Object.keys; // `Object.defineProperties` method // https://tc39.es/ecma262/#sec-object.defineproperties diff --git a/packages/core-js/internals/object-get-own-property-names-external.js b/packages/core-js/internals/object-get-own-property-names-external.js index 9bafd9a06160..23e4cdfcf8e4 100644 --- a/packages/core-js/internals/object-get-own-property-names-external.js +++ b/packages/core-js/internals/object-get-own-property-names-external.js @@ -1,5 +1,4 @@ 'use strict'; -/* eslint-disable es/no-object-getownpropertynames -- safe */ var classof = require('../internals/classof-raw'); var toIndexedObject = require('../internals/to-indexed-object'); var $getOwnPropertyNames = require('../internals/object-get-own-property-names').f; diff --git a/packages/core-js/internals/object-get-own-property-names.js b/packages/core-js/internals/object-get-own-property-names.js index 08c935d85b0d..b6520d2084f2 100644 --- a/packages/core-js/internals/object-get-own-property-names.js +++ b/packages/core-js/internals/object-get-own-property-names.js @@ -1,12 +1,4 @@ 'use strict'; -var internalObjectKeys = require('../internals/object-keys-internal'); -var enumBugKeys = require('../internals/enum-bug-keys'); - -var hiddenKeys = enumBugKeys.concat('length', 'prototype'); - // `Object.getOwnPropertyNames` method // https://tc39.es/ecma262/#sec-object.getownpropertynames -// eslint-disable-next-line es/no-object-getownpropertynames -- safe -exports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) { - return internalObjectKeys(O, hiddenKeys); -}; +exports.f = Object.getOwnPropertyNames; diff --git a/packages/core-js/internals/object-keys-internal.js b/packages/core-js/internals/object-keys-internal.js deleted file mode 100644 index 42354cf61440..000000000000 --- a/packages/core-js/internals/object-keys-internal.js +++ /dev/null @@ -1,21 +0,0 @@ -'use strict'; -var uncurryThis = require('../internals/function-uncurry-this'); -var hasOwn = require('../internals/has-own-property'); -var toIndexedObject = require('../internals/to-indexed-object'); -var indexOf = require('../internals/array-includes').indexOf; -var hiddenKeys = require('../internals/hidden-keys'); - -var push = uncurryThis([].push); - -module.exports = function (object, names) { - var O = toIndexedObject(object); - var i = 0; - var result = []; - var key; - for (key in O) !hasOwn(hiddenKeys, key) && hasOwn(O, key) && push(result, key); - // Don't enum bug & hidden keys - while (names.length > i) if (hasOwn(O, key = names[i++])) { - ~indexOf(result, key) || push(result, key); - } - return result; -}; diff --git a/packages/core-js/internals/object-keys.js b/packages/core-js/internals/object-keys.js deleted file mode 100644 index 037613592727..000000000000 --- a/packages/core-js/internals/object-keys.js +++ /dev/null @@ -1,10 +0,0 @@ -'use strict'; -var internalObjectKeys = require('../internals/object-keys-internal'); -var enumBugKeys = require('../internals/enum-bug-keys'); - -// `Object.keys` method -// https://tc39.es/ecma262/#sec-object.keys -// eslint-disable-next-line es/no-object-keys -- safe -module.exports = Object.keys || function keys(O) { - return internalObjectKeys(O, enumBugKeys); -}; diff --git a/packages/core-js/internals/object-to-array.js b/packages/core-js/internals/object-to-array.js index 605848bb3247..a545bb55e48c 100644 --- a/packages/core-js/internals/object-to-array.js +++ b/packages/core-js/internals/object-to-array.js @@ -1,10 +1,10 @@ 'use strict'; var fails = require('../internals/fails'); var uncurryThis = require('../internals/function-uncurry-this'); -var objectKeys = require('../internals/object-keys'); var toIndexedObject = require('../internals/to-indexed-object'); var $propertyIsEnumerable = require('../internals/object-property-is-enumerable').f; +var objectKeys = Object.keys; var getPrototypeOf = Object.getPrototypeOf; var propertyIsEnumerable = uncurryThis($propertyIsEnumerable); var push = uncurryThis([].push); diff --git a/packages/core-js/internals/typed-array-constructor.js b/packages/core-js/internals/typed-array-constructor.js index 5bae0f53d292..44bf893af262 100644 --- a/packages/core-js/internals/typed-array-constructor.js +++ b/packages/core-js/internals/typed-array-constructor.js @@ -20,7 +20,6 @@ var isObject = require('../internals/is-object'); var isSymbol = require('../internals/is-symbol'); var isPrototypeOf = require('../internals/object-is-prototype-of'); var setPrototypeOf = require('../internals/object-set-prototype-of'); -var getOwnPropertyNames = require('../internals/object-get-own-property-names').f; var typedArrayFrom = require('../internals/typed-array-from'); var forEach = require('../internals/array-iteration').forEach; var setSpecies = require('../internals/set-species'); @@ -35,6 +34,7 @@ var getInternalState = InternalStateModule.get; var setInternalState = InternalStateModule.set; var enforceInternalState = InternalStateModule.enforce; var create = Object.create; +var getOwnPropertyNames = Object.getOwnPropertyNames; var nativeDefineProperty = definePropertyModule.f; var nativeGetOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f; var RangeError = globalThis.RangeError; diff --git a/packages/core-js/modules/es.number.constructor.js b/packages/core-js/modules/es.number.constructor.js index 54b756ac2616..fb2a7a2601f8 100644 --- a/packages/core-js/modules/es.number.constructor.js +++ b/packages/core-js/modules/es.number.constructor.js @@ -11,7 +11,6 @@ var isPrototypeOf = require('../internals/object-is-prototype-of'); var isSymbol = require('../internals/is-symbol'); var toPrimitive = require('../internals/to-primitive'); var fails = require('../internals/fails'); -var getOwnPropertyNames = require('../internals/object-get-own-property-names').f; var getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f; var defineProperty = require('../internals/object-define-property').f; var thisNumberValue = require('../internals/this-number-value'); @@ -96,7 +95,7 @@ $({ global: true, constructor: true, wrap: true, forced: FORCED }, { // Use `internal/copy-constructor-properties` helper in `core-js@4` var copyConstructorProperties = function (target, source) { - for (var keys = getOwnPropertyNames(source), j = 0, key; keys.length > j; j++) { + for (var keys = Object.getOwnPropertyNames(source), j = 0, key; keys.length > j; j++) { if (hasOwn(source, key = keys[j]) && !hasOwn(target, key)) { defineProperty(target, key, getOwnPropertyDescriptor(source, key)); } diff --git a/packages/core-js/modules/es.object.get-own-property-names.js b/packages/core-js/modules/es.object.get-own-property-names.js index 830632369914..6747df45507a 100644 --- a/packages/core-js/modules/es.object.get-own-property-names.js +++ b/packages/core-js/modules/es.object.get-own-property-names.js @@ -3,7 +3,6 @@ var $ = require('../internals/export'); var fails = require('../internals/fails'); var getOwnPropertyNames = require('../internals/object-get-own-property-names-external').f; -// eslint-disable-next-line es/no-object-getownpropertynames -- required for testing var FAILS_ON_PRIMITIVES = fails(function () { return !Object.getOwnPropertyNames(1); }); // `Object.getOwnPropertyNames` method diff --git a/packages/core-js/modules/es.object.keys.js b/packages/core-js/modules/es.object.keys.js index 92466e55bdc7..a707c0c2b495 100644 --- a/packages/core-js/modules/es.object.keys.js +++ b/packages/core-js/modules/es.object.keys.js @@ -1,15 +1,16 @@ 'use strict'; var $ = require('../internals/export'); var toObject = require('../internals/to-object'); -var nativeKeys = require('../internals/object-keys'); var fails = require('../internals/fails'); -var FAILS_ON_PRIMITIVES = fails(function () { nativeKeys(1); }); +var nativeObjectKeys = Object.keys; + +var FAILS_ON_PRIMITIVES = fails(function () { nativeObjectKeys(1); }); // `Object.keys` method // https://tc39.es/ecma262/#sec-object.keys $({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES }, { keys: function keys(it) { - return nativeKeys(toObject(it)); + return nativeObjectKeys(toObject(it)); }, }); diff --git a/packages/core-js/modules/es.regexp.constructor.js b/packages/core-js/modules/es.regexp.constructor.js index 686b753761ca..bfcc4324a220 100644 --- a/packages/core-js/modules/es.regexp.constructor.js +++ b/packages/core-js/modules/es.regexp.constructor.js @@ -4,7 +4,6 @@ var uncurryThis = require('../internals/function-uncurry-this'); var isForced = require('../internals/is-forced'); var inheritIfRequired = require('../internals/inherit-if-required'); var createNonEnumerableProperty = require('../internals/create-non-enumerable-property'); -var getOwnPropertyNames = require('../internals/object-get-own-property-names').f; var isPrototypeOf = require('../internals/object-is-prototype-of'); var isRegExp = require('../internals/is-regexp'); var toString = require('../internals/to-string'); @@ -25,6 +24,7 @@ var NativeRegExp = globalThis.RegExp; var RegExpPrototype = NativeRegExp.prototype; var SyntaxError = globalThis.SyntaxError; var create = Object.create; +var getOwnPropertyNames = Object.getOwnPropertyNames; var exec = uncurryThis(RegExpPrototype.exec); var charAt = uncurryThis(''.charAt); var replace = uncurryThis(''.replace); diff --git a/packages/core-js/modules/es.symbol.constructor.js b/packages/core-js/modules/es.symbol.constructor.js index f3570f5f0607..2df2aca29d62 100644 --- a/packages/core-js/modules/es.symbol.constructor.js +++ b/packages/core-js/modules/es.symbol.constructor.js @@ -13,7 +13,6 @@ var toIndexedObject = require('../internals/to-indexed-object'); var toPropertyKey = require('../internals/to-property-key'); var $toString = require('../internals/to-string'); var createPropertyDescriptor = require('../internals/create-property-descriptor'); -var objectKeys = require('../internals/object-keys'); var getOwnPropertyNamesModule = require('../internals/object-get-own-property-names'); var getOwnPropertyNamesExternal = require('../internals/object-get-own-property-names-external'); var getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols'); @@ -49,6 +48,7 @@ var RangeError = globalThis.RangeError; var TypeError = globalThis.TypeError; var QObject = globalThis.QObject; var nativeObjectCreate = Object.create; +var nativeObjectKeys = Object.keys; var nativeGetOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f; var nativeDefineProperty = definePropertyModule.f; var nativeGetOwnPropertyNames = getOwnPropertyNamesExternal.f; @@ -107,7 +107,7 @@ var $defineProperty = function defineProperty(O, P, Attributes) { var $defineProperties = function defineProperties(O, Properties) { anObject(O); var properties = toIndexedObject(Properties); - var keys = objectKeys(properties).concat($getOwnPropertySymbols(properties)); + var keys = nativeObjectKeys(properties).concat($getOwnPropertySymbols(properties)); $forEach(keys, function (key) { if (call($propertyIsEnumerable, properties, key)) $defineProperty(O, key, properties[key]); }); @@ -218,7 +218,7 @@ $({ global: true, constructor: true, wrap: true, forced: !NATIVE_SYMBOL, sham: ! Symbol: $Symbol, }); -$forEach(objectKeys(WellKnownSymbolsStore), function (name) { +$forEach(nativeObjectKeys(WellKnownSymbolsStore), function (name) { defineWellKnownSymbol(name); }); diff --git a/packages/core-js/modules/esnext.json.parse.js b/packages/core-js/modules/esnext.json.parse.js index b8df4dae2993..f931af9bcfca 100644 --- a/packages/core-js/modules/esnext.json.parse.js +++ b/packages/core-js/modules/esnext.json.parse.js @@ -1,7 +1,6 @@ 'use strict'; var $ = require('../internals/export'); var globalThis = require('../internals/global-this'); -var getBuiltIn = require('../internals/get-built-in'); var uncurryThis = require('../internals/function-uncurry-this'); var call = require('../internals/function-call'); var isCallable = require('../internals/is-callable'); @@ -17,7 +16,7 @@ var NATIVE_SYMBOL = require('../internals/symbol-constructor-detection'); var Number = globalThis.Number; var SyntaxError = globalThis.SyntaxError; var nativeParse = JSON.parse; -var enumerableOwnProperties = getBuiltIn('Object', 'keys'); +var enumerableOwnProperties = Object.keys; // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe var getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor; var isArray = Array.isArray; diff --git a/packages/core-js/modules/web.structured-clone.js b/packages/core-js/modules/web.structured-clone.js index 860a7a97cd6d..532d26254bf1 100644 --- a/packages/core-js/modules/web.structured-clone.js +++ b/packages/core-js/modules/web.structured-clone.js @@ -41,7 +41,7 @@ var mapSet = MapHelpers.set; var Set = SetHelpers.Set; var setAdd = SetHelpers.add; var setHas = SetHelpers.has; -var objectKeys = getBuiltIn('Object', 'keys'); +var objectKeys = Object.keys; var push = uncurryThis([].push); var thisBooleanValue = uncurryThis(true.valueOf); var thisNumberValue = uncurryThis(1.1.valueOf); diff --git a/packages/core-js/stable/structured-clone.js b/packages/core-js/stable/structured-clone.js index 478f919c209e..fe8aad55cc20 100644 --- a/packages/core-js/stable/structured-clone.js +++ b/packages/core-js/stable/structured-clone.js @@ -1,7 +1,6 @@ 'use strict'; require('../modules/es.error.to-string'); require('../modules/es.array.iterator'); -require('../modules/es.object.keys'); require('../modules/es.object.to-string'); require('../modules/es.map.constructor'); require('../modules/es.set.constructor'); diff --git a/tests/eslint/eslint.config.js b/tests/eslint/eslint.config.js index 69b5bcc20082..599be5e3de83 100644 --- a/tests/eslint/eslint.config.js +++ b/tests/eslint/eslint.config.js @@ -1452,11 +1452,9 @@ const forbidES5BuiltIns = { 'es/no-object-defineproperties': ERROR, 'es/no-object-defineproperty': ERROR, 'es/no-object-getownpropertydescriptor': ERROR, - 'es/no-object-getownpropertynames': ERROR, 'es/no-object-isextensible': ERROR, 'es/no-object-isfrozen': ERROR, 'es/no-object-issealed': ERROR, - 'es/no-object-keys': ERROR, 'es/no-string-prototype-trim': ERROR, // prefer `globalThis` over `window`, `self`, and `global` 'unicorn/prefer-global-this': OFF, From a52171fb25be5ac8c52592165fc91223f6a6ba71 Mon Sep 17 00:00:00 2001 From: Denis Pushkarev Date: Sun, 8 Oct 2023 07:44:45 +0700 Subject: [PATCH 111/428] use native `Array.prototype.forEach` without fallbacks in simple cases --- .../core-js-pure/override/internals/collection.js | 3 +-- packages/core-js/internals/array-for-each.js | 1 - .../core-js/internals/typed-array-constructor.js | 3 +-- packages/core-js/modules/es.array.for-each.js | 1 - packages/core-js/modules/es.symbol.constructor.js | 12 ++++-------- tests/eslint/eslint.config.js | 1 - 6 files changed, 6 insertions(+), 15 deletions(-) diff --git a/packages/core-js-pure/override/internals/collection.js b/packages/core-js-pure/override/internals/collection.js index a8b93ec880de..386c3774c6da 100644 --- a/packages/core-js-pure/override/internals/collection.js +++ b/packages/core-js-pure/override/internals/collection.js @@ -11,7 +11,6 @@ var isObject = require('../internals/is-object'); var isNullOrUndefined = require('../internals/is-null-or-undefined'); var setToStringTag = require('../internals/set-to-string-tag'); var defineProperty = require('../internals/object-define-property').f; -var forEach = require('../internals/array-iteration').forEach; var InternalStateModule = require('../internals/internal-state'); var setInternalState = InternalStateModule.set; @@ -45,7 +44,7 @@ module.exports = function (CONSTRUCTOR_NAME, wrapper, common) { var getInternalState = internalStateGetterFor(CONSTRUCTOR_NAME); - forEach(['add', 'clear', 'delete', 'forEach', 'get', 'has', 'set', 'keys', 'values', 'entries'], function (KEY) { + ['add', 'clear', 'delete', 'forEach', 'get', 'has', 'set', 'keys', 'values', 'entries'].forEach(function (KEY) { var IS_ADDER = KEY === 'add' || KEY === 'set'; if (KEY in NativePrototype && !(IS_WEAK && KEY === 'clear')) { createNonEnumerableProperty(Prototype, KEY, function (a, b) { diff --git a/packages/core-js/internals/array-for-each.js b/packages/core-js/internals/array-for-each.js index 22477f47ff28..fe805876363f 100644 --- a/packages/core-js/internals/array-for-each.js +++ b/packages/core-js/internals/array-for-each.js @@ -8,5 +8,4 @@ var STRICT_METHOD = arrayMethodIsStrict('forEach'); // https://tc39.es/ecma262/#sec-array.prototype.foreach module.exports = !STRICT_METHOD ? function forEach(callbackfn /* , thisArg */) { return $forEach(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined); -// eslint-disable-next-line es/no-array-prototype-foreach -- safe } : [].forEach; diff --git a/packages/core-js/internals/typed-array-constructor.js b/packages/core-js/internals/typed-array-constructor.js index 44bf893af262..357c506c5614 100644 --- a/packages/core-js/internals/typed-array-constructor.js +++ b/packages/core-js/internals/typed-array-constructor.js @@ -21,7 +21,6 @@ var isSymbol = require('../internals/is-symbol'); var isPrototypeOf = require('../internals/object-is-prototype-of'); var setPrototypeOf = require('../internals/object-set-prototype-of'); var typedArrayFrom = require('../internals/typed-array-from'); -var forEach = require('../internals/array-iteration').forEach; var setSpecies = require('../internals/set-species'); var defineBuiltInAccessor = require('../internals/define-built-in-accessor'); var definePropertyModule = require('../internals/object-define-property'); @@ -197,7 +196,7 @@ module.exports = function (TYPE, wrapper, CLAMPED) { }); if (setPrototypeOf) setPrototypeOf(TypedArrayConstructor, TypedArray); - forEach(getOwnPropertyNames(NativeTypedArrayConstructor), function (key) { + getOwnPropertyNames(NativeTypedArrayConstructor).forEach(function (key) { if (!(key in TypedArrayConstructor)) { createNonEnumerableProperty(TypedArrayConstructor, key, NativeTypedArrayConstructor[key]); } diff --git a/packages/core-js/modules/es.array.for-each.js b/packages/core-js/modules/es.array.for-each.js index 2d8be846db6d..ce037bc3ed9a 100644 --- a/packages/core-js/modules/es.array.for-each.js +++ b/packages/core-js/modules/es.array.for-each.js @@ -4,7 +4,6 @@ var forEach = require('../internals/array-for-each'); // `Array.prototype.forEach` method // https://tc39.es/ecma262/#sec-array.prototype.foreach -// eslint-disable-next-line es/no-array-prototype-foreach -- safe $({ target: 'Array', proto: true, forced: [].forEach !== forEach }, { forEach: forEach, }); diff --git a/packages/core-js/modules/es.symbol.constructor.js b/packages/core-js/modules/es.symbol.constructor.js index 2df2aca29d62..eb6fee53d911 100644 --- a/packages/core-js/modules/es.symbol.constructor.js +++ b/packages/core-js/modules/es.symbol.constructor.js @@ -32,7 +32,6 @@ var defineWellKnownSymbol = require('../internals/well-known-symbol-define'); var defineSymbolToPrimitive = require('../internals/symbol-define-to-primitive'); var setToStringTag = require('../internals/set-to-string-tag'); var InternalStateModule = require('../internals/internal-state'); -var $forEach = require('../internals/array-iteration').forEach; var HIDDEN = sharedKey('hidden'); var SYMBOL = 'Symbol'; @@ -107,8 +106,7 @@ var $defineProperty = function defineProperty(O, P, Attributes) { var $defineProperties = function defineProperties(O, Properties) { anObject(O); var properties = toIndexedObject(Properties); - var keys = nativeObjectKeys(properties).concat($getOwnPropertySymbols(properties)); - $forEach(keys, function (key) { + nativeObjectKeys(properties).concat($getOwnPropertySymbols(properties)).forEach(function (key) { if (call($propertyIsEnumerable, properties, key)) $defineProperty(O, key, properties[key]); }); return O; @@ -138,9 +136,8 @@ var $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(O, P) { }; var $getOwnPropertyNames = function getOwnPropertyNames(O) { - var names = nativeGetOwnPropertyNames(toIndexedObject(O)); var result = []; - $forEach(names, function (key) { + nativeGetOwnPropertyNames(toIndexedObject(O)).forEach(function (key) { if (!hasOwn(AllSymbols, key) && !hasOwn(hiddenKeys, key)) push(result, key); }); return result; @@ -148,9 +145,8 @@ var $getOwnPropertyNames = function getOwnPropertyNames(O) { var $getOwnPropertySymbols = function (O) { var IS_OBJECT_PROTOTYPE = O === ObjectPrototype; - var names = nativeGetOwnPropertyNames(IS_OBJECT_PROTOTYPE ? ObjectPrototypeSymbols : toIndexedObject(O)); var result = []; - $forEach(names, function (key) { + nativeGetOwnPropertyNames(IS_OBJECT_PROTOTYPE ? ObjectPrototypeSymbols : toIndexedObject(O)).forEach(function (key) { if (hasOwn(AllSymbols, key) && (!IS_OBJECT_PROTOTYPE || hasOwn(ObjectPrototype, key))) { push(result, AllSymbols[key]); } @@ -218,7 +214,7 @@ $({ global: true, constructor: true, wrap: true, forced: !NATIVE_SYMBOL, sham: ! Symbol: $Symbol, }); -$forEach(nativeObjectKeys(WellKnownSymbolsStore), function (name) { +nativeObjectKeys(WellKnownSymbolsStore).forEach(function (name) { defineWellKnownSymbol(name); }); diff --git a/tests/eslint/eslint.config.js b/tests/eslint/eslint.config.js index 599be5e3de83..06a030726397 100644 --- a/tests/eslint/eslint.config.js +++ b/tests/eslint/eslint.config.js @@ -1442,7 +1442,6 @@ const forbidESAnnexBBuiltIns = { const forbidES5BuiltIns = { 'es/no-array-prototype-every': ERROR, 'es/no-array-prototype-filter': ERROR, - 'es/no-array-prototype-foreach': ERROR, 'es/no-array-prototype-indexof': ERROR, 'es/no-array-prototype-lastindexof': ERROR, 'es/no-array-prototype-map': ERROR, From 751be34a916dcba388921240e8e1fc44203b8809 Mon Sep 17 00:00:00 2001 From: Denis Pushkarev Date: Mon, 9 Oct 2023 03:25:07 +0700 Subject: [PATCH 112/428] use native `Object.{ defineProperty, getOwnPropertyDescriptor }` without fallbacks in simple cases --- packages/core-js-pure/override/internals/export.js | 3 +-- .../internals/array-buffer-non-extensible.js | 2 +- packages/core-js/internals/array-set-length.js | 2 -- .../internals/copy-constructor-properties.js | 7 +++---- .../core-js/internals/define-global-property.js | 1 - .../core-js/internals/error-stack-installable.js | 1 - packages/core-js/internals/error-to-string.js | 1 - packages/core-js/internals/export.js | 3 ++- packages/core-js/internals/function-name.js | 4 +--- .../internals/function-uncurry-this-accessor.js | 1 - packages/core-js/internals/internal-metadata.js | 2 +- packages/core-js/internals/make-built-in.js | 1 - packages/core-js/internals/object-assign.js | 2 -- .../core-js/internals/object-define-properties.js | 5 ++--- .../core-js/internals/object-define-property.js | 2 -- .../internals/object-get-own-property-descriptor.js | 5 +---- .../internals/object-property-is-enumerable.js | 1 - .../core-js/internals/regexp-flags-detection.js | 2 -- packages/core-js/internals/safe-get-built-in.js | 1 - .../set-method-get-keys-before-cloning-detection.js | 1 - .../core-js/internals/v8-prototype-define-bug.js | 1 - packages/core-js/modules/es.array.push.js | 1 - packages/core-js/modules/es.array.unshift.js | 1 - packages/core-js/modules/es.number.constructor.js | 13 +------------ .../core-js/modules/es.object.define-properties.js | 1 - .../core-js/modules/es.object.define-property.js | 1 - packages/core-js/modules/es.object.lookup-getter.js | 2 +- packages/core-js/modules/es.object.lookup-setter.js | 2 +- .../core-js/modules/es.reflect.delete-property.js | 3 ++- packages/core-js/modules/es.reflect.get.js | 4 ++-- packages/core-js/modules/es.string.ends-with.js | 3 +-- packages/core-js/modules/es.string.starts-with.js | 3 +-- packages/core-js/modules/es.symbol.async-dispose.js | 6 ++---- packages/core-js/modules/es.symbol.dispose.js | 6 ++---- .../core-js/modules/esnext.function.is-callable.js | 1 - packages/core-js/modules/esnext.json.parse.js | 1 - packages/core-js/modules/web.dom-exception.stack.js | 1 - packages/core-js/modules/web.queue-microtask.js | 1 - packages/core-js/modules/web.self.js | 2 -- tests/eslint/eslint.config.js | 3 --- tests/helpers/qunit-helpers.js | 1 - tests/unit-pure/es.promise.constructor.js | 2 +- tests/unit-pure/esnext.iterator.range.js | 2 -- tests/unit-pure/web.url.constructor.js | 2 +- 44 files changed, 27 insertions(+), 83 deletions(-) diff --git a/packages/core-js-pure/override/internals/export.js b/packages/core-js-pure/override/internals/export.js index 48cb7fdde97a..69b7df44579b 100644 --- a/packages/core-js-pure/override/internals/export.js +++ b/packages/core-js-pure/override/internals/export.js @@ -3,7 +3,6 @@ var globalThis = require('../internals/global-this'); var apply = require('../internals/function-apply'); var uncurryThis = require('../internals/function-uncurry-this-clause'); var isCallable = require('../internals/is-callable'); -var getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f; var isForced = require('../internals/is-forced'); var path = require('../internals/path'); var bind = require('../internals/function-bind-context'); @@ -63,7 +62,7 @@ module.exports = function (options, source) { targetProperty = target[key]; if (USE_NATIVE) if (options.dontCallGetSet) { - descriptor = getOwnPropertyDescriptor(nativeSource, key); + descriptor = Object.getOwnPropertyDescriptor(nativeSource, key); nativeProperty = descriptor && descriptor.value; } else nativeProperty = nativeSource[key]; diff --git a/packages/core-js/internals/array-buffer-non-extensible.js b/packages/core-js/internals/array-buffer-non-extensible.js index 968b2d078766..e947d51ac138 100644 --- a/packages/core-js/internals/array-buffer-non-extensible.js +++ b/packages/core-js/internals/array-buffer-non-extensible.js @@ -5,7 +5,7 @@ var fails = require('../internals/fails'); module.exports = fails(function () { if (typeof ArrayBuffer == 'function') { var buffer = new ArrayBuffer(8); - // eslint-disable-next-line es/no-object-isextensible, es/no-object-defineproperty -- safe + // eslint-disable-next-line es/no-object-isextensible -- safe if (Object.isExtensible(buffer)) Object.defineProperty(buffer, 'a', { value: 8 }); } }); diff --git a/packages/core-js/internals/array-set-length.js b/packages/core-js/internals/array-set-length.js index 5ad4f7ec0e2d..f22574055913 100644 --- a/packages/core-js/internals/array-set-length.js +++ b/packages/core-js/internals/array-set-length.js @@ -1,6 +1,5 @@ 'use strict'; var $TypeError = TypeError; -// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe var getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor; var isArray = Array.isArray; @@ -9,7 +8,6 @@ var SILENT_ON_NON_WRITABLE_LENGTH_SET = !function () { // makes no sense without proper strict mode support if (this !== undefined) return true; try { - // eslint-disable-next-line es/no-object-defineproperty -- safe Object.defineProperty([], 'length', { writable: false }).length = 1; } catch (error) { return error instanceof TypeError; diff --git a/packages/core-js/internals/copy-constructor-properties.js b/packages/core-js/internals/copy-constructor-properties.js index 8e73d46f010f..92ffa6b14768 100644 --- a/packages/core-js/internals/copy-constructor-properties.js +++ b/packages/core-js/internals/copy-constructor-properties.js @@ -1,13 +1,12 @@ 'use strict'; var hasOwn = require('../internals/has-own-property'); var ownKeys = require('../internals/own-keys'); -var getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor'); -var definePropertyModule = require('../internals/object-define-property'); + +var getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor; +var defineProperty = Object.defineProperty; module.exports = function (target, source, exceptions) { var keys = ownKeys(source); - var defineProperty = definePropertyModule.f; - var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f; for (var i = 0; i < keys.length; i++) { var key = keys[i]; if (!hasOwn(target, key) && !(exceptions && hasOwn(exceptions, key))) { diff --git a/packages/core-js/internals/define-global-property.js b/packages/core-js/internals/define-global-property.js index 96fd4a2e135c..f1a760db0130 100644 --- a/packages/core-js/internals/define-global-property.js +++ b/packages/core-js/internals/define-global-property.js @@ -1,7 +1,6 @@ 'use strict'; var globalThis = require('../internals/global-this'); -// eslint-disable-next-line es/no-object-defineproperty -- safe var defineProperty = Object.defineProperty; module.exports = function (key, value) { diff --git a/packages/core-js/internals/error-stack-installable.js b/packages/core-js/internals/error-stack-installable.js index 96b987fb7af2..206c96c8574e 100644 --- a/packages/core-js/internals/error-stack-installable.js +++ b/packages/core-js/internals/error-stack-installable.js @@ -5,7 +5,6 @@ var createPropertyDescriptor = require('../internals/create-property-descriptor' module.exports = !fails(function () { var error = new Error('a'); if (!('stack' in error)) return true; - // eslint-disable-next-line es/no-object-defineproperty -- safe Object.defineProperty(error, 'stack', createPropertyDescriptor(1, 7)); return error.stack !== 7; }); diff --git a/packages/core-js/internals/error-to-string.js b/packages/core-js/internals/error-to-string.js index ffa2cc09f87c..6ddaf617817f 100644 --- a/packages/core-js/internals/error-to-string.js +++ b/packages/core-js/internals/error-to-string.js @@ -7,7 +7,6 @@ var nativeErrorToString = Error.prototype.toString; var INCORRECT_TO_STRING = fails(function () { // Chrome 32- incorrectly call accessor - // eslint-disable-next-line es/no-object-defineproperty -- safe var object = Object.create(Object.defineProperty({}, 'name', { get: function () { return this === object; } })); diff --git a/packages/core-js/internals/export.js b/packages/core-js/internals/export.js index b175366fa823..6d8837462aeb 100644 --- a/packages/core-js/internals/export.js +++ b/packages/core-js/internals/export.js @@ -1,12 +1,13 @@ 'use strict'; var globalThis = require('../internals/global-this'); -var getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f; var createNonEnumerableProperty = require('../internals/create-non-enumerable-property'); var defineBuiltIn = require('../internals/define-built-in'); var defineGlobalProperty = require('../internals/define-global-property'); var copyConstructorProperties = require('../internals/copy-constructor-properties'); var isForced = require('../internals/is-forced'); +var getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor; + /* options.target - name of the target object options.global - target is the global object diff --git a/packages/core-js/internals/function-name.js b/packages/core-js/internals/function-name.js index b248b2fbd5b9..de1be151f47c 100644 --- a/packages/core-js/internals/function-name.js +++ b/packages/core-js/internals/function-name.js @@ -2,13 +2,11 @@ var hasOwn = require('../internals/has-own-property'); var FunctionPrototype = Function.prototype; -// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe -var getDescriptor = Object.getOwnPropertyDescriptor; var EXISTS = hasOwn(FunctionPrototype, 'name'); // additional protection from minified / mangled / dropped function names var PROPER = EXISTS && (function something() { /* empty */ }).name === 'something'; -var CONFIGURABLE = EXISTS && getDescriptor(FunctionPrototype, 'name').configurable; +var CONFIGURABLE = EXISTS && Object.getOwnPropertyDescriptor(FunctionPrototype, 'name').configurable; module.exports = { EXISTS: EXISTS, diff --git a/packages/core-js/internals/function-uncurry-this-accessor.js b/packages/core-js/internals/function-uncurry-this-accessor.js index 4d5ef1829ea9..f7274086602b 100644 --- a/packages/core-js/internals/function-uncurry-this-accessor.js +++ b/packages/core-js/internals/function-uncurry-this-accessor.js @@ -4,7 +4,6 @@ var aCallable = require('../internals/a-callable'); module.exports = function (object, key, method) { try { - // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe return uncurryThis(aCallable(Object.getOwnPropertyDescriptor(object, key)[method])); } catch (error) { /* empty */ } }; diff --git a/packages/core-js/internals/internal-metadata.js b/packages/core-js/internals/internal-metadata.js index fae21a03a7bb..3349055a2c0c 100644 --- a/packages/core-js/internals/internal-metadata.js +++ b/packages/core-js/internals/internal-metadata.js @@ -17,7 +17,7 @@ var id = 0; var setMetadata = function (it) { defineProperty(it, METADATA, { value: { objectID: 'O' + id++, // object ID - weakData: {}, // weak collections IDs + weakData: {}, // weak collections IDs } }); }; diff --git a/packages/core-js/internals/make-built-in.js b/packages/core-js/internals/make-built-in.js index 46e62092e73e..107ca30a8f7c 100644 --- a/packages/core-js/internals/make-built-in.js +++ b/packages/core-js/internals/make-built-in.js @@ -10,7 +10,6 @@ var InternalStateModule = require('../internals/internal-state'); var enforceInternalState = InternalStateModule.enforce; var getInternalState = InternalStateModule.get; var $String = String; -// eslint-disable-next-line es/no-object-defineproperty -- safe var defineProperty = Object.defineProperty; var stringSlice = uncurryThis(''.slice); var replace = uncurryThis(''.replace); diff --git a/packages/core-js/internals/object-assign.js b/packages/core-js/internals/object-assign.js index 831ea912714e..2b0e8b509dbe 100644 --- a/packages/core-js/internals/object-assign.js +++ b/packages/core-js/internals/object-assign.js @@ -9,7 +9,6 @@ var IndexedObject = require('../internals/indexed-object'); // eslint-disable-next-line es/no-object-assign -- safe var $assign = Object.assign; -// eslint-disable-next-line es/no-object-defineproperty -- required for testing var defineProperty = Object.defineProperty; var objectKeys = Object.keys; var concat = uncurryThis([].concat); @@ -34,7 +33,6 @@ module.exports = !$assign || fails(function () { var symbol = Symbol('assign detection'); var alphabet = 'abcdefghijklmnopqrst'; A[symbol] = 7; - // eslint-disable-next-line es/no-array-prototype-foreach -- safe alphabet.split('').forEach(function (chr) { B[chr] = chr; }); return $assign({}, A)[symbol] !== 7 || objectKeys($assign({}, B)).join('') !== alphabet; }) ? function assign(target, source) { // eslint-disable-line no-unused-vars -- required for `.length` diff --git a/packages/core-js/internals/object-define-properties.js b/packages/core-js/internals/object-define-properties.js index b1ae6acd5841..0e48a4b3ee61 100644 --- a/packages/core-js/internals/object-define-properties.js +++ b/packages/core-js/internals/object-define-properties.js @@ -8,8 +8,7 @@ var objectKeys = Object.keys; // `Object.defineProperties` method // https://tc39.es/ecma262/#sec-object.defineproperties -// eslint-disable-next-line es/no-object-defineproperties -- safe -exports.f = !V8_PROTOTYPE_DEFINE_BUG ? Object.defineProperties : function defineProperties(O, Properties) { +exports.f = V8_PROTOTYPE_DEFINE_BUG ? function defineProperties(O, Properties) { anObject(O); var props = toIndexedObject(Properties); var keys = objectKeys(Properties); @@ -18,4 +17,4 @@ exports.f = !V8_PROTOTYPE_DEFINE_BUG ? Object.defineProperties : function define var key; while (length > index) definePropertyModule.f(O, key = keys[index++], props[key]); return O; -}; +} : Object.defineProperties; diff --git a/packages/core-js/internals/object-define-property.js b/packages/core-js/internals/object-define-property.js index e3e5cdebc3d7..060eebedb21a 100644 --- a/packages/core-js/internals/object-define-property.js +++ b/packages/core-js/internals/object-define-property.js @@ -3,9 +3,7 @@ var V8_PROTOTYPE_DEFINE_BUG = require('../internals/v8-prototype-define-bug'); var anObject = require('../internals/an-object'); var toPropertyKey = require('../internals/to-property-key'); -// eslint-disable-next-line es/no-object-defineproperty -- safe var $defineProperty = Object.defineProperty; -// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe var $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor; var ENUMERABLE = 'enumerable'; var CONFIGURABLE = 'configurable'; diff --git a/packages/core-js/internals/object-get-own-property-descriptor.js b/packages/core-js/internals/object-get-own-property-descriptor.js index 3e5e9dacb580..a089c8c3947c 100644 --- a/packages/core-js/internals/object-get-own-property-descriptor.js +++ b/packages/core-js/internals/object-get-own-property-descriptor.js @@ -1,7 +1,4 @@ 'use strict'; -// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe -var $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor; - // `Object.getOwnPropertyDescriptor` method // https://tc39.es/ecma262/#sec-object.getownpropertydescriptor -exports.f = $getOwnPropertyDescriptor; +exports.f = Object.getOwnPropertyDescriptor; diff --git a/packages/core-js/internals/object-property-is-enumerable.js b/packages/core-js/internals/object-property-is-enumerable.js index f262d100ec57..0e069c3e13b2 100644 --- a/packages/core-js/internals/object-property-is-enumerable.js +++ b/packages/core-js/internals/object-property-is-enumerable.js @@ -1,6 +1,5 @@ 'use strict'; var $propertyIsEnumerable = {}.propertyIsEnumerable; -// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe var getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor; // Nashorn ~ JDK8 bug diff --git a/packages/core-js/internals/regexp-flags-detection.js b/packages/core-js/internals/regexp-flags-detection.js index 9a0576b91071..5d518f152bca 100644 --- a/packages/core-js/internals/regexp-flags-detection.js +++ b/packages/core-js/internals/regexp-flags-detection.js @@ -19,7 +19,6 @@ var FLAGS_GETTER_IS_CORRECT = !fails(function () { var expected = INDICES_SUPPORT ? 'dgimsy' : 'gimsy'; var addGetter = function (key, chr) { - // eslint-disable-next-line es/no-object-defineproperty -- safe Object.defineProperty(O, key, { get: function () { calls += chr; return true; @@ -38,7 +37,6 @@ var FLAGS_GETTER_IS_CORRECT = !fails(function () { for (var key in pairs) addGetter(key, pairs[key]); - // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe var result = Object.getOwnPropertyDescriptor(RegExp.prototype, 'flags').get.call(O); return result !== expected || calls !== expected; diff --git a/packages/core-js/internals/safe-get-built-in.js b/packages/core-js/internals/safe-get-built-in.js index 1f8faf623259..42bb50f043fc 100644 --- a/packages/core-js/internals/safe-get-built-in.js +++ b/packages/core-js/internals/safe-get-built-in.js @@ -1,7 +1,6 @@ 'use strict'; var globalThis = require('../internals/global-this'); -// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe var getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor; // Avoid NodeJS experimental warning diff --git a/packages/core-js/internals/set-method-get-keys-before-cloning-detection.js b/packages/core-js/internals/set-method-get-keys-before-cloning-detection.js index 780a5c05973d..85125ce0959d 100644 --- a/packages/core-js/internals/set-method-get-keys-before-cloning-detection.js +++ b/packages/core-js/internals/set-method-get-keys-before-cloning-detection.js @@ -9,7 +9,6 @@ module.exports = function (METHOD_NAME) { size: 0, has: function () { return true; }, keys: function () { - // eslint-disable-next-line es/no-object-defineproperty -- needed for test return Object.defineProperty({}, 'next', { get: function () { baseSet.clear(); diff --git a/packages/core-js/internals/v8-prototype-define-bug.js b/packages/core-js/internals/v8-prototype-define-bug.js index ffb966c6dfd1..a2cbd3c5c5f3 100644 --- a/packages/core-js/internals/v8-prototype-define-bug.js +++ b/packages/core-js/internals/v8-prototype-define-bug.js @@ -4,7 +4,6 @@ var fails = require('../internals/fails'); // V8 ~ Chrome 36- // https://bugs.chromium.org/p/v8/issues/detail?id=3334 module.exports = fails(function () { - // eslint-disable-next-line es/no-object-defineproperty -- required for testing return Object.defineProperty(function () { /* empty */ }, 'prototype', { value: 42, writable: false, diff --git a/packages/core-js/modules/es.array.push.js b/packages/core-js/modules/es.array.push.js index c9a5496982ab..df75873c0ec5 100644 --- a/packages/core-js/modules/es.array.push.js +++ b/packages/core-js/modules/es.array.push.js @@ -14,7 +14,6 @@ var INCORRECT_TO_LENGTH = fails(function () { // https://bugs.chromium.org/p/v8/issues/detail?id=12681 var properErrorOnNonWritableLength = function () { try { - // eslint-disable-next-line es/no-object-defineproperty -- safe Object.defineProperty([], 'length', { writable: false }).push(); } catch (error) { return error instanceof TypeError; diff --git a/packages/core-js/modules/es.array.unshift.js b/packages/core-js/modules/es.array.unshift.js index 326f13a53a4f..7a0e187d0fc5 100644 --- a/packages/core-js/modules/es.array.unshift.js +++ b/packages/core-js/modules/es.array.unshift.js @@ -12,7 +12,6 @@ var INCORRECT_RESULT = [].unshift(0) !== 1; // V8 ~ Chrome < 71 and Safari <= 15.4, FF < 23 throws InternalError var properErrorOnNonWritableLength = function () { try { - // eslint-disable-next-line es/no-object-defineproperty -- safe Object.defineProperty([], 'length', { writable: false }).unshift(); } catch (error) { return error instanceof TypeError; diff --git a/packages/core-js/modules/es.number.constructor.js b/packages/core-js/modules/es.number.constructor.js index fb2a7a2601f8..4cb68b774d32 100644 --- a/packages/core-js/modules/es.number.constructor.js +++ b/packages/core-js/modules/es.number.constructor.js @@ -5,14 +5,12 @@ var globalThis = require('../internals/global-this'); var path = require('../internals/path'); var uncurryThis = require('../internals/function-uncurry-this'); var isForced = require('../internals/is-forced'); -var hasOwn = require('../internals/has-own-property'); var inheritIfRequired = require('../internals/inherit-if-required'); var isPrototypeOf = require('../internals/object-is-prototype-of'); var isSymbol = require('../internals/is-symbol'); var toPrimitive = require('../internals/to-primitive'); var fails = require('../internals/fails'); -var getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f; -var defineProperty = require('../internals/object-define-property').f; +var copyConstructorProperties = require('../internals/copy-constructor-properties'); var thisNumberValue = require('../internals/this-number-value'); var trim = require('../internals/string-trim').trim; @@ -93,14 +91,5 @@ $({ global: true, constructor: true, wrap: true, forced: FORCED }, { Number: NumberWrapper, }); -// Use `internal/copy-constructor-properties` helper in `core-js@4` -var copyConstructorProperties = function (target, source) { - for (var keys = Object.getOwnPropertyNames(source), j = 0, key; keys.length > j; j++) { - if (hasOwn(source, key = keys[j]) && !hasOwn(target, key)) { - defineProperty(target, key, getOwnPropertyDescriptor(source, key)); - } - } -}; - if (IS_PURE && PureNumberNamespace) copyConstructorProperties(path[NUMBER], PureNumberNamespace); if (FORCED || IS_PURE) copyConstructorProperties(path[NUMBER], NativeNumber); diff --git a/packages/core-js/modules/es.object.define-properties.js b/packages/core-js/modules/es.object.define-properties.js index 654f8f07e8f6..bce77bc970c4 100644 --- a/packages/core-js/modules/es.object.define-properties.js +++ b/packages/core-js/modules/es.object.define-properties.js @@ -4,7 +4,6 @@ var defineProperties = require('../internals/object-define-properties').f; // `Object.defineProperties` method // https://tc39.es/ecma262/#sec-object.defineproperties -// eslint-disable-next-line es/no-object-defineproperties -- safe $({ target: 'Object', stat: true, forced: Object.defineProperties !== defineProperties }, { defineProperties: defineProperties, }); diff --git a/packages/core-js/modules/es.object.define-property.js b/packages/core-js/modules/es.object.define-property.js index fe083d5bcb2c..a6c59ef08c33 100644 --- a/packages/core-js/modules/es.object.define-property.js +++ b/packages/core-js/modules/es.object.define-property.js @@ -4,7 +4,6 @@ var defineProperty = require('../internals/object-define-property').f; // `Object.defineProperty` method // https://tc39.es/ecma262/#sec-object.defineproperty -// eslint-disable-next-line es/no-object-defineproperty -- safe $({ target: 'Object', stat: true, forced: Object.defineProperty !== defineProperty }, { defineProperty: defineProperty, }); diff --git a/packages/core-js/modules/es.object.lookup-getter.js b/packages/core-js/modules/es.object.lookup-getter.js index 0181cd264caa..5fef7f074e68 100644 --- a/packages/core-js/modules/es.object.lookup-getter.js +++ b/packages/core-js/modules/es.object.lookup-getter.js @@ -3,9 +3,9 @@ var $ = require('../internals/export'); var FORCED = require('../internals/object-prototype-accessors-forced'); var toObject = require('../internals/to-object'); var toPropertyKey = require('../internals/to-property-key'); -var getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f; var getPrototypeOf = Object.getPrototypeOf; +var getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor; // `Object.prototype.__lookupGetter__` method // https://tc39.es/ecma262/#sec-object.prototype.__lookupGetter__ diff --git a/packages/core-js/modules/es.object.lookup-setter.js b/packages/core-js/modules/es.object.lookup-setter.js index 8efeef1d65ef..e8af92fc0cf2 100644 --- a/packages/core-js/modules/es.object.lookup-setter.js +++ b/packages/core-js/modules/es.object.lookup-setter.js @@ -3,9 +3,9 @@ var $ = require('../internals/export'); var FORCED = require('../internals/object-prototype-accessors-forced'); var toObject = require('../internals/to-object'); var toPropertyKey = require('../internals/to-property-key'); -var getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f; var getPrototypeOf = Object.getPrototypeOf; +var getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor; // `Object.prototype.__lookupSetter__` method // https://tc39.es/ecma262/#sec-object.prototype.__lookupSetter__ diff --git a/packages/core-js/modules/es.reflect.delete-property.js b/packages/core-js/modules/es.reflect.delete-property.js index 5c1ad1dc335a..9541b59e27cb 100644 --- a/packages/core-js/modules/es.reflect.delete-property.js +++ b/packages/core-js/modules/es.reflect.delete-property.js @@ -1,7 +1,8 @@ 'use strict'; var $ = require('../internals/export'); var anObject = require('../internals/an-object'); -var getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f; + +var getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor; // `Reflect.deleteProperty` method // https://tc39.es/ecma262/#sec-reflect.deleteproperty diff --git a/packages/core-js/modules/es.reflect.get.js b/packages/core-js/modules/es.reflect.get.js index 0a20285b7ee3..1fd5d68bcb54 100644 --- a/packages/core-js/modules/es.reflect.get.js +++ b/packages/core-js/modules/es.reflect.get.js @@ -4,9 +4,9 @@ var call = require('../internals/function-call'); var isObject = require('../internals/is-object'); var anObject = require('../internals/an-object'); var isDataDescriptor = require('../internals/is-data-descriptor'); -var getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor'); var getPrototypeOf = Object.getPrototypeOf; +var getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor; // `Reflect.get` method // https://tc39.es/ecma262/#sec-reflect.get @@ -14,7 +14,7 @@ function get(target, propertyKey /* , receiver */) { var receiver = arguments.length < 3 ? target : arguments[2]; var descriptor, prototype; if (anObject(target) === receiver) return target[propertyKey]; - descriptor = getOwnPropertyDescriptorModule.f(target, propertyKey); + descriptor = getOwnPropertyDescriptor(target, propertyKey); if (descriptor) return isDataDescriptor(descriptor) ? descriptor.value : descriptor.get === undefined ? undefined : call(descriptor.get, receiver); diff --git a/packages/core-js/modules/es.string.ends-with.js b/packages/core-js/modules/es.string.ends-with.js index 1ce5e1821833..71ae034c109d 100644 --- a/packages/core-js/modules/es.string.ends-with.js +++ b/packages/core-js/modules/es.string.ends-with.js @@ -1,7 +1,6 @@ 'use strict'; var $ = require('../internals/export'); var uncurryThis = require('../internals/function-uncurry-this-clause'); -var getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f; var toLength = require('../internals/to-length'); var toString = require('../internals/to-string'); var notARegExp = require('../internals/not-a-regexp'); @@ -15,7 +14,7 @@ var min = Math.min; var CORRECT_IS_REGEXP_LOGIC = correctIsRegExpLogic('endsWith'); // https://github.com/zloirock/core-js/pull/702 var MDN_POLYFILL_BUG = !IS_PURE && !CORRECT_IS_REGEXP_LOGIC && !!function () { - var descriptor = getOwnPropertyDescriptor(String.prototype, 'endsWith'); + var descriptor = Object.getOwnPropertyDescriptor(String.prototype, 'endsWith'); return descriptor && !descriptor.writable; }(); diff --git a/packages/core-js/modules/es.string.starts-with.js b/packages/core-js/modules/es.string.starts-with.js index 371faf9f3cbd..85e056efc44f 100644 --- a/packages/core-js/modules/es.string.starts-with.js +++ b/packages/core-js/modules/es.string.starts-with.js @@ -1,7 +1,6 @@ 'use strict'; var $ = require('../internals/export'); var uncurryThis = require('../internals/function-uncurry-this-clause'); -var getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f; var toLength = require('../internals/to-length'); var toString = require('../internals/to-string'); var notARegExp = require('../internals/not-a-regexp'); @@ -15,7 +14,7 @@ var min = Math.min; var CORRECT_IS_REGEXP_LOGIC = correctIsRegExpLogic('startsWith'); // https://github.com/zloirock/core-js/pull/702 var MDN_POLYFILL_BUG = !IS_PURE && !CORRECT_IS_REGEXP_LOGIC && !!function () { - var descriptor = getOwnPropertyDescriptor(String.prototype, 'startsWith'); + var descriptor = Object.getOwnPropertyDescriptor(String.prototype, 'startsWith'); return descriptor && !descriptor.writable; }(); diff --git a/packages/core-js/modules/es.symbol.async-dispose.js b/packages/core-js/modules/es.symbol.async-dispose.js index 76d7edec7779..14a719f64581 100644 --- a/packages/core-js/modules/es.symbol.async-dispose.js +++ b/packages/core-js/modules/es.symbol.async-dispose.js @@ -1,8 +1,6 @@ 'use strict'; var globalThis = require('../internals/global-this'); var defineWellKnownSymbol = require('../internals/well-known-symbol-define'); -var defineProperty = require('../internals/object-define-property').f; -var getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f; var Symbol = globalThis.Symbol; @@ -11,11 +9,11 @@ var Symbol = globalThis.Symbol; defineWellKnownSymbol('asyncDispose'); if (Symbol) { - var descriptor = getOwnPropertyDescriptor(Symbol, 'asyncDispose'); + var descriptor = Object.getOwnPropertyDescriptor(Symbol, 'asyncDispose'); // workaround of NodeJS 20.4 bug // https://github.com/nodejs/node/issues/48699 // and incorrect descriptor from some transpilers and userland helpers if (descriptor.enumerable && descriptor.configurable && descriptor.writable) { - defineProperty(Symbol, 'asyncDispose', { value: descriptor.value, enumerable: false, configurable: false, writable: false }); + Object.defineProperty(Symbol, 'asyncDispose', { value: descriptor.value, enumerable: false, configurable: false, writable: false }); } } diff --git a/packages/core-js/modules/es.symbol.dispose.js b/packages/core-js/modules/es.symbol.dispose.js index 4cae30cb1ae8..6124e641c75f 100644 --- a/packages/core-js/modules/es.symbol.dispose.js +++ b/packages/core-js/modules/es.symbol.dispose.js @@ -1,8 +1,6 @@ 'use strict'; var globalThis = require('../internals/global-this'); var defineWellKnownSymbol = require('../internals/well-known-symbol-define'); -var defineProperty = require('../internals/object-define-property').f; -var getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f; var Symbol = globalThis.Symbol; @@ -11,11 +9,11 @@ var Symbol = globalThis.Symbol; defineWellKnownSymbol('dispose'); if (Symbol) { - var descriptor = getOwnPropertyDescriptor(Symbol, 'dispose'); + var descriptor = Object.getOwnPropertyDescriptor(Symbol, 'dispose'); // workaround of NodeJS 20.4 bug // https://github.com/nodejs/node/issues/48699 // and incorrect descriptor from some transpilers and userland helpers if (descriptor.enumerable && descriptor.configurable && descriptor.writable) { - defineProperty(Symbol, 'dispose', { value: descriptor.value, enumerable: false, configurable: false, writable: false }); + Object.defineProperty(Symbol, 'dispose', { value: descriptor.value, enumerable: false, configurable: false, writable: false }); } } diff --git a/packages/core-js/modules/esnext.function.is-callable.js b/packages/core-js/modules/esnext.function.is-callable.js index 6d389bfc654f..a1418abca6fe 100644 --- a/packages/core-js/modules/esnext.function.is-callable.js +++ b/packages/core-js/modules/esnext.function.is-callable.js @@ -5,7 +5,6 @@ var $isCallable = require('../internals/is-callable'); var inspectSource = require('../internals/inspect-source'); var hasOwn = require('../internals/has-own-property'); -// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe var getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor; var classRegExp = /^\s*class\b/; var exec = uncurryThis(classRegExp.exec); diff --git a/packages/core-js/modules/esnext.json.parse.js b/packages/core-js/modules/esnext.json.parse.js index f931af9bcfca..52e348968455 100644 --- a/packages/core-js/modules/esnext.json.parse.js +++ b/packages/core-js/modules/esnext.json.parse.js @@ -17,7 +17,6 @@ var Number = globalThis.Number; var SyntaxError = globalThis.SyntaxError; var nativeParse = JSON.parse; var enumerableOwnProperties = Object.keys; -// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe var getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor; var isArray = Array.isArray; var at = uncurryThis(''.charAt); diff --git a/packages/core-js/modules/web.dom-exception.stack.js b/packages/core-js/modules/web.dom-exception.stack.js index 871992fc8b7c..c4a83e81e2b4 100644 --- a/packages/core-js/modules/web.dom-exception.stack.js +++ b/packages/core-js/modules/web.dom-exception.stack.js @@ -34,7 +34,6 @@ var DOMExceptionPrototype = $DOMException.prototype = NativeDOMException.prototy var ERROR_HAS_STACK = 'stack' in new Error(DOM_EXCEPTION); var DOM_EXCEPTION_HAS_STACK = 'stack' in new NativeDOMException(1, 2); -// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe var descriptor = NativeDOMException && Object.getOwnPropertyDescriptor(globalThis, DOM_EXCEPTION); // Bun ~ 0.1.1 DOMException have incorrect descriptor and we can't redefine it diff --git a/packages/core-js/modules/web.queue-microtask.js b/packages/core-js/modules/web.queue-microtask.js index 728a3d87f110..3f20cf2a0d59 100644 --- a/packages/core-js/modules/web.queue-microtask.js +++ b/packages/core-js/modules/web.queue-microtask.js @@ -10,7 +10,6 @@ var fails = require('../internals/fails'); // https://github.com/oven-sh/bun/issues/9249 var WRONG_ARITY = fails(function () { // getOwnPropertyDescriptor for prevent experimental warning in Node 11 - // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe return Object.getOwnPropertyDescriptor(globalThis, 'queueMicrotask').value.length !== 1; }); diff --git a/packages/core-js/modules/web.self.js b/packages/core-js/modules/web.self.js index 30169e502678..596d2d46c5fc 100644 --- a/packages/core-js/modules/web.self.js +++ b/packages/core-js/modules/web.self.js @@ -3,14 +3,12 @@ var globalThis = require('../internals/global-this'); var defineBuiltInAccessor = require('../internals/define-built-in-accessor'); var $TypeError = TypeError; -// eslint-disable-next-line es/no-object-defineproperty -- safe var defineProperty = Object.defineProperty; var INCORRECT_VALUE = globalThis.self !== globalThis; // `self` getter // https://html.spec.whatwg.org/multipage/window-object.html#dom-self try { - // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe var descriptor = Object.getOwnPropertyDescriptor(globalThis, 'self'); // some engines have `self`, but with incorrect descriptor // https://github.com/denoland/deno/issues/15765 diff --git a/tests/eslint/eslint.config.js b/tests/eslint/eslint.config.js index 06a030726397..2daed10a40f5 100644 --- a/tests/eslint/eslint.config.js +++ b/tests/eslint/eslint.config.js @@ -1448,9 +1448,6 @@ const forbidES5BuiltIns = { 'es/no-array-prototype-reduce': ERROR, 'es/no-array-prototype-reduceright': ERROR, 'es/no-array-prototype-some': ERROR, - 'es/no-object-defineproperties': ERROR, - 'es/no-object-defineproperty': ERROR, - 'es/no-object-getownpropertydescriptor': ERROR, 'es/no-object-isextensible': ERROR, 'es/no-object-isfrozen': ERROR, 'es/no-object-issealed': ERROR, diff --git a/tests/helpers/qunit-helpers.js b/tests/helpers/qunit-helpers.js index 8b2cce115e1d..b197cf7340ab 100644 --- a/tests/helpers/qunit-helpers.js +++ b/tests/helpers/qunit-helpers.js @@ -3,7 +3,6 @@ import isIterable from 'core-js-pure/es/is-iterable'; import ASYNC_ITERATOR from 'core-js-pure/es/symbol/async-iterator'; import { is, arrayFromArrayLike } from './helpers.js'; -// eslint-disable-next-line es/no-object-getownpropertydescriptor, es/no-object-getownpropertynames -- safe const { getOwnPropertyDescriptor, getOwnPropertyNames } = Object; const { toString, propertyIsEnumerable } = Object.prototype; diff --git a/tests/unit-pure/es.promise.constructor.js b/tests/unit-pure/es.promise.constructor.js index be306fa3b851..d5420332efca 100644 --- a/tests/unit-pure/es.promise.constructor.js +++ b/tests/unit-pure/es.promise.constructor.js @@ -45,7 +45,7 @@ QUnit.test('Promise operations order', assert => { const promise2 = new Promise(resolve => { $resolve2 = resolve; }); - // eslint-disable-next-line es/no-object-defineproperty, unicorn/no-thenable -- required for testing + // eslint-disable-next-line unicorn/no-thenable -- required for testing $resolve2(Object.defineProperty({}, 'then', { get() { result += 'D'; diff --git a/tests/unit-pure/esnext.iterator.range.js b/tests/unit-pure/esnext.iterator.range.js index 7f97632a5a20..91f919fe2076 100644 --- a/tests/unit-pure/esnext.iterator.range.js +++ b/tests/unit-pure/esnext.iterator.range.js @@ -59,7 +59,6 @@ QUnit.test('Iterator.range', assert => { assert.true(iterator.inclusive); iterator = range(0, 5); - // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe assert.throws(() => Object.getOwnPropertyDescriptor(iterator, 'start').get.call({}), TypeError); assert.throws(() => range(Infinity, 10, 0), RangeError); @@ -114,7 +113,6 @@ QUnit.test('Iterator.range', assert => { assert.true(iterator.inclusive); iterator = range(BigInt(0), BigInt(5)); - // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe assert.throws(() => Object.getOwnPropertyDescriptor(iterator, 'start').get.call({}), TypeError); assert.throws(() => range(Infinity, BigInt(10), BigInt(0)), TypeError); diff --git a/tests/unit-pure/web.url.constructor.js b/tests/unit-pure/web.url.constructor.js index eb6a89637ac8..b20f96d73fc3 100644 --- a/tests/unit-pure/web.url.constructor.js +++ b/tests/unit-pure/web.url.constructor.js @@ -1,4 +1,4 @@ -/* eslint-disable es/no-object-getownpropertydescriptor, unicorn/relative-url-style -- required for testing */ +/* eslint-disable unicorn/relative-url-style -- required for testing */ import { NODE } from '../helpers/constants.js'; import urlTestData from '../wpt-url-resources/urltestdata.js'; import settersTestData from '../wpt-url-resources/setters.js'; From fd3516657a0cfdfb9f3c011240be51c8c7dff217 Mon Sep 17 00:00:00 2001 From: Denis Pushkarev Date: Tue, 10 Oct 2023 00:24:49 +0700 Subject: [PATCH 113/428] drop Node < 18.12 support in tools --- package-lock.json | 3 +- packages/core-js-builder/index.js | 16 +++----- packages/core-js-builder/package.json | 3 +- packages/core-js-compat/compat.js | 11 ++--- packages/core-js-compat/helpers.js | 14 +++---- packages/core-js-compat/targets-parser.js | 19 +++++---- scripts/build-compat/data.mjs | 13 +++--- tests/eslint/eslint.config.js | 50 ++++------------------- 8 files changed, 44 insertions(+), 85 deletions(-) diff --git a/package-lock.json b/package-lock.json index 1f122639fc87..3566ac813f9e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -5888,11 +5888,10 @@ "dependencies": { "core-js": "3.46.0", "core-js-compat": "3.46.0", - "mkdirp": ">=0.5.6 <1", "webpack": ">=4.47.0 <5" }, "engines": { - "node": ">=8.9.0" + "node": "^18.12.0 || >=20.0.0" }, "funding": { "type": "opencollective", diff --git a/packages/core-js-builder/index.js b/packages/core-js-builder/index.js index 19a8e7fb6599..c2cef5508bb2 100644 --- a/packages/core-js-builder/index.js +++ b/packages/core-js-builder/index.js @@ -1,15 +1,9 @@ 'use strict'; /* eslint-disable no-console -- output */ -const { promisify } = require('util'); -const fs = require('fs'); -// TODO: replace by `fs.promises` after dropping NodeJS < 10 support -const readFile = promisify(fs.readFile); -const unlink = promisify(fs.unlink); -const writeFile = promisify(fs.writeFile); -const { dirname, join } = require('path'); -const tmpdir = require('os').tmpdir(); -// TODO: replace by `mkdir` with `recursive: true` after dropping NodeJS < 10.12 support -const mkdirp = promisify(require('mkdirp')); +const { promisify } = require('node:util'); +const { mkdir, readFile, unlink, writeFile } = require('node:fs/promises'); +const { dirname, join } = require('node:path'); +const tmpdir = require('node:os').tmpdir(); const webpack = promisify(require('webpack')); const compat = require('core-js-compat/compat'); const { banner } = require('./config'); @@ -95,7 +89,7 @@ module.exports = async function ({ } if (!(filename === null || filename === undefined)) { - await mkdirp(dirname(filename)); + await mkdir(dirname(filename), { recursive: true }); await writeFile(filename, script); } diff --git a/packages/core-js-builder/package.json b/packages/core-js-builder/package.json index d0d4007daa5a..8573bc59762e 100644 --- a/packages/core-js-builder/package.json +++ b/packages/core-js-builder/package.json @@ -28,10 +28,9 @@ "dependencies": { "core-js": "3.46.0", "core-js-compat": "3.46.0", - "mkdirp": ">=0.5.6 <1", "webpack": ">=4.47.0 <5" }, "engines": { - "node": ">=8.9.0" + "node": "^18.12.0 || >=20.0.0" } } diff --git a/packages/core-js-compat/compat.js b/packages/core-js-compat/compat.js index deb61d2afc51..2569cb4581d7 100644 --- a/packages/core-js-compat/compat.js +++ b/packages/core-js-compat/compat.js @@ -1,5 +1,5 @@ 'use strict'; -const { compare, filterOutStabilizedProposals, has, intersection } = require('./helpers'); +const { compare, filterOutStabilizedProposals, intersection } = require('./helpers'); const data = require('./data'); const entries = require('./entries'); const getModulesListForTargetVersion = require('./get-modules-list-for-target-version'); @@ -8,6 +8,8 @@ const targetsParser = require('./targets-parser'); const actualModules = entries['core-js/actual']; +const { hasOwn } = Object; + function throwInvalidFilter(filter) { throw new TypeError(`Specified invalid module name or pattern: ${ filter }`); } @@ -19,7 +21,7 @@ function atLeastSomeModules(modules, filter) { function getModules(filter) { if (typeof filter == 'string') { - if (has(entries, filter)) return entries[filter]; + if (hasOwn(entries, filter)) return entries[filter]; return atLeastSomeModules(allModules.filter(it => it.startsWith(filter)), filter); } if (filter instanceof RegExp) return atLeastSomeModules(allModules.filter(it => filter.test(it)), filter); @@ -27,8 +29,7 @@ function getModules(filter) { } function normalizeModules(option) { - // TODO: use `.flatMap` in core-js@4 - return new Set(Array.isArray(option) ? [].concat(...option.map(getModules)) : getModules(option)); + return new Set(Array.isArray(option) ? option.flatMap(getModules) : getModules(option)); } function checkModule(name, targets) { @@ -42,7 +43,7 @@ function checkModule(name, targets) { const requirements = data[name]; for (const [engine, version] of targets) { - if (!has(requirements, engine) || compare(version, '<', requirements[engine])) { + if (!hasOwn(requirements, engine) || compare(version, '<', requirements[engine])) { result.required = true; result.targets[engine] = version; } diff --git a/packages/core-js-compat/helpers.js b/packages/core-js-compat/helpers.js index 62a6f4355691..50a768ea1945 100644 --- a/packages/core-js-compat/helpers.js +++ b/packages/core-js-compat/helpers.js @@ -1,17 +1,14 @@ 'use strict'; -// eslint-disable-next-line es/no-object-hasown -- safe -const has = Object.hasOwn || Function.call.bind({}.hasOwnProperty); - -const VERSION_PATTERN = /(\d+)(?:\.(\d+))?(?:\.(\d+))?/; +const VERSION_PATTERN = /(?\d+)(?:\.(?\d+))?(?:\.(?\d+))?/; class SemVer { constructor(input) { const match = VERSION_PATTERN.exec(input); if (!match) throw new TypeError(`Invalid version: ${ input }`); - const [, $major, $minor, $patch] = match; - this.major = +$major; - this.minor = $minor ? +$minor : 0; - this.patch = $patch ? +$patch : 0; + const { major, minor, patch } = match.groups; + this.major = +major; + this.minor = +minor || 0; + this.patch = +patch || 0; } toString() { return `${ this.major }.${ this.minor }.${ this.patch }`; @@ -58,7 +55,6 @@ function sortObjectByKey(object, fn) { module.exports = { compare, filterOutStabilizedProposals, - has, intersection, semver, sortObjectByKey, diff --git a/packages/core-js-compat/targets-parser.js b/packages/core-js-compat/targets-parser.js index b397f2fa76b8..e2661cb16a93 100644 --- a/packages/core-js-compat/targets-parser.js +++ b/packages/core-js-compat/targets-parser.js @@ -1,8 +1,11 @@ 'use strict'; const browserslist = require('browserslist'); -const { compare, has } = require('./helpers'); +const { compare } = require('./helpers'); const external = require('./external'); +const { entries, hasOwn } = Object; +const { isArray } = Array; + const aliases = new Map([ ['and_chr', 'chrome-android'], ['and_ff', 'firefox-android'], @@ -40,36 +43,36 @@ const validTargets = new Set([ ]); const toLowerKeys = function (object) { - return Object.entries(object).reduce((accumulator, [key, value]) => { + return entries(object).reduce((accumulator, [key, value]) => { accumulator[key.toLowerCase()] = value; return accumulator; }, {}); }; module.exports = function (targets) { - const { browsers, esmodules, node, ...rest } = (typeof targets != 'object' || Array.isArray(targets)) + const { browsers, esmodules, node, ...rest } = (typeof targets != 'object' || isArray(targets)) ? { browsers: targets } : toLowerKeys(targets); - const list = Object.entries(rest); + const list = entries(rest); const normalizedESModules = esmodules === 'intersect' ? 'intersect' : !!esmodules; if (browsers && normalizedESModules !== true) { - if (typeof browsers == 'string' || Array.isArray(browsers)) { + if (typeof browsers == 'string' || isArray(browsers)) { list.push(...browserslist(browsers).map(it => it.split(' '))); } else { - list.push(...Object.entries(browsers)); + list.push(...entries(browsers)); } } if (normalizedESModules === true) { - list.push(...Object.entries(external.modules)); + list.push(...entries(external.modules)); } if (node) { list.push(['node', node === 'current' ? process.versions.node : node]); } const normalized = list.map(([engine, version]) => { - if (has(browserslist.aliases, engine)) { + if (hasOwn(browserslist.aliases, engine)) { engine = browserslist.aliases[engine]; } if (aliases.has(engine)) { diff --git a/scripts/build-compat/data.mjs b/scripts/build-compat/data.mjs index 3ae7ac5632fd..4965b03e18c0 100644 --- a/scripts/build-compat/data.mjs +++ b/scripts/build-compat/data.mjs @@ -4,7 +4,8 @@ import external from 'core-js-compat/src/external.mjs'; import mappings from 'core-js-compat/src/mapping.mjs'; import helpers from 'core-js-compat/helpers.js'; -const { compare, has, semver, sortObjectByKey } = helpers; +const { compare, semver, sortObjectByKey } = helpers; +const { hasOwn } = Object; for (const scope of [data, external]) { for (const [key, module] of Object.entries(scope)) { @@ -14,7 +15,7 @@ for (const scope of [data, external]) { const [engine, targetKey] = mappingKey.split('To') .map(it => it.replace(/(?[a-z])(?[A-Z])/, '$-$').toLowerCase()); const version = module[engine]; - if (!version || has(module, targetKey)) return; + if (!version || hasOwn(module, targetKey)) return; const mapping = mappings[mappingKey]; if (typeof mapping == 'function') { return module[targetKey] = String(mapping(version)); @@ -31,7 +32,7 @@ for (const scope of [data, external]) { map('ChromeToDeno'); map('ChromeToNode'); } - if (!has(module, 'edge')) { + if (!hasOwn(module, 'edge')) { if (ie && !key.includes('immediate')) { module.edge = '12'; } else if (chrome) { @@ -44,11 +45,11 @@ for (const scope of [data, external]) { map('ChromeToOpera'); map('ChromeToChromeAndroid'); map('ChromeToAndroid'); - if (!has(module, 'android') && module['chrome-android']) { + if (!hasOwn(module, 'android') && module['chrome-android']) { // https://github.com/mdn/browser-compat-data/blob/main/docs/matching-browser-releases/index.md#version-numbers-for-features-in-android-webview module.android = String(Math.max(module['chrome-android'], 37)); } - if (!has(module, 'opera-android') && module.opera <= 42) { + if (!hasOwn(module, 'opera-android') && module.opera <= 42) { module['opera-android'] = module.opera; } else { map('ChromeAndroidToOperaAndroid'); @@ -60,7 +61,7 @@ for (const scope of [data, external]) { } map('FirefoxToFirefoxAndroid'); map('SafariToIOS'); - if (!has(module, 'ios') && has(module, 'safari')) { + if (!hasOwn(module, 'ios') && hasOwn(module, 'safari')) { module.ios = module.safari; } map('SafariToPhantom'); diff --git a/tests/eslint/eslint.config.js b/tests/eslint/eslint.config.js index 2daed10a40f5..861b467350ff 100644 --- a/tests/eslint/eslint.config.js +++ b/tests/eslint/eslint.config.js @@ -23,7 +23,7 @@ import pluginStylistic from '@stylistic/eslint-plugin'; import pluginUnicorn from 'eslint-plugin-unicorn'; import { yaml as pluginYaml } from 'eslint-yaml'; -const PACKAGES_NODE_VERSIONS = '8.9.0'; +const PACKAGES_NODE_VERSIONS = '^18.12'; const DEV_NODE_VERSIONS = '^18.12'; const ERROR = 'error'; @@ -1804,55 +1804,21 @@ const transpiledAndPolyfilled = { }; const nodePackages = { - // disallow logical assignment operator shorthand - 'logical-assignment-operators': [ERROR, NEVER], // disallow unsupported ECMAScript built-ins on the specified version 'node/no-unsupported-features/node-builtins': [ERROR, { version: PACKAGES_NODE_VERSIONS, allowExperimental: false }], - // prefer `node:` protocol - 'node/prefer-node-protocol': OFF, - // prefer promises - 'node/prefer-promises/dns': OFF, - 'node/prefer-promises/fs': OFF, - // prefer lookarounds over capturing group that do not replace - 'regexp/prefer-lookaround': [ERROR, { lookbehind: false, strictTypes: true }], - // enforce using named capture group in regular expression - 'regexp/prefer-named-capture-group': OFF, - // prefer class field declarations over this assignments in constructors - 'unicorn/prefer-class-fields': OFF, - // prefer using a logical operator over a ternary - 'unicorn/prefer-logical-operator-over-ternary': OFF, - // prefer using the `node:` protocol when importing Node builtin modules - 'unicorn/prefer-node-protocol': OFF, - // prefer omitting the `catch` binding parameter - 'unicorn/prefer-optional-catch-binding': OFF, - // prefer using `structuredClone` to create a deep clone - 'unicorn/prefer-structured-clone': OFF, - ...disable(forbidES5BuiltIns), - ...disable(forbidES2015BuiltIns), - ...disable(forbidES2016BuiltIns), - ...disable(forbidES2017BuiltIns), - 'es/no-atomics': ERROR, - 'es/no-shared-array-buffer': ERROR, - // disallow top-level `await` - 'es/no-top-level-await': ERROR, - ...forbidES2018BuiltIns, - ...forbidES2019BuiltIns, - ...forbidES2020BuiltIns, - ...forbidES2021BuiltIns, - ...forbidES2022BuiltIns, ...forbidES2023BuiltIns, + 'es/no-array-prototype-findlast-findlastindex': OFF, ...forbidES2024BuiltIns, ...forbidES2025BuiltIns, ...forbidES2026BuiltIns, - ...disable(forbidES2016IntlBuiltIns), - ...disable(forbidES2017IntlBuiltIns), - ...forbidES2018IntlBuiltIns, - ...forbidES2020IntlBuiltIns, - ...forbidES2021IntlBuiltIns, - ...forbidES2022IntlBuiltIns, + 'es/no-intl-supportedvaluesof': ERROR, ...forbidES2023IntlBuiltIns, - ...forbidES2025IntlBuiltIns, + ...forbidES2025BuiltIns, + // prefer using `structuredClone` to create a deep clone + 'unicorn/prefer-structured-clone': OFF, ...forbidSomeES2025Syntax, + // prefer top-level await + 'unicorn/prefer-top-level-await': ERROR, }; const nodeDev = { From 6769f9b6ae2f117887cace15cb732b0990c0cac7 Mon Sep 17 00:00:00 2001 From: Denis Pushkarev Date: Tue, 10 Oct 2023 01:40:37 +0700 Subject: [PATCH 114/428] `core-js` version in `core-js-compat` should be specified as a SemVer string with minor component --- .../get-modules-list-for-target-version.js | 7 +++++-- packages/core-js-compat/helpers.js | 18 ++++++++++++------ .../get-modules-list-for-target-version.mjs | 4 ++-- 3 files changed, 19 insertions(+), 10 deletions(-) diff --git a/packages/core-js-compat/get-modules-list-for-target-version.js b/packages/core-js-compat/get-modules-list-for-target-version.js index e091c64a7fc8..b8c0f6d2c4c8 100644 --- a/packages/core-js-compat/get-modules-list-for-target-version.js +++ b/packages/core-js-compat/get-modules-list-for-target-version.js @@ -4,9 +4,12 @@ const modulesByVersions = require('./modules-by-versions'); const modules = require('./modules'); module.exports = function (raw) { - const corejs = semver(raw); + if (!['string', 'object'].includes(typeof raw)) { + throw new TypeError('`core-js` version should be specified as a SemVer string with minor component'); + } + const corejs = semver(raw, true); if (corejs.major !== 3) { - throw new RangeError('This version of `core-js-compat` works only with `core-js@3`.'); + throw new RangeError('This version of `core-js-compat` works only with `core-js@3`'); } const result = []; for (const version of Object.keys(modulesByVersions)) { diff --git a/packages/core-js-compat/helpers.js b/packages/core-js-compat/helpers.js index 50a768ea1945..3cd1432e388c 100644 --- a/packages/core-js-compat/helpers.js +++ b/packages/core-js-compat/helpers.js @@ -1,10 +1,16 @@ 'use strict'; -const VERSION_PATTERN = /(?\d+)(?:\.(?\d+))?(?:\.(?\d+))?/; +const SEMVER = /(?\d+)(?:\.(?\d+))?(?:\.(?\d+))?/; +// eslint-disable-next-line redos/no-vulnerable -- ok +const SEMVER_WITH_REQUIRED_MINOR = /(?\d+)\.(?\d+)(?:\.(?\d+))?/; class SemVer { - constructor(input) { - const match = VERSION_PATTERN.exec(input); - if (!match) throw new TypeError(`Invalid version: ${ input }`); + constructor(input, requiredMinor) { + const match = (requiredMinor ? SEMVER_WITH_REQUIRED_MINOR : SEMVER).exec(input); + if (!match) { + let message = `Invalid version: ${ input }`; + if (requiredMinor && SEMVER.test(input)) message += ', minor component required'; + throw new TypeError(message); + } const { major, minor, patch } = match.groups; this.major = +major; this.minor = +minor || 0; @@ -15,8 +21,8 @@ class SemVer { } } -function semver(input) { - return input instanceof SemVer ? input : new SemVer(input); +function semver(input, requiredMinor) { + return input instanceof SemVer ? input : new SemVer(input, requiredMinor); } function compare($a, operator, $b) { diff --git a/tests/compat-tools/get-modules-list-for-target-version.mjs b/tests/compat-tools/get-modules-list-for-target-version.mjs index 5b2605d5c3aa..046844d8dfe2 100644 --- a/tests/compat-tools/get-modules-list-for-target-version.mjs +++ b/tests/compat-tools/get-modules-list-for-target-version.mjs @@ -8,8 +8,6 @@ const modules30 = modulesByVersions['3.0']; const filter = new Set([...modules30, ...modulesByVersions['3.1'] ?? []]); const modules31 = modules.filter(it => filter.has(it)); -deepEqual(getModulesListForTargetVersion(3), modules30, 'num 3'); // TODO: Make it throw in core-js@4 -deepEqual(getModulesListForTargetVersion('3'), modules30, '3'); // TODO: Make it throw in core-js@4 deepEqual(getModulesListForTargetVersion('3.0'), modules30, '3.0'); deepEqual(getModulesListForTargetVersion('3.0.0'), modules30, '3.0.0'); deepEqual(getModulesListForTargetVersion('3.0.1'), modules30, '3.0.1'); @@ -18,6 +16,8 @@ deepEqual(getModulesListForTargetVersion('3.1'), modules31, '3.1'); deepEqual(getModulesListForTargetVersion('3.1.0'), modules31, '3.1.0'); deepEqual(getModulesListForTargetVersion('3.1.1'), modules31, '3.1.1'); +throws(() => getModulesListForTargetVersion(3), TypeError, 'num 3'); +throws(() => getModulesListForTargetVersion('3'), TypeError, '3'); throws(() => getModulesListForTargetVersion('2.0'), RangeError, '2.0'); throws(() => getModulesListForTargetVersion('4.0'), RangeError, '4.0'); throws(() => getModulesListForTargetVersion('x'), TypeError, 'x'); From 8adb1ed29a8e27c3293ed44fd1d628b109203850 Mon Sep 17 00:00:00 2001 From: Denis Pushkarev Date: Tue, 10 Oct 2023 04:47:34 +0700 Subject: [PATCH 115/428] update `core-js-builder` dependencies --- package-lock.json | 4854 +++-------------- packages/core-js-builder/index.js | 8 +- packages/core-js-builder/package.json | 2 +- packages/core-js-compat/helpers.js | 2 +- .../core-js/es/array-buffer/constructor.js | 1 + .../check-dependencies/check-dependencies.mjs | 4 - tests/eslint/eslint.config.js | 4 +- 7 files changed, 682 insertions(+), 4193 deletions(-) diff --git a/package-lock.json b/package-lock.json index 3566ac813f9e..19f8a4901e1e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1011,7 +1011,6 @@ "version": "0.3.13", "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz", "integrity": "sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==", - "dev": true, "license": "MIT", "dependencies": { "@jridgewell/sourcemap-codec": "^1.5.0", @@ -1033,202 +1032,221 @@ "version": "3.1.2", "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", - "dev": true, "license": "MIT", "engines": { "node": ">=6.0.0" } }, + "node_modules/@jridgewell/source-map": { + "version": "0.3.11", + "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.11.tgz", + "integrity": "sha512-ZMp1V8ZFcPG5dIWnQLr3NSI1MiCU7UETdS/A0G8V/XWHvJv3ZsFqutJn1Y5RPmAPX6F3BiE397OqveU/9NCuIA==", + "license": "MIT", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25" + } + }, "node_modules/@jridgewell/sourcemap-codec": { "version": "1.5.5", "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz", "integrity": "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==", - "dev": true, "license": "MIT" }, "node_modules/@jridgewell/trace-mapping": { "version": "0.3.31", "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.31.tgz", "integrity": "sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==", - "dev": true, "license": "MIT", "dependencies": { "@jridgewell/resolve-uri": "^3.1.0", "@jridgewell/sourcemap-codec": "^1.4.14" } }, - "node_modules/@webassemblyjs/ast": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.9.0.tgz", - "integrity": "sha512-C6wW5L+b7ogSDVqymbkkvuW9kruN//YisMED04xzeBBqjHa2FYnmvOlS6Xj68xWQRgWvI9cIglsjFowH/RJyEA==", + "node_modules/@types/eslint": { + "version": "9.6.1", + "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-9.6.1.tgz", + "integrity": "sha512-FXx2pKgId/WyYo2jXw63kk7/+TY7u7AziEJxJAnSFzHlqTAS3Ync6SvgYAN/k4/PQpnnVuzoMuVnByKK2qp0ag==", "license": "MIT", "dependencies": { - "@webassemblyjs/helper-module-context": "1.9.0", - "@webassemblyjs/helper-wasm-bytecode": "1.9.0", - "@webassemblyjs/wast-parser": "1.9.0" + "@types/estree": "*", + "@types/json-schema": "*" } }, - "node_modules/@webassemblyjs/floating-point-hex-parser": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.9.0.tgz", - "integrity": "sha512-TG5qcFsS8QB4g4MhrxK5TqfdNe7Ey/7YL/xN+36rRjl/BlGE/NcBvJcqsRgCP6Z92mRE+7N50pRIi8SmKUbcQA==", - "license": "MIT" + "node_modules/@types/eslint-scope": { + "version": "3.7.7", + "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.7.tgz", + "integrity": "sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==", + "license": "MIT", + "dependencies": { + "@types/eslint": "*", + "@types/estree": "*" + } }, - "node_modules/@webassemblyjs/helper-api-error": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.9.0.tgz", - "integrity": "sha512-NcMLjoFMXpsASZFxJ5h2HZRcEhDkvnNFOAKneP5RbKRzaWJN36NC4jqQHKwStIhGXu5mUWlUUk7ygdtrO8lbmw==", + "node_modules/@types/estree": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz", + "integrity": "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==", "license": "MIT" }, - "node_modules/@webassemblyjs/helper-buffer": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.9.0.tgz", - "integrity": "sha512-qZol43oqhq6yBPx7YM3m9Bv7WMV9Eevj6kMi6InKOuZxhw+q9hOkvq5e/PpKSiLfyetpaBnogSbNCfBwyB00CA==", + "node_modules/@types/json-schema": { + "version": "7.0.15", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", + "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", "license": "MIT" }, - "node_modules/@webassemblyjs/helper-code-frame": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.9.0.tgz", - "integrity": "sha512-ERCYdJBkD9Vu4vtjUYe8LZruWuNIToYq/ME22igL+2vj2dQ2OOujIZr3MEFvfEaqKoVqpsFKAGsRdBSBjrIvZA==", + "node_modules/@types/node": { + "version": "24.7.1", + "resolved": "https://registry.npmjs.org/@types/node/-/node-24.7.1.tgz", + "integrity": "sha512-CmyhGZanP88uuC5GpWU9q+fI61j2SkhO3UGMUdfYRE6Bcy0ccyzn1Rqj9YAB/ZY4kOXmNf0ocah5GtphmLMP6Q==", "license": "MIT", "dependencies": { - "@webassemblyjs/wast-printer": "1.9.0" + "undici-types": "~7.14.0" } }, - "node_modules/@webassemblyjs/helper-fsm": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-fsm/-/helper-fsm-1.9.0.tgz", - "integrity": "sha512-OPRowhGbshCb5PxJ8LocpdX9Kl0uB4XsAjl6jH/dWKlk/mzsANvhwbiULsaiqT5GZGT9qinTICdj6PLuM5gslw==", - "license": "ISC" + "node_modules/@webassemblyjs/ast": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.14.1.tgz", + "integrity": "sha512-nuBEDgQfm1ccRp/8bCQrx1frohyufl4JlbMMZ4P1wpeOfDhF6FQkxZJ1b/e+PLwr6X1Nhw6OLme5usuBWYBvuQ==", + "license": "MIT", + "dependencies": { + "@webassemblyjs/helper-numbers": "1.13.2", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2" + } + }, + "node_modules/@webassemblyjs/floating-point-hex-parser": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.13.2.tgz", + "integrity": "sha512-6oXyTOzbKxGH4steLbLNOu71Oj+C8Lg34n6CqRvqfS2O71BxY6ByfMDRhBytzknj9yGUPVJ1qIKhRlAwO1AovA==", + "license": "MIT" + }, + "node_modules/@webassemblyjs/helper-api-error": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.13.2.tgz", + "integrity": "sha512-U56GMYxy4ZQCbDZd6JuvvNV/WFildOjsaWD3Tzzvmw/mas3cXzRJPMjP83JqEsgSbyrmaGjBfDtV7KDXV9UzFQ==", + "license": "MIT" + }, + "node_modules/@webassemblyjs/helper-buffer": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.14.1.tgz", + "integrity": "sha512-jyH7wtcHiKssDtFPRB+iQdxlDf96m0E39yb0k5uJVhFGleZFoNw1c4aeIcVUPPbXUVJ94wwnMOAqUHyzoEPVMA==", + "license": "MIT" }, - "node_modules/@webassemblyjs/helper-module-context": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-module-context/-/helper-module-context-1.9.0.tgz", - "integrity": "sha512-MJCW8iGC08tMk2enck1aPW+BE5Cw8/7ph/VGZxwyvGbJwjktKkDK7vy7gAmMDx88D7mhDTCNKAW5tED+gZ0W8g==", + "node_modules/@webassemblyjs/helper-numbers": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.13.2.tgz", + "integrity": "sha512-FE8aCmS5Q6eQYcV3gI35O4J789wlQA+7JrqTTpJqn5emA4U2hvwJmvFRC0HODS+3Ye6WioDklgd6scJ3+PLnEA==", "license": "MIT", "dependencies": { - "@webassemblyjs/ast": "1.9.0" + "@webassemblyjs/floating-point-hex-parser": "1.13.2", + "@webassemblyjs/helper-api-error": "1.13.2", + "@xtuc/long": "4.2.2" } }, "node_modules/@webassemblyjs/helper-wasm-bytecode": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.9.0.tgz", - "integrity": "sha512-R7FStIzyNcd7xKxCZH5lE0Bqy+hGTwS3LJjuv1ZVxd9O7eHCedSdrId/hMOd20I+v8wDXEn+bjfKDLzTepoaUw==", + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.13.2.tgz", + "integrity": "sha512-3QbLKy93F0EAIXLh0ogEVR6rOubA9AoZ+WRYhNbFyuB70j3dRdwH9g+qXhLAO0kiYGlg3TxDV+I4rQTr/YNXkA==", "license": "MIT" }, "node_modules/@webassemblyjs/helper-wasm-section": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.9.0.tgz", - "integrity": "sha512-XnMB8l3ek4tvrKUUku+IVaXNHz2YsJyOOmz+MMkZvh8h1uSJpSen6vYnw3IoQ7WwEuAhL8Efjms1ZWjqh2agvw==", + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.14.1.tgz", + "integrity": "sha512-ds5mXEqTJ6oxRoqjhWDU83OgzAYjwsCV8Lo/N+oRsNDmx/ZDpqalmrtgOMkHwxsG0iI//3BwWAErYRHtgn0dZw==", "license": "MIT", "dependencies": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/helper-buffer": "1.9.0", - "@webassemblyjs/helper-wasm-bytecode": "1.9.0", - "@webassemblyjs/wasm-gen": "1.9.0" + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-buffer": "1.14.1", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2", + "@webassemblyjs/wasm-gen": "1.14.1" } }, "node_modules/@webassemblyjs/ieee754": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.9.0.tgz", - "integrity": "sha512-dcX8JuYU/gvymzIHc9DgxTzUUTLexWwt8uCTWP3otys596io0L5aW02Gb1RjYpx2+0Jus1h4ZFqjla7umFniTg==", + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.13.2.tgz", + "integrity": "sha512-4LtOzh58S/5lX4ITKxnAK2USuNEvpdVV9AlgGQb8rJDHaLeHciwG4zlGr0j/SNWlr7x3vO1lDEsuePvtcDNCkw==", "license": "MIT", "dependencies": { "@xtuc/ieee754": "^1.2.0" } }, "node_modules/@webassemblyjs/leb128": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.9.0.tgz", - "integrity": "sha512-ENVzM5VwV1ojs9jam6vPys97B/S65YQtv/aanqnU7D8aSoHFX8GyhGg0CMfyKNIHBuAVjy3tlzd5QMMINa7wpw==", - "license": "MIT", + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.13.2.tgz", + "integrity": "sha512-Lde1oNoIdzVzdkNEAWZ1dZ5orIbff80YPdHx20mrHwHrVNNTjNr8E3xz9BdpcGqRQbAEa+fkrCb+fRFTl/6sQw==", + "license": "Apache-2.0", "dependencies": { "@xtuc/long": "4.2.2" } }, "node_modules/@webassemblyjs/utf8": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.9.0.tgz", - "integrity": "sha512-GZbQlWtopBTP0u7cHrEx+73yZKrQoBMpwkGEIqlacljhXCkVM1kMQge/Mf+csMJAjEdSwhOyLAS0AoR3AG5P8w==", + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.13.2.tgz", + "integrity": "sha512-3NQWGjKTASY1xV5m7Hr0iPeXD9+RDobLll3T9d2AO+g3my8xy5peVyjSag4I50mR1bBSN/Ct12lo+R9tJk0NZQ==", "license": "MIT" }, "node_modules/@webassemblyjs/wasm-edit": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.9.0.tgz", - "integrity": "sha512-FgHzBm80uwz5M8WKnMTn6j/sVbqilPdQXTWraSjBwFXSYGirpkSWE2R9Qvz9tNiTKQvoKILpCuTjBKzOIm0nxw==", + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.14.1.tgz", + "integrity": "sha512-RNJUIQH/J8iA/1NzlE4N7KtyZNHi3w7at7hDjvRNm5rcUXa00z1vRz3glZoULfJ5mpvYhLybmVcwcjGrC1pRrQ==", "license": "MIT", "dependencies": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/helper-buffer": "1.9.0", - "@webassemblyjs/helper-wasm-bytecode": "1.9.0", - "@webassemblyjs/helper-wasm-section": "1.9.0", - "@webassemblyjs/wasm-gen": "1.9.0", - "@webassemblyjs/wasm-opt": "1.9.0", - "@webassemblyjs/wasm-parser": "1.9.0", - "@webassemblyjs/wast-printer": "1.9.0" + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-buffer": "1.14.1", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2", + "@webassemblyjs/helper-wasm-section": "1.14.1", + "@webassemblyjs/wasm-gen": "1.14.1", + "@webassemblyjs/wasm-opt": "1.14.1", + "@webassemblyjs/wasm-parser": "1.14.1", + "@webassemblyjs/wast-printer": "1.14.1" } }, "node_modules/@webassemblyjs/wasm-gen": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.9.0.tgz", - "integrity": "sha512-cPE3o44YzOOHvlsb4+E9qSqjc9Qf9Na1OO/BHFy4OI91XDE14MjFN4lTMezzaIWdPqHnsTodGGNP+iRSYfGkjA==", + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.14.1.tgz", + "integrity": "sha512-AmomSIjP8ZbfGQhumkNvgC33AY7qtMCXnN6bL2u2Js4gVCg8fp735aEiMSBbDR7UQIj90n4wKAFUSEd0QN2Ukg==", "license": "MIT", "dependencies": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/helper-wasm-bytecode": "1.9.0", - "@webassemblyjs/ieee754": "1.9.0", - "@webassemblyjs/leb128": "1.9.0", - "@webassemblyjs/utf8": "1.9.0" + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2", + "@webassemblyjs/ieee754": "1.13.2", + "@webassemblyjs/leb128": "1.13.2", + "@webassemblyjs/utf8": "1.13.2" } }, "node_modules/@webassemblyjs/wasm-opt": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.9.0.tgz", - "integrity": "sha512-Qkjgm6Anhm+OMbIL0iokO7meajkzQD71ioelnfPEj6r4eOFuqm4YC3VBPqXjFyyNwowzbMD+hizmprP/Fwkl2A==", + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.14.1.tgz", + "integrity": "sha512-PTcKLUNvBqnY2U6E5bdOQcSM+oVP/PmrDY9NzowJjislEjwP/C4an2303MCVS2Mg9d3AJpIGdUFIQQWbPds0Sw==", "license": "MIT", "dependencies": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/helper-buffer": "1.9.0", - "@webassemblyjs/wasm-gen": "1.9.0", - "@webassemblyjs/wasm-parser": "1.9.0" + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-buffer": "1.14.1", + "@webassemblyjs/wasm-gen": "1.14.1", + "@webassemblyjs/wasm-parser": "1.14.1" } }, "node_modules/@webassemblyjs/wasm-parser": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.9.0.tgz", - "integrity": "sha512-9+wkMowR2AmdSWQzsPEjFU7njh8HTO5MqO8vjwEHuM+AMHioNqSBONRdr0NQQ3dVQrzp0s8lTcYqzUdb7YgELA==", - "license": "MIT", - "dependencies": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/helper-api-error": "1.9.0", - "@webassemblyjs/helper-wasm-bytecode": "1.9.0", - "@webassemblyjs/ieee754": "1.9.0", - "@webassemblyjs/leb128": "1.9.0", - "@webassemblyjs/utf8": "1.9.0" - } - }, - "node_modules/@webassemblyjs/wast-parser": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-parser/-/wast-parser-1.9.0.tgz", - "integrity": "sha512-qsqSAP3QQ3LyZjNC/0jBJ/ToSxfYJ8kYyuiGvtn/8MK89VrNEfwj7BPQzJVHi0jGTRK2dGdJ5PRqhtjzoww+bw==", + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.14.1.tgz", + "integrity": "sha512-JLBl+KZ0R5qB7mCnud/yyX08jWFw5MsoalJ1pQ4EdFlgj9VdXKGuENGsiCIjegI1W7p91rUlcB/LB5yRJKNTcQ==", "license": "MIT", "dependencies": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/floating-point-hex-parser": "1.9.0", - "@webassemblyjs/helper-api-error": "1.9.0", - "@webassemblyjs/helper-code-frame": "1.9.0", - "@webassemblyjs/helper-fsm": "1.9.0", - "@xtuc/long": "4.2.2" + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-api-error": "1.13.2", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2", + "@webassemblyjs/ieee754": "1.13.2", + "@webassemblyjs/leb128": "1.13.2", + "@webassemblyjs/utf8": "1.13.2" } }, "node_modules/@webassemblyjs/wast-printer": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.9.0.tgz", - "integrity": "sha512-2J0nE95rHXHyQ24cWjMKJ1tqB/ds8z/cyeOZxJhcb+rW+SQASVjuznUSmdz5GpVJTzU8JkhYut0D3siFDD6wsA==", + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.14.1.tgz", + "integrity": "sha512-kPSSXE6De1XOR820C90RIo2ogvZG+c3KiHzqUoO/F34Y2shGzesfqv7o57xrxovZJH/MetF5UjroJ/R/3isoiw==", "license": "MIT", "dependencies": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/wast-parser": "1.9.0", + "@webassemblyjs/ast": "1.14.1", "@xtuc/long": "4.2.2" } }, @@ -1245,10 +1263,11 @@ "license": "Apache-2.0" }, "node_modules/acorn": { - "version": "6.4.2", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.4.2.tgz", - "integrity": "sha512-XtGIhXwF8YM8bJhGxG5kXgjkEuNGLTkoYqVE+KMR+aspr4KGYmKYg7yUe3KghyQ9yheNwLnjmzh/7+gfDBmHCQ==", + "version": "8.15.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.15.0.tgz", + "integrity": "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==", "license": "MIT", + "peer": true, "bin": { "acorn": "bin/acorn" }, @@ -1256,39 +1275,62 @@ "node": ">=0.4.0" } }, + "node_modules/acorn-import-phases": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/acorn-import-phases/-/acorn-import-phases-1.0.4.tgz", + "integrity": "sha512-wKmbr/DDiIXzEOiWrTTUcDm24kQ2vGfZQvM2fwg2vXqR5uW6aapr7ObPtj1th32b9u90/Pf4AItvdTh42fBmVQ==", + "license": "MIT", + "engines": { + "node": ">=10.13.0" + }, + "peerDependencies": { + "acorn": "^8.14.0" + } + }, "node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "version": "8.17.1", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", + "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", "license": "MIT", "peer": true, "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" + "fast-deep-equal": "^3.1.3", + "fast-uri": "^3.0.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2" }, "funding": { "type": "github", "url": "https://github.com/sponsors/epoberezkin" } }, - "node_modules/ajv-errors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/ajv-errors/-/ajv-errors-1.0.1.tgz", - "integrity": "sha512-DCRfO/4nQ+89p/RK43i8Ezd41EqdGIU4ld7nGF8OQ14oc/we5rEntLCUa7+jrn3nn83BosfwZA0wb4pon2o8iQ==", + "node_modules/ajv-formats": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz", + "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", "license": "MIT", + "dependencies": { + "ajv": "^8.0.0" + }, "peerDependencies": { - "ajv": ">=5.0.0" + "ajv": "^8.0.0" + }, + "peerDependenciesMeta": { + "ajv": { + "optional": true + } } }, "node_modules/ajv-keywords": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", - "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", + "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.3" + }, "peerDependencies": { - "ajv": "^6.9.1" + "ajv": "^8.8.2" } }, "node_modules/ansi-styles": { @@ -1304,222 +1346,6 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/anymatch": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", - "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", - "license": "ISC", - "optional": true, - "dependencies": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/anymatch/node_modules/picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "license": "MIT", - "optional": true, - "engines": { - "node": ">=8.6" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, - "node_modules/aproba": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", - "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==", - "license": "ISC" - }, - "node_modules/arr-diff": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", - "integrity": "sha512-YVIQ82gZPGBebQV/a8dar4AitzCQs0jjXwMPZllpXMaGjXPYVUawSxQrRsjhjupyVxEvbHgUmIhKVlND+j02kA==", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/arr-flatten": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", - "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/arr-union": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", - "integrity": "sha512-sKpyeERZ02v1FeCZT8lrfJq5u6goHCtpTAzPwJYe7c8SPFOboNjNg1vz2L4VTn9T4PQxEx13TbXLmYUcS6Ug7Q==", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/array-unique": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", - "integrity": "sha512-SleRWjh9JUud2wH1hPs9rZBZ33H6T9HOiL0uwGnGx9FpE6wKGyfWugmbkEOIs6qWrZhg0LWeLziLrEwQJhs5mQ==", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/asn1.js": { - "version": "4.10.1", - "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-4.10.1.tgz", - "integrity": "sha512-p32cOF5q0Zqs9uBiONKYLm6BClCoBCM5O9JfeUSlnQLBTxYdTK+pW+nXflm8UkKd2UYlEbYz5qEi0JuZR9ckSw==", - "license": "MIT", - "dependencies": { - "bn.js": "^4.0.0", - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0" - } - }, - "node_modules/asn1.js/node_modules/bn.js": { - "version": "4.12.2", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.2.tgz", - "integrity": "sha512-n4DSx829VRTRByMRGdjQ9iqsN0Bh4OolPsFnaZBLcbi8iXcB+kJ9s7EnRt4wILZNV3kPLHkRVfOc/HvhC3ovDw==", - "license": "MIT" - }, - "node_modules/assert": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/assert/-/assert-1.5.1.tgz", - "integrity": "sha512-zzw1uCAgLbsKwBfFc8CX78DDg+xZeBksSO3vwVIDDN5i94eOrPsSSyiVhmsSABFDM/OcpE2aagCat9dnWQLG1A==", - "license": "MIT", - "dependencies": { - "object.assign": "^4.1.4", - "util": "^0.10.4" - } - }, - "node_modules/assert/node_modules/inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==", - "license": "ISC" - }, - "node_modules/assert/node_modules/util": { - "version": "0.10.4", - "resolved": "https://registry.npmjs.org/util/-/util-0.10.4.tgz", - "integrity": "sha512-0Pm9hTQ3se5ll1XihRic3FDIku70C+iHUdT/W926rSgHV5QgXsYbKZN8MSC3tJtSkhuROzvsQjAaFENRXr+19A==", - "license": "MIT", - "dependencies": { - "inherits": "2.0.3" - } - }, - "node_modules/assign-symbols": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", - "integrity": "sha512-Q+JC7Whu8HhmTdBph/Tq59IoRtoy6KAm5zzPv00WdujX82lbAL8K7WVjne7vdCsAmbF4AYaDOPyO3k0kl8qIrw==", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/async-each": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.6.tgz", - "integrity": "sha512-c646jH1avxr+aVpndVMeAfYw7wAa6idufrlN3LPA4PmKS0QEGp6PIC9nwz0WQkkvBGAMEki3pFdtxaF39J9vvg==", - "funding": [ - { - "type": "individual", - "url": "https://paulmillr.com/funding/" - } - ], - "license": "MIT", - "optional": true - }, - "node_modules/atob": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", - "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", - "license": "(MIT OR Apache-2.0)", - "bin": { - "atob": "bin/atob.js" - }, - "engines": { - "node": ">= 4.5.0" - } - }, - "node_modules/available-typed-arrays": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz", - "integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==", - "license": "MIT", - "dependencies": { - "possible-typed-array-names": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", - "license": "MIT" - }, - "node_modules/base": { - "version": "0.11.2", - "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", - "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", - "license": "MIT", - "dependencies": { - "cache-base": "^1.0.1", - "class-utils": "^0.3.5", - "component-emitter": "^1.2.1", - "define-property": "^1.0.0", - "isobject": "^3.0.1", - "mixin-deep": "^1.2.0", - "pascalcase": "^0.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/base/node_modules/define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==", - "license": "MIT", - "dependencies": { - "is-descriptor": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/base64-js": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", - "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT" - }, "node_modules/baseline-browser-mapping": { "version": "2.8.15", "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.8.15.tgz", @@ -1529,188 +1355,6 @@ "baseline-browser-mapping": "dist/cli.js" } }, - "node_modules/big.js": { - "version": "5.2.2", - "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", - "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", - "license": "MIT", - "engines": { - "node": "*" - } - }, - "node_modules/binary-extensions": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz", - "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", - "license": "MIT", - "optional": true, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/bindings": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", - "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", - "license": "MIT", - "optional": true, - "dependencies": { - "file-uri-to-path": "1.0.0" - } - }, - "node_modules/bluebird": { - "version": "3.7.2", - "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", - "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==", - "license": "MIT" - }, - "node_modules/bn.js": { - "version": "5.2.2", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.2.tgz", - "integrity": "sha512-v2YAxEmKaBLahNwE1mjp4WON6huMNeuDvagFZW+ASCuA/ku0bXR9hSMw0XpiqMoA3+rmnyck/tPRSFQkoC9Cuw==", - "license": "MIT" - }, - "node_modules/brace-expansion": { - "version": "1.1.12", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", - "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/braces": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", - "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", - "license": "MIT", - "dependencies": { - "arr-flatten": "^1.1.0", - "array-unique": "^0.3.2", - "extend-shallow": "^2.0.1", - "fill-range": "^4.0.0", - "isobject": "^3.0.1", - "repeat-element": "^1.1.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/braces/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", - "license": "MIT", - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/braces/node_modules/is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/brorand": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", - "integrity": "sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w==", - "license": "MIT" - }, - "node_modules/browserify-aes": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", - "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", - "license": "MIT", - "dependencies": { - "buffer-xor": "^1.0.3", - "cipher-base": "^1.0.0", - "create-hash": "^1.1.0", - "evp_bytestokey": "^1.0.3", - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "node_modules/browserify-cipher": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz", - "integrity": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==", - "license": "MIT", - "dependencies": { - "browserify-aes": "^1.0.4", - "browserify-des": "^1.0.0", - "evp_bytestokey": "^1.0.0" - } - }, - "node_modules/browserify-des": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz", - "integrity": "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==", - "license": "MIT", - "dependencies": { - "cipher-base": "^1.0.1", - "des.js": "^1.0.0", - "inherits": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, - "node_modules/browserify-rsa": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.1.1.tgz", - "integrity": "sha512-YBjSAiTqM04ZVei6sXighu679a3SqWORA3qZTEqZImnlkDIFtKc6pNutpjyZ8RJTjQtuYfeetkxM11GwoYXMIQ==", - "license": "MIT", - "dependencies": { - "bn.js": "^5.2.1", - "randombytes": "^2.1.0", - "safe-buffer": "^5.2.1" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/browserify-sign": { - "version": "4.2.5", - "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.2.5.tgz", - "integrity": "sha512-C2AUdAJg6rlM2W5QMp2Q4KGQMVBwR1lIimTsUnutJ8bMpW5B52pGpR2gEnNBNwijumDo5FojQ0L9JrXA8m4YEw==", - "license": "ISC", - "dependencies": { - "bn.js": "^5.2.2", - "browserify-rsa": "^4.1.1", - "create-hash": "^1.2.0", - "create-hmac": "^1.1.7", - "elliptic": "^6.6.1", - "inherits": "^2.0.4", - "parse-asn1": "^5.1.9", - "readable-stream": "^2.3.8", - "safe-buffer": "^5.2.1" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/browserify-zlib": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz", - "integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==", - "license": "MIT", - "dependencies": { - "pako": "~1.0.5" - } - }, "node_modules/browserslist": { "version": "4.26.3", "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.26.3.tgz", @@ -1745,125 +1389,12 @@ "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" } }, - "node_modules/buffer": { - "version": "4.9.2", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.2.tgz", - "integrity": "sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg==", - "license": "MIT", - "dependencies": { - "base64-js": "^1.0.2", - "ieee754": "^1.1.4", - "isarray": "^1.0.0" - } - }, "node_modules/buffer-from": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", "license": "MIT" }, - "node_modules/buffer-xor": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", - "integrity": "sha512-571s0T7nZWK6vB67HI5dyUF7wXiNcfaPPPTl6zYCNApANjIvYJTg7hlud/+cJpdAhS7dVzqMLmfhfHR3rAcOjQ==", - "license": "MIT" - }, - "node_modules/builtin-status-codes": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz", - "integrity": "sha512-HpGFw18DgFWlncDfjTa2rcQ4W88O1mC8e8yZ2AvQY5KDaktSTwo+KRf6nHK6FRI5FyRyb/5T6+TSxfP7QyGsmQ==", - "license": "MIT" - }, - "node_modules/cacache": { - "version": "12.0.4", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-12.0.4.tgz", - "integrity": "sha512-a0tMB40oefvuInr4Cwb3GerbL9xTj1D5yg0T5xrjGCGyfvbxseIXX7BAO/u/hIXdafzOI5JC3wDwHyf24buOAQ==", - "license": "ISC", - "dependencies": { - "bluebird": "^3.5.5", - "chownr": "^1.1.1", - "figgy-pudding": "^3.5.1", - "glob": "^7.1.4", - "graceful-fs": "^4.1.15", - "infer-owner": "^1.0.3", - "lru-cache": "^5.1.1", - "mississippi": "^3.0.0", - "mkdirp": "^0.5.1", - "move-concurrently": "^1.0.1", - "promise-inflight": "^1.0.1", - "rimraf": "^2.6.3", - "ssri": "^6.0.1", - "unique-filename": "^1.1.1", - "y18n": "^4.0.0" - } - }, - "node_modules/cache-base": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", - "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", - "license": "MIT", - "dependencies": { - "collection-visit": "^1.0.0", - "component-emitter": "^1.2.1", - "get-value": "^2.0.6", - "has-value": "^1.0.0", - "isobject": "^3.0.1", - "set-value": "^2.0.0", - "to-object-path": "^0.3.0", - "union-value": "^1.0.0", - "unset-value": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/call-bind": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.8.tgz", - "integrity": "sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww==", - "license": "MIT", - "dependencies": { - "call-bind-apply-helpers": "^1.0.0", - "es-define-property": "^1.0.0", - "get-intrinsic": "^1.2.4", - "set-function-length": "^1.2.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/call-bind-apply-helpers": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz", - "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==", - "license": "MIT", - "dependencies": { - "es-errors": "^1.3.0", - "function-bind": "^1.1.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/call-bound": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.4.tgz", - "integrity": "sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==", - "license": "MIT", - "dependencies": { - "call-bind-apply-helpers": "^1.0.2", - "get-intrinsic": "^1.3.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/caniuse-lite": { "version": "1.0.30001749", "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001749.tgz", @@ -1884,86 +1415,6 @@ ], "license": "CC-BY-4.0" }, - "node_modules/chokidar": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", - "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", - "license": "MIT", - "optional": true, - "dependencies": { - "anymatch": "~3.1.2", - "braces": "~3.0.2", - "glob-parent": "~5.1.2", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.6.0" - }, - "engines": { - "node": ">= 8.10.0" - }, - "funding": { - "url": "https://paulmillr.com/funding/" - }, - "optionalDependencies": { - "fsevents": "~2.3.2" - } - }, - "node_modules/chokidar/node_modules/braces": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", - "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", - "license": "MIT", - "optional": true, - "dependencies": { - "fill-range": "^7.1.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/chokidar/node_modules/fill-range": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", - "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", - "license": "MIT", - "optional": true, - "dependencies": { - "to-regex-range": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/chokidar/node_modules/is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "license": "MIT", - "optional": true, - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/chokidar/node_modules/to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "license": "MIT", - "optional": true, - "dependencies": { - "is-number": "^7.0.0" - }, - "engines": { - "node": ">=8.0" - } - }, - "node_modules/chownr": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", - "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==", - "license": "ISC" - }, "node_modules/chrome-trace-event": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.4.tgz", @@ -1973,126 +1424,12 @@ "node": ">=6.0" } }, - "node_modules/cipher-base": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.7.tgz", - "integrity": "sha512-Mz9QMT5fJe7bKI7MH31UilT5cEK5EHHRCccw/YRFsRY47AuNgaV6HY3rscp0/I4Q+tTW/5zoqpSeRRI54TkDWA==", - "license": "MIT", - "dependencies": { - "inherits": "^2.0.4", - "safe-buffer": "^5.2.1", - "to-buffer": "^1.2.2" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/class-utils": { - "version": "0.3.6", - "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", - "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", - "license": "MIT", - "dependencies": { - "arr-union": "^3.1.0", - "define-property": "^0.2.5", - "isobject": "^3.0.0", - "static-extend": "^0.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/class-utils/node_modules/define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", - "license": "MIT", - "dependencies": { - "is-descriptor": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/class-utils/node_modules/is-descriptor": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.7.tgz", - "integrity": "sha512-C3grZTvObeN1xud4cRWl366OMXZTj0+HGyk4hvfpx4ZHt1Pb60ANSXqCK7pdOTeUQpRzECBSTphqvD7U+l22Eg==", - "license": "MIT", - "dependencies": { - "is-accessor-descriptor": "^1.0.1", - "is-data-descriptor": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/collection-visit": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", - "integrity": "sha512-lNkKvzEeMBBjUGHZ+q6z9pSJla0KWAQPvtzhEV9+iGyQYG+pBpl7xKDhxoNSOZH2hhv0v5k0y2yAM4o4SjoSkw==", - "license": "MIT", - "dependencies": { - "map-visit": "^1.0.0", - "object-visit": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/commander": { "version": "2.20.3", "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", "license": "MIT" }, - "node_modules/commondir": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", - "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==", - "license": "MIT" - }, - "node_modules/component-emitter": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.1.tgz", - "integrity": "sha512-T0+barUSQRTUQASh8bx02dl+DhF54GtIDY13Y3m9oWTklKbb3Wv974meRpeZ3lp1JpLVECWWNHC4vaG2XHXouQ==", - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", - "license": "MIT" - }, - "node_modules/concat-stream": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", - "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", - "engines": [ - "node >= 0.8" - ], - "license": "MIT", - "dependencies": { - "buffer-from": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^2.2.2", - "typedarray": "^0.0.6" - } - }, - "node_modules/console-browserify": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.2.0.tgz", - "integrity": "sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA==" - }, - "node_modules/constants-browserify": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz", - "integrity": "sha512-xFxOwqIzR/e1k1gLiWEophSCMqXcwVHIH7akf7b/vxcUeGunlj3hvZaaqxwHsTgn+IndtkQJgSztIDWeumWJDQ==", - "license": "MIT" - }, "node_modules/convert-source-map": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", @@ -2100,30 +1437,6 @@ "dev": true, "license": "MIT" }, - "node_modules/copy-concurrently": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/copy-concurrently/-/copy-concurrently-1.0.5.tgz", - "integrity": "sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A==", - "deprecated": "This package is no longer supported.", - "license": "ISC", - "dependencies": { - "aproba": "^1.1.1", - "fs-write-stream-atomic": "^1.0.8", - "iferr": "^0.1.5", - "mkdirp": "^0.5.1", - "rimraf": "^2.5.4", - "run-queue": "^1.0.0" - } - }, - "node_modules/copy-descriptor": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", - "integrity": "sha512-XgZ0pFcakEUlbwQEVNg3+QAis1FyTL3Qel9FYy8pSkQqoG3PNoT0bOCQtOXcOkur21r2Eq2kI+IE+gsmAEVlYw==", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/core-js": { "resolved": "packages/core-js", "link": true @@ -2144,55 +1457,6 @@ "resolved": "packages/core-js-pure", "link": true }, - "node_modules/core-util-is": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", - "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", - "license": "MIT" - }, - "node_modules/create-ecdh": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.4.tgz", - "integrity": "sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A==", - "license": "MIT", - "dependencies": { - "bn.js": "^4.1.0", - "elliptic": "^6.5.3" - } - }, - "node_modules/create-ecdh/node_modules/bn.js": { - "version": "4.12.2", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.2.tgz", - "integrity": "sha512-n4DSx829VRTRByMRGdjQ9iqsN0Bh4OolPsFnaZBLcbi8iXcB+kJ9s7EnRt4wILZNV3kPLHkRVfOc/HvhC3ovDw==", - "license": "MIT" - }, - "node_modules/create-hash": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", - "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", - "license": "MIT", - "dependencies": { - "cipher-base": "^1.0.1", - "inherits": "^2.0.1", - "md5.js": "^1.3.4", - "ripemd160": "^2.0.1", - "sha.js": "^2.4.0" - } - }, - "node_modules/create-hmac": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", - "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", - "license": "MIT", - "dependencies": { - "cipher-base": "^1.0.3", - "create-hash": "^1.1.0", - "inherits": "^2.0.1", - "ripemd160": "^2.0.0", - "safe-buffer": "^5.0.1", - "sha.js": "^2.4.8" - } - }, "node_modules/cross-spawn": { "version": "7.0.6", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", @@ -2231,38 +1495,6 @@ "node": ">= 8" } }, - "node_modules/crypto-browserify": { - "version": "3.12.1", - "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.1.tgz", - "integrity": "sha512-r4ESw/IlusD17lgQi1O20Fa3qNnsckR126TdUuBgAu7GBYSIPvdNyONd3Zrxh0xCwA4+6w/TDArBPsMvhur+KQ==", - "license": "MIT", - "dependencies": { - "browserify-cipher": "^1.0.1", - "browserify-sign": "^4.2.3", - "create-ecdh": "^4.0.4", - "create-hash": "^1.2.0", - "create-hmac": "^1.1.7", - "diffie-hellman": "^5.0.3", - "hash-base": "~3.0.4", - "inherits": "^2.0.4", - "pbkdf2": "^3.1.2", - "public-encrypt": "^4.0.3", - "randombytes": "^2.1.0", - "randomfill": "^1.0.4" - }, - "engines": { - "node": ">= 0.10" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/cyclist": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/cyclist/-/cyclist-1.0.2.tgz", - "integrity": "sha512-0sVXIohTfLqVIW3kb/0n6IiWF3Ifj5nm2XaSrLq2DI6fKIGa2fYAZdk917rUneaeLVpYfFcyXE2ft0fe3remsA==", - "license": "MIT" - }, "node_modules/debug": { "version": "4.4.3", "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", @@ -2281,3040 +1513,676 @@ } } }, - "node_modules/decode-uri-component": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.2.tgz", - "integrity": "sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==", - "license": "MIT", - "engines": { - "node": ">=0.10" - } + "node_modules/electron-to-chromium": { + "version": "1.5.234", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.234.tgz", + "integrity": "sha512-RXfEp2x+VRYn8jbKfQlRImzoJU01kyDvVPBmG39eU2iuRVhuS6vQNocB8J0/8GrIMLnPzgz4eW6WiRnJkTuNWg==", + "license": "ISC" }, - "node_modules/define-data-property": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", - "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", + "node_modules/enhanced-resolve": { + "version": "5.18.3", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.18.3.tgz", + "integrity": "sha512-d4lC8xfavMeBjzGr2vECC3fsGXziXZQyJxD868h2M/mBI3PwAuODxAkLkq5HYuvrPYcUtiLzsTo8U3PgX3Ocww==", "license": "MIT", "dependencies": { - "es-define-property": "^1.0.0", - "es-errors": "^1.3.0", - "gopd": "^1.0.1" + "graceful-fs": "^4.2.4", + "tapable": "^2.2.0" }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=10.13.0" } }, - "node_modules/define-properties": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", - "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", + "node_modules/es-module-lexer": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.7.0.tgz", + "integrity": "sha512-jEQoCwk8hyb2AZziIOLhDqpm5+2ww5uIE6lkO/6jcOCusfk6LhMHpXXfBLXTZ7Ydyt0j4VoUQv6uGNYbdW+kBA==", + "license": "MIT" + }, + "node_modules/escalade": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", + "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", "license": "MIT", - "dependencies": { - "define-data-property": "^1.0.1", - "has-property-descriptors": "^1.0.0", - "object-keys": "^1.1.1" - }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=6" } }, - "node_modules/define-property": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", - "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", - "license": "MIT", + "node_modules/eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "license": "BSD-2-Clause", "dependencies": { - "is-descriptor": "^1.0.2", - "isobject": "^3.0.1" + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" }, "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/des.js": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.1.0.tgz", - "integrity": "sha512-r17GxjhUCjSRy8aiJpr8/UadFIzMzJGexI3Nmz4ADi9LYSFx4gTBp80+NaX/YsXWWLhpZ7v/v/ubEc/bCNfKwg==", - "license": "MIT", - "dependencies": { - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0" + "node": ">=8.0.0" } }, - "node_modules/diffie-hellman": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz", - "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==", - "license": "MIT", + "node_modules/esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "license": "BSD-2-Clause", "dependencies": { - "bn.js": "^4.1.0", - "miller-rabin": "^4.0.0", - "randombytes": "^2.0.0" + "estraverse": "^5.2.0" + }, + "engines": { + "node": ">=4.0" } }, - "node_modules/diffie-hellman/node_modules/bn.js": { - "version": "4.12.2", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.2.tgz", - "integrity": "sha512-n4DSx829VRTRByMRGdjQ9iqsN0Bh4OolPsFnaZBLcbi8iXcB+kJ9s7EnRt4wILZNV3kPLHkRVfOc/HvhC3ovDw==", - "license": "MIT" - }, - "node_modules/domain-browser": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.2.0.tgz", - "integrity": "sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==", - "license": "MIT", + "node_modules/esrecurse/node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "license": "BSD-2-Clause", "engines": { - "node": ">=0.4", - "npm": ">=1.2" + "node": ">=4.0" } }, - "node_modules/dunder-proto": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", - "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", - "license": "MIT", - "dependencies": { - "call-bind-apply-helpers": "^1.0.1", - "es-errors": "^1.3.0", - "gopd": "^1.2.0" - }, + "node_modules/estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "license": "BSD-2-Clause", "engines": { - "node": ">= 0.4" + "node": ">=4.0" } }, - "node_modules/duplexify": { - "version": "3.7.1", - "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz", - "integrity": "sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==", + "node_modules/events": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", + "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", "license": "MIT", - "dependencies": { - "end-of-stream": "^1.0.0", - "inherits": "^2.0.1", - "readable-stream": "^2.0.0", - "stream-shift": "^1.0.0" + "engines": { + "node": ">=0.8.x" } }, - "node_modules/electron-to-chromium": { - "version": "1.5.234", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.234.tgz", - "integrity": "sha512-RXfEp2x+VRYn8jbKfQlRImzoJU01kyDvVPBmG39eU2iuRVhuS6vQNocB8J0/8GrIMLnPzgz4eW6WiRnJkTuNWg==", - "license": "ISC" - }, - "node_modules/elliptic": { - "version": "6.6.1", - "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.6.1.tgz", - "integrity": "sha512-RaddvvMatK2LJHqFJ+YA4WysVN5Ita9E35botqIYspQ4TkRAlCicdzKOjlyv/1Za5RyTNn7di//eEV0uTAfe3g==", - "license": "MIT", - "dependencies": { - "bn.js": "^4.11.9", - "brorand": "^1.1.0", - "hash.js": "^1.0.0", - "hmac-drbg": "^1.0.1", - "inherits": "^2.0.4", - "minimalistic-assert": "^1.0.1", - "minimalistic-crypto-utils": "^1.0.1" - } - }, - "node_modules/elliptic/node_modules/bn.js": { - "version": "4.12.2", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.2.tgz", - "integrity": "sha512-n4DSx829VRTRByMRGdjQ9iqsN0Bh4OolPsFnaZBLcbi8iXcB+kJ9s7EnRt4wILZNV3kPLHkRVfOc/HvhC3ovDw==", + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", "license": "MIT" }, - "node_modules/emojis-list": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", - "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", - "license": "MIT", - "engines": { - "node": ">= 4" - } - }, - "node_modules/end-of-stream": { - "version": "1.4.5", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.5.tgz", - "integrity": "sha512-ooEGc6HP26xXq/N+GCGOT0JKCLDGrq2bQUZrQ7gyrJiZANJ/8YDTxTpQBXGMn+WbIQXNVpyWymm7KYVICQnyOg==", - "license": "MIT", - "dependencies": { - "once": "^1.4.0" - } - }, - "node_modules/enhanced-resolve": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-4.5.0.tgz", - "integrity": "sha512-Nv9m36S/vxpsI+Hc4/ZGRs0n9mXqSWGGq49zxb/cJfPAQMbUtttJAlNPS4AQzaBdw/pKskw5bMbekT/Y7W/Wlg==", - "dependencies": { - "graceful-fs": "^4.1.2", - "memory-fs": "^0.5.0", - "tapable": "^1.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/enhanced-resolve/node_modules/memory-fs": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.5.0.tgz", - "integrity": "sha512-jA0rdU5KoQMC0e6ppoNRtpp6vjFq6+NY7r8hywnC7V+1Xj/MtHwGIbB1QaK/dunyjWteJzmkpd7ooeWg10T7GA==", - "license": "MIT", - "dependencies": { - "errno": "^0.1.3", - "readable-stream": "^2.0.1" - }, - "engines": { - "node": ">=4.3.0 <5.0.0 || >=5.10" - } - }, - "node_modules/errno": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.8.tgz", - "integrity": "sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==", - "license": "MIT", - "dependencies": { - "prr": "~1.0.1" - }, - "bin": { - "errno": "cli.js" - } - }, - "node_modules/es-define-property": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", - "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", - "license": "MIT", - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/es-errors": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", - "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", - "license": "MIT", - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/es-object-atoms": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz", - "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==", - "license": "MIT", - "dependencies": { - "es-errors": "^1.3.0" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/escalade": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", - "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/eslint-scope": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-4.0.3.tgz", - "integrity": "sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg==", - "license": "BSD-2-Clause", - "dependencies": { - "esrecurse": "^4.1.0", - "estraverse": "^4.1.1" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/esrecurse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", - "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", - "license": "BSD-2-Clause", - "dependencies": { - "estraverse": "^5.2.0" - }, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/esrecurse/node_modules/estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "license": "BSD-2-Clause", - "engines": { - "node": ">=4.0" - } - }, - "node_modules/estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", - "license": "BSD-2-Clause", - "engines": { - "node": ">=4.0" - } - }, - "node_modules/events": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", - "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", - "license": "MIT", - "engines": { - "node": ">=0.8.x" - } - }, - "node_modules/evp_bytestokey": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", - "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", - "license": "MIT", - "dependencies": { - "md5.js": "^1.3.4", - "safe-buffer": "^5.1.1" - } - }, - "node_modules/expand-brackets": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", - "integrity": "sha512-w/ozOKR9Obk3qoWeY/WDi6MFta9AoMR+zud60mdnbniMcBxRuFJyDt2LdX/14A1UABeqk+Uk+LDfUpvoGKppZA==", - "license": "MIT", - "dependencies": { - "debug": "^2.3.3", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "posix-character-classes": "^0.1.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/expand-brackets/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "license": "MIT", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/expand-brackets/node_modules/define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", - "license": "MIT", - "dependencies": { - "is-descriptor": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/expand-brackets/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", - "license": "MIT", - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/expand-brackets/node_modules/is-descriptor": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.7.tgz", - "integrity": "sha512-C3grZTvObeN1xud4cRWl366OMXZTj0+HGyk4hvfpx4ZHt1Pb60ANSXqCK7pdOTeUQpRzECBSTphqvD7U+l22Eg==", - "license": "MIT", - "dependencies": { - "is-accessor-descriptor": "^1.0.1", - "is-data-descriptor": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/expand-brackets/node_modules/is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/expand-brackets/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "license": "MIT" - }, - "node_modules/extend-shallow": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", - "integrity": "sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==", - "license": "MIT", - "dependencies": { - "assign-symbols": "^1.0.0", - "is-extendable": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/extglob": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", - "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", - "license": "MIT", - "dependencies": { - "array-unique": "^0.3.2", - "define-property": "^1.0.0", - "expand-brackets": "^2.1.4", - "extend-shallow": "^2.0.1", - "fragment-cache": "^0.2.1", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/extglob/node_modules/define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==", - "license": "MIT", - "dependencies": { - "is-descriptor": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/extglob/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", - "license": "MIT", - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/extglob/node_modules/is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "license": "MIT" - }, - "node_modules/fast-json-stable-stringify": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", - "license": "MIT" - }, - "node_modules/figgy-pudding": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/figgy-pudding/-/figgy-pudding-3.5.2.tgz", - "integrity": "sha512-0btnI/H8f2pavGMN8w40mlSKOfTK2SVJmBfBeVIj3kNw0swwgzyRq0d5TJVOwodFmtvpPeWPN/MCcfuWF0Ezbw==", - "deprecated": "This module is no longer supported.", - "license": "ISC" - }, - "node_modules/file-uri-to-path": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", - "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==", - "license": "MIT", - "optional": true - }, - "node_modules/fill-range": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha512-VcpLTWqWDiTerugjj8e3+esbg+skS3M9e54UuR3iCeIDMXCLTsAH8hTSzDQU/X6/6t3eYkOKoZSef2PlU6U1XQ==", - "license": "MIT", - "dependencies": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/fill-range/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", - "license": "MIT", - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/fill-range/node_modules/is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/find-cache-dir": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz", - "integrity": "sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==", - "license": "MIT", - "dependencies": { - "commondir": "^1.0.1", - "make-dir": "^2.0.0", - "pkg-dir": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/find-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", - "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", - "license": "MIT", - "dependencies": { - "locate-path": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/flush-write-stream": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.1.1.tgz", - "integrity": "sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w==", - "license": "MIT", - "dependencies": { - "inherits": "^2.0.3", - "readable-stream": "^2.3.6" - } - }, - "node_modules/for-each": { - "version": "0.3.5", - "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.5.tgz", - "integrity": "sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg==", - "license": "MIT", - "dependencies": { - "is-callable": "^1.2.7" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/for-in": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", - "integrity": "sha512-7EwmXrOjyL+ChxMhmG5lnW9MPt1aIeZEwKhQzoBUdTV0N3zuwWDZYVJatDvZ2OyzPUvdIAZDsCetk3coyMfcnQ==", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/fragment-cache": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", - "integrity": "sha512-GMBAbW9antB8iZRHLoGw0b3HANt57diZYFO/HL1JGIC1MjKrdmhxvrJbupnVvpys0zsz7yBApXdQyfepKly2kA==", - "license": "MIT", - "dependencies": { - "map-cache": "^0.2.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/from2": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz", - "integrity": "sha512-OMcX/4IC/uqEPVgGeyfN22LJk6AZrMkRZHxcHBMBvHScDGgwTm2GT2Wkgtocyd3JfZffjj2kYUDXXII0Fk9W0g==", - "license": "MIT", - "dependencies": { - "inherits": "^2.0.1", - "readable-stream": "^2.0.0" - } - }, - "node_modules/fs-write-stream-atomic": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz", - "integrity": "sha512-gehEzmPn2nAwr39eay+x3X34Ra+M2QlVUTLhkXPjWdeO8RF9kszk116avgBJM3ZyNHgHXBNx+VmPaFC36k0PzA==", - "deprecated": "This package is no longer supported.", - "license": "ISC", - "dependencies": { - "graceful-fs": "^4.1.2", - "iferr": "^0.1.5", - "imurmurhash": "^0.1.4", - "readable-stream": "1 || 2" - } - }, - "node_modules/fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", - "license": "ISC" - }, - "node_modules/fsevents": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", - "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", - "hasInstallScript": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" - } - }, - "node_modules/function-bind": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", - "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/gensync": { - "version": "1.0.0-beta.2", - "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", - "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/get-intrinsic": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz", - "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==", - "license": "MIT", - "dependencies": { - "call-bind-apply-helpers": "^1.0.2", - "es-define-property": "^1.0.1", - "es-errors": "^1.3.0", - "es-object-atoms": "^1.1.1", - "function-bind": "^1.1.2", - "get-proto": "^1.0.1", - "gopd": "^1.2.0", - "has-symbols": "^1.1.0", - "hasown": "^2.0.2", - "math-intrinsics": "^1.1.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/get-proto": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz", - "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==", - "license": "MIT", - "dependencies": { - "dunder-proto": "^1.0.1", - "es-object-atoms": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/get-value": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", - "integrity": "sha512-Ln0UQDlxH1BapMu3GPtf7CuYNwRZf2gwCuPqbyG6pB8WfmFpzqcy4xtAaAMUhnNqjMKTiCPZG2oMT3YSx8U2NA==", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "deprecated": "Glob versions prior to v9 are no longer supported", - "license": "ISC", - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "license": "ISC", - "optional": true, - "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/gopd": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", - "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/graceful-fs": { - "version": "4.2.11", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", - "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", - "license": "ISC" - }, - "node_modules/has-property-descriptors": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", - "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", - "license": "MIT", - "dependencies": { - "es-define-property": "^1.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-symbols": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", - "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==", - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-tostringtag": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", - "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", - "license": "MIT", - "dependencies": { - "has-symbols": "^1.0.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-value": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", - "integrity": "sha512-IBXk4GTsLYdQ7Rvt+GRBrFSVEkmuOUy4re0Xjd9kJSUQpnTrWR4/y9RpfexN9vkAPMFuQoeWKwqzPozRTlasGw==", - "license": "MIT", - "dependencies": { - "get-value": "^2.0.6", - "has-values": "^1.0.0", - "isobject": "^3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/has-values": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", - "integrity": "sha512-ODYZC64uqzmtfGMEAX/FvZiRyWLpAC3vYnNunURUnkGVTS+mI0smVsWaPydRBsE3g+ok7h960jChO8mFcWlHaQ==", - "license": "MIT", - "dependencies": { - "is-number": "^3.0.0", - "kind-of": "^4.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/has-values/node_modules/kind-of": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", - "integrity": "sha512-24XsCxmEbRwEDbz/qz3stgin8TTzZ1ESR56OMCN0ujYg+vRutNSiOj9bHH9u85DKgXguraugV5sFuvbD4FW/hw==", - "license": "MIT", - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/hash-base": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.0.5.tgz", - "integrity": "sha512-vXm0l45VbcHEVlTCzs8M+s0VeYsB2lnlAaThoLKGXr3bE/VWDOelNUnycUPEhKEaXARL2TEFjBOyUiM6+55KBg==", - "license": "MIT", - "dependencies": { - "inherits": "^2.0.4", - "safe-buffer": "^5.2.1" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/hash.js": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", - "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", - "license": "MIT", - "dependencies": { - "inherits": "^2.0.3", - "minimalistic-assert": "^1.0.1" - } - }, - "node_modules/hasown": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", - "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", - "license": "MIT", - "dependencies": { - "function-bind": "^1.1.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/hmac-drbg": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", - "integrity": "sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg==", - "license": "MIT", - "dependencies": { - "hash.js": "^1.0.3", - "minimalistic-assert": "^1.0.0", - "minimalistic-crypto-utils": "^1.0.1" - } - }, - "node_modules/https-browserify": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz", - "integrity": "sha512-J+FkSdyD+0mA0N+81tMotaRMfSL9SGi+xpD3T6YApKsc3bGSXJlfXri3VyFOeYkfLRQisDk1W+jIFFKBeUBbBg==", - "license": "MIT" - }, - "node_modules/ieee754": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", - "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "BSD-3-Clause" - }, - "node_modules/iferr": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/iferr/-/iferr-0.1.5.tgz", - "integrity": "sha512-DUNFN5j7Tln0D+TxzloUjKB+CtVu6myn0JEFak6dG18mNt9YkQ6lzGCdafwofISZ1lLF3xRHJ98VKy9ynkcFaA==", - "license": "MIT" - }, - "node_modules/imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", - "license": "MIT", - "engines": { - "node": ">=0.8.19" - } - }, - "node_modules/infer-owner": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz", - "integrity": "sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==", - "license": "ISC" - }, - "node_modules/inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", - "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.", - "license": "ISC", - "dependencies": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "node_modules/inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "license": "ISC" - }, - "node_modules/is-accessor-descriptor": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.1.tgz", - "integrity": "sha512-YBUanLI8Yoihw923YeFUS5fs0fF2f5TSFTNiYAAzhhDscDa3lEqYuz1pDOEP5KvX94I9ey3vsqjJcLVFVU+3QA==", - "license": "MIT", - "dependencies": { - "hasown": "^2.0.0" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/is-binary-path": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", - "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", - "license": "MIT", - "optional": true, - "dependencies": { - "binary-extensions": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", - "license": "MIT" - }, - "node_modules/is-callable": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", - "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-data-descriptor": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.1.tgz", - "integrity": "sha512-bc4NlCDiCr28U4aEsQ3Qs2491gVq4V8G7MQyws968ImqjKuYtTJXrl7Vq7jsN7Ly/C3xj5KWFrY7sHNeDkAzXw==", - "license": "MIT", - "dependencies": { - "hasown": "^2.0.0" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/is-descriptor": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.3.tgz", - "integrity": "sha512-JCNNGbwWZEVaSPtS45mdtrneRWJFp07LLmykxeFV5F6oBvNF8vHSfJuJgoT472pSfk+Mf8VnlrspaFBHWM8JAw==", - "license": "MIT", - "dependencies": { - "is-accessor-descriptor": "^1.0.1", - "is-data-descriptor": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "license": "MIT", - "dependencies": { - "is-plain-object": "^2.0.4" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", - "license": "MIT", - "optional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-glob": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "license": "MIT", - "optional": true, - "dependencies": { - "is-extglob": "^2.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg==", - "license": "MIT", - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-number/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", - "license": "MIT", - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-plain-object": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", - "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", - "license": "MIT", - "dependencies": { - "isobject": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-typed-array": { - "version": "1.1.15", - "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.15.tgz", - "integrity": "sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ==", - "license": "MIT", - "dependencies": { - "which-typed-array": "^1.1.16" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-windows": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", - "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-wsl": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz", - "integrity": "sha512-gfygJYZ2gLTDlmbWMI0CE2MwnFzSN/2SZfkMlItC4K/JBlsWVDB0bO6XhqcY13YXE7iMcAJnzTCJjPiTeJJ0Mw==", - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", - "license": "MIT" - }, - "node_modules/isexe": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-3.1.1.tgz", - "integrity": "sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==", - "dev": true, - "license": "ISC", - "engines": { - "node": ">=16" - } - }, - "node_modules/isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/jsesc": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz", - "integrity": "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==", - "dev": true, - "license": "MIT", - "bin": { - "jsesc": "bin/jsesc" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/json-parse-better-errors": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", - "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", - "license": "MIT" - }, - "node_modules/json-parse-even-better-errors": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-4.0.0.tgz", - "integrity": "sha512-lR4MXjGNgkJc7tkQ97kb2nuEMnNCyU//XYVH0MKTGcXEiSudQ5MKGKen3C5QubYy0vmq+JGitUg92uuywGEwIA==", - "dev": true, - "license": "MIT", - "engines": { - "node": "^18.17.0 || >=20.5.0" - } - }, - "node_modules/json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "license": "MIT" - }, - "node_modules/json5": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", - "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", - "dev": true, - "license": "MIT", - "bin": { - "json5": "lib/cli.js" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/konan": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/konan/-/konan-2.1.1.tgz", - "integrity": "sha512-7ZhYV84UzJ0PR/RJnnsMZcAbn+kLasJhVNWsu8ZyVEJYRpGA5XESQ9d/7zOa08U0Ou4cmB++hMNY/3OSV9KIbg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/parser": "^7.10.5", - "@babel/traverse": "^7.10.5" - } - }, - "node_modules/loader-runner": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-2.4.0.tgz", - "integrity": "sha512-Jsmr89RcXGIwivFY21FcRrisYZfvLMTWx5kOLc+JTxtpBOG6xML0vzbc6SEQG2FO9/4Fc3wW4LVcB5DmGflaRw==", - "license": "MIT", - "engines": { - "node": ">=4.3.0 <5.0.0 || >=5.10" - } - }, - "node_modules/loader-utils": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.2.tgz", - "integrity": "sha512-I5d00Pd/jwMD2QCduo657+YM/6L3KZu++pmX9VFncxaxvHcru9jx1lBaFft+r4Mt2jK0Yhp41XlRAihzPxHNCg==", - "license": "MIT", - "dependencies": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^1.0.1" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/loader-utils/node_modules/json5": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", - "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", - "license": "MIT", - "dependencies": { - "minimist": "^1.2.0" - }, - "bin": { - "json5": "lib/cli.js" - } - }, - "node_modules/locate-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", - "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", - "license": "MIT", - "dependencies": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/lru-cache": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", - "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", - "license": "ISC", - "dependencies": { - "yallist": "^3.0.2" - } - }, - "node_modules/make-dir": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", - "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", - "license": "MIT", - "dependencies": { - "pify": "^4.0.1", - "semver": "^5.6.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/make-dir/node_modules/semver": { - "version": "5.7.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", - "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", - "license": "ISC", - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/map-cache": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", - "integrity": "sha512-8y/eV9QQZCiyn1SprXSrCmqJN0yNRATe+PO8ztwqrvrbdRLA3eYJF0yaR0YayLWkMbsQSKWS9N2gPcGEc4UsZg==", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/map-visit": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", - "integrity": "sha512-4y7uGv8bd2WdM9vpQsiQNo41Ln1NvhvDRuVt0k2JZQ+ezN2uaQes7lZeZ+QQUHOLQAtDaBJ+7wCbi+ab/KFs+w==", - "license": "MIT", - "dependencies": { - "object-visit": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/math-intrinsics": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", - "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==", - "license": "MIT", - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/md5.js": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", - "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", - "license": "MIT", - "dependencies": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, - "node_modules/memory-fs": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.4.1.tgz", - "integrity": "sha512-cda4JKCxReDXFXRqOHPQscuIYg1PvxbE2S2GP45rnwfEK+vZaXC8C1OFvdHIbgw0DLzowXGVoxLaAmlgRy14GQ==", - "license": "MIT", - "dependencies": { - "errno": "^0.1.3", - "readable-stream": "^2.0.1" - } - }, - "node_modules/memorystream": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/memorystream/-/memorystream-0.3.1.tgz", - "integrity": "sha512-S3UwM3yj5mtUSEfP41UZmt/0SCoVYUcU1rkXv+BQ5Ig8ndL4sPoJNBUJERafdPb5jjHJGuMgytgKvKIf58XNBw==", - "dev": true, - "engines": { - "node": ">= 0.10.0" - } - }, - "node_modules/micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", - "license": "MIT", - "dependencies": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/miller-rabin": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz", - "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", - "license": "MIT", - "dependencies": { - "bn.js": "^4.0.0", - "brorand": "^1.0.1" - }, - "bin": { - "miller-rabin": "bin/miller-rabin" - } - }, - "node_modules/miller-rabin/node_modules/bn.js": { - "version": "4.12.2", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.2.tgz", - "integrity": "sha512-n4DSx829VRTRByMRGdjQ9iqsN0Bh4OolPsFnaZBLcbi8iXcB+kJ9s7EnRt4wILZNV3kPLHkRVfOc/HvhC3ovDw==", - "license": "MIT" - }, - "node_modules/minimalistic-assert": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", - "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", - "license": "ISC" - }, - "node_modules/minimalistic-crypto-utils": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", - "integrity": "sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg==", - "license": "MIT" - }, - "node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "license": "ISC", - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/minimist": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", - "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/mississippi": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/mississippi/-/mississippi-3.0.0.tgz", - "integrity": "sha512-x471SsVjUtBRtcvd4BzKE9kFC+/2TeWgKCgw0bZcw1b9l2X3QX5vCWgF+KaZaYm87Ss//rHnWryupDrgLvmSkA==", - "license": "BSD-2-Clause", - "dependencies": { - "concat-stream": "^1.5.0", - "duplexify": "^3.4.2", - "end-of-stream": "^1.1.0", - "flush-write-stream": "^1.0.0", - "from2": "^2.1.0", - "parallel-transform": "^1.1.0", - "pump": "^3.0.0", - "pumpify": "^1.3.3", - "stream-each": "^1.1.0", - "through2": "^2.0.0" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/mixin-deep": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", - "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", - "license": "MIT", - "dependencies": { - "for-in": "^1.0.2", - "is-extendable": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/mkdirp": { - "version": "0.5.6", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", - "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", - "license": "MIT", - "dependencies": { - "minimist": "^1.2.6" - }, - "bin": { - "mkdirp": "bin/cmd.js" - } - }, - "node_modules/move-concurrently": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/move-concurrently/-/move-concurrently-1.0.1.tgz", - "integrity": "sha512-hdrFxZOycD/g6A6SoI2bB5NA/5NEqD0569+S47WZhPvm46sD50ZHdYaFmnua5lndde9rCHGjmfK7Z8BuCt/PcQ==", - "deprecated": "This package is no longer supported.", - "license": "ISC", - "dependencies": { - "aproba": "^1.1.1", - "copy-concurrently": "^1.0.0", - "fs-write-stream-atomic": "^1.0.8", - "mkdirp": "^0.5.1", - "rimraf": "^2.5.4", - "run-queue": "^1.0.3" - } - }, - "node_modules/ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", - "dev": true, - "license": "MIT" - }, - "node_modules/nan": { - "version": "2.23.0", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.23.0.tgz", - "integrity": "sha512-1UxuyYGdoQHcGg87Lkqm3FzefucTa0NAiOcuRsDmysep3c1LVCRK2krrUDafMWtjSG04htvAmvg96+SDknOmgQ==", - "license": "MIT", - "optional": true - }, - "node_modules/nanomatch": { - "version": "1.2.13", - "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", - "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", - "license": "MIT", - "dependencies": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "fragment-cache": "^0.2.1", - "is-windows": "^1.0.2", - "kind-of": "^6.0.2", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/neo-async": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", - "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", - "license": "MIT" - }, - "node_modules/node-libs-browser": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.2.1.tgz", - "integrity": "sha512-h/zcD8H9kaDZ9ALUWwlBUDo6TKF8a7qBSCSEGfjTVIYeqsioSKaAX+BN7NgiMGp6iSIXZ3PxgCu8KS3b71YK5Q==", - "license": "MIT", - "dependencies": { - "assert": "^1.1.1", - "browserify-zlib": "^0.2.0", - "buffer": "^4.3.0", - "console-browserify": "^1.1.0", - "constants-browserify": "^1.0.0", - "crypto-browserify": "^3.11.0", - "domain-browser": "^1.1.1", - "events": "^3.0.0", - "https-browserify": "^1.0.0", - "os-browserify": "^0.3.0", - "path-browserify": "0.0.1", - "process": "^0.11.10", - "punycode": "^1.2.4", - "querystring-es3": "^0.2.0", - "readable-stream": "^2.3.3", - "stream-browserify": "^2.0.1", - "stream-http": "^2.7.2", - "string_decoder": "^1.0.0", - "timers-browserify": "^2.0.4", - "tty-browserify": "0.0.0", - "url": "^0.11.0", - "util": "^0.11.0", - "vm-browserify": "^1.0.1" - } - }, - "node_modules/node-releases": { - "version": "2.0.23", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.23.tgz", - "integrity": "sha512-cCmFDMSm26S6tQSDpBCg/NR8NENrVPhAJSf+XbxBG4rPFaaonlEoE9wHQmun+cls499TQGSb7ZyPBRlzgKfpeg==", - "license": "MIT" - }, - "node_modules/normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "license": "MIT", - "optional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/npm-normalize-package-bin": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-4.0.0.tgz", - "integrity": "sha512-TZKxPvItzai9kN9H/TkmCtx/ZN/hvr3vUycjlfmH0ootY9yFBzNOpiXAdIn1Iteqsvk4lQn6B5PTrt+n6h8k/w==", - "dev": true, - "license": "ISC", - "engines": { - "node": "^18.17.0 || >=20.5.0" - } - }, - "node_modules/npm-run-all2": { - "version": "8.0.4", - "resolved": "https://registry.npmjs.org/npm-run-all2/-/npm-run-all2-8.0.4.tgz", - "integrity": "sha512-wdbB5My48XKp2ZfJUlhnLVihzeuA1hgBnqB2J9ahV77wLS+/YAJAlN8I+X3DIFIPZ3m5L7nplmlbhNiFDmXRDA==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^6.2.1", - "cross-spawn": "^7.0.6", - "memorystream": "^0.3.1", - "picomatch": "^4.0.2", - "pidtree": "^0.6.0", - "read-package-json-fast": "^4.0.0", - "shell-quote": "^1.7.3", - "which": "^5.0.0" - }, - "bin": { - "npm-run-all": "bin/npm-run-all/index.js", - "npm-run-all2": "bin/npm-run-all/index.js", - "run-p": "bin/run-p/index.js", - "run-s": "bin/run-s/index.js" - }, - "engines": { - "node": "^20.5.0 || >=22.0.0", - "npm": ">= 10" - } - }, - "node_modules/object-copy": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", - "integrity": "sha512-79LYn6VAb63zgtmAteVOWo9Vdj71ZVBy3Pbse+VqxDpEP83XuujMrGqHIwAXJ5I/aM0zU7dIyIAhifVTPrNItQ==", - "license": "MIT", - "dependencies": { - "copy-descriptor": "^0.1.0", - "define-property": "^0.2.5", - "kind-of": "^3.0.3" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-copy/node_modules/define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", - "license": "MIT", - "dependencies": { - "is-descriptor": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-copy/node_modules/is-descriptor": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.7.tgz", - "integrity": "sha512-C3grZTvObeN1xud4cRWl366OMXZTj0+HGyk4hvfpx4ZHt1Pb60ANSXqCK7pdOTeUQpRzECBSTphqvD7U+l22Eg==", - "license": "MIT", - "dependencies": { - "is-accessor-descriptor": "^1.0.1", - "is-data-descriptor": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/object-copy/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", - "license": "MIT", - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-inspect": { - "version": "1.13.4", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.4.tgz", - "integrity": "sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==", - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/object-keys": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", - "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", - "license": "MIT", - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/object-visit": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", - "integrity": "sha512-GBaMwwAVK9qbQN3Scdo0OyvgPW7l3lnaVMj84uTOZlswkX0KpF6fyDBJhtTthf7pymztoN36/KEr1DyhF96zEA==", - "license": "MIT", - "dependencies": { - "isobject": "^3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object.assign": { - "version": "4.1.7", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.7.tgz", - "integrity": "sha512-nK28WOo+QIjBkDduTINE4JkF/UJJKyf2EJxvJKfblDpyg0Q+pkOHNTL0Qwy6NP6FhE/EnzV73BxxqcJaXY9anw==", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.8", - "call-bound": "^1.0.3", - "define-properties": "^1.2.1", - "es-object-atoms": "^1.0.0", - "has-symbols": "^1.1.0", - "object-keys": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/object.pick": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", - "integrity": "sha512-tqa/UMy/CCoYmj+H5qc07qvSL9dqcs/WZENZ1JbtWBlATP+iVOe778gE6MSijnyCnORzDuX6hU+LA4SZ09YjFQ==", - "license": "MIT", - "dependencies": { - "isobject": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", - "license": "ISC", - "dependencies": { - "wrappy": "1" - } - }, - "node_modules/os-browserify": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz", - "integrity": "sha512-gjcpUc3clBf9+210TRaDWbf+rZZZEshZ+DlXMRCeAjp0xhTrnQsKHypIy1J3d5hKdUzj69t708EHtU8P6bUn0A==", - "license": "MIT" - }, - "node_modules/p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "license": "MIT", - "dependencies": { - "p-try": "^2.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-locate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", - "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", - "license": "MIT", - "dependencies": { - "p-limit": "^2.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/p-try": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/pako": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", - "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==", - "license": "(MIT AND Zlib)" - }, - "node_modules/parallel-transform": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/parallel-transform/-/parallel-transform-1.2.0.tgz", - "integrity": "sha512-P2vSmIu38uIlvdcU7fDkyrxj33gTUy/ABO5ZUbGowxNCopBq/OoD42bP4UmMrJoPyk4Uqf0mu3mtWBhHCZD8yg==", - "license": "MIT", - "dependencies": { - "cyclist": "^1.0.1", - "inherits": "^2.0.3", - "readable-stream": "^2.1.5" - } - }, - "node_modules/parse-asn1": { - "version": "5.1.9", - "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.9.tgz", - "integrity": "sha512-fIYNuZ/HastSb80baGOuPRo1O9cf4baWw5WsAp7dBuUzeTD/BoaG8sVTdlPFksBE2lF21dN+A1AnrpIjSWqHHg==", - "license": "ISC", - "dependencies": { - "asn1.js": "^4.10.1", - "browserify-aes": "^1.2.0", - "evp_bytestokey": "^1.0.3", - "pbkdf2": "^3.1.5", - "safe-buffer": "^5.2.1" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/pascalcase": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", - "integrity": "sha512-XHXfu/yOQRy9vYOtUDVMN60OEJjW013GoObG1o+xwQTpB9eYJX/BjXMsdW13ZDPruFhYYn0AG22w0xgQMwl3Nw==", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/path-browserify": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.1.tgz", - "integrity": "sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ==", - "license": "MIT" - }, - "node_modules/path-dirname": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", - "integrity": "sha512-ALzNPpyNq9AqXMBjeymIjFDAkAFH06mHJH/cSBHAgU0s4vfpBn6b2nf8tiRLvagKD8RbTpq2FKTBg7cl9l3c7Q==", - "license": "MIT", - "optional": true - }, - "node_modules/path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==", - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/pbkdf2": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.5.tgz", - "integrity": "sha512-Q3CG/cYvCO1ye4QKkuH7EXxs3VC/rI1/trd+qX2+PolbaKG0H+bgcZzrTt96mMyRtejk+JMCiLUn3y29W8qmFQ==", - "license": "MIT", - "dependencies": { - "create-hash": "^1.2.0", - "create-hmac": "^1.1.7", - "ripemd160": "^2.0.3", - "safe-buffer": "^5.2.1", - "sha.js": "^2.4.12", - "to-buffer": "^1.2.1" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/picocolors": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", - "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", - "license": "ISC" - }, - "node_modules/picomatch": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz", - "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, - "node_modules/pidtree": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/pidtree/-/pidtree-0.6.0.tgz", - "integrity": "sha512-eG2dWTVw5bzqGRztnHExczNxt5VGsE6OwTeCG3fdUf9KBsZzO3R5OIIIzWR+iZA0NtZ+RDVdaoE2dK1cn6jH4g==", - "dev": true, - "license": "MIT", - "bin": { - "pidtree": "bin/pidtree.js" - }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/pify": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", - "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/pkg-dir": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz", - "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==", - "license": "MIT", - "dependencies": { - "find-up": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/posix-character-classes": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", - "integrity": "sha512-xTgYBc3fuo7Yt7JbiuFxSYGToMoz8fLoE6TC9Wx1P/u+LfeThMOAqmuyECnlBaaJb+u1m9hHiXUEtwW4OzfUJg==", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/possible-typed-array-names": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.1.0.tgz", - "integrity": "sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg==", - "license": "MIT", - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/process": { - "version": "0.11.10", - "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", - "integrity": "sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==", - "license": "MIT", - "engines": { - "node": ">= 0.6.0" - } - }, - "node_modules/process-nextick-args": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", - "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", - "license": "MIT" - }, - "node_modules/promise-inflight": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", - "integrity": "sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g==", - "license": "ISC" - }, - "node_modules/prr": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", - "integrity": "sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw==", - "license": "MIT" - }, - "node_modules/public-encrypt": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz", - "integrity": "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==", - "license": "MIT", - "dependencies": { - "bn.js": "^4.1.0", - "browserify-rsa": "^4.0.0", - "create-hash": "^1.1.0", - "parse-asn1": "^5.0.0", - "randombytes": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, - "node_modules/public-encrypt/node_modules/bn.js": { - "version": "4.12.2", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.2.tgz", - "integrity": "sha512-n4DSx829VRTRByMRGdjQ9iqsN0Bh4OolPsFnaZBLcbi8iXcB+kJ9s7EnRt4wILZNV3kPLHkRVfOc/HvhC3ovDw==", - "license": "MIT" - }, - "node_modules/pump": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.3.tgz", - "integrity": "sha512-todwxLMY7/heScKmntwQG8CXVkWUOdYxIvY2s0VWAAMh/nd8SoYiRaKjlr7+iCs984f2P8zvrfWcDDYVb73NfA==", - "license": "MIT", - "dependencies": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, - "node_modules/pumpify": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/pumpify/-/pumpify-1.5.1.tgz", - "integrity": "sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==", - "license": "MIT", - "dependencies": { - "duplexify": "^3.6.0", - "inherits": "^2.0.3", - "pump": "^2.0.0" - } - }, - "node_modules/pumpify/node_modules/pump": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz", - "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==", - "license": "MIT", - "dependencies": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, - "node_modules/punycode": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", - "integrity": "sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==", - "license": "MIT" - }, - "node_modules/qs": { - "version": "6.14.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.14.0.tgz", - "integrity": "sha512-YWWTjgABSKcvs/nWBi9PycY/JiPJqOD4JA6o9Sej2AtvSGarXxKC3OQSk4pAarbdQlKAh5D4FCQkJNkW+GAn3w==", - "license": "BSD-3-Clause", - "dependencies": { - "side-channel": "^1.1.0" - }, - "engines": { - "node": ">=0.6" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/querystring-es3": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz", - "integrity": "sha512-773xhDQnZBMFobEiztv8LIl70ch5MSF/jUQVlhwFyBILqq96anmoctVIYz+ZRp0qbCKATTn6ev02M3r7Ga5vqA==", - "engines": { - "node": ">=0.4.x" - } - }, - "node_modules/randombytes": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", - "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", - "license": "MIT", - "dependencies": { - "safe-buffer": "^5.1.0" - } - }, - "node_modules/randomfill": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz", - "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==", - "license": "MIT", - "dependencies": { - "randombytes": "^2.0.5", - "safe-buffer": "^5.1.0" - } - }, - "node_modules/read-package-json-fast": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/read-package-json-fast/-/read-package-json-fast-4.0.0.tgz", - "integrity": "sha512-qpt8EwugBWDw2cgE2W+/3oxC+KTez2uSVR8JU9Q36TXPAGCaozfQUs59v4j4GFpWTaw0i6hAZSvOmu1J0uOEUg==", - "dev": true, - "license": "ISC", - "dependencies": { - "json-parse-even-better-errors": "^4.0.0", - "npm-normalize-package-bin": "^4.0.0" - }, - "engines": { - "node": "^18.17.0 || >=20.5.0" - } - }, - "node_modules/readable-stream": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", - "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", - "license": "MIT", - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "node_modules/readable-stream/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "license": "MIT" - }, - "node_modules/readable-stream/node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "license": "MIT", - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, - "node_modules/readdirp": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", - "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", - "license": "MIT", - "optional": true, - "dependencies": { - "picomatch": "^2.2.1" - }, - "engines": { - "node": ">=8.10.0" - } - }, - "node_modules/readdirp/node_modules/picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "license": "MIT", - "optional": true, - "engines": { - "node": ">=8.6" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, - "node_modules/regenerate": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", - "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==", - "dev": true, - "license": "MIT" - }, - "node_modules/regenerate-unicode-properties": { - "version": "10.2.2", - "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.2.2.tgz", - "integrity": "sha512-m03P+zhBeQd1RGnYxrGyDAPpWX/epKirLrp8e3qevZdVkKtnCrjjWczIbYc8+xd6vcTStVlqfycTx1KR4LOr0g==", - "dev": true, - "license": "MIT", - "dependencies": { - "regenerate": "^1.4.2" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/regex-not": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", - "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", - "license": "MIT", - "dependencies": { - "extend-shallow": "^3.0.2", - "safe-regex": "^1.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/regexpu-core": { - "version": "6.4.0", - "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-6.4.0.tgz", - "integrity": "sha512-0ghuzq67LI9bLXpOX/ISfve/Mq33a4aFRzoQYhnnok1JOFpmE/A2TBGkNVenOGEeSBCjIiWcc6MVOG5HEQv0sA==", - "dev": true, - "license": "MIT", - "dependencies": { - "regenerate": "^1.4.2", - "regenerate-unicode-properties": "^10.2.2", - "regjsgen": "^0.8.0", - "regjsparser": "^0.13.0", - "unicode-match-property-ecmascript": "^2.0.0", - "unicode-match-property-value-ecmascript": "^2.2.1" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/regjsgen": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.8.0.tgz", - "integrity": "sha512-RvwtGe3d7LvWiDQXeQw8p5asZUmfU1G/l6WbUXeHta7Y2PEIvBTwH6E2EfmYUK8pxcxEdEmaomqyp0vZZ7C+3Q==", - "dev": true, - "license": "MIT" - }, - "node_modules/regjsparser": { - "version": "0.13.0", - "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.13.0.tgz", - "integrity": "sha512-NZQZdC5wOE/H3UT28fVGL+ikOZcEzfMGk/c3iN9UGxzWHMa1op7274oyiUVrAG4B2EuFhus8SvkaYnhvW92p9Q==", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "jsesc": "~3.1.0" - }, - "bin": { - "regjsparser": "bin/parser" - } - }, - "node_modules/remove-trailing-separator": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", - "integrity": "sha512-/hS+Y0u3aOfIETiaiirUFwDBDzmXPvO+jAfKTitUngIPzdKc6Z0LoFjM/CK5PL4C+eKwHohlHAb6H0VFfmmUsw==", - "license": "ISC", - "optional": true - }, - "node_modules/repeat-element": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.4.tgz", - "integrity": "sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ==", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/repeat-string": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", - "integrity": "sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w==", - "license": "MIT", - "engines": { - "node": ">=0.10" - } - }, - "node_modules/resolve-url": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", - "integrity": "sha512-ZuF55hVUQaaczgOIwqWzkEcEidmlD/xl44x1UZnhOXcYuFN2S6+rcxpG+C1N3So0wvNI3DmJICUFfu2SxhBmvg==", - "deprecated": "https://github.com/lydell/resolve-url#deprecated", - "license": "MIT" - }, - "node_modules/ret": { - "version": "0.1.15", - "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", - "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", - "license": "MIT", - "engines": { - "node": ">=0.12" - } - }, - "node_modules/rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "deprecated": "Rimraf versions prior to v4 are no longer supported", - "license": "ISC", - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - } - }, - "node_modules/ripemd160": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.3.tgz", - "integrity": "sha512-5Di9UC0+8h1L6ZD2d7awM7E/T4uA1fJRlx6zk/NvdCCVEoAnFqvHmCuNeIKoCeIixBX/q8uM+6ycDvF8woqosA==", - "license": "MIT", - "dependencies": { - "hash-base": "^3.1.2", - "inherits": "^2.0.4" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/ripemd160/node_modules/hash-base": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.1.2.tgz", - "integrity": "sha512-Bb33KbowVTIj5s7Ked1OsqHUeCpz//tPwR+E2zJgJKo9Z5XolZ9b6bdUgjmYlwnWhoOQKoTd1TYToZGn5mAYOg==", - "license": "MIT", - "dependencies": { - "inherits": "^2.0.4", - "readable-stream": "^2.3.8", - "safe-buffer": "^5.2.1", - "to-buffer": "^1.2.1" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/run-queue": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/run-queue/-/run-queue-1.0.3.tgz", - "integrity": "sha512-ntymy489o0/QQplUDnpYAYUsO50K9SBrIVaKCWDOJzYJts0f9WH9RFJkyagebkw5+y1oi00R7ynNW/d12GBumg==", - "license": "ISC", - "dependencies": { - "aproba": "^1.1.1" - } - }, - "node_modules/safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "node_modules/fast-uri": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.1.0.tgz", + "integrity": "sha512-iPeeDKJSWf4IEOasVVrknXpaBV0IApz/gp7S2bb7Z4Lljbl2MGJRqInZiUrQwV16cpzw/D3S5j5Julj/gT52AA==", "funding": [ { "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" + "url": "https://github.com/sponsors/fastify" }, { - "type": "consulting", - "url": "https://feross.org/support" + "type": "opencollective", + "url": "https://opencollective.com/fastify" } ], - "license": "MIT" + "license": "BSD-3-Clause" }, - "node_modules/safe-regex": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", - "integrity": "sha512-aJXcif4xnaNUzvUuC5gcb46oTS7zvg4jpMTnuqtrEPlR3vFr4pxtdTwaF1Qs3Enjn9HK+ZlwQui+a7z0SywIzg==", + "node_modules/gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "dev": true, "license": "MIT", - "dependencies": { - "ret": "~0.1.10" + "engines": { + "node": ">=6.9.0" } }, - "node_modules/schema-utils": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", - "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", + "node_modules/glob-to-regexp": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", + "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", + "license": "BSD-2-Clause" + }, + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "license": "ISC" + }, + "node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "license": "MIT", - "dependencies": { - "ajv": "^6.1.0", - "ajv-errors": "^1.0.0", - "ajv-keywords": "^3.1.0" - }, "engines": { - "node": ">= 4" + "node": ">=8" } }, - "node_modules/semver": { - "version": "7.7.3", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz", - "integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==", + "node_modules/isexe": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-3.1.1.tgz", + "integrity": "sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==", "dev": true, "license": "ISC", - "bin": { - "semver": "bin/semver.js" - }, "engines": { - "node": ">=10" - } - }, - "node_modules/serialize-javascript": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-4.0.0.tgz", - "integrity": "sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw==", - "license": "BSD-3-Clause", - "dependencies": { - "randombytes": "^2.1.0" + "node": ">=16" } }, - "node_modules/set-function-length": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", - "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", + "node_modules/jest-worker": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", + "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", "license": "MIT", "dependencies": { - "define-data-property": "^1.1.4", - "es-errors": "^1.3.0", - "function-bind": "^1.1.2", - "get-intrinsic": "^1.2.4", - "gopd": "^1.0.1", - "has-property-descriptors": "^1.0.2" + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" }, "engines": { - "node": ">= 0.4" + "node": ">= 10.13.0" } }, - "node_modules/set-value": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz", - "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==", - "license": "MIT", - "dependencies": { - "extend-shallow": "^2.0.1", - "is-extendable": "^0.1.1", - "is-plain-object": "^2.0.3", - "split-string": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true, + "license": "MIT" }, - "node_modules/set-value/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", + "node_modules/jsesc": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz", + "integrity": "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==", + "dev": true, "license": "MIT", - "dependencies": { - "is-extendable": "^0.1.0" + "bin": { + "jsesc": "bin/jsesc" }, "engines": { - "node": ">=0.10.0" + "node": ">=6" } }, - "node_modules/set-value/node_modules/is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", + "node_modules/json-parse-even-better-errors": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-4.0.0.tgz", + "integrity": "sha512-lR4MXjGNgkJc7tkQ97kb2nuEMnNCyU//XYVH0MKTGcXEiSudQ5MKGKen3C5QubYy0vmq+JGitUg92uuywGEwIA==", + "dev": true, "license": "MIT", "engines": { - "node": ">=0.10.0" + "node": "^18.17.0 || >=20.5.0" } }, - "node_modules/setimmediate": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", - "integrity": "sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==", + "node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", "license": "MIT" }, - "node_modules/sha.js": { - "version": "2.4.12", - "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.12.tgz", - "integrity": "sha512-8LzC5+bvI45BjpfXU8V5fdU2mfeKiQe1D1gIMn7XUlF3OTUrpdJpPPH4EMAnF0DsHHdSZqCdSss5qCmJKuiO3w==", - "license": "(MIT AND BSD-3-Clause)", - "dependencies": { - "inherits": "^2.0.4", - "safe-buffer": "^5.2.1", - "to-buffer": "^1.2.0" - }, - "bin": { - "sha.js": "bin.js" - }, - "engines": { - "node": ">= 0.10" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "node_modules/json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", "dev": true, "license": "MIT", - "dependencies": { - "shebang-regex": "^3.0.0" + "bin": { + "json5": "lib/cli.js" }, "engines": { - "node": ">=8" + "node": ">=6" } }, - "node_modules/shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "node_modules/konan": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/konan/-/konan-2.1.1.tgz", + "integrity": "sha512-7ZhYV84UzJ0PR/RJnnsMZcAbn+kLasJhVNWsu8ZyVEJYRpGA5XESQ9d/7zOa08U0Ou4cmB++hMNY/3OSV9KIbg==", "dev": true, "license": "MIT", - "engines": { - "node": ">=8" + "dependencies": { + "@babel/parser": "^7.10.5", + "@babel/traverse": "^7.10.5" } }, - "node_modules/shell-quote": { - "version": "1.8.3", - "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.3.tgz", - "integrity": "sha512-ObmnIF4hXNg1BqhnHmgbDETF8dLPCggZWBjkQfhZpbszZnYur5DUljTcCHii5LC3J5E0yeO/1LIMyH+UvHQgyw==", - "dev": true, + "node_modules/loader-runner": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.1.tgz", + "integrity": "sha512-IWqP2SCPhyVFTBtRcgMHdzlf9ul25NwaFx4wCEH/KjAXuuHY4yNjvPXsBokp8jCB936PyWRaPKUNh8NvylLp2Q==", "license": "MIT", "engines": { - "node": ">= 0.4" + "node": ">=6.11.5" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "type": "opencollective", + "url": "https://opencollective.com/webpack" } }, - "node_modules/side-channel": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.1.0.tgz", - "integrity": "sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==", - "license": "MIT", + "node_modules/lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dev": true, + "license": "ISC", "dependencies": { - "es-errors": "^1.3.0", - "object-inspect": "^1.13.3", - "side-channel-list": "^1.0.0", - "side-channel-map": "^1.0.1", - "side-channel-weakmap": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "yallist": "^3.0.2" } }, - "node_modules/side-channel-list": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/side-channel-list/-/side-channel-list-1.0.0.tgz", - "integrity": "sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==", - "license": "MIT", - "dependencies": { - "es-errors": "^1.3.0", - "object-inspect": "^1.13.3" - }, + "node_modules/memorystream": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/memorystream/-/memorystream-0.3.1.tgz", + "integrity": "sha512-S3UwM3yj5mtUSEfP41UZmt/0SCoVYUcU1rkXv+BQ5Ig8ndL4sPoJNBUJERafdPb5jjHJGuMgytgKvKIf58XNBw==", + "dev": true, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">= 0.10.0" } }, - "node_modules/side-channel-map": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/side-channel-map/-/side-channel-map-1.0.1.tgz", - "integrity": "sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==", + "node_modules/merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "license": "MIT" + }, + "node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", "license": "MIT", - "dependencies": { - "call-bound": "^1.0.2", - "es-errors": "^1.3.0", - "get-intrinsic": "^1.2.5", - "object-inspect": "^1.13.3" - }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">= 0.6" } }, - "node_modules/side-channel-weakmap": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz", - "integrity": "sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==", + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", "license": "MIT", "dependencies": { - "call-bound": "^1.0.2", - "es-errors": "^1.3.0", - "get-intrinsic": "^1.2.5", - "object-inspect": "^1.13.3", - "side-channel-map": "^1.0.1" + "mime-db": "1.52.0" }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">= 0.6" } }, - "node_modules/snapdragon": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", - "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", - "license": "MIT", - "dependencies": { - "base": "^0.11.1", - "debug": "^2.2.0", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "map-cache": "^0.2.2", - "source-map": "^0.5.6", - "source-map-resolve": "^0.5.0", - "use": "^3.1.0" - }, + "node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true, + "license": "MIT" + }, + "node_modules/neo-async": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", + "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", + "license": "MIT" + }, + "node_modules/node-releases": { + "version": "2.0.23", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.23.tgz", + "integrity": "sha512-cCmFDMSm26S6tQSDpBCg/NR8NENrVPhAJSf+XbxBG4rPFaaonlEoE9wHQmun+cls499TQGSb7ZyPBRlzgKfpeg==", + "license": "MIT" + }, + "node_modules/npm-normalize-package-bin": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-4.0.0.tgz", + "integrity": "sha512-TZKxPvItzai9kN9H/TkmCtx/ZN/hvr3vUycjlfmH0ootY9yFBzNOpiXAdIn1Iteqsvk4lQn6B5PTrt+n6h8k/w==", + "dev": true, + "license": "ISC", "engines": { - "node": ">=0.10.0" + "node": "^18.17.0 || >=20.5.0" } }, - "node_modules/snapdragon-node": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", - "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", + "node_modules/npm-run-all2": { + "version": "8.0.4", + "resolved": "https://registry.npmjs.org/npm-run-all2/-/npm-run-all2-8.0.4.tgz", + "integrity": "sha512-wdbB5My48XKp2ZfJUlhnLVihzeuA1hgBnqB2J9ahV77wLS+/YAJAlN8I+X3DIFIPZ3m5L7nplmlbhNiFDmXRDA==", + "dev": true, "license": "MIT", "dependencies": { - "define-property": "^1.0.0", - "isobject": "^3.0.0", - "snapdragon-util": "^3.0.1" + "ansi-styles": "^6.2.1", + "cross-spawn": "^7.0.6", + "memorystream": "^0.3.1", + "picomatch": "^4.0.2", + "pidtree": "^0.6.0", + "read-package-json-fast": "^4.0.0", + "shell-quote": "^1.7.3", + "which": "^5.0.0" + }, + "bin": { + "npm-run-all": "bin/npm-run-all/index.js", + "npm-run-all2": "bin/npm-run-all/index.js", + "run-p": "bin/run-p/index.js", + "run-s": "bin/run-s/index.js" }, "engines": { - "node": ">=0.10.0" + "node": "^20.5.0 || >=22.0.0", + "npm": ">= 10" } }, - "node_modules/snapdragon-node/node_modules/define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==", + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true, "license": "MIT", - "dependencies": { - "is-descriptor": "^1.0.0" - }, "engines": { - "node": ">=0.10.0" + "node": ">=8" } }, - "node_modules/snapdragon-util": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", - "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", + "node_modules/picocolors": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", + "license": "ISC" + }, + "node_modules/picomatch": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz", + "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", + "dev": true, "license": "MIT", - "dependencies": { - "kind-of": "^3.2.0" - }, "engines": { - "node": ">=0.10.0" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" } }, - "node_modules/snapdragon-util/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "node_modules/pidtree": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/pidtree/-/pidtree-0.6.0.tgz", + "integrity": "sha512-eG2dWTVw5bzqGRztnHExczNxt5VGsE6OwTeCG3fdUf9KBsZzO3R5OIIIzWR+iZA0NtZ+RDVdaoE2dK1cn6jH4g==", + "dev": true, "license": "MIT", - "dependencies": { - "is-buffer": "^1.1.5" + "bin": { + "pidtree": "bin/pidtree.js" }, "engines": { - "node": ">=0.10.0" + "node": ">=0.10" } }, - "node_modules/snapdragon/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "node_modules/randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", "license": "MIT", "dependencies": { - "ms": "2.0.0" + "safe-buffer": "^5.1.0" } }, - "node_modules/snapdragon/node_modules/define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", - "license": "MIT", + "node_modules/read-package-json-fast": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/read-package-json-fast/-/read-package-json-fast-4.0.0.tgz", + "integrity": "sha512-qpt8EwugBWDw2cgE2W+/3oxC+KTez2uSVR8JU9Q36TXPAGCaozfQUs59v4j4GFpWTaw0i6hAZSvOmu1J0uOEUg==", + "dev": true, + "license": "ISC", "dependencies": { - "is-descriptor": "^0.1.0" + "json-parse-even-better-errors": "^4.0.0", + "npm-normalize-package-bin": "^4.0.0" }, "engines": { - "node": ">=0.10.0" + "node": "^18.17.0 || >=20.5.0" } }, - "node_modules/snapdragon/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", + "node_modules/regenerate": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", + "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==", + "dev": true, + "license": "MIT" + }, + "node_modules/regenerate-unicode-properties": { + "version": "10.2.2", + "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.2.2.tgz", + "integrity": "sha512-m03P+zhBeQd1RGnYxrGyDAPpWX/epKirLrp8e3qevZdVkKtnCrjjWczIbYc8+xd6vcTStVlqfycTx1KR4LOr0g==", + "dev": true, "license": "MIT", "dependencies": { - "is-extendable": "^0.1.0" + "regenerate": "^1.4.2" }, "engines": { - "node": ">=0.10.0" + "node": ">=4" } }, - "node_modules/snapdragon/node_modules/is-descriptor": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.7.tgz", - "integrity": "sha512-C3grZTvObeN1xud4cRWl366OMXZTj0+HGyk4hvfpx4ZHt1Pb60ANSXqCK7pdOTeUQpRzECBSTphqvD7U+l22Eg==", + "node_modules/regexpu-core": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-6.4.0.tgz", + "integrity": "sha512-0ghuzq67LI9bLXpOX/ISfve/Mq33a4aFRzoQYhnnok1JOFpmE/A2TBGkNVenOGEeSBCjIiWcc6MVOG5HEQv0sA==", + "dev": true, "license": "MIT", "dependencies": { - "is-accessor-descriptor": "^1.0.1", - "is-data-descriptor": "^1.0.1" + "regenerate": "^1.4.2", + "regenerate-unicode-properties": "^10.2.2", + "regjsgen": "^0.8.0", + "regjsparser": "^0.13.0", + "unicode-match-property-ecmascript": "^2.0.0", + "unicode-match-property-value-ecmascript": "^2.2.1" }, "engines": { - "node": ">= 0.4" - } - }, - "node_modules/snapdragon/node_modules/is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", - "license": "MIT", - "engines": { - "node": ">=0.10.0" + "node": ">=4" } }, - "node_modules/snapdragon/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "license": "MIT" - }, - "node_modules/source-list-map": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.1.tgz", - "integrity": "sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw==", + "node_modules/regjsgen": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.8.0.tgz", + "integrity": "sha512-RvwtGe3d7LvWiDQXeQw8p5asZUmfU1G/l6WbUXeHta7Y2PEIvBTwH6E2EfmYUK8pxcxEdEmaomqyp0vZZ7C+3Q==", + "dev": true, "license": "MIT" }, - "node_modules/source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==", - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/source-map-resolve": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz", - "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==", - "deprecated": "See https://github.com/lydell/source-map-resolve#deprecated", - "license": "MIT", + "node_modules/regjsparser": { + "version": "0.13.0", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.13.0.tgz", + "integrity": "sha512-NZQZdC5wOE/H3UT28fVGL+ikOZcEzfMGk/c3iN9UGxzWHMa1op7274oyiUVrAG4B2EuFhus8SvkaYnhvW92p9Q==", + "dev": true, + "license": "BSD-2-Clause", "dependencies": { - "atob": "^2.1.2", - "decode-uri-component": "^0.2.0", - "resolve-url": "^0.2.1", - "source-map-url": "^0.4.0", - "urix": "^0.1.0" + "jsesc": "~3.1.0" + }, + "bin": { + "regjsparser": "bin/parser" } }, - "node_modules/source-map-support": { - "version": "0.5.21", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", - "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "node_modules/require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", "license": "MIT", - "dependencies": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - } - }, - "node_modules/source-map-support/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "license": "BSD-3-Clause", "engines": { "node": ">=0.10.0" } }, - "node_modules/source-map-url": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.1.tgz", - "integrity": "sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==", - "deprecated": "See https://github.com/lydell/source-map-url#deprecated", + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], "license": "MIT" }, - "node_modules/split-string": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", - "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", + "node_modules/schema-utils": { + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.3.3.tgz", + "integrity": "sha512-eflK8wEtyOE6+hsaRVPxvUKYCpRgzLqDTb8krvAsRIwOGlHoSgYLgBXoubGgLd2fT41/OUYdb48v4k4WWHQurA==", "license": "MIT", "dependencies": { - "extend-shallow": "^3.0.0" + "@types/json-schema": "^7.0.9", + "ajv": "^8.9.0", + "ajv-formats": "^2.1.1", + "ajv-keywords": "^5.1.0" }, "engines": { - "node": ">=0.10.0" + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" } }, - "node_modules/ssri": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-6.0.2.tgz", - "integrity": "sha512-cepbSq/neFK7xB6A50KHN0xHDotYzq58wWCa5LeWqnPrHG8GzfEjO/4O8kpmcGW+oaxkvhEJCWgbgNk4/ZV93Q==", + "node_modules/semver": { + "version": "7.7.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz", + "integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==", + "dev": true, "license": "ISC", - "dependencies": { - "figgy-pudding": "^3.5.1" - } - }, - "node_modules/static-extend": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", - "integrity": "sha512-72E9+uLc27Mt718pMHt9VMNiAL4LMsmDbBva8mxWUCkT07fSzEGMYUCk0XWY6lp0j6RBAG4cJ3mWuZv2OE3s0g==", - "license": "MIT", - "dependencies": { - "define-property": "^0.2.5", - "object-copy": "^0.1.0" + "bin": { + "semver": "bin/semver.js" }, "engines": { - "node": ">=0.10.0" + "node": ">=10" } }, - "node_modules/static-extend/node_modules/define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", - "license": "MIT", + "node_modules/serialize-javascript": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.2.tgz", + "integrity": "sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==", + "license": "BSD-3-Clause", "dependencies": { - "is-descriptor": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" + "randombytes": "^2.1.0" } }, - "node_modules/static-extend/node_modules/is-descriptor": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.7.tgz", - "integrity": "sha512-C3grZTvObeN1xud4cRWl366OMXZTj0+HGyk4hvfpx4ZHt1Pb60ANSXqCK7pdOTeUQpRzECBSTphqvD7U+l22Eg==", + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, "license": "MIT", "dependencies": { - "is-accessor-descriptor": "^1.0.1", - "is-data-descriptor": "^1.0.1" + "shebang-regex": "^3.0.0" }, "engines": { - "node": ">= 0.4" - } - }, - "node_modules/stream-browserify": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.2.tgz", - "integrity": "sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg==", - "license": "MIT", - "dependencies": { - "inherits": "~2.0.1", - "readable-stream": "^2.0.2" - } - }, - "node_modules/stream-each": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/stream-each/-/stream-each-1.2.3.tgz", - "integrity": "sha512-vlMC2f8I2u/bZGqkdfLQW/13Zihpej/7PmSiMQsbYddxuTsJp8vRe2x2FvVExZg7FaOds43ROAuFJwPR4MTZLw==", - "license": "MIT", - "dependencies": { - "end-of-stream": "^1.1.0", - "stream-shift": "^1.0.0" - } - }, - "node_modules/stream-http": { - "version": "2.8.3", - "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-2.8.3.tgz", - "integrity": "sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw==", - "license": "MIT", - "dependencies": { - "builtin-status-codes": "^3.0.0", - "inherits": "^2.0.1", - "readable-stream": "^2.3.6", - "to-arraybuffer": "^1.0.0", - "xtend": "^4.0.0" - } - }, - "node_modules/stream-shift": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.3.tgz", - "integrity": "sha512-76ORR0DO1o1hlKwTbi/DM3EXWGf3ZJYO8cXX5RJwnul2DEg2oyoZyjLNoQM8WsvZiFKCRfC1O0J7iCvie3RZmQ==", - "license": "MIT" - }, - "node_modules/string_decoder": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", - "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", - "license": "MIT", - "dependencies": { - "safe-buffer": "~5.2.0" + "node": ">=8" } }, - "node_modules/tapable": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/tapable/-/tapable-1.1.3.tgz", - "integrity": "sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==", + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true, "license": "MIT", "engines": { - "node": ">=6" - } - }, - "node_modules/terser": { - "version": "4.8.1", - "resolved": "https://registry.npmjs.org/terser/-/terser-4.8.1.tgz", - "integrity": "sha512-4GnLC0x667eJG0ewJTa6z/yXrbLGv80D9Ru6HIpCQmO+Q4PfEtBFi0ObSckqwL6VyQv/7ENJieXHo2ANmdQwgw==", - "license": "BSD-2-Clause", - "dependencies": { - "commander": "^2.20.0", - "source-map": "~0.6.1", - "source-map-support": "~0.5.12" - }, - "bin": { - "terser": "bin/terser" - }, - "engines": { - "node": ">=6.0.0" + "node": ">=8" } }, - "node_modules/terser-webpack-plugin": { - "version": "1.4.6", - "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-1.4.6.tgz", - "integrity": "sha512-2lBVf/VMVIddjSn3GqbT90GvIJ/eYXJkt8cTzU7NbjKqK8fwv18Ftr4PlbF46b/e88743iZFL5Dtr/rC4hjIeA==", + "node_modules/shell-quote": { + "version": "1.8.3", + "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.3.tgz", + "integrity": "sha512-ObmnIF4hXNg1BqhnHmgbDETF8dLPCggZWBjkQfhZpbszZnYur5DUljTcCHii5LC3J5E0yeO/1LIMyH+UvHQgyw==", + "dev": true, "license": "MIT", - "dependencies": { - "cacache": "^12.0.2", - "find-cache-dir": "^2.1.0", - "is-wsl": "^1.1.0", - "schema-utils": "^1.0.0", - "serialize-javascript": "^4.0.0", - "source-map": "^0.6.1", - "terser": "^4.1.2", - "webpack-sources": "^1.4.0", - "worker-farm": "^1.7.0" - }, "engines": { - "node": ">= 6.9.0" + "node": ">= 0.4" }, - "peerDependencies": { - "webpack": "^4.0.0" - } - }, - "node_modules/terser-webpack-plugin/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.10.0" + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/terser/node_modules/source-map": { + "node_modules/source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/through2": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", - "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", - "license": "MIT", - "dependencies": { - "readable-stream": "~2.3.6", - "xtend": "~4.0.1" - } - }, - "node_modules/timers-browserify": { - "version": "2.0.12", - "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.12.tgz", - "integrity": "sha512-9phl76Cqm6FhSX9Xe1ZUAMLtm1BLkKj2Qd5ApyWkXzsMRaA7dgr81kf4wJmQf/hAvg8EEyJxDo3du/0KlhPiKQ==", - "license": "MIT", - "dependencies": { - "setimmediate": "^1.0.4" - }, + "license": "BSD-3-Clause", "engines": { - "node": ">=0.6.0" + "node": ">=0.10.0" } }, - "node_modules/to-arraybuffer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz", - "integrity": "sha512-okFlQcoGTi4LQBG/PgSYblw9VOyptsz2KJZqc6qtgGdes8VktzUQkj4BI2blit072iS8VODNcMA+tvnS9dnuMA==", - "license": "MIT" - }, - "node_modules/to-buffer": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/to-buffer/-/to-buffer-1.2.2.tgz", - "integrity": "sha512-db0E3UJjcFhpDhAF4tLo03oli3pwl3dbnzXOUIlRKrp+ldk/VUxzpWYZENsw2SZiuBjHAk7DfB0VU7NKdpb6sw==", + "node_modules/source-map-support": { + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", "license": "MIT", "dependencies": { - "isarray": "^2.0.5", - "safe-buffer": "^5.2.1", - "typed-array-buffer": "^1.0.3" - }, - "engines": { - "node": ">= 0.4" + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" } }, - "node_modules/to-buffer/node_modules/isarray": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", - "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", - "license": "MIT" - }, - "node_modules/to-object-path": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", - "integrity": "sha512-9mWHdnGRuh3onocaHzukyvCZhzvr6tiflAy/JRFXcJX0TjgfWA9pk9t8CMbzmBE4Jfw58pXbkngtBtqYxzNEyg==", + "node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", "license": "MIT", "dependencies": { - "kind-of": "^3.0.2" + "has-flag": "^4.0.0" }, "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/to-object-path/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", - "license": "MIT", - "dependencies": { - "is-buffer": "^1.1.5" + "node": ">=10" }, - "engines": { - "node": ">=0.10.0" + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" } }, - "node_modules/to-regex": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", - "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", + "node_modules/tapable": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.3.0.tgz", + "integrity": "sha512-g9ljZiwki/LfxmQADO3dEY1CbpmXT5Hm2fJ+QaGKwSXUylMybePR7/67YW7jOrrvjEgL1Fmz5kzyAjWVWLlucg==", "license": "MIT", - "dependencies": { - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "regex-not": "^1.0.2", - "safe-regex": "^1.1.0" - }, "engines": { - "node": ">=0.10.0" + "node": ">=6" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" } }, - "node_modules/to-regex-range": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", - "integrity": "sha512-ZZWNfCjUokXXDGXFpZehJIkZqq91BcULFq/Pi7M5i4JnxXdhMKAK682z8bCW3o8Hj1wuuzoKcW3DfVzaP6VuNg==", - "license": "MIT", + "node_modules/terser": { + "version": "5.44.0", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.44.0.tgz", + "integrity": "sha512-nIVck8DK+GM/0Frwd+nIhZ84pR/BX7rmXMfYwyg+Sri5oGVE99/E3KvXqpC2xHFxyqXyGHTKBSioxxplrO4I4w==", + "license": "BSD-2-Clause", "dependencies": { - "is-number": "^3.0.0", - "repeat-string": "^1.6.1" + "@jridgewell/source-map": "^0.3.3", + "acorn": "^8.15.0", + "commander": "^2.20.0", + "source-map-support": "~0.5.20" + }, + "bin": { + "terser": "bin/terser" }, "engines": { - "node": ">=0.10.0" + "node": ">=10" } }, - "node_modules/tty-browserify": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz", - "integrity": "sha512-JVa5ijo+j/sOoHGjw0sxw734b1LhBkQ3bvUGNdxnVXDCX81Yx7TFgnZygxrIIWn23hbfTaMYLwRmAxFyDuFmIw==", - "license": "MIT" - }, - "node_modules/typed-array-buffer": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.3.tgz", - "integrity": "sha512-nAYYwfY3qnzX30IkA6AQZjVbtK6duGontcQm1WSG1MD94YLqK0515GNApXkoxKOWMusVssAHWLh9SeaoefYFGw==", + "node_modules/terser-webpack-plugin": { + "version": "5.3.14", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.14.tgz", + "integrity": "sha512-vkZjpUjb6OMS7dhV+tILUW6BhpDR7P2L/aQSAv+Uwk+m8KATX9EccViHTJR2qDtACKPIYndLGCyl3FMo+r2LMw==", "license": "MIT", "dependencies": { - "call-bound": "^1.0.3", - "es-errors": "^1.3.0", - "is-typed-array": "^1.1.14" + "@jridgewell/trace-mapping": "^0.3.25", + "jest-worker": "^27.4.5", + "schema-utils": "^4.3.0", + "serialize-javascript": "^6.0.2", + "terser": "^5.31.1" }, "engines": { - "node": ">= 0.4" + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.1.0" + }, + "peerDependenciesMeta": { + "@swc/core": { + "optional": true + }, + "esbuild": { + "optional": true + }, + "uglify-js": { + "optional": true + } } }, - "node_modules/typedarray": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", - "integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==", + "node_modules/undici-types": { + "version": "7.14.0", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.14.0.tgz", + "integrity": "sha512-QQiYxHuyZ9gQUIrmPo3IA+hUl4KYk8uSA7cHrcKd/l3p1OTpZcM0Tbp9x7FAtXdAYhlasd60ncPpgu6ihG6TOA==", "license": "MIT" }, "node_modules/unicode-canonical-property-names-ecmascript": { @@ -5361,107 +2229,6 @@ "node": ">=4" } }, - "node_modules/union-value": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz", - "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==", - "license": "MIT", - "dependencies": { - "arr-union": "^3.1.0", - "get-value": "^2.0.6", - "is-extendable": "^0.1.1", - "set-value": "^2.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/union-value/node_modules/is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/unique-filename": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz", - "integrity": "sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==", - "license": "ISC", - "dependencies": { - "unique-slug": "^2.0.0" - } - }, - "node_modules/unique-slug": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.2.tgz", - "integrity": "sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==", - "license": "ISC", - "dependencies": { - "imurmurhash": "^0.1.4" - } - }, - "node_modules/unset-value": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", - "integrity": "sha512-PcA2tsuGSF9cnySLHTLSh2qrQiJ70mn+r+Glzxv2TWZblxsxCC52BDlZoPCsz7STd9pN7EZetkWZBAvk4cgZdQ==", - "license": "MIT", - "dependencies": { - "has-value": "^0.3.1", - "isobject": "^3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/unset-value/node_modules/has-value": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", - "integrity": "sha512-gpG936j8/MzaeID5Yif+577c17TxaDmhuyVgSwtnL/q8UUTySg8Mecb+8Cf1otgLoD7DDH75axp86ER7LFsf3Q==", - "license": "MIT", - "dependencies": { - "get-value": "^2.0.3", - "has-values": "^0.1.4", - "isobject": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/unset-value/node_modules/has-value/node_modules/isobject": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", - "integrity": "sha512-+OUdGJlgjOBZDfxnDjYYG6zp487z0JGNQq3cYQYg5f5hKR+syHMsaztzGeml/4kGG55CSpKSpWTY+jYGgsHLgA==", - "license": "MIT", - "dependencies": { - "isarray": "1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/unset-value/node_modules/has-values": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", - "integrity": "sha512-J8S0cEdWuQbqD9//tlZxiMuMNmxB8PlEwvYwuxsTmR1G5RXUePEX/SJn7aD0GMLieuZYSwNH0cQuJGwnYunXRQ==", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/upath": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz", - "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==", - "license": "MIT", - "optional": true, - "engines": { - "node": ">=4", - "yarn": "*" - } - }, "node_modules/update-browserslist-db": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.3.tgz", @@ -5492,268 +2259,56 @@ "browserslist": ">= 4.21.0" } }, - "node_modules/uri-js": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", - "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", - "license": "BSD-2-Clause", - "dependencies": { - "punycode": "^2.1.0" - } - }, - "node_modules/uri-js/node_modules/punycode": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", - "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/urix": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", - "integrity": "sha512-Am1ousAhSLBeB9cG/7k7r2R0zj50uDRlZHPGbazid5s9rlF1F/QKYObEKSIunSjIOkJZqwRRLpvewjEkM7pSqg==", - "deprecated": "Please see https://github.com/lydell/urix#deprecated", - "license": "MIT" - }, - "node_modules/url": { - "version": "0.11.4", - "resolved": "https://registry.npmjs.org/url/-/url-0.11.4.tgz", - "integrity": "sha512-oCwdVC7mTuWiPyjLUz/COz5TLk6wgp0RCsN+wHZ2Ekneac9w8uuV0njcbbie2ME+Vs+d6duwmYuR3HgQXs1fOg==", - "license": "MIT", - "dependencies": { - "punycode": "^1.4.1", - "qs": "^6.12.3" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/use": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", - "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/util": { - "version": "0.11.1", - "resolved": "https://registry.npmjs.org/util/-/util-0.11.1.tgz", - "integrity": "sha512-HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ==", - "license": "MIT", - "dependencies": { - "inherits": "2.0.3" - } - }, - "node_modules/util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", - "license": "MIT" - }, - "node_modules/util/node_modules/inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==", - "license": "ISC" - }, - "node_modules/vm-browserify": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.2.tgz", - "integrity": "sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==", - "license": "MIT" - }, "node_modules/watchpack": { - "version": "1.7.5", - "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-1.7.5.tgz", - "integrity": "sha512-9P3MWk6SrKjHsGkLT2KHXdQ/9SNkyoJbabxnKOoJepsvJjJG8uYTR3yTPxPQvNDI3w4Nz1xnE0TLHK4RIVe/MQ==", - "license": "MIT", - "dependencies": { - "graceful-fs": "^4.1.2", - "neo-async": "^2.5.0" - }, - "optionalDependencies": { - "chokidar": "^3.4.1", - "watchpack-chokidar2": "^2.0.1" - } - }, - "node_modules/watchpack-chokidar2": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/watchpack-chokidar2/-/watchpack-chokidar2-2.0.1.tgz", - "integrity": "sha512-nCFfBIPKr5Sh61s4LPpy1Wtfi0HE8isJ3d2Yb5/Ppw2P2B/3eVSEBjKfN0fmHJSK14+31KwMKmcrzs2GM4P0Ww==", - "license": "MIT", - "optional": true, - "dependencies": { - "chokidar": "^2.1.8" - } - }, - "node_modules/watchpack-chokidar2/node_modules/anymatch": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", - "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", - "license": "ISC", - "optional": true, - "dependencies": { - "micromatch": "^3.1.4", - "normalize-path": "^2.1.1" - } - }, - "node_modules/watchpack-chokidar2/node_modules/anymatch/node_modules/normalize-path": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", - "integrity": "sha512-3pKJwH184Xo/lnH6oyP1q2pMd7HcypqqmRs91/6/i2CGtWwIKGCkOOMTm/zXbgTEWHw1uNpNi/igc3ePOYHb6w==", - "license": "MIT", - "optional": true, - "dependencies": { - "remove-trailing-separator": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/watchpack-chokidar2/node_modules/binary-extensions": { - "version": "1.13.1", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz", - "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==", - "license": "MIT", - "optional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/watchpack-chokidar2/node_modules/chokidar": { - "version": "2.1.8", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz", - "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==", - "license": "MIT", - "optional": true, - "dependencies": { - "anymatch": "^2.0.0", - "async-each": "^1.0.1", - "braces": "^2.3.2", - "glob-parent": "^3.1.0", - "inherits": "^2.0.3", - "is-binary-path": "^1.0.0", - "is-glob": "^4.0.0", - "normalize-path": "^3.0.0", - "path-is-absolute": "^1.0.0", - "readdirp": "^2.2.1", - "upath": "^1.1.1" - }, - "optionalDependencies": { - "fsevents": "^1.2.7" - } - }, - "node_modules/watchpack-chokidar2/node_modules/fsevents": { - "version": "1.2.13", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz", - "integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==", - "deprecated": "Upgrade to fsevents v2 to mitigate potential security issues", - "hasInstallScript": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "dependencies": { - "bindings": "^1.5.0", - "nan": "^2.12.1" - }, - "engines": { - "node": ">= 4.0" - } - }, - "node_modules/watchpack-chokidar2/node_modules/glob-parent": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", - "integrity": "sha512-E8Ak/2+dZY6fnzlR7+ueWvhsH1SjHr4jjss4YS/h4py44jY9MhK/VFdaZJAWDz6BbL21KeteKxFSFpq8OS5gVA==", - "license": "ISC", - "optional": true, - "dependencies": { - "is-glob": "^3.1.0", - "path-dirname": "^1.0.0" - } - }, - "node_modules/watchpack-chokidar2/node_modules/glob-parent/node_modules/is-glob": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", - "integrity": "sha512-UFpDDrPgM6qpnFNI+rh/p3bUaq9hKLZN8bMUWzxmcnZVS3omf4IPK+BrewlnWjO1WmUsMYuSjKh4UJuV4+Lqmw==", - "license": "MIT", - "optional": true, - "dependencies": { - "is-extglob": "^2.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/watchpack-chokidar2/node_modules/is-binary-path": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", - "integrity": "sha512-9fRVlXc0uCxEDj1nQzaWONSpbTfx0FmJfzHF7pwlI8DkWGoHBBea4Pg5Ky0ojwwxQmnSifgbKkI06Qv0Ljgj+Q==", - "license": "MIT", - "optional": true, - "dependencies": { - "binary-extensions": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/watchpack-chokidar2/node_modules/readdirp": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", - "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", + "version": "2.4.4", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.4.tgz", + "integrity": "sha512-c5EGNOiyxxV5qmTtAB7rbiXxi1ooX1pQKMLX/MIabJjRA0SJBQOjKF+KSVfHkr9U1cADPon0mRiVe/riyaiDUA==", "license": "MIT", - "optional": true, "dependencies": { - "graceful-fs": "^4.1.11", - "micromatch": "^3.1.10", - "readable-stream": "^2.0.2" + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.1.2" }, "engines": { - "node": ">=0.10" + "node": ">=10.13.0" } }, "node_modules/webpack": { - "version": "4.47.0", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.47.0.tgz", - "integrity": "sha512-td7fYwgLSrky3fI1EuU5cneU4+pbH6GgOfuKNS1tNPcfdGinGELAqsb/BP4nnvZyKSG2i/xFGU7+n2PvZA8HJQ==", - "license": "MIT", - "peer": true, - "dependencies": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/helper-module-context": "1.9.0", - "@webassemblyjs/wasm-edit": "1.9.0", - "@webassemblyjs/wasm-parser": "1.9.0", - "acorn": "^6.4.1", - "ajv": "^6.10.2", - "ajv-keywords": "^3.4.1", + "version": "5.102.1", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.102.1.tgz", + "integrity": "sha512-7h/weGm9d/ywQ6qzJ+Xy+r9n/3qgp/thalBbpOi5i223dPXKi04IBtqPN9nTd+jBc7QKfvDbaBnFipYp4sJAUQ==", + "license": "MIT", + "dependencies": { + "@types/eslint-scope": "^3.7.7", + "@types/estree": "^1.0.8", + "@types/json-schema": "^7.0.15", + "@webassemblyjs/ast": "^1.14.1", + "@webassemblyjs/wasm-edit": "^1.14.1", + "@webassemblyjs/wasm-parser": "^1.14.1", + "acorn": "^8.15.0", + "acorn-import-phases": "^1.0.3", + "browserslist": "^4.26.3", "chrome-trace-event": "^1.0.2", - "enhanced-resolve": "^4.5.0", - "eslint-scope": "^4.0.3", - "json-parse-better-errors": "^1.0.2", - "loader-runner": "^2.4.0", - "loader-utils": "^1.2.3", - "memory-fs": "^0.4.1", - "micromatch": "^3.1.10", - "mkdirp": "^0.5.3", - "neo-async": "^2.6.1", - "node-libs-browser": "^2.2.1", - "schema-utils": "^1.0.0", - "tapable": "^1.1.3", - "terser-webpack-plugin": "^1.4.3", - "watchpack": "^1.7.4", - "webpack-sources": "^1.4.1" + "enhanced-resolve": "^5.17.3", + "es-module-lexer": "^1.2.1", + "eslint-scope": "5.1.1", + "events": "^3.2.0", + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.2.11", + "json-parse-even-better-errors": "^2.3.1", + "loader-runner": "^4.2.0", + "mime-types": "^2.1.27", + "neo-async": "^2.6.2", + "schema-utils": "^4.3.3", + "tapable": "^2.3.0", + "terser-webpack-plugin": "^5.3.11", + "watchpack": "^2.4.4", + "webpack-sources": "^3.3.3" }, "bin": { "webpack": "bin/webpack.js" }, "engines": { - "node": ">=6.11.5" + "node": ">=10.13.0" }, "funding": { "type": "opencollective", @@ -5762,31 +2317,24 @@ "peerDependenciesMeta": { "webpack-cli": { "optional": true - }, - "webpack-command": { - "optional": true } } }, "node_modules/webpack-sources": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.4.3.tgz", - "integrity": "sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ==", + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.3.3.tgz", + "integrity": "sha512-yd1RBzSGanHkitROoPFd6qsrxt+oFhg/129YzheDGqeustzX0vTZJZsSsQjVQC4yzBQ56K55XU8gaNCtIzOnTg==", "license": "MIT", - "dependencies": { - "source-list-map": "^2.0.0", - "source-map": "~0.6.1" - } - }, - "node_modules/webpack-sources/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "license": "BSD-3-Clause", "engines": { - "node": ">=0.10.0" + "node": ">=10.13.0" } }, + "node_modules/webpack/node_modules/json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", + "license": "MIT" + }, "node_modules/which": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/which/-/which-5.0.0.tgz", @@ -5803,61 +2351,11 @@ "node": "^18.17.0 || >=20.5.0" } }, - "node_modules/which-typed-array": { - "version": "1.1.19", - "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.19.tgz", - "integrity": "sha512-rEvr90Bck4WZt9HHFC4DJMsjvu7x+r6bImz0/BrbWb7A2djJ8hnZMrWnHo9F8ssv0OMErasDhftrfROTyqSDrw==", - "license": "MIT", - "dependencies": { - "available-typed-arrays": "^1.0.7", - "call-bind": "^1.0.8", - "call-bound": "^1.0.4", - "for-each": "^0.3.5", - "get-proto": "^1.0.1", - "gopd": "^1.2.0", - "has-tostringtag": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/worker-farm": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/worker-farm/-/worker-farm-1.7.0.tgz", - "integrity": "sha512-rvw3QTZc8lAxyVrqcSGVm5yP/IJ2UcB3U0graE3LCFoZ0Yn2x4EoVSqJKdB/T5M+FLcRPjz4TDacRf3OCfNUzw==", - "license": "MIT", - "dependencies": { - "errno": "~0.1.7" - } - }, - "node_modules/wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", - "license": "ISC" - }, - "node_modules/xtend": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", - "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", - "license": "MIT", - "engines": { - "node": ">=0.4" - } - }, - "node_modules/y18n": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", - "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", - "license": "ISC" - }, "node_modules/yallist": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true, "license": "ISC" }, "node_modules/zx": { @@ -5888,7 +2386,7 @@ "dependencies": { "core-js": "3.46.0", "core-js-compat": "3.46.0", - "webpack": ">=4.47.0 <5" + "webpack": "^5.102.1" }, "engines": { "node": "^18.12.0 || >=20.0.0" diff --git a/packages/core-js-builder/index.js b/packages/core-js-builder/index.js index c2cef5508bb2..11963cc8abeb 100644 --- a/packages/core-js-builder/index.js +++ b/packages/core-js-builder/index.js @@ -42,15 +42,11 @@ module.exports = async function ({ await webpack({ mode: 'none', - node: { - global: false, - process: false, - setImmediate: false, - }, + node: false, + target: ['es5', 'node'], entry: list.map(it => require.resolve(`core-js/modules/${ it }`)), output: { filename: tempFileName, - hashFunction: 'md5', path: tmpdir, }, }); diff --git a/packages/core-js-builder/package.json b/packages/core-js-builder/package.json index 8573bc59762e..87a9fb97778d 100644 --- a/packages/core-js-builder/package.json +++ b/packages/core-js-builder/package.json @@ -28,7 +28,7 @@ "dependencies": { "core-js": "3.46.0", "core-js-compat": "3.46.0", - "webpack": ">=4.47.0 <5" + "webpack": "^5.102.1" }, "engines": { "node": "^18.12.0 || >=20.0.0" diff --git a/packages/core-js-compat/helpers.js b/packages/core-js-compat/helpers.js index 3cd1432e388c..eb6366bf4989 100644 --- a/packages/core-js-compat/helpers.js +++ b/packages/core-js-compat/helpers.js @@ -1,6 +1,6 @@ 'use strict'; const SEMVER = /(?\d+)(?:\.(?\d+))?(?:\.(?\d+))?/; -// eslint-disable-next-line redos/no-vulnerable -- ok +// eslint-disable-next-line redos/no-vulnerable, sonarjs/slow-regex -- ok const SEMVER_WITH_REQUIRED_MINOR = /(?\d+)\.(?\d+)(?:\.(?\d+))?/; class SemVer { diff --git a/packages/core-js/es/array-buffer/constructor.js b/packages/core-js/es/array-buffer/constructor.js index 3a375e08e71d..4565d13723be 100644 --- a/packages/core-js/es/array-buffer/constructor.js +++ b/packages/core-js/es/array-buffer/constructor.js @@ -1,6 +1,7 @@ 'use strict'; require('../../modules/es.array-buffer.constructor'); require('../../modules/es.array-buffer.slice'); +require('../../modules/es.data-view.constructor'); require('../../modules/es.array-buffer.detached'); require('../../modules/es.array-buffer.transfer'); require('../../modules/es.array-buffer.transfer-to-fixed-length'); diff --git a/scripts/check-dependencies/check-dependencies.mjs b/scripts/check-dependencies/check-dependencies.mjs index e82ee7cc33ac..0c9ee971e2e4 100644 --- a/scripts/check-dependencies/check-dependencies.mjs +++ b/scripts/check-dependencies/check-dependencies.mjs @@ -1,8 +1,4 @@ const ignore = { - 'core-js-builder': [ - 'mkdirp', - 'webpack', - ], 'tests/observables': [ 'moon-unit', ], diff --git a/tests/eslint/eslint.config.js b/tests/eslint/eslint.config.js index 861b467350ff..baa1312226de 100644 --- a/tests/eslint/eslint.config.js +++ b/tests/eslint/eslint.config.js @@ -1096,9 +1096,7 @@ const base = { 'eslint-comments/require-description': ERROR, // suggest better alternatives to some dependencies - 'depend/ban-dependencies': [ERROR, { allowed: [ - 'mkdirp', // TODO: drop from `core-js@4` - ] }], + 'depend/ban-dependencies': ERROR, }; const noAsyncAwait = { From ef4c42d20fdc4d16b432e92e5d7c2833db6b566e Mon Sep 17 00:00:00 2001 From: Denis Pushkarev Date: Wed, 11 Oct 2023 12:47:39 +0700 Subject: [PATCH 116/428] make `core-js-builder` return an object (for future extensions) --- packages/core-js-builder/README.md | 2 +- packages/core-js-builder/index.js | 2 +- scripts/bundle-package/bundle-package.mjs | 8 ++++---- tests/builder/builder.mjs | 18 +++++++++--------- 4 files changed, 15 insertions(+), 15 deletions(-) diff --git a/packages/core-js-builder/README.md b/packages/core-js-builder/README.md index 9eb5fc7903f9..a77e78c642da 100644 --- a/packages/core-js-builder/README.md +++ b/packages/core-js-builder/README.md @@ -14,7 +14,7 @@ For some cases could be useful to exclude some `core-js` features or generate a ```js import builder from 'core-js-builder'; -const bundle = await builder({ +const { script } = await builder({ // entry / module / namespace / an array of them, by default - all `core-js` modules modules: ['core-js/actual', /^esnext\.reflect\./], // a blacklist of entries / modules / namespaces, by default - empty list diff --git a/packages/core-js-builder/index.js b/packages/core-js-builder/index.js index 11963cc8abeb..62996e81c47b 100644 --- a/packages/core-js-builder/index.js +++ b/packages/core-js-builder/index.js @@ -89,5 +89,5 @@ module.exports = async function ({ await writeFile(filename, script); } - return script; + return { script }; }; diff --git a/scripts/bundle-package/bundle-package.mjs b/scripts/bundle-package/bundle-package.mjs index 444418e6edb5..0591f1810d48 100644 --- a/scripts/bundle-package/bundle-package.mjs +++ b/scripts/bundle-package/bundle-package.mjs @@ -15,14 +15,14 @@ function log(kind, name, code) { } async function bundle({ bundled, minified, options = {} }) { - const source = await builder({ modules: 'core-js/full', ...options }); + const { script } = await builder({ modules: 'core-js/full', ...options }); - log('bundling', bundled, source); - await fs.writeFile(`${ PATH }${ bundled }.js`, source); + log('bundling', bundled, script); + await fs.writeFile(`${ PATH }${ bundled }.js`, script); if (!minified) return; - const { code, map } = await minify(source, { + const { code, map } = await minify(script, { ecma: 5, safari10: true, keep_fnames: true, diff --git a/tests/builder/builder.mjs b/tests/builder/builder.mjs index 072dcaaa02ef..a84bf1bb186d 100644 --- a/tests/builder/builder.mjs +++ b/tests/builder/builder.mjs @@ -1,20 +1,20 @@ import { ok } from 'node:assert/strict'; import builder from 'core-js-builder'; -const polyfills = await builder({ +const { script } = await builder({ modules: 'core-js/actual', exclude: [/group-by/, 'es.typed-array.with'], targets: { node: 16 }, format: 'esm', }); -ok(polyfills.includes("import 'core-js/modules/es.error.cause.js';"), 'actual node 16 #1'); -ok(polyfills.includes("import 'core-js/modules/es.array.push.js';"), 'actual node 16 #2'); -ok(polyfills.includes("import 'core-js/modules/esnext.json.parse.js';"), 'actual node 16 #3'); -ok(polyfills.includes("import 'core-js/modules/web.structured-clone.js';"), 'actual node 16 #4'); -ok(!polyfills.includes("import 'core-js/modules/es.weak-set.js';"), 'actual node 16 #5'); -ok(!polyfills.includes("import 'core-js/modules/es.typed-array.with.js';"), 'actual node 16 #6'); -ok(!polyfills.includes("import 'core-js/modules/esnext.object.group-by.js';"), 'actual node 16 #7'); -ok(!polyfills.includes("import 'core-js/modules/esnext.weak-set.from.js';"), 'actual node 16 #8'); +ok(script.includes("import 'core-js/modules/es.error.cause.js';"), 'actual node 16 #1'); +ok(script.includes("import 'core-js/modules/es.array.push.js';"), 'actual node 16 #2'); +ok(script.includes("import 'core-js/modules/esnext.json.parse.js';"), 'actual node 16 #3'); +ok(script.includes("import 'core-js/modules/web.structured-clone.js';"), 'actual node 16 #4'); +ok(!script.includes("import 'core-js/modules/es.weak-set.js';"), 'actual node 16 #5'); +ok(!script.includes("import 'core-js/modules/es.typed-array.with.js';"), 'actual node 16 #6'); +ok(!script.includes("import 'core-js/modules/esnext.object.group-by.js';"), 'actual node 16 #7'); +ok(!script.includes("import 'core-js/modules/esnext.weak-set.from.js';"), 'actual node 16 #8'); echo(chalk.green('builder tested')); From 16f6b649ebb8b7718583c58fc713242b2a6f584d Mon Sep 17 00:00:00 2001 From: Denis Pushkarev Date: Wed, 11 Oct 2023 21:03:48 +0700 Subject: [PATCH 117/428] move to scoped package: `core-js-compat` -> `@core-js/compat` --- CONTRIBUTING.md | 6 ++--- README.md | 4 +-- package-lock.json | 11 ++++---- packages/core-js-builder/README.md | 4 +-- packages/core-js-builder/index.d.ts | 2 +- packages/core-js-builder/index.js | 2 +- packages/core-js-builder/package.json | 2 +- packages/core-js-compat/README.md | 26 +++++++++---------- packages/core-js-compat/compat.d.ts | 2 +- .../get-modules-list-for-target-version.js | 2 +- packages/core-js-compat/package.json | 2 +- packages/core-js-pure/README.md | 2 +- packages/core-js/README.md | 2 +- scripts/build-compat/data.mjs | 8 +++--- scripts/build-compat/entries.mjs | 4 +-- scripts/build-compat/modules-by-versions.mjs | 4 +-- scripts/build-indexes.mjs | 2 +- scripts/check-compat-data-mapping.mjs | 2 +- scripts/check-unused-modules.mjs | 2 +- tests/compat-data/modules-by-versions.mjs | 2 +- tests/compat-data/tests-coverage.mjs | 2 +- tests/compat-tools/compat.mjs | 2 +- .../get-modules-list-for-target-version.mjs | 2 +- tests/compat-tools/targets-parser.mjs | 2 +- tests/compat/index.html | 2 +- tests/type-definitions/compat.ts | 6 ++--- 26 files changed, 54 insertions(+), 53 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index e82b001d1c59..28f079894cc4 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -24,9 +24,9 @@ There is always some ["help wanted" issues](https://github.com/zloirock/core-js/ [A simple example of adding a new polyfill.](https://github.com/zloirock/core-js/pull/1294/files) -## How to update `core-js-compat` data +## How to update `@core-js/compat` data -For updating `core-js-compat` data: +For updating `@core-js/compat` data: - If you want to add a new data for a browser, run in this browser `tests/compat/index.html` (tests and results for the actual release are available at [`http://zloirock.github.io/core-js/compat/`](http://zloirock.github.io/core-js/compat/)) and you will see what `core-js` modules are required for this browser. @@ -118,7 +118,7 @@ You can run parts of the test case separately: ```sh npx run-s prepare test-entries ``` -- `core-js-compat` tools tests: +- `@core-js/compat` tools tests: ```sh npx run-s prepare test-compat-tools ``` diff --git a/README.md b/README.md index 531496604367..eb615842c14c 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@
-[![fundraising](https://opencollective.com/core-js/all/badge.svg?label=fundraising)](https://opencollective.com/core-js) [![PRs welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg)](https://github.com/zloirock/core-js/blob/master/CONTRIBUTING.md) [![version](https://img.shields.io/npm/v/core-js.svg)](https://www.npmjs.com/package/core-js) [![core-js downloads](https://img.shields.io/npm/dm/core-js.svg?label=npm%20i%20core-js)](https://npm-stat.com/charts.html?package=core-js&package=core-js-pure&package=core-js-compat&from=2014-11-18) [![core-js-pure downloads](https://img.shields.io/npm/dm/core-js-pure.svg?label=npm%20i%20core-js-pure)](https://npm-stat.com/charts.html?package=core-js&package=core-js-pure&package=core-js-compat&from=2014-11-18) [![jsDelivr](https://data.jsdelivr.com/v1/package/npm/core-js-bundle/badge?style=rounded)](https://www.jsdelivr.com/package/npm/core-js-bundle) +[![fundraising](https://opencollective.com/core-js/all/badge.svg?label=fundraising)](https://opencollective.com/core-js) [![PRs welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg)](https://github.com/zloirock/core-js/blob/master/CONTRIBUTING.md) [![version](https://img.shields.io/npm/v/core-js.svg)](https://www.npmjs.com/package/core-js) [![core-js downloads](https://img.shields.io/npm/dm/core-js.svg?label=npm%20i%20core-js)](https://npm-stat.com/charts.html?package=core-js&package=core-js-pure&package=@core-js/compat&from=2014-11-18) [![core-js-pure downloads](https://img.shields.io/npm/dm/core-js-pure.svg?label=npm%20i%20core-js-pure)](https://npm-stat.com/charts.html?package=core-js&package=core-js-pure&package=@core-js/compat&from=2014-11-18) [![jsDelivr](https://data.jsdelivr.com/v1/package/npm/core-js-bundle/badge?style=rounded)](https://www.jsdelivr.com/package/npm/core-js-bundle)
@@ -465,7 +465,7 @@ For some cases could be useful to exclude some `core-js` features or generate a However, I have no possibility to test `core-js` absolutely everywhere - for example, testing in IE7- and some other ancient was stopped. The list of definitely supported engines you can see in the compatibility table by the link below. [Write](https://github.com/zloirock/core-js/issues) if you have issues or questions with the support of any engine. -`core-js` project provides (as [`core-js-compat`](/packages/core-js-compat) package) all required data about the necessity of `core-js` modules, entry points, and tools for work with it - it's useful for integration with tools like `babel` or `swc`. If you wanna help, you could take a look at the related section of [`CONTRIBUTING.md`](/CONTRIBUTING.md#how-to-update-core-js-compat-data). The visualization of compatibility data and the browser tests runner is available [here](http://zloirock.github.io/core-js/master/compat/), the example: +`core-js` project provides (as [`@core-js/compat`](/packages/core-js-compat) package) all required data about the necessity of `core-js` modules, entry points, and tools for work with it - it's useful for integration with tools like `babel` or `swc`. If you wanna help, you could take a look at the related section of [`CONTRIBUTING.md`](/CONTRIBUTING.md#how-to-update-core-js-compat-data). The visualization of compatibility data and the browser tests runner is available [here](http://zloirock.github.io/core-js/master/compat/), the example: ![compat-table](https://user-images.githubusercontent.com/2213682/217452234-ccdcfc5a-c7d3-40d1-ab3f-86902315b8c3.png) diff --git a/package-lock.json b/package-lock.json index 19f8a4901e1e..776f8db7b6da 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1007,6 +1007,10 @@ "node": ">=6.9.0" } }, + "node_modules/@core-js/compat": { + "resolved": "packages/core-js-compat", + "link": true + }, "node_modules/@jridgewell/gen-mapping": { "version": "0.3.13", "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz", @@ -1449,10 +1453,6 @@ "resolved": "packages/core-js-bundle", "link": true }, - "node_modules/core-js-compat": { - "resolved": "packages/core-js-compat", - "link": true - }, "node_modules/core-js-pure": { "resolved": "packages/core-js-pure", "link": true @@ -2384,8 +2384,8 @@ "version": "3.46.0", "license": "MIT", "dependencies": { + "@core-js/compat": "3.46.0", "core-js": "3.46.0", - "core-js-compat": "3.46.0", "webpack": "^5.102.1" }, "engines": { @@ -2406,6 +2406,7 @@ } }, "packages/core-js-compat": { + "name": "@core-js/compat", "version": "3.46.0", "license": "MIT", "dependencies": { diff --git a/packages/core-js-builder/README.md b/packages/core-js-builder/README.md index a77e78c642da..94dbd3eeaf15 100644 --- a/packages/core-js-builder/README.md +++ b/packages/core-js-builder/README.md @@ -9,7 +9,7 @@ **I highly recommend reading this: [So, what's next?](https://github.com/zloirock/core-js/blob/master/docs/2023-02-14-so-whats-next.md)** --- -For some cases could be useful to exclude some `core-js` features or generate a polyfill for target engines. This API helps conditionally include or exclude certain parts of [`core-js`](https://github.com/zloirock/core-js) and build for targets. `modules`, `exclude` and `targets` options are specified in [the `core-js-compat` format](https://github.com/zloirock/core-js/tree/master/packages/core-js-compat). +For some cases could be useful to exclude some `core-js` features or generate a polyfill for target engines. This API helps conditionally include or exclude certain parts of [`core-js`](https://github.com/zloirock/core-js) and build for targets. `modules`, `exclude` and `targets` options are specified in [the `@core-js/compat` format](https://github.com/zloirock/core-js/tree/master/packages/@core-js/compat). ```js import builder from 'core-js-builder'; @@ -19,7 +19,7 @@ const { script } = await builder({ modules: ['core-js/actual', /^esnext\.reflect\./], // a blacklist of entries / modules / namespaces, by default - empty list exclude: [/^es\.math\./, 'es.number.constructor'], - // optional browserslist or core-js-compat format query + // optional browserslist or @core-js/compat format query targets: '> 0.5%, not dead, ie 9-11', // shows summary for the bundle, disabled by default summary: { diff --git a/packages/core-js-builder/index.d.ts b/packages/core-js-builder/index.d.ts index 00912b588082..36e7167c5f88 100644 --- a/packages/core-js-builder/index.d.ts +++ b/packages/core-js-builder/index.d.ts @@ -1,4 +1,4 @@ -import type compat from "core-js-compat"; +import type compat from "@core-js/compat"; type Format = 'bundle' | 'esm' | 'cjs'; diff --git a/packages/core-js-builder/index.js b/packages/core-js-builder/index.js index 62996e81c47b..8dca599711a4 100644 --- a/packages/core-js-builder/index.js +++ b/packages/core-js-builder/index.js @@ -5,7 +5,7 @@ const { mkdir, readFile, unlink, writeFile } = require('node:fs/promises'); const { dirname, join } = require('node:path'); const tmpdir = require('node:os').tmpdir(); const webpack = promisify(require('webpack')); -const compat = require('core-js-compat/compat'); +const compat = require('@core-js/compat/compat'); const { banner } = require('./config'); function normalizeSummary(unit = {}) { diff --git a/packages/core-js-builder/package.json b/packages/core-js-builder/package.json index 87a9fb97778d..63558e6da78c 100644 --- a/packages/core-js-builder/package.json +++ b/packages/core-js-builder/package.json @@ -27,7 +27,7 @@ "types": "index.d.ts", "dependencies": { "core-js": "3.46.0", - "core-js-compat": "3.46.0", + "@core-js/compat": "3.46.0", "webpack": "^5.102.1" }, "engines": { diff --git a/packages/core-js-compat/README.md b/packages/core-js-compat/README.md index a0a3a66e3d19..bcd281fb9992 100644 --- a/packages/core-js-compat/README.md +++ b/packages/core-js-compat/README.md @@ -2,17 +2,17 @@
-[![fundraising](https://opencollective.com/core-js/all/badge.svg?label=fundraising)](https://opencollective.com/core-js) [![PRs welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg)](https://github.com/zloirock/core-js/blob/master/CONTRIBUTING.md) [![version](https://img.shields.io/npm/v/core-js-compat.svg)](https://www.npmjs.com/package/core-js-compat) [![core-js-compat downloads](https://img.shields.io/npm/dm/core-js-compat.svg?label=npm%20i%20core-js-compat)](https://npm-stat.com/charts.html?package=core-js&package=core-js-pure&package=core-js-compat&from=2014-11-18) +[![fundraising](https://opencollective.com/core-js/all/badge.svg?label=fundraising)](https://opencollective.com/core-js) [![PRs welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg)](https://github.com/zloirock/core-js/blob/master/CONTRIBUTING.md) [![version](https://img.shields.io/npm/v/@core-js/compat.svg)](https://www.npmjs.com/package/@core-js/compat) [![@core-js/compat downloads](https://img.shields.io/npm/dm/@core-js/compat.svg?label=npm%20i%20@core-js/compat)](https://npm-stat.com/charts.html?package=core-js&package=core-js-pure&package=@core-js/compat&from=2014-11-18)
**I highly recommend reading this: [So, what's next?](https://github.com/zloirock/core-js/blob/master/docs/2023-02-14-so-whats-next.md)** --- -[`core-js-compat` package](https://github.com/zloirock/core-js/tree/master/packages/core-js-compat) contains data about the necessity of [`core-js`](https://github.com/zloirock/core-js) modules and API for getting a list of required core-js modules by browserslist query. +[`@core-js/compat` package](https://github.com/zloirock/core-js/tree/master/packages/core-js-compat) contains data about the necessity of [`core-js`](https://github.com/zloirock/core-js) modules and API for getting a list of required core-js modules by browserslist query. ```js -import compat from 'core-js-compat'; +import compat from '@core-js/compat'; const { list, // array of required modules @@ -109,29 +109,29 @@ console.log(targets); ```js // equals of of the method from the example above -require('core-js-compat/compat')({ targets, modules, version }); // => { list: Array, targets: { [ModuleName]: { [EngineName]: EngineVersion } } } +require('@core-js/compat/compat')({ targets, modules, version }); // => { list: Array, targets: { [ModuleName]: { [EngineName]: EngineVersion } } } // or -require('core-js-compat').compat({ targets, modules, version }); // => { list: Array, targets: { [ModuleName]: { [EngineName]: EngineVersion } } } +require('@core-js/compat').compat({ targets, modules, version }); // => { list: Array, targets: { [ModuleName]: { [EngineName]: EngineVersion } } } // full compat data: -require('core-js-compat/data'); // => { [ModuleName]: { [EngineName]: EngineVersion } } +require('@core-js/compat/data'); // => { [ModuleName]: { [EngineName]: EngineVersion } } // or -require('core-js-compat').data; // => { [ModuleName]: { [EngineName]: EngineVersion } } +require('@core-js/compat').data; // => { [ModuleName]: { [EngineName]: EngineVersion } } // map of modules by `core-js` entry points: -require('core-js-compat/entries'); // => { [EntryPoint]: Array } +require('@core-js/compat/entries'); // => { [EntryPoint]: Array } // or -require('core-js-compat').entries; // => { [EntryPoint]: Array } +require('@core-js/compat').entries; // => { [EntryPoint]: Array } // full list of modules: -require('core-js-compat/modules'); // => Array +require('@core-js/compat/modules'); // => Array // or -require('core-js-compat').modules; // => Array +require('@core-js/compat').modules; // => Array // the subset of modules which available in the passed `core-js` version: -require('core-js-compat/get-modules-list-for-target-version')('3.46'); // => Array +require('@core-js/compat/get-modules-list-for-target-version')('3.46'); // => Array // or -require('core-js-compat').getModulesListForTargetVersion('3.46'); // => Array +require('@core-js/compat').getModulesListForTargetVersion('3.46'); // => Array ``` If you wanna help to improve this data, you could take a look at the related section of [`CONTRIBUTING.md`](https://github.com/zloirock/core-js/blob/master/CONTRIBUTING.md#how-to-update-core-js-compat-data). The visualization of compatibility data and the browser tests runner is available [here](http://zloirock.github.io/core-js/master/compat/), the example: diff --git a/packages/core-js-compat/compat.d.ts b/packages/core-js-compat/compat.d.ts index f362759ea1eb..dd20a932b3cf 100644 --- a/packages/core-js-compat/compat.d.ts +++ b/packages/core-js-compat/compat.d.ts @@ -20,7 +20,7 @@ type CompatOptions = { modules?: Modules, /** a blacklist, entry / module / namespace / an array of them, by default - empty list */ exclude?: Modules, - /** optional browserslist or core-js-compat format query */ + /** optional browserslist or `@core-js/compat` format query */ targets?: Targets | BrowserslistQuery, /** used `core-js` version, by default the latest */ version?: string, diff --git a/packages/core-js-compat/get-modules-list-for-target-version.js b/packages/core-js-compat/get-modules-list-for-target-version.js index b8c0f6d2c4c8..9e7662285f3d 100644 --- a/packages/core-js-compat/get-modules-list-for-target-version.js +++ b/packages/core-js-compat/get-modules-list-for-target-version.js @@ -9,7 +9,7 @@ module.exports = function (raw) { } const corejs = semver(raw, true); if (corejs.major !== 3) { - throw new RangeError('This version of `core-js-compat` works only with `core-js@3`'); + throw new RangeError('This version of `@core-js/compat` works only with `core-js@3`'); } const result = []; for (const version of Object.keys(modulesByVersions)) { diff --git a/packages/core-js-compat/package.json b/packages/core-js-compat/package.json index 8a3f596513ce..9b5cb9b691f1 100644 --- a/packages/core-js-compat/package.json +++ b/packages/core-js-compat/package.json @@ -1,5 +1,5 @@ { - "name": "core-js-compat", + "name": "@core-js/compat", "version": "3.46.0", "type": "commonjs", "description": "core-js compat", diff --git a/packages/core-js-pure/README.md b/packages/core-js-pure/README.md index 06e3e0f4fb06..88669a499b73 100644 --- a/packages/core-js-pure/README.md +++ b/packages/core-js-pure/README.md @@ -2,7 +2,7 @@
-[![fundraising](https://opencollective.com/core-js/all/badge.svg?label=fundraising)](https://opencollective.com/core-js) [![PRs welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg)](https://github.com/zloirock/core-js/blob/master/CONTRIBUTING.md) [![version](https://img.shields.io/npm/v/core-js-pure.svg)](https://www.npmjs.com/package/core-js-pure) [![core-js-pure downloads](https://img.shields.io/npm/dm/core-js-pure.svg?label=npm%20i%20core-js-pure)](https://npm-stat.com/charts.html?package=core-js&package=core-js-pure&package=core-js-compat&from=2014-11-18) +[![fundraising](https://opencollective.com/core-js/all/badge.svg?label=fundraising)](https://opencollective.com/core-js) [![PRs welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg)](https://github.com/zloirock/core-js/blob/master/CONTRIBUTING.md) [![version](https://img.shields.io/npm/v/core-js-pure.svg)](https://www.npmjs.com/package/core-js-pure) [![core-js-pure downloads](https://img.shields.io/npm/dm/core-js-pure.svg?label=npm%20i%20core-js-pure)](https://npm-stat.com/charts.html?package=core-js&package=core-js-pure&package=@core-js/compat&from=2014-11-18)
diff --git a/packages/core-js/README.md b/packages/core-js/README.md index 00311aee8998..5b5798ae63e5 100644 --- a/packages/core-js/README.md +++ b/packages/core-js/README.md @@ -2,7 +2,7 @@
-[![fundraising](https://opencollective.com/core-js/all/badge.svg?label=fundraising)](https://opencollective.com/core-js) [![PRs welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg)](https://github.com/zloirock/core-js/blob/master/CONTRIBUTING.md) [![version](https://img.shields.io/npm/v/core-js.svg)](https://www.npmjs.com/package/core-js) [![core-js downloads](https://img.shields.io/npm/dm/core-js.svg?label=npm%20i%20core-js)](https://npm-stat.com/charts.html?package=core-js&package=core-js-pure&package=core-js-compat&from=2014-11-18) +[![fundraising](https://opencollective.com/core-js/all/badge.svg?label=fundraising)](https://opencollective.com/core-js) [![PRs welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg)](https://github.com/zloirock/core-js/blob/master/CONTRIBUTING.md) [![version](https://img.shields.io/npm/v/core-js.svg)](https://www.npmjs.com/package/core-js) [![core-js downloads](https://img.shields.io/npm/dm/core-js.svg?label=npm%20i%20core-js)](https://npm-stat.com/charts.html?package=core-js&package=core-js-pure&package=@core-js/compat&from=2014-11-18)
diff --git a/scripts/build-compat/data.mjs b/scripts/build-compat/data.mjs index 4965b03e18c0..c0f5449e3ab5 100644 --- a/scripts/build-compat/data.mjs +++ b/scripts/build-compat/data.mjs @@ -1,8 +1,8 @@ /* https://github.com/import-js/eslint-plugin-import/issues/2181 */ -import { dataWithIgnored as data, ignored, modules } from 'core-js-compat/src/data.mjs'; -import external from 'core-js-compat/src/external.mjs'; -import mappings from 'core-js-compat/src/mapping.mjs'; -import helpers from 'core-js-compat/helpers.js'; +import { dataWithIgnored as data, ignored, modules } from '@core-js/compat/src/data.mjs'; +import external from '@core-js/compat/src/external.mjs'; +import mappings from '@core-js/compat/src/mapping.mjs'; +import helpers from '@core-js/compat/helpers.js'; const { compare, semver, sortObjectByKey } = helpers; const { hasOwn } = Object; diff --git a/scripts/build-compat/entries.mjs b/scripts/build-compat/entries.mjs index 6d5c95dd4ed0..d4fc02e532cd 100644 --- a/scripts/build-compat/entries.mjs +++ b/scripts/build-compat/entries.mjs @@ -1,6 +1,6 @@ import konan from 'konan'; -import { modules } from 'core-js-compat/src/data.mjs'; -import helpers from 'core-js-compat/helpers.js'; +import { modules } from '@core-js/compat/src/data.mjs'; +import helpers from '@core-js/compat/helpers.js'; async function getModulesForEntryPoint(path, parent) { const entry = new URL(path, parent); diff --git a/scripts/build-compat/modules-by-versions.mjs b/scripts/build-compat/modules-by-versions.mjs index 358fc5551453..62c0702875ce 100644 --- a/scripts/build-compat/modules-by-versions.mjs +++ b/scripts/build-compat/modules-by-versions.mjs @@ -1,5 +1,5 @@ -import { modules } from 'core-js-compat/src/data.mjs'; -import modulesByVersions from 'core-js-compat/src/modules-by-versions.mjs'; +import { modules } from '@core-js/compat/src/data.mjs'; +import modulesByVersions from '@core-js/compat/src/modules-by-versions.mjs'; const defaults = new Set(modules); diff --git a/scripts/build-indexes.mjs b/scripts/build-indexes.mjs index 7b2d4139870b..4bc76b250137 100644 --- a/scripts/build-indexes.mjs +++ b/scripts/build-indexes.mjs @@ -1,4 +1,4 @@ -import { modules } from 'core-js-compat/src/data.mjs'; +import { modules } from '@core-js/compat/src/data.mjs'; async function generateNamespaceIndex(ns, filter) { return fs.writeFile(`./packages/core-js/${ ns }/index.js`, `'use strict';\n${ modules diff --git a/scripts/check-compat-data-mapping.mjs b/scripts/check-compat-data-mapping.mjs index b176ff327838..f34851190b25 100644 --- a/scripts/check-compat-data-mapping.mjs +++ b/scripts/check-compat-data-mapping.mjs @@ -1,5 +1,5 @@ import semver from 'semver'; -import mapping from 'core-js-compat/src/mapping.mjs'; +import mapping from '@core-js/compat/src/mapping.mjs'; const { coerce, cmp } = semver; let updated = true; diff --git a/scripts/check-unused-modules.mjs b/scripts/check-unused-modules.mjs index 8bc5ac186215..33e6f33ddbf2 100644 --- a/scripts/check-unused-modules.mjs +++ b/scripts/check-unused-modules.mjs @@ -1,5 +1,5 @@ import konan from 'konan'; -import { modules, ignored } from 'core-js-compat/src/data.mjs'; +import { modules, ignored } from '@core-js/compat/src/data.mjs'; async function jsModulesFrom(path) { const directory = await fs.readdir(path); diff --git a/tests/compat-data/modules-by-versions.mjs b/tests/compat-data/modules-by-versions.mjs index 4b5176a960b2..f8fd08219dd1 100644 --- a/tests/compat-data/modules-by-versions.mjs +++ b/tests/compat-data/modules-by-versions.mjs @@ -8,7 +8,7 @@ let ok = true; if (minor < 0 || patch < 0) { // ignore for pre-releases const zero = `${ major }.0`; const modulesByVersions = await fs.readJson('packages/core-js-compat/modules-by-versions.json'); - const response = await fetch(`https://cdn.jsdelivr.net/npm/core-js-compat@${ major }.0.0/modules-by-versions.json`); + const response = await fetch(`https://cdn.jsdelivr.net/npm/@core-js/compat@${ major }.0.0/modules-by-versions.json`); const zeroVersionData = await response.json(); const set = new Set(zeroVersionData[zero]); for (const mod of modulesByVersions[zero]) { diff --git a/tests/compat-data/tests-coverage.mjs b/tests/compat-data/tests-coverage.mjs index 6eca7bed3778..31cacbd00d5b 100644 --- a/tests/compat-data/tests-coverage.mjs +++ b/tests/compat-data/tests-coverage.mjs @@ -1,4 +1,4 @@ -import { modules, ignored } from 'core-js-compat/src/data.mjs'; +import { modules, ignored } from '@core-js/compat/src/data.mjs'; import '../compat/tests.js'; const modulesSet = new Set([ diff --git a/tests/compat-tools/compat.mjs b/tests/compat-tools/compat.mjs index 22722826f7ea..baac4b599266 100644 --- a/tests/compat-tools/compat.mjs +++ b/tests/compat-tools/compat.mjs @@ -1,5 +1,5 @@ import { deepEqual, ok } from 'node:assert/strict'; -import compat from 'core-js-compat/compat.js'; +import compat from '@core-js/compat/compat.js'; deepEqual(compat({ modules: [ diff --git a/tests/compat-tools/get-modules-list-for-target-version.mjs b/tests/compat-tools/get-modules-list-for-target-version.mjs index 046844d8dfe2..156549d29f79 100644 --- a/tests/compat-tools/get-modules-list-for-target-version.mjs +++ b/tests/compat-tools/get-modules-list-for-target-version.mjs @@ -1,5 +1,5 @@ import { deepEqual, throws } from 'node:assert/strict'; -import getModulesListForTargetVersion from 'core-js-compat/get-modules-list-for-target-version.js'; +import getModulesListForTargetVersion from '@core-js/compat/get-modules-list-for-target-version.js'; const modules = await fs.readJson('packages/core-js-compat/modules.json'); const modulesByVersions = await fs.readJson('packages/core-js-compat/modules-by-versions.json'); diff --git a/tests/compat-tools/targets-parser.mjs b/tests/compat-tools/targets-parser.mjs index cdbc03ca688b..42c457d1fb22 100644 --- a/tests/compat-tools/targets-parser.mjs +++ b/tests/compat-tools/targets-parser.mjs @@ -1,5 +1,5 @@ import { deepEqual } from 'node:assert/strict'; -import targetsParser from 'core-js-compat/targets-parser.js'; +import targetsParser from '@core-js/compat/targets-parser.js'; deepEqual(targetsParser('ie 11, chrome 56, ios 12.2'), new Map([ ['chrome', '56'], diff --git a/tests/compat/index.html b/tests/compat/index.html index 9f527551cd62..1b950215dc2d 100644 --- a/tests/compat/index.html +++ b/tests/compat/index.html @@ -1,6 +1,6 @@ -core-js-compat +@core-js/compat