From 6adb6a07566c16adc4b5a82f4121c414f625768a Mon Sep 17 00:00:00 2001 From: Denis Pushkarev Date: Tue, 3 Oct 2023 02:13:45 +0700 Subject: [PATCH 001/388] drop `esnext.aggregate-error` (moved to stable es) --- 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 ++++++++-------- 9 files changed, 9 insertions(+), 24 deletions(-) delete mode 100644 packages/core-js/modules/esnext.aggregate-error.js diff --git a/packages/core-js-compat/src/data.mjs b/packages/core-js-compat/src/data.mjs index 7592840da7af..f3c196446bc0 100644 --- a/packages/core-js-compat/src/data.mjs +++ b/packages/core-js-compat/src/data.mjs @@ -2088,8 +2088,6 @@ export const data = { rhino: '1.7.13', safari: '10.0', }, - // TODO: Remove from `core-js@4` - 'esnext.aggregate-error': null, 'esnext.suppressed-error.constructor': { // Bun ~ 1.0.33 issues // https://github.com/oven-sh/bun/issues/9282 @@ -2861,7 +2859,6 @@ export const renamed = new Map([ ['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'], - ['esnext.aggregate-error', 'es.aggregate-error'], ['esnext.global-this', 'es.global-this'], ['esnext.iterator.constructor', 'es.iterator.constructor'], ['esnext.iterator.drop', 'es.iterator.drop'], 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 75513f8f6ce7..8f3865919193 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 5a8db677e21794d459b6b878fd4cf79c02fbc3cc Mon Sep 17 00:00:00 2001 From: Denis Pushkarev Date: Tue, 3 Oct 2023 02:37:44 +0700 Subject: [PATCH 002/388] 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 f3c196446bc0..36ae5678e26f 100644 --- a/packages/core-js-compat/src/data.mjs +++ b/packages/core-js-compat/src/data.mjs @@ -2388,8 +2388,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, @@ -2877,7 +2875,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.set.difference.v2', 'es.set.difference.v2'], 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 4ba552dfdb27be5c4ee3e002ad8ab281e54d4d17 Mon Sep 17 00:00:00 2001 From: Denis Pushkarev Date: Tue, 3 Oct 2023 02:42:11 +0700 Subject: [PATCH 003/388] 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 36ae5678e26f..4efb98998c68 100644 --- a/packages/core-js-compat/src/data.mjs +++ b/packages/core-js-compat/src/data.mjs @@ -2386,8 +2386,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, @@ -2874,7 +2872,6 @@ export const renamed = new Map([ ['esnext.map.group-by', 'es.map.group-by'], ['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.set.difference.v2', 'es.set.difference.v2'], 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 21a865d3e90fb0e1dc0d3153599e901ac44a2d50 Mon Sep 17 00:00:00 2001 From: Denis Pushkarev Date: Tue, 3 Oct 2023 02:50:53 +0700 Subject: [PATCH 004/388] 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 4efb98998c68..cc6d98af0fd4 100644 --- a/packages/core-js-compat/src/data.mjs +++ b/packages/core-js-compat/src/data.mjs @@ -2104,8 +2104,6 @@ export const data = { safari: '18.0', // '16.4', }, // TODO: Remove from `core-js@4` - 'esnext.array.at': null, - // TODO: Remove from `core-js@4` 'esnext.array.filter-out': { }, 'esnext.array.filter-reject': { @@ -2845,7 +2843,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.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 3db1c15d839e..70cace78d7f2 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 48b4dc47bb19..28fdc092bd6b 100644 --- a/tests/compat-tools/compat.mjs +++ b/tests/compat-tools/compat.mjs @@ -123,7 +123,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 69528ef4bc7f3cb74dde61ea295a80caa1f6f8b2 Mon Sep 17 00:00:00 2001 From: Denis Pushkarev Date: Tue, 3 Oct 2023 03:04:10 +0700 Subject: [PATCH 005/388] 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 cc6d98af0fd4..88a15fc20881 100644 --- a/packages/core-js-compat/src/data.mjs +++ b/packages/core-js-compat/src/data.mjs @@ -2541,8 +2541,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': { @@ -2882,7 +2880,6 @@ export const renamed = new Map([ ['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.typed-array.at', 'es.typed-array.at'], ['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'], diff --git a/packages/core-js-compat/src/modules-by-versions.mjs b/packages/core-js-compat/src/modules-by-versions.mjs index 70cace78d7f2..91e88a25c7c9 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 eccf48aa57d8ae245c4b5f45ed37ce0a29e03cde Mon Sep 17 00:00:00 2001 From: Denis Pushkarev Date: Tue, 3 Oct 2023 03:10:53 +0700 Subject: [PATCH 006/388] 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 88a15fc20881..45af4004ae0d 100644 --- a/packages/core-js-compat/src/data.mjs +++ b/packages/core-js-compat/src/data.mjs @@ -2109,8 +2109,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 @@ -2841,7 +2839,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.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 91e88a25c7c9..51a08f1f2931 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 4ffabf525ce1..d5ec381c6450 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.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 187af443dca73b0a018df42aeeb5ae2ca69535f8 Mon Sep 17 00:00:00 2001 From: Denis Pushkarev Date: Tue, 3 Oct 2023 03:16:24 +0700 Subject: [PATCH 007/388] 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 45af4004ae0d..9325f8190b70 100644 --- a/packages/core-js-compat/src/data.mjs +++ b/packages/core-js-compat/src/data.mjs @@ -2108,8 +2108,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', @@ -2839,7 +2837,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.to-reversed', 'es.array.to-reversed'], ['esnext.array.to-sorted', 'es.array.to-sorted'], ['esnext.array.to-spliced', 'es.array.to-spliced'], diff --git a/packages/core-js-compat/src/modules-by-versions.mjs b/packages/core-js-compat/src/modules-by-versions.mjs index 51a08f1f2931..01a318234c33 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 d5ec381c6450..7b9fe4f2d089 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.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 592b744781bb973708250eb0e901e1ae52ba3270 Mon Sep 17 00:00:00 2001 From: Denis Pushkarev Date: Tue, 3 Oct 2023 03:22:36 +0700 Subject: [PATCH 008/388] 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 9325f8190b70..6f9cedb4da45 100644 --- a/packages/core-js-compat/src/data.mjs +++ b/packages/core-js-compat/src/data.mjs @@ -2542,8 +2542,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': { @@ -2874,7 +2872,6 @@ export const renamed = new Map([ ['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.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 01a318234c33..56bfd9320b15 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 c495f5a5a5d0..9a49f2b3b928 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-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/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 8652d881e5a27203d13bfdff6bcfd1446edbf630 Mon Sep 17 00:00:00 2001 From: Denis Pushkarev Date: Tue, 3 Oct 2023 03:27:57 +0700 Subject: [PATCH 009/388] 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 6f9cedb4da45..acc9be874e6c 100644 --- a/packages/core-js-compat/src/data.mjs +++ b/packages/core-js-compat/src/data.mjs @@ -2542,8 +2542,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` @@ -2872,7 +2870,6 @@ export const renamed = new Map([ ['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.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 56bfd9320b15..a89187125892 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 9a49f2b3b928..11e26da2ba95 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-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/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 77d828b4f2b296296df6bf5dcb6a7f9c03a85842 Mon Sep 17 00:00:00 2001 From: Denis Pushkarev Date: Tue, 3 Oct 2023 03:39:40 +0700 Subject: [PATCH 010/388] 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 acc9be874e6c..d5b85f02386f 100644 --- a/packages/core-js-compat/src/data.mjs +++ b/packages/core-js-compat/src/data.mjs @@ -2137,8 +2137,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, @@ -2833,7 +2831,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.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 a89187125892..e574dfa13990 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 7b9fe4f2d089..62ce27d8ee45 100644 --- a/packages/core-js/actual/array/index.js +++ b/packages/core-js/actual/array/index.js @@ -8,7 +8,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 af2116955e27cf7e6afded9ae29dfa8383682e67 Mon Sep 17 00:00:00 2001 From: Denis Pushkarev Date: Tue, 3 Oct 2023 03:55:17 +0700 Subject: [PATCH 011/388] 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 d5b85f02386f..f86c1f70cff4 100644 --- a/packages/core-js-compat/src/data.mjs +++ b/packages/core-js-compat/src/data.mjs @@ -2137,8 +2137,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': { }, @@ -2831,7 +2829,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.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 e574dfa13990..267e3a3b37fa 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 62ce27d8ee45..b60f794fac4c 100644 --- a/packages/core-js/actual/array/index.js +++ b/packages/core-js/actual/array/index.js @@ -8,7 +8,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 d74430ba298d44ea0a38c41f42ee9085a45b2443 Mon Sep 17 00:00:00 2001 From: Denis Pushkarev Date: Tue, 3 Oct 2023 04:03:24 +0700 Subject: [PATCH 012/388] 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 f86c1f70cff4..17bda84d6289 100644 --- a/packages/core-js-compat/src/data.mjs +++ b/packages/core-js-compat/src/data.mjs @@ -2136,8 +2136,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` @@ -2829,7 +2827,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.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 267e3a3b37fa..13a5b7ae8d24 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 b60f794fac4c..8f0b988d26b3 100644 --- a/packages/core-js/actual/array/index.js +++ b/packages/core-js/actual/array/index.js @@ -8,7 +8,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 60185c7d01af13bc99693f6da4e9d3b1ed205d55 Mon Sep 17 00:00:00 2001 From: Denis Pushkarev Date: Tue, 3 Oct 2023 04:08:58 +0700 Subject: [PATCH 013/388] drop `esnext.array.with` (moved to stable es) --- packages/core-js-compat/src/data.mjs | 21 ++++++++++++++++--- .../src/modules-by-versions.mjs | 1 - packages/core-js/actual/array/index.js | 1 - .../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 --- .../proposals/change-array-by-copy-stage-4.js | 2 +- .../core-js/proposals/change-array-by-copy.js | 2 +- 9 files changed, 20 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 17bda84d6289..de3511a32579 100644 --- a/packages/core-js-compat/src/data.mjs +++ b/packages/core-js-compat/src/data.mjs @@ -2139,13 +2139,29 @@ 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, // TODO: Remove from `core-js@4` 'esnext.array-buffer.transfer-to-fixed-length': null, + 'esnext.array-buffer.detached': { + bun: '1.0.19', + chrome: '114', + firefox: '122', + safari: '17.4', + }, + 'esnext.array-buffer.transfer': { + bun: '1.0.19', + chrome: '114', + firefox: '122', + safari: '17.4', + }, + 'esnext.array-buffer.transfer-to-fixed-length': { + bun: '1.0.19', + chrome: '114', + firefox: '122', + safari: '17.4', + }, 'esnext.async-disposable-stack.constructor': { }, 'esnext.async-iterator.constructor': { @@ -2827,7 +2843,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.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 13a5b7ae8d24..8f7684c8424b 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 8f0b988d26b3..1f51f7a0a6ec 100644 --- a/packages/core-js/actual/array/index.js +++ b/packages/core-js/actual/array/index.js @@ -8,6 +8,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 0ec11ed7a3fb790d393616774f553f8ff009b430 Mon Sep 17 00:00:00 2001 From: Denis Pushkarev Date: Tue, 3 Oct 2023 04:15:28 +0700 Subject: [PATCH 014/388] 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 de3511a32579..9e5f83318022 100644 --- a/packages/core-js-compat/src/data.mjs +++ b/packages/core-js-compat/src/data.mjs @@ -2555,8 +2555,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': { @@ -2876,7 +2874,6 @@ export const renamed = new Map([ ['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.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'], ['web.url', 'web.url.constructor'], diff --git a/packages/core-js-compat/src/modules-by-versions.mjs b/packages/core-js-compat/src/modules-by-versions.mjs index 8f7684c8424b..15136a5dd460 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 11e26da2ba95..60624613efbe 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-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/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 2af604ac9bd92e87f152d726017a514d4dcb2bcb Mon Sep 17 00:00:00 2001 From: Denis Pushkarev Date: Tue, 3 Oct 2023 04:21:30 +0700 Subject: [PATCH 015/388] 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 9e5f83318022..c3d0f72ccd02 100644 --- a/packages/core-js-compat/src/data.mjs +++ b/packages/core-js-compat/src/data.mjs @@ -2555,8 +2555,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': { @@ -2874,7 +2872,6 @@ export const renamed = new Map([ ['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.typed-array.to-sorted', 'es.typed-array.to-sorted'], ['esnext.typed-array.with', 'es.typed-array.with'], ['web.url', 'web.url.constructor'], ['web.url-search-params', 'web.url-search-params.constructor'], diff --git a/packages/core-js-compat/src/modules-by-versions.mjs b/packages/core-js-compat/src/modules-by-versions.mjs index 15136a5dd460..226f7b08cfe4 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 60624613efbe..4717382ff6ab 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-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/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 f8593576c708f99ff4594520d249cb34f5bedcf3 Mon Sep 17 00:00:00 2001 From: Denis Pushkarev Date: Tue, 3 Oct 2023 04:27:16 +0700 Subject: [PATCH 016/388] 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 c3d0f72ccd02..1484e0c47f80 100644 --- a/packages/core-js-compat/src/data.mjs +++ b/packages/core-js-compat/src/data.mjs @@ -2559,8 +2559,6 @@ export const data = { }, 'esnext.typed-array.unique-by': { }, - // TODO: Remove from `core-js@4` - 'esnext.typed-array.with': null, 'esnext.uint8-array.from-base64': { bun: '1.1.22', }, @@ -2872,7 +2870,6 @@ export const renamed = new Map([ ['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.typed-array.with', 'es.typed-array.with'], ['web.url', 'web.url.constructor'], ['web.url-search-params', 'web.url-search-params.constructor'], ]); diff --git a/packages/core-js-compat/src/modules-by-versions.mjs b/packages/core-js-compat/src/modules-by-versions.mjs index 226f7b08cfe4..516f34a07da6 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 4717382ff6ab..ee2900ac97b8 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.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/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 080137f5068b748ccb1a2fca6525d09246ce788f Mon Sep 17 00:00:00 2001 From: Denis Pushkarev Date: Tue, 3 Oct 2023 04:34:01 +0700 Subject: [PATCH 017/388] drop `esnext.global-this` (moved to stable es) --- packages/core-js-compat/src/data.mjs | 21 ------------------- packages/core-js/full/global-this.js | 3 --- .../core-js/modules/esnext.global-this.js | 3 --- packages/core-js/proposals/global-this.js | 2 +- 4 files changed, 1 insertion(+), 28 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 1484e0c47f80..05ef8e4ea72d 100644 --- a/packages/core-js-compat/src/data.mjs +++ b/packages/core-js-compat/src/data.mjs @@ -2144,24 +2144,6 @@ export const data = { 'esnext.array-buffer.transfer': null, // TODO: Remove from `core-js@4` 'esnext.array-buffer.transfer-to-fixed-length': null, - 'esnext.array-buffer.detached': { - bun: '1.0.19', - chrome: '114', - firefox: '122', - safari: '17.4', - }, - 'esnext.array-buffer.transfer': { - bun: '1.0.19', - chrome: '114', - firefox: '122', - safari: '17.4', - }, - 'esnext.array-buffer.transfer-to-fixed-length': { - bun: '1.0.19', - chrome: '114', - firefox: '122', - safari: '17.4', - }, 'esnext.async-disposable-stack.constructor': { }, 'esnext.async-iterator.constructor': { @@ -2232,8 +2214,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': { @@ -2840,7 +2820,6 @@ export const renamed = new Map([ ['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'], - ['esnext.global-this', 'es.global-this'], ['esnext.iterator.constructor', 'es.iterator.constructor'], ['esnext.iterator.drop', 'es.iterator.drop'], ['esnext.iterator.every', 'es.iterator.every'], 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 15873882fa3ab293625fed170a497b4d8279fde8 Mon Sep 17 00:00:00 2001 From: Denis Pushkarev Date: Tue, 3 Oct 2023 04:39:23 +0700 Subject: [PATCH 018/388] 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 05ef8e4ea72d..afd6405f9cab 100644 --- a/packages/core-js-compat/src/data.mjs +++ b/packages/core-js-compat/src/data.mjs @@ -2348,8 +2348,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` @@ -2834,7 +2832,6 @@ export const renamed = new Map([ ['esnext.iterator.take', 'es.iterator.take'], ['esnext.iterator.to-array', 'es.iterator.to-array'], ['esnext.map.group-by', 'es.map.group-by'], - ['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 516f34a07da6..2b5c42a992f5 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 f893ad9e69da4068fff2622cdf7bfebc04034c4f Mon Sep 17 00:00:00 2001 From: Denis Pushkarev Date: Tue, 3 Oct 2023 04:44:21 +0700 Subject: [PATCH 019/388] 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 cea60fe2af5d..099b51efd302 100644 --- a/tests/entries/unit.mjs +++ b/tests/entries/unit.mjs @@ -1089,8 +1089,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 43e649739803bf3c0014b3d7dd5db9c3543a9dbd Mon Sep 17 00:00:00 2001 From: Denis Pushkarev Date: Tue, 3 Oct 2023 04:49:17 +0700 Subject: [PATCH 020/388] 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 afd6405f9cab..405e7f119cab 100644 --- a/packages/core-js-compat/src/data.mjs +++ b/packages/core-js-compat/src/data.mjs @@ -2468,8 +2468,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, @@ -2842,7 +2840,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 2b5c42a992f5..d69f80ae0da9 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 f3f8c7ff47b02763303ba3215eb1664c17277e89 Mon Sep 17 00:00:00 2001 From: Denis Pushkarev Date: Tue, 3 Oct 2023 04:54:05 +0700 Subject: [PATCH 021/388] 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 405e7f119cab..d75e82b62825 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.string.match-all': null, // TODO: Remove from `core-js@4` 'esnext.string.replace-all': null, - // TODO: Remove from `core-js@4` - 'esnext.string.to-well-formed': null, 'esnext.symbol.async-dispose': { bun: '1.0.23', chrome: '127', @@ -2842,7 +2840,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'], ['web.url', 'web.url.constructor'], ['web.url-search-params', 'web.url-search-params.constructor'], ]); diff --git a/packages/core-js-compat/src/modules-by-versions.mjs b/packages/core-js-compat/src/modules-by-versions.mjs index d69f80ae0da9..1787bddacc92 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 819640e3f4be5af58033907e4cbbf6025a466aed Mon Sep 17 00:00:00 2001 From: Denis Pushkarev Date: Tue, 3 Oct 2023 04:59:46 +0700 Subject: [PATCH 022/388] 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 d75e82b62825..09af5dfcfcfe 100644 --- a/packages/core-js-compat/src/data.mjs +++ b/packages/core-js-compat/src/data.mjs @@ -2468,8 +2468,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, 'esnext.symbol.async-dispose': { bun: '1.0.23', @@ -2838,7 +2836,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'], ['web.url', 'web.url.constructor'], ['web.url-search-params', 'web.url-search-params.constructor'], 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 19b6d5ca8a523e2bea15c647335722f0e2d72810 Mon Sep 17 00:00:00 2001 From: Denis Pushkarev Date: Tue, 3 Oct 2023 05:05:05 +0700 Subject: [PATCH 023/388] 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 09af5dfcfcfe..bd5955ef22cd 100644 --- a/packages/core-js-compat/src/data.mjs +++ b/packages/core-js-compat/src/data.mjs @@ -2467,8 +2467,6 @@ export const data = { }, 'esnext.string.dedent': { }, - // TODO: Remove from `core-js@4` - 'esnext.string.replace-all': null, 'esnext.symbol.async-dispose': { bun: '1.0.23', chrome: '127', @@ -2836,7 +2834,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'], ['web.url', 'web.url.constructor'], ['web.url-search-params', 'web.url-search-params.constructor'], ]); 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 dbbb9c847bd6133c398618011e1a0e02043a2ba2 Mon Sep 17 00:00:00 2001 From: Denis Pushkarev Date: Tue, 3 Oct 2023 05:13:01 +0700 Subject: [PATCH 024/388] 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 bd5955ef22cd..fb28b353dd8d 100644 --- a/packages/core-js-compat/src/data.mjs +++ b/packages/core-js-compat/src/data.mjs @@ -2348,9 +2348,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 1787bddacc92..c7b532e580d0 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 05d2f74be1ef..d186368e7939 100644 --- a/scripts/bundle-package/bundle-package.mjs +++ b/scripts/bundle-package/bundle-package.mjs @@ -64,7 +64,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 8f3865919193..75aad1014ae5 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.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 099b51efd302..574c50d5a79b 100644 --- a/tests/entries/unit.mjs +++ b/tests/entries/unit.mjs @@ -806,7 +806,6 @@ for (PATH of ['core-js-pure', 'core-js']) { ok(load(NS, 'map/update')(new Map([[1, 2]]), 1, it => it * 2).get(1) === 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 5cb04395085cf6aa5181a72097fbe1c8d4ee5904 Mon Sep 17 00:00:00 2001 From: Denis Pushkarev Date: Tue, 3 Oct 2023 05:19:07 +0700 Subject: [PATCH 025/388] 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 fb28b353dd8d..e7fdb09d9bb2 100644 --- a/packages/core-js-compat/src/data.mjs +++ b/packages/core-js-compat/src/data.mjs @@ -2348,9 +2348,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 c7b532e580d0..1facc4134aec 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 d186368e7939..9434762a09a4 100644 --- a/scripts/bundle-package/bundle-package.mjs +++ b/scripts/bundle-package/bundle-package.mjs @@ -64,7 +64,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 75aad1014ae5..06dc51a9d69f 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.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 574c50d5a79b..a3f4afb909ea 100644 --- a/tests/entries/unit.mjs +++ b/tests/entries/unit.mjs @@ -806,7 +806,6 @@ for (PATH of ['core-js-pure', 'core-js']) { ok(load(NS, 'map/update')(new Map([[1, 2]]), 1, it => it * 2).get(1) === 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 edfe14c6dd3cb6614342a8f91b3ebccd154414ea Mon Sep 17 00:00:00 2001 From: Denis Pushkarev Date: Tue, 3 Oct 2023 05:27:59 +0700 Subject: [PATCH 026/388] 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 e7fdb09d9bb2..d3c09a6d999c 100644 --- a/packages/core-js-compat/src/data.mjs +++ b/packages/core-js-compat/src/data.mjs @@ -2348,9 +2348,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 1facc4134aec..c94187e8127e 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 4f59dad3533f..558a8f97d374 100644 --- a/packages/core-js/stage/1.js +++ b/packages/core-js/stage/1.js @@ -12,7 +12,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 9434762a09a4..9c40f6e9bff1 100644 --- a/scripts/bundle-package/bundle-package.mjs +++ b/scripts/bundle-package/bundle-package.mjs @@ -64,7 +64,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 06dc51a9d69f..465f4dfbfc3b 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.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 a3f4afb909ea..6f072ec9c475 100644 --- a/tests/entries/unit.mjs +++ b/tests/entries/unit.mjs @@ -806,7 +806,6 @@ for (PATH of ['core-js-pure', 'core-js']) { ok(load(NS, 'map/update')(new Map([[1, 2]]), 1, it => it * 2).get(1) === 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'); @@ -943,7 +942,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 feb5ae51c70d9f682f282c45eb629b830f5784bd Mon Sep 17 00:00:00 2001 From: Denis Pushkarev Date: Tue, 3 Oct 2023 05:43:58 +0700 Subject: [PATCH 027/388] 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 d3c09a6d999c..3767114db98b 100644 --- a/packages/core-js-compat/src/data.mjs +++ b/packages/core-js-compat/src/data.mjs @@ -2332,9 +2332,6 @@ export const data = { }, 'esnext.math.scale': { }, - // TODO: Remove from `core-js@4` - 'esnext.math.seeded-prng': { - }, 'esnext.math.signbit': { }, 'esnext.math.sum-precise': { diff --git a/packages/core-js/full/math/index.js b/packages/core-js/full/math/index.js index f1db3d46ac9d..0714efec3377 100644 --- a/packages/core-js/full/math/index.js +++ b/packages/core-js/full/math/index.js @@ -7,7 +7,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 558a8f97d374..621edd208397 100644 --- a/packages/core-js/stage/1.js +++ b/packages/core-js/stage/1.js @@ -14,7 +14,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 9c40f6e9bff1..33f6308bc263 100644 --- a/scripts/bundle-package/bundle-package.mjs +++ b/scripts/bundle-package/bundle-package.mjs @@ -62,7 +62,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 465f4dfbfc3b..925224269879 100644 --- a/tests/compat-data/tests-coverage.mjs +++ b/tests/compat-data/tests-coverage.mjs @@ -33,7 +33,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 6f072ec9c475..4d25d395fd7d 100644 --- a/tests/entries/unit.mjs +++ b/tests/entries/unit.mjs @@ -797,7 +797,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); @@ -957,7 +956,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 18302741a8aab13cd4dd15abea58316a7bcc91a0 Mon Sep 17 00:00:00 2001 From: Denis Pushkarev Date: Tue, 3 Oct 2023 05:52:38 +0700 Subject: [PATCH 028/388] 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 3767114db98b..0b1f2181b9d2 100644 --- a/packages/core-js-compat/src/data.mjs +++ b/packages/core-js-compat/src/data.mjs @@ -2318,9 +2318,6 @@ export const data = { firefox: '129', }, // 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 0714efec3377..7d47bda41254 100644 --- a/packages/core-js/full/math/index.js +++ b/packages/core-js/full/math/index.js @@ -9,7 +9,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 33f6308bc263..cddb274a6ad0 100644 --- a/scripts/bundle-package/bundle-package.mjs +++ b/scripts/bundle-package/bundle-package.mjs @@ -59,7 +59,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 925224269879..a564ec591527 100644 --- a/tests/compat-data/tests-coverage.mjs +++ b/tests/compat-data/tests-coverage.mjs @@ -30,7 +30,6 @@ const ignore = new Set([ 'esnext.iterator.indexed', 'esnext.map.update-or-insert', 'esnext.map.upsert', - '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 4d25d395fd7d..3b6aefeccaab 100644 --- a/tests/entries/unit.mjs +++ b/tests/entries/unit.mjs @@ -791,7 +791,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 1d7da23116abb998f286579a292b604a613d77b4 Mon Sep 17 00:00:00 2001 From: Denis Pushkarev Date: Tue, 3 Oct 2023 06:00:34 +0700 Subject: [PATCH 029/388] 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 0b1f2181b9d2..6e3b2889845c 100644 --- a/packages/core-js-compat/src/data.mjs +++ b/packages/core-js-compat/src/data.mjs @@ -2318,9 +2318,6 @@ export const data = { firefox: '129', }, // 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 7d47bda41254..818cb326b70e 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.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 cddb274a6ad0..d1d6b343f2a2 100644 --- a/scripts/bundle-package/bundle-package.mjs +++ b/scripts/bundle-package/bundle-package.mjs @@ -59,7 +59,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 a564ec591527..53770a7f03ef 100644 --- a/tests/compat-data/tests-coverage.mjs +++ b/tests/compat-data/tests-coverage.mjs @@ -30,7 +30,6 @@ const ignore = new Set([ 'esnext.iterator.indexed', 'esnext.map.update-or-insert', 'esnext.map.upsert', - '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 3b6aefeccaab..8f373d4e7f2d 100644 --- a/tests/entries/unit.mjs +++ b/tests/entries/unit.mjs @@ -792,7 +792,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 63b508245327345bd52b11721551e0b5fe68f8d3 Mon Sep 17 00:00:00 2001 From: Denis Pushkarev Date: Tue, 3 Oct 2023 06:06:30 +0700 Subject: [PATCH 030/388] drop `esnext.math.isubh` (withdrawn) --- packages/core-js-compat/src/data.mjs | 3 --- 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, 51 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 6e3b2889845c..0b06677216b8 100644 --- a/packages/core-js-compat/src/data.mjs +++ b/packages/core-js-compat/src/data.mjs @@ -2317,9 +2317,6 @@ export const data = { deno: '1.43', firefox: '129', }, - // 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 818cb326b70e..39fd29e172c6 100644 --- a/packages/core-js/full/math/index.js +++ b/packages/core-js/full/math/index.js @@ -9,7 +9,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 d1d6b343f2a2..e324f4c304e2 100644 --- a/scripts/bundle-package/bundle-package.mjs +++ b/scripts/bundle-package/bundle-package.mjs @@ -59,7 +59,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 53770a7f03ef..030a682672d6 100644 --- a/tests/compat-data/tests-coverage.mjs +++ b/tests/compat-data/tests-coverage.mjs @@ -30,7 +30,6 @@ const ignore = new Set([ 'esnext.iterator.indexed', 'esnext.map.update-or-insert', 'esnext.map.upsert', - 'esnext.math.isubh', 'esnext.math.umulh', 'esnext.number.range', 'esnext.observable', diff --git a/tests/entries/unit.mjs b/tests/entries/unit.mjs index 8f373d4e7f2d..45b184e20cbf 100644 --- a/tests/entries/unit.mjs +++ b/tests/entries/unit.mjs @@ -791,7 +791,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 e6bba2a5567a087a38072568f60a07b4b2b37bde Mon Sep 17 00:00:00 2001 From: Denis Pushkarev Date: Tue, 3 Oct 2023 06:13:44 +0700 Subject: [PATCH 031/388] 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 0b06677216b8..787cbc689970 100644 --- a/packages/core-js-compat/src/data.mjs +++ b/packages/core-js-compat/src/data.mjs @@ -2327,9 +2327,6 @@ export const data = { }, 'esnext.math.sum-precise': { }, - // TODO: Remove from `core-js@4` - 'esnext.math.umulh': { - }, 'esnext.number.from-string': { }, // 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 39fd29e172c6..c7d7a7835c57 100644 --- a/packages/core-js/full/math/index.js +++ b/packages/core-js/full/math/index.js @@ -8,7 +8,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 e324f4c304e2..98d0aeae9bf1 100644 --- a/scripts/bundle-package/bundle-package.mjs +++ b/scripts/bundle-package/bundle-package.mjs @@ -59,7 +59,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 030a682672d6..45d149046a03 100644 --- a/tests/compat-data/tests-coverage.mjs +++ b/tests/compat-data/tests-coverage.mjs @@ -30,7 +30,6 @@ const ignore = new Set([ 'esnext.iterator.indexed', 'esnext.map.update-or-insert', 'esnext.map.upsert', - 'esnext.math.umulh', 'esnext.number.range', 'esnext.observable', 'esnext.observable.constructor', diff --git a/tests/entries/unit.mjs b/tests/entries/unit.mjs index 45b184e20cbf..65db236f4bbb 100644 --- a/tests/entries/unit.mjs +++ b/tests/entries/unit.mjs @@ -795,7 +795,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); @@ -914,7 +913,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 8922508fac57f83a665529fcf31c3327b94dcef8 Mon Sep 17 00:00:00 2001 From: Denis Pushkarev Date: Tue, 3 Oct 2023 06:26:54 +0700 Subject: [PATCH 032/388] 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 787cbc689970..39df17e677e2 100644 --- a/packages/core-js-compat/src/data.mjs +++ b/packages/core-js-compat/src/data.mjs @@ -2434,9 +2434,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 98d0aeae9bf1..9385df442a85 100644 --- a/scripts/bundle-package/bundle-package.mjs +++ b/scripts/bundle-package/bundle-package.mjs @@ -59,7 +59,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 45d149046a03..26b5c28b9342 100644 --- a/tests/compat-data/tests-coverage.mjs +++ b/tests/compat-data/tests-coverage.mjs @@ -51,7 +51,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 65db236f4bbb..e5e86906c9a6 100644 --- a/tests/entries/unit.mjs +++ b/tests/entries/unit.mjs @@ -953,7 +953,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 126dfd0800310bd427540f3b226bb2cb734763f1 Mon Sep 17 00:00:00 2001 From: Denis Pushkarev Date: Tue, 3 Oct 2023 06:49:20 +0700 Subject: [PATCH 033/388] 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 39df17e677e2..63f04d976abe 100644 --- a/packages/core-js-compat/src/data.mjs +++ b/packages/core-js-compat/src/data.mjs @@ -2108,13 +2108,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 c94187e8127e..5a9270146362 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 1f51f7a0a6ec..43452af62995 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/es.promise'); require('../../modules/es.object.to-string'); 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..0fccd52891e4 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.array-buffer.detached.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 26b5c28b9342..a8255e094070 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 e5e86906c9a6..0ba34af76a79 100644 --- a/tests/entries/unit.mjs +++ b/tests/entries/unit.mjs @@ -674,11 +674,9 @@ for (PATH of ['core-js-pure', 'core-js']) { for (const NS of ['actual', 'full', 'features']) { ok(typeof load(NS, 'array/from-async') == 'function'); - 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'); @@ -716,12 +714,6 @@ for (PATH of ['core-js-pure', 'core-js']) { ok(typeof load(NS, 'async-disposable-stack') == 'function'); ok(typeof load(NS, 'async-disposable-stack/constructor') == 'function'); - 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 a03f06985c13ba7af28d5227571fc1337671976b Mon Sep 17 00:00:00 2001 From: Denis Pushkarev Date: Tue, 3 Oct 2023 06:59:17 +0700 Subject: [PATCH 034/388] 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 63f04d976abe..9d68961b3344 100644 --- a/packages/core-js-compat/src/data.mjs +++ b/packages/core-js-compat/src/data.mjs @@ -2109,9 +2109,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 5a9270146362..c675456c240c 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 43452af62995..1629affa3e22 100644 --- a/packages/core-js/actual/array/index.js +++ b/packages/core-js/actual/array/index.js @@ -5,7 +5,6 @@ require('../../modules/es.object.to-string'); 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 a8255e094070..95019a5eac9a 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 0ba34af76a79..5f2b60bab234 100644 --- a/tests/entries/unit.mjs +++ b/tests/entries/unit.mjs @@ -675,10 +675,8 @@ for (PATH of ['core-js-pure', 'core-js']) { for (const NS of ['actual', 'full', 'features']) { ok(typeof load(NS, 'array/from-async') == '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-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'); @@ -720,12 +718,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 c888d4f29b760b87feacdf678644648cb51c8e8f Mon Sep 17 00:00:00 2001 From: Denis Pushkarev Date: Tue, 3 Oct 2023 07:12:45 +0700 Subject: [PATCH 035/388] 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 9d68961b3344..9e6f6d37509b 100644 --- a/packages/core-js-compat/src/data.mjs +++ b/packages/core-js-compat/src/data.mjs @@ -2108,9 +2108,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 c675456c240c..c7cb1195f94f 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 1629affa3e22..a22ec5cb4982 100644 --- a/packages/core-js/actual/array/index.js +++ b/packages/core-js/actual/array/index.js @@ -4,7 +4,5 @@ require('../../modules/es.promise'); require('../../modules/es.object.to-string'); 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 0b381e2cda30..5c5abd5455cf 100644 --- a/packages/core-js/stage/3.js +++ b/packages/core-js/stage/3.js @@ -10,7 +10,6 @@ require('../proposals/json-parse-with-source'); require('../proposals/math-sum'); require('../proposals/regexp-escaping'); // 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 95019a5eac9a..e344918c02ca 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 5f2b60bab234..40796e66707d 100644 --- a/tests/entries/unit.mjs +++ b/tests/entries/unit.mjs @@ -675,9 +675,7 @@ for (PATH of ['core-js-pure', 'core-js']) { for (const NS of ['actual', 'full', 'features']) { ok(typeof load(NS, 'array/from-async') == 'function'); 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'); @@ -717,12 +715,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']) { @@ -877,7 +869,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 a2308bbb06643ca65087c76cf065369ea2409a39 Mon Sep 17 00:00:00 2001 From: Denis Pushkarev Date: Tue, 3 Oct 2023 07:25:14 +0700 Subject: [PATCH 036/388] 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 9e6f6d37509b..389fc7164c58 100644 --- a/packages/core-js-compat/src/data.mjs +++ b/packages/core-js-compat/src/data.mjs @@ -2108,13 +2108,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 c7cb1195f94f..31ba7f45b415 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 a22ec5cb4982..80ebf324b1bb 100644 --- a/packages/core-js/actual/array/index.js +++ b/packages/core-js/actual/array/index.js @@ -3,6 +3,5 @@ var parent = require('../../stable/array'); require('../../modules/es.promise'); require('../../modules/es.object.to-string'); 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 5c5abd5455cf..0cd075f5d7e4 100644 --- a/packages/core-js/stage/3.js +++ b/packages/core-js/stage/3.js @@ -10,7 +10,6 @@ require('../proposals/json-parse-with-source'); require('../proposals/math-sum'); require('../proposals/regexp-escaping'); // 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 e344918c02ca..71daddbee637 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 40796e66707d..c5eb32cdc2d8 100644 --- a/tests/entries/unit.mjs +++ b/tests/entries/unit.mjs @@ -674,8 +674,6 @@ for (PATH of ['core-js-pure', 'core-js']) { for (const NS of ['actual', 'full', 'features']) { ok(typeof load(NS, 'array/from-async') == 'function'); - 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'); @@ -709,12 +707,6 @@ for (PATH of ['core-js-pure', 'core-js']) { load(NS, 'async-iterator/async-dispose'); ok(typeof load(NS, 'async-disposable-stack') == 'function'); ok(typeof load(NS, 'async-disposable-stack/constructor') == 'function'); - - 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']) { @@ -869,7 +861,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 38abc84252bf7241537f1acb97698465835df62c Mon Sep 17 00:00:00 2001 From: Denis Pushkarev Date: Tue, 3 Oct 2023 07:37:01 +0700 Subject: [PATCH 037/388] 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 389fc7164c58..f0bb0a99be59 100644 --- a/packages/core-js-compat/src/data.mjs +++ b/packages/core-js-compat/src/data.mjs @@ -2475,9 +2475,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 31ba7f45b415..39e666d8d094 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 c180bc20b519..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 typedArraySpeciesConstructor = require('../internals/typed-array-species-constructor'); - -var aTypedArray = ArrayBufferViewCore.aTypedArray; -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, typedArraySpeciesConstructor); -}, 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 b2dd9d4773f8..9d25cd3931d7 100644 --- a/packages/core-js/stage/2.js +++ b/packages/core-js/stage/2.js @@ -8,7 +8,6 @@ require('../proposals/map-upsert-stage-2'); 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 71daddbee637..2a13ebc8801d 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.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.upsert', 'web.url-search-params', diff --git a/tests/entries/unit.mjs b/tests/entries/unit.mjs index c5eb32cdc2d8..d9acff8f7d01 100644 --- a/tests/entries/unit.mjs +++ b/tests/entries/unit.mjs @@ -860,7 +860,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'); @@ -1039,7 +1038,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 b046fd7498f50dbbca862eef451cd5fb8e58d66c Mon Sep 17 00:00:00 2001 From: Denis Pushkarev Date: Tue, 3 Oct 2023 07:51:35 +0700 Subject: [PATCH 038/388] 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 f0bb0a99be59..20a9b1e0d190 100644 --- a/packages/core-js-compat/src/data.mjs +++ b/packages/core-js-compat/src/data.mjs @@ -2103,9 +2103,6 @@ export const data = { // https://bugs.webkit.org/show_bug.cgi?id=271703 safari: '18.0', // '16.4', }, - // 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 39e666d8d094..b1e3edae9ded 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 9385df442a85..a55b0d4b9b8d 100644 --- a/scripts/bundle-package/bundle-package.mjs +++ b/scripts/bundle-package/bundle-package.mjs @@ -56,7 +56,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 2a13ebc8801d..bcbbd2f66079 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 d9acff8f7d01..239648a68940 100644 --- a/tests/entries/unit.mjs +++ b/tests/entries/unit.mjs @@ -714,13 +714,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'); @@ -828,12 +826,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 8b89720bc546627f3c021b76daf48bd9ba7c009a Mon Sep 17 00:00:00 2001 From: Denis Pushkarev Date: Tue, 3 Oct 2023 07:59:10 +0700 Subject: [PATCH 039/388] 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 20a9b1e0d190..11f4da326ba5 100644 --- a/packages/core-js-compat/src/data.mjs +++ b/packages/core-js-compat/src/data.mjs @@ -2466,9 +2466,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 b1e3edae9ded..2ffd5804e020 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 deb92308ef1b..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 fromSpeciesAndList = require('../internals/typed-array-from-species-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 fromSpeciesAndList(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 a55b0d4b9b8d..f1a9669fd0ae 100644 --- a/scripts/bundle-package/bundle-package.mjs +++ b/scripts/bundle-package/bundle-package.mjs @@ -60,7 +60,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 bcbbd2f66079..7f1ab577189f 100644 --- a/tests/compat-data/tests-coverage.mjs +++ b/tests/compat-data/tests-coverage.mjs @@ -53,7 +53,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.upsert', 'web.url-search-params', diff --git a/tests/entries/unit.mjs b/tests/entries/unit.mjs index 239648a68940..55caa9ece6f2 100644 --- a/tests/entries/unit.mjs +++ b/tests/entries/unit.mjs @@ -1028,7 +1028,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 c653848d7d72f89793b434141070879d3956cacc Mon Sep 17 00:00:00 2001 From: Denis Pushkarev Date: Tue, 3 Oct 2023 08:13:46 +0700 Subject: [PATCH 040/388] 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 | 2 - .../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 | 68 ------------------- .../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 | 2 - .../esnext.typed-array.to-spliced.js | 36 ---------- 13 files changed, 136 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 11f4da326ba5..b8bdc762f114 100644 --- a/packages/core-js-compat/src/data.mjs +++ b/packages/core-js-compat/src/data.mjs @@ -2468,9 +2468,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': { }, 'esnext.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 2ffd5804e020..3fe83e4afb9b 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 ee2900ac97b8..57ed864cbce0 100644 --- a/packages/core-js/actual/typed-array/index.js +++ b/packages/core-js/actual/typed-array/index.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/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 9ed5450dd1db..000000000000 --- a/packages/core-js/modules/esnext.typed-array.to-spliced.js +++ /dev/null @@ -1,68 +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 fails = require('../internals/fails'); - -var aTypedArray = ArrayBufferViewCore.aTypedArray; -var getTypedArrayConstructor = ArrayBufferViewCore.getTypedArrayConstructor; -var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod; -var max = Math.max; -var min = Math.min; - -// some early implementations, like WebKit, does not follow the final semantic -var PROPER_ORDER = !fails(function () { - // eslint-disable-next-line es/no-typed-arrays -- required for testing - var array = new Int8Array([1]); - - var spliced = array.toSpliced(1, 0, { - valueOf: function () { - array[0] = 2; - return 3; - } - }); - - return spliced[0] !== 2 || spliced[1] !== 3; -}); - -// `%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; -}, !PROPER_ORDER); 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 0cd075f5d7e4..507919267284 100644 --- a/packages/core-js/stage/3.js +++ b/packages/core-js/stage/3.js @@ -10,7 +10,6 @@ require('../proposals/json-parse-with-source'); require('../proposals/math-sum'); require('../proposals/regexp-escaping'); // 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 7f1ab577189f..7c737ba4ca4e 100644 --- a/tests/compat-data/tests-coverage.mjs +++ b/tests/compat-data/tests-coverage.mjs @@ -53,7 +53,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.upsert', 'web.url-search-params', 'web.url', diff --git a/tests/entries/unit.mjs b/tests/entries/unit.mjs index 55caa9ece6f2..9ab5d6e9c5ea 100644 --- a/tests/entries/unit.mjs +++ b/tests/entries/unit.mjs @@ -862,7 +862,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'); @@ -1023,7 +1022,6 @@ for (const NS of ['actual', 'full', 'features']) { load(NS, 'typed-array/set-from-hex'); load(NS, 'typed-array/to-base64'); load(NS, 'typed-array/to-hex'); - load(NS, 'typed-array/to-spliced'); } for (const NS of ['full', 'features']) { 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 bb0493b19518df35089e9f35315c13d7ad9e366f Mon Sep 17 00:00:00 2001 From: Denis Pushkarev Date: Tue, 3 Oct 2023 08:28:18 +0700 Subject: [PATCH 041/388] 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 ----------- .../modules/esnext.array.from-async.js | 49 ++++++++++- .../modules/esnext.typed-array.from-async.js | 25 ------ .../core-js/proposals/array-from-async.js | 2 - tests/builder/builder.mjs | 2 +- tests/compat-data/tests-coverage.mjs | 1 - tests/entries/unit.mjs | 1 - .../esnext.typed-array.from-async.js | 84 ------------------- 14 files changed, 48 insertions(+), 176 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 b8bdc762f114..55f0f879a01d 100644 --- a/packages/core-js-compat/src/data.mjs +++ b/packages/core-js-compat/src/data.mjs @@ -2463,9 +2463,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 3fe83e4afb9b..c634d14e6a04 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/esnext.array.from-async.js b/packages/core-js/modules/esnext.array.from-async.js index 3d483137aa0e..ad057464c194 100644 --- a/packages/core-js/modules/esnext.array.from-async.js +++ b/packages/core-js/modules/esnext.array.from-async.js @@ -1,9 +1,38 @@ '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 getVirtual = require('../internals/entry-virtual'); +var getBuiltIn = require('../internals/get-built-in'); +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 nativeFromAsync = Array.fromAsync; +var arrayIterator = uncurryThis(getVirtual('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); +}; + // https://bugs.webkit.org/show_bug.cgi?id=271703 var INCORRECT_CONSTRUCTURING = !nativeFromAsync || fails(function () { var counter = 0; @@ -17,5 +46,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/builder/builder.mjs b/tests/builder/builder.mjs index 0fccd52891e4..d3ec5821cb2a 100644 --- a/tests/builder/builder.mjs +++ b/tests/builder/builder.mjs @@ -10,7 +10,7 @@ const polyfills = await builder({ 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-buffer.detached.js';"), 'actual node 16 #3'); +ok(polyfills.includes("import 'core-js/modules/esnext.array.from-async.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'); diff --git a/tests/compat-data/tests-coverage.mjs b/tests/compat-data/tests-coverage.mjs index 7c737ba4ca4e..480fbe58ef03 100644 --- a/tests/compat-data/tests-coverage.mjs +++ b/tests/compat-data/tests-coverage.mjs @@ -52,7 +52,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.upsert', 'web.url-search-params', 'web.url', diff --git a/tests/entries/unit.mjs b/tests/entries/unit.mjs index 9ab5d6e9c5ea..491502525117 100644 --- a/tests/entries/unit.mjs +++ b/tests/entries/unit.mjs @@ -1025,7 +1025,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-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 6be5bb85940241448523529b3e4600d0512d6ea7 Mon Sep 17 00:00:00 2001 From: Denis Pushkarev Date: Tue, 3 Oct 2023 08:37:17 +0700 Subject: [PATCH 042/388] 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 55f0f879a01d..63640d8fdd30 100644 --- a/packages/core-js-compat/src/data.mjs +++ b/packages/core-js-compat/src/data.mjs @@ -2125,9 +2125,6 @@ export const data = { }, 'esnext.async-iterator.constructor': { }, - // TODO: Remove from `core-js@4` - 'esnext.async-iterator.as-indexed-pairs': { - }, 'esnext.async-iterator.async-dispose': { }, '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 c634d14e6a04..67ba80e22de4 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 480fbe58ef03..ad7e68b9b646 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 491502525117..6ce4216caf2d 100644 --- a/tests/entries/unit.mjs +++ b/tests/entries/unit.mjs @@ -721,7 +721,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 ca7ea67ea3617b1b6d26f04345fcd4ab4ee9a626 Mon Sep 17 00:00:00 2001 From: Denis Pushkarev Date: Tue, 3 Oct 2023 08:48:09 +0700 Subject: [PATCH 043/388] 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 63640d8fdd30..34c55ff816ff 100644 --- a/packages/core-js-compat/src/data.mjs +++ b/packages/core-js-compat/src/data.mjs @@ -2141,8 +2141,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 67ba80e22de4..108cf608e583 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 6e333f950a19..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-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 da1a33026f8e..a8a9e5c0682a 100644 --- a/packages/core-js/modules/esnext.async-iterator.map.js +++ b/packages/core-js/modules/esnext.async-iterator.map.js @@ -1,11 +1,61 @@ '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 IS_PURE = require('../internals/is-pure'); +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: IS_PURE }, { - 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 ad7e68b9b646..11419c09088c 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 6ce4216caf2d..02a9e2f84220 100644 --- a/tests/entries/unit.mjs +++ b/tests/entries/unit.mjs @@ -721,7 +721,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 8a03efa1f0a617fdd2e90e45a66f00a12dd490cd Mon Sep 17 00:00:00 2001 From: Denis Pushkarev Date: Tue, 3 Oct 2023 08:57:27 +0700 Subject: [PATCH 044/388] 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 - .../core-js/internals/iterator-indexed.js | 13 ----------- .../esnext.iterator.as-indexed-pairs.js | 10 --------- .../modules/esnext.iterator.indexed.js | 11 ++++++++-- .../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 ------------------- 12 files changed, 9 insertions(+), 86 deletions(-) delete mode 100644 packages/core-js/full/iterator/as-indexed-pairs.js delete mode 100644 packages/core-js/internals/iterator-indexed.js delete mode 100644 packages/core-js/modules/esnext.iterator.as-indexed-pairs.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 34c55ff816ff..83f3bf09063f 100644 --- a/packages/core-js-compat/src/data.mjs +++ b/packages/core-js-compat/src/data.mjs @@ -2187,9 +2187,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.dispose': { }, // 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 108cf608e583..6e54742ff268 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 c6caf46dc02b..14c44571acf1 100644 --- a/packages/core-js/full/iterator/index.js +++ b/packages/core-js/full/iterator/index.js @@ -2,7 +2,6 @@ var parent = require('../../actual/iterator'); require('../../modules/esnext.iterator.range'); // 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/internals/iterator-indexed.js b/packages/core-js/internals/iterator-indexed.js deleted file mode 100644 index e7e667664ae9..000000000000 --- a/packages/core-js/internals/iterator-indexed.js +++ /dev/null @@ -1,13 +0,0 @@ -'use strict'; -var call = require('../internals/function-call'); -var map = require('../internals/iterator-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/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 index 3d44a3c4feda..27489b29250c 100644 --- a/packages/core-js/modules/esnext.iterator.indexed.js +++ b/packages/core-js/modules/esnext.iterator.indexed.js @@ -1,10 +1,17 @@ 'use strict'; // TODO: Remove from `core-js@4` var $ = require('../internals/export'); -var indexed = require('../internals/iterator-indexed'); +var call = require('../internals/function-call'); +var map = require('../internals/iterator-map'); + +var callback = function (value, counter) { + return [counter, value]; +}; // `Iterator.prototype.indexed` method // https://github.com/tc39/proposal-iterator-helpers $({ target: 'Iterator', proto: true, real: true, forced: true }, { - indexed: indexed + indexed: 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 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 11419c09088c..e8eb742cb682 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.map.update-or-insert', 'esnext.map.upsert', diff --git a/tests/entries/unit.mjs b/tests/entries/unit.mjs index 02a9e2f84220..18306e8e7db0 100644 --- a/tests/entries/unit.mjs +++ b/tests/entries/unit.mjs @@ -733,7 +733,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(load(NS, 'map/delete-all')(new Map(), 1, 2) === false); 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 b1e02ae7c8fbfb00a852246f8f40e20a13acf87f Mon Sep 17 00:00:00 2001 From: Denis Pushkarev Date: Tue, 3 Oct 2023 09:06:22 +0700 Subject: [PATCH 045/388] 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 -------- packages/core-js/internals/iterator-map.js | 24 ------------------- packages/core-js/modules/es.iterator.map.js | 22 +++++++++++++++-- .../modules/esnext.iterator.indexed.js | 17 ------------- .../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 ----------------- 13 files changed, 20 insertions(+), 113 deletions(-) delete mode 100644 packages/core-js/full/iterator/indexed.js delete mode 100644 packages/core-js/internals/iterator-map.js delete mode 100644 packages/core-js/modules/esnext.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 83f3bf09063f..72a9d6b58065 100644 --- a/packages/core-js-compat/src/data.mjs +++ b/packages/core-js-compat/src/data.mjs @@ -2203,8 +2203,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 6e54742ff268..bd1c331f9428 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 14c44571acf1..9a5600b7ab45 100644 --- a/packages/core-js/full/iterator/index.js +++ b/packages/core-js/full/iterator/index.js @@ -1,7 +1,5 @@ 'use strict'; var parent = require('../../actual/iterator'); require('../../modules/esnext.iterator.range'); -// 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-map.js b/packages/core-js/internals/iterator-map.js deleted file mode 100644 index 005abe03b2f5..000000000000 --- a/packages/core-js/internals/iterator-map.js +++ /dev/null @@ -1,24 +0,0 @@ -'use strict'; -var call = require('../internals/function-call'); -var aCallable = require('../internals/a-callable'); -var anObject = require('../internals/an-object'); -var getIteratorDirect = require('../internals/get-iterator-direct'); -var createIteratorProxy = require('../internals/iterator-create-proxy'); -var callWithSafeIterationClosing = require('../internals/call-with-safe-iteration-closing'); - -var IteratorProxy = createIteratorProxy(function () { - var iterator = this.iterator; - var result = anObject(call(this.next, iterator)); - var done = this.done = !!result.done; - if (!done) return callWithSafeIterationClosing(iterator, this.mapper, [result.value, this.counter++], true); -}); - -// `Iterator.prototype.map` method -// https://github.com/tc39/proposal-iterator-helpers -module.exports = function map(mapper) { - anObject(this); - aCallable(mapper); - return new IteratorProxy(getIteratorDirect(this), { - mapper: mapper - }); -}; diff --git a/packages/core-js/modules/es.iterator.map.js b/packages/core-js/modules/es.iterator.map.js index 1204e678318c..3c74961e9bd4 100644 --- a/packages/core-js/modules/es.iterator.map.js +++ b/packages/core-js/modules/es.iterator.map.js @@ -1,10 +1,28 @@ 'use strict'; var $ = require('../internals/export'); -var map = require('../internals/iterator-map'); +var call = require('../internals/function-call'); +var aCallable = require('../internals/a-callable'); +var anObject = require('../internals/an-object'); +var getIteratorDirect = require('../internals/get-iterator-direct'); +var createIteratorProxy = require('../internals/iterator-create-proxy'); +var callWithSafeIterationClosing = require('../internals/call-with-safe-iteration-closing'); var IS_PURE = require('../internals/is-pure'); +var IteratorProxy = createIteratorProxy(function () { + var iterator = this.iterator; + var result = anObject(call(this.next, iterator)); + var done = this.done = !!result.done; + if (!done) return callWithSafeIterationClosing(iterator, this.mapper, [result.value, this.counter++], true); +}); + // `Iterator.prototype.map` method // https://github.com/tc39/proposal-iterator-helpers $({ target: 'Iterator', proto: true, real: true, forced: IS_PURE }, { - map: map + map: function map(mapper) { + anObject(this); + aCallable(mapper); + return new IteratorProxy(getIteratorDirect(this), { + mapper: mapper + }); + } }); 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 27489b29250c..000000000000 --- a/packages/core-js/modules/esnext.iterator.indexed.js +++ /dev/null @@ -1,17 +0,0 @@ -'use strict'; -// TODO: Remove from `core-js@4` -var $ = require('../internals/export'); -var call = require('../internals/function-call'); -var map = require('../internals/iterator-map'); - -var callback = function (value, counter) { - return [counter, value]; -}; - -// `Iterator.prototype.indexed` method -// https://github.com/tc39/proposal-iterator-helpers -$({ target: 'Iterator', proto: true, real: true, forced: true }, { - indexed: 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 9d25cd3931d7..40103ec9b170 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/set-methods'); require('../proposals/symbol-predicates'); require('../proposals/using-statement'); diff --git a/tests/compat-data/tests-coverage.mjs b/tests/compat-data/tests-coverage.mjs index e8eb742cb682..bb090505fa6b 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.map.update-or-insert', 'esnext.map.upsert', 'esnext.number.range', diff --git a/tests/entries/unit.mjs b/tests/entries/unit.mjs index 18306e8e7db0..64ac6410d495 100644 --- a/tests/entries/unit.mjs +++ b/tests/entries/unit.mjs @@ -733,7 +733,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(load(NS, 'map/delete-all')(new Map(), 1, 2) === false); ok(load(NS, 'map/emplace')(new Map([[1, 2]]), 1, { update: it => it ** 2 }) === 4); @@ -874,7 +873,6 @@ for (PATH of ['core-js-pure', 'core-js']) { load('proposals/function-is-callable-is-constructor'); load('proposals/function-un-this'); load('proposals/global-this'); - 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 9df6f059679ae45e47b2ffe4fef58dfbb736284f Mon Sep 17 00:00:00 2001 From: Denis Pushkarev Date: Tue, 3 Oct 2023 19:17:39 +0700 Subject: [PATCH 046/388] 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 72a9d6b58065..2fb38e24397c 100644 --- a/packages/core-js-compat/src/data.mjs +++ b/packages/core-js-compat/src/data.mjs @@ -2108,9 +2108,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 48d49977ef0a..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/keithamus/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 bb090505fa6b..65974457bf10 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 64ac6410d495..051a6ea31b2a 100644 --- a/tests/entries/unit.mjs +++ b/tests/entries/unit.mjs @@ -717,7 +717,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 03afa7e78cb1d6c0271841f1221937c8cbf061d4 Mon Sep 17 00:00:00 2001 From: Denis Pushkarev Date: Tue, 3 Oct 2023 19:32:34 +0700 Subject: [PATCH 047/388] 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 2fb38e24397c..c08fa99f4f5f 100644 --- a/packages/core-js-compat/src/data.mjs +++ b/packages/core-js-compat/src/data.mjs @@ -2107,9 +2107,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 c1704cbf05ec..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/keithamus/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 621edd208397..00fee1858476 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 65974457bf10..5bac6f1de598 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.map.update-or-insert', diff --git a/tests/entries/unit.mjs b/tests/entries/unit.mjs index 051a6ea31b2a..6d0d76018e9c 100644 --- a/tests/entries/unit.mjs +++ b/tests/entries/unit.mjs @@ -716,7 +716,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'); @@ -850,7 +849,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 8bbe49ebd82e56e9db340f67328cf110f4970c62 Mon Sep 17 00:00:00 2001 From: Denis Pushkarev Date: Wed, 4 Oct 2023 01:49:20 +0700 Subject: [PATCH 048/388] 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 c08fa99f4f5f..1858c706f582 100644 --- a/packages/core-js-compat/src/data.mjs +++ b/packages/core-js-compat/src/data.mjs @@ -2177,9 +2177,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.dispose': { }, diff --git a/packages/core-js-compat/src/modules-by-versions.mjs b/packages/core-js-compat/src/modules-by-versions.mjs index bd1c331f9428..be434d2a2af1 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 88cb32d66cf5..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-un-this -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 5bac6f1de598..0b27377edb42 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.map.update-or-insert', 'esnext.map.upsert', 'esnext.number.range', diff --git a/tests/entries/unit.mjs b/tests/entries/unit.mjs index 6d0d76018e9c..69f5f6611b15 100644 --- a/tests/entries/unit.mjs +++ b/tests/entries/unit.mjs @@ -729,8 +729,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(load(NS, 'map/delete-all')(new Map(), 1, 2) === false); ok(load(NS, 'map/emplace')(new Map([[1, 2]]), 1, { update: it => it ** 2 }) === 4); @@ -831,12 +829,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'); @@ -868,7 +860,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/iterator-helpers-stage-3'); load('proposals/iterator-helpers-stage-3-2'); 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 48cc414a20c32fdb83c9e632b6c0d077d2e5b885 Mon Sep 17 00:00:00 2001 From: Denis Pushkarev Date: Wed, 4 Oct 2023 02:07:20 +0700 Subject: [PATCH 049/388] 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 1858c706f582..9b779df8b014 100644 --- a/packages/core-js-compat/src/data.mjs +++ b/packages/core-js-compat/src/data.mjs @@ -2433,9 +2433,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 be434d2a2af1..0cdf45a4061b 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 40103ec9b170..74aaba28cf91 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/set-methods'); require('../proposals/symbol-predicates'); require('../proposals/using-statement'); diff --git a/tests/compat-data/tests-coverage.mjs b/tests/compat-data/tests-coverage.mjs index 0b27377edb42..df2b488377fa 100644 --- a/tests/compat-data/tests-coverage.mjs +++ b/tests/compat-data/tests-coverage.mjs @@ -42,7 +42,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.upsert', diff --git a/tests/entries/unit.mjs b/tests/entries/unit.mjs index 69f5f6611b15..28d39ecc4697 100644 --- a/tests/entries/unit.mjs +++ b/tests/entries/unit.mjs @@ -792,7 +792,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')); @@ -851,7 +850,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 2361845fe6375d5c69c507e33b28637941928cf4 Mon Sep 17 00:00:00 2001 From: Denis Pushkarev Date: Wed, 4 Oct 2023 02:16:34 +0700 Subject: [PATCH 050/388] 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 9b779df8b014..33c43ab7ec6d 100644 --- a/packages/core-js-compat/src/data.mjs +++ b/packages/core-js-compat/src/data.mjs @@ -2436,9 +2436,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 f1a9669fd0ae..3a137dde44e8 100644 --- a/scripts/bundle-package/bundle-package.mjs +++ b/scripts/bundle-package/bundle-package.mjs @@ -58,7 +58,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 df2b488377fa..678dfc4af5d5 100644 --- a/tests/compat-data/tests-coverage.mjs +++ b/tests/compat-data/tests-coverage.mjs @@ -42,7 +42,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.upsert', 'web.url-search-params', diff --git a/tests/entries/unit.mjs b/tests/entries/unit.mjs index 28d39ecc4697..6c580c670062 100644 --- a/tests/entries/unit.mjs +++ b/tests/entries/unit.mjs @@ -793,7 +793,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 a764c8dc561b8aa016750ae0bc2f81dffe420ab4 Mon Sep 17 00:00:00 2001 From: Denis Pushkarev Date: Wed, 4 Oct 2023 02:22:32 +0700 Subject: [PATCH 051/388] 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 33c43ab7ec6d..3fbc52d23bd1 100644 --- a/packages/core-js-compat/src/data.mjs +++ b/packages/core-js-compat/src/data.mjs @@ -2435,9 +2435,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 0cdf45a4061b..a0009c60b5a2 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 3a137dde44e8..df144c1d64e3 100644 --- a/scripts/bundle-package/bundle-package.mjs +++ b/scripts/bundle-package/bundle-package.mjs @@ -58,7 +58,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 678dfc4af5d5..88d3fa6939f1 100644 --- a/tests/compat-data/tests-coverage.mjs +++ b/tests/compat-data/tests-coverage.mjs @@ -42,7 +42,6 @@ const ignore = new Set([ 'esnext.symbol.is-registered', 'esnext.symbol.is-well-known', 'esnext.symbol.matcher', - 'esnext.symbol.replace-all', 'esnext.weak-map.upsert', 'web.url-search-params', 'web.url', diff --git a/tests/entries/unit.mjs b/tests/entries/unit.mjs index 6c580c670062..f0b968820341 100644 --- a/tests/entries/unit.mjs +++ b/tests/entries/unit.mjs @@ -793,7 +793,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 99fa95c22d2ec4c2f0988c43a0315874ec4adc70 Mon Sep 17 00:00:00 2001 From: Denis Pushkarev Date: Wed, 4 Oct 2023 02:33:15 +0700 Subject: [PATCH 052/388] 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 3fbc52d23bd1..22bb5b9994f2 100644 --- a/packages/core-js-compat/src/data.mjs +++ b/packages/core-js-compat/src/data.mjs @@ -2418,9 +2418,6 @@ export const data = { }, '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 a0009c60b5a2..3f3e6903a212 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 88d3fa6939f1..b91b1a089b5c 100644 --- a/tests/compat-data/tests-coverage.mjs +++ b/tests/compat-data/tests-coverage.mjs @@ -39,7 +39,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.upsert', diff --git a/tests/entries/unit.mjs b/tests/entries/unit.mjs index f0b968820341..51f6b04ab43f 100644 --- a/tests/entries/unit.mjs +++ b/tests/entries/unit.mjs @@ -789,7 +789,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 77414ebf5cd31d831cdcce9cdc3c98e5df423d19 Mon Sep 17 00:00:00 2001 From: Denis Pushkarev Date: Wed, 4 Oct 2023 02:44:21 +0700 Subject: [PATCH 053/388] 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 22bb5b9994f2..a4bbda343a5e 100644 --- a/packages/core-js-compat/src/data.mjs +++ b/packages/core-js-compat/src/data.mjs @@ -2422,9 +2422,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 3f3e6903a212..c8906e654735 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 74aaba28cf91..5c326d5bb353 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/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 b91b1a089b5c..d13150d17943 100644 --- a/tests/compat-data/tests-coverage.mjs +++ b/tests/compat-data/tests-coverage.mjs @@ -39,7 +39,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.upsert', 'web.url-search-params', diff --git a/tests/entries/unit.mjs b/tests/entries/unit.mjs index 51f6b04ab43f..dabb6db74816 100644 --- a/tests/entries/unit.mjs +++ b/tests/entries/unit.mjs @@ -789,7 +789,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); @@ -896,7 +895,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 c9821ddc4141086fb22de78b6efb1779ea009930 Mon Sep 17 00:00:00 2001 From: Denis Pushkarev Date: Wed, 4 Oct 2023 02:56:22 +0700 Subject: [PATCH 054/388] 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 a4bbda343a5e..2ad7f3f49680 100644 --- a/packages/core-js-compat/src/data.mjs +++ b/packages/core-js-compat/src/data.mjs @@ -2145,9 +2145,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 c8906e654735..1dc450cce3b4 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 d13150d17943..ca73731cc739 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.map.update-or-insert', 'esnext.map.upsert', 'esnext.number.range', 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 dabb6db74816..6e85dc13537c 100644 --- a/tests/entries/unit.mjs +++ b/tests/entries/unit.mjs @@ -719,8 +719,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 dac76ae4f4dca3f1de4ee2f9cdd96a0945c83291 Mon Sep 17 00:00:00 2001 From: Denis Pushkarev Date: Wed, 4 Oct 2023 03:07:18 +0700 Subject: [PATCH 055/388] 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 | 5 +- 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 | 70 ------------ tests/unit-pure/esnext.number.range.js | 70 ------------ 13 files changed, 104 insertions(+), 282 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 2ad7f3f49680..45527694281a 100644 --- a/packages/core-js-compat/src/data.mjs +++ b/packages/core-js-compat/src/data.mjs @@ -2285,9 +2285,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 1dc450cce3b4..1bfd231fd7b2 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 d06e9c1e6c81..f71d892822ca 100644 --- a/packages/core-js/full/number/index.js +++ b/packages/core-js/full/number/index.js @@ -1,8 +1,5 @@ 'use strict'; var parent = require('../../actual/number'); +require('../../modules/esnext.number.from-string'); module.exports = parent; - -require('../../modules/es.object.to-string'); -require('../../modules/esnext.number.from-string'); -require('../../modules/esnext.number.range'); 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 00fee1858476..c5969273b5d8 100644 --- a/packages/core-js/stage/1.js +++ b/packages/core-js/stage/1.js @@ -18,7 +18,6 @@ require('../proposals/string-cooked'); // TODO: Obsolete versions, remove from `core-js@4`: require('../proposals/array-from-async'); require('../proposals/map-upsert'); -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 ca73731cc739..a0b1746bfcac 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.map.update-or-insert', 'esnext.map.upsert', - 'esnext.number.range', 'esnext.observable', 'esnext.observable.constructor', 'esnext.observable.from', diff --git a/tests/entries/unit.mjs b/tests/entries/unit.mjs index 6e85dc13537c..40668785795a 100644 --- a/tests/entries/unit.mjs +++ b/tests/entries/unit.mjs @@ -756,7 +756,6 @@ for (PATH of ['core-js-pure', 'core-js']) { ok(load(NS, 'map/some')(new Map([[1, 2], [2, 3], [3, 4]]), it => it % 2) === true); ok(load(NS, 'map/update')(new Map([[1, 2]]), 1, it => it * 2).get(1) === 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'); @@ -865,7 +864,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 58db53ade2eb..000000000000 --- a/tests/unit-global/esnext.number.range.js +++ /dev/null @@ -1,70 +0,0 @@ -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(2 ** 53 - 1, 2 ** 53, { inclusive: true })), - [9007199254740991, 9007199254740992], - ); - 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 75d82fd65647..000000000000 --- a/tests/unit-pure/esnext.number.range.js +++ /dev/null @@ -1,70 +0,0 @@ -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(2 ** 53 - 1, 2 ** 53, { inclusive: true })), - [9007199254740991, 9007199254740992], - ); - 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 e86e43f0c8911ce44375bbf4b7076f67ba6d7fcf Mon Sep 17 00:00:00 2001 From: Denis Pushkarev Date: Wed, 4 Oct 2023 03:30:26 +0700 Subject: [PATCH 056/388] 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 45527694281a..0e57576bd3f4 100644 --- a/packages/core-js-compat/src/data.mjs +++ b/packages/core-js-compat/src/data.mjs @@ -2254,9 +2254,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': { }, 'esnext.math.clamp': { diff --git a/packages/core-js-compat/src/modules-by-versions.mjs b/packages/core-js-compat/src/modules-by-versions.mjs index 1bfd231fd7b2..88006ee6220e 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 13bc239eafea..b0dff82b4f44 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.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 df144c1d64e3..fa1473e4a969 100644 --- a/scripts/bundle-package/bundle-package.mjs +++ b/scripts/bundle-package/bundle-package.mjs @@ -56,7 +56,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 a0b1746bfcac..1870a1c8b972 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.map.update-or-insert', 'esnext.map.upsert', 'esnext.observable', 'esnext.observable.constructor', diff --git a/tests/entries/unit.mjs b/tests/entries/unit.mjs index 40668785795a..9b78602708f6 100644 --- a/tests/entries/unit.mjs +++ b/tests/entries/unit.mjs @@ -741,7 +741,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 3039281665c303d6bdcd81f3f2d0bb2c35cc86c9 Mon Sep 17 00:00:00 2001 From: Denis Pushkarev Date: Wed, 4 Oct 2023 03:44:00 +0700 Subject: [PATCH 057/388] 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 0e57576bd3f4..19e09a342929 100644 --- a/packages/core-js-compat/src/data.mjs +++ b/packages/core-js-compat/src/data.mjs @@ -2253,9 +2253,6 @@ export const data = { }, 'esnext.map.update': { }, - // TODO: Remove from `core-js@4` - 'esnext.map.upsert': { - }, '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 88006ee6220e..c17d2ea3f820 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 b0dff82b4f44..28ff38ec4e84 100644 --- a/packages/core-js/full/map/index.js +++ b/packages/core-js/full/map/index.js @@ -17,7 +17,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 fa1473e4a969..526d2f4eaa97 100644 --- a/scripts/bundle-package/bundle-package.mjs +++ b/scripts/bundle-package/bundle-package.mjs @@ -56,7 +56,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 1870a1c8b972..78ec082c9fc1 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.map.upsert', 'esnext.observable', 'esnext.observable.constructor', 'esnext.observable.from', diff --git a/tests/entries/unit.mjs b/tests/entries/unit.mjs index 9b78602708f6..2954f56db6a5 100644 --- a/tests/entries/unit.mjs +++ b/tests/entries/unit.mjs @@ -741,7 +741,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); @@ -856,7 +855,6 @@ for (PATH of ['core-js-pure', 'core-js']) { load('proposals/iterator-range'); 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/math-extensions'); 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 ad3691749a391a330ada247fa6bcc04f8cdcdbf5 Mon Sep 17 00:00:00 2001 From: Denis Pushkarev Date: Wed, 4 Oct 2023 03:57:30 +0700 Subject: [PATCH 058/388] 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 | 1 - 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, 143 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 19e09a342929..e570107a2cdc 100644 --- a/packages/core-js-compat/src/data.mjs +++ b/packages/core-js-compat/src/data.mjs @@ -2447,9 +2447,6 @@ export const data = { }, 'esnext.weak-map.emplace': { }, - // 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 c17d2ea3f820..7e2ca6f186e0 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 5244cd344936..a4624ef480da 100644 --- a/packages/core-js/full/weak-map/index.js +++ b/packages/core-js/full/weak-map/index.js @@ -5,7 +5,5 @@ require('../../modules/esnext.weak-map.emplace'); require('../../modules/esnext.weak-map.from'); require('../../modules/esnext.weak-map.of'); 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 c5969273b5d8..c7264339269c 100644 --- a/packages/core-js/stage/1.js +++ b/packages/core-js/stage/1.js @@ -17,7 +17,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'); 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 526d2f4eaa97..1523bbd23a10 100644 --- a/scripts/bundle-package/bundle-package.mjs +++ b/scripts/bundle-package/bundle-package.mjs @@ -55,9 +55,6 @@ await bundle(DENO ? { bundled: 'index', options: { targets: { deno: '1.0' }, - exclude: [ - 'esnext.weak-map.upsert', // obsolete - ], }, } : { bundled: 'index', diff --git a/tests/compat-data/tests-coverage.mjs b/tests/compat-data/tests-coverage.mjs index 78ec082c9fc1..6536774feb9b 100644 --- a/tests/compat-data/tests-coverage.mjs +++ b/tests/compat-data/tests-coverage.mjs @@ -36,7 +36,6 @@ const ignore = new Set([ 'esnext.set.symmetric-difference', 'esnext.set.union', 'esnext.symbol.matcher', - 'esnext.weak-map.upsert', 'web.url-search-params', 'web.url', ]); diff --git a/tests/entries/unit.mjs b/tests/entries/unit.mjs index 2954f56db6a5..da002117b739 100644 --- a/tests/entries/unit.mjs +++ b/tests/entries/unit.mjs @@ -788,7 +788,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); @@ -855,7 +854,6 @@ for (PATH of ['core-js-pure', 'core-js']) { load('proposals/iterator-range'); load('proposals/json-parse-with-source'); load('proposals/keys-composition'); - load('proposals/map-upsert'); load('proposals/map-upsert-stage-2'); load('proposals/math-extensions'); load('proposals/math-signbit'); 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 2a637db67235283a5fa065cfa58a06ece8b82833 Mon Sep 17 00:00:00 2001 From: Denis Pushkarev Date: Wed, 4 Oct 2023 04:11:29 +0700 Subject: [PATCH 059/388] 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 e570107a2cdc..ad9a787dd847 100644 --- a/packages/core-js-compat/src/data.mjs +++ b/packages/core-js-compat/src/data.mjs @@ -2329,9 +2329,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 cb215425c11a..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://github.com/tc39/proposal-set-methods -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(O, 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 074b3911311f..99ac80f97e77 100644 --- a/packages/core-js/modules/es.set.difference.v2.js +++ b/packages/core-js/modules/es.set.difference.v2.js @@ -1,10 +1,30 @@ '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 setMethodAcceptSetLike = require('../internals/set-method-accept-set-like'); +var has = SetHelpers.has; +var remove = SetHelpers.remove; + // `Set.prototype.difference` method // https://github.com/tc39/proposal-set-methods $({ target: 'Set', proto: true, real: true, forced: !setMethodAcceptSetLike('difference') }, { - 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(O, 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 6536774feb9b..1a887ade2589 100644 --- a/tests/compat-data/tests-coverage.mjs +++ b/tests/compat-data/tests-coverage.mjs @@ -28,7 +28,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 62e0cec4daf3..003ed843c805 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.throws(() => new Set([1, 2, 3]).difference(), TypeError); assert.throws(() => difference.call({}, [1, 2, 3]), TypeError); diff --git a/tests/unit-pure/es.set.difference.js b/tests/unit-pure/es.set.difference.js index 1d9d572bc1fd..113e9bff6f2f 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.throws(() => new Set([1, 2, 3]).difference(), TypeError); assert.throws(() => difference.call({}, [1, 2, 3]), TypeError); From 5f7058ac5835c361875ba7e05f8190d5916e90ec Mon Sep 17 00:00:00 2001 From: Denis Pushkarev Date: Wed, 4 Oct 2023 04:25:27 +0700 Subject: [PATCH 060/388] 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 | 31 +++++++++++++++++-- .../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, 33 insertions(+), 75 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 ad9a787dd847..8e3b8be9be3f 100644 --- a/packages/core-js-compat/src/data.mjs +++ b/packages/core-js-compat/src/data.mjs @@ -2340,9 +2340,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 fd926f2aab07..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://github.com/tc39/proposal-set-methods -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 226d7ee97cfa..850594c56ed8 100644 --- a/packages/core-js/modules/es.set.intersection.v2.js +++ b/packages/core-js/modules/es.set.intersection.v2.js @@ -1,16 +1,41 @@ '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') || fails(function () { - // eslint-disable-next-line es/no-array-from, es/no-set -- 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'; }); // `Set.prototype.intersection` method // https://github.com/tc39/proposal-set-methods $({ 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 1a887ade2589..d8826b502b7b 100644 --- a/tests/compat-data/tests-coverage.mjs +++ b/tests/compat-data/tests-coverage.mjs @@ -28,7 +28,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 b033214384c6..1900639faa49 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.throws(() => new Set([1, 2, 3]).intersection(), TypeError); assert.throws(() => intersection.call({}, [1, 2, 3]), TypeError); diff --git a/tests/unit-pure/es.set.intersection.js b/tests/unit-pure/es.set.intersection.js index 82193f231407..e9751816133c 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.throws(() => new Set([1, 2, 3]).intersection(), TypeError); assert.throws(() => intersection.call({}, [1, 2, 3]), TypeError); From 5cbebbd0617868846ed6fc640844d7ea5a004545 Mon Sep 17 00:00:00 2001 From: Denis Pushkarev Date: Wed, 4 Oct 2023 04:32:25 +0700 Subject: [PATCH 061/388] 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 ------------------- .../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 ++--------- 10 files changed, 23 insertions(+), 71 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 8e3b8be9be3f..e7c1edd509a6 100644 --- a/packages/core-js-compat/src/data.mjs +++ b/packages/core-js-compat/src/data.mjs @@ -2342,9 +2342,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 9f3c7b5c3cd0..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.github.io/proposal-set-methods/#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.is-disjoint-from.v2.js b/packages/core-js/modules/es.set.is-disjoint-from.v2.js index f9139e48514e..eec1b8077600 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,10 +1,26 @@ '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'); // `Set.prototype.isDisjointFrom` method // https://github.com/tc39/proposal-set-methods $({ target: 'Set', proto: true, real: true, forced: !setMethodAcceptSetLike('isDisjointFrom') }, { - 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 d8826b502b7b..ad1611fe88e8 100644 --- a/tests/compat-data/tests-coverage.mjs +++ b/tests/compat-data/tests-coverage.mjs @@ -28,7 +28,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 a73c86c883ac..c06ff8c1440b 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.throws(() => new Set([1, 2, 3]).isDisjointFrom(), TypeError); assert.throws(() => isDisjointFrom.call({}, [1, 2, 3]), TypeError); assert.throws(() => isDisjointFrom.call(undefined, [1, 2, 3]), TypeError); diff --git a/tests/unit-pure/es.set.is-disjoint-from.js b/tests/unit-pure/es.set.is-disjoint-from.js index 79342ead7c6c..76d6794d02aa 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.throws(() => new Set([1, 2, 3]).isDisjointFrom(), TypeError); assert.throws(() => isDisjointFrom.call({}, [1, 2, 3]), TypeError); assert.throws(() => isDisjointFrom.call(undefined, [1, 2, 3]), TypeError); From 4c52e5cd6ed26a10b6090e2118453d3cfb1a9056 Mon Sep 17 00:00:00 2001 From: Denis Pushkarev Date: Wed, 4 Oct 2023 04:40:38 +0700 Subject: [PATCH 062/388] 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 e7c1edd509a6..d289c3dbcbd3 100644 --- a/packages/core-js-compat/src/data.mjs +++ b/packages/core-js-compat/src/data.mjs @@ -2344,9 +2344,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 541c007df330..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.github.io/proposal-set-methods/#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 cbdf60d09f9a..0c6df259aa12 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,10 +1,20 @@ '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'); // `Set.prototype.isSubsetOf` method // https://github.com/tc39/proposal-set-methods $({ target: 'Set', proto: true, real: true, forced: !setMethodAcceptSetLike('isSubsetOf') }, { - 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 ad1611fe88e8..d39dbfe51d1c 100644 --- a/tests/compat-data/tests-coverage.mjs +++ b/tests/compat-data/tests-coverage.mjs @@ -28,7 +28,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 4d9ce8427de8..67d9d0dcfd52 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.throws(() => new Set([1, 2, 3]).isSubsetOf(), TypeError); assert.throws(() => isSubsetOf.call({}, [1, 2, 3]), TypeError); assert.throws(() => isSubsetOf.call(undefined, [1, 2, 3]), TypeError); diff --git a/tests/unit-pure/es.set.is-subset-of.js b/tests/unit-pure/es.set.is-subset-of.js index 4378207a0a29..80de856b1375 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.throws(() => new Set([1, 2, 3]).isSubsetOf(), TypeError); assert.throws(() => isSubsetOf.call({}, [1, 2, 3]), TypeError); assert.throws(() => isSubsetOf.call(undefined, [1, 2, 3]), TypeError); From 1347bc27992b42b4198799570d70aef418363329 Mon Sep 17 00:00:00 2001 From: Denis Pushkarev Date: Wed, 4 Oct 2023 05:01:27 +0700 Subject: [PATCH 063/388] 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 d289c3dbcbd3..1ea81f9363aa 100644 --- a/packages/core-js-compat/src/data.mjs +++ b/packages/core-js-compat/src/data.mjs @@ -2345,9 +2345,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 090742483956..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.github.io/proposal-set-methods/#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 af2c8229a68d..9457e9aa1058 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,10 +1,23 @@ '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'); // `Set.prototype.isSupersetOf` method // https://github.com/tc39/proposal-set-methods $({ target: 'Set', proto: true, real: true, forced: !setMethodAcceptSetLike('isSupersetOf') }, { - 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 d39dbfe51d1c..ba9989b56828 100644 --- a/tests/compat-data/tests-coverage.mjs +++ b/tests/compat-data/tests-coverage.mjs @@ -28,7 +28,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 a2b74f06590e..2adb0f301a08 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.throws(() => new Set([1, 2, 3]).isSupersetOf(), TypeError); assert.throws(() => isSupersetOf.call({}, [1, 2, 3]), TypeError); assert.throws(() => isSupersetOf.call(undefined, [1, 2, 3]), TypeError); diff --git a/tests/unit-pure/es.set.is-superset-of.js b/tests/unit-pure/es.set.is-superset-of.js index 8cdc987abb9e..62f16c4fe3d6 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.throws(() => new Set([1, 2, 3]).isSupersetOf(), TypeError); assert.throws(() => isSupersetOf.call({}, [1, 2, 3]), TypeError); assert.throws(() => isSupersetOf.call(undefined, [1, 2, 3]), TypeError); From 5d7ece8991cdf7e586e2846fbd3a228febedacd3 Mon Sep 17 00:00:00 2001 From: Denis Pushkarev Date: Wed, 4 Oct 2023 05:09:24 +0700 Subject: [PATCH 064/388] 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 1ea81f9363aa..0059ddad8775 100644 --- a/packages/core-js-compat/src/data.mjs +++ b/packages/core-js-compat/src/data.mjs @@ -2358,9 +2358,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 acd1c4617927..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://github.com/tc39/proposal-set-methods -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 b16890f515a8..419600b413bf 100644 --- a/packages/core-js/modules/es.set.symmetric-difference.v2.js +++ b/packages/core-js/modules/es.set.symmetric-difference.v2.js @@ -1,10 +1,27 @@ '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 setMethodAcceptSetLike = require('../internals/set-method-accept-set-like'); +var add = SetHelpers.add; +var has = SetHelpers.has; +var remove = SetHelpers.remove; + // `Set.prototype.symmetricDifference` method // https://github.com/tc39/proposal-set-methods $({ target: 'Set', proto: true, real: true, forced: !setMethodAcceptSetLike('symmetricDifference') }, { - 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 ba9989b56828..9a94353fa528 100644 --- a/tests/compat-data/tests-coverage.mjs +++ b/tests/compat-data/tests-coverage.mjs @@ -28,7 +28,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', 'web.url-search-params', diff --git a/tests/unit-global/es.set.symmetric-difference.js b/tests/unit-global/es.set.symmetric-difference.js index aee4fa1c7275..08d3a4e65138 100644 --- a/tests/unit-global/es.set.symmetric-difference.js +++ b/tests/unit-global/es.set.symmetric-difference.js @@ -1,4 +1,4 @@ -import { createIterable, createSetLike } from '../helpers/helpers.js'; +import { createSetLike } from '../helpers/helpers.js'; QUnit.test('Set#symmetricDifference', assert => { const { symmetricDifference } = Set.prototype; @@ -18,12 +18,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 bea6ab58ae84..e11669ad3677 100644 --- a/tests/unit-pure/es.set.symmetric-difference.js +++ b/tests/unit-pure/es.set.symmetric-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#symmetricDifference', assert => { const { symmetricDifference } = Set.prototype; @@ -20,12 +19,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 909753586c0dff5248681f83f96e3d7145de3b16 Mon Sep 17 00:00:00 2001 From: Denis Pushkarev Date: Wed, 4 Oct 2023 05:22:00 +0700 Subject: [PATCH 065/388] 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 | 1 - 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, 19 insertions(+), 93 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 0059ddad8775..8a0f3ab6c93b 100644 --- a/packages/core-js-compat/src/data.mjs +++ b/packages/core-js-compat/src/data.mjs @@ -2359,9 +2359,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 51e38d0ce41c..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://github.com/tc39/proposal-set-methods -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 fcfa481ee237..0181e233cf79 100644 --- a/packages/core-js/modules/es.set.union.v2.js +++ b/packages/core-js/modules/es.set.union.v2.js @@ -1,10 +1,22 @@ '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 setMethodAcceptSetLike = require('../internals/set-method-accept-set-like'); // `Set.prototype.union` method // https://github.com/tc39/proposal-set-methods $({ target: 'Set', proto: true, real: true, forced: !setMethodAcceptSetLike('union') }, { - 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 5c326d5bb353..fe8c2b312005 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/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 9a94353fa528..10fa118c4354 100644 --- a/tests/compat-data/tests-coverage.mjs +++ b/tests/compat-data/tests-coverage.mjs @@ -28,7 +28,6 @@ const ignore = new Set([ 'esnext.reflect.has-metadata', 'esnext.reflect.has-own-metadata', 'esnext.reflect.metadata', - 'esnext.set.union', 'esnext.symbol.matcher', 'web.url-search-params', 'web.url', diff --git a/tests/entries/unit.mjs b/tests/entries/unit.mjs index da002117b739..46cbbb0adced 100644 --- a/tests/entries/unit.mjs +++ b/tests/entries/unit.mjs @@ -875,7 +875,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 118f9581271a..bf865d84bd01 100644 --- a/tests/unit-global/es.set.union.js +++ b/tests/unit-global/es.set.union.js @@ -1,4 +1,4 @@ -import { createIterable, createSetLike } from '../helpers/helpers.js'; +import { createSetLike } from '../helpers/helpers.js'; QUnit.test('Set#union', assert => { const { union } = Set.prototype; @@ -18,11 +18,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 5274b3213923..bfe0df6b7aa1 100644 --- a/tests/unit-pure/es.set.union.js +++ b/tests/unit-pure/es.set.union.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#union', assert => { const { union } = Set.prototype; @@ -20,11 +19,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 dedebceffd295bb4c24cecc6e8365b37b8f64322 Mon Sep 17 00:00:00 2001 From: Denis Pushkarev Date: Wed, 4 Oct 2023 05:44:03 +0700 Subject: [PATCH 066/388] 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 cf26e3965570..8cc528a37783 100644 --- a/README.md +++ b/README.md @@ -885,7 +885,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 8a0f3ab6c93b..6743641aa96a 100644 --- a/packages/core-js-compat/src/data.mjs +++ b/packages/core-js-compat/src/data.mjs @@ -1515,7 +1515,7 @@ export const data = { // https://bugs.webkit.org/show_bug.cgi?id=267494 safari: '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 7e2ca6f186e0..cad576a08406 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 d270c6f4bfb3..ab0a36f92cfa 100644 --- a/tests/compat/tests.js +++ b/tests/compat/tests.js @@ -1201,7 +1201,7 @@ GLOBAL.tests = { 'es.set.is-superset-of.v2': createSetMethodTest('isSupersetOf'), 'es.set.symmetric-difference.v2': createSetMethodTest('symmetricDifference'), 'es.set.union.v2': createSetMethodTest('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 9d77039352f4096a75792d4483c8f709a17693ca Mon Sep 17 00:00:00 2001 From: Denis Pushkarev Date: Wed, 4 Oct 2023 06:16:35 +0700 Subject: [PATCH 067/388] clean `modules-by-versions`, temporarily disable `modules-by-versions` test --- .../src/modules-by-versions.mjs | 223 +----------------- tests/compat-data/modules-by-versions.mjs | 3 +- .../get-modules-list-for-target-version.mjs | 2 +- 3 files changed, 4 insertions(+), 224 deletions(-) diff --git a/packages/core-js-compat/src/modules-by-versions.mjs b/packages/core-js-compat/src/modules-by-versions.mjs index cad576a08406..2174b60d98c9 100644 --- a/packages/core-js-compat/src/modules-by-versions.mjs +++ b/packages/core-js-compat/src/modules-by-versions.mjs @@ -1,224 +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', - ], + // 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 4e94ffed473f6da3b5a20a5dcae0938bd9acadf4 Mon Sep 17 00:00:00 2001 From: Denis Pushkarev Date: Wed, 4 Oct 2023 06:17:14 +0700 Subject: [PATCH 068/388] 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 8cc528a37783..963c7cb9c56d 100644 --- a/README.md +++ b/README.md @@ -624,7 +624,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.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). ```ts class [ Error, diff --git a/packages/core-js-compat/src/data.mjs b/packages/core-js-compat/src/data.mjs index 6743641aa96a..f670a51081e1 100644 --- a/packages/core-js-compat/src/data.mjs +++ b/packages/core-js-compat/src/data.mjs @@ -144,8 +144,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', @@ -2669,7 +2667,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'], @@ -2712,7 +2709,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 10fa118c4354..a79181e46331 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 ac7fdece86f045a2c07fe78a158391389c64e3f1 Mon Sep 17 00:00:00 2001 From: Denis Pushkarev Date: Wed, 4 Oct 2023 06:28:11 +0700 Subject: [PATCH 069/388] rename `es.data-view` -> `es.data-view.constructor` --- README.md | 2 +- packages/core-js-compat/src/data.mjs | 20 ++++++++----------- ...ta-view.js => es.data-view.constructor.js} | 0 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 7 files changed, 10 insertions(+), 18 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 963c7cb9c56d..f7c2e7758dd5 100644 --- a/README.md +++ b/README.md @@ -1731,7 +1731,7 @@ console.log(weakset.has(b)); // => false #### 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.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). +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.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). ```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 f670a51081e1..04713cc772d2 100644 --- a/packages/core-js-compat/src/data.mjs +++ b/packages/core-js-compat/src/data.mjs @@ -453,16 +453,6 @@ 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.data-view.constructor': { - chrome: '26', - firefox: '15', - hermes: '0.1', - ie: '10', - rhino: '1.7.13', - safari: '7.1', - }, 'es.array-buffer.detached': { bun: '1.0.19', chrome: '114', @@ -481,6 +471,14 @@ export const data = { firefox: '122', safari: '17.4', }, + 'es.data-view.constructor': { + chrome: '26', + firefox: '15', + hermes: '0.1', + ie: '10', + rhino: '1.7.13', + safari: '7.1', + }, 'es.date.get-year': { chrome: '1', firefox: '1', @@ -2667,7 +2665,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'], @@ -2709,7 +2706,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/data-view/index.js b/packages/core-js/es/data-view/index.js index 6eeb107e4ee5..bd6b83ec4242 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.object.to-string'); var path = require('../../internals/path'); 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 a79181e46331..31c0e5bff174 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 b30a8432e1854f35b6e02dd9d03251c286ac2702 Mon Sep 17 00:00:00 2001 From: Denis Pushkarev Date: Wed, 4 Oct 2023 06:40:28 +0700 Subject: [PATCH 070/388] 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 f7c2e7758dd5..e579bd361418 100644 --- a/README.md +++ b/README.md @@ -1523,7 +1523,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 04713cc772d2..8a41bbbed7dd 100644 --- a/packages/core-js-compat/src/data.mjs +++ b/packages/core-js-compat/src/data.mjs @@ -670,8 +670,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', @@ -2665,7 +2663,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'], @@ -2706,7 +2703,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 649c002db5c5..c611e65141b2 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 13daf9ff1b2a..8dea579a05cd 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 530b9d895ea9..0ed799b717b2 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 31c0e5bff174..31dcde394046 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 28fdc092bd6b..faf78a24f7d4 100644 --- a/tests/compat-tools/compat.mjs +++ b/tests/compat-tools/compat.mjs @@ -129,6 +129,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 99ab19339541..5d6366e48287 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 a7f9ea919aa1..581d8b74581c 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 5b1e3f1bfb659e00f136ea36e7376abf7ccebe6e Mon Sep 17 00:00:00 2001 From: Denis Pushkarev Date: Wed, 4 Oct 2023 06:50:12 +0700 Subject: [PATCH 071/388] rename `es.set` -> `es.set.constructor` --- README.md | 4 ++-- packages/core-js-compat/src/data.mjs | 4 ---- packages/core-js/es/array-buffer/index.js | 2 +- packages/core-js/es/array-buffer/transfer-to-fixed-length.js | 2 +- packages/core-js/es/array-buffer/transfer.js | 2 +- 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 - 30 files changed, 26 insertions(+), 36 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 e579bd361418..ddca3cf1ffc7 100644 --- a/README.md +++ b/README.md @@ -368,7 +368,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]); ``` @@ -1584,7 +1584,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 8a41bbbed7dd..0cd6ee0b9684 100644 --- a/packages/core-js-compat/src/data.mjs +++ b/packages/core-js-compat/src/data.mjs @@ -1428,8 +1428,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', @@ -2663,7 +2661,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-buffer.detached', 'es.array-buffer.detached'], @@ -2703,7 +2700,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/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/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 31dcde394046..b9600edb11e3 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.observable', 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 9bd3ae93d480..b8222bcb506c 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 709133023b9e..e4732131dd5d 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 764fa097199d1fd109abf5a8ec20dbd66a783cba Mon Sep 17 00:00:00 2001 From: Denis Pushkarev Date: Wed, 4 Oct 2023 07:16:31 +0700 Subject: [PATCH 072/388] 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 ddca3cf1ffc7..2ff321fb7975 100644 --- a/README.md +++ b/README.md @@ -1651,7 +1651,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 0cd6ee0b9684..996ee47506d3 100644 --- a/packages/core-js-compat/src/data.mjs +++ b/packages/core-js-compat/src/data.mjs @@ -2057,8 +2057,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 @@ -2661,7 +2659,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-buffer.detached', 'es.array-buffer.detached'], ['esnext.array-buffer.transfer', 'es.array-buffer.transfer'], @@ -2712,7 +2709,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 39cf8236c1aa..ccb55431ca6d 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 611a73b0e941..f57932614d31 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 b9600edb11e3..db8bd7c059a8 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.observable', 'esnext.observable.constructor', 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 c342853b6f41ed099979bae50eac166c0b18cd8b Mon Sep 17 00:00:00 2001 From: Denis Pushkarev Date: Wed, 4 Oct 2023 07:23:35 +0700 Subject: [PATCH 073/388] rename `es.weak-set` -> `es.weak-set.constructor` --- README.md | 2 +- packages/core-js-compat/src/data.mjs | 4 ---- 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/builder/builder.mjs | 2 +- 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 12 files changed, 7 insertions(+), 15 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 2ff321fb7975..dcff30910dd3 100644 --- a/README.md +++ b/README.md @@ -1697,7 +1697,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 996ee47506d3..ddf16c1eeadc 100644 --- a/packages/core-js-compat/src/data.mjs +++ b/packages/core-js-compat/src/data.mjs @@ -2067,8 +2067,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', @@ -2659,7 +2657,6 @@ export const data = { export const renamed = new Map([ // TODO: Clean in `core-js@4` - ['es.weak-set', 'es.weak-set.constructor'], ['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'], @@ -2709,7 +2706,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/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/builder/builder.mjs b/tests/builder/builder.mjs index d3ec5821cb2a..5a10dce78865 100644 --- a/tests/builder/builder.mjs +++ b/tests/builder/builder.mjs @@ -12,7 +12,7 @@ ok(polyfills.includes("import 'core-js/modules/es.error.cause.js';"), 'actual no ok(polyfills.includes("import 'core-js/modules/es.array.push.js';"), 'actual node 16 #2'); ok(polyfills.includes("import 'core-js/modules/esnext.array.from-async.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.weak-set.constructor.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'); diff --git a/tests/compat-data/tests-coverage.mjs b/tests/compat-data/tests-coverage.mjs index db8bd7c059a8..0e910bd66e50 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.observable', 'esnext.observable.constructor', 'esnext.observable.from', 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 65857705014911984bbf9c6ae5e1ee351d933f03 Mon Sep 17 00:00:00 2001 From: Denis Pushkarev Date: Wed, 4 Oct 2023 07:31:04 +0700 Subject: [PATCH 074/388] 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 dcff30910dd3..7abc4b7d9370 100644 --- a/README.md +++ b/README.md @@ -3397,7 +3397,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 ddf16c1eeadc..9c1796772e5f 100644 --- a/packages/core-js-compat/src/data.mjs +++ b/packages/core-js-compat/src/data.mjs @@ -2583,8 +2583,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', @@ -2684,7 +2682,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'], - ['web.url', 'web.url.constructor'], ['web.url-search-params', 'web.url-search-params.constructor'], ]); @@ -2713,7 +2710,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 0e910bd66e50..613d461f4702 100644 --- a/tests/compat-data/tests-coverage.mjs +++ b/tests/compat-data/tests-coverage.mjs @@ -24,7 +24,6 @@ const ignore = new Set([ 'esnext.reflect.metadata', 'esnext.symbol.matcher', '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 d764bb46b400f7d5493df0bdc6e8995ad8142d26 Mon Sep 17 00:00:00 2001 From: Denis Pushkarev Date: Wed, 4 Oct 2023 07:39:37 +0700 Subject: [PATCH 075/388] 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 7abc4b7d9370..21a552ca4f8d 100644 --- a/README.md +++ b/README.md @@ -3397,7 +3397,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 9c1796772e5f..6d01817add47 100644 --- a/packages/core-js-compat/src/data.mjs +++ b/packages/core-js-compat/src/data.mjs @@ -2617,8 +2617,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', @@ -2682,7 +2680,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'], - ['web.url-search-params', 'web.url-search-params.constructor'], ]); for (const [old, nw] of renamed) data[old] = data[nw]; @@ -2710,7 +2707,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 613d461f4702..61f5a8f06bdf 100644 --- a/tests/compat-data/tests-coverage.mjs +++ b/tests/compat-data/tests-coverage.mjs @@ -23,7 +23,6 @@ const ignore = new Set([ 'esnext.reflect.has-own-metadata', 'esnext.reflect.metadata', 'esnext.symbol.matcher', - '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 57070e08b559a112dea6e8c75daebaa3c38c6aa3 Mon Sep 17 00:00:00 2001 From: Denis Pushkarev Date: Wed, 4 Oct 2023 07:45:14 +0700 Subject: [PATCH 076/388] 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 +- .../core-js/modules/es.set.difference.v2.js | 30 ------------------- .../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(+), 53 deletions(-) delete mode 100644 packages/core-js/modules/es.set.difference.v2.js delete mode 100644 packages/core-js/modules/esnext.set.difference.v2.js diff --git a/README.md b/README.md index 21a552ca4f8d..eb72163741c6 100644 --- a/README.md +++ b/README.md @@ -344,14 +344,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: @@ -1584,7 +1584,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 6d01817add47..412f8991437a 100644 --- a/packages/core-js-compat/src/data.mjs +++ b/packages/core-js-compat/src/data.mjs @@ -1437,7 +1437,7 @@ export const data = { rhino: '1.7.13', safari: '10.0', }, - 'es.set.difference.v2': { + 'es.set.difference': { 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 @@ -2315,8 +2315,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': { @@ -2673,7 +2671,6 @@ export const renamed = new Map([ ['esnext.object.group-by', 'es.object.group-by'], ['esnext.promise.try', 'es.promise.try'], ['esnext.promise.with-resolvers', 'es.promise.with-resolvers'], - ['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.v2.js deleted file mode 100644 index 99ac80f97e77..000000000000 --- a/packages/core-js/modules/es.set.difference.v2.js +++ /dev/null @@ -1,30 +0,0 @@ -'use strict'; -var $ = require('../internals/export'); -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 setMethodAcceptSetLike = require('../internals/set-method-accept-set-like'); - -var has = SetHelpers.has; -var remove = SetHelpers.remove; - -// `Set.prototype.difference` method -// https://github.com/tc39/proposal-set-methods -$({ target: 'Set', proto: true, real: true, forced: !setMethodAcceptSetLike('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(O, e)) remove(result, e); - }); - return result; - } -}); 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 ab0a36f92cfa..f84dc372d3ce 100644 --- a/tests/compat/tests.js +++ b/tests/compat/tests.js @@ -1192,7 +1192,7 @@ GLOBAL.tests = { && set.has(0) && set[Symbol.toStringTag]; }], - 'es.set.difference.v2': createSetMethodTest('difference'), + 'es.set.difference': createSetMethodTest('difference'), 'es.set.intersection.v2': [createSetMethodTest('intersection'), function () { return String(Array.from(new Set([1, 2, 3]).intersection(new Set([3, 2])))) === '3,2'; }], From 2c5f95027332916344822365f21dfbc45416dec4 Mon Sep 17 00:00:00 2001 From: Denis Pushkarev Date: Wed, 4 Oct 2023 07:50:12 +0700 Subject: [PATCH 077/388] 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 +- .../core-js/modules/es.set.intersection.v2.js | 41 ------------------- .../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(+), 58 deletions(-) delete mode 100644 packages/core-js/modules/es.set.intersection.v2.js delete mode 100644 packages/core-js/modules/esnext.set.intersection.v2.js diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 40d6a1bb002c..3297c57e0b11 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 eb72163741c6..e6fbc0ab9a5f 100644 --- a/README.md +++ b/README.md @@ -1584,7 +1584,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 412f8991437a..6b1b5f177e7c 100644 --- a/packages/core-js-compat/src/data.mjs +++ b/packages/core-js-compat/src/data.mjs @@ -1447,7 +1447,7 @@ export const data = { // https://bugs.webkit.org/show_bug.cgi?id=267494 safari: '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 @@ -2324,8 +2324,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, @@ -2671,7 +2669,6 @@ export const renamed = new Map([ ['esnext.object.group-by', 'es.object.group-by'], ['esnext.promise.try', 'es.promise.try'], ['esnext.promise.with-resolvers', 'es.promise.with-resolvers'], - ['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.v2.js deleted file mode 100644 index 850594c56ed8..000000000000 --- a/packages/core-js/modules/es.set.intersection.v2.js +++ /dev/null @@ -1,41 +0,0 @@ -'use strict'; -var $ = require('../internals/export'); -var fails = require('../internals/fails'); -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') || fails(function () { - // 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'; -}); - -// `Set.prototype.intersection` method -// https://github.com/tc39/proposal-set-methods -$({ target: 'Set', proto: true, real: true, forced: INCORRECT }, { - 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.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 f84dc372d3ce..5a6b0476850a 100644 --- a/tests/compat/tests.js +++ b/tests/compat/tests.js @@ -1193,7 +1193,7 @@ GLOBAL.tests = { && set[Symbol.toStringTag]; }], 'es.set.difference': createSetMethodTest('difference'), - 'es.set.intersection.v2': [createSetMethodTest('intersection'), function () { + 'es.set.intersection': [createSetMethodTest('intersection'), 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'), From 61446a90c9018b69416c191f0890a47101a33130 Mon Sep 17 00:00:00 2001 From: Denis Pushkarev Date: Wed, 4 Oct 2023 07:55:04 +0700 Subject: [PATCH 078/388] 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 - .../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 +- .../modules/es.set.is-disjoint-from.v2.js | 26 ------------------- .../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(+), 42 deletions(-) delete mode 100644 packages/core-js/modules/es.set.is-disjoint-from.v2.js delete mode 100644 packages/core-js/modules/esnext.set.is-disjoint-from.v2.js diff --git a/README.md b/README.md index e6fbc0ab9a5f..1a90645dfafd 100644 --- a/README.md +++ b/README.md @@ -1584,7 +1584,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 6b1b5f177e7c..f1094034aa82 100644 --- a/packages/core-js-compat/src/data.mjs +++ b/packages/core-js-compat/src/data.mjs @@ -1457,7 +1457,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 @@ -2324,8 +2324,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, @@ -2669,7 +2667,6 @@ export const renamed = new Map([ ['esnext.object.group-by', 'es.object.group-by'], ['esnext.promise.try', 'es.promise.try'], ['esnext.promise.with-resolvers', 'es.promise.with-resolvers'], - ['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.v2.js deleted file mode 100644 index eec1b8077600..000000000000 --- a/packages/core-js/modules/es.set.is-disjoint-from.v2.js +++ /dev/null @@ -1,26 +0,0 @@ -'use strict'; -var $ = require('../internals/export'); -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'); - -// `Set.prototype.isDisjointFrom` method -// https://github.com/tc39/proposal-set-methods -$({ target: 'Set', proto: true, real: true, forced: !setMethodAcceptSetLike('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.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 5a6b0476850a..937c7e0eb150 100644 --- a/tests/compat/tests.js +++ b/tests/compat/tests.js @@ -1196,7 +1196,7 @@ GLOBAL.tests = { 'es.set.intersection': [createSetMethodTest('intersection'), 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'), + 'es.set.is-disjoint-from': createSetMethodTest('isDisjointFrom'), 'es.set.is-subset-of.v2': createSetMethodTest('isSubsetOf'), 'es.set.is-superset-of.v2': createSetMethodTest('isSupersetOf'), 'es.set.symmetric-difference.v2': createSetMethodTest('symmetricDifference'), From 0eed156d44284e1ac483ee1c23c02cbea4b75490 Mon Sep 17 00:00:00 2001 From: Denis Pushkarev Date: Wed, 4 Oct 2023 07:59:56 +0700 Subject: [PATCH 079/388] 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 +- .../core-js/modules/es.set.is-subset-of.v2.js | 20 ------------------- .../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(+), 36 deletions(-) delete mode 100644 packages/core-js/modules/es.set.is-subset-of.v2.js delete mode 100644 packages/core-js/modules/esnext.set.is-subset-of.v2.js diff --git a/README.md b/README.md index 1a90645dfafd..82fa44264b62 100644 --- a/README.md +++ b/README.md @@ -1584,7 +1584,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 f1094034aa82..782a45af10a5 100644 --- a/packages/core-js-compat/src/data.mjs +++ b/packages/core-js-compat/src/data.mjs @@ -1467,7 +1467,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 @@ -2324,8 +2324,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': { }, @@ -2667,7 +2665,6 @@ export const renamed = new Map([ ['esnext.object.group-by', 'es.object.group-by'], ['esnext.promise.try', 'es.promise.try'], ['esnext.promise.with-resolvers', 'es.promise.with-resolvers'], - ['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.v2.js deleted file mode 100644 index 0c6df259aa12..000000000000 --- a/packages/core-js/modules/es.set.is-subset-of.v2.js +++ /dev/null @@ -1,20 +0,0 @@ -'use strict'; -var $ = require('../internals/export'); -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'); - -// `Set.prototype.isSubsetOf` method -// https://github.com/tc39/proposal-set-methods -$({ target: 'Set', proto: true, real: true, forced: !setMethodAcceptSetLike('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.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 937c7e0eb150..0bc14bbd0087 100644 --- a/tests/compat/tests.js +++ b/tests/compat/tests.js @@ -1197,7 +1197,7 @@ GLOBAL.tests = { return String(Array.from(new Set([1, 2, 3]).intersection(new Set([3, 2])))) === '3,2'; }], 'es.set.is-disjoint-from': createSetMethodTest('isDisjointFrom'), - 'es.set.is-subset-of.v2': createSetMethodTest('isSubsetOf'), + 'es.set.is-subset-of': createSetMethodTest('isSubsetOf'), 'es.set.is-superset-of.v2': createSetMethodTest('isSupersetOf'), 'es.set.symmetric-difference.v2': createSetMethodTest('symmetricDifference'), 'es.set.union.v2': createSetMethodTest('union'), From 326ebef9435bd6c44e596b993d86a469ec96ba79 Mon Sep 17 00:00:00 2001 From: Denis Pushkarev Date: Wed, 4 Oct 2023 08:04:34 +0700 Subject: [PATCH 080/388] rename `esnext.set.is-superset-of.v2` -> `esnext.set.is-superset-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-superset-of.js | 1 - packages/core-js/es/set/index.js | 2 +- packages/core-js/es/set/is-superset-of.js | 2 +- packages/core-js/full/set/from.js | 2 +- packages/core-js/full/set/of.js | 2 +- .../modules/es.set.is-superset-of.v2.js | 23 ------------------- .../modules/esnext.set.is-superset-of.v2.js | 3 --- packages/core-js/proposals/set-methods-v2.js | 2 +- tests/compat/tests.js | 2 +- 12 files changed, 8 insertions(+), 39 deletions(-) delete mode 100644 packages/core-js/modules/es.set.is-superset-of.v2.js delete mode 100644 packages/core-js/modules/esnext.set.is-superset-of.v2.js diff --git a/README.md b/README.md index 82fa44264b62..f30495dbcc2f 100644 --- a/README.md +++ b/README.md @@ -1584,7 +1584,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.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 782a45af10a5..463ecbed0fb8 100644 --- a/packages/core-js-compat/src/data.mjs +++ b/packages/core-js-compat/src/data.mjs @@ -1477,7 +1477,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 @@ -2323,8 +2323,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': { @@ -2665,7 +2663,6 @@ export const renamed = new Map([ ['esnext.object.group-by', 'es.object.group-by'], ['esnext.promise.try', 'es.promise.try'], ['esnext.promise.with-resolvers', 'es.promise.with-resolvers'], - ['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 20277f3da572..7da1bb69f82e 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-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-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/es/set/index.js b/packages/core-js/es/set/index.js index 649697bc73fe..e268f580cea8 100644 --- a/packages/core-js/es/set/index.js +++ b/packages/core-js/es/set/index.js @@ -6,7 +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.v2'); +require('../../modules/es.set.is-superset-of'); require('../../modules/es.set.symmetric-difference.v2'); require('../../modules/es.set.union.v2'); require('../../modules/es.string.iterator'); 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/full/set/from.js b/packages/core-js/full/set/from.js index 4f3b8421c810..6220585a17a2 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,7 +15,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-superset-of.v2'); require('../../modules/esnext.set.map'); require('../../modules/esnext.set.reduce'); require('../../modules/esnext.set.some'); diff --git a/packages/core-js/full/set/of.js b/packages/core-js/full/set/of.js index 02c91d36bf28..f11ab9a57ef3 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,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-superset-of.v2'); require('../../modules/esnext.set.map'); require('../../modules/esnext.set.reduce'); require('../../modules/esnext.set.some'); 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 deleted file mode 100644 index 9457e9aa1058..000000000000 --- a/packages/core-js/modules/es.set.is-superset-of.v2.js +++ /dev/null @@ -1,23 +0,0 @@ -'use strict'; -var $ = require('../internals/export'); -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'); - -// `Set.prototype.isSupersetOf` method -// https://github.com/tc39/proposal-set-methods -$({ target: 'Set', proto: true, real: true, forced: !setMethodAcceptSetLike('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.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/proposals/set-methods-v2.js b/packages/core-js/proposals/set-methods-v2.js index baf1517a524f..cbe00145135a 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/es.set.is-superset-of'); 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 0bc14bbd0087..54176924569f 100644 --- a/tests/compat/tests.js +++ b/tests/compat/tests.js @@ -1198,7 +1198,7 @@ GLOBAL.tests = { }], 'es.set.is-disjoint-from': createSetMethodTest('isDisjointFrom'), 'es.set.is-subset-of': createSetMethodTest('isSubsetOf'), - 'es.set.is-superset-of.v2': createSetMethodTest('isSupersetOf'), + 'es.set.is-superset-of': createSetMethodTest('isSupersetOf'), 'es.set.symmetric-difference.v2': createSetMethodTest('symmetricDifference'), 'es.set.union.v2': createSetMethodTest('union'), 'es.string.at': function () { From dc17c042fb591f0c021a78287297a178ba7d471f Mon Sep 17 00:00:00 2001 From: Denis Pushkarev Date: Wed, 4 Oct 2023 08:09:20 +0700 Subject: [PATCH 081/388] rename `esnext.set.symmetric-difference.v2` -> `esnext.set.symmetric-difference` --- README.md | 2 +- packages/core-js-compat/src/data.mjs | 5 +--- packages/core-js/actual/set/index.js | 1 - .../actual/set/symmetric-difference.js | 1 - packages/core-js/es/set/index.js | 2 +- .../core-js/es/set/symmetric-difference.js | 2 +- packages/core-js/full/set/from.js | 2 +- packages/core-js/full/set/of.js | 2 +- .../modules/es.set.symmetric-difference.v2.js | 27 ------------------- .../esnext.set.symmetric-difference.v2.js | 3 --- packages/core-js/proposals/set-methods-v2.js | 2 +- tests/compat/tests.js | 2 +- 12 files changed, 8 insertions(+), 43 deletions(-) delete mode 100644 packages/core-js/modules/es.set.symmetric-difference.v2.js delete mode 100644 packages/core-js/modules/esnext.set.symmetric-difference.v2.js diff --git a/README.md b/README.md index f30495dbcc2f..493df99bc1cf 100644 --- a/README.md +++ b/README.md @@ -1584,7 +1584,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`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.set.is-superset-of.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.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 463ecbed0fb8..36c7c1822b3a 100644 --- a/packages/core-js-compat/src/data.mjs +++ b/packages/core-js-compat/src/data.mjs @@ -1487,7 +1487,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': { 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 @@ -2334,8 +2334,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': { }, @@ -2663,7 +2661,6 @@ export const renamed = new Map([ ['esnext.object.group-by', 'es.object.group-by'], ['esnext.promise.try', 'es.promise.try'], ['esnext.promise.with-resolvers', 'es.promise.with-resolvers'], - ['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 7da1bb69f82e..3a2e8962733f 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.symmetric-difference.v2'); require('../../modules/esnext.set.union.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/es/set/index.js b/packages/core-js/es/set/index.js index e268f580cea8..7418ce2a523c 100644 --- a/packages/core-js/es/set/index.js +++ b/packages/core-js/es/set/index.js @@ -7,7 +7,7 @@ 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.v2'); +require('../../modules/es.set.symmetric-difference'); require('../../modules/es.set.union.v2'); require('../../modules/es.string.iterator'); var path = require('../../internals/path'); 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/full/set/from.js b/packages/core-js/full/set/from.js index 6220585a17a2..e45c63863813 100644 --- a/packages/core-js/full/set/from.js +++ b/packages/core-js/full/set/from.js @@ -7,6 +7,7 @@ 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.string.iterator'); require('../../modules/esnext.set.from'); require('../../modules/esnext.set.add-all'); @@ -18,7 +19,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.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 f11ab9a57ef3..9fd12349640d 100644 --- a/packages/core-js/full/set/of.js +++ b/packages/core-js/full/set/of.js @@ -7,6 +7,7 @@ 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/esnext.set.of'); require('../../modules/esnext.set.add-all'); require('../../modules/esnext.set.delete-all'); @@ -17,7 +18,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.v2'); require('../../modules/esnext.set.union.v2'); var path = require('../../internals/path'); diff --git a/packages/core-js/modules/es.set.symmetric-difference.v2.js b/packages/core-js/modules/es.set.symmetric-difference.v2.js deleted file mode 100644 index 419600b413bf..000000000000 --- a/packages/core-js/modules/es.set.symmetric-difference.v2.js +++ /dev/null @@ -1,27 +0,0 @@ -'use strict'; -var $ = require('../internals/export'); -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 setMethodAcceptSetLike = require('../internals/set-method-accept-set-like'); - -var add = SetHelpers.add; -var has = SetHelpers.has; -var remove = SetHelpers.remove; - -// `Set.prototype.symmetricDifference` method -// https://github.com/tc39/proposal-set-methods -$({ target: 'Set', proto: true, real: true, forced: !setMethodAcceptSetLike('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.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/proposals/set-methods-v2.js b/packages/core-js/proposals/set-methods-v2.js index cbe00145135a..0fe972b2ab49 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.symmetric-difference'); 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 54176924569f..aea77dd984a4 100644 --- a/tests/compat/tests.js +++ b/tests/compat/tests.js @@ -1199,7 +1199,7 @@ GLOBAL.tests = { 'es.set.is-disjoint-from': createSetMethodTest('isDisjointFrom'), 'es.set.is-subset-of': createSetMethodTest('isSubsetOf'), 'es.set.is-superset-of': createSetMethodTest('isSupersetOf'), - 'es.set.symmetric-difference.v2': createSetMethodTest('symmetricDifference'), + 'es.set.symmetric-difference': createSetMethodTest('symmetricDifference'), 'es.set.union.v2': createSetMethodTest('union'), 'es.string.at': function () { return '𠮷'.at(-2) === '\uD842'; From 998c00e491f4cd787e76e727242e72bdf5761cc1 Mon Sep 17 00:00:00 2001 From: Denis Pushkarev Date: Wed, 4 Oct 2023 08:13:46 +0700 Subject: [PATCH 082/388] rename `esnext.set.union.v2` -> `esnext.set.union` --- README.md | 2 +- packages/core-js-compat/src/data.mjs | 5 +---- packages/core-js/actual/set/index.js | 1 - packages/core-js/actual/set/union.js | 1 - packages/core-js/es/set/index.js | 2 +- packages/core-js/es/set/union.js | 2 +- packages/core-js/full/set/from.js | 2 +- packages/core-js/full/set/of.js | 2 +- packages/core-js/modules/es.set.union.v2.js | 22 ------------------- .../core-js/modules/esnext.set.union.v2.js | 3 --- packages/core-js/proposals/set-methods-v2.js | 2 +- tests/compat/tests.js | 2 +- 12 files changed, 8 insertions(+), 38 deletions(-) delete mode 100644 packages/core-js/modules/es.set.union.v2.js delete mode 100644 packages/core-js/modules/esnext.set.union.v2.js diff --git a/README.md b/README.md index 493df99bc1cf..2683a51f29c2 100644 --- a/README.md +++ b/README.md @@ -1584,7 +1584,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`](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.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 36c7c1822b3a..1675aaa184ca 100644 --- a/packages/core-js-compat/src/data.mjs +++ b/packages/core-js-compat/src/data.mjs @@ -1497,7 +1497,7 @@ export const data = { // https://bugs.webkit.org/show_bug.cgi?id=267494 safari: '18.0', // '17.0', }, - 'es.set.union.v2': { + 'es.set.union': { 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 @@ -2333,8 +2333,6 @@ export const data = { }, 'esnext.set.some': { }, - // TODO: Remove from `core-js@4` - 'esnext.set.union.v2': null, 'esnext.string.cooked': { }, 'esnext.string.code-points': { @@ -2661,7 +2659,6 @@ export const renamed = new Map([ ['esnext.object.group-by', 'es.object.group-by'], ['esnext.promise.try', 'es.promise.try'], ['esnext.promise.with-resolvers', 'es.promise.with-resolvers'], - ['esnext.set.union.v2', 'es.set.union.v2'], ]); for (const [old, nw] of renamed) data[old] = data[nw]; diff --git a/packages/core-js/actual/set/index.js b/packages/core-js/actual/set/index.js index 3a2e8962733f..a9961a0a2244 100644 --- a/packages/core-js/actual/set/index.js +++ b/packages/core-js/actual/set/index.js @@ -1,5 +1,4 @@ 'use strict'; var parent = require('../../stable/set'); -require('../../modules/esnext.set.union.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 7418ce2a523c..fab08053307e 100644 --- a/packages/core-js/es/set/index.js +++ b/packages/core-js/es/set/index.js @@ -8,7 +8,7 @@ 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.v2'); +require('../../modules/es.set.union'); require('../../modules/es.string.iterator'); var path = require('../../internals/path'); 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 e45c63863813..7c18c0f8cd5b 100644 --- a/packages/core-js/full/set/from.js +++ b/packages/core-js/full/set/from.js @@ -8,6 +8,7 @@ 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'); @@ -19,7 +20,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.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 9fd12349640d..905a05bbcfab 100644 --- a/packages/core-js/full/set/of.js +++ b/packages/core-js/full/set/of.js @@ -8,6 +8,7 @@ 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'); @@ -18,7 +19,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.union.v2'); var path = require('../../internals/path'); module.exports = path.Set.of; diff --git a/packages/core-js/modules/es.set.union.v2.js b/packages/core-js/modules/es.set.union.v2.js deleted file mode 100644 index 0181e233cf79..000000000000 --- a/packages/core-js/modules/es.set.union.v2.js +++ /dev/null @@ -1,22 +0,0 @@ -'use strict'; -var $ = require('../internals/export'); -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 setMethodAcceptSetLike = require('../internals/set-method-accept-set-like'); - -// `Set.prototype.union` method -// https://github.com/tc39/proposal-set-methods -$({ target: 'Set', proto: true, real: true, forced: !setMethodAcceptSetLike('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.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 0fe972b2ab49..caf3d9725372 100644 --- a/packages/core-js/proposals/set-methods-v2.js +++ b/packages/core-js/proposals/set-methods-v2.js @@ -6,4 +6,4 @@ 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/esnext.set.union.v2'); +require('../modules/es.set.union'); diff --git a/tests/compat/tests.js b/tests/compat/tests.js index aea77dd984a4..83d0ef2b778b 100644 --- a/tests/compat/tests.js +++ b/tests/compat/tests.js @@ -1200,7 +1200,7 @@ GLOBAL.tests = { 'es.set.is-subset-of': createSetMethodTest('isSubsetOf'), 'es.set.is-superset-of': createSetMethodTest('isSupersetOf'), 'es.set.symmetric-difference': createSetMethodTest('symmetricDifference'), - 'es.set.union.v2': createSetMethodTest('union'), + 'es.set.union': createSetMethodTest('union'), 'es.string.at': function () { return '𠮷'.at(-2) === '\uD842'; }, From 16b5f46ebca09836f44913a0bfb67cb2553d2bf6 Mon Sep 17 00:00:00 2001 From: Denis Pushkarev Date: Wed, 4 Oct 2023 08:22:46 +0700 Subject: [PATCH 083/388] 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 2683a51f29c2..ed159501df6e 100644 --- a/README.md +++ b/README.md @@ -3344,7 +3344,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 1675aaa184ca..68c81a8a7f99 100644 --- a/packages/core-js-compat/src/data.mjs +++ b/packages/core-js-compat/src/data.mjs @@ -2554,21 +2554,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', @@ -2684,8 +2669,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 83d0ef2b778b..442b70198991 100644 --- a/tests/compat/tests.js +++ b/tests/compat/tests.js @@ -2015,8 +2015,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 63bb74ddce248b2e7d8f3e406161a70a9434f25b Mon Sep 17 00:00:00 2001 From: Denis Pushkarev Date: Wed, 4 Oct 2023 08:37:40 +0700 Subject: [PATCH 084/388] split `web.immediate` -> `web.{ set, clear }-immediate` --- README.md | 2 +- packages/core-js-compat/src/data.mjs | 9 --------- 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(+), 20 deletions(-) delete mode 100644 packages/core-js/modules/web.immediate.js diff --git a/README.md b/README.md index ed159501df6e..ee5754e7d1fb 100644 --- a/README.md +++ b/README.md @@ -3361,7 +3361,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 68c81a8a7f99..6bc016308f61 100644 --- a/packages/core-js-compat/src/data.mjs +++ b/packages/core-js-compat/src/data.mjs @@ -2484,13 +2484,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', - 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', @@ -2667,8 +2660,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 442b70198991..b0a589fcd6f3 100644 --- a/tests/compat/tests.js +++ b/tests/compat/tests.js @@ -1984,8 +1984,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 14b5a35fc33464a590a4390dd1c1567d7100ca88 Mon Sep 17 00:00:00 2001 From: Denis Pushkarev Date: Wed, 4 Oct 2023 08:58:34 +0700 Subject: [PATCH 085/388] split `esnext.observable` -> `esnext.observable.{ constructor, from, of }` --- README.md | 2 +- packages/core-js-compat/src/data.mjs | 5 ----- 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(+), 14 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 ee5754e7d1fb..36e636994ee8 100644 --- a/README.md +++ b/README.md @@ -2852,7 +2852,7 @@ Symbol.isWellKnownSymbol(Symbol('key')); // => false 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 6bc016308f61..86679eb9f5cd 100644 --- a/packages/core-js-compat/src/data.mjs +++ b/packages/core-js-compat/src/data.mjs @@ -2268,8 +2268,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': { }, @@ -2657,9 +2655,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 61f5a8f06bdf..81c4ae436430 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([ - 'esnext.observable', 'esnext.observable.constructor', 'esnext.observable.from', 'esnext.observable.of', diff --git a/tests/entries/unit.mjs b/tests/entries/unit.mjs index 46cbbb0adced..6e2f0ad4f834 100644 --- a/tests/entries/unit.mjs +++ b/tests/entries/unit.mjs @@ -755,6 +755,9 @@ for (PATH of ['core-js-pure', 'core-js']) { ok(load(NS, 'map/update')(new Map([[1, 2]]), 1, it => it * 2).get(1) === 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 dd6e88e93afaa512998ea19aa5fa4543654a2099 Mon Sep 17 00:00:00 2001 From: Denis Pushkarev Date: Wed, 4 Oct 2023 09:12:15 +0700 Subject: [PATCH 086/388] 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 36e636994ee8..f9830acf35f2 100644 --- a/README.md +++ b/README.md @@ -885,7 +885,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 86679eb9f5cd..4626129e9fda 100644 --- a/packages/core-js-compat/src/data.mjs +++ b/packages/core-js-compat/src/data.mjs @@ -2644,7 +2644,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 29a566ae38e5d0b7995af8316ad04c1c56a8ae4d Mon Sep 17 00:00:00 2001 From: Denis Pushkarev Date: Wed, 4 Oct 2023 09:24:45 +0700 Subject: [PATCH 087/388] 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 f9830acf35f2..b6dc3504223c 100644 --- a/README.md +++ b/README.md @@ -885,7 +885,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 4626129e9fda..3d0f99d3e2eb 100644 --- a/packages/core-js-compat/src/data.mjs +++ b/packages/core-js-compat/src/data.mjs @@ -2643,7 +2643,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 18600ff72da78e63ebebf40e9720974005b8e179 Mon Sep 17 00:00:00 2001 From: Denis Pushkarev Date: Wed, 4 Oct 2023 11:42:47 +0700 Subject: [PATCH 088/388] 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 | 10 +++++++--- 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, 19 insertions(+), 43 deletions(-) delete mode 100644 packages/core-js/modules/es.symbol.js diff --git a/README.md b/README.md index b6dc3504223c..2949809fa1c5 100644 --- a/README.md +++ b/README.md @@ -1395,7 +1395,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-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.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-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.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 3d0f99d3e2eb..9f3f4abf80f8 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', @@ -2643,10 +2634,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 80226abcdcd9..f376fccdab21 100644 --- a/packages/core-js/es/symbol/index.js +++ b/packages/core-js/es/symbol/index.js @@ -1,7 +1,7 @@ '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.for'); +require('../../modules/es.symbol.key-for'); require('../../modules/es.symbol.async-iterator'); require('../../modules/es.symbol.description'); require('../../modules/es.symbol.has-instance'); @@ -16,8 +16,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 b0a589fcd6f3..d7da286b7b77 100644 --- a/tests/compat/tests.js +++ b/tests/compat/tests.js @@ -279,18 +279,6 @@ function TIMERS() { } 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 771dc55761355e1cf3f237ccfd54a5baf478525a Mon Sep 17 00:00:00 2001 From: Denis Pushkarev Date: Thu, 5 Oct 2023 03:38:48 +0700 Subject: [PATCH 089/388] split `es.promise` -> `es.promise.{ constructor, catch, resolve, reject, all, race }` --- README.md | 2 +- packages/core-js-compat/src/data.mjs | 71 ++++++++----------- packages/core-js/actual/array/from-async.js | 4 +- packages/core-js/actual/array/index.js | 4 +- .../async-disposable-stack/constructor.js | 5 +- .../actual/async-disposable-stack/index.js | 5 +- .../actual/async-iterator/async-dispose.js | 5 +- .../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 | 6 +- 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/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/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 ++--- 33 files changed, 142 insertions(+), 92 deletions(-) delete mode 100644 packages/core-js/modules/es.promise.js diff --git a/README.md b/README.md index 2949809fa1c5..8095991980e7 100644 --- a/README.md +++ b/README.md @@ -1208,7 +1208,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 9f3f4abf80f8..1a6b7cfe6d5b 100644 --- a/packages/core-js-compat/src/data.mjs +++ b/packages/core-js-compat/src/data.mjs @@ -1178,16 +1178,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', @@ -1197,29 +1187,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', - safari: '14.0', - }, 'es.promise.catch': { chrome: '67', // `unhandledrejection` event support was added in Deno@1.24 @@ -1240,7 +1207,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', @@ -1248,7 +1215,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', @@ -1256,7 +1223,30 @@ 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', + safari: '14.0', + }, + 'es.promise.race': { chrome: '67', // `unhandledrejection` event support was added in Deno@1.24 deno: '1.24', @@ -2633,15 +2623,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/array/from-async.js b/packages/core-js/actual/array/from-async.js index 875bc687f5fd..64f17eee88c4 100644 --- a/packages/core-js/actual/array/from-async.js +++ b/packages/core-js/actual/array/from-async.js @@ -1,7 +1,9 @@ '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.string.iterator'); require('../../modules/esnext.array.from-async'); var path = require('../../internals/path'); diff --git a/packages/core-js/actual/array/index.js b/packages/core-js/actual/array/index.js index 80ebf324b1bb..c60075234ad8 100644 --- a/packages/core-js/actual/array/index.js +++ b/packages/core-js/actual/array/index.js @@ -1,6 +1,8 @@ 'use strict'; var parent = require('../../stable/array'); -require('../../modules/es.promise'); +require('../../modules/es.promise.constructor'); +require('../../modules/es.promise.catch'); +require('../../modules/es.promise.finally'); require('../../modules/es.object.to-string'); require('../../modules/esnext.array.from-async'); diff --git a/packages/core-js/actual/async-disposable-stack/constructor.js b/packages/core-js/actual/async-disposable-stack/constructor.js index b8b56dd9b470..5ae5d4b5553a 100644 --- a/packages/core-js/actual/async-disposable-stack/constructor.js +++ b/packages/core-js/actual/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/esnext.suppressed-error.constructor'); require('../../modules/esnext.async-disposable-stack.constructor'); require('../../modules/esnext.async-iterator.async-dispose'); diff --git a/packages/core-js/actual/async-disposable-stack/index.js b/packages/core-js/actual/async-disposable-stack/index.js index b8b56dd9b470..5ae5d4b5553a 100644 --- a/packages/core-js/actual/async-disposable-stack/index.js +++ b/packages/core-js/actual/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/esnext.suppressed-error.constructor'); require('../../modules/esnext.async-disposable-stack.constructor'); require('../../modules/esnext.async-iterator.async-dispose'); diff --git a/packages/core-js/actual/async-iterator/async-dispose.js b/packages/core-js/actual/async-iterator/async-dispose.js index 8513ef385b40..b374f3988392 100644 --- a/packages/core-js/actual/async-iterator/async-dispose.js +++ b/packages/core-js/actual/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/esnext.async-iterator.async-dispose'); 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 2c85f876264d..c13b70dbd210 100644 --- a/packages/core-js/actual/async-iterator/index.js +++ b/packages/core-js/actual/async-iterator/index.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.async-dispose'); 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 87c9bd78f13e..afb0b551f59b 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.dispose'); require('../../modules/esnext.iterator.drop'); 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/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/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 d7da286b7b77..bd5e8ea5b3df 100644 --- a/tests/compat/tests.js +++ b/tests/compat/tests.js @@ -988,9 +988,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; }], @@ -1000,16 +1005,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 3d06790b05ee3c3e8faea0433747a79cabeb49e7 Mon Sep 17 00:00:00 2001 From: Denis Pushkarev Date: Thu, 5 Oct 2023 05:44:35 +0700 Subject: [PATCH 090/388] 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 826118c7e121..e0d537ef0ebc 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 5f2df0eeb7dc..30d831e16fd6 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 a8118dc58cf2df9eab8332ac8d6bd86509194cc8 Mon Sep 17 00:00:00 2001 From: Denis Pushkarev Date: Thu, 5 Oct 2023 06:31:55 +0700 Subject: [PATCH 091/388] 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 6e2f0ad4f834..326ca22f046e 100644 --- a/tests/entries/unit.mjs +++ b/tests/entries/unit.mjs @@ -889,7 +889,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 cb5df3bd5f51e9ce5b919887d57df49175df1d04 Mon Sep 17 00:00:00 2001 From: Denis Pushkarev Date: Thu, 5 Oct 2023 07:59:59 +0700 Subject: [PATCH 092/388] actualize proposals entries --- README.md | 18 ++++---- packages/core-js-compat/src/data.mjs | 4 -- packages/core-js/es/promise/with-resolvers.js | 2 +- packages/core-js/full/symbol/index.js | 2 - packages/core-js/full/symbol/matcher.js | 5 --- .../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 .../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 | 12 ++---- packages/core-js/stage/2.js | 13 ++---- packages/core-js/stage/3.js | 10 ++--- packages/core-js/stage/4.js | 23 +---------- packages/core-js/stage/index.js | 4 -- packages/core-js/stage/pre.js | 4 +- tests/compat-data/tests-coverage.mjs | 1 - tests/entries/content.mjs | 2 - tests/entries/unit.mjs | 41 +++++++------------ .../esnext.symbol.is-well-known-symbol.js | 4 +- tests/unit-global/esnext.symbol.matcher.js | 13 ------ .../esnext.symbol.is-well-known-symbol.js | 4 +- tests/unit-pure/esnext.symbol.matcher.js | 6 --- 38 files changed, 43 insertions(+), 203 deletions(-) delete mode 100644 packages/core-js/full/symbol/matcher.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%) 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.symbol.matcher.js delete mode 100644 tests/unit-pure/esnext.symbol.matcher.js diff --git a/README.md b/README.md index 8095991980e7..5a83b5558415 100644 --- a/README.md +++ b/README.md @@ -2106,7 +2106,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 @@ -2163,7 +2163,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) @@ -2237,7 +2237,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 @@ -2392,7 +2392,7 @@ class Set { ``` [*CommonJS entry points:*](#commonjs-api) ``` -core-js/proposals/set-methods-v2 +core-js/proposals/set-methods ``` #### Stage 3 proposals[⬆](#index) @@ -2412,7 +2412,7 @@ class Array { ``` [*CommonJS entry points:*](#commonjs-api) ``` -core-js/proposals/array-from-async-stage-2 +core-js/proposals/array-from-async core-js(-pure)/actual|full/array/from-async ``` [*Example*](https://tinyurl.com/2bt9bhwn): @@ -2636,7 +2636,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 ``` @@ -2768,7 +2768,7 @@ class WeakMap { ``` [*CommonJS entry points:*](#commonjs-api) ``` -core-js/proposals/map-upsert-stage-2 +core-js/proposals/map-emplace core-js(-pure)/full/map/emplace core-js(-pure)/full/weak-map/emplace ``` @@ -2833,7 +2833,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 ``` @@ -3032,7 +3032,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 1a6b7cfe6d5b..eca32676ebce 100644 --- a/packages/core-js-compat/src/data.mjs +++ b/packages/core-js-compat/src/data.mjs @@ -2249,7 +2249,6 @@ export const data = { }, // TODO: Remove from `core-js@4` 'esnext.object.group-by': null, - }, 'esnext.observable.constructor': { }, 'esnext.observable.from': { @@ -2341,9 +2340,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/es/promise/with-resolvers.js b/packages/core-js/es/promise/with-resolvers.js index 0e2f6a0e3bc3..f318e82a43f1 100644 --- a/packages/core-js/es/promise/with-resolvers.js +++ b/packages/core-js/es/promise/with-resolvers.js @@ -1,5 +1,5 @@ 'use strict'; -require('../../modules/es.promise'); +require('../../modules/es.promise.constructor'); 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/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/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/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 c7264339269c..1a28439ce0d6 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'); @@ -12,12 +12,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/pattern-matching'); -require('../proposals/string-replace-all'); - -module.exports = parent; diff --git a/packages/core-js/stage/2.js b/packages/core-js/stage/2.js index fe8c2b312005..219dc40d7043 100644 --- a/packages/core-js/stage/2.js +++ b/packages/core-js/stage/2.js @@ -1,15 +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/iterator-range'); -require('../proposals/map-upsert-stage-2'); +require('../proposals/map-emplace'); +require('../proposals/regexp-escaping'); 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/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 507919267284..525710e300f0 100644 --- a/packages/core-js/stage/3.js +++ b/packages/core-js/stage/3.js @@ -1,15 +1,11 @@ 'use strict'; -var parent = require('./4'); +require('./4'); require('../proposals/array-buffer-base64'); -require('../proposals/array-from-async-stage-2'); -require('../proposals/decorator-metadata-v2'); +require('../proposals/array-from-async'); +require('../proposals/decorator-metadata'); require('../proposals/explicit-resource-management'); require('../proposals/float16'); require('../proposals/json-parse-with-source'); require('../proposals/math-sum'); require('../proposals/regexp-escaping'); -// TODO: Obsolete versions, remove from `core-js@4` -require('../proposals/iterator-helpers-stage-3'); - -module.exports = parent; diff --git a/packages/core-js/stage/4.js b/packages/core-js/stage/4.js index 1b22c5a6534c..31cd39430a07 100644 --- a/packages/core-js/stage/4.js +++ b/packages/core-js/stage/4.js @@ -1,23 +1,2 @@ 'use strict'; -// TODO: Remove this entry from `core-js@4` -require('../proposals/accessible-object-hasownproperty'); -require('../proposals/array-buffer-transfer'); -require('../proposals/array-find-from-last'); -require('../proposals/array-grouping-v2'); -require('../proposals/change-array-by-copy-stage-4'); -// require('../proposals/error-cause'); -require('../proposals/global-this'); -require('../proposals/iterator-helpers-stage-3-2'); -require('../proposals/promise-all-settled'); -require('../proposals/promise-any'); -require('../proposals/promise-try'); -require('../proposals/promise-with-resolvers'); -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 81c4ae436430..9b424a277e27 100644 --- a/tests/compat-data/tests-coverage.mjs +++ b/tests/compat-data/tests-coverage.mjs @@ -21,7 +21,6 @@ const ignore = new Set([ 'esnext.reflect.has-metadata', 'esnext.reflect.has-own-metadata', 'esnext.reflect.metadata', - 'esnext.symbol.matcher', ]); const missed = modules.filter(it => !(tested.has(it) || tested.has(it.replace(/^esnext\./, 'es.')) || ignore.has(it))); 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 326ca22f046e..8a0cebff1a93 100644 --- a/tests/entries/unit.mjs +++ b/tests/entries/unit.mjs @@ -787,7 +787,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); @@ -825,26 +824,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'); @@ -852,12 +847,11 @@ for (PATH of ['core-js-pure', 'core-js']) { load('proposals/function-demethodize'); load('proposals/function-is-callable-is-constructor'); load('proposals/global-this'); - load('proposals/iterator-helpers-stage-3'); - load('proposals/iterator-helpers-stage-3-2'); + load('proposals/iterator-helpers'); load('proposals/iterator-range'); load('proposals/json-parse-with-source'); load('proposals/keys-composition'); - load('proposals/map-upsert-stage-2'); + load('proposals/map-emplace'); load('proposals/math-extensions'); load('proposals/math-signbit'); load('proposals/math-sum'); @@ -867,7 +861,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'); @@ -878,7 +871,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'); @@ -886,22 +879,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.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.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 b88c645fad6e40dec15fd8732ffa5c808379873c Mon Sep 17 00:00:00 2001 From: Denis Pushkarev Date: Fri, 6 Oct 2023 03:28:32 +0700 Subject: [PATCH 093/388] 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 f0e78d839292..06720a505a34 100644 --- a/.gitignore +++ b/.gitignore @@ -33,7 +33,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 8a0cebff1a93..704132dac365 100644 --- a/tests/entries/unit.mjs +++ b/tests/entries/unit.mjs @@ -892,16 +892,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 1c6ca388045338cbfdc002b16140db1231ddf2f1 Mon Sep 17 00:00:00 2001 From: Denis Pushkarev Date: Fri, 6 Oct 2023 05:32:36 +0700 Subject: [PATCH 094/388] 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 | 14 +++++++------- 5 files changed, 9 insertions(+), 25 deletions(-) diff --git a/.gitignore b/.gitignore index 06720a505a34..c1dfaae8351d 100644 --- a/.gitignore +++ b/.gitignore @@ -7,7 +7,6 @@ node_modules/ *.swp .DS_Store -/packages/core-js/features/ /packages/core-js/es/index.js /packages/core-js/full/index.js /packages/core-js/stable/index.js @@ -26,7 +25,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 3853ca9b7079..e45775f8c9db 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 704132dac365..59611185b062 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); @@ -649,7 +649,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'); @@ -672,7 +672,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, 'array/from-async') == 'function'); ok(typeof load(NS, 'async-iterator') == 'function'); ok(typeof load(NS, 'async-iterator/drop') == 'function'); @@ -709,7 +709,7 @@ for (PATH of ['core-js-pure', 'core-js']) { ok(typeof load(NS, 'async-disposable-stack/constructor') == 'function'); } - 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'); @@ -901,7 +901,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'); @@ -962,7 +962,7 @@ for (const NS of ['es', 'stable', 'actual', 'full', 'features']) { ok(typeof load(NS, 'typed-array').Uint32Array == 'function'); } -for (const NS of ['actual', 'full', 'features']) { +for (const NS of ['actual', 'full']) { load(NS, 'typed-array/from-base64'); load(NS, 'typed-array/from-hex'); load(NS, 'typed-array/set-from-base64'); @@ -971,7 +971,7 @@ for (const NS of ['actual', 'full', 'features']) { load(NS, 'typed-array/to-hex'); } -for (const NS of ['full', 'features']) { +for (const NS of ['full']) { load(NS, 'typed-array/filter-reject'); load(NS, 'typed-array/unique-by'); } From 24bc82187bd8b65b506d73091e2e614c55b0eef9 Mon Sep 17 00:00:00 2001 From: Denis Pushkarev Date: Fri, 6 Oct 2023 06:02:57 +0700 Subject: [PATCH 095/388] 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 59611185b062..932563cb1b84 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'); @@ -132,7 +129,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); @@ -175,7 +171,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 () { @@ -261,7 +256,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/to-string')(/./g) === '/./g'); From 1f42ef33617b83c5c7d06bb49951d00b33055884 Mon Sep 17 00:00:00 2001 From: Denis Pushkarev Date: Fri, 6 Oct 2023 08:28:08 +0700 Subject: [PATCH 096/388] drop descriptors check --- .../override/internals/collection.js | 3 +- .../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/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 +- 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 +- ...next.async-disposable-stack.constructor.js | 7 +- .../esnext.disposable-stack.constructor.js | 7 +- .../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/helpers/constants.js | 12 +- tests/helpers/qunit-helpers.js | 27 +- .../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 +- tests/unit-global/es.string.match-all.js | 27 +- 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.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 +- 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 +- tests/unit-global/esnext.json.parse.js | 70 +- .../esnext.symbol.async-dispose.js | 12 +- .../esnext.symbol.custom-matcher.js | 12 +- tests/unit-global/esnext.symbol.dispose.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 +- 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.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 ++++++++---------- 187 files changed, 3032 insertions(+), 3683 deletions(-) delete mode 100644 packages/core-js/internals/descriptors.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/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/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 1a8947b0d8ef..69c41a073fee 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', { @@ -51,7 +50,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..05aaf5903668 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 = global[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 3aa6d9c36ab6..41599093448b 100644 --- a/packages/core-js/modules/es.array-buffer.detached.js +++ b/packages/core-js/modules/es.array-buffer.detached.js @@ -1,11 +1,10 @@ 'use strict'; -var DESCRIPTORS = require('../internals/descriptors'); var defineBuiltInAccessor = require('../internals/define-built-in-accessor'); var isDetached = require('../internals/array-buffer-is-detached'); var ArrayBufferPrototype = ArrayBuffer.prototype; -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.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 4f3fe75aef0f..8e417051f9fc 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 167dc23496ff..c91508af4483 100644 --- a/packages/core-js/modules/es.regexp.flags.js +++ b/packages/core-js/modules/es.regexp.flags.js @@ -1,6 +1,5 @@ 'use strict'; var globalThis = require('../internals/global-this'); -var DESCRIPTORS = require('../internals/descriptors'); var defineBuiltInAccessor = require('../internals/define-built-in-accessor'); var regExpFlags = require('../internals/regexp-flags'); var fails = require('../internals/fails'); @@ -9,7 +8,7 @@ var fails = require('../internals/fails'); var RegExp = globalThis.RegExp; var RegExpPrototype = RegExp.prototype; -var FORCED = DESCRIPTORS && fails(function () { +var FORCED = fails(function () { var INDICES_SUPPORT = true; try { RegExp('.', 'd'); 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 274e2ef6cfcc..9f3a709b5441 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://github.com/tc39/proposal-Symbol-description - defineBuiltInAccessor(SymbolPrototype, 'description', { - configurable: true, - get: function description() { - return getInternalState(this).description; - } - }); - if (!IS_PURE) { - defineBuiltIn(ObjectPrototype, 'propertyIsEnumerable', $propertyIsEnumerable, { unsafe: true }); + // https://github.com/tc39/proposal-Symbol-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.async-disposable-stack.constructor.js b/packages/core-js/modules/esnext.async-disposable-stack.constructor.js index 0b9ca3939139..218d4bd4b7d4 100644 --- a/packages/core-js/modules/esnext.async-disposable-stack.constructor.js +++ b/packages/core-js/modules/esnext.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'); @@ -39,8 +38,6 @@ var $AsyncDisposableStack = function AsyncDisposableStack() { state: PENDING, stack: [] }); - - if (!DESCRIPTORS) this.disposed = false; }; var AsyncDisposableStackPrototype = $AsyncDisposableStack.prototype; @@ -52,7 +49,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; @@ -110,12 +106,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/esnext.disposable-stack.constructor.js b/packages/core-js/modules/esnext.disposable-stack.constructor.js index 435e21f6a24c..109ad7687886 100644 --- a/packages/core-js/modules/esnext.disposable-stack.constructor.js +++ b/packages/core-js/modules/esnext.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/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 2a31ff0afd5c..b16851e9c9ba 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'); @@ -949,21 +948,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; @@ -981,44 +966,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 @@ -1045,6 +1028,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/helpers/constants.js b/tests/helpers/constants.js index 63781e223695..8486a39229e2 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; @@ -92,7 +82,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 f346a5ffb10f..85421285014c 100644 --- a/tests/helpers/qunit-helpers.js +++ b/tests/helpers/qunit-helpers.js @@ -1,13 +1,10 @@ -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 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 if (!Object.freeze) Object.freeze = Object; -if (!DESCRIPTORS) Object.defineProperties = defineProperties; const { getOwnPropertyDescriptor } = Object; const { toString, propertyIsEnumerable } = Object.prototype; @@ -35,14 +32,12 @@ assign(QUnit.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 @@ -104,36 +99,30 @@ assign(QUnit.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) { 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 daaf5fe5cde6..425317e326c0 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'); @@ -13,20 +11,18 @@ QUnit.test('ArrayBuffer#detached', assert => { assert.same(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 9e1a5a15c9e7..1caf74e4b666 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; @@ -21,13 +21,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 28801a751d2f..4d281f00821e 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 => { @@ -113,14 +113,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 01701c2d617a..bcec3b533341 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 => { @@ -417,70 +417,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 => { @@ -499,11 +497,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 5d6366e48287..ce7cdbcc674c 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 || {}; @@ -40,12 +40,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), []); @@ -270,14 +270,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 11c366a48457..d795fa6be71f 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 b8222bcb506c..a1620bff4320 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 || {}; @@ -61,12 +61,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), []); @@ -255,14 +255,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.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-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.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 19356950cfcb..49d282bb108f 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 45415893b947..c40e5712aa6b 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 1e358c55104f..669c380b779a 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 } from '../helpers/constants.js'; +import { LITTLE_ENDIAN } 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 ab26601e66fe..ba6d5a8dfdc0 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 } from '../helpers/constants.js'; +import { LITTLE_ENDIAN } 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 4bea7496b107..600a4906ff2a 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, NATIVE } from '../helpers/constants.js'; +import { GLOBAL, LITTLE_ENDIAN, 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 50624f682bd4..e7ba4de6c361 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 } from '../helpers/constants.js'; +import { LITTLE_ENDIAN } 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 cff056eca071..333d4fb06bf5 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, NATIVE } from '../helpers/constants.js'; +import { GLOBAL, LITTLE_ENDIAN, 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 fb2a63106140..43bb4e0f6e1c 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, NATIVE } from '../helpers/constants.js'; +import { GLOBAL, LITTLE_ENDIAN, 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 0b2485a3d6eb..4ff79015423b 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 } from '../helpers/constants.js'; +import { LITTLE_ENDIAN } 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 83c832a9b5e1..03ec834c4ff6 100644 --- a/tests/unit-global/es.typed.conversions.uint8-clamped.js +++ b/tests/unit-global/es.typed.conversions.uint8-clamped.js @@ -1,6 +1,4 @@ -import { DESCRIPTORS } 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 adb2fd10a9ec..32be02698c4c 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, NATIVE } from '../helpers/constants.js'; +import { GLOBAL, 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.weak-map.constructor.js b/tests/unit-global/es.weak-map.constructor.js index 0c082b20f0f8..6ba11a65fbf2 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 || {}; @@ -49,12 +49,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 2297acbcb33b..af743af739de 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 || {}; @@ -43,12 +43,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 623f5fee027c..3928728d161a 100644 --- a/tests/unit-global/esnext.data-view.set-uint8-clamped.js +++ b/tests/unit-global/esnext.data-view.set-uint8-clamped.js @@ -1,5 +1,3 @@ -import { DESCRIPTORS } from '../helpers/constants.js'; - QUnit.test('DataView.prototype.{ getUint8Clamped, setUint8Clamped }', assert => { const { getUint8Clamped, setUint8Clamped } = DataView.prototype; @@ -70,12 +68,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.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.async-dispose.js b/tests/unit-global/esnext.symbol.async-dispose.js index 1111f1d2d931..d01dd379b0ce 100644 --- a/tests/unit-global/esnext.symbol.async-dispose.js +++ b/tests/unit-global/esnext.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/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.dispose.js b/tests/unit-global/esnext.symbol.dispose.js index 910fcb2cb1e5..05e3770ddc5a 100644 --- a/tests/unit-global/esnext.symbol.dispose.js +++ b/tests/unit-global/esnext.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/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 1c4c7e2a1106..e6f390049b1d 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 }, @@ -70,10 +70,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 237a288dd9d9..96a97970f043 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 aab54db9c110..fbab353df06b 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'; @@ -112,14 +111,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 e2a54df76f45..c415a8877903 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'; @@ -418,70 +418,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 => { @@ -498,11 +496,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 581d8b74581c..a70d55272c2f 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'; @@ -45,12 +44,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), []); @@ -245,14 +244,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 e4732131dd5d..eaa481ca7714 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'; @@ -64,12 +63,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), []); @@ -239,16 +238,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.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 76b5bbc0edf0..79ee4a3c9fb8 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'; @@ -52,12 +52,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 bb13faeef070..23607fe5b000 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'; @@ -45,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-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 d0a794eb949b..8b4529f39c83 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'; @@ -72,10 +72,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 aada22196f24..74cbe1008910 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 fd9e485c34bcc882000dc365accd7582b5419f4f Mon Sep 17 00:00:00 2001 From: Denis Pushkarev Date: Fri, 6 Oct 2023 09:03:29 +0700 Subject: [PATCH 097/388] drop `es.array.is-array` (required for ES3 only) --- 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 +-- 24 files changed, 12 insertions(+), 75 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/packages/core-js-compat/src/data.mjs b/packages/core-js-compat/src/data.mjs index eca32676ebce..348f80c16d51 100644 --- a/packages/core-js-compat/src/data.mjs +++ b/packages/core-js-compat/src/data.mjs @@ -259,15 +259,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 abae289bdabf..3b8deed6a168 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 04b20305c7a3..fe6c9b80b3eb 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.github.io/proposal-flatMap/#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 bd5e8ea5b3df..6b7197aa8667 100644 --- a/tests/compat/tests.js +++ b/tests/compat/tests.js @@ -426,9 +426,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 932563cb1b84..f9f61eba427b 100644 --- a/tests/entries/unit.mjs +++ b/tests/entries/unit.mjs @@ -58,7 +58,6 @@ for (PATH of ['core-js-pure', 'core-js']) { load(NS, 'function/has-instance'); load(NS, 'function'); ok(Array.isArray(load(NS, 'array/from')('qwe'))); - 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 dd66ece37c56..4d4a39848243 100644 --- a/tests/eslint/eslint.config.js +++ b/tests/eslint/eslint.config.js @@ -1071,7 +1071,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 140b5a2672fddbe4ba30c8d89f1f59acd1c66bd4 Mon Sep 17 00:00:00 2001 From: Denis Pushkarev Date: Fri, 6 Oct 2023 09:26:38 +0700 Subject: [PATCH 098/388] drop `es.date.now` (required for ES3 only) --- README.md | 5 ++--- 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, 2 insertions(+), 60 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 5a83b5558415..0d7745dd215d 100644 --- a/README.md +++ b/README.md @@ -675,7 +675,7 @@ Error.prototype.toString.call({ message: 1, name: 2 }) === '2: 1'; // => true ``` #### 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.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.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; @@ -715,7 +715,6 @@ class Array { @@iterator(): Iterator; @@unscopables: { [newMethodNames: string]: true }; static from(items: Iterable | ArrayLike, mapFn?: (value: any, index: number) => any, thisArg?: any): Array; - static isArray(value: any): boolean; static of(...args: Array): Array; } @@ -1175,7 +1174,7 @@ core-js(-pure)/es|stable|actual|full/math/tanh core-js(-pure)/es|stable|actual|full/math/trunc ``` #### 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 348f80c16d51..34475e23f690 100644 --- a/packages/core-js-compat/src/data.mjs +++ b/packages/core-js-compat/src/data.mjs @@ -470,16 +470,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 6b7197aa8667..5b4023fa6d1b 100644 --- a/tests/compat/tests.js +++ b/tests/compat/tests.js @@ -613,10 +613,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 f9f61eba427b..6b3e14331963 100644 --- a/tests/entries/unit.mjs +++ b/tests/entries/unit.mjs @@ -272,7 +272,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 4d4a39848243..78136fea2b5f 100644 --- a/tests/eslint/eslint.config.js +++ b/tests/eslint/eslint.config.js @@ -1080,7 +1080,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, @@ -1097,8 +1096,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 2b71bb2e5a5ec6e004536fae75b84a2f6002bb5d Mon Sep 17 00:00:00 2001 From: Denis Pushkarev Date: Fri, 6 Oct 2023 09:35:15 +0700 Subject: [PATCH 099/388] allow unquoted keyword properties --- packages/core-js/actual/instance/with.js | 4 ++-- packages/core-js/es/instance/with.js | 4 ++-- packages/core-js/es/symbol/for.js | 2 +- .../internals/async-from-sync-iterator.js | 2 +- .../internals/async-iterator-create-proxy.js | 2 +- .../internals/check-correctness-of-iteration.js | 2 +- packages/core-js/internals/collection-strong.js | 2 +- packages/core-js/internals/collection-weak.js | 6 +++--- .../core-js/internals/iterator-create-proxy.js | 2 +- packages/core-js/internals/map-helpers.js | 2 +- .../internals/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 +++--- packages/core-js/internals/weak-map-helpers.js | 2 +- packages/core-js/internals/weak-set-helpers.js | 2 +- packages/core-js/internals/well-known-symbol.js | 2 +- packages/core-js/modules/es.array.with.js | 2 +- packages/core-js/modules/es.promise.catch.js | 6 +++--- packages/core-js/modules/es.promise.finally.js | 8 ++++---- packages/core-js/modules/es.symbol.for.js | 2 +- packages/core-js/modules/es.typed-array.with.js | 6 +++--- .../core-js/modules/es.weak-map.constructor.js | 6 +++--- .../modules/esnext.async-iterator.take.js | 2 +- .../core-js/modules/esnext.composite-symbol.js | 2 +- .../modules/esnext.reflect.delete-metadata.js | 6 +++--- .../modules/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 | 16 ++++++++-------- tests/eslint/eslint.config.js | 6 +----- 31 files changed, 56 insertions(+), 61 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/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 b4ab0179da73..2abc799f83ae 100644 --- a/packages/core-js/internals/async-from-sync-iterator.js +++ b/packages/core-js/internals/async-from-sync-iterator.js @@ -35,7 +35,7 @@ AsyncFromSyncIterator.prototype = defineBuiltIns(create(AsyncIteratorPrototype), asyncFromSyncIteratorContinuation(result, resolve, reject); }); }, - '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 ffb9d7454875..67874f99f907 100644 --- a/packages/core-js/internals/iterator-create-proxy.js +++ b/packages/core-js/internals/iterator-create-proxy.js @@ -33,7 +33,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/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 77fd99f86398..d462e156a516 100644 --- a/packages/core-js/modules/es.array.with.js +++ b/packages/core-js/modules/es.array.with.js @@ -8,7 +8,7 @@ var $Array = Array; // `Array.prototype.with` method // https://tc39.es/ecma262/#sec-array.prototype.with $({ target: 'Array', proto: true }, { - 'with': function (index, value) { + with: function (index, value) { return arrayWith(toIndexedObject(this), $Array, index, value); } }); 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.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 f9e83cdecb8f..693b1ae331bd 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 @@ -22,9 +22,9 @@ var 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); +} }.with, !PROPER_ORDER); 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 977febad98ab..2fe080647c72 100644 --- a/packages/core-js/modules/esnext.async-iterator.take.js +++ b/packages/core-js/modules/esnext.async-iterator.take.js @@ -17,7 +17,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 1523bbd23a10..28fc7d9edfff 100644 --- a/scripts/bundle-package/bundle-package.mjs +++ b/scripts/bundle-package/bundle-package.mjs @@ -21,7 +21,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 5b4023fa6d1b..44db4d6146af 100644 --- a/tests/compat/tests.js +++ b/tests/compat/tests.js @@ -88,7 +88,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 () { @@ -98,7 +98,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 @@ -130,7 +130,7 @@ var SAFE_ITERATION_CLOSING_SUPPORT = function () { next: function () { return { done: !!called++ }; }, - 'return': function () { + return: function () { SAFE_CLOSING = true; } }; @@ -580,7 +580,7 @@ GLOBAL.tests = { } }, 'es.array.with': function () { - return []['with']; + return [].with; }, 'es.array-buffer.constructor': [ARRAY_BUFFER_SUPPORT, function () { try { @@ -985,7 +985,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, @@ -1508,7 +1508,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; } @@ -2009,10 +2009,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 78136fea2b5f..7385ecfea5a6 100644 --- a/tests/eslint/eslint.config.js +++ b/tests/eslint/eslint.config.js @@ -1017,8 +1017,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 @@ -1045,8 +1043,6 @@ const useES3Syntax = { 'prefer-template': OFF, // disallow trailing commas in multiline object literals '@stylistic/js/comma-dangle': [ERROR, NEVER], - // require or disallow use of quotes around object literal property names - '@stylistic/js/quote-props': [ERROR, 'as-needed', { keywords: true }], // 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 @@ -1773,7 +1769,7 @@ export default [ 'tests/@(compat|worker)/*.js', ], languageOptions: { - ecmaVersion: 3, + ecmaVersion: 5, }, rules: useES3Syntax, }, From 189576be820ec6821483b3bb40f3f1d7fb6cad4a Mon Sep 17 00:00:00 2001 From: Denis Pushkarev Date: Fri, 6 Oct 2023 09:49:01 +0700 Subject: [PATCH 100/388] 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 +- packages/core-js/es/promise/try.js | 6 +- .../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 +- 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-sticky-helpers.js | 2 +- packages/core-js/internals/set-helpers.js | 2 +- .../internals/set-method-accept-set-like.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 | 10 ++-- .../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 +- 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 +- .../modules/es.data-view.constructor.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 +- 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.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 +- 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 | 8 +-- .../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.exec.js | 2 +- packages/core-js/modules/es.regexp.flags.js | 4 +- 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 | 30 ++++++++++ .../core-js/modules/es.set.intersection.js | 41 +++++++++++++ .../modules/es.set.is-disjoint-from.js | 26 +++++++++ .../core-js/modules/es.set.is-subset-of.js | 20 +++++++ .../core-js/modules/es.set.is-superset-of.js | 23 ++++++++ .../modules/es.set.symmetric-difference.js | 27 +++++++++ packages/core-js/modules/es.set.union.js | 22 +++++++ 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 +- .../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 +- packages/core-js/modules/es.unescape.js | 2 +- .../modules/es.weak-map.constructor.js | 4 +- .../modules/esnext.array.filter-reject.js | 2 +- .../modules/esnext.array.from-async.js | 2 +- .../esnext.array.is-template-object.js | 2 +- .../core-js/modules/esnext.array.unique-by.js | 2 +- ...next.async-disposable-stack.constructor.js | 8 +-- .../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 +- .../modules/esnext.data-view.get-float16.js | 2 +- .../esnext.data-view.get-uint8-clamped.js | 2 +- .../modules/esnext.data-view.set-float16.js | 2 +- .../esnext.data-view.set-uint8-clamped.js | 2 +- .../esnext.disposable-stack.constructor.js | 8 +-- .../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.range.js | 6 +- .../modules/esnext.iterator.to-async.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 +- .../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 +- packages/core-js/modules/esnext.math.clamp.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 +- .../modules/esnext.math.sum-precise.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.regexp.escape.js | 4 +- .../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.suppressed-error.constructor.js | 4 +- .../esnext.symbol.is-registered-symbol.js | 2 +- .../esnext.symbol.is-well-known-symbol.js | 2 +- .../modules/esnext.uint8-array.from-base64.js | 2 +- .../modules/esnext.uint8-array.from-hex.js | 2 +- .../esnext.uint8-array.set-from-base64.js | 2 +- .../esnext.uint8-array.set-from-hex.js | 2 +- .../modules/esnext.uint8-array.to-base64.js | 2 +- .../modules/esnext.uint8-array.to-hex.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 +- .../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 | 58 +++++++++---------- tests/eslint/eslint.config.js | 6 +- tests/unit-pure/es.array.concat.js | 2 +- 396 files changed, 712 insertions(+), 525 deletions(-) create mode 100644 packages/core-js/modules/es.set.difference.js create mode 100644 packages/core-js/modules/es.set.intersection.js create mode 100644 packages/core-js/modules/es.set.is-disjoint-from.js create mode 100644 packages/core-js/modules/es.set.is-subset-of.js create mode 100644 packages/core-js/modules/es.set.is-superset-of.js create mode 100644 packages/core-js/modules/es.set.symmetric-difference.js create mode 100644 packages/core-js/modules/es.set.union.js 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/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/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 2abc799f83ae..a83b5c00e1e5 100644 --- a/packages/core-js/internals/async-from-sync-iterator.js +++ b/packages/core-js/internals/async-from-sync-iterator.js @@ -43,7 +43,7 @@ AsyncFromSyncIterator.prototype = defineBuiltIns(create(AsyncIteratorPrototype), var result = anObject(call($return, iterator)); asyncFromSyncIteratorContinuation(result, resolve, reject); }); - } + }, }); 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 684c0bf88706..5a1ff8d98466 100644 --- a/packages/core-js/internals/async-iterator-iteration.js +++ b/packages/core-js/internals/async-iterator-iteration.js @@ -86,5 +86,5 @@ module.exports = { forEach: createMethod(1), every: createMethod(2), some: createMethod(3), - 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 b321956fc76f..2fdfe0a0757b 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 67874f99f907..efa0c83744d2 100644 --- a/packages/core-js/internals/iterator-create-proxy.js +++ b/packages/core-js/internals/iterator-create-proxy.js @@ -48,7 +48,7 @@ var createIteratorProxyPrototype = function (IS_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/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 69c41a073fee..ac73e7040a64 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-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 679087970658..889e329bab09 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 }; - } + }, }; - } + }, }; }; 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 4164a4840432..63f3ebef0de0 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-2024 Denis Pushkarev (zloirock.ru)', license: 'https://github.com/zloirock/core-js/blob/v3.38.1/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 419e904d65a3..32cf4b3cf46a 100644 --- a/packages/core-js/internals/string-pad.js +++ b/packages/core-js/internals/string-pad.js @@ -32,5 +32,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 05aaf5903668..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) { @@ -114,7 +114,7 @@ module.exports = function (TYPE, wrapper, CLAMPED) { var CONSTRUCTOR_NAME = TYPE + (CLAMPED ? 'Clamped' : '') + 'Array'; var GETTER = 'get' + TYPE; var SETTER = 'set' + TYPE; - var NativeTypedArrayConstructor = global[CONSTRUCTOR_NAME]; + var NativeTypedArrayConstructor = globalThis[CONSTRUCTOR_NAME]; var TypedArrayConstructor = NativeTypedArrayConstructor; var TypedArrayConstructorPrototype = TypedArrayConstructor && TypedArrayConstructor.prototype; var exported = {}; @@ -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 1297e0c9ead5..79d49a32e570 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 41599093448b..6739cc2af46c 100644 --- a/packages/core-js/modules/es.array-buffer.detached.js +++ b/packages/core-js/modules/es.array-buffer.detached.js @@ -9,6 +9,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 52af48caefc0..01f1d3742090 100644 --- a/packages/core-js/modules/es.array-buffer.slice.js +++ b/packages/core-js/modules/es.array-buffer.slice.js @@ -36,5 +36,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 55a9f8a7f08a..30ccd8031174 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 197658dee9d0..84a5978b5f28 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.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 d462e156a516..1f6bb9c688f6 100644 --- a/packages/core-js/modules/es.array.with.js +++ b/packages/core-js/modules/es.array.with.js @@ -10,5 +10,5 @@ var $Array = Array; $({ target: 'Array', proto: true }, { with: function (index, value) { return arrayWith(toIndexedObject(this), $Array, index, value); - } + }, }); 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.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.escape.js b/packages/core-js/modules/es.escape.js index 20e1b9988a93..54e02fd77bdb 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 8e417051f9fc..67efac53fd1e 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://github.com/tc39/proposal-iterator-helpers $({ 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 3e7a093bb16a..d2805f7b34ac 100644 --- a/packages/core-js/modules/es.iterator.drop.js +++ b/packages/core-js/modules/es.iterator.drop.js @@ -30,7 +30,7 @@ $({ target: 'Iterator', proto: true, real: true, forced: IS_PURE }, { anObject(this); var remaining = toPositiveInteger(notANaN(+limit)); 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 32f470e0db20..953ea4709a83 100644 --- a/packages/core-js/modules/es.iterator.every.js +++ b/packages/core-js/modules/es.iterator.every.js @@ -16,5 +16,5 @@ $({ target: 'Iterator', proto: true, real: true }, { 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 981d68d84f4d..648a80a51d8c 100644 --- a/packages/core-js/modules/es.iterator.filter.js +++ b/packages/core-js/modules/es.iterator.filter.js @@ -29,7 +29,7 @@ $({ target: 'Iterator', proto: true, real: true, forced: IS_PURE }, { anObject(this); aCallable(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 37a717b7cb92..adef228d0d90 100644 --- a/packages/core-js/modules/es.iterator.find.js +++ b/packages/core-js/modules/es.iterator.find.js @@ -16,5 +16,5 @@ $({ target: 'Iterator', proto: true, real: true }, { 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 3e616ecfce4e..c40d38880e79 100644 --- a/packages/core-js/modules/es.iterator.flat-map.js +++ b/packages/core-js/modules/es.iterator.flat-map.js @@ -39,7 +39,7 @@ $({ target: 'Iterator', proto: true, real: true, forced: IS_PURE }, { aCallable(mapper); 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 6fa7bc008472..b77f28e0f185 100644 --- a/packages/core-js/modules/es.iterator.for-each.js +++ b/packages/core-js/modules/es.iterator.for-each.js @@ -16,5 +16,5 @@ $({ target: 'Iterator', proto: true, real: true }, { 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 323db55d52cb..243c38d9ae16 100644 --- a/packages/core-js/modules/es.iterator.from.js +++ b/packages/core-js/modules/es.iterator.from.js @@ -20,5 +20,5 @@ $({ target: 'Iterator', stat: true, forced: IS_PURE }, { 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 3c74961e9bd4..441f327a78d2 100644 --- a/packages/core-js/modules/es.iterator.map.js +++ b/packages/core-js/modules/es.iterator.map.js @@ -22,7 +22,7 @@ $({ target: 'Iterator', proto: true, real: true, forced: IS_PURE }, { anObject(this); aCallable(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 6516a4b97df7..eee7504e4c5d 100644 --- a/packages/core-js/modules/es.iterator.reduce.js +++ b/packages/core-js/modules/es.iterator.reduce.js @@ -28,5 +28,5 @@ $({ target: 'Iterator', proto: true, real: true }, { }, { 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 7d4454991d05..74775b6d6376 100644 --- a/packages/core-js/modules/es.iterator.some.js +++ b/packages/core-js/modules/es.iterator.some.js @@ -16,5 +16,5 @@ $({ target: 'Iterator', proto: true, real: true }, { 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 b2c9302ecebb..ef151557600f 100644 --- a/packages/core-js/modules/es.iterator.take.js +++ b/packages/core-js/modules/es.iterator.take.js @@ -27,7 +27,7 @@ $({ target: 'Iterator', proto: true, real: true, forced: IS_PURE }, { anObject(this); var remaining = toPositiveInteger(notANaN(+limit)); 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 e34c35bcca43..97e85bf2f5d7 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 3c62efc1857f..7b5b4e9a3f73 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 2fbfe468e228..99f27aac07a5 100644 --- a/packages/core-js/modules/es.map.group-by.js +++ b/packages/core-js/modules/es.map.group-by.js @@ -34,5 +34,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.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 95cb4f9464c2..9d610d68a8c4 100644 --- a/packages/core-js/modules/es.math.log2.js +++ b/packages/core-js/modules/es.math.log2.js @@ -9,5 +9,5 @@ var LN2 = Math.LN2; $({ target: 'Math', stat: true }, { log2: function log2(x) { return log(x) / LN2; - } + }, }); 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.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 ed06e0d03896..f8677ec2af66 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 2ac36b033ca5..85fbaaca2c7c 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 9e49e53a1e38..c18bee644eef 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 12332a8a0a97..3fad48ca0665 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 d3ff4d4248b7..2798c138a247 100644 --- a/packages/core-js/modules/es.object.group-by.js +++ b/packages/core-js/modules/es.object.group-by.js @@ -35,5 +35,5 @@ $({ target: 'Object', stat: true, forced: DOES_NOT_WORK_WITH_PRIMITIVES }, { else 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 86601904cb8f..8edb93f7fff6 100644 --- a/packages/core-js/modules/es.promise.constructor.js +++ b/packages/core-js/modules/es.promise.constructor.js @@ -220,7 +220,7 @@ if (FORCED_PROMISE_CONSTRUCTOR) { reactions: new Queue(), rejection: false, state: PENDING, - value: null + value: null, }); }; @@ -281,7 +281,7 @@ if (FORCED_PROMISE_CONSTRUCTOR) { } $({ global: true, constructor: true, wrap: true, forced: FORCED_PROMISE_CONSTRUCTOR }, { - Promise: PromiseConstructor + Promise: PromiseConstructor, }); setToStringTag(PromiseConstructor, PROMISE, false, true); 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 c2e2be38a55c..d7b2d3af5511 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://github.com/tc39/proposal-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 () { @@ -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 2dc0f4f2f679..3412fd49b6a0 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.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 c91508af4483..3f2958eae9a2 100644 --- a/packages/core-js/modules/es.regexp.flags.js +++ b/packages/core-js/modules/es.regexp.flags.js @@ -34,7 +34,7 @@ var FORCED = fails(function () { global: 'g', ignoreCase: 'i', multiline: 'm', - sticky: 'y' + sticky: 'y', }; if (INDICES_SUPPORT) pairs.hasIndices = 'd'; @@ -51,5 +51,5 @@ var FORCED = fails(function () { // https://tc39.es/ecma262/#sec-get-regexp.prototype.flags if (FORCED) defineBuiltInAccessor(RegExpPrototype, 'flags', { configurable: true, - get: regExpFlags + get: regExpFlags, }); 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 new file mode 100644 index 000000000000..96749aa1fbd9 --- /dev/null +++ b/packages/core-js/modules/es.set.difference.js @@ -0,0 +1,30 @@ +'use strict'; +var $ = require('../internals/export'); +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 setMethodAcceptSetLike = require('../internals/set-method-accept-set-like'); + +var has = SetHelpers.has; +var remove = SetHelpers.remove; + +// `Set.prototype.difference` method +// https://github.com/tc39/proposal-set-methods +$({ target: 'Set', proto: true, real: true, forced: !setMethodAcceptSetLike('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(O, 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 new file mode 100644 index 000000000000..327199e12174 --- /dev/null +++ b/packages/core-js/modules/es.set.intersection.js @@ -0,0 +1,41 @@ +'use strict'; +var $ = require('../internals/export'); +var fails = require('../internals/fails'); +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') || fails(function () { + // 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'; +}); + +// `Set.prototype.intersection` method +// https://github.com/tc39/proposal-set-methods +$({ target: 'Set', proto: true, real: true, forced: INCORRECT }, { + 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/es.set.is-disjoint-from.js b/packages/core-js/modules/es.set.is-disjoint-from.js new file mode 100644 index 000000000000..a9e5839737c7 --- /dev/null +++ b/packages/core-js/modules/es.set.is-disjoint-from.js @@ -0,0 +1,26 @@ +'use strict'; +var $ = require('../internals/export'); +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'); + +// `Set.prototype.isDisjointFrom` method +// https://github.com/tc39/proposal-set-methods +$({ target: 'Set', proto: true, real: true, forced: !setMethodAcceptSetLike('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/es.set.is-subset-of.js b/packages/core-js/modules/es.set.is-subset-of.js new file mode 100644 index 000000000000..517acbb3149e --- /dev/null +++ b/packages/core-js/modules/es.set.is-subset-of.js @@ -0,0 +1,20 @@ +'use strict'; +var $ = require('../internals/export'); +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'); + +// `Set.prototype.isSubsetOf` method +// https://github.com/tc39/proposal-set-methods +$({ target: 'Set', proto: true, real: true, forced: !setMethodAcceptSetLike('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/es.set.is-superset-of.js b/packages/core-js/modules/es.set.is-superset-of.js new file mode 100644 index 000000000000..221172e48b9a --- /dev/null +++ b/packages/core-js/modules/es.set.is-superset-of.js @@ -0,0 +1,23 @@ +'use strict'; +var $ = require('../internals/export'); +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'); + +// `Set.prototype.isSupersetOf` method +// https://github.com/tc39/proposal-set-methods +$({ target: 'Set', proto: true, real: true, forced: !setMethodAcceptSetLike('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/es.set.symmetric-difference.js b/packages/core-js/modules/es.set.symmetric-difference.js new file mode 100644 index 000000000000..ee2221d7efbc --- /dev/null +++ b/packages/core-js/modules/es.set.symmetric-difference.js @@ -0,0 +1,27 @@ +'use strict'; +var $ = require('../internals/export'); +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 setMethodAcceptSetLike = require('../internals/set-method-accept-set-like'); + +var add = SetHelpers.add; +var has = SetHelpers.has; +var remove = SetHelpers.remove; + +// `Set.prototype.symmetricDifference` method +// https://github.com/tc39/proposal-set-methods +$({ target: 'Set', proto: true, real: true, forced: !setMethodAcceptSetLike('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/es.set.union.js b/packages/core-js/modules/es.set.union.js new file mode 100644 index 000000000000..cceb2ca3ccf5 --- /dev/null +++ b/packages/core-js/modules/es.set.union.js @@ -0,0 +1,22 @@ +'use strict'; +var $ = require('../internals/export'); +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 setMethodAcceptSetLike = require('../internals/set-method-accept-set-like'); + +// `Set.prototype.union` method +// https://github.com/tc39/proposal-set-methods +$({ target: 'Set', proto: true, real: true, forced: !setMethodAcceptSetLike('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/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 5fbdfa8101f8..823201cc6cb7 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 3d1cce10c441..71bba2906fc9 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 354c40f065f9..dd228cb0717e 100644 --- a/packages/core-js/modules/es.string.match.js +++ b/packages/core-js/modules/es.string.match.js @@ -43,6 +43,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 6904d7ff4673..f3331d87ca97 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 c3b8c6509159..4ba936cb7c18 100644 --- a/packages/core-js/modules/es.string.replace.js +++ b/packages/core-js/modules/es.string.replace.js @@ -137,6 +137,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 17bf7ba2f4d0..30b1d3727649 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 4d7690188575..6ccd491bfec6 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 e20abb2001c7..a349cfe5abf5 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.symbol.constructor.js b/packages/core-js/modules/es.symbol.constructor.js index 9f3a709b5441..06b1ee8774ad 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.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.from-async.js b/packages/core-js/modules/esnext.array.from-async.js index ad057464c194..059e4b48eb07 100644 --- a/packages/core-js/modules/esnext.array.from-async.js +++ b/packages/core-js/modules/esnext.array.from-async.js @@ -62,5 +62,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/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-disposable-stack.constructor.js b/packages/core-js/modules/esnext.async-disposable-stack.constructor.js index 218d4bd4b7d4..1e778a6aa5da 100644 --- a/packages/core-js/modules/esnext.async-disposable-stack.constructor.js +++ b/packages/core-js/modules/esnext.async-disposable-stack.constructor.js @@ -36,7 +36,7 @@ var $AsyncDisposableStack = function AsyncDisposableStack() { setInternalState(anInstance(this, AsyncDisposableStackPrototype), { type: ASYNC_DISPOSABLE_STACK, state: PENDING, - stack: [] + stack: [], }); }; @@ -107,19 +107,19 @@ 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' }); defineBuiltIn(AsyncDisposableStackPrototype, TO_STRING_TAG, ASYNC_DISPOSABLE_STACK, { nonWritable: true }); $({ global: true, constructor: true }, { - AsyncDisposableStack: $AsyncDisposableStack + AsyncDisposableStack: $AsyncDisposableStack, }); 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 f6535bad91e4..42247e4d96d1 100644 --- a/packages/core-js/modules/esnext.async-iterator.drop.js +++ b/packages/core-js/modules/esnext.async-iterator.drop.js @@ -45,7 +45,7 @@ $({ target: 'AsyncIterator', proto: true, real: true, forced: IS_PURE }, { 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 f8a777342547..99d1a94de7f8 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 }, { 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 1455504714e6..cf4c719b6aa5 100644 --- a/packages/core-js/modules/esnext.async-iterator.filter.js +++ b/packages/core-js/modules/esnext.async-iterator.filter.js @@ -61,7 +61,7 @@ $({ target: 'AsyncIterator', proto: true, real: true, forced: IS_PURE }, { 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 beb69468b0dd..80f248e7ebed 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 }, { 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 50195b6d6273..a02b7a9cd0a1 100644 --- a/packages/core-js/modules/esnext.async-iterator.flat-map.js +++ b/packages/core-js/modules/esnext.async-iterator.flat-map.js @@ -82,7 +82,7 @@ $({ target: 'AsyncIterator', proto: true, real: true, forced: IS_PURE }, { 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 c56ad130d007..08e8dede0e0a 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 }, { 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 8eed9803c1aa..b91065f9d7ee 100644 --- a/packages/core-js/modules/esnext.async-iterator.from.js +++ b/packages/core-js/modules/esnext.async-iterator.from.js @@ -15,5 +15,5 @@ $({ target: 'AsyncIterator', stat: true, forced: IS_PURE }, { 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 a8a9e5c0682a..9dee56e6fe74 100644 --- a/packages/core-js/modules/esnext.async-iterator.map.js +++ b/packages/core-js/modules/esnext.async-iterator.map.js @@ -55,7 +55,7 @@ $({ target: 'AsyncIterator', proto: true, real: true, forced: IS_PURE }, { 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 b417a51d26ab..19248f592d19 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 }, { loop(); }); - } + }, }); diff --git a/packages/core-js/modules/esnext.async-iterator.some.js b/packages/core-js/modules/esnext.async-iterator.some.js index 1dc324dc9b7e..75910443552b 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 }, { 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 2fe080647c72..92a278305c2f 100644 --- a/packages/core-js/modules/esnext.async-iterator.take.js +++ b/packages/core-js/modules/esnext.async-iterator.take.js @@ -42,7 +42,7 @@ $({ target: 'AsyncIterator', proto: true, real: true, forced: IS_PURE }, { 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 4476457ee236..200fb465e221 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 }, { 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-float16.js b/packages/core-js/modules/esnext.data-view.get-float16.js index eac608cc235e..392aeb9a9c0f 100644 --- a/packages/core-js/modules/esnext.data-view.get-float16.js +++ b/packages/core-js/modules/esnext.data-view.get-float16.js @@ -12,5 +12,5 @@ $({ target: 'DataView', proto: true }, { getFloat16: function getFloat16(byteOffset /* , littleEndian */) { var uint16 = getUint16(this, byteOffset, arguments.length > 1 ? arguments[1] : false); return unpackIEEE754([uint16 & 0xFF, uint16 >> 8 & 0xFF], 10); - } + }, }); 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-float16.js b/packages/core-js/modules/esnext.data-view.set-float16.js index 28d0862a4bfc..691ad42fb7bd 100644 --- a/packages/core-js/modules/esnext.data-view.set-float16.js +++ b/packages/core-js/modules/esnext.data-view.set-float16.js @@ -17,5 +17,5 @@ $({ target: 'DataView', proto: true }, { var offset = toIndex(byteOffset); var bytes = packIEEE754(f16round(value), 10, 2); return setUint16(this, offset, bytes[1] << 8 | bytes[0], arguments.length > 2 ? arguments[2] : false); - } + }, }); 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 ec60716f1c21..f8f2f14c4a33 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 @@ -15,5 +15,5 @@ $({ target: 'DataView', proto: true, forced: true }, { aDataView(this); var offset = toIndex(byteOffset); return setUint8(this, offset, toUint8Clamped(value)); - } + }, }); diff --git a/packages/core-js/modules/esnext.disposable-stack.constructor.js b/packages/core-js/modules/esnext.disposable-stack.constructor.js index 109ad7687886..04238e777934 100644 --- a/packages/core-js/modules/esnext.disposable-stack.constructor.js +++ b/packages/core-js/modules/esnext.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/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.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.to-async.js b/packages/core-js/modules/esnext.iterator.to-async.js index fa7ee2efef86..08866a1a2a37 100644 --- a/packages/core-js/modules/esnext.iterator.to-async.js +++ b/packages/core-js/modules/esnext.iterator.to-async.js @@ -11,5 +11,5 @@ var IS_PURE = require('../internals/is-pure'); $({ target: 'Iterator', proto: true, real: true, forced: IS_PURE }, { toAsync: function toAsync() { return new WrapAsyncIterator(getIteratorDirect(new AsyncFromSyncIterator(getIteratorDirect(anObject(this))))); - } + }, }); 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 2fbc950376bd..09decec0d499 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 34d8734e99f6..08ccc901d653 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.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.clamp.js b/packages/core-js/modules/esnext.math.clamp.js index 49a3d30fe180..8b9ff533f943 100644 --- a/packages/core-js/modules/esnext.math.clamp.js +++ b/packages/core-js/modules/esnext.math.clamp.js @@ -9,5 +9,5 @@ var max = Math.max; $({ target: 'Math', stat: true, forced: true }, { clamp: function clamp(x, lower, upper) { return min(upper, max(lower, x)); - } + }, }); 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.math.sum-precise.js b/packages/core-js/modules/esnext.math.sum-precise.js index 80ba8d49d489..81765dc6ec5d 100644 --- a/packages/core-js/modules/esnext.math.sum-precise.js +++ b/packages/core-js/modules/esnext.math.sum-precise.js @@ -147,5 +147,5 @@ $({ target: 'Math', stat: true }, { } return hi; - } + }, }); diff --git a/packages/core-js/modules/esnext.number.from-string.js b/packages/core-js/modules/esnext.number.from-string.js index f3851ae29df5..568bc03398e2 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.regexp.escape.js b/packages/core-js/modules/esnext.regexp.escape.js index 31af8a2545f2..bc2567dee3a5 100644 --- a/packages/core-js/modules/esnext.regexp.escape.js +++ b/packages/core-js/modules/esnext.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/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.suppressed-error.constructor.js b/packages/core-js/modules/esnext.suppressed-error.constructor.js index f1f57e995e75..d842f6580a0b 100644 --- a/packages/core-js/modules/esnext.suppressed-error.constructor.js +++ b/packages/core-js/modules/esnext.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/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.uint8-array.from-base64.js b/packages/core-js/modules/esnext.uint8-array.from-base64.js index 1dfc859730bf..b1fa6dec0f12 100644 --- a/packages/core-js/modules/esnext.uint8-array.from-base64.js +++ b/packages/core-js/modules/esnext.uint8-array.from-base64.js @@ -12,5 +12,5 @@ if (Uint8Array) $({ target: 'Uint8Array', stat: true }, { 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/esnext.uint8-array.from-hex.js b/packages/core-js/modules/esnext.uint8-array.from-hex.js index 036f3a8b11a6..dcbec6fc130a 100644 --- a/packages/core-js/modules/esnext.uint8-array.from-hex.js +++ b/packages/core-js/modules/esnext.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/esnext.uint8-array.set-from-base64.js b/packages/core-js/modules/esnext.uint8-array.set-from-base64.js index 976fcb19d35b..c1cf97237263 100644 --- a/packages/core-js/modules/esnext.uint8-array.set-from-base64.js +++ b/packages/core-js/modules/esnext.uint8-array.set-from-base64.js @@ -15,5 +15,5 @@ if (Uint8Array) $({ target: 'Uint8Array', proto: true }, { 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/esnext.uint8-array.set-from-hex.js b/packages/core-js/modules/esnext.uint8-array.set-from-hex.js index 29f54208db6a..91895d8ac57c 100644 --- a/packages/core-js/modules/esnext.uint8-array.set-from-hex.js +++ b/packages/core-js/modules/esnext.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/esnext.uint8-array.to-base64.js b/packages/core-js/modules/esnext.uint8-array.to-base64.js index e7426e396964..37e05ea4afbc 100644 --- a/packages/core-js/modules/esnext.uint8-array.to-base64.js +++ b/packages/core-js/modules/esnext.uint8-array.to-base64.js @@ -45,5 +45,5 @@ if (globalThis.Uint8Array) $({ target: 'Uint8Array', proto: true }, { } return result; - } + }, }); diff --git a/packages/core-js/modules/esnext.uint8-array.to-hex.js b/packages/core-js/modules/esnext.uint8-array.to-hex.js index e023ad053b63..7b99eec7200a 100644 --- a/packages/core-js/modules/esnext.uint8-array.to-hex.js +++ b/packages/core-js/modules/esnext.uint8-array.to-hex.js @@ -19,5 +19,5 @@ if (globalThis.Uint8Array) $({ target: 'Uint8Array', proto: true }, { result += hex.length === 1 ? '0' + hex : hex; } return result; - } + }, }); 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.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 95ee571adebd..127528a70c44 100644 --- a/packages/core-js/modules/web.structured-clone.js +++ b/packages/core-js/modules/web.structured-clone.js @@ -527,5 +527,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 b16851e9c9ba..dd8e813f9ce9 100644 --- a/packages/core-js/modules/web.url.constructor.js +++ b/packages/core-js/modules/web.url.constructor.js @@ -242,13 +242,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) { @@ -263,7 +263,7 @@ var specialSchemes = { http: 80, https: 443, ws: 80, - wss: 443 + wss: 443, }; // https://url.spec.whatwg.org/#windows-drive-letter @@ -940,7 +940,7 @@ URLState.prototype = { }, update: function () { this.query = this.searchParams.serialize() || null; - } + }, }; // `URL` constructor @@ -962,7 +962,7 @@ var accessorDescriptor = function (getter, setter) { return getInternalURLState(this)[setter](value); }, configurable: true, - enumerable: true + enumerable: true, }; }; @@ -1029,5 +1029,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 28fc7d9edfff..d03c96a636db 100644 --- a/scripts/bundle-package/bundle-package.mjs +++ b/scripts/bundle-package/bundle-package.mjs @@ -20,7 +20,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 44db4d6146af..84c455c46beb 100644 --- a/tests/compat/tests.js +++ b/tests/compat/tests.js @@ -44,14 +44,14 @@ var WEBKIT_STRING_PAD_BUG = /Version\/10(?:\.\d+){1,2}(?: [\w./]+)?(?: Mobile\/\ var DESCRIPTORS_SUPPORT = function () { return Object.defineProperty({}, 'a', { - get: function () { return 7; } + get: function () { return 7; }, }).a === 7; }; var V8_PROTOTYPE_DEFINE_BUG = function () { return Object.defineProperty(function () { /* empty */ }, 'prototype', { value: 42, - writable: false + writable: false, }).prototype === 42; }; @@ -75,7 +75,7 @@ var PROMISE_STATICS_ITERATION = function () { return { next: function () { return { done: ITERATION_SUPPORT = true }; - } + }, }; }; Promise.all(object).then(undefined, function () { /* empty */ }); @@ -132,7 +132,7 @@ var SAFE_ITERATION_CLOSING_SUPPORT = function () { }, return: function () { SAFE_CLOSING = true; - } + }, }; iteratorWithReturn[Symbol.iterator] = function () { return this; @@ -156,7 +156,7 @@ var TYPED_ARRAY_CONSTRUCTORS_LIST = { Int32Array: 4, Uint32Array: 4, Float32Array: 4, - Float64Array: 8 + Float64Array: 8, }; var ARRAY_BUFFER_VIEWS_SUPPORT = function () { @@ -179,7 +179,7 @@ var TYPED_ARRAY_CONSTRUCTORS_NOT_REQUIRES_WRAPPERS = function () { var iterable = { next: function () { return { done: !!called++, value: 1 }; - } + }, }; iterable[Symbol.iterator] = function () { return this; @@ -234,9 +234,9 @@ function createSetLike(size) { return { next: function () { return { done: true }; - } + }, }; - } + }, }; } @@ -714,7 +714,7 @@ GLOBAL.tests = { var iterable = { next: function () { return { done: !!called++, value: [1, 2] }; - } + }, }; iterable[Symbol.iterator] = function () { return this; @@ -874,9 +874,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 = {}; @@ -1003,7 +1003,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; @@ -1125,7 +1125,7 @@ GLOBAL.tests = { global: 'g', ignoreCase: 'i', multiline: 'm', - sticky: 'y' + sticky: 'y', }; if (INDICES_SUPPORT) pairs.hasIndices = 'd'; @@ -1157,7 +1157,7 @@ GLOBAL.tests = { var iterable = { next: function () { return { done: !!called++, value: 1 }; - } + }, }; iterable[Symbol.iterator] = function () { return this; @@ -1335,39 +1335,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; @@ -1406,7 +1406,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; @@ -1438,7 +1438,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; @@ -1522,7 +1522,7 @@ GLOBAL.tests = { var iterable = { next: function () { return { done: !!called++, value: [key, 1] }; - } + }, }; iterable[Symbol.iterator] = function () { return this; @@ -1543,7 +1543,7 @@ GLOBAL.tests = { var iterable = { next: function () { return { done: !!called++, value: key }; - } + }, }; iterable[Symbol.iterator] = function () { return this; @@ -1932,7 +1932,7 @@ GLOBAL.tests = { StyleSheetList: 0, TextTrackCueList: 0, TextTrackList: 0, - TouchList: 0 + TouchList: 0, }; for (var collection in DOMIterables) { if (GLOBAL[collection]) { @@ -2023,5 +2023,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 7385ecfea5a6..1ed1c29332b9 100644 --- a/tests/eslint/eslint.config.js +++ b/tests/eslint/eslint.config.js @@ -1015,7 +1015,7 @@ const noAsyncAwait = { 'promise/prefer-await-to-then': OFF, }; -const useES3Syntax = { +const useES5Syntax = { ...noAsyncAwait, // disallow logical assignment operator shorthand 'logical-assignment-operators': [ERROR, NEVER], @@ -1041,8 +1041,6 @@ const useES3Syntax = { 'prefer-spread': OFF, // require template literals instead of string concatenation 'prefer-template': OFF, - // disallow trailing commas in multiline object literals - '@stylistic/js/comma-dangle': [ERROR, NEVER], // 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 @@ -1771,7 +1769,7 @@ export default [ languageOptions: { ecmaVersion: 5, }, - rules: useES3Syntax, + rules: useES5Syntax, }, { files: [ diff --git a/tests/unit-pure/es.array.concat.js b/tests/unit-pure/es.array.concat.js index 6fa83ba0a43d..1ba765f074ed 100644 --- a/tests/unit-pure/es.array.concat.js +++ b/tests/unit-pure/es.array.concat.js @@ -30,5 +30,5 @@ QUnit.test('Array#concat', assert => { } }; // temporarily disabled because of a WebKit bug: // https://bugs.webkit.org/show_bug.cgi?id=281061 - if (+new Date() > Date.UTC(2024, 11, 1)) assert.same(concat(array).foo, 1, '@@species'); + if (Date.now() > Date.UTC(2024, 11, 1)) assert.same(concat(array).foo, 1, '@@species'); }); From 5e535ed848a02a19cc17dcc05b1b820449ff3b61 Mon Sep 17 00:00:00 2001 From: Denis Pushkarev Date: Fri, 6 Oct 2023 11:11:09 +0700 Subject: [PATCH 101/388] drop `es.object.create` (required for ES3 only) --- README.md | 2 +- packages/core-js-compat/src/data.mjs | 10 --- 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/object/create.js | 7 +- packages/core-js/es/object/group-by.js | 1 - packages/core-js/es/object/index.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.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 +- .../core-js/modules/es.symbol.constructor.js | 2 +- .../core-js/modules/esnext.composite-key.js | 2 +- .../core-js/modules/esnext.json.raw-json.js | 2 +- .../esnext.suppressed-error.constructor.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 - 35 files changed, 26 insertions(+), 146 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 0d7745dd215d..60bdf1ae2ed3 100644 --- a/README.md +++ b/README.md @@ -472,7 +472,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 34475e23f690..e9c0b6d19e0d 100644 --- a/packages/core-js-compat/src/data.mjs +++ b/packages/core-js-compat/src/data.mjs @@ -914,16 +914,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/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/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/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 a83b5c00e1e5..188c1e558f31 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'); @@ -10,6 +9,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 efa0c83744d2..cba397a8b6d2 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'); @@ -10,6 +9,7 @@ var IteratorPrototype = require('../internals/iterators-core').IteratorPrototype var createIterResultObject = require('../internals/create-iter-result-object'); var iteratorClose = require('../internals/iterator-close'); +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.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 2798c138a247..239c3400de70 100644 --- a/packages/core-js/modules/es.object.group-by.js +++ b/packages/core-js/modules/es.object.group-by.js @@ -1,6 +1,5 @@ 'use strict'; var $ = require('../internals/export'); -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'); @@ -10,7 +9,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); var DOES_NOT_WORK_WITH_PRIMITIVES = !nativeGroupBy || fails(function () { 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.symbol.constructor.js b/packages/core-js/modules/es.symbol.constructor.js index 06b1ee8774ad..a0e1bc36678a 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.json.raw-json.js b/packages/core-js/modules/esnext.json.raw-json.js index 08ccc901d653..41260ad7adeb 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/esnext.suppressed-error.constructor.js b/packages/core-js/modules/esnext.suppressed-error.constructor.js index d842f6580a0b..96fb3c3ba267 100644 --- a/packages/core-js/modules/esnext.suppressed-error.constructor.js +++ b/packages/core-js/modules/esnext.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/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 84c455c46beb..4e29d5e776dc 100644 --- a/tests/compat/tests.js +++ b/tests/compat/tests.js @@ -886,10 +886,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': [DESCRIPTORS_SUPPORT, V8_PROTOTYPE_DEFINE_BUG, function () { return Object.defineProperties; diff --git a/tests/eslint/eslint.config.js b/tests/eslint/eslint.config.js index 1ed1c29332b9..f7f3698164e7 100644 --- a/tests/eslint/eslint.config.js +++ b/tests/eslint/eslint.config.js @@ -1076,7 +1076,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 e09092cb128288783321933ecbb3dd3aeedb9365 Mon Sep 17 00:00:00 2001 From: Denis Pushkarev Date: Fri, 6 Oct 2023 11:34:53 +0700 Subject: [PATCH 102/388] 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 ++- .../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 +- .../esnext.suppressed-error.constructor.js | 2 +- tests/eslint/eslint.config.js | 1 - 23 files changed, 31 insertions(+), 59 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 67efac53fd1e..9f62af4de0d8 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/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/packages/core-js/modules/esnext.suppressed-error.constructor.js b/packages/core-js/modules/esnext.suppressed-error.constructor.js index 96fb3c3ba267..16af5c3a9fcc 100644 --- a/packages/core-js/modules/esnext.suppressed-error.constructor.js +++ b/packages/core-js/modules/esnext.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/tests/eslint/eslint.config.js b/tests/eslint/eslint.config.js index f7f3698164e7..9d8123429997 100644 --- a/tests/eslint/eslint.config.js +++ b/tests/eslint/eslint.config.js @@ -1081,7 +1081,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, From 4f387b08dc09a0356070b3b2ec38f6d888ca5b5b Mon Sep 17 00:00:00 2001 From: Denis Pushkarev Date: Fri, 6 Oct 2023 23:40:19 +0700 Subject: [PATCH 103/388] 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 f37892e2f425..4561f36f9e04 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 7b5b4e9a3f73..61e14ac17e8a 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 41260ad7adeb..98083efa2272 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 9d8123429997..0ece50c2c2a9 100644 --- a/tests/eslint/eslint.config.js +++ b/tests/eslint/eslint.config.js @@ -1075,7 +1075,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 74f1d0ae3efc9974f3f0bd0d894da379613300b8 Mon Sep 17 00:00:00 2001 From: Denis Pushkarev Date: Sat, 7 Oct 2023 00:25:05 +0700 Subject: [PATCH 104/388] 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 60bdf1ae2ed3..cd5ff50c473b 100644 --- a/README.md +++ b/README.md @@ -1174,9 +1174,9 @@ core-js(-pure)/es|stable|actual|full/math/tanh core-js(-pure)/es|stable|actual|full/math/trunc ``` #### 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; @@ -1184,7 +1184,6 @@ class Date { toGMTString(): string; toISOString(): string; toJSON(): string; - toString(): string; @@toPrimitive(hint: 'default' | 'number' | 'string'): string | number; static now(): number; } @@ -1192,7 +1191,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 e9c0b6d19e0d..4b124587370e 100644 --- a/packages/core-js-compat/src/data.mjs +++ b/packages/core-js-compat/src/data.mjs @@ -511,16 +511,6 @@ export const data = { hermes: '0.1', 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.escape': { chrome: '1', firefox: '1', 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 4e29d5e776dc..0ddf88a0e4f0 100644 --- a/tests/compat/tests.js +++ b/tests/compat/tests.js @@ -633,10 +633,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.escape': function () { return escape; }, diff --git a/tests/entries/unit.mjs b/tests/entries/unit.mjs index 6b3e14331963..39d968e42bfc 100644 --- a/tests/entries/unit.mjs +++ b/tests/entries/unit.mjs @@ -276,7 +276,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 fb42aeaf245bff4efe8ceb0a8b5b28b78594231c Mon Sep 17 00:00:00 2001 From: Denis Pushkarev Date: Sat, 7 Oct 2023 04:02:31 +0700 Subject: [PATCH 105/388] 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 | 4 +--- 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 ++---- packages/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 | 8 -------- 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 +-- 25 files changed, 25 insertions(+), 82 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..e60e1f63d306 100644 --- a/packages/core-js/modules/es.object.freeze.js +++ b/packages/core-js/modules/es.object.freeze.js @@ -1,17 +1,15 @@ '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; }, 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 98083efa2272..cc71c46ee40a 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 0ece50c2c2a9..76446664b68c 100644 --- a/tests/eslint/eslint.config.js +++ b/tests/eslint/eslint.config.js @@ -1077,15 +1077,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 8486a39229e2..9ef6bceddb1d 100644 --- a/tests/helpers/constants.js +++ b/tests/helpers/constants.js @@ -63,14 +63,6 @@ export const STRICT_THIS = (function () { export const STRICT = !STRICT_THIS; -export const FREEZING = !function () { - try { - return Object.isExtensible(Object.preventExtensions({})); - } catch { - return true; - } -}(); - export const CORRECT_PROTOTYPE_GETTER = !function () { try { function F() { /* empty */ } 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 6ba11a65fbf2..3a051a51cff0 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 || {}; @@ -166,7 +166,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 79ee4a3c9fb8..08391e5fdb3f 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'; @@ -155,7 +153,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 1ed9ce4604b469d3d2bd988087facf34b6c05f7f Mon Sep 17 00:00:00 2001 From: Denis Pushkarev Date: Sat, 7 Oct 2023 06:50:46 +0700 Subject: [PATCH 106/388] 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 d03c96a636db..fb04c3e81597 100644 --- a/scripts/bundle-package/bundle-package.mjs +++ b/scripts/bundle-package/bundle-package.mjs @@ -12,7 +12,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 e45adbdb17ef8e38ba1000d1226bc74a3e4a14bd Mon Sep 17 00:00:00 2001 From: Denis Pushkarev Date: Sat, 7 Oct 2023 07:04:35 +0700 Subject: [PATCH 107/388] 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 3b69c088e008..5ea3d4e0cb1c 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 746f9b33fb54760775f21578833561ce1dfa4a9f Mon Sep 17 00:00:00 2001 From: Denis Pushkarev Date: Sat, 7 Oct 2023 07:23:21 +0700 Subject: [PATCH 108/388] 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 cd5ff50c473b..cc5fef2d872d 100644 --- a/README.md +++ b/README.md @@ -1411,8 +1411,6 @@ class Symbol { static unscopables: @@unscopables; static for(key: string): symbol; static keyFor(sym: symbol): string; - static useSimple(): void; - static useSetter(): void; } class Object { @@ -1494,28 +1492,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 a0e1bc36678a..6a8451ec0eb0 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 93ad0bc93e3c6a8a0e04f910627902aa82966579 Mon Sep 17 00:00:00 2001 From: Denis Pushkarev Date: Sat, 7 Oct 2023 11:03:44 +0700 Subject: [PATCH 109/388] 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 | 10 ++---- .../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 | 12 ++----- 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.js | 5 ++- tests/unit-pure/es.promise.race.js | 5 ++- 31 files changed, 19 insertions(+), 212 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 cc5fef2d872d..d287711778c0 100644 --- a/README.md +++ b/README.md @@ -600,11 +600,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; } ``` @@ -613,14 +612,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 4b124587370e..19354681fc0b 100644 --- a/packages/core-js-compat/src/data.mjs +++ b/packages/core-js-compat/src/data.mjs @@ -520,15 +520,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 3d4e56904f9d..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 FunctionPrototype = Function.prototype; -var apply = FunctionPrototype.apply; -var call = FunctionPrototype.call; +var uncurryThis = require('../internals/function-uncurry-this'); // eslint-disable-next-line es/no-reflect -- safe -module.exports = typeof Reflect == 'object' && Reflect.apply || (NATIVE_BIND ? call.bind(apply) : function () { - return call.apply(apply, arguments); -}); +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 998b4de3d60e..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; - -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 2fd36ec31f14..36e797bf086e 100644 --- a/packages/core-js/internals/function-uncurry-this.js +++ b/packages/core-js/internals/function-uncurry-this.js @@ -1,12 +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; -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 0ddf88a0e4f0..59b963323cdc 100644 --- a/tests/compat/tests.js +++ b/tests/compat/tests.js @@ -636,11 +636,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 39d968e42bfc..f48102a3c31e 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'); @@ -347,12 +341,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 76446664b68c..89edbe187fb8 100644 --- a/tests/eslint/eslint.config.js +++ b/tests/eslint/eslint.config.js @@ -1074,7 +1074,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.js b/tests/unit-pure/es.promise.all.js index ed463f530299..483e90b671c8 100644 --- a/tests/unit-pure/es.promise.all.js +++ b/tests/unit-pure/es.promise.all.js @@ -3,7 +3,6 @@ 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'; -import bind from 'core-js-pure/es/function/bind'; QUnit.test('Promise.all', assert => { const { all, resolve } = Promise; @@ -44,7 +43,7 @@ QUnit.test('Promise.all', assert => { let FakePromise2 = FakePromise1[Symbol.species] = function (executor) { executor(() => { /* empty */ }, () => { /* empty */ }); }; - FakePromise1.resolve = FakePromise2.resolve = bind(resolve, Promise); + FakePromise1.resolve = FakePromise2.resolve = resolve.bind(Promise); assert.true(all.call(FakePromise1, [1, 2, 3]) instanceof FakePromise1, 'subclassing, `this` pattern'); FakePromise1 = function () { /* empty */ }; FakePromise2 = function (executor) { @@ -53,7 +52,7 @@ QUnit.test('Promise.all', assert => { const FakePromise3 = function (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.race.js b/tests/unit-pure/es.promise.race.js index e5a39c1f301b..abe2e6d99a46 100644 --- a/tests/unit-pure/es.promise.race.js +++ b/tests/unit-pure/es.promise.race.js @@ -3,7 +3,6 @@ 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'; -import bind from 'core-js-pure/es/function/bind'; QUnit.test('Promise.race', assert => { const { race, resolve } = Promise; @@ -44,7 +43,7 @@ QUnit.test('Promise.race', assert => { let FakePromise2 = FakePromise1[Symbol.species] = function (executor) { executor(() => { /* empty */ }, () => { /* empty */ }); }; - FakePromise1.resolve = FakePromise2.resolve = bind(resolve, Promise); + FakePromise1.resolve = FakePromise2.resolve = resolve.bind(Promise); assert.true(race.call(FakePromise1, [1, 2, 3]) instanceof FakePromise1, 'subclassing, `this` pattern'); FakePromise1 = function () { /* empty */ }; FakePromise2 = function (executor) { @@ -53,7 +52,7 @@ QUnit.test('Promise.race', assert => { const FakePromise3 = function (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'); From fc10a188e2de0627cab44d0c66c4ae0631c52de1 Mon Sep 17 00:00:00 2001 From: Denis Pushkarev Date: Sun, 8 Oct 2023 05:53:33 +0700 Subject: [PATCH 110/388] 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 ac73e7040a64..d7e16e6b0a53 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 6a8451ec0eb0..816387f85bbd 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 127528a70c44..45d4981dca4b 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.0.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 89edbe187fb8..42ed39dd6590 100644 --- a/tests/eslint/eslint.config.js +++ b/tests/eslint/eslint.config.js @@ -1077,11 +1077,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 b04123a81fd1bbf15c7659796010b20717279613 Mon Sep 17 00:00:00 2001 From: Denis Pushkarev Date: Sun, 8 Oct 2023 07:44:45 +0700 Subject: [PATCH 111/388] 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 816387f85bbd..9c62d9f6bcff 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 42ed39dd6590..e0f1ed77557c 100644 --- a/tests/eslint/eslint.config.js +++ b/tests/eslint/eslint.config.js @@ -1067,7 +1067,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 d52ed18f1adbb4104ca3a5c05b0fbad0212082af Mon Sep 17 00:00:00 2001 From: Denis Pushkarev Date: Mon, 9 Oct 2023 03:25:07 +0700 Subject: [PATCH 112/388] 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 | 1 - .../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 - packages/core-js/internals/safe-get-built-in.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.regexp.flags.js | 2 -- packages/core-js/modules/es.string.ends-with.js | 3 +-- packages/core-js/modules/es.string.starts-with.js | 3 +-- .../core-js/modules/esnext.function.is-callable.js | 1 - packages/core-js/modules/esnext.json.parse.js | 1 - .../core-js/modules/esnext.symbol.async-dispose.js | 3 +-- packages/core-js/modules/esnext.symbol.dispose.js | 3 +-- 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/unit-pure/es.promise.constructor.js | 2 +- tests/unit-pure/esnext.iterator.range.js | 2 -- tests/unit-pure/web.url.constructor.js | 2 +- 42 files changed, 26 insertions(+), 75 deletions(-) diff --git a/packages/core-js-pure/override/internals/export.js b/packages/core-js-pure/override/internals/export.js index 48cb7fdde97a..8c2f79d9076e 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'); @@ -12,6 +11,8 @@ var hasOwn = require('../internals/has-own-property'); // add debugging info require('../internals/shared-store'); +var getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor; + var wrapConstructor = function (NativeConstructor) { var Wrapper = function (a, b, c) { if (this instanceof Wrapper) { 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 d7e16e6b0a53..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); 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/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/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.regexp.flags.js b/packages/core-js/modules/es.regexp.flags.js index 3f2958eae9a2..67ad4e57eb40 100644 --- a/packages/core-js/modules/es.regexp.flags.js +++ b/packages/core-js/modules/es.regexp.flags.js @@ -22,7 +22,6 @@ var FORCED = 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; @@ -41,7 +40,6 @@ var FORCED = fails(function () { for (var key in pairs) addGetter(key, pairs[key]); - // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe var result = Object.getOwnPropertyDescriptor(RegExpPrototype, 'flags').get.call(O); return result !== expected || calls !== expected; 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/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/esnext.symbol.async-dispose.js b/packages/core-js/modules/esnext.symbol.async-dispose.js index 76d7edec7779..ba3b321bfce7 100644 --- a/packages/core-js/modules/esnext.symbol.async-dispose.js +++ b/packages/core-js/modules/esnext.symbol.async-dispose.js @@ -2,7 +2,6 @@ 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,7 +10,7 @@ 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 diff --git a/packages/core-js/modules/esnext.symbol.dispose.js b/packages/core-js/modules/esnext.symbol.dispose.js index 4cae30cb1ae8..a18f85a7d1cc 100644 --- a/packages/core-js/modules/esnext.symbol.dispose.js +++ b/packages/core-js/modules/esnext.symbol.dispose.js @@ -2,7 +2,6 @@ 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,7 +10,7 @@ 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 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 e0f1ed77557c..69b5dfe89098 100644 --- a/tests/eslint/eslint.config.js +++ b/tests/eslint/eslint.config.js @@ -1073,9 +1073,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/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 52f071fe7dbb..48bbf959857d 100644 --- a/tests/unit-pure/esnext.iterator.range.js +++ b/tests/unit-pure/esnext.iterator.range.js @@ -58,7 +58,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); @@ -113,7 +112,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 273a4c68d533400dfbebda5a9280437a743c26e6 Mon Sep 17 00:00:00 2001 From: Denis Pushkarev Date: Tue, 10 Oct 2023 00:24:49 +0700 Subject: [PATCH 113/388] drop Node < 18.12 support in tools --- package-lock.json | 5 ++- packages/core-js-builder/index.js | 16 +++----- packages/core-js-builder/package.json | 2 +- packages/core-js-compat/compat.js | 11 ++--- packages/core-js-compat/helpers.js | 14 +++---- packages/core-js-compat/package.json | 3 ++ packages/core-js-compat/targets-parser.js | 19 +++++---- scripts/build-compat/data.mjs | 13 +++--- tests/eslint/eslint.config.js | 50 ++++------------------- 9 files changed, 50 insertions(+), 83 deletions(-) diff --git a/package-lock.json b/package-lock.json index 36c54955f551..e4a27fda2e11 100644 --- a/package-lock.json +++ b/package-lock.json @@ -5852,7 +5852,7 @@ "webpack": ">=4.47.0 <5" }, "engines": { - "node": ">=8.9.0" + "node": "^18.12.0 || >=20.0.0" }, "funding": { "type": "opencollective", @@ -5874,6 +5874,9 @@ "dependencies": { "browserslist": "^4.24.0" }, + "engines": { + "node": "^18.12.0 || >=20.0.0" + }, "funding": { "type": "opencollective", "url": "https://opencollective.com/core-js" 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 f5af72681018..51bdbba3a435 100644 --- a/packages/core-js-builder/package.json +++ b/packages/core-js-builder/package.json @@ -28,6 +28,6 @@ "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/package.json b/packages/core-js-compat/package.json index 6642b10600fb..d1f7834821b7 100644 --- a/packages/core-js-compat/package.json +++ b/packages/core-js-compat/package.json @@ -23,5 +23,8 @@ "types": "index.d.ts", "dependencies": { "browserslist": "^4.24.0" + }, + "engines": { + "node": "^18.12.0 || >=20.0.0" } } diff --git a/packages/core-js-compat/targets-parser.js b/packages/core-js-compat/targets-parser.js index e0d537ef0ebc..91947517f2cf 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,34 +43,34 @@ 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); if (browsers) { - 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 (esmodules) { - 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 30d831e16fd6..c8701b365cc6 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') && semver(module.safari).major >= 15) { + if (!hasOwn(module, 'ios') && hasOwn(module, 'safari') && semver(module.safari).major >= 15) { module.ios = module.safari; } map('SafariToPhantom'); diff --git a/tests/eslint/eslint.config.js b/tests/eslint/eslint.config.js index 69b5dfe89098..f9244f73a7b8 100644 --- a/tests/eslint/eslint.config.js +++ b/tests/eslint/eslint.config.js @@ -20,7 +20,7 @@ import pluginStylisticJS from '@stylistic/eslint-plugin-js'; import pluginStylisticPlus from '@stylistic/eslint-plugin-plus'; import pluginUnicorn from 'eslint-plugin-unicorn'; -const PACKAGES_NODE_VERSIONS = '8.9.0'; +const PACKAGES_NODE_VERSIONS = '^18.12'; const DEV_NODE_VERSIONS = '^18.12'; const ERROR = 'error'; @@ -1343,52 +1343,18 @@ const transpiledAndPolyfilled = { }; const nodePackages = { - // disallow logical assignment operator shorthand - 'logical-assignment-operators': [ERROR, NEVER], - // enforces the use of `catch()` on un-returned promises - 'promise/catch-or-return': ERROR, // 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 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, - ...disable(forbidES2016IntlBuiltIns), - ...disable(forbidES2017IntlBuiltIns), - ...forbidES2018IntlBuiltIns, - ...forbidES2020IntlBuiltIns, - ...forbidES2021IntlBuiltIns, - ...forbidES2022IntlBuiltIns, + 'es/no-intl-supportedvaluesof': ERROR, ...forbidES2023IntlBuiltIns, + ...forbidES2025BuiltIns, + // prefer using `structuredClone` to create a deep clone + 'unicorn/prefer-structured-clone': OFF, + // prefer top-level await + 'unicorn/prefer-top-level-await': ERROR, }; const nodeDev = { From 619e34ba576ea9fa29934eb169471cdee5e68007 Mon Sep 17 00:00:00 2001 From: Denis Pushkarev Date: Tue, 10 Oct 2023 01:40:37 +0700 Subject: [PATCH 114/388] `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 74abf9db525e4b401b5e98abbe3b3333a683abd1 Mon Sep 17 00:00:00 2001 From: Denis Pushkarev Date: Tue, 10 Oct 2023 04:47:34 +0700 Subject: [PATCH 115/388] update `core-js-builder` dependencies --- package-lock.json | 4412 +++-------------- packages/core-js-builder/index.js | 8 +- packages/core-js-builder/package.json | 3 +- packages/core-js-compat/helpers.js | 2 +- .../core-js/es/array-buffer/constructor.js | 1 + packages/core-js/es/promise/with-resolvers.js | 2 + .../check-dependencies/check-dependencies.mjs | 4 - tests/eslint/eslint.config.js | 4 +- 8 files changed, 580 insertions(+), 3856 deletions(-) diff --git a/package-lock.json b/package-lock.json index e4a27fda2e11..8a3b43bd258e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1157,7 +1157,6 @@ "version": "0.3.5", "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==", - "dev": true, "license": "MIT", "dependencies": { "@jridgewell/set-array": "^1.2.1", @@ -1172,7 +1171,6 @@ "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" @@ -1182,30 +1180,43 @@ "version": "1.2.1", "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", - "dev": true, "license": "MIT", "engines": { "node": ">=6.0.0" } }, + "node_modules/@jridgewell/source-map": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.6.tgz", + "integrity": "sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ==", + "license": "MIT", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25" + } + }, "node_modules/@jridgewell/sourcemap-codec": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==", - "dev": true, "license": "MIT" }, "node_modules/@jridgewell/trace-mapping": { "version": "0.3.25", "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", - "dev": true, "license": "MIT", "dependencies": { "@jridgewell/resolve-uri": "^3.1.0", "@jridgewell/sourcemap-codec": "^1.4.14" } }, + "node_modules/@types/estree": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.6.tgz", + "integrity": "sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==", + "license": "MIT" + }, "node_modules/@types/fs-extra": { "version": "11.0.4", "resolved": "https://registry.npmjs.org/@types/fs-extra/-/fs-extra-11.0.4.tgz", @@ -1218,6 +1229,12 @@ "@types/node": "*" } }, + "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/@types/jsonfile": { "version": "6.1.4", "resolved": "https://registry.npmjs.org/@types/jsonfile/-/jsonfile-6.1.4.tgz", @@ -1233,185 +1250,154 @@ "version": "22.7.5", "resolved": "https://registry.npmjs.org/@types/node/-/node-22.7.5.tgz", "integrity": "sha512-jML7s2NAzMWc//QSJ1a3prpk78cOPchGvXJsC3C6R6PSMoooztvRVQEz89gmBTBY1SPMaqo5teB4uNHPdetShQ==", - "dev": true, "license": "MIT", - "optional": true, "dependencies": { "undici-types": "~6.19.2" } }, "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==", + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.12.1.tgz", + "integrity": "sha512-EKfMUOPRRUTy5UII4qJDGPpqfwjOmZ5jeGFwid9mnoqIFK+e0vqoi1qH56JpmZSzEL53jKnNzScdmftJyG5xWg==", "license": "MIT", "dependencies": { - "@webassemblyjs/helper-module-context": "1.9.0", - "@webassemblyjs/helper-wasm-bytecode": "1.9.0", - "@webassemblyjs/wast-parser": "1.9.0" + "@webassemblyjs/helper-numbers": "1.11.6", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6" } }, "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==", + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.6.tgz", + "integrity": "sha512-ejAj9hfRJ2XMsNHk/v6Fu2dGS+i4UaXBXGemOfQ/JfQ6mdQg/WXtwleQRLLS4OvfDhv8rYnVwH27YJLMyYsxhw==", "license": "MIT" }, "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==", + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.6.tgz", + "integrity": "sha512-o0YkoP4pVu4rN8aTJgAyj9hC2Sv5UlkzCHhxqWj8butaLvnpdc2jOwh4ewE6CX0txSfLn/UYaV/pheS2Txg//Q==", "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==", + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.12.1.tgz", + "integrity": "sha512-nzJwQw99DNDKr9BVCOZcLuJJUlqkJh+kVzVl6Fmq/tI5ZtEyWT1KZMyOXltXLZJmDtvLCDgwsyrkohEtopTXCw==", "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==", - "license": "MIT", - "dependencies": { - "@webassemblyjs/wast-printer": "1.9.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/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.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.6.tgz", + "integrity": "sha512-vUIhZ8LZoIWHBohiEObxVm6hwP034jwmc9kuq5GdHZH0wiLVLIPcMCdpJzG4C11cHoQ25TFIQj9kaVADVX7N3g==", "license": "MIT", "dependencies": { - "@webassemblyjs/ast": "1.9.0" + "@webassemblyjs/floating-point-hex-parser": "1.11.6", + "@webassemblyjs/helper-api-error": "1.11.6", + "@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.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.6.tgz", + "integrity": "sha512-sFFHKwcmBprO9e7Icf0+gddyWYDViL8bpPjJJl0WHxCdETktXdmtWLGVzoHbqUcY4Be1LkNfwTmXOJUFZYSJdA==", "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.12.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.12.1.tgz", + "integrity": "sha512-Jif4vfB6FJlUlSbgEMHUyk1j234GTNG9dBJ4XJdOySoj518Xj0oGsNi59cUQF4RRMS9ouBUxDDdyBVfPTypa5g==", "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.12.1", + "@webassemblyjs/helper-buffer": "1.12.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6", + "@webassemblyjs/wasm-gen": "1.12.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.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.6.tgz", + "integrity": "sha512-LM4p2csPNvbij6U1f19v6WR56QZ8JcHg3QIJTlSwzFcmx6WSORicYj6I63f9yU1kEUtrpG+kjkiIAkevHpDXrg==", "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.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.6.tgz", + "integrity": "sha512-m7a0FhE67DQXgouf1tbN5XQcdWoNgaAuoULHIfGFIEVKA6tu/edls6XnIlkmS6FrXAquJRPni3ZZKjw6FSPjPQ==", + "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.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.6.tgz", + "integrity": "sha512-vtXf2wTQ3+up9Zsg8sa2yWiQpzSsMyXj0qViVP6xKGCUT8p8YJ6HqI7l5eCnWx1T/FYdsv07HQs2wTFbbof/RA==", "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.12.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.12.1.tgz", + "integrity": "sha512-1DuwbVvADvS5mGnXbE+c9NfA8QRcZ6iKquqjjmR10k6o+zzsRVesil54DKexiowcFCPdr/Q0qaMgB01+SQ1u6g==", "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.12.1", + "@webassemblyjs/helper-buffer": "1.12.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6", + "@webassemblyjs/helper-wasm-section": "1.12.1", + "@webassemblyjs/wasm-gen": "1.12.1", + "@webassemblyjs/wasm-opt": "1.12.1", + "@webassemblyjs/wasm-parser": "1.12.1", + "@webassemblyjs/wast-printer": "1.12.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.12.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.12.1.tgz", + "integrity": "sha512-TDq4Ojh9fcohAw6OIMXqiIcTq5KUXTGRkVxbSo1hQnSy6lAM5GSdfwWeSxpAo0YzgsgF182E/U0mDNhuA0tW7w==", "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.12.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6", + "@webassemblyjs/ieee754": "1.11.6", + "@webassemblyjs/leb128": "1.11.6", + "@webassemblyjs/utf8": "1.11.6" } }, "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.12.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.12.1.tgz", + "integrity": "sha512-Jg99j/2gG2iaz3hijw857AVYekZe2SAskcqlWIZXjji5WStnOpVoat3gQfT/Q5tb2djnCjBtMocY/Su1GfxPBg==", "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.12.1", + "@webassemblyjs/helper-buffer": "1.12.1", + "@webassemblyjs/wasm-gen": "1.12.1", + "@webassemblyjs/wasm-parser": "1.12.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.12.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.12.1.tgz", + "integrity": "sha512-xikIi7c2FHXysxXe3COrVUPSheuBtpcfhbpFj4gmu7KRLYOzANztwUU0IbsqvMqzuNK2+glRGWCEqZo1WCLyAQ==", "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.12.1", + "@webassemblyjs/helper-api-error": "1.11.6", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6", + "@webassemblyjs/ieee754": "1.11.6", + "@webassemblyjs/leb128": "1.11.6", + "@webassemblyjs/utf8": "1.11.6" } }, "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.12.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.12.1.tgz", + "integrity": "sha512-+X4WAlOisVWQMikjbcvY2e0rwPsKQ9F688lksZhBcPycBBuii3O7m8FACbDMWDojpAqvjIncrG8J0XHKyQfVeA==", "license": "MIT", "dependencies": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/wast-parser": "1.9.0", + "@webassemblyjs/ast": "1.12.1", "@xtuc/long": "4.2.2" } }, @@ -1428,9 +1414,9 @@ "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.12.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.12.1.tgz", + "integrity": "sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg==", "license": "MIT", "bin": { "acorn": "bin/acorn" @@ -1439,6 +1425,15 @@ "node": ">=0.4.0" } }, + "node_modules/acorn-import-attributes": { + "version": "1.9.5", + "resolved": "https://registry.npmjs.org/acorn-import-attributes/-/acorn-import-attributes-1.9.5.tgz", + "integrity": "sha512-n02Vykv5uA3eHGM/Z2dQrcD56kL8TyDb2p1+0P83PClMnC/nc+anbQRhIOWnSq4Ke/KvDPrY3C9hDtC/A3eHnQ==", + "license": "MIT", + "peerDependencies": { + "acorn": "^8" + } + }, "node_modules/ajv": { "version": "6.12.6", "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", @@ -1455,15 +1450,6 @@ "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==", - "license": "MIT", - "peerDependencies": { - "ajv": ">=5.0.0" - } - }, "node_modules/ajv-keywords": { "version": "3.5.2", "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", @@ -1486,236 +1472,11 @@ "node": ">=4" } }, - "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/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.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "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/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/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.1", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", - "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==", + "dev": true, "license": "MIT" }, "node_modules/brace-expansion": { @@ -1728,135 +1489,6 @@ "balanced-match": "^1.0.0" } }, - "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.3", - "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.2.3.tgz", - "integrity": "sha512-JWCZW6SKhfhjJxO8Tyiiy+XYB7cqd2S5/+WeYHsKdNKFlCBhKbblba1A/HN/90YwtxKc8tCErjffZl++UNmGiw==", - "license": "ISC", - "dependencies": { - "bn.js": "^5.2.1", - "browserify-rsa": "^4.1.0", - "create-hash": "^1.2.0", - "create-hmac": "^1.1.7", - "elliptic": "^6.5.5", - "hash-base": "~3.0", - "inherits": "^2.0.4", - "parse-asn1": "^5.1.7", - "readable-stream": "^2.3.8", - "safe-buffer": "^5.2.1" - }, - "engines": { - "node": ">= 0.12" - } - }, - "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.24.0", "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.24.0.tgz", @@ -1889,97 +1521,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.7", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz", - "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==", - "license": "MIT", - "dependencies": { - "es-define-property": "^1.0.0", - "es-errors": "^1.3.0", - "function-bind": "^1.1.2", - "get-intrinsic": "^1.2.4", - "set-function-length": "^1.2.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/caniuse-lite": { "version": "1.0.30001667", "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001667.tgz", @@ -2015,158 +1562,15 @@ "node": ">=4" } }, - "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", - "integrity": "sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ==", + "node_modules/chrome-trace-event": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.4.tgz", + "integrity": "sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ==", "license": "MIT", "engines": { "node": ">=6.0" } }, - "node_modules/cipher-base": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", - "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", - "license": "MIT", - "dependencies": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "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/color-convert": { "version": "1.9.3", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", @@ -2190,53 +1594,6 @@ "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", @@ -2244,30 +1601,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 @@ -2288,55 +1621,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.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "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.3", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", @@ -2352,34 +1636,6 @@ "node": ">= 8" } }, - "node_modules/crypto-browserify": { - "version": "3.12.0", - "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz", - "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==", - "license": "MIT", - "dependencies": { - "browserify-cipher": "^1.0.0", - "browserify-sign": "^4.0.0", - "create-ecdh": "^4.0.0", - "create-hash": "^1.1.0", - "create-hmac": "^1.1.0", - "diffie-hellman": "^5.0.0", - "inherits": "^2.0.1", - "pbkdf2": "^3.0.3", - "public-encrypt": "^4.0.0", - "randombytes": "^2.0.0", - "randomfill": "^1.0.3" - }, - "engines": { - "node": "*" - } - }, - "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.3.7", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz", @@ -2398,214 +1654,30 @@ } } }, - "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/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==", - "license": "MIT", - "dependencies": { - "es-define-property": "^1.0.0", - "es-errors": "^1.3.0", - "gopd": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "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==", - "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_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", - "dependencies": { - "is-descriptor": "^1.0.2", - "isobject": "^3.0.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_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", - "dependencies": { - "bn.js": "^4.1.0", - "miller-rabin": "^4.0.0", - "randombytes": "^2.0.0" - } - }, - "node_modules/diffie-hellman/node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "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", - "engines": { - "node": ">=0.4", - "npm": ">=1.2" - } - }, - "node_modules/duplexify": { - "version": "3.7.1", - "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz", - "integrity": "sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==", - "license": "MIT", - "dependencies": { - "end-of-stream": "^1.0.0", - "inherits": "^2.0.1", - "readable-stream": "^2.0.0", - "stream-shift": "^1.0.0" - } - }, "node_modules/electron-to-chromium": { "version": "1.5.33", "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.33.tgz", "integrity": "sha512-+cYTcFB1QqD4j4LegwLfpCNxifb6dDFUAwk6RsLusCwIaZI6or2f+q8rs5tTB2YC53HhOlIbEaqHMAAC8IOIwA==", "license": "ISC" }, - "node_modules/elliptic": { - "version": "6.5.7", - "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.7.tgz", - "integrity": "sha512-ESVCtTwiA+XhY3wyh24QqRGBoP3rEdDUl3EDUUo9tft074fi19IrdpH7hLCMMP3CIj7jb3W96rn8lt/BqIlt5Q==", - "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.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "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.4", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", - "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", - "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.0", - "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz", - "integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==", + "version": "5.17.1", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.17.1.tgz", + "integrity": "sha512-LMHl3dXhTcfv8gM4kEzIUeTQ+7fpdA0l2tUf34BddXPkz2A5xJ5L/Pchd5BL6rdccM9QGvu0sWZzK1Z1t4wwyg==", "license": "MIT", "dependencies": { - "get-intrinsic": "^1.2.4" + "graceful-fs": "^4.2.4", + "tapable": "^2.2.0" }, "engines": { - "node": ">= 0.4" + "node": ">=10.13.0" } }, - "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-module-lexer": { + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.5.4.tgz", + "integrity": "sha512-MVNK56NiMrOwitFB7cqDwq0CQutbw+0BvLshJSse0MUNU+y1FC3bUS/AQg7oUng+/wKrrki7JfmwtVHkVfPLlw==", + "license": "MIT" }, "node_modules/escalade": { "version": "3.2.0", @@ -2627,16 +1699,16 @@ } }, "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==", + "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": { - "esrecurse": "^4.1.0", + "esrecurse": "^4.3.0", "estraverse": "^4.1.1" }, "engines": { - "node": ">=4.0.0" + "node": ">=8.0.0" } }, "node_modules/esrecurse": { @@ -2678,594 +1750,427 @@ "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/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/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==", + "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": { - "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": ">=6.9.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/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/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==", + "node_modules/globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "dev": true, "license": "MIT", - "dependencies": { - "is-descriptor": "^0.1.0" - }, "engines": { - "node": ">=0.10.0" + "node": ">=4" } }, - "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/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/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==", + "node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true, "license": "MIT", "engines": { - "node": ">=0.10.0" + "node": ">=4" } }, - "node_modules/expand-brackets/node_modules/ms": { + "node_modules/isexe": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "license": "MIT" + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true, + "license": "ISC" }, - "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==", + "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": { - "assign-symbols": "^1.0.0", - "is-extendable": "^1.0.1" + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" }, "engines": { - "node": ">=0.10.0" + "node": ">= 10.13.0" } }, - "node_modules/extglob": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", - "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", + "node_modules/jest-worker/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": { - "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": ">=8" } }, - "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==", + "node_modules/jest-worker/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": { - "is-descriptor": "^1.0.0" + "has-flag": "^4.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" + "node": ">=10" }, - "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" + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" } }, - "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": { + "node_modules/js-tokens": { "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" - } + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true, + "license": "MIT" }, - "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==", + "node_modules/jsesc": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.0.2.tgz", + "integrity": "sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==", + "dev": true, "license": "MIT", - "dependencies": { - "is-extendable": "^0.1.0" + "bin": { + "jsesc": "bin/jsesc" }, "engines": { - "node": ">=0.10.0" + "node": ">=6" } }, - "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==", + "node_modules/json-parse-even-better-errors": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-3.0.2.tgz", + "integrity": "sha512-fi0NG4bPjCHunUJffmLd0gxssIgkNmArMvis4iNah6Owg1MCJjWhEcDLmsK6iGkJq3tHwbDkTlce70/tmXN4cQ==", + "dev": true, "license": "MIT", "engines": { - "node": ">=0.10.0" + "node": "^14.17.0 || ^16.13.0 || >=18.0.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/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/find-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", - "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "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": { - "locate-path": "^3.0.0" + "bin": { + "json5": "lib/cli.js" }, "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==", + "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": { - "inherits": "^2.0.3", - "readable-stream": "^2.3.6" - } - }, - "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" + "@babel/parser": "^7.10.5", + "@babel/traverse": "^7.10.5" } }, - "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==", + "node_modules/loader-runner": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.0.tgz", + "integrity": "sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==", "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": ">=6.11.5" } }, - "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.", + "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": { - "graceful-fs": "^4.1.2", - "iferr": "^0.1.5", - "imurmurhash": "^0.1.4", - "readable-stream": "1 || 2" + "yallist": "^3.0.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" - ], + "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": "^8.16.0 || ^10.6.0 || >=11.0.0" + "node": ">= 0.10.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/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/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, + "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", "engines": { - "node": ">=6.9.0" + "node": ">= 0.6" } }, - "node_modules/get-intrinsic": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz", - "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==", + "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": { - "es-errors": "^1.3.0", - "function-bind": "^1.1.2", - "has-proto": "^1.0.1", - "has-symbols": "^1.0.3", - "hasown": "^2.0.0" - }, - "engines": { - "node": ">= 0.4" + "mime-db": "1.52.0" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "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": ">= 0.6" } }, - "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", + "node_modules/minimatch": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "dev": true, "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" + "brace-expansion": "^2.0.1" }, "engines": { - "node": "*" + "node": ">=16 || 14 >=14.17" }, "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==", + "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.18", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.18.tgz", + "integrity": "sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g==", + "license": "MIT" + }, + "node_modules/npm-normalize-package-bin": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-3.0.1.tgz", + "integrity": "sha512-dMxCf+zZ+3zeQZXKxmyuCKlIDPGuv8EF940xbkC4kQVDTtqoh6rJFO+JTKSA6/Rwi0getWmtuy4Itup0AMcaDQ==", + "dev": true, "license": "ISC", - "optional": true, - "dependencies": { - "is-glob": "^4.0.1" - }, "engines": { - "node": ">= 6" + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "node_modules/glob/node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "node_modules/npm-run-all2": { + "version": "6.2.3", + "resolved": "https://registry.npmjs.org/npm-run-all2/-/npm-run-all2-6.2.3.tgz", + "integrity": "sha512-5RsxC7jEc/RjxOYBVdEfrJf5FsJ0pHA7jr2/OxrThXknajETCTYjigOCG3iaGjdYIKEQlDuCG0ir0T1HTva8pg==", + "dev": true, "license": "MIT", "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/glob/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" + "ansi-styles": "^6.2.1", + "cross-spawn": "^7.0.3", + "memorystream": "^0.3.1", + "minimatch": "^9.0.0", + "pidtree": "^0.6.0", + "read-package-json-fast": "^3.0.2", + "shell-quote": "^1.7.3" + }, + "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": "*" + "node": "^14.18.0 || ^16.13.0 || >=18.0.0", + "npm": ">= 8" } }, - "node_modules/globals": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "node_modules/npm-run-all2/node_modules/ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", "dev": true, "license": "MIT", "engines": { - "node": ">=4" - } - }, - "node_modules/gopd": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", - "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", - "license": "MIT", - "dependencies": { - "get-intrinsic": "^1.1.3" + "node": ">=12" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "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": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "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": ">=4" + "node": ">=8" } }, - "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/picocolors": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.0.tgz", + "integrity": "sha512-TQ92mBOW0l3LeMeyLV6mzy/kWr8lkd/hp3mTg7wYK7zJhuBStmGMBG0BdeDZS/dZx1IukaX6Bk11zcln25o1Aw==", + "license": "ISC" }, - "node_modules/has-proto": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.3.tgz", - "integrity": "sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==", + "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", - "engines": { - "node": ">= 0.4" + "bin": { + "pidtree": "bin/pidtree.js" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "engines": { + "node": ">=0.10" } }, - "node_modules/has-symbols": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", - "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "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": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=6" } }, - "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==", + "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": { - "get-value": "^2.0.6", - "has-values": "^1.0.0", - "isobject": "^3.0.0" - }, - "engines": { - "node": ">=0.10.0" + "safe-buffer": "^5.1.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", + "node_modules/read-package-json-fast": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/read-package-json-fast/-/read-package-json-fast-3.0.2.tgz", + "integrity": "sha512-0J+Msgym3vrLOUB3hzQCuZHII0xkNGCtz/HJH9xZshwv9DbDwkw1KaE3gx/e2J5rpEY5rtOy6cyhKOPrkP7FZw==", + "dev": true, + "license": "ISC", "dependencies": { - "is-number": "^3.0.0", - "kind-of": "^4.0.0" + "json-parse-even-better-errors": "^3.0.0", + "npm-normalize-package-bin": "^3.0.0" }, "engines": { - "node": ">=0.10.0" + "node": "^14.17.0 || ^16.13.0 || >=18.0.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==", + "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.0", + "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.2.0.tgz", + "integrity": "sha512-DqHn3DwbmmPVzeKj9woBadqmXxLvQoQIwu7nopMc72ztvxVmVk2SBhSnx67zuye5TP+lJsb/TBQsjLKhnDf3MA==", + "dev": true, "license": "MIT", "dependencies": { - "is-buffer": "^1.1.5" + "regenerate": "^1.4.2" }, "engines": { - "node": ">=0.10.0" + "node": ">=4" } }, - "node_modules/hash-base": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.0.4.tgz", - "integrity": "sha512-EeeoJKjTyt868liAlVmcv2ZsUfGHlE3Q+BICOXcZiwN3osr5Q/zFGYmTJpoIzuaSTAwndFy+GqhEwlU4L3j4Ow==", + "node_modules/regexpu-core": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-6.1.1.tgz", + "integrity": "sha512-k67Nb9jvwJcJmVpw0jPttR1/zVfnKf8Km0IPatrU/zJ5XeG3+Slx0xLXs9HByJSzXzrlz5EDvN6yLNMDc2qdnw==", + "dev": true, "license": "MIT", "dependencies": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" + "regenerate": "^1.4.2", + "regenerate-unicode-properties": "^10.2.0", + "regjsgen": "^0.8.0", + "regjsparser": "^0.11.0", + "unicode-match-property-ecmascript": "^2.0.0", + "unicode-match-property-value-ecmascript": "^2.1.0" }, "engines": { "node": ">=4" } }, - "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/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/hasown": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", - "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", - "license": "MIT", + "node_modules/regjsparser": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.11.1.tgz", + "integrity": "sha512-1DHODs4B8p/mQHU9kr+jv8+wIC9mtG4eBHxWxIq5mhjE3D5oORhCc6deRKzTjs9DcfRFmj9BHSDguZklqCGFWQ==", + "dev": true, + "license": "BSD-2-Clause", "dependencies": { - "function-bind": "^1.1.2" + "jsesc": "~3.0.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" + "bin": { + "regjsparser": "bin/parser" } }, - "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==", + "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", @@ -3280,2020 +2185,189 @@ "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==", + "node_modules/schema-utils": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", + "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", "license": "MIT", - "optional": true, "dependencies": { - "binary-extensions": "^2.0.0" + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" }, "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-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" + "node": ">= 10.13.0" }, - "engines": { - "node": ">= 0.4" + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" } }, - "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" + "node_modules/semver": { + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" }, "engines": { - "node": ">= 0.4" + "node": ">=10" } }, - "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", + "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-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" + "randombytes": "^2.1.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==", + "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", - "optional": true, "dependencies": { - "is-extglob": "^2.1.1" + "shebang-regex": "^3.0.0" }, "engines": { - "node": ">=0.10.0" + "node": ">=8" } }, - "node_modules/is-number": { + "node_modules/shebang-regex": { "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==", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true, "license": "MIT", - "dependencies": { - "is-buffer": "^1.1.5" - }, "engines": { - "node": ">=0.10.0" + "node": ">=8" } }, - "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==", + "node_modules/shell-quote": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.1.tgz", + "integrity": "sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==", + "dev": true, "license": "MIT", - "dependencies": { - "isobject": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" + "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", + "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/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": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", - "dev": true, - "license": "ISC" - }, - "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.0.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.0.2.tgz", - "integrity": "sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==", - "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": "3.0.2", - "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-3.0.2.tgz", - "integrity": "sha512-fi0NG4bPjCHunUJffmLd0gxssIgkNmArMvis4iNah6Owg1MCJjWhEcDLmsK6iGkJq3tHwbDkTlce70/tmXN4cQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.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/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.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "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": "9.0.5", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", - "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", - "dev": true, - "license": "ISC", - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "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.20.0", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.20.0.tgz", - "integrity": "sha512-bk3gXBZDGILuuo/6sKtr0DQmSThYHLtNCdSdXk9YkxD/jK6X2vmCyyXBBxyqZ4XcnzTyYEAThfX3DCEnLf6igw==", - "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.18", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.18.tgz", - "integrity": "sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g==", - "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": "3.0.1", - "resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-3.0.1.tgz", - "integrity": "sha512-dMxCf+zZ+3zeQZXKxmyuCKlIDPGuv8EF940xbkC4kQVDTtqoh6rJFO+JTKSA6/Rwi0getWmtuy4Itup0AMcaDQ==", - "dev": true, - "license": "ISC", - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/npm-run-all2": { - "version": "6.2.3", - "resolved": "https://registry.npmjs.org/npm-run-all2/-/npm-run-all2-6.2.3.tgz", - "integrity": "sha512-5RsxC7jEc/RjxOYBVdEfrJf5FsJ0pHA7jr2/OxrThXknajETCTYjigOCG3iaGjdYIKEQlDuCG0ir0T1HTva8pg==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^6.2.1", - "cross-spawn": "^7.0.3", - "memorystream": "^0.3.1", - "minimatch": "^9.0.0", - "pidtree": "^0.6.0", - "read-package-json-fast": "^3.0.2", - "shell-quote": "^1.7.3" - }, - "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": "^14.18.0 || ^16.13.0 || >=18.0.0", - "npm": ">= 8" - } - }, - "node_modules/npm-run-all2/node_modules/ansi-styles": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", - "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "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.2", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.2.tgz", - "integrity": "sha512-IRZSRuzJiynemAXPYtPe5BoI/RESNYR7TYm50MC5Mqbd3Jmw5y790sErYw3V6SryFJD64b74qQQs9wn5Bg/k3g==", - "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.5", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.5.tgz", - "integrity": "sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.5", - "define-properties": "^1.2.1", - "has-symbols": "^1.0.3", - "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.7", - "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.7.tgz", - "integrity": "sha512-CTM5kuWR3sx9IFamcl5ErfPl6ea/N8IYwiJ+vpeB2g+1iknv7zBl5uPwbMbRVznRVbrNY6lGuDoE5b30grmbqg==", - "license": "ISC", - "dependencies": { - "asn1.js": "^4.10.1", - "browserify-aes": "^1.2.0", - "evp_bytestokey": "^1.0.3", - "hash-base": "~3.0", - "pbkdf2": "^3.1.2", - "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.2", - "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.2.tgz", - "integrity": "sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA==", - "license": "MIT", - "dependencies": { - "create-hash": "^1.1.2", - "create-hmac": "^1.1.4", - "ripemd160": "^2.0.1", - "safe-buffer": "^5.0.1", - "sha.js": "^2.4.8" - }, - "engines": { - "node": ">=0.12" - } - }, - "node_modules/picocolors": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.0.tgz", - "integrity": "sha512-TQ92mBOW0l3LeMeyLV6mzy/kWr8lkd/hp3mTg7wYK7zJhuBStmGMBG0BdeDZS/dZx1IukaX6Bk11zcln25o1Aw==", - "license": "ISC" - }, - "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/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/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.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "license": "MIT" - }, - "node_modules/pump": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.2.tgz", - "integrity": "sha512-tUPXtzlGM8FE3P0ZL6DVs/3P58k9nk8/jZeQCurTJylQA8qFYzHFfhBJkuqyE0FifOsQ0uKWekiZ5g8wtr28cw==", - "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.13.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.13.0.tgz", - "integrity": "sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==", - "license": "BSD-3-Clause", - "dependencies": { - "side-channel": "^1.0.6" - }, - "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": "3.0.2", - "resolved": "https://registry.npmjs.org/read-package-json-fast/-/read-package-json-fast-3.0.2.tgz", - "integrity": "sha512-0J+Msgym3vrLOUB3hzQCuZHII0xkNGCtz/HJH9xZshwv9DbDwkw1KaE3gx/e2J5rpEY5rtOy6cyhKOPrkP7FZw==", - "dev": true, - "license": "ISC", - "dependencies": { - "json-parse-even-better-errors": "^3.0.0", - "npm-normalize-package-bin": "^3.0.0" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.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/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.0", - "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.2.0.tgz", - "integrity": "sha512-DqHn3DwbmmPVzeKj9woBadqmXxLvQoQIwu7nopMc72ztvxVmVk2SBhSnx67zuye5TP+lJsb/TBQsjLKhnDf3MA==", - "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.1.1", - "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-6.1.1.tgz", - "integrity": "sha512-k67Nb9jvwJcJmVpw0jPttR1/zVfnKf8Km0IPatrU/zJ5XeG3+Slx0xLXs9HByJSzXzrlz5EDvN6yLNMDc2qdnw==", - "dev": true, - "license": "MIT", - "dependencies": { - "regenerate": "^1.4.2", - "regenerate-unicode-properties": "^10.2.0", - "regjsgen": "^0.8.0", - "regjsparser": "^0.11.0", - "unicode-match-property-ecmascript": "^2.0.0", - "unicode-match-property-value-ecmascript": "^2.1.0" - }, - "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.11.1", - "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.11.1.tgz", - "integrity": "sha512-1DHODs4B8p/mQHU9kr+jv8+wIC9mtG4eBHxWxIq5mhjE3D5oORhCc6deRKzTjs9DcfRFmj9BHSDguZklqCGFWQ==", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "jsesc": "~3.0.2" - }, - "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.2", - "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", - "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", - "license": "MIT", - "dependencies": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1" - } - }, - "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==", - "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/safe-regex": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", - "integrity": "sha512-aJXcif4xnaNUzvUuC5gcb46oTS7zvg4jpMTnuqtrEPlR3vFr4pxtdTwaF1Qs3Enjn9HK+ZlwQui+a7z0SywIzg==", - "license": "MIT", - "dependencies": { - "ret": "~0.1.10" - } - }, - "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==", - "license": "MIT", - "dependencies": { - "ajv": "^6.1.0", - "ajv-errors": "^1.0.0", - "ajv-keywords": "^3.1.0" - }, - "engines": { - "node": ">= 4" - } - }, - "node_modules/semver": { - "version": "7.6.3", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", - "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", - "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_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==", - "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" - }, - "engines": { - "node": ">= 0.4" - } - }, - "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/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==", - "license": "MIT", - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "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==", - "license": "MIT", - "engines": { - "node": ">=0.10.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==", - "license": "MIT" - }, - "node_modules/sha.js": { - "version": "2.4.11", - "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", - "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", - "license": "(MIT AND BSD-3-Clause)", - "dependencies": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - }, - "bin": { - "sha.js": "bin.js" - } - }, - "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": { - "shebang-regex": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "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": ">=8" - } - }, - "node_modules/shell-quote": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.1.tgz", - "integrity": "sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==", - "dev": true, - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/side-channel": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.6.tgz", - "integrity": "sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.7", - "es-errors": "^1.3.0", - "get-intrinsic": "^1.2.4", - "object-inspect": "^1.13.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "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" - }, - "engines": { - "node": ">=0.10.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==", - "license": "MIT", - "dependencies": { - "define-property": "^1.0.0", - "isobject": "^3.0.0", - "snapdragon-util": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "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==", - "license": "MIT", - "dependencies": { - "is-descriptor": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "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==", - "license": "MIT", - "dependencies": { - "kind-of": "^3.2.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "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==", - "license": "MIT", - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "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==", - "license": "MIT", - "dependencies": { - "ms": "2.0.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", - "dependencies": { - "is-descriptor": "^0.1.0" - }, - "engines": { - "node": ">=0.10.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==", - "license": "MIT", - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "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==", - "license": "MIT", - "dependencies": { - "is-accessor-descriptor": "^1.0.1", - "is-data-descriptor": "^1.0.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_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==", - "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", - "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" - } - }, - "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/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": { "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", - "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==", - "license": "MIT", - "dependencies": { - "extend-shallow": "^3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "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==", - "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" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "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", - "dependencies": { - "is-descriptor": "^0.1.0" - }, - "engines": { - "node": ">=0.10.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==", - "license": "MIT", - "dependencies": { - "is-accessor-descriptor": "^1.0.1", - "is-data-descriptor": "^1.0.1" - }, - "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_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "license": "MIT", - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/tapable": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/tapable/-/tapable-1.1.3.tgz", - "integrity": "sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==", - "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_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==", - "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" - }, - "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" - } - }, - "node_modules/terser/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" - }, - "engines": { - "node": ">=0.6.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-fast-properties": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", + "node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "dev": true, "license": "MIT", + "dependencies": { + "has-flag": "^3.0.0" + }, "engines": { "node": ">=4" } }, - "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/tapable": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", + "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", "license": "MIT", - "dependencies": { - "kind-of": "^3.0.2" - }, "engines": { - "node": ">=0.10.0" + "node": ">=6" } }, - "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", + "node_modules/terser": { + "version": "5.34.1", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.34.1.tgz", + "integrity": "sha512-FsJZ7iZLd/BXkz+4xrRTGJ26o/6VTjQytUk8b8OxkwcD2I+79VPJlz7qss1+zE7h8GNIScFqXcDyJ/KqBYZFVA==", + "license": "BSD-2-Clause", "dependencies": { - "is-buffer": "^1.1.5" + "@jridgewell/source-map": "^0.3.3", + "acorn": "^8.8.2", + "commander": "^2.20.0", + "source-map-support": "~0.5.20" + }, + "bin": { + "terser": "bin/terser" }, "engines": { - "node": ">=0.10.0" + "node": ">=10" } }, - "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/terser-webpack-plugin": { + "version": "5.3.10", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.10.tgz", + "integrity": "sha512-BKFPWlPDndPs+NGGCr1U59t0XScL5317Y0UReNrHaw9/FwhPENlq6bfgs+4yPfyP51vqC1bQ4rp1EfXW5ZSH9w==", "license": "MIT", "dependencies": { - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "regex-not": "^1.0.2", - "safe-regex": "^1.1.0" + "@jridgewell/trace-mapping": "^0.3.20", + "jest-worker": "^27.4.5", + "schema-utils": "^3.1.1", + "serialize-javascript": "^6.0.1", + "terser": "^5.26.0" }, "engines": { - "node": ">=0.10.0" + "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/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==", + "node_modules/to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", + "dev": true, "license": "MIT", - "dependencies": { - "is-number": "^3.0.0", - "repeat-string": "^1.6.1" - }, "engines": { - "node": ">=0.10.0" + "node": ">=4" } }, - "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/typedarray": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", - "integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==", - "license": "MIT" - }, "node_modules/undici-types": { "version": "6.19.8", "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.19.8.tgz", "integrity": "sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==", - "dev": true, - "license": "MIT", - "optional": true + "license": "MIT" }, "node_modules/unicode-canonical-property-names-ecmascript": { "version": "2.0.1", @@ -5339,107 +2413,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.1", "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.1.tgz", @@ -5479,258 +2452,54 @@ "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.2", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.2.tgz", + "integrity": "sha512-TnbFSbcOCcDgjZ4piURLCbJ3nJhznVh9kw6F6iokjiFPl8ONxe9A6nMDVXDiNbrSfLILs6vB07F7wLBrwPYzJw==", "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", - "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.95.0", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.95.0.tgz", + "integrity": "sha512-2t3XstrKULz41MNMBF+cJ97TyHdyQ8HCt//pqErqDvNjU9YQBnZxIHa11VXsi7F3mb5/aO2tuDxdeTPdU7xu9Q==", + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.5", + "@webassemblyjs/ast": "^1.12.1", + "@webassemblyjs/wasm-edit": "^1.12.1", + "@webassemblyjs/wasm-parser": "^1.12.1", + "acorn": "^8.7.1", + "acorn-import-attributes": "^1.9.5", + "browserslist": "^4.21.10", "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.1", + "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": "^3.2.0", + "tapable": "^2.1.1", + "terser-webpack-plugin": "^5.3.10", + "watchpack": "^2.4.1", + "webpack-sources": "^3.2.3" }, "bin": { "webpack": "bin/webpack.js" }, "engines": { - "node": ">=6.11.5" + "node": ">=10.13.0" }, "funding": { "type": "opencollective", @@ -5739,31 +2508,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.2.3", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz", + "integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==", "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": "2.0.2", "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", @@ -5780,40 +2542,11 @@ "node": ">= 8" } }, - "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": { @@ -5848,8 +2581,7 @@ "dependencies": { "core-js": "3.38.1", "core-js-compat": "3.38.1", - "mkdirp": ">=0.5.6 <1", - "webpack": ">=4.47.0 <5" + "webpack": "^5.89.0" }, "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 51bdbba3a435..e3edc5d5b535 100644 --- a/packages/core-js-builder/package.json +++ b/packages/core-js-builder/package.json @@ -24,8 +24,7 @@ "dependencies": { "core-js": "3.38.1", "core-js-compat": "3.38.1", - "mkdirp": ">=0.5.6 <1", - "webpack": ">=4.47.0 <5" + "webpack": "^5.89.0" }, "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/packages/core-js/es/promise/with-resolvers.js b/packages/core-js/es/promise/with-resolvers.js index f318e82a43f1..a5032c8dc6b8 100644 --- a/packages/core-js/es/promise/with-resolvers.js +++ b/packages/core-js/es/promise/with-resolvers.js @@ -1,5 +1,7 @@ 'use strict'; 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/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 f9244f73a7b8..720fe2007703 100644 --- a/tests/eslint/eslint.config.js +++ b/tests/eslint/eslint.config.js @@ -1003,9 +1003,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 e7beddc4923e52a56aa14d48454eb761b8267421 Mon Sep 17 00:00:00 2001 From: Denis Pushkarev Date: Wed, 11 Oct 2023 12:47:39 +0700 Subject: [PATCH 116/388] 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 fb04c3e81597..24f03445d9b5 100644 --- a/scripts/bundle-package/bundle-package.mjs +++ b/scripts/bundle-package/bundle-package.mjs @@ -12,14 +12,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 5a10dce78865..5e7306d44d6a 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.array.from-async.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.constructor.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.array.from-async.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.constructor.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 fe816952979ea05dfd9cdd3271b90afaf902c157 Mon Sep 17 00:00:00 2001 From: Denis Pushkarev Date: Wed, 11 Oct 2023 21:03:48 +0700 Subject: [PATCH 117/388] 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 3297c57e0b11..db48658e8a40 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 d287711778c0..4b99ee41f9ba 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)
@@ -456,7 +456,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/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/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 8a3b43bd258e..b0b50d27b656 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1153,6 +1153,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.5", "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", @@ -1613,10 +1617,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 @@ -2579,8 +2579,8 @@ "version": "3.38.1", "license": "MIT", "dependencies": { + "@core-js/compat": "3.38.1", "core-js": "3.38.1", - "core-js-compat": "3.38.1", "webpack": "^5.89.0" }, "engines": { @@ -2601,6 +2601,7 @@ } }, "packages/core-js-compat": { + "name": "@core-js/compat", "version": "3.38.1", "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 e3edc5d5b535..5d36fe9b1bf6 100644 --- a/packages/core-js-builder/package.json +++ b/packages/core-js-builder/package.json @@ -23,7 +23,7 @@ "types": "index.d.ts", "dependencies": { "core-js": "3.38.1", - "core-js-compat": "3.38.1", + "@core-js/compat": "3.38.1", "webpack": "^5.89.0" }, "engines": { diff --git a/packages/core-js-compat/README.md b/packages/core-js-compat/README.md index a6bf3a1a949c..43f8b26f28de 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 @@ -105,29 +105,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.38'); // => Array +require('@core-js/compat/get-modules-list-for-target-version')('3.38'); // => Array // or -require('core-js-compat').getModulesListForTargetVersion('3.38'); // => Array +require('@core-js/compat').getModulesListForTargetVersion('3.38'); // => 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/compat/), the example: diff --git a/packages/core-js-compat/compat.d.ts b/packages/core-js-compat/compat.d.ts index 5ea3d4e0cb1c..0a936a27b3ef 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 d1f7834821b7..6787e9e9bb7b 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.38.1", "type": "commonjs", "description": "core-js compat", diff --git a/packages/core-js-pure/README.md b/packages/core-js-pure/README.md index 016437e7b7ed..29fc3fb341f9 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 9d57a672f782..4238019dc13e 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 c8701b365cc6..aab5b6951edd 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 e45775f8c9db..e6c0c8c66ca1 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 9b424a277e27..ed0da2f50cf8 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 faf78a24f7d4..fa11bfd9d15d 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 9e69c0009de4..2d8e3366245a 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