From 91ec408a071ef317be7b7c8a700352c7748757d0 Mon Sep 17 00:00:00 2001 From: Denis Pushkarev Date: Thu, 1 Dec 2022 19:52:46 +0700 Subject: [PATCH 1/5] `.from` can accept strings, `.flatMap` callbacks can't return strings --- packages/core-js/internals/get-async-iterator-flattenable.js | 4 ++-- packages/core-js/internals/get-iterator-flattenable.js | 4 ++-- packages/core-js/modules/esnext.async-iterator.from.js | 3 ++- packages/core-js/modules/esnext.iterator.from.js | 3 ++- tests/unit-global/esnext.async-iterator.flat-map.js | 4 ++-- tests/unit-global/esnext.iterator.flat-map.js | 4 ++-- tests/unit-pure/esnext.async-iterator.flat-map.js | 4 ++-- tests/unit-pure/esnext.iterator.flat-map.js | 4 ++-- 8 files changed, 16 insertions(+), 14 deletions(-) diff --git a/packages/core-js/internals/get-async-iterator-flattenable.js b/packages/core-js/internals/get-async-iterator-flattenable.js index d21868a0ab76..90f85722accd 100644 --- a/packages/core-js/internals/get-async-iterator-flattenable.js +++ b/packages/core-js/internals/get-async-iterator-flattenable.js @@ -1,6 +1,6 @@ var call = require('../internals/function-call'); var isCallable = require('../internals/is-callable'); -var toObject = require('../internals/to-object'); +var anObject = require('../internals/an-object'); var getIteratorDirect = require('../internals/get-iterator-direct'); var getIteratorMethod = require('../internals/get-iterator-method'); var getMethod = require('../internals/get-method'); @@ -10,7 +10,7 @@ var AsyncFromSyncIterator = require('../internals/async-from-sync-iterator'); var ASYNC_ITERATOR = wellKnownSymbol('asyncIterator'); module.exports = function from(obj) { - var object = toObject(obj); + var object = anObject(obj); var alreadyAsync = true; var method = getMethod(object, ASYNC_ITERATOR); var iterator; diff --git a/packages/core-js/internals/get-iterator-flattenable.js b/packages/core-js/internals/get-iterator-flattenable.js index fcb7c2df58f5..6720436fb14b 100644 --- a/packages/core-js/internals/get-iterator-flattenable.js +++ b/packages/core-js/internals/get-iterator-flattenable.js @@ -1,11 +1,11 @@ var call = require('../internals/function-call'); var isCallable = require('../internals/is-callable'); -var toObject = require('../internals/to-object'); +var anObject = require('../internals/an-object'); var getIteratorDirect = require('../internals/get-iterator-direct'); var getIteratorMethod = require('../internals/get-iterator-method'); module.exports = function (obj) { - var object = toObject(obj); + var object = anObject(obj); var method = getIteratorMethod(object); return getIteratorDirect(isCallable(method) ? call(method, object) : object); }; diff --git a/packages/core-js/modules/esnext.async-iterator.from.js b/packages/core-js/modules/esnext.async-iterator.from.js index 76aec46039b2..a95cd8f6448b 100644 --- a/packages/core-js/modules/esnext.async-iterator.from.js +++ b/packages/core-js/modules/esnext.async-iterator.from.js @@ -1,5 +1,6 @@ // https://github.com/tc39/proposal-iterator-helpers var $ = require('../internals/export'); +var toObject = require('../internals/to-object'); var isPrototypeOf = require('../internals/object-is-prototype-of'); var getAsyncIteratorFlattenable = require('../internals/get-async-iterator-flattenable'); var AsyncIteratorPrototype = require('../internals/async-iterator-prototype'); @@ -7,7 +8,7 @@ var WrapAsyncIterator = require('../internals/async-iterator-wrap'); $({ target: 'AsyncIterator', stat: true, forced: true }, { from: function from(O) { - var iteratorRecord = getAsyncIteratorFlattenable(O); + var iteratorRecord = getAsyncIteratorFlattenable(typeof O == 'string' ? toObject(O) : O); return isPrototypeOf(AsyncIteratorPrototype, iteratorRecord.iterator) ? iteratorRecord.iterator : new WrapAsyncIterator(iteratorRecord); diff --git a/packages/core-js/modules/esnext.iterator.from.js b/packages/core-js/modules/esnext.iterator.from.js index 185f14f0e2c3..828fe99c3f01 100644 --- a/packages/core-js/modules/esnext.iterator.from.js +++ b/packages/core-js/modules/esnext.iterator.from.js @@ -1,6 +1,7 @@ // https://github.com/tc39/proposal-iterator-helpers var $ = require('../internals/export'); var call = require('../internals/function-call'); +var toObject = require('../internals/to-object'); var isPrototypeOf = require('../internals/object-is-prototype-of'); var IteratorPrototype = require('../internals/iterators-core').IteratorPrototype; var createIteratorProxy = require('../internals/iterator-create-proxy'); @@ -12,7 +13,7 @@ var IteratorProxy = createIteratorProxy(function () { $({ target: 'Iterator', stat: true, forced: true }, { from: function from(O) { - var iteratorRecord = getIteratorFlattenable(O); + var iteratorRecord = getIteratorFlattenable(typeof O == 'string' ? toObject(O) : O); return isPrototypeOf(IteratorPrototype, iteratorRecord.iterator) ? iteratorRecord.iterator : new IteratorProxy(iteratorRecord); diff --git a/tests/unit-global/esnext.async-iterator.flat-map.js b/tests/unit-global/esnext.async-iterator.flat-map.js index ce9d9cc856fa..aa6a13655563 100644 --- a/tests/unit-global/esnext.async-iterator.flat-map.js +++ b/tests/unit-global/esnext.async-iterator.flat-map.js @@ -18,8 +18,8 @@ QUnit.test('AsyncIterator#flatMap', assert => { assert.throws(() => flatMap.call(createIterator([1]), null), TypeError); assert.throws(() => flatMap.call(createIterator([1]), {}), TypeError); - return flatMap.call(createIterator([1, [], 2, createIterable([3, 4]), [5, 6], 'ab']), it => typeof it == 'number' ? [-it] : it).toArray().then(it => { - assert.arrayEqual(it, [-1, -2, 3, 4, 5, 6, 'a', 'b'], 'basic functionality'); + return flatMap.call(createIterator([1, [], 2, createIterable([3, 4]), [5, 6]]), it => typeof it == 'number' ? [-it] : it).toArray().then(it => { + assert.arrayEqual(it, [-1, -2, 3, 4, 5, 6], 'basic functionality'); return flatMap.call(createIterator([1]), function (arg, counter) { assert.same(this, STRICT_THIS, 'this'); assert.same(arguments.length, 2, 'arguments length'); diff --git a/tests/unit-global/esnext.iterator.flat-map.js b/tests/unit-global/esnext.iterator.flat-map.js index 295d3c02d603..b5fe762043cc 100644 --- a/tests/unit-global/esnext.iterator.flat-map.js +++ b/tests/unit-global/esnext.iterator.flat-map.js @@ -11,8 +11,8 @@ QUnit.test('Iterator#flatMap', assert => { assert.nonEnumerable(Iterator.prototype, 'flatMap'); assert.arrayEqual( - flatMap.call(createIterator([1, [], 2, createIterable([3, 4]), [5, 6], 'ab']), it => typeof it == 'number' ? [-it] : it).toArray(), - [-1, -2, 3, 4, 5, 6, 'a', 'b'], + flatMap.call(createIterator([1, [], 2, createIterable([3, 4]), [5, 6]]), it => typeof it == 'number' ? [-it] : it).toArray(), + [-1, -2, 3, 4, 5, 6], 'basic functionality', ); flatMap.call(createIterator([1]), function (arg, counter) { diff --git a/tests/unit-pure/esnext.async-iterator.flat-map.js b/tests/unit-pure/esnext.async-iterator.flat-map.js index a6958d51435e..be237a1eda4f 100644 --- a/tests/unit-pure/esnext.async-iterator.flat-map.js +++ b/tests/unit-pure/esnext.async-iterator.flat-map.js @@ -18,8 +18,8 @@ QUnit.test('AsyncIterator#flatMap', assert => { assert.throws(() => flatMap.call(createIterator([1]), null), TypeError); assert.throws(() => flatMap.call(createIterator([1]), {}), TypeError); - return flatMap.call(createIterator([1, [], 2, createIterable([3, 4]), [5, 6], 'ab']), it => typeof it == 'number' ? [-it] : it).toArray().then(it => { - assert.arrayEqual(it, [-1, -2, 3, 4, 5, 6, 'a', 'b'], 'basic functionality'); + return flatMap.call(createIterator([1, [], 2, createIterable([3, 4]), [5, 6]]), it => typeof it == 'number' ? [-it] : it).toArray().then(it => { + assert.arrayEqual(it, [-1, -2, 3, 4, 5, 6], 'basic functionality'); return flatMap.call(createIterator([1]), function (arg, counter) { assert.same(this, STRICT_THIS, 'this'); assert.same(arguments.length, 2, 'arguments length'); diff --git a/tests/unit-pure/esnext.iterator.flat-map.js b/tests/unit-pure/esnext.iterator.flat-map.js index 123bbe408be9..565c419505ed 100644 --- a/tests/unit-pure/esnext.iterator.flat-map.js +++ b/tests/unit-pure/esnext.iterator.flat-map.js @@ -11,8 +11,8 @@ QUnit.test('Iterator#flatMap', assert => { assert.nonEnumerable(Iterator.prototype, 'flatMap'); assert.arrayEqual( - flatMap.call(createIterator([1, [], 2, createIterable([3, 4]), [5, 6], 'ab']), it => typeof it == 'number' ? [-it] : it).toArray(), - [-1, -2, 3, 4, 5, 6, 'a', 'b'], + flatMap.call(createIterator([1, [], 2, createIterable([3, 4]), [5, 6]]), it => typeof it == 'number' ? [-it] : it).toArray(), + [-1, -2, 3, 4, 5, 6], 'basic functionality', ); flatMap.call(createIterator([1]), function (arg, counter) { From 3627a592ab0a73e4edba3a300f46b57198fca5a0 Mon Sep 17 00:00:00 2001 From: Denis Pushkarev Date: Thu, 1 Dec 2022 23:13:38 +0700 Subject: [PATCH 2/5] throw in `GetIteratorFlattenable` when iterator is non-object --- packages/core-js/internals/get-async-iterator-flattenable.js | 1 + packages/core-js/internals/get-iterator-flattenable.js | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/packages/core-js/internals/get-async-iterator-flattenable.js b/packages/core-js/internals/get-async-iterator-flattenable.js index 90f85722accd..e3d9ea1353dc 100644 --- a/packages/core-js/internals/get-async-iterator-flattenable.js +++ b/packages/core-js/internals/get-async-iterator-flattenable.js @@ -24,5 +24,6 @@ module.exports = function from(obj) { iterator = object; alreadyAsync = true; } + anObject(iterator); return getIteratorDirect(alreadyAsync ? iterator : new AsyncFromSyncIterator(getIteratorDirect(iterator))); }; diff --git a/packages/core-js/internals/get-iterator-flattenable.js b/packages/core-js/internals/get-iterator-flattenable.js index 6720436fb14b..c2eb28deb528 100644 --- a/packages/core-js/internals/get-iterator-flattenable.js +++ b/packages/core-js/internals/get-iterator-flattenable.js @@ -7,5 +7,5 @@ var getIteratorMethod = require('../internals/get-iterator-method'); module.exports = function (obj) { var object = anObject(obj); var method = getIteratorMethod(object); - return getIteratorDirect(isCallable(method) ? call(method, object) : object); + return getIteratorDirect(anObject(isCallable(method) ? call(method, object) : object)); }; From 7b6f4c6255dad6eefaa5b1bae0d666bd4d3bdd5f Mon Sep 17 00:00:00 2001 From: Denis Pushkarev Date: Thu, 1 Dec 2022 23:51:40 +0700 Subject: [PATCH 3/5] move iterator helpers to stage 3 --- README.md | 208 +++++++++--------- .../core-js/actual/async-iterator/drop.js | 8 + .../core-js/actual/async-iterator/every.js | 8 + .../core-js/actual/async-iterator/filter.js | 8 + .../core-js/actual/async-iterator/find.js | 8 + .../core-js/actual/async-iterator/flat-map.js | 8 + .../core-js/actual/async-iterator/for-each.js | 8 + .../core-js/actual/async-iterator/from.js | 11 + .../core-js/actual/async-iterator/index.js | 22 ++ packages/core-js/actual/async-iterator/map.js | 8 + .../core-js/actual/async-iterator/reduce.js | 8 + .../core-js/actual/async-iterator/some.js | 8 + .../core-js/actual/async-iterator/take.js | 8 + .../core-js/actual/async-iterator/to-array.js | 8 + packages/core-js/actual/iterator/drop.js | 7 + packages/core-js/actual/iterator/every.js | 7 + packages/core-js/actual/iterator/filter.js | 7 + packages/core-js/actual/iterator/find.js | 7 + packages/core-js/actual/iterator/flat-map.js | 7 + packages/core-js/actual/iterator/for-each.js | 7 + packages/core-js/actual/iterator/from.js | 10 + packages/core-js/actual/iterator/index.js | 23 ++ packages/core-js/actual/iterator/map.js | 7 + packages/core-js/actual/iterator/reduce.js | 7 + packages/core-js/actual/iterator/some.js | 7 + packages/core-js/actual/iterator/take.js | 7 + packages/core-js/actual/iterator/to-array.js | 7 + packages/core-js/actual/iterator/to-async.js | 8 + packages/core-js/full/async-iterator/drop.js | 9 +- packages/core-js/full/async-iterator/every.js | 9 +- .../core-js/full/async-iterator/filter.js | 9 +- packages/core-js/full/async-iterator/find.js | 9 +- .../core-js/full/async-iterator/flat-map.js | 9 +- .../core-js/full/async-iterator/for-each.js | 9 +- packages/core-js/full/async-iterator/from.js | 12 +- packages/core-js/full/async-iterator/index.js | 23 +- packages/core-js/full/async-iterator/map.js | 9 +- .../core-js/full/async-iterator/reduce.js | 9 +- packages/core-js/full/async-iterator/some.js | 9 +- packages/core-js/full/async-iterator/take.js | 9 +- .../core-js/full/async-iterator/to-array.js | 9 +- packages/core-js/full/iterator/drop.js | 8 +- packages/core-js/full/iterator/every.js | 8 +- packages/core-js/full/iterator/filter.js | 8 +- packages/core-js/full/iterator/find.js | 8 +- packages/core-js/full/iterator/flat-map.js | 8 +- packages/core-js/full/iterator/for-each.js | 8 +- packages/core-js/full/iterator/from.js | 11 +- packages/core-js/full/iterator/index.js | 24 +- packages/core-js/full/iterator/map.js | 8 +- packages/core-js/full/iterator/reduce.js | 8 +- packages/core-js/full/iterator/some.js | 8 +- packages/core-js/full/iterator/take.js | 8 +- packages/core-js/full/iterator/to-array.js | 8 +- packages/core-js/full/iterator/to-async.js | 9 +- .../modules/esnext.async-iterator.drop.js | 2 +- .../modules/esnext.async-iterator.every.js | 2 +- .../modules/esnext.async-iterator.filter.js | 2 +- .../modules/esnext.async-iterator.find.js | 2 +- .../modules/esnext.async-iterator.flat-map.js | 2 +- .../modules/esnext.async-iterator.for-each.js | 2 +- .../modules/esnext.async-iterator.from.js | 2 +- .../modules/esnext.async-iterator.map.js | 2 +- .../modules/esnext.async-iterator.reduce.js | 2 +- .../modules/esnext.async-iterator.some.js | 2 +- .../modules/esnext.async-iterator.take.js | 2 +- .../modules/esnext.async-iterator.to-array.js | 2 +- .../core-js/modules/esnext.iterator.drop.js | 2 +- .../core-js/modules/esnext.iterator.every.js | 2 +- .../core-js/modules/esnext.iterator.filter.js | 2 +- .../core-js/modules/esnext.iterator.find.js | 2 +- .../modules/esnext.iterator.flat-map.js | 2 +- .../modules/esnext.iterator.for-each.js | 2 +- .../core-js/modules/esnext.iterator.from.js | 2 +- .../core-js/modules/esnext.iterator.map.js | 2 +- .../core-js/modules/esnext.iterator.reduce.js | 2 +- .../core-js/modules/esnext.iterator.some.js | 2 +- .../core-js/modules/esnext.iterator.take.js | 2 +- .../modules/esnext.iterator.to-array.js | 2 +- .../modules/esnext.iterator.to-async.js | 2 +- .../proposals/iterator-helpers-stage-3.js | 34 +++ .../core-js/proposals/iterator-helpers.js | 31 +-- packages/core-js/stage/2.js | 1 + packages/core-js/stage/3.js | 1 + tests/entries/unit.mjs | 55 ++--- .../esnext.async-iterator.constructor.js | 2 +- tests/unit-pure/esnext.async-iterator.drop.js | 2 +- .../unit-pure/esnext.async-iterator.every.js | 2 +- .../unit-pure/esnext.async-iterator.filter.js | 2 +- tests/unit-pure/esnext.async-iterator.find.js | 2 +- .../esnext.async-iterator.flat-map.js | 2 +- .../esnext.async-iterator.for-each.js | 2 +- tests/unit-pure/esnext.async-iterator.from.js | 2 +- tests/unit-pure/esnext.async-iterator.map.js | 2 +- .../unit-pure/esnext.async-iterator.reduce.js | 2 +- tests/unit-pure/esnext.async-iterator.some.js | 2 +- tests/unit-pure/esnext.async-iterator.take.js | 2 +- .../esnext.async-iterator.to-array.js | 2 +- .../unit-pure/esnext.iterator.constructor.js | 2 +- tests/unit-pure/esnext.iterator.drop.js | 2 +- tests/unit-pure/esnext.iterator.every.js | 2 +- tests/unit-pure/esnext.iterator.filter.js | 2 +- tests/unit-pure/esnext.iterator.find.js | 2 +- tests/unit-pure/esnext.iterator.flat-map.js | 2 +- tests/unit-pure/esnext.iterator.for-each.js | 2 +- tests/unit-pure/esnext.iterator.from.js | 2 +- tests/unit-pure/esnext.iterator.map.js | 2 +- tests/unit-pure/esnext.iterator.reduce.js | 2 +- tests/unit-pure/esnext.iterator.some.js | 2 +- tests/unit-pure/esnext.iterator.take.js | 2 +- tests/unit-pure/esnext.iterator.to-array.js | 2 +- tests/unit-pure/esnext.iterator.to-async.js | 4 +- 112 files changed, 516 insertions(+), 425 deletions(-) create mode 100644 packages/core-js/actual/async-iterator/drop.js create mode 100644 packages/core-js/actual/async-iterator/every.js create mode 100644 packages/core-js/actual/async-iterator/filter.js create mode 100644 packages/core-js/actual/async-iterator/find.js create mode 100644 packages/core-js/actual/async-iterator/flat-map.js create mode 100644 packages/core-js/actual/async-iterator/for-each.js create mode 100644 packages/core-js/actual/async-iterator/from.js create mode 100644 packages/core-js/actual/async-iterator/index.js create mode 100644 packages/core-js/actual/async-iterator/map.js create mode 100644 packages/core-js/actual/async-iterator/reduce.js create mode 100644 packages/core-js/actual/async-iterator/some.js create mode 100644 packages/core-js/actual/async-iterator/take.js create mode 100644 packages/core-js/actual/async-iterator/to-array.js create mode 100644 packages/core-js/actual/iterator/drop.js create mode 100644 packages/core-js/actual/iterator/every.js create mode 100644 packages/core-js/actual/iterator/filter.js create mode 100644 packages/core-js/actual/iterator/find.js create mode 100644 packages/core-js/actual/iterator/flat-map.js create mode 100644 packages/core-js/actual/iterator/for-each.js create mode 100644 packages/core-js/actual/iterator/from.js create mode 100644 packages/core-js/actual/iterator/index.js create mode 100644 packages/core-js/actual/iterator/map.js create mode 100644 packages/core-js/actual/iterator/reduce.js create mode 100644 packages/core-js/actual/iterator/some.js create mode 100644 packages/core-js/actual/iterator/take.js create mode 100644 packages/core-js/actual/iterator/to-array.js create mode 100644 packages/core-js/actual/iterator/to-async.js create mode 100644 packages/core-js/proposals/iterator-helpers-stage-3.js diff --git a/README.md b/README.md index 90269d2c222c..09fe4d35b791 100644 --- a/README.md +++ b/README.md @@ -125,12 +125,12 @@ queueMicrotask(() => console.log('called as microtask')); - [`Symbol.prototype.description`](#symbolprototypedescription) - [Well-formed `JSON.stringify`](#well-formed-jsonstringify) - [Stage 3 proposals](#stage-3-proposals) + - [`Iterator` helpers](#iterator-helpers) - [`Array.fromAsync`](#arrayfromasync) - [`Array` grouping](#array-grouping) - [Change `Array` by copy](#change-array-by-copy) - [Well-formed unicode strings](#well-formed-unicode-strings) - [Stage 2 proposals](#stage-2-proposals) - - [`Iterator` helpers](#iterator-helpers) - [New `Set` methods](#new-set-methods) - [`Map.prototype.emplace`](#mapprototypeemplace) - [`Array.isTemplateObject`](#arrayistemplateobject) @@ -2091,6 +2091,109 @@ core-js/proposals/well-formed-stringify ```js core-js(-pure)/stage/3 ``` +##### [Iterator helpers](https://github.com/tc39/proposal-iterator-helpers)[⬆](#index) +Modules [`esnext.async-iterator.constructor`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/esnext.async-iterator.constructor.js), [`esnext.async-iterator.drop`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/esnext.async-iterator.drop.js), [`esnext.async-iterator.every`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/esnext.async-iterator.every.js), [`esnext.async-iterator.filter`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/esnext.async-iterator.filter.js), [`esnext.async-iterator.find`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/esnext.async-iterator.find.js), [`esnext.async-iterator.flat-map`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/esnext.async-iterator.flat-map.js), [`esnext.async-iterator.for-each`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/esnext.async-iterator.for-each.js), [`esnext.async-iterator.from`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/esnext.async-iterator.from.js), [`esnext.async-iterator.map`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/esnext.async-iterator.map.js), [`esnext.async-iterator.reduce`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/esnext.async-iterator.reduce.js), [`esnext.async-iterator.some`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/esnext.async-iterator.some.js), [`esnext.async-iterator.take`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/esnext.async-iterator.take.js), [`esnext.async-iterator.to-array`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/esnext.async-iterator.to-array.js), [`esnext.iterator.constructor`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/esnext.iterator.constructor.js), [`esnext.iterator.drop`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/esnext.iterator.drop.js), [`esnext.iterator.every`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/esnext.iterator.every.js), [`esnext.iterator.filter`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/esnext.iterator.filter.js), [`esnext.iterator.find`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/esnext.iterator.find.js), [`esnext.iterator.flat-map`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/esnext.iterator.flat-map.js), [`esnext.iterator.for-each`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/esnext.iterator.for-each.js), [`esnext.iterator.from`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/esnext.iterator.from.js), [`esnext.iterator.map`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/esnext.iterator.map.js), [`esnext.iterator.reduce`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/esnext.iterator.reduce.js), [`esnext.iterator.some`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/esnext.iterator.some.js), [`esnext.iterator.take`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/esnext.iterator.take.js), [`esnext.iterator.to-array`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/esnext.iterator.to-array.js) and [`esnext.iterator.to-async`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/esnext.iterator.to-async.js) +```js +class Iterator { + static from(iterable: Iterable | Iterator): Iterator; + drop(limit: uint): Iterator; + every(callbackfn: (value: any, couner: uint) => boolean): boolean; + filter(callbackfn: (value: any, couner: uint) => boolean): Iterator; + find(callbackfn: (value: any, couner: uint) => boolean)): any; + flatMap(callbackfn: (value: any, couner: uint) => Iterable | Iterator): Iterator; + forEach(callbackfn: (value: any, couner: uint) => void): void; + map(callbackfn: (value: any, couner: uint) => any): Iterator; + reduce(callbackfn: (memo: any, value: any, couner: uint) => any, initialValue: any): any; + some(callbackfn: (value: any, couner: uint) => boolean): boolean; + take(limit: uint): Iterator; + toArray(): Array; + toAsync(): AsyncIterator; + @@toStringTag: 'Iterator' +} + +class AsyncIterator { + static from(iterable: AsyncIterable | Iterable | AsyncIterator): AsyncIterator; + drop(limit: uint): AsyncIterator; + every(async callbackfn: (value: any, couner: uint) => boolean): Promise; + filter(async callbackfn: (value: any, couner: uint) => boolean): AsyncIterator; + find(async callbackfn: (value: any, couner: uint) => boolean)): Promise; + flatMap(async callbackfn: (value: any, couner: uint) => AsyncIterable | Iterable | AsyncIterator): AsyncIterator; + forEach(async callbackfn: (value: any, couner: uint) => void): Promise; + map(async callbackfn: (value: any, couner: uint) => any): AsyncIterator; + reduce(async callbackfn: (memo: any, value: any, couner: uint) => any, initialValue: any): Promise; + some(async callbackfn: (value: any, couner: uint) => boolean): Promise; + take(limit: uint): AsyncIterator; + toArray(): Promise; + @@toStringTag: 'AsyncIterator' +} +``` +[*CommonJS entry points:*](#commonjs-api) +```js +core-js/proposals/iterator-helpers-stage-3 +core-js(-pure)/actual|full/async-iterator +core-js(-pure)/actual|full/async-iterator/drop +core-js(-pure)/actual|full/async-iterator/every +core-js(-pure)/actual|full/async-iterator/filter +core-js(-pure)/actual|full/async-iterator/find +core-js(-pure)/actual|full/async-iterator/flat-map +core-js(-pure)/actual|full/async-iterator/for-each +core-js(-pure)/actual|full/async-iterator/from +core-js(-pure)/actual|full/async-iterator/indexed +core-js(-pure)/actual|full/async-iterator/map +core-js(-pure)/actual|full/async-iterator/reduce +core-js(-pure)/actual|full/async-iterator/some +core-js(-pure)/actual|full/async-iterator/take +core-js(-pure)/actual|full/async-iterator/to-array +core-js(-pure)/actual|full/iterator +core-js(-pure)/actual|full/iterator/drop +core-js(-pure)/actual|full/iterator/every +core-js(-pure)/actual|full/iterator/filter +core-js(-pure)/actual|full/iterator/find +core-js(-pure)/actual|full/iterator/flat-map +core-js(-pure)/actual|full/iterator/for-each +core-js(-pure)/actual|full/iterator/from +core-js(-pure)/actual|full/iterator/indexed +core-js(-pure)/actual|full/iterator/map +core-js(-pure)/actual|full/iterator/reduce +core-js(-pure)/actual|full/iterator/some +core-js(-pure)/actual|full/iterator/take +core-js(-pure)/actual|full/iterator/to-array +core-js(-pure)/actual|full/iterator/to-async +``` +[Examples](https://is.gd/P7YLCq): +```js +[1, 2, 3, 4, 5, 6, 7].values() + .drop(1) + .take(5) + .filter(it => it % 2) + .map(it => it ** 2) + .toArray(); // => [9, 25] + +Iterator.from({ + next: () => ({ done: Math.random() > .9, value: Math.random() * 10 | 0 }) +}).toArray(); // => [7, 6, 3, 0, 2, 8] + +await AsyncIterator.from([1, 2, 3, 4, 5, 6, 7]) + .drop(1) + .take(5) + .filter(it => it % 2) + .map(it => it ** 2) + .toArray(); // => [9, 25] + +await [1, 2, 3].values().toAsync().map(async it => it ** 2).toArray(); // => [1, 4, 9] +``` +###### Caveats:[⬆](#index) +- For preventing prototypes pollution, in the `pure` version, new `%IteratorPrototype%` methods are not added to the real `%IteratorPrototype%`, they available only on wrappers - instead of `[].values().map(fn)` use `Iterator.from([]).map(fn)`. +- Now, we have access to the real `%AsyncIteratorPrototype%` only with usage async generators syntax. So, for compatibility the library with old browsers, we should use `Function` constructor. However, that breaks compatibility with CSP. So, if you wanna use the real `%AsyncIteratorPrototype%`, you should set `USE_FUNCTION_CONSTRUCTOR` option in the `core-js/configurator` to `true`: +```js +const configurator = require('core-js/configurator'); + +configurator({ USE_FUNCTION_CONSTRUCTOR: true }); + +require('core-js/actual/async-iterator'); + +(async function * () { /* empty */ })() instanceof AsyncIterator; // => true +``` ##### [`Array.fromAsync`](https://github.com/tc39/proposal-array-from-async)[⬆](#index) Modules [`esnext.array.from-async`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/esnext.array.from-async.js). ```js @@ -2202,109 +2305,6 @@ core-js(-pure)/actual|full/string(/virtual)/to-well-formed ``` core-js(-pure)/stage/2 ``` -##### [Iterator helpers](https://github.com/tc39/proposal-iterator-helpers)[⬆](#index) -Modules [`esnext.async-iterator.constructor`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/esnext.async-iterator.constructor.js), [`esnext.async-iterator.drop`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/esnext.async-iterator.drop.js), [`esnext.async-iterator.every`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/esnext.async-iterator.every.js), [`esnext.async-iterator.filter`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/esnext.async-iterator.filter.js), [`esnext.async-iterator.find`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/esnext.async-iterator.find.js), [`esnext.async-iterator.flat-map`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/esnext.async-iterator.flat-map.js), [`esnext.async-iterator.for-each`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/esnext.async-iterator.for-each.js), [`esnext.async-iterator.from`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/esnext.async-iterator.from.js), [`esnext.async-iterator.map`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/esnext.async-iterator.map.js), [`esnext.async-iterator.reduce`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/esnext.async-iterator.reduce.js), [`esnext.async-iterator.some`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/esnext.async-iterator.some.js), [`esnext.async-iterator.take`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/esnext.async-iterator.take.js), [`esnext.async-iterator.to-array`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/esnext.async-iterator.to-array.js), [`esnext.iterator.constructor`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/esnext.iterator.constructor.js), [`esnext.iterator.drop`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/esnext.iterator.drop.js), [`esnext.iterator.every`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/esnext.iterator.every.js), [`esnext.iterator.filter`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/esnext.iterator.filter.js), [`esnext.iterator.find`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/esnext.iterator.find.js), [`esnext.iterator.flat-map`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/esnext.iterator.flat-map.js), [`esnext.iterator.for-each`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/esnext.iterator.for-each.js), [`esnext.iterator.from`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/esnext.iterator.from.js), [`esnext.iterator.map`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/esnext.iterator.map.js), [`esnext.iterator.reduce`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/esnext.iterator.reduce.js), [`esnext.iterator.some`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/esnext.iterator.some.js), [`esnext.iterator.take`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/esnext.iterator.take.js), [`esnext.iterator.to-array`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/esnext.iterator.to-array.js) and [`esnext.iterator.to-async`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/esnext.iterator.to-async.js) -```js -class Iterator { - static from(iterable: Iterable | Iterator): Iterator; - drop(limit: uint): Iterator; - every(callbackfn: (value: any, couner: uint) => boolean): boolean; - filter(callbackfn: (value: any, couner: uint) => boolean): Iterator; - find(callbackfn: (value: any, couner: uint) => boolean)): any; - flatMap(callbackfn: (value: any, couner: uint) => Iterable | Iterator): Iterator; - forEach(callbackfn: (value: any, couner: uint) => void): void; - map(callbackfn: (value: any, couner: uint) => any): Iterator; - reduce(callbackfn: (memo: any, value: any, couner: uint) => any, initialValue: any): any; - some(callbackfn: (value: any, couner: uint) => boolean): boolean; - take(limit: uint): Iterator; - toArray(): Array; - toAsync(): AsyncIterator; - @@toStringTag: 'Iterator' -} - -class AsyncIterator { - static from(iterable: AsyncIterable | Iterable | AsyncIterator): AsyncIterator; - drop(limit: uint): AsyncIterator; - every(async callbackfn: (value: any, couner: uint) => boolean): Promise; - filter(async callbackfn: (value: any, couner: uint) => boolean): AsyncIterator; - find(async callbackfn: (value: any, couner: uint) => boolean)): Promise; - flatMap(async callbackfn: (value: any, couner: uint) => AsyncIterable | Iterable | AsyncIterator): AsyncIterator; - forEach(async callbackfn: (value: any, couner: uint) => void): Promise; - map(async callbackfn: (value: any, couner: uint) => any): AsyncIterator; - reduce(async callbackfn: (memo: any, value: any, couner: uint) => any, initialValue: any): Promise; - some(async callbackfn: (value: any, couner: uint) => boolean): Promise; - take(limit: uint): AsyncIterator; - toArray(): Promise; - @@toStringTag: 'AsyncIterator' -} -``` -[*CommonJS entry points:*](#commonjs-api) -```js -core-js/proposals/iterator-helpers -core-js(-pure)/full/async-iterator -core-js(-pure)/full/async-iterator/drop -core-js(-pure)/full/async-iterator/every -core-js(-pure)/full/async-iterator/filter -core-js(-pure)/full/async-iterator/find -core-js(-pure)/full/async-iterator/flat-map -core-js(-pure)/full/async-iterator/for-each -core-js(-pure)/full/async-iterator/from -core-js(-pure)/full/async-iterator/indexed -core-js(-pure)/full/async-iterator/map -core-js(-pure)/full/async-iterator/reduce -core-js(-pure)/full/async-iterator/some -core-js(-pure)/full/async-iterator/take -core-js(-pure)/full/async-iterator/to-array -core-js(-pure)/full/iterator -core-js(-pure)/full/iterator/drop -core-js(-pure)/full/iterator/every -core-js(-pure)/full/iterator/filter -core-js(-pure)/full/iterator/find -core-js(-pure)/full/iterator/flat-map -core-js(-pure)/full/iterator/for-each -core-js(-pure)/full/iterator/from -core-js(-pure)/full/iterator/indexed -core-js(-pure)/full/iterator/map -core-js(-pure)/full/iterator/reduce -core-js(-pure)/full/iterator/some -core-js(-pure)/full/iterator/take -core-js(-pure)/full/iterator/to-array -core-js(-pure)/full/iterator/to-async -``` -[Examples](https://is.gd/P7YLCq): -```js -[1, 2, 3, 4, 5, 6, 7].values() - .drop(1) - .take(5) - .filter(it => it % 2) - .map(it => it ** 2) - .toArray(); // => [9, 25] - -Iterator.from({ - next: () => ({ done: Math.random() > .9, value: Math.random() * 10 | 0 }) -}).toArray(); // => [7, 6, 3, 0, 2, 8] - -await AsyncIterator.from([1, 2, 3, 4, 5, 6, 7]) - .drop(1) - .take(5) - .filter(it => it % 2) - .map(it => it ** 2) - .toArray(); // => [9, 25] - -await [1, 2, 3].values().toAsync().map(async it => it ** 2).toArray(); // => [1, 4, 9] -``` -###### Caveats:[⬆](#index) -- For preventing prototypes pollution, in the `pure` version, new `%IteratorPrototype%` methods are not added to the real `%IteratorPrototype%`, they available only on wrappers - instead of `[].values().map(fn)` use `Iterator.from([]).map(fn)`. -- Now, we have access to the real `%AsyncIteratorPrototype%` only with usage async generators syntax. So, for compatibility the library with old browsers, we should use `Function` constructor. However, that breaks compatibility with CSP. So, if you wanna use the real `%AsyncIteratorPrototype%`, you should set `USE_FUNCTION_CONSTRUCTOR` option in the `core-js/configurator` to `true`: -```js -const configurator = require('core-js/configurator'); - -configurator({ USE_FUNCTION_CONSTRUCTOR: true }); - -require('core-js/full/async-iterator'); - -(async function * () { /* empty */ })() instanceof AsyncIterator; // => true -``` ##### [New `Set` methods](https://github.com/tc39/proposal-set-methods)[⬆](#index) Modules [`esnext.set.difference`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/esnext.set.difference.js), [`esnext.set.intersection`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/esnext.set.intersection.js), [`esnext.set.is-disjoint-from`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/esnext.set.is-disjoint-from.js), [`esnext.set.is-subset-of`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/esnext.set.is-subset-of.js), [`esnext.set.is-superset-of`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/esnext.set.is-superset-of.js), [`esnext.set.symmetric-difference`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/esnext.set.symmetric-difference.js), [`esnext.set.union`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/esnext.set.union.js) ```js diff --git a/packages/core-js/actual/async-iterator/drop.js b/packages/core-js/actual/async-iterator/drop.js new file mode 100644 index 000000000000..601cb269b1b7 --- /dev/null +++ b/packages/core-js/actual/async-iterator/drop.js @@ -0,0 +1,8 @@ +require('../../modules/es.object.to-string'); +require('../../modules/es.promise'); +require('../../modules/esnext.async-iterator.constructor'); +require('../../modules/esnext.async-iterator.drop'); + +var entryUnbind = require('../../internals/entry-unbind'); + +module.exports = entryUnbind('AsyncIterator', 'drop'); diff --git a/packages/core-js/actual/async-iterator/every.js b/packages/core-js/actual/async-iterator/every.js new file mode 100644 index 000000000000..655a8495f62d --- /dev/null +++ b/packages/core-js/actual/async-iterator/every.js @@ -0,0 +1,8 @@ +require('../../modules/es.object.to-string'); +require('../../modules/es.promise'); +require('../../modules/esnext.async-iterator.constructor'); +require('../../modules/esnext.async-iterator.every'); + +var entryUnbind = require('../../internals/entry-unbind'); + +module.exports = entryUnbind('AsyncIterator', 'every'); diff --git a/packages/core-js/actual/async-iterator/filter.js b/packages/core-js/actual/async-iterator/filter.js new file mode 100644 index 000000000000..4043d2be5e4c --- /dev/null +++ b/packages/core-js/actual/async-iterator/filter.js @@ -0,0 +1,8 @@ +require('../../modules/es.object.to-string'); +require('../../modules/es.promise'); +require('../../modules/esnext.async-iterator.constructor'); +require('../../modules/esnext.async-iterator.filter'); + +var entryUnbind = require('../../internals/entry-unbind'); + +module.exports = entryUnbind('AsyncIterator', 'filter'); diff --git a/packages/core-js/actual/async-iterator/find.js b/packages/core-js/actual/async-iterator/find.js new file mode 100644 index 000000000000..ab9115f01270 --- /dev/null +++ b/packages/core-js/actual/async-iterator/find.js @@ -0,0 +1,8 @@ +require('../../modules/es.object.to-string'); +require('../../modules/es.promise'); +require('../../modules/esnext.async-iterator.constructor'); +require('../../modules/esnext.async-iterator.find'); + +var entryUnbind = require('../../internals/entry-unbind'); + +module.exports = entryUnbind('AsyncIterator', 'find'); diff --git a/packages/core-js/actual/async-iterator/flat-map.js b/packages/core-js/actual/async-iterator/flat-map.js new file mode 100644 index 000000000000..9d3d8c41ef37 --- /dev/null +++ b/packages/core-js/actual/async-iterator/flat-map.js @@ -0,0 +1,8 @@ +require('../../modules/es.object.to-string'); +require('../../modules/es.promise'); +require('../../modules/esnext.async-iterator.constructor'); +require('../../modules/esnext.async-iterator.flat-map'); + +var entryUnbind = require('../../internals/entry-unbind'); + +module.exports = entryUnbind('AsyncIterator', 'flatMap'); diff --git a/packages/core-js/actual/async-iterator/for-each.js b/packages/core-js/actual/async-iterator/for-each.js new file mode 100644 index 000000000000..8016cd9cfe33 --- /dev/null +++ b/packages/core-js/actual/async-iterator/for-each.js @@ -0,0 +1,8 @@ +require('../../modules/es.object.to-string'); +require('../../modules/es.promise'); +require('../../modules/esnext.async-iterator.constructor'); +require('../../modules/esnext.async-iterator.for-each'); + +var entryUnbind = require('../../internals/entry-unbind'); + +module.exports = entryUnbind('AsyncIterator', 'forEach'); diff --git a/packages/core-js/actual/async-iterator/from.js b/packages/core-js/actual/async-iterator/from.js new file mode 100644 index 000000000000..2c40d30d5c47 --- /dev/null +++ b/packages/core-js/actual/async-iterator/from.js @@ -0,0 +1,11 @@ +require('../../modules/es.array.iterator'); +require('../../modules/es.object.to-string'); +require('../../modules/es.promise'); +require('../../modules/es.string.iterator'); +require('../../modules/esnext.async-iterator.constructor'); +require('../../modules/esnext.async-iterator.from'); +require('../../modules/web.dom-collections.iterator'); + +var path = require('../../internals/path'); + +module.exports = path.AsyncIterator.from; diff --git a/packages/core-js/actual/async-iterator/index.js b/packages/core-js/actual/async-iterator/index.js new file mode 100644 index 000000000000..eba3885283a4 --- /dev/null +++ b/packages/core-js/actual/async-iterator/index.js @@ -0,0 +1,22 @@ +require('../../modules/es.array.iterator'); +require('../../modules/es.object.to-string'); +require('../../modules/es.promise'); +require('../../modules/es.string.iterator'); +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/web.dom-collections.iterator'); + +var path = require('../../internals/path'); + +module.exports = path.AsyncIterator; diff --git a/packages/core-js/actual/async-iterator/map.js b/packages/core-js/actual/async-iterator/map.js new file mode 100644 index 000000000000..a0b1021e6c91 --- /dev/null +++ b/packages/core-js/actual/async-iterator/map.js @@ -0,0 +1,8 @@ +require('../../modules/es.object.to-string'); +require('../../modules/es.promise'); +require('../../modules/esnext.async-iterator.constructor'); +require('../../modules/esnext.async-iterator.map'); + +var entryUnbind = require('../../internals/entry-unbind'); + +module.exports = entryUnbind('AsyncIterator', 'map'); diff --git a/packages/core-js/actual/async-iterator/reduce.js b/packages/core-js/actual/async-iterator/reduce.js new file mode 100644 index 000000000000..8efb49647908 --- /dev/null +++ b/packages/core-js/actual/async-iterator/reduce.js @@ -0,0 +1,8 @@ +require('../../modules/es.object.to-string'); +require('../../modules/es.promise'); +require('../../modules/esnext.async-iterator.constructor'); +require('../../modules/esnext.async-iterator.reduce'); + +var entryUnbind = require('../../internals/entry-unbind'); + +module.exports = entryUnbind('AsyncIterator', 'reduce'); diff --git a/packages/core-js/actual/async-iterator/some.js b/packages/core-js/actual/async-iterator/some.js new file mode 100644 index 000000000000..cd4a6c5d5343 --- /dev/null +++ b/packages/core-js/actual/async-iterator/some.js @@ -0,0 +1,8 @@ +require('../../modules/es.object.to-string'); +require('../../modules/es.promise'); +require('../../modules/esnext.async-iterator.constructor'); +require('../../modules/esnext.async-iterator.some'); + +var entryUnbind = require('../../internals/entry-unbind'); + +module.exports = entryUnbind('AsyncIterator', 'some'); diff --git a/packages/core-js/actual/async-iterator/take.js b/packages/core-js/actual/async-iterator/take.js new file mode 100644 index 000000000000..a2ddea4770ec --- /dev/null +++ b/packages/core-js/actual/async-iterator/take.js @@ -0,0 +1,8 @@ +require('../../modules/es.object.to-string'); +require('../../modules/es.promise'); +require('../../modules/esnext.async-iterator.constructor'); +require('../../modules/esnext.async-iterator.take'); + +var entryUnbind = require('../../internals/entry-unbind'); + +module.exports = entryUnbind('AsyncIterator', 'take'); diff --git a/packages/core-js/actual/async-iterator/to-array.js b/packages/core-js/actual/async-iterator/to-array.js new file mode 100644 index 000000000000..67586e056457 --- /dev/null +++ b/packages/core-js/actual/async-iterator/to-array.js @@ -0,0 +1,8 @@ +require('../../modules/es.object.to-string'); +require('../../modules/es.promise'); +require('../../modules/esnext.async-iterator.constructor'); +require('../../modules/esnext.async-iterator.to-array'); + +var entryUnbind = require('../../internals/entry-unbind'); + +module.exports = entryUnbind('AsyncIterator', 'toArray'); diff --git a/packages/core-js/actual/iterator/drop.js b/packages/core-js/actual/iterator/drop.js new file mode 100644 index 000000000000..1104c56b9c71 --- /dev/null +++ b/packages/core-js/actual/iterator/drop.js @@ -0,0 +1,7 @@ +require('../../modules/es.object.to-string'); +require('../../modules/esnext.iterator.constructor'); +require('../../modules/esnext.iterator.drop'); + +var entryUnbind = require('../../internals/entry-unbind'); + +module.exports = entryUnbind('Iterator', 'drop'); diff --git a/packages/core-js/actual/iterator/every.js b/packages/core-js/actual/iterator/every.js new file mode 100644 index 000000000000..497fd08326c3 --- /dev/null +++ b/packages/core-js/actual/iterator/every.js @@ -0,0 +1,7 @@ +require('../../modules/es.object.to-string'); +require('../../modules/esnext.iterator.constructor'); +require('../../modules/esnext.iterator.every'); + +var entryUnbind = require('../../internals/entry-unbind'); + +module.exports = entryUnbind('Iterator', 'every'); diff --git a/packages/core-js/actual/iterator/filter.js b/packages/core-js/actual/iterator/filter.js new file mode 100644 index 000000000000..e521ed04e600 --- /dev/null +++ b/packages/core-js/actual/iterator/filter.js @@ -0,0 +1,7 @@ +require('../../modules/es.object.to-string'); +require('../../modules/esnext.iterator.constructor'); +require('../../modules/esnext.iterator.filter'); + +var entryUnbind = require('../../internals/entry-unbind'); + +module.exports = entryUnbind('Iterator', 'filter'); diff --git a/packages/core-js/actual/iterator/find.js b/packages/core-js/actual/iterator/find.js new file mode 100644 index 000000000000..f09d1a86d7b9 --- /dev/null +++ b/packages/core-js/actual/iterator/find.js @@ -0,0 +1,7 @@ +require('../../modules/es.object.to-string'); +require('../../modules/esnext.iterator.constructor'); +require('../../modules/esnext.iterator.find'); + +var entryUnbind = require('../../internals/entry-unbind'); + +module.exports = entryUnbind('Iterator', 'find'); diff --git a/packages/core-js/actual/iterator/flat-map.js b/packages/core-js/actual/iterator/flat-map.js new file mode 100644 index 000000000000..33ac98211811 --- /dev/null +++ b/packages/core-js/actual/iterator/flat-map.js @@ -0,0 +1,7 @@ +require('../../modules/es.object.to-string'); +require('../../modules/esnext.iterator.constructor'); +require('../../modules/esnext.iterator.flat-map'); + +var entryUnbind = require('../../internals/entry-unbind'); + +module.exports = entryUnbind('Iterator', 'flatMap'); diff --git a/packages/core-js/actual/iterator/for-each.js b/packages/core-js/actual/iterator/for-each.js new file mode 100644 index 000000000000..f99aa2172d41 --- /dev/null +++ b/packages/core-js/actual/iterator/for-each.js @@ -0,0 +1,7 @@ +require('../../modules/es.object.to-string'); +require('../../modules/esnext.iterator.constructor'); +require('../../modules/esnext.iterator.for-each'); + +var entryUnbind = require('../../internals/entry-unbind'); + +module.exports = entryUnbind('Iterator', 'forEach'); diff --git a/packages/core-js/actual/iterator/from.js b/packages/core-js/actual/iterator/from.js new file mode 100644 index 000000000000..02b7e3d2827c --- /dev/null +++ b/packages/core-js/actual/iterator/from.js @@ -0,0 +1,10 @@ +require('../../modules/es.array.iterator'); +require('../../modules/es.object.to-string'); +require('../../modules/es.string.iterator'); +require('../../modules/esnext.iterator.constructor'); +require('../../modules/esnext.iterator.from'); +require('../../modules/web.dom-collections.iterator'); + +var path = require('../../internals/path'); + +module.exports = path.Iterator.from; diff --git a/packages/core-js/actual/iterator/index.js b/packages/core-js/actual/iterator/index.js new file mode 100644 index 000000000000..0c3281124d17 --- /dev/null +++ b/packages/core-js/actual/iterator/index.js @@ -0,0 +1,23 @@ +require('../../modules/es.array.iterator'); +require('../../modules/es.object.to-string'); +require('../../modules/es.promise'); +require('../../modules/es.string.iterator'); +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'); +require('../../modules/web.dom-collections.iterator'); + +var path = require('../../internals/path'); + +module.exports = path.Iterator; diff --git a/packages/core-js/actual/iterator/map.js b/packages/core-js/actual/iterator/map.js new file mode 100644 index 000000000000..404ab0b685a0 --- /dev/null +++ b/packages/core-js/actual/iterator/map.js @@ -0,0 +1,7 @@ +require('../../modules/es.object.to-string'); +require('../../modules/esnext.iterator.constructor'); +require('../../modules/esnext.iterator.map'); + +var entryUnbind = require('../../internals/entry-unbind'); + +module.exports = entryUnbind('Iterator', 'map'); diff --git a/packages/core-js/actual/iterator/reduce.js b/packages/core-js/actual/iterator/reduce.js new file mode 100644 index 000000000000..1586b61b52ca --- /dev/null +++ b/packages/core-js/actual/iterator/reduce.js @@ -0,0 +1,7 @@ +require('../../modules/es.object.to-string'); +require('../../modules/esnext.iterator.constructor'); +require('../../modules/esnext.iterator.reduce'); + +var entryUnbind = require('../../internals/entry-unbind'); + +module.exports = entryUnbind('Iterator', 'reduce'); diff --git a/packages/core-js/actual/iterator/some.js b/packages/core-js/actual/iterator/some.js new file mode 100644 index 000000000000..35c1b4d3bcb3 --- /dev/null +++ b/packages/core-js/actual/iterator/some.js @@ -0,0 +1,7 @@ +require('../../modules/es.object.to-string'); +require('../../modules/esnext.iterator.constructor'); +require('../../modules/esnext.iterator.some'); + +var entryUnbind = require('../../internals/entry-unbind'); + +module.exports = entryUnbind('Iterator', 'some'); diff --git a/packages/core-js/actual/iterator/take.js b/packages/core-js/actual/iterator/take.js new file mode 100644 index 000000000000..4ba01b0221e8 --- /dev/null +++ b/packages/core-js/actual/iterator/take.js @@ -0,0 +1,7 @@ +require('../../modules/es.object.to-string'); +require('../../modules/esnext.iterator.constructor'); +require('../../modules/esnext.iterator.take'); + +var entryUnbind = require('../../internals/entry-unbind'); + +module.exports = entryUnbind('Iterator', 'take'); diff --git a/packages/core-js/actual/iterator/to-array.js b/packages/core-js/actual/iterator/to-array.js new file mode 100644 index 000000000000..65e543a5e5b6 --- /dev/null +++ b/packages/core-js/actual/iterator/to-array.js @@ -0,0 +1,7 @@ +require('../../modules/es.object.to-string'); +require('../../modules/esnext.iterator.constructor'); +require('../../modules/esnext.iterator.to-array'); + +var entryUnbind = require('../../internals/entry-unbind'); + +module.exports = entryUnbind('Iterator', 'toArray'); diff --git a/packages/core-js/actual/iterator/to-async.js b/packages/core-js/actual/iterator/to-async.js new file mode 100644 index 000000000000..5d1887eefc24 --- /dev/null +++ b/packages/core-js/actual/iterator/to-async.js @@ -0,0 +1,8 @@ +require('../../modules/es.object.to-string'); +require('../../modules/es.promise'); +require('../../modules/esnext.iterator.constructor'); +require('../../modules/esnext.iterator.to-async'); + +var entryUnbind = require('../../internals/entry-unbind'); + +module.exports = entryUnbind('Iterator', 'toAsync'); diff --git a/packages/core-js/full/async-iterator/drop.js b/packages/core-js/full/async-iterator/drop.js index 601cb269b1b7..667ce2398583 100644 --- a/packages/core-js/full/async-iterator/drop.js +++ b/packages/core-js/full/async-iterator/drop.js @@ -1,8 +1,3 @@ -require('../../modules/es.object.to-string'); -require('../../modules/es.promise'); -require('../../modules/esnext.async-iterator.constructor'); -require('../../modules/esnext.async-iterator.drop'); +var parent = require('../../actual/async-iterator/drop'); -var entryUnbind = require('../../internals/entry-unbind'); - -module.exports = entryUnbind('AsyncIterator', 'drop'); +module.exports = parent; diff --git a/packages/core-js/full/async-iterator/every.js b/packages/core-js/full/async-iterator/every.js index 655a8495f62d..b9a378fde116 100644 --- a/packages/core-js/full/async-iterator/every.js +++ b/packages/core-js/full/async-iterator/every.js @@ -1,8 +1,3 @@ -require('../../modules/es.object.to-string'); -require('../../modules/es.promise'); -require('../../modules/esnext.async-iterator.constructor'); -require('../../modules/esnext.async-iterator.every'); +var parent = require('../../actual/async-iterator/every'); -var entryUnbind = require('../../internals/entry-unbind'); - -module.exports = entryUnbind('AsyncIterator', 'every'); +module.exports = parent; diff --git a/packages/core-js/full/async-iterator/filter.js b/packages/core-js/full/async-iterator/filter.js index 4043d2be5e4c..be25da935d48 100644 --- a/packages/core-js/full/async-iterator/filter.js +++ b/packages/core-js/full/async-iterator/filter.js @@ -1,8 +1,3 @@ -require('../../modules/es.object.to-string'); -require('../../modules/es.promise'); -require('../../modules/esnext.async-iterator.constructor'); -require('../../modules/esnext.async-iterator.filter'); +var parent = require('../../actual/async-iterator/filter'); -var entryUnbind = require('../../internals/entry-unbind'); - -module.exports = entryUnbind('AsyncIterator', 'filter'); +module.exports = parent; diff --git a/packages/core-js/full/async-iterator/find.js b/packages/core-js/full/async-iterator/find.js index ab9115f01270..56cf64af20db 100644 --- a/packages/core-js/full/async-iterator/find.js +++ b/packages/core-js/full/async-iterator/find.js @@ -1,8 +1,3 @@ -require('../../modules/es.object.to-string'); -require('../../modules/es.promise'); -require('../../modules/esnext.async-iterator.constructor'); -require('../../modules/esnext.async-iterator.find'); +var parent = require('../../actual/async-iterator/find'); -var entryUnbind = require('../../internals/entry-unbind'); - -module.exports = entryUnbind('AsyncIterator', 'find'); +module.exports = parent; diff --git a/packages/core-js/full/async-iterator/flat-map.js b/packages/core-js/full/async-iterator/flat-map.js index 9d3d8c41ef37..dacdfa71a4d3 100644 --- a/packages/core-js/full/async-iterator/flat-map.js +++ b/packages/core-js/full/async-iterator/flat-map.js @@ -1,8 +1,3 @@ -require('../../modules/es.object.to-string'); -require('../../modules/es.promise'); -require('../../modules/esnext.async-iterator.constructor'); -require('../../modules/esnext.async-iterator.flat-map'); +var parent = require('../../actual/async-iterator/flat-map'); -var entryUnbind = require('../../internals/entry-unbind'); - -module.exports = entryUnbind('AsyncIterator', 'flatMap'); +module.exports = parent; diff --git a/packages/core-js/full/async-iterator/for-each.js b/packages/core-js/full/async-iterator/for-each.js index 8016cd9cfe33..820c90531519 100644 --- a/packages/core-js/full/async-iterator/for-each.js +++ b/packages/core-js/full/async-iterator/for-each.js @@ -1,8 +1,3 @@ -require('../../modules/es.object.to-string'); -require('../../modules/es.promise'); -require('../../modules/esnext.async-iterator.constructor'); -require('../../modules/esnext.async-iterator.for-each'); +var parent = require('../../actual/async-iterator/for-each'); -var entryUnbind = require('../../internals/entry-unbind'); - -module.exports = entryUnbind('AsyncIterator', 'forEach'); +module.exports = parent; diff --git a/packages/core-js/full/async-iterator/from.js b/packages/core-js/full/async-iterator/from.js index 2c40d30d5c47..87475bf2f6a3 100644 --- a/packages/core-js/full/async-iterator/from.js +++ b/packages/core-js/full/async-iterator/from.js @@ -1,11 +1,3 @@ -require('../../modules/es.array.iterator'); -require('../../modules/es.object.to-string'); -require('../../modules/es.promise'); -require('../../modules/es.string.iterator'); -require('../../modules/esnext.async-iterator.constructor'); -require('../../modules/esnext.async-iterator.from'); -require('../../modules/web.dom-collections.iterator'); +var parent = require('../../actual/async-iterator/from'); -var path = require('../../internals/path'); - -module.exports = path.AsyncIterator.from; +module.exports = parent; diff --git a/packages/core-js/full/async-iterator/index.js b/packages/core-js/full/async-iterator/index.js index 867cf7f8e0ba..b56043f4d688 100644 --- a/packages/core-js/full/async-iterator/index.js +++ b/packages/core-js/full/async-iterator/index.js @@ -1,25 +1,6 @@ -require('../../modules/es.array.iterator'); -require('../../modules/es.object.to-string'); -require('../../modules/es.promise'); -require('../../modules/es.string.iterator'); -require('../../modules/esnext.async-iterator.constructor'); +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.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.indexed'); -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/web.dom-collections.iterator'); -var path = require('../../internals/path'); - -module.exports = path.AsyncIterator; +module.exports = parent; diff --git a/packages/core-js/full/async-iterator/map.js b/packages/core-js/full/async-iterator/map.js index a0b1021e6c91..d58297d5efd3 100644 --- a/packages/core-js/full/async-iterator/map.js +++ b/packages/core-js/full/async-iterator/map.js @@ -1,8 +1,3 @@ -require('../../modules/es.object.to-string'); -require('../../modules/es.promise'); -require('../../modules/esnext.async-iterator.constructor'); -require('../../modules/esnext.async-iterator.map'); +var parent = require('../../actual/async-iterator/map'); -var entryUnbind = require('../../internals/entry-unbind'); - -module.exports = entryUnbind('AsyncIterator', 'map'); +module.exports = parent; diff --git a/packages/core-js/full/async-iterator/reduce.js b/packages/core-js/full/async-iterator/reduce.js index 8efb49647908..ff064a898d68 100644 --- a/packages/core-js/full/async-iterator/reduce.js +++ b/packages/core-js/full/async-iterator/reduce.js @@ -1,8 +1,3 @@ -require('../../modules/es.object.to-string'); -require('../../modules/es.promise'); -require('../../modules/esnext.async-iterator.constructor'); -require('../../modules/esnext.async-iterator.reduce'); +var parent = require('../../actual/async-iterator/reduce'); -var entryUnbind = require('../../internals/entry-unbind'); - -module.exports = entryUnbind('AsyncIterator', 'reduce'); +module.exports = parent; diff --git a/packages/core-js/full/async-iterator/some.js b/packages/core-js/full/async-iterator/some.js index cd4a6c5d5343..e59d0b8c7d99 100644 --- a/packages/core-js/full/async-iterator/some.js +++ b/packages/core-js/full/async-iterator/some.js @@ -1,8 +1,3 @@ -require('../../modules/es.object.to-string'); -require('../../modules/es.promise'); -require('../../modules/esnext.async-iterator.constructor'); -require('../../modules/esnext.async-iterator.some'); +var parent = require('../../actual/async-iterator/some'); -var entryUnbind = require('../../internals/entry-unbind'); - -module.exports = entryUnbind('AsyncIterator', 'some'); +module.exports = parent; diff --git a/packages/core-js/full/async-iterator/take.js b/packages/core-js/full/async-iterator/take.js index a2ddea4770ec..72527bea8a83 100644 --- a/packages/core-js/full/async-iterator/take.js +++ b/packages/core-js/full/async-iterator/take.js @@ -1,8 +1,3 @@ -require('../../modules/es.object.to-string'); -require('../../modules/es.promise'); -require('../../modules/esnext.async-iterator.constructor'); -require('../../modules/esnext.async-iterator.take'); +var parent = require('../../actual/async-iterator/take'); -var entryUnbind = require('../../internals/entry-unbind'); - -module.exports = entryUnbind('AsyncIterator', 'take'); +module.exports = parent; diff --git a/packages/core-js/full/async-iterator/to-array.js b/packages/core-js/full/async-iterator/to-array.js index 67586e056457..b8dc59fd6b34 100644 --- a/packages/core-js/full/async-iterator/to-array.js +++ b/packages/core-js/full/async-iterator/to-array.js @@ -1,8 +1,3 @@ -require('../../modules/es.object.to-string'); -require('../../modules/es.promise'); -require('../../modules/esnext.async-iterator.constructor'); -require('../../modules/esnext.async-iterator.to-array'); +var parent = require('../../actual/async-iterator/to-array'); -var entryUnbind = require('../../internals/entry-unbind'); - -module.exports = entryUnbind('AsyncIterator', 'toArray'); +module.exports = parent; diff --git a/packages/core-js/full/iterator/drop.js b/packages/core-js/full/iterator/drop.js index 1104c56b9c71..26c146deaa1a 100644 --- a/packages/core-js/full/iterator/drop.js +++ b/packages/core-js/full/iterator/drop.js @@ -1,7 +1,3 @@ -require('../../modules/es.object.to-string'); -require('../../modules/esnext.iterator.constructor'); -require('../../modules/esnext.iterator.drop'); +var parent = require('../../actual/iterator/drop'); -var entryUnbind = require('../../internals/entry-unbind'); - -module.exports = entryUnbind('Iterator', 'drop'); +module.exports = parent; diff --git a/packages/core-js/full/iterator/every.js b/packages/core-js/full/iterator/every.js index 497fd08326c3..d0ce04563171 100644 --- a/packages/core-js/full/iterator/every.js +++ b/packages/core-js/full/iterator/every.js @@ -1,7 +1,3 @@ -require('../../modules/es.object.to-string'); -require('../../modules/esnext.iterator.constructor'); -require('../../modules/esnext.iterator.every'); +var parent = require('../../actual/iterator/every'); -var entryUnbind = require('../../internals/entry-unbind'); - -module.exports = entryUnbind('Iterator', 'every'); +module.exports = parent; diff --git a/packages/core-js/full/iterator/filter.js b/packages/core-js/full/iterator/filter.js index e521ed04e600..711cf7a77f3d 100644 --- a/packages/core-js/full/iterator/filter.js +++ b/packages/core-js/full/iterator/filter.js @@ -1,7 +1,3 @@ -require('../../modules/es.object.to-string'); -require('../../modules/esnext.iterator.constructor'); -require('../../modules/esnext.iterator.filter'); +var parent = require('../../actual/iterator/filter'); -var entryUnbind = require('../../internals/entry-unbind'); - -module.exports = entryUnbind('Iterator', 'filter'); +module.exports = parent; diff --git a/packages/core-js/full/iterator/find.js b/packages/core-js/full/iterator/find.js index f09d1a86d7b9..9c6177082a04 100644 --- a/packages/core-js/full/iterator/find.js +++ b/packages/core-js/full/iterator/find.js @@ -1,7 +1,3 @@ -require('../../modules/es.object.to-string'); -require('../../modules/esnext.iterator.constructor'); -require('../../modules/esnext.iterator.find'); +var parent = require('../../actual/iterator/find'); -var entryUnbind = require('../../internals/entry-unbind'); - -module.exports = entryUnbind('Iterator', 'find'); +module.exports = parent; diff --git a/packages/core-js/full/iterator/flat-map.js b/packages/core-js/full/iterator/flat-map.js index 33ac98211811..6d2f8ccbc1a4 100644 --- a/packages/core-js/full/iterator/flat-map.js +++ b/packages/core-js/full/iterator/flat-map.js @@ -1,7 +1,3 @@ -require('../../modules/es.object.to-string'); -require('../../modules/esnext.iterator.constructor'); -require('../../modules/esnext.iterator.flat-map'); +var parent = require('../../actual/iterator/flat-map'); -var entryUnbind = require('../../internals/entry-unbind'); - -module.exports = entryUnbind('Iterator', 'flatMap'); +module.exports = parent; diff --git a/packages/core-js/full/iterator/for-each.js b/packages/core-js/full/iterator/for-each.js index f99aa2172d41..7c12fbf633bc 100644 --- a/packages/core-js/full/iterator/for-each.js +++ b/packages/core-js/full/iterator/for-each.js @@ -1,7 +1,3 @@ -require('../../modules/es.object.to-string'); -require('../../modules/esnext.iterator.constructor'); -require('../../modules/esnext.iterator.for-each'); +var parent = require('../../actual/iterator/for-each'); -var entryUnbind = require('../../internals/entry-unbind'); - -module.exports = entryUnbind('Iterator', 'forEach'); +module.exports = parent; diff --git a/packages/core-js/full/iterator/from.js b/packages/core-js/full/iterator/from.js index 02b7e3d2827c..9e8cae5958cc 100644 --- a/packages/core-js/full/iterator/from.js +++ b/packages/core-js/full/iterator/from.js @@ -1,10 +1,3 @@ -require('../../modules/es.array.iterator'); -require('../../modules/es.object.to-string'); -require('../../modules/es.string.iterator'); -require('../../modules/esnext.iterator.constructor'); -require('../../modules/esnext.iterator.from'); -require('../../modules/web.dom-collections.iterator'); +var parent = require('../../actual/iterator/from'); -var path = require('../../internals/path'); - -module.exports = path.Iterator.from; +module.exports = parent; diff --git a/packages/core-js/full/iterator/index.js b/packages/core-js/full/iterator/index.js index 181901486408..9a0ebc60e5b8 100644 --- a/packages/core-js/full/iterator/index.js +++ b/packages/core-js/full/iterator/index.js @@ -1,26 +1,6 @@ -require('../../modules/es.array.iterator'); -require('../../modules/es.object.to-string'); -require('../../modules/es.promise'); -require('../../modules/es.string.iterator'); -require('../../modules/esnext.iterator.constructor'); +var parent = require('../../actual/iterator'); // TODO: Remove from `core-js@4` require('../../modules/esnext.iterator.as-indexed-pairs'); -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.indexed'); -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'); -require('../../modules/web.dom-collections.iterator'); -var path = require('../../internals/path'); - -module.exports = path.Iterator; +module.exports = parent; diff --git a/packages/core-js/full/iterator/map.js b/packages/core-js/full/iterator/map.js index 404ab0b685a0..34bbc0dafe19 100644 --- a/packages/core-js/full/iterator/map.js +++ b/packages/core-js/full/iterator/map.js @@ -1,7 +1,3 @@ -require('../../modules/es.object.to-string'); -require('../../modules/esnext.iterator.constructor'); -require('../../modules/esnext.iterator.map'); +var parent = require('../../actual/iterator/map'); -var entryUnbind = require('../../internals/entry-unbind'); - -module.exports = entryUnbind('Iterator', 'map'); +module.exports = parent; diff --git a/packages/core-js/full/iterator/reduce.js b/packages/core-js/full/iterator/reduce.js index 1586b61b52ca..ca40bbd77b5e 100644 --- a/packages/core-js/full/iterator/reduce.js +++ b/packages/core-js/full/iterator/reduce.js @@ -1,7 +1,3 @@ -require('../../modules/es.object.to-string'); -require('../../modules/esnext.iterator.constructor'); -require('../../modules/esnext.iterator.reduce'); +var parent = require('../../actual/iterator/reduce'); -var entryUnbind = require('../../internals/entry-unbind'); - -module.exports = entryUnbind('Iterator', 'reduce'); +module.exports = parent; diff --git a/packages/core-js/full/iterator/some.js b/packages/core-js/full/iterator/some.js index 35c1b4d3bcb3..2aad25b4752b 100644 --- a/packages/core-js/full/iterator/some.js +++ b/packages/core-js/full/iterator/some.js @@ -1,7 +1,3 @@ -require('../../modules/es.object.to-string'); -require('../../modules/esnext.iterator.constructor'); -require('../../modules/esnext.iterator.some'); +var parent = require('../../actual/iterator/some'); -var entryUnbind = require('../../internals/entry-unbind'); - -module.exports = entryUnbind('Iterator', 'some'); +module.exports = parent; diff --git a/packages/core-js/full/iterator/take.js b/packages/core-js/full/iterator/take.js index 4ba01b0221e8..5b22ff95849b 100644 --- a/packages/core-js/full/iterator/take.js +++ b/packages/core-js/full/iterator/take.js @@ -1,7 +1,3 @@ -require('../../modules/es.object.to-string'); -require('../../modules/esnext.iterator.constructor'); -require('../../modules/esnext.iterator.take'); +var parent = require('../../actual/iterator/take'); -var entryUnbind = require('../../internals/entry-unbind'); - -module.exports = entryUnbind('Iterator', 'take'); +module.exports = parent; diff --git a/packages/core-js/full/iterator/to-array.js b/packages/core-js/full/iterator/to-array.js index 65e543a5e5b6..c9c8d0946ae4 100644 --- a/packages/core-js/full/iterator/to-array.js +++ b/packages/core-js/full/iterator/to-array.js @@ -1,7 +1,3 @@ -require('../../modules/es.object.to-string'); -require('../../modules/esnext.iterator.constructor'); -require('../../modules/esnext.iterator.to-array'); +var parent = require('../../actual/iterator/to-array'); -var entryUnbind = require('../../internals/entry-unbind'); - -module.exports = entryUnbind('Iterator', 'toArray'); +module.exports = parent; diff --git a/packages/core-js/full/iterator/to-async.js b/packages/core-js/full/iterator/to-async.js index 5d1887eefc24..a5cbaeffd113 100644 --- a/packages/core-js/full/iterator/to-async.js +++ b/packages/core-js/full/iterator/to-async.js @@ -1,8 +1,3 @@ -require('../../modules/es.object.to-string'); -require('../../modules/es.promise'); -require('../../modules/esnext.iterator.constructor'); -require('../../modules/esnext.iterator.to-async'); +var parent = require('../../actual/iterator/to-async'); -var entryUnbind = require('../../internals/entry-unbind'); - -module.exports = entryUnbind('Iterator', 'toAsync'); +module.exports = parent; diff --git a/packages/core-js/modules/esnext.async-iterator.drop.js b/packages/core-js/modules/esnext.async-iterator.drop.js index cea4a3dfd26e..6f870e664a6b 100644 --- a/packages/core-js/modules/esnext.async-iterator.drop.js +++ b/packages/core-js/modules/esnext.async-iterator.drop.js @@ -38,7 +38,7 @@ var AsyncIteratorProxy = createAsyncIteratorProxy(function (Promise) { }); }); -$({ target: 'AsyncIterator', proto: true, real: true, forced: true }, { +$({ target: 'AsyncIterator', proto: true, real: true }, { drop: function drop(limit) { return new AsyncIteratorProxy(getIteratorDirect(this), { remaining: toPositiveInteger(notANaN(+limit)) diff --git a/packages/core-js/modules/esnext.async-iterator.every.js b/packages/core-js/modules/esnext.async-iterator.every.js index db989b619a16..70c945dc787a 100644 --- a/packages/core-js/modules/esnext.async-iterator.every.js +++ b/packages/core-js/modules/esnext.async-iterator.every.js @@ -3,7 +3,7 @@ var $ = require('../internals/export'); var $every = require('../internals/async-iterator-iteration').every; -$({ target: 'AsyncIterator', proto: true, real: true, forced: true }, { +$({ target: 'AsyncIterator', proto: true, real: true }, { every: function every(fn) { return $every(this, fn); } diff --git a/packages/core-js/modules/esnext.async-iterator.filter.js b/packages/core-js/modules/esnext.async-iterator.filter.js index 693210f70127..452acbbe55f1 100644 --- a/packages/core-js/modules/esnext.async-iterator.filter.js +++ b/packages/core-js/modules/esnext.async-iterator.filter.js @@ -54,7 +54,7 @@ var AsyncIteratorProxy = createAsyncIteratorProxy(function (Promise) { }); }); -$({ target: 'AsyncIterator', proto: true, real: true, forced: true }, { +$({ target: 'AsyncIterator', proto: true, real: true }, { filter: function filter(filterer) { return new AsyncIteratorProxy(getIteratorDirect(this), { filterer: aCallable(filterer) diff --git a/packages/core-js/modules/esnext.async-iterator.find.js b/packages/core-js/modules/esnext.async-iterator.find.js index 14588137ae96..0211e51f017a 100644 --- a/packages/core-js/modules/esnext.async-iterator.find.js +++ b/packages/core-js/modules/esnext.async-iterator.find.js @@ -3,7 +3,7 @@ var $ = require('../internals/export'); var $find = require('../internals/async-iterator-iteration').find; -$({ target: 'AsyncIterator', proto: true, real: true, forced: true }, { +$({ target: 'AsyncIterator', proto: true, real: true }, { find: function find(fn) { return $find(this, fn); } 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 06913c3b844b..32798f160a06 100644 --- a/packages/core-js/modules/esnext.async-iterator.flat-map.js +++ b/packages/core-js/modules/esnext.async-iterator.flat-map.js @@ -74,7 +74,7 @@ var AsyncIteratorProxy = createAsyncIteratorProxy(function (Promise) { }); }); -$({ target: 'AsyncIterator', proto: true, real: true, forced: true }, { +$({ target: 'AsyncIterator', proto: true, real: true }, { flatMap: function flatMap(mapper) { return new AsyncIteratorProxy(getIteratorDirect(this), { mapper: aCallable(mapper), 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 6e9d71f39e3f..8dfbcedce95a 100644 --- a/packages/core-js/modules/esnext.async-iterator.for-each.js +++ b/packages/core-js/modules/esnext.async-iterator.for-each.js @@ -3,7 +3,7 @@ var $ = require('../internals/export'); var $forEach = require('../internals/async-iterator-iteration').forEach; -$({ target: 'AsyncIterator', proto: true, real: true, forced: true }, { +$({ 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 a95cd8f6448b..618471f1b58e 100644 --- a/packages/core-js/modules/esnext.async-iterator.from.js +++ b/packages/core-js/modules/esnext.async-iterator.from.js @@ -6,7 +6,7 @@ var getAsyncIteratorFlattenable = require('../internals/get-async-iterator-flatt var AsyncIteratorPrototype = require('../internals/async-iterator-prototype'); var WrapAsyncIterator = require('../internals/async-iterator-wrap'); -$({ target: 'AsyncIterator', stat: true, forced: true }, { +$({ target: 'AsyncIterator', stat: true }, { from: function from(O) { var iteratorRecord = getAsyncIteratorFlattenable(typeof O == 'string' ? toObject(O) : O); return isPrototypeOf(AsyncIteratorPrototype, iteratorRecord.iterator) diff --git a/packages/core-js/modules/esnext.async-iterator.map.js b/packages/core-js/modules/esnext.async-iterator.map.js index b8b2226e9765..2ef8de1f3ea1 100644 --- a/packages/core-js/modules/esnext.async-iterator.map.js +++ b/packages/core-js/modules/esnext.async-iterator.map.js @@ -48,7 +48,7 @@ var AsyncIteratorProxy = createAsyncIteratorProxy(function (Promise) { }); }); -$({ target: 'AsyncIterator', proto: true, real: true, forced: true }, { +$({ target: 'AsyncIterator', proto: true, real: true }, { map: function map(mapper) { return new AsyncIteratorProxy(getIteratorDirect(this), { mapper: aCallable(mapper) diff --git a/packages/core-js/modules/esnext.async-iterator.reduce.js b/packages/core-js/modules/esnext.async-iterator.reduce.js index 01f3e444d2d9..371f8b36e16d 100644 --- a/packages/core-js/modules/esnext.async-iterator.reduce.js +++ b/packages/core-js/modules/esnext.async-iterator.reduce.js @@ -12,7 +12,7 @@ var closeAsyncIteration = require('../internals/async-iterator-close'); var Promise = getBuiltIn('Promise'); var $TypeError = TypeError; -$({ target: 'AsyncIterator', proto: true, real: true, forced: true }, { +$({ target: 'AsyncIterator', proto: true, real: true }, { reduce: function reduce(reducer /* , initialValue */) { var record = getIteratorDirect(this); var iterator = record.iterator; diff --git a/packages/core-js/modules/esnext.async-iterator.some.js b/packages/core-js/modules/esnext.async-iterator.some.js index f0101fd0d37b..13fc1ee5af6c 100644 --- a/packages/core-js/modules/esnext.async-iterator.some.js +++ b/packages/core-js/modules/esnext.async-iterator.some.js @@ -3,7 +3,7 @@ var $ = require('../internals/export'); var $some = require('../internals/async-iterator-iteration').some; -$({ target: 'AsyncIterator', proto: true, real: true, forced: true }, { +$({ target: 'AsyncIterator', proto: true, real: true }, { some: function some(fn) { return $some(this, fn); } diff --git a/packages/core-js/modules/esnext.async-iterator.take.js b/packages/core-js/modules/esnext.async-iterator.take.js index 69acf9b384a8..2da65bf4a7d3 100644 --- a/packages/core-js/modules/esnext.async-iterator.take.js +++ b/packages/core-js/modules/esnext.async-iterator.take.js @@ -35,7 +35,7 @@ var AsyncIteratorProxy = createAsyncIteratorProxy(function (Promise) { }); }); -$({ target: 'AsyncIterator', proto: true, real: true, forced: true }, { +$({ target: 'AsyncIterator', proto: true, real: true }, { take: function take(limit) { return new AsyncIteratorProxy(getIteratorDirect(this), { remaining: toPositiveInteger(notANaN(+limit)) 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 3785102214d5..2027325d5a3a 100644 --- a/packages/core-js/modules/esnext.async-iterator.to-array.js +++ b/packages/core-js/modules/esnext.async-iterator.to-array.js @@ -3,7 +3,7 @@ var $ = require('../internals/export'); var $toArray = require('../internals/async-iterator-iteration').toArray; -$({ target: 'AsyncIterator', proto: true, real: true, forced: true }, { +$({ target: 'AsyncIterator', proto: true, real: true }, { toArray: function toArray() { return $toArray(this, undefined, []); } diff --git a/packages/core-js/modules/esnext.iterator.drop.js b/packages/core-js/modules/esnext.iterator.drop.js index 8737e8137404..6f3bf6a0169e 100644 --- a/packages/core-js/modules/esnext.iterator.drop.js +++ b/packages/core-js/modules/esnext.iterator.drop.js @@ -23,7 +23,7 @@ var IteratorProxy = createIteratorProxy(function () { if (!done) return result.value; }); -$({ target: 'Iterator', proto: true, real: true, forced: true }, { +$({ target: 'Iterator', proto: true, real: true }, { drop: function drop(limit) { return new IteratorProxy(getIteratorDirect(this), { remaining: toPositiveInteger(notANaN(+limit)) diff --git a/packages/core-js/modules/esnext.iterator.every.js b/packages/core-js/modules/esnext.iterator.every.js index f7fbe35c5d19..5c4ef910f63a 100644 --- a/packages/core-js/modules/esnext.iterator.every.js +++ b/packages/core-js/modules/esnext.iterator.every.js @@ -5,7 +5,7 @@ var iterate = require('../internals/iterate'); var aCallable = require('../internals/a-callable'); var getIteratorDirect = require('../internals/get-iterator-direct'); -$({ target: 'Iterator', proto: true, real: true, forced: true }, { +$({ target: 'Iterator', proto: true, real: true }, { every: function every(fn) { var record = getIteratorDirect(this); var counter = 0; diff --git a/packages/core-js/modules/esnext.iterator.filter.js b/packages/core-js/modules/esnext.iterator.filter.js index fb8081e959ce..4da765233c56 100644 --- a/packages/core-js/modules/esnext.iterator.filter.js +++ b/packages/core-js/modules/esnext.iterator.filter.js @@ -22,7 +22,7 @@ var IteratorProxy = createIteratorProxy(function () { } }); -$({ target: 'Iterator', proto: true, real: true, forced: true }, { +$({ target: 'Iterator', proto: true, real: true }, { filter: function filter(filterer) { return new IteratorProxy(getIteratorDirect(this), { filterer: aCallable(filterer) diff --git a/packages/core-js/modules/esnext.iterator.find.js b/packages/core-js/modules/esnext.iterator.find.js index 39a0e1308a77..c14800ecc79e 100644 --- a/packages/core-js/modules/esnext.iterator.find.js +++ b/packages/core-js/modules/esnext.iterator.find.js @@ -5,7 +5,7 @@ var iterate = require('../internals/iterate'); var aCallable = require('../internals/a-callable'); var getIteratorDirect = require('../internals/get-iterator-direct'); -$({ target: 'Iterator', proto: true, real: true, forced: true }, { +$({ target: 'Iterator', proto: true, real: true }, { find: function find(fn) { var record = getIteratorDirect(this); var counter = 0; diff --git a/packages/core-js/modules/esnext.iterator.flat-map.js b/packages/core-js/modules/esnext.iterator.flat-map.js index b26562a0c904..43d0d426e6c1 100644 --- a/packages/core-js/modules/esnext.iterator.flat-map.js +++ b/packages/core-js/modules/esnext.iterator.flat-map.js @@ -31,7 +31,7 @@ var IteratorProxy = createIteratorProxy(function () { } }); -$({ target: 'Iterator', proto: true, real: true, forced: true }, { +$({ target: 'Iterator', proto: true, real: true }, { flatMap: function flatMap(mapper) { return new IteratorProxy(getIteratorDirect(this), { mapper: aCallable(mapper), diff --git a/packages/core-js/modules/esnext.iterator.for-each.js b/packages/core-js/modules/esnext.iterator.for-each.js index 107f778d4209..e748042a6edd 100644 --- a/packages/core-js/modules/esnext.iterator.for-each.js +++ b/packages/core-js/modules/esnext.iterator.for-each.js @@ -5,7 +5,7 @@ var iterate = require('../internals/iterate'); var aCallable = require('../internals/a-callable'); var getIteratorDirect = require('../internals/get-iterator-direct'); -$({ target: 'Iterator', proto: true, real: true, forced: true }, { +$({ target: 'Iterator', proto: true, real: true }, { forEach: function forEach(fn) { var record = getIteratorDirect(this); var counter = 0; diff --git a/packages/core-js/modules/esnext.iterator.from.js b/packages/core-js/modules/esnext.iterator.from.js index 828fe99c3f01..a74c7258e0be 100644 --- a/packages/core-js/modules/esnext.iterator.from.js +++ b/packages/core-js/modules/esnext.iterator.from.js @@ -11,7 +11,7 @@ var IteratorProxy = createIteratorProxy(function () { return call(this.next, this.iterator); }, true); -$({ target: 'Iterator', stat: true, forced: true }, { +$({ target: 'Iterator', stat: true }, { from: function from(O) { var iteratorRecord = getIteratorFlattenable(typeof O == 'string' ? toObject(O) : O); return isPrototypeOf(IteratorPrototype, iteratorRecord.iterator) diff --git a/packages/core-js/modules/esnext.iterator.map.js b/packages/core-js/modules/esnext.iterator.map.js index fc68061228af..dabe75648d92 100644 --- a/packages/core-js/modules/esnext.iterator.map.js +++ b/packages/core-js/modules/esnext.iterator.map.js @@ -15,7 +15,7 @@ var IteratorProxy = createIteratorProxy(function () { if (!done) return callWithSafeIterationClosing(iterator, this.mapper, [result.value, this.counter++], true); }); -$({ target: 'Iterator', proto: true, real: true, forced: true }, { +$({ target: 'Iterator', proto: true, real: true }, { map: function map(mapper) { return new IteratorProxy(getIteratorDirect(this), { mapper: aCallable(mapper) diff --git a/packages/core-js/modules/esnext.iterator.reduce.js b/packages/core-js/modules/esnext.iterator.reduce.js index ca4587d56822..7c252a38fe07 100644 --- a/packages/core-js/modules/esnext.iterator.reduce.js +++ b/packages/core-js/modules/esnext.iterator.reduce.js @@ -7,7 +7,7 @@ var getIteratorDirect = require('../internals/get-iterator-direct'); var $TypeError = TypeError; -$({ target: 'Iterator', proto: true, real: true, forced: true }, { +$({ target: 'Iterator', proto: true, real: true }, { reduce: function reduce(reducer /* , initialValue */) { var record = getIteratorDirect(this); aCallable(reducer); diff --git a/packages/core-js/modules/esnext.iterator.some.js b/packages/core-js/modules/esnext.iterator.some.js index a679e2dba3ca..44863891e378 100644 --- a/packages/core-js/modules/esnext.iterator.some.js +++ b/packages/core-js/modules/esnext.iterator.some.js @@ -5,7 +5,7 @@ var iterate = require('../internals/iterate'); var aCallable = require('../internals/a-callable'); var getIteratorDirect = require('../internals/get-iterator-direct'); -$({ target: 'Iterator', proto: true, real: true, forced: true }, { +$({ target: 'Iterator', proto: true, real: true }, { some: function some(fn) { var record = getIteratorDirect(this); var counter = 0; diff --git a/packages/core-js/modules/esnext.iterator.take.js b/packages/core-js/modules/esnext.iterator.take.js index 05c5e46b51de..1eb83ba7c7e0 100644 --- a/packages/core-js/modules/esnext.iterator.take.js +++ b/packages/core-js/modules/esnext.iterator.take.js @@ -20,7 +20,7 @@ var IteratorProxy = createIteratorProxy(function () { if (!done) return result.value; }); -$({ target: 'Iterator', proto: true, real: true, forced: true }, { +$({ target: 'Iterator', proto: true, real: true }, { take: function take(limit) { return new IteratorProxy(getIteratorDirect(this), { remaining: toPositiveInteger(notANaN(+limit)) diff --git a/packages/core-js/modules/esnext.iterator.to-array.js b/packages/core-js/modules/esnext.iterator.to-array.js index a0ce06cb7eea..ef007af3d96f 100644 --- a/packages/core-js/modules/esnext.iterator.to-array.js +++ b/packages/core-js/modules/esnext.iterator.to-array.js @@ -6,7 +6,7 @@ var getIteratorDirect = require('../internals/get-iterator-direct'); var push = [].push; -$({ target: 'Iterator', proto: true, real: true, forced: true }, { +$({ target: 'Iterator', proto: true, real: true }, { toArray: function toArray() { var result = []; iterate(getIteratorDirect(this), push, { that: result, IS_RECORD: true }); diff --git a/packages/core-js/modules/esnext.iterator.to-async.js b/packages/core-js/modules/esnext.iterator.to-async.js index 55982c466f79..5138fe1d4421 100644 --- a/packages/core-js/modules/esnext.iterator.to-async.js +++ b/packages/core-js/modules/esnext.iterator.to-async.js @@ -5,7 +5,7 @@ var AsyncFromSyncIterator = require('../internals/async-from-sync-iterator'); var WrapAsyncIterator = require('../internals/async-iterator-wrap'); var getIteratorDirect = require('../internals/get-iterator-direct'); -$({ target: 'Iterator', proto: true, real: true, forced: true }, { +$({ target: 'Iterator', proto: true, real: true }, { toAsync: function toAsync() { return new WrapAsyncIterator(getIteratorDirect(new AsyncFromSyncIterator(getIteratorDirect(this)))); } diff --git a/packages/core-js/proposals/iterator-helpers-stage-3.js b/packages/core-js/proposals/iterator-helpers-stage-3.js new file mode 100644 index 000000000000..a08daf9506fe --- /dev/null +++ b/packages/core-js/proposals/iterator-helpers-stage-3.js @@ -0,0 +1,34 @@ +// https://github.com/tc39/proposal-iterator-helpers +require('../modules/esnext.async-iterator.constructor'); +// TODO: remove from `core-js@4` +require('../modules/esnext.async-iterator.as-indexed-pairs'); +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.indexed'); +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'); +// TODO: remove from `core-js@4` +require('../modules/esnext.iterator.as-indexed-pairs'); +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.indexed'); +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.js b/packages/core-js/proposals/iterator-helpers.js index a08daf9506fe..5b08192e40d2 100644 --- a/packages/core-js/proposals/iterator-helpers.js +++ b/packages/core-js/proposals/iterator-helpers.js @@ -1,34 +1,7 @@ -// https://github.com/tc39/proposal-iterator-helpers -require('../modules/esnext.async-iterator.constructor'); // 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.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.indexed'); -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'); -// TODO: remove from `core-js@4` require('../modules/esnext.iterator.as-indexed-pairs'); -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.indexed'); -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/stage/2.js b/packages/core-js/stage/2.js index b91d985f13bc..887a5bfdc63c 100644 --- a/packages/core-js/stage/2.js +++ b/packages/core-js/stage/2.js @@ -2,6 +2,7 @@ var parent = require('./3'); require('../proposals/array-is-template-object'); require('../proposals/decorator-metadata'); +// TODO: Obsolete versions, remove from `core-js@4` require('../proposals/iterator-helpers'); require('../proposals/map-upsert-stage-2'); require('../proposals/set-methods'); diff --git a/packages/core-js/stage/3.js b/packages/core-js/stage/3.js index d8bceb3a6f98..e5dc5cb7edd6 100644 --- a/packages/core-js/stage/3.js +++ b/packages/core-js/stage/3.js @@ -3,6 +3,7 @@ var parent = require('./4'); require('../proposals/array-from-async-stage-2'); require('../proposals/array-grouping-stage-3-2'); require('../proposals/change-array-by-copy'); +require('../proposals/iterator-helpers-stage-3'); require('../proposals/well-formed-unicode-strings'); // TODO: Obsolete versions, remove from `core-js@4` require('../proposals/array-grouping-stage-3'); diff --git a/tests/entries/unit.mjs b/tests/entries/unit.mjs index 4934d5dc91ea..8d6bc657dbc7 100644 --- a/tests/entries/unit.mjs +++ b/tests/entries/unit.mjs @@ -614,6 +614,33 @@ 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(typeof load(NS, 'async-iterator') == 'function'); + ok(typeof load(NS, 'async-iterator/drop') == 'function'); + ok(typeof load(NS, 'async-iterator/every') == 'function'); + ok(typeof load(NS, 'async-iterator/filter') == 'function'); + ok(typeof load(NS, 'async-iterator/find') == 'function'); + ok(typeof load(NS, 'async-iterator/flat-map') == 'function'); + ok(typeof load(NS, 'async-iterator/for-each') == 'function'); + ok(typeof load(NS, 'async-iterator/from') == 'function'); + ok(typeof load(NS, 'async-iterator/map') == 'function'); + ok(typeof load(NS, 'async-iterator/reduce') == 'function'); + ok(typeof load(NS, 'async-iterator/some') == 'function'); + ok(typeof load(NS, 'async-iterator/take') == 'function'); + ok(typeof load(NS, 'async-iterator/to-array') == 'function'); + ok(typeof load(NS, 'iterator') == 'function'); + ok(typeof load(NS, 'iterator/drop') == 'function'); + ok(typeof load(NS, 'iterator/every') == 'function'); + ok(typeof load(NS, 'iterator/filter') == 'function'); + ok(typeof load(NS, 'iterator/find') == 'function'); + ok(typeof load(NS, 'iterator/flat-map') == 'function'); + ok(typeof load(NS, 'iterator/for-each') == 'function'); + ok(typeof load(NS, 'iterator/from') == 'function'); + ok(typeof load(NS, 'iterator/map') == 'function'); + ok(typeof load(NS, 'iterator/reduce') == 'function'); + ok(typeof load(NS, 'iterator/some') == 'function'); + ok(typeof load(NS, 'iterator/take') == 'function'); + ok(typeof load(NS, 'iterator/to-array') == 'function'); + ok(typeof load(NS, 'iterator/to-async') == 'function'); ok(load(NS, 'string/is-well-formed')('a')); ok(load(NS, 'string/virtual/is-well-formed').call('a')); ok(load(NS, 'string/to-well-formed')('a') === 'a'); @@ -694,21 +721,8 @@ for (PATH of ['core-js-pure', 'core-js']) { 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') == 'function'); ok(typeof load(NS, 'async-iterator/as-indexed-pairs') == 'function'); - ok(typeof load(NS, 'async-iterator/drop') == 'function'); - ok(typeof load(NS, 'async-iterator/every') == 'function'); - ok(typeof load(NS, 'async-iterator/filter') == 'function'); - ok(typeof load(NS, 'async-iterator/find') == 'function'); - ok(typeof load(NS, 'async-iterator/flat-map') == 'function'); - ok(typeof load(NS, 'async-iterator/for-each') == 'function'); - ok(typeof load(NS, 'async-iterator/from') == 'function'); ok(typeof load(NS, 'async-iterator/indexed') == 'function'); - ok(typeof load(NS, 'async-iterator/map') == 'function'); - ok(typeof load(NS, 'async-iterator/reduce') == 'function'); - ok(typeof load(NS, 'async-iterator/some') == 'function'); - ok(typeof load(NS, 'async-iterator/take') == 'function'); - ok(typeof load(NS, 'async-iterator/to-array') == 'function'); load(NS, 'bigint/range'); load(NS, 'bigint'); ok(typeof load(NS, 'composite-key')({}, 1, {}) === 'object'); @@ -717,22 +731,8 @@ 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') == 'function'); ok(typeof load(NS, 'iterator/as-indexed-pairs') == 'function'); - ok(typeof load(NS, 'iterator/drop') == 'function'); - ok(typeof load(NS, 'iterator/every') == 'function'); - ok(typeof load(NS, 'iterator/filter') == 'function'); - ok(typeof load(NS, 'iterator/find') == 'function'); - ok(typeof load(NS, 'iterator/flat-map') == 'function'); - ok(typeof load(NS, 'iterator/for-each') == 'function'); - ok(typeof load(NS, 'iterator/from') == 'function'); ok(typeof load(NS, 'iterator/indexed') == 'function'); - ok(typeof load(NS, 'iterator/map') == 'function'); - ok(typeof load(NS, 'iterator/reduce') == 'function'); - ok(typeof load(NS, 'iterator/some') == 'function'); - ok(typeof load(NS, 'iterator/take') == 'function'); - ok(typeof load(NS, 'iterator/to-array') == 'function'); - ok(typeof load(NS, 'iterator/to-async') == 'function'); 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); ok(load(NS, 'map/every')(new Map([[1, 2], [2, 3], [3, 4]]), it => it % 2) === false); @@ -878,6 +878,7 @@ for (PATH of ['core-js-pure', 'core-js']) { load('proposals/function-un-this'); load('proposals/global-this'); load('proposals/iterator-helpers'); + load('proposals/iterator-helpers-stage-3'); load('proposals/keys-composition'); load('proposals/map-update-or-insert'); load('proposals/map-upsert'); diff --git a/tests/unit-pure/esnext.async-iterator.constructor.js b/tests/unit-pure/esnext.async-iterator.constructor.js index c86aadecd772..d06025bf46fe 100644 --- a/tests/unit-pure/esnext.async-iterator.constructor.js +++ b/tests/unit-pure/esnext.async-iterator.constructor.js @@ -1,6 +1,6 @@ import Symbol from 'core-js-pure/es/symbol'; -import AsyncIterator from 'core-js-pure/full/async-iterator'; +import AsyncIterator from 'core-js-pure/actual/async-iterator'; QUnit.test('AsyncIterator', assert => { assert.isFunction(AsyncIterator); diff --git a/tests/unit-pure/esnext.async-iterator.drop.js b/tests/unit-pure/esnext.async-iterator.drop.js index b1e7c1731db2..66b191003b8e 100644 --- a/tests/unit-pure/esnext.async-iterator.drop.js +++ b/tests/unit-pure/esnext.async-iterator.drop.js @@ -1,6 +1,6 @@ import { createIterator } from '../helpers/helpers'; -import AsyncIterator from 'core-js-pure/full/async-iterator'; +import AsyncIterator from 'core-js-pure/actual/async-iterator'; QUnit.test('AsyncIterator#drop', assert => { const { drop } = AsyncIterator.prototype; diff --git a/tests/unit-pure/esnext.async-iterator.every.js b/tests/unit-pure/esnext.async-iterator.every.js index f86df12993c1..e9b47c61e455 100644 --- a/tests/unit-pure/esnext.async-iterator.every.js +++ b/tests/unit-pure/esnext.async-iterator.every.js @@ -1,7 +1,7 @@ import { createIterator } from '../helpers/helpers'; import { STRICT_THIS } from '../helpers/constants'; -import AsyncIterator from 'core-js-pure/full/async-iterator'; +import AsyncIterator from 'core-js-pure/actual/async-iterator'; QUnit.test('AsyncIterator#every', assert => { const { every } = AsyncIterator.prototype; diff --git a/tests/unit-pure/esnext.async-iterator.filter.js b/tests/unit-pure/esnext.async-iterator.filter.js index a1a516e5a279..9af91fd2ce42 100644 --- a/tests/unit-pure/esnext.async-iterator.filter.js +++ b/tests/unit-pure/esnext.async-iterator.filter.js @@ -1,7 +1,7 @@ import { createIterator } from '../helpers/helpers'; import { STRICT_THIS } from '../helpers/constants'; -import AsyncIterator from 'core-js-pure/full/async-iterator'; +import AsyncIterator from 'core-js-pure/actual/async-iterator'; QUnit.test('AsyncIterator#filter', assert => { const { filter } = AsyncIterator.prototype; diff --git a/tests/unit-pure/esnext.async-iterator.find.js b/tests/unit-pure/esnext.async-iterator.find.js index 05aa3ed143e0..3ab9b3fc2ec6 100644 --- a/tests/unit-pure/esnext.async-iterator.find.js +++ b/tests/unit-pure/esnext.async-iterator.find.js @@ -1,7 +1,7 @@ import { createIterator } from '../helpers/helpers'; import { STRICT_THIS } from '../helpers/constants'; -import AsyncIterator from 'core-js-pure/full/async-iterator'; +import AsyncIterator from 'core-js-pure/actual/async-iterator'; QUnit.test('AsyncIterator#find', assert => { const { find } = AsyncIterator.prototype; diff --git a/tests/unit-pure/esnext.async-iterator.flat-map.js b/tests/unit-pure/esnext.async-iterator.flat-map.js index be237a1eda4f..5c07d6ea62f0 100644 --- a/tests/unit-pure/esnext.async-iterator.flat-map.js +++ b/tests/unit-pure/esnext.async-iterator.flat-map.js @@ -1,7 +1,7 @@ import { createIterator, createIterable } from '../helpers/helpers'; import { STRICT_THIS } from '../helpers/constants'; -import AsyncIterator from 'core-js-pure/full/async-iterator'; +import AsyncIterator from 'core-js-pure/actual/async-iterator'; QUnit.test('AsyncIterator#flatMap', assert => { const { flatMap } = AsyncIterator.prototype; diff --git a/tests/unit-pure/esnext.async-iterator.for-each.js b/tests/unit-pure/esnext.async-iterator.for-each.js index 21268c6e0b97..2a1011fed9aa 100644 --- a/tests/unit-pure/esnext.async-iterator.for-each.js +++ b/tests/unit-pure/esnext.async-iterator.for-each.js @@ -1,7 +1,7 @@ import { createIterator } from '../helpers/helpers'; import { STRICT_THIS } from '../helpers/constants'; -import AsyncIterator from 'core-js-pure/full/async-iterator'; +import AsyncIterator from 'core-js-pure/actual/async-iterator'; QUnit.test('AsyncIterator#forEach', assert => { const { forEach } = AsyncIterator.prototype; diff --git a/tests/unit-pure/esnext.async-iterator.from.js b/tests/unit-pure/esnext.async-iterator.from.js index d92fbcc64935..cf372147f601 100644 --- a/tests/unit-pure/esnext.async-iterator.from.js +++ b/tests/unit-pure/esnext.async-iterator.from.js @@ -1,7 +1,7 @@ import Promise from 'core-js-pure/es/promise'; import assign from 'core-js-pure/es/object/assign'; import values from 'core-js-pure/es/array/values'; -import AsyncIterator from 'core-js-pure/full/async-iterator'; +import AsyncIterator from 'core-js-pure/actual/async-iterator'; QUnit.test('AsyncIterator.from', assert => { const { from } = AsyncIterator; diff --git a/tests/unit-pure/esnext.async-iterator.map.js b/tests/unit-pure/esnext.async-iterator.map.js index ddd29bc474ab..b51c0d894820 100644 --- a/tests/unit-pure/esnext.async-iterator.map.js +++ b/tests/unit-pure/esnext.async-iterator.map.js @@ -1,7 +1,7 @@ import { createIterator } from '../helpers/helpers'; import { STRICT_THIS } from '../helpers/constants'; -import AsyncIterator from 'core-js-pure/full/async-iterator'; +import AsyncIterator from 'core-js-pure/actual/async-iterator'; QUnit.test('AsyncIterator#map', assert => { const { map } = AsyncIterator.prototype; diff --git a/tests/unit-pure/esnext.async-iterator.reduce.js b/tests/unit-pure/esnext.async-iterator.reduce.js index 53cf12a19bbd..f8aab20168b0 100644 --- a/tests/unit-pure/esnext.async-iterator.reduce.js +++ b/tests/unit-pure/esnext.async-iterator.reduce.js @@ -1,7 +1,7 @@ import { createIterator } from '../helpers/helpers'; import { STRICT_THIS } from '../helpers/constants'; -import AsyncIterator from 'core-js-pure/full/async-iterator'; +import AsyncIterator from 'core-js-pure/actual/async-iterator'; QUnit.test('AsyncIterator#reduce', assert => { const { reduce } = AsyncIterator.prototype; diff --git a/tests/unit-pure/esnext.async-iterator.some.js b/tests/unit-pure/esnext.async-iterator.some.js index 2c50d5695f43..e5b089a27849 100644 --- a/tests/unit-pure/esnext.async-iterator.some.js +++ b/tests/unit-pure/esnext.async-iterator.some.js @@ -1,7 +1,7 @@ import { createIterator } from '../helpers/helpers'; import { STRICT_THIS } from '../helpers/constants'; -import AsyncIterator from 'core-js-pure/full/async-iterator'; +import AsyncIterator from 'core-js-pure/actual/async-iterator'; QUnit.test('AsyncIterator#some', assert => { const { some } = AsyncIterator.prototype; diff --git a/tests/unit-pure/esnext.async-iterator.take.js b/tests/unit-pure/esnext.async-iterator.take.js index 5ede275908e7..c715cbd2bda4 100644 --- a/tests/unit-pure/esnext.async-iterator.take.js +++ b/tests/unit-pure/esnext.async-iterator.take.js @@ -1,6 +1,6 @@ import { createIterator } from '../helpers/helpers'; -import AsyncIterator from 'core-js-pure/full/async-iterator'; +import AsyncIterator from 'core-js-pure/actual/async-iterator'; QUnit.test('AsyncIterator#take', assert => { const { take } = AsyncIterator.prototype; diff --git a/tests/unit-pure/esnext.async-iterator.to-array.js b/tests/unit-pure/esnext.async-iterator.to-array.js index f71aee6b2c61..e88aaf6523de 100644 --- a/tests/unit-pure/esnext.async-iterator.to-array.js +++ b/tests/unit-pure/esnext.async-iterator.to-array.js @@ -1,6 +1,6 @@ import { createIterator } from '../helpers/helpers'; -import AsyncIterator from 'core-js-pure/full/async-iterator'; +import AsyncIterator from 'core-js-pure/actual/async-iterator'; QUnit.test('AsyncIterator#toArray', assert => { const { toArray } = AsyncIterator.prototype; diff --git a/tests/unit-pure/esnext.iterator.constructor.js b/tests/unit-pure/esnext.iterator.constructor.js index c406ecc5555a..dc27e7b54b68 100644 --- a/tests/unit-pure/esnext.iterator.constructor.js +++ b/tests/unit-pure/esnext.iterator.constructor.js @@ -1,7 +1,7 @@ import { createIterator } from '../helpers/helpers'; import Symbol from 'core-js-pure/es/symbol'; -import Iterator from 'core-js-pure/full/iterator'; +import Iterator from 'core-js-pure/actual/iterator'; QUnit.test('Iterator', assert => { assert.isFunction(Iterator); diff --git a/tests/unit-pure/esnext.iterator.drop.js b/tests/unit-pure/esnext.iterator.drop.js index 25cf67ed0165..6977b9df305b 100644 --- a/tests/unit-pure/esnext.iterator.drop.js +++ b/tests/unit-pure/esnext.iterator.drop.js @@ -1,6 +1,6 @@ import { createIterator } from '../helpers/helpers'; -import Iterator from 'core-js-pure/full/iterator'; +import Iterator from 'core-js-pure/actual/iterator'; QUnit.test('Iterator#drop', assert => { const { drop } = Iterator.prototype; diff --git a/tests/unit-pure/esnext.iterator.every.js b/tests/unit-pure/esnext.iterator.every.js index be836c72bc8d..e6db7b1266db 100644 --- a/tests/unit-pure/esnext.iterator.every.js +++ b/tests/unit-pure/esnext.iterator.every.js @@ -1,7 +1,7 @@ import { createIterator } from '../helpers/helpers'; import { STRICT_THIS } from '../helpers/constants'; -import Iterator from 'core-js-pure/full/iterator'; +import Iterator from 'core-js-pure/actual/iterator'; QUnit.test('Iterator#every', assert => { const { every } = Iterator.prototype; diff --git a/tests/unit-pure/esnext.iterator.filter.js b/tests/unit-pure/esnext.iterator.filter.js index fa48a11a57b0..027eadcaaf46 100644 --- a/tests/unit-pure/esnext.iterator.filter.js +++ b/tests/unit-pure/esnext.iterator.filter.js @@ -1,7 +1,7 @@ import { createIterator } from '../helpers/helpers'; import { STRICT_THIS } from '../helpers/constants'; -import Iterator from 'core-js-pure/full/iterator'; +import Iterator from 'core-js-pure/actual/iterator'; QUnit.test('Iterator#filter', assert => { const { filter } = Iterator.prototype; diff --git a/tests/unit-pure/esnext.iterator.find.js b/tests/unit-pure/esnext.iterator.find.js index 049b2b51564d..f5ab7d7c0e23 100644 --- a/tests/unit-pure/esnext.iterator.find.js +++ b/tests/unit-pure/esnext.iterator.find.js @@ -1,7 +1,7 @@ import { createIterator } from '../helpers/helpers'; import { STRICT_THIS } from '../helpers/constants'; -import Iterator from 'core-js-pure/full/iterator'; +import Iterator from 'core-js-pure/actual/iterator'; QUnit.test('Iterator#find', assert => { const { find } = Iterator.prototype; diff --git a/tests/unit-pure/esnext.iterator.flat-map.js b/tests/unit-pure/esnext.iterator.flat-map.js index 565c419505ed..db6396956558 100644 --- a/tests/unit-pure/esnext.iterator.flat-map.js +++ b/tests/unit-pure/esnext.iterator.flat-map.js @@ -1,7 +1,7 @@ import { createIterator, createIterable } from '../helpers/helpers'; import { STRICT_THIS } from '../helpers/constants'; -import Iterator from 'core-js-pure/full/iterator'; +import Iterator from 'core-js-pure/actual/iterator'; QUnit.test('Iterator#flatMap', assert => { const { flatMap } = Iterator.prototype; diff --git a/tests/unit-pure/esnext.iterator.for-each.js b/tests/unit-pure/esnext.iterator.for-each.js index ad965bbc0ec7..8375b9650eeb 100644 --- a/tests/unit-pure/esnext.iterator.for-each.js +++ b/tests/unit-pure/esnext.iterator.for-each.js @@ -1,7 +1,7 @@ import { createIterator } from '../helpers/helpers'; import { STRICT_THIS } from '../helpers/constants'; -import Iterator from 'core-js-pure/full/iterator'; +import Iterator from 'core-js-pure/actual/iterator'; QUnit.test('Iterator#forEach', assert => { const { forEach } = Iterator.prototype; diff --git a/tests/unit-pure/esnext.iterator.from.js b/tests/unit-pure/esnext.iterator.from.js index 3c363077baf9..959d2187e930 100644 --- a/tests/unit-pure/esnext.iterator.from.js +++ b/tests/unit-pure/esnext.iterator.from.js @@ -1,6 +1,6 @@ import { createIterable, createIterator } from '../helpers/helpers'; -import Iterator from 'core-js-pure/full/iterator'; +import Iterator from 'core-js-pure/actual/iterator'; import assign from 'core-js-pure/es/object/assign'; QUnit.test('Iterator.from', assert => { diff --git a/tests/unit-pure/esnext.iterator.map.js b/tests/unit-pure/esnext.iterator.map.js index a3dfed410744..fc44dd4796c5 100644 --- a/tests/unit-pure/esnext.iterator.map.js +++ b/tests/unit-pure/esnext.iterator.map.js @@ -1,7 +1,7 @@ import { createIterator } from '../helpers/helpers'; import { STRICT_THIS } from '../helpers/constants'; -import Iterator from 'core-js-pure/full/iterator'; +import Iterator from 'core-js-pure/actual/iterator'; QUnit.test('Iterator#map', assert => { const { map } = Iterator.prototype; diff --git a/tests/unit-pure/esnext.iterator.reduce.js b/tests/unit-pure/esnext.iterator.reduce.js index 15dc7c2f812e..9ccd3b0beef4 100644 --- a/tests/unit-pure/esnext.iterator.reduce.js +++ b/tests/unit-pure/esnext.iterator.reduce.js @@ -1,7 +1,7 @@ import { createIterator } from '../helpers/helpers'; import { STRICT_THIS } from '../helpers/constants'; -import Iterator from 'core-js-pure/full/iterator'; +import Iterator from 'core-js-pure/actual/iterator'; QUnit.test('Iterator#reduce', assert => { const { reduce } = Iterator.prototype; diff --git a/tests/unit-pure/esnext.iterator.some.js b/tests/unit-pure/esnext.iterator.some.js index 724c7c5d0142..56816aa6aff4 100644 --- a/tests/unit-pure/esnext.iterator.some.js +++ b/tests/unit-pure/esnext.iterator.some.js @@ -1,7 +1,7 @@ import { createIterator } from '../helpers/helpers'; import { STRICT_THIS } from '../helpers/constants'; -import Iterator from 'core-js-pure/full/iterator'; +import Iterator from 'core-js-pure/actual/iterator'; QUnit.test('Iterator#some', assert => { const { some } = Iterator.prototype; diff --git a/tests/unit-pure/esnext.iterator.take.js b/tests/unit-pure/esnext.iterator.take.js index 23728d0711f8..4c9d8943101b 100644 --- a/tests/unit-pure/esnext.iterator.take.js +++ b/tests/unit-pure/esnext.iterator.take.js @@ -1,6 +1,6 @@ import { createIterator } from '../helpers/helpers'; -import Iterator from 'core-js-pure/full/iterator'; +import Iterator from 'core-js-pure/actual/iterator'; QUnit.test('Iterator#take', assert => { const { take } = Iterator.prototype; diff --git a/tests/unit-pure/esnext.iterator.to-array.js b/tests/unit-pure/esnext.iterator.to-array.js index e5f87f2bbe4c..4d13991b2c50 100644 --- a/tests/unit-pure/esnext.iterator.to-array.js +++ b/tests/unit-pure/esnext.iterator.to-array.js @@ -1,6 +1,6 @@ import { createIterable, createIterator } from '../helpers/helpers'; -import Iterator from 'core-js-pure/full/iterator'; +import Iterator from 'core-js-pure/actual/iterator'; QUnit.test('Iterator#toArray', assert => { const { toArray } = Iterator.prototype; diff --git a/tests/unit-pure/esnext.iterator.to-async.js b/tests/unit-pure/esnext.iterator.to-async.js index 41e99029fcb6..af724244d37d 100644 --- a/tests/unit-pure/esnext.iterator.to-async.js +++ b/tests/unit-pure/esnext.iterator.to-async.js @@ -2,8 +2,8 @@ import { STRICT } from '../helpers/constants'; import Promise from 'core-js-pure/es/promise'; import Set from 'core-js-pure/es/set'; -import Iterator from 'core-js-pure/full/iterator'; -import 'core-js-pure/full/async-iterator'; +import Iterator from 'core-js-pure/actual/iterator'; +import 'core-js-pure/actual/async-iterator'; QUnit.test('Iterator#toAsync', assert => { const { toAsync } = Iterator.prototype; From 8e4df161d73f1502d1c7a0b82b3fb6f10cddbba4 Mon Sep 17 00:00:00 2001 From: Denis Pushkarev Date: Fri, 2 Dec 2022 00:40:09 +0700 Subject: [PATCH 4/5] update the changelog --- CHANGELOG.md | 37 ++++++++++++++++++++++++++++++++++++- 1 file changed, 36 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 6b13685bcf63..be3d72cc151e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,10 +1,45 @@ ## Changelog ##### Unreleased +- [Iterator Helpers](https://github.com/tc39/proposal-iterator-helpers) proposal: + - Built-ins: + - `Iterator` + - `Iterator.from` + - `Iterator#drop` + - `Iterator#every` + - `Iterator#filter` + - `Iterator#find` + - `Iterator#flatMap` + - `Iterator#forEach` + - `Iterator#map` + - `Iterator#reduce` + - `Iterator#some` + - `Iterator#take` + - `Iterator#toArray` + - `Iterator#toAsync` + - `Iterator#@@toStringTag` + - `AsyncIterator` + - `AsyncIterator.from` + - `AsyncIterator#drop` + - `AsyncIterator#every` + - `AsyncIterator#filter` + - `AsyncIterator#find` + - `AsyncIterator#flatMap` + - `AsyncIterator#forEach` + - `AsyncIterator#map` + - `AsyncIterator#reduce` + - `AsyncIterator#some` + - `AsyncIterator#take` + - `AsyncIterator#toArray` + - `AsyncIterator#@@toStringTag` + - Moved to Stage 3, [November 2022 TC39 meeting](https://github.com/babel/proposals/issues/85#issuecomment-1333474304) + - Added `/actual/` entries, unconditional forced replacement disabled for features that survived to Stage 3 + - `.from` accept strings, `.flatMap` throws on strings returned from the callback, [proposal-iterator-helpers/244](https://github.com/tc39/proposal-iterator-helpers/pull/244), [proposal-iterator-helpers/250](https://github.com/tc39/proposal-iterator-helpers/pull/250) + - `.from` and `.flatMap` throws on non-object *iterators*, [proposal-iterator-helpers/253](https://github.com/tc39/proposal-iterator-helpers/pull/253) - [Well-Formed Unicode Strings](https://github.com/tc39/proposal-is-usv-string) proposal: - Methods: - `String.prototype.isWellFormed` - `String.prototype.toWellFormed` - - Moved to Stage 3, [November TC39 meeting](https://github.com/babel/proposals/issues/85#issuecomment-1332180862) + - Moved to Stage 3, [November 2022 TC39 meeting](https://github.com/babel/proposals/issues/85#issuecomment-1332180862) - Added `/actual/` entries, disabled unconditional forced replacement - Fixed a theoretically possible future conflict of polyfills definitions in the pure version - [Compat data targets](/packages/core-js-compat#targets-option) improvements: From c278937b63e7aa5e87cb47bd8e11ad6cbd8d13e5 Mon Sep 17 00:00:00 2001 From: Denis Pushkarev Date: Sat, 3 Dec 2022 03:37:22 +0700 Subject: [PATCH 5/5] drop methods that have not survived to Stage 3 --- packages/core-js/proposals/iterator-helpers-stage-3.js | 6 ------ 1 file changed, 6 deletions(-) diff --git a/packages/core-js/proposals/iterator-helpers-stage-3.js b/packages/core-js/proposals/iterator-helpers-stage-3.js index a08daf9506fe..f27cd0166f88 100644 --- a/packages/core-js/proposals/iterator-helpers-stage-3.js +++ b/packages/core-js/proposals/iterator-helpers-stage-3.js @@ -1,7 +1,5 @@ // https://github.com/tc39/proposal-iterator-helpers require('../modules/esnext.async-iterator.constructor'); -// TODO: remove from `core-js@4` -require('../modules/esnext.async-iterator.as-indexed-pairs'); require('../modules/esnext.async-iterator.drop'); require('../modules/esnext.async-iterator.every'); require('../modules/esnext.async-iterator.filter'); @@ -9,15 +7,12 @@ 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.indexed'); 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'); -// TODO: remove from `core-js@4` -require('../modules/esnext.iterator.as-indexed-pairs'); require('../modules/esnext.iterator.drop'); require('../modules/esnext.iterator.every'); require('../modules/esnext.iterator.filter'); @@ -25,7 +20,6 @@ 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.indexed'); require('../modules/esnext.iterator.map'); require('../modules/esnext.iterator.reduce'); require('../modules/esnext.iterator.some');