core-js 3.1.3 → 3.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/configurator.js +7 -0
- package/es/global-this.js +3 -0
- package/es/index.js +2 -0
- package/es/promise/all-settled.js +11 -0
- package/es/promise/index.js +1 -0
- package/features/array/index.js +1 -0
- package/features/array/is-template-object.js +4 -0
- package/features/async-iterator/as-indexed-pairs.js +10 -0
- package/features/async-iterator/drop.js +10 -0
- package/features/async-iterator/every.js +10 -0
- package/features/async-iterator/filter.js +10 -0
- package/features/async-iterator/find.js +10 -0
- package/features/async-iterator/flat-map.js +10 -0
- package/features/async-iterator/for-each.js +10 -0
- package/features/async-iterator/from.js +10 -0
- package/features/async-iterator/index.js +22 -0
- package/features/async-iterator/map.js +10 -0
- package/features/async-iterator/reduce.js +10 -0
- package/features/async-iterator/some.js +10 -0
- package/features/async-iterator/take.js +10 -0
- package/features/async-iterator/to-array.js +10 -0
- package/features/global-this.js +1 -3
- package/features/iterator/as-indexed-pairs.js +10 -0
- package/features/iterator/drop.js +9 -0
- package/features/iterator/every.js +9 -0
- package/features/iterator/filter.js +9 -0
- package/features/iterator/find.js +9 -0
- package/features/iterator/flat-map.js +9 -0
- package/features/iterator/for-each.js +9 -0
- package/features/iterator/from.js +9 -0
- package/features/iterator/index.js +21 -0
- package/features/iterator/map.js +9 -0
- package/features/iterator/reduce.js +9 -0
- package/features/iterator/some.js +9 -0
- package/features/iterator/take.js +9 -0
- package/features/iterator/to-array.js +9 -0
- package/features/map/from.js +2 -0
- package/features/map/index.js +3 -0
- package/features/map/of.js +2 -0
- package/features/map/update-or-insert.js +6 -0
- package/features/map/upsert.js +5 -0
- package/features/promise/all-settled.js +2 -9
- package/features/promise/index.js +1 -0
- package/features/set/difference.js +2 -0
- package/features/set/from.js +2 -0
- package/features/set/is-subset-of.js +2 -0
- package/features/set/of.js +2 -0
- package/features/set/symmetric-difference.js +2 -0
- package/features/set/union.js +2 -0
- package/features/symbol/async-dispose.js +4 -0
- package/features/symbol/index.js +1 -0
- package/features/weak-map/from.js +2 -0
- package/features/weak-map/index.js +1 -0
- package/features/weak-map/of.js +2 -0
- package/features/weak-map/upsert.js +5 -0
- package/features/weak-set/from.js +2 -0
- package/features/weak-set/of.js +2 -0
- package/internals/a-possible-prototype.js +7 -0
- package/internals/add-to-unscopables.js +2 -2
- package/internals/advance-string-index.js +2 -2
- package/internals/array-buffer-view-core.js +5 -4
- package/internals/array-buffer.js +21 -16
- package/internals/array-copy-within.js +3 -1
- package/internals/array-for-each.js +3 -6
- package/internals/array-from.js +4 -3
- package/internals/array-includes.js +12 -7
- package/internals/{array-methods.js → array-iteration.js} +30 -18
- package/internals/array-last-index-of.js +3 -2
- package/internals/array-reduce.js +30 -21
- package/internals/async-iterator-iteration.js +61 -0
- package/internals/async-iterator-prototype.js +37 -0
- package/internals/collection-delete-all.js +3 -1
- package/internals/collection-from.js +3 -2
- package/internals/collection-weak.js +5 -5
- package/internals/collection.js +14 -14
- package/internals/composite-key.js +1 -0
- package/internals/create-async-iterator-proxy.js +61 -0
- package/internals/create-iterator-proxy.js +51 -0
- package/internals/{hide.js → create-non-enumerable-property.js} +0 -0
- package/internals/date-to-iso-string.js +12 -14
- package/internals/define-iterator.js +3 -3
- package/internals/document-create-element.js +2 -2
- package/internals/export.js +2 -2
- package/internals/fix-regexp-well-known-symbol-logic.js +2 -2
- package/internals/function-bind.js +3 -3
- package/internals/get-async-iterator-method.js +9 -0
- package/internals/global.js +4 -5
- package/internals/html.js +2 -4
- package/internals/indexed-object.js +1 -1
- package/internals/inherit-if-required.js +13 -6
- package/internals/internal-state.js +2 -2
- package/internals/iterate.js +21 -12
- package/internals/iterators-core.js +4 -2
- package/internals/map-upsert.js +23 -0
- package/internals/math-expm1.js +2 -1
- package/internals/math-fround.js +2 -1
- package/internals/math-log1p.js +3 -1
- package/internals/microtask.js +4 -3
- package/internals/native-promise-constructor.js +3 -0
- package/internals/native-url.js +13 -4
- package/internals/not-a-regexp.js +7 -0
- package/internals/object-assign.js +2 -1
- package/internals/object-create.js +2 -1
- package/internals/object-define-properties.js +4 -2
- package/internals/object-define-property.js +2 -0
- package/internals/object-get-own-property-descriptor.js +2 -0
- package/internals/object-get-own-property-names.js +2 -1
- package/internals/object-get-prototype-of.js +2 -1
- package/internals/object-keys-internal.js +2 -4
- package/internals/object-keys.js +2 -1
- package/internals/object-property-is-enumerable.js +2 -0
- package/internals/object-set-prototype-of.js +9 -5
- package/internals/object-to-array.js +25 -15
- package/internals/own-keys.js +2 -4
- package/internals/parse-float.js +7 -5
- package/internals/parse-int.js +6 -4
- package/internals/punycode-to-ascii.js +2 -4
- package/internals/redefine.js +3 -3
- package/internals/reflect-metadata.js +1 -0
- package/internals/regexp-flags.js +1 -0
- package/internals/set-global.js +2 -2
- package/internals/set-species.js +8 -5
- package/internals/shared-store.js +7 -0
- package/internals/shared.js +2 -6
- package/internals/string-multibyte.js +27 -0
- package/internals/string-pad.js +25 -11
- package/internals/string-trim.js +20 -8
- package/internals/task.js +3 -1
- package/internals/to-offset.js +3 -3
- package/internals/to-positive-integer.js +7 -0
- package/internals/to-primitive.js +7 -6
- package/internals/typed-array-constructor.js +15 -12
- package/internals/typed-array-from.js +3 -2
- package/internals/uid.js +1 -1
- package/internals/user-agent.js +2 -4
- package/modules/es.array.every.js +3 -6
- package/modules/es.array.fill.js +3 -1
- package/modules/es.array.filter.js +3 -6
- package/modules/es.array.find-index.js +2 -3
- package/modules/es.array.find.js +2 -3
- package/modules/es.array.flat-map.js +1 -1
- package/modules/es.array.flat.js +1 -1
- package/modules/es.array.includes.js +2 -4
- package/modules/es.array.index-of.js +2 -3
- package/modules/es.array.is-array.js +3 -1
- package/modules/es.array.map.js +3 -6
- package/modules/es.array.reduce-right.js +3 -4
- package/modules/es.array.reduce.js +3 -5
- package/modules/es.array.slice.js +1 -3
- package/modules/es.array.some.js +3 -6
- package/modules/es.array.splice.js +1 -3
- package/modules/es.date.to-primitive.js +4 -2
- package/modules/es.global-this.js +8 -0
- package/modules/es.map.js +1 -1
- package/modules/es.math.hypot.js +6 -1
- package/modules/es.number.constructor.js +9 -10
- package/modules/es.number.to-fixed.js +57 -53
- package/modules/es.object.entries.js +2 -2
- package/modules/es.object.get-own-property-descriptors.js +3 -3
- package/modules/es.object.get-prototype-of.js +1 -0
- package/modules/es.object.values.js +2 -2
- package/modules/es.promise.all-settled.js +43 -0
- package/modules/es.promise.finally.js +8 -0
- package/modules/es.promise.js +30 -14
- package/modules/es.reflect.apply.js +2 -2
- package/modules/es.reflect.construct.js +4 -4
- package/modules/es.reflect.define-property.js +5 -5
- package/modules/es.reflect.delete-property.js +1 -1
- package/modules/es.reflect.get-own-property-descriptor.js +2 -2
- package/modules/es.reflect.get-prototype-of.js +1 -1
- package/modules/es.reflect.get.js +3 -3
- package/modules/es.reflect.set-prototype-of.js +4 -2
- package/modules/es.reflect.set.js +3 -3
- package/modules/es.regexp.constructor.js +3 -3
- package/modules/es.regexp.to-string.js +1 -1
- package/modules/es.set.js +1 -1
- package/modules/es.string.code-point-at.js +2 -2
- package/modules/es.string.ends-with.js +6 -5
- package/modules/es.string.includes.js +4 -3
- package/modules/es.string.iterator.js +2 -2
- package/modules/es.string.match-all.js +22 -7
- package/modules/es.string.pad-end.js +2 -2
- package/modules/es.string.pad-start.js +2 -2
- package/modules/es.string.starts-with.js +8 -6
- package/modules/es.string.trim-end.js +2 -2
- package/modules/es.string.trim-start.js +2 -2
- package/modules/es.string.trim.js +3 -5
- package/modules/es.symbol.js +97 -87
- package/modules/es.typed-array.copy-within.js +2 -2
- package/modules/es.typed-array.every.js +2 -3
- package/modules/es.typed-array.fill.js +2 -2
- package/modules/es.typed-array.filter.js +3 -4
- package/modules/es.typed-array.find-index.js +2 -3
- package/modules/es.typed-array.find.js +2 -3
- package/modules/es.typed-array.for-each.js +2 -3
- package/modules/es.typed-array.includes.js +2 -3
- package/modules/es.typed-array.index-of.js +2 -3
- package/modules/es.typed-array.iterator.js +1 -1
- package/modules/es.typed-array.join.js +2 -2
- package/modules/es.typed-array.last-index-of.js +2 -2
- package/modules/es.typed-array.map.js +5 -7
- package/modules/es.typed-array.of.js +1 -1
- package/modules/es.typed-array.reduce-right.js +2 -2
- package/modules/es.typed-array.reduce.js +2 -2
- package/modules/es.typed-array.reverse.js +2 -1
- package/modules/es.typed-array.set.js +2 -2
- package/modules/es.typed-array.slice.js +3 -3
- package/modules/es.typed-array.some.js +2 -3
- package/modules/es.typed-array.sort.js +2 -2
- package/modules/es.typed-array.subarray.js +1 -1
- package/modules/es.typed-array.to-locale-string.js +7 -6
- package/modules/es.weak-map.js +1 -1
- package/modules/es.weak-set.js +1 -1
- package/modules/esnext.aggregate-error.js +28 -4
- package/modules/esnext.array.is-template-object.js +28 -0
- package/modules/esnext.async-iterator.as-indexed-pairs.js +27 -0
- package/modules/esnext.async-iterator.constructor.js +25 -0
- package/modules/esnext.async-iterator.drop.js +41 -0
- package/modules/esnext.async-iterator.every.js +10 -0
- package/modules/esnext.async-iterator.filter.js +42 -0
- package/modules/esnext.async-iterator.find.js +10 -0
- package/modules/esnext.async-iterator.flat-map.js +67 -0
- package/modules/esnext.async-iterator.for-each.js +10 -0
- package/modules/esnext.async-iterator.from.js +30 -0
- package/modules/esnext.async-iterator.map.js +30 -0
- package/modules/esnext.async-iterator.reduce.js +46 -0
- package/modules/esnext.async-iterator.some.js +10 -0
- package/modules/esnext.async-iterator.take.js +22 -0
- package/modules/esnext.async-iterator.to-array.js +10 -0
- package/modules/esnext.global-this.js +2 -6
- package/modules/esnext.iterator.as-indexed-pairs.js +20 -0
- package/modules/esnext.iterator.constructor.js +39 -0
- package/modules/esnext.iterator.drop.js +30 -0
- package/modules/esnext.iterator.every.js +16 -0
- package/modules/esnext.iterator.filter.js +30 -0
- package/modules/esnext.iterator.find.js +16 -0
- package/modules/esnext.iterator.flat-map.js +45 -0
- package/modules/esnext.iterator.for-each.js +11 -0
- package/modules/esnext.iterator.from.js +32 -0
- package/modules/esnext.iterator.map.js +23 -0
- package/modules/esnext.iterator.reduce.js +25 -0
- package/modules/esnext.iterator.some.js +16 -0
- package/modules/esnext.iterator.take.js +25 -0
- package/modules/esnext.iterator.to-array.js +15 -0
- package/modules/esnext.map.every.js +4 -5
- package/modules/esnext.map.filter.js +4 -5
- package/modules/esnext.map.find-key.js +4 -5
- package/modules/esnext.map.find.js +4 -5
- package/modules/esnext.map.includes.js +4 -7
- package/modules/esnext.map.key-of.js +4 -7
- package/modules/esnext.map.map-keys.js +4 -5
- package/modules/esnext.map.map-values.js +4 -5
- package/modules/esnext.map.reduce.js +12 -11
- package/modules/esnext.map.some.js +4 -5
- package/modules/esnext.map.update-or-insert.js +11 -0
- package/modules/esnext.map.update.js +3 -2
- package/modules/esnext.map.upsert.js +10 -0
- package/modules/esnext.math.signbit.js +0 -1
- package/modules/esnext.observable.js +26 -25
- package/modules/esnext.promise.all-settled.js +2 -43
- package/modules/esnext.reflect.get-metadata-keys.js +1 -0
- package/modules/esnext.set.every.js +4 -4
- package/modules/esnext.set.filter.js +4 -4
- package/modules/esnext.set.find.js +4 -4
- package/modules/esnext.set.is-disjoint-from.js +3 -5
- package/modules/esnext.set.is-subset-of.js +3 -5
- package/modules/esnext.set.is-superset-of.js +3 -5
- package/modules/esnext.set.join.js +2 -2
- package/modules/esnext.set.map.js +4 -4
- package/modules/esnext.set.reduce.js +12 -10
- package/modules/esnext.set.some.js +4 -4
- package/modules/esnext.string.at.js +2 -2
- package/modules/esnext.string.code-points.js +5 -3
- package/modules/esnext.string.match-all.js +0 -1
- package/modules/esnext.string.replace-all.js +16 -22
- package/modules/esnext.symbol.async-dispose.js +5 -0
- package/modules/esnext.symbol.dispose.js +1 -1
- package/modules/esnext.symbol.replace-all.js +1 -2
- package/modules/esnext.weak-map.upsert.js +10 -0
- package/modules/web.dom-collections.for-each.js +2 -2
- package/modules/web.dom-collections.iterator.js +6 -4
- package/modules/web.immediate.js +5 -0
- package/modules/web.timers.js +12 -7
- package/modules/web.url-search-params.js +52 -41
- package/modules/web.url.js +45 -43
- package/package.json +2 -2
- package/postinstall.js +49 -0
- package/proposals/array-is-template-object.js +1 -0
- package/proposals/iterator-helpers.js +20 -0
- package/proposals/map-update-or-insert.js +2 -0
- package/proposals/map-upsert.js +5 -0
- package/proposals/promise-all-settled.js +1 -0
- package/proposals/string-match-all.js +0 -2
- package/proposals/using-statement.js +1 -0
- package/stable/global-this.js +1 -3
- package/stable/promise/all-settled.js +1 -0
- package/stage/1.js +1 -3
- package/stage/2.js +4 -1
- package/stage/3.js +2 -2
- package/stage/4.js +2 -0
- package/LICENSE +0 -19
- package/internals/enum-keys.js +0 -16
- package/internals/string-at.js +0 -17
- package/internals/validate-set-prototype-of-arguments.js +0 -9
- package/internals/validate-string-method-arguments.js +0 -9
- package/scripts/postinstall.js +0 -23
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
// https://github.com/tc39/proposal-iterator-helpers
|
|
3
|
+
var $ = require('../internals/export');
|
|
4
|
+
var iterate = require('../internals/iterate');
|
|
5
|
+
var aFunction = require('../internals/a-function');
|
|
6
|
+
var anObject = require('../internals/an-object');
|
|
7
|
+
|
|
8
|
+
$({ target: 'Iterator', proto: true, real: true }, {
|
|
9
|
+
every: function every(fn) {
|
|
10
|
+
anObject(this);
|
|
11
|
+
aFunction(fn);
|
|
12
|
+
return !iterate(this, function (value) {
|
|
13
|
+
if (!fn(value)) return iterate.stop();
|
|
14
|
+
}, undefined, false, true).stopped;
|
|
15
|
+
}
|
|
16
|
+
});
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
// https://github.com/tc39/proposal-iterator-helpers
|
|
3
|
+
var $ = require('../internals/export');
|
|
4
|
+
var aFunction = require('../internals/a-function');
|
|
5
|
+
var anObject = require('../internals/an-object');
|
|
6
|
+
var createIteratorProxy = require('../internals/create-iterator-proxy');
|
|
7
|
+
var callWithSafeIterationClosing = require('../internals/call-with-safe-iteration-closing');
|
|
8
|
+
|
|
9
|
+
var IteratorProxy = createIteratorProxy(function (arg) {
|
|
10
|
+
var iterator = this.iterator;
|
|
11
|
+
var filterer = this.filterer;
|
|
12
|
+
var next = this.next;
|
|
13
|
+
var result, done, value;
|
|
14
|
+
while (true) {
|
|
15
|
+
result = anObject(next.call(iterator, arg));
|
|
16
|
+
done = this.done = !!result.done;
|
|
17
|
+
if (done) return;
|
|
18
|
+
value = result.value;
|
|
19
|
+
if (callWithSafeIterationClosing(iterator, filterer, value)) return value;
|
|
20
|
+
}
|
|
21
|
+
});
|
|
22
|
+
|
|
23
|
+
$({ target: 'Iterator', proto: true, real: true }, {
|
|
24
|
+
filter: function filter(filterer) {
|
|
25
|
+
return new IteratorProxy({
|
|
26
|
+
iterator: anObject(this),
|
|
27
|
+
filterer: aFunction(filterer)
|
|
28
|
+
});
|
|
29
|
+
}
|
|
30
|
+
});
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
// https://github.com/tc39/proposal-iterator-helpers
|
|
3
|
+
var $ = require('../internals/export');
|
|
4
|
+
var iterate = require('../internals/iterate');
|
|
5
|
+
var aFunction = require('../internals/a-function');
|
|
6
|
+
var anObject = require('../internals/an-object');
|
|
7
|
+
|
|
8
|
+
$({ target: 'Iterator', proto: true, real: true }, {
|
|
9
|
+
find: function find(fn) {
|
|
10
|
+
anObject(this);
|
|
11
|
+
aFunction(fn);
|
|
12
|
+
return iterate(this, function (value) {
|
|
13
|
+
if (fn(value)) return iterate.stop(value);
|
|
14
|
+
}, undefined, false, true).result;
|
|
15
|
+
}
|
|
16
|
+
});
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
// https://github.com/tc39/proposal-iterator-helpers
|
|
3
|
+
var $ = require('../internals/export');
|
|
4
|
+
var aFunction = require('../internals/a-function');
|
|
5
|
+
var anObject = require('../internals/an-object');
|
|
6
|
+
var isObject = require('../internals/is-object');
|
|
7
|
+
var getIteratorMethod = require('../internals/get-iterator-method');
|
|
8
|
+
var createIteratorProxy = require('../internals/create-iterator-proxy');
|
|
9
|
+
var callWithSafeIterationClosing = require('../internals/call-with-safe-iteration-closing');
|
|
10
|
+
|
|
11
|
+
var IteratorProxy = createIteratorProxy(function (arg) {
|
|
12
|
+
var iterator = this.iterator;
|
|
13
|
+
var result, mapped, iteratorMethod, innerIterator;
|
|
14
|
+
|
|
15
|
+
while (true) {
|
|
16
|
+
if (innerIterator = this.innerIterator) {
|
|
17
|
+
result = anObject(this.innerNext.call(innerIterator));
|
|
18
|
+
if (!result.done) return result.value;
|
|
19
|
+
this.innerIterator = this.innerNext = null;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
result = anObject(this.next.call(iterator, arg));
|
|
23
|
+
|
|
24
|
+
if (this.done = !!result.done) return;
|
|
25
|
+
|
|
26
|
+
mapped = callWithSafeIterationClosing(iterator, this.mapper, result.value);
|
|
27
|
+
|
|
28
|
+
if (isObject(mapped) && (iteratorMethod = getIteratorMethod(mapped)) !== undefined) {
|
|
29
|
+
this.innerIterator = innerIterator = iteratorMethod.call(mapped);
|
|
30
|
+
this.innerNext = aFunction(innerIterator.next);
|
|
31
|
+
continue;
|
|
32
|
+
} return mapped;
|
|
33
|
+
}
|
|
34
|
+
});
|
|
35
|
+
|
|
36
|
+
$({ target: 'Iterator', proto: true, real: true }, {
|
|
37
|
+
flatMap: function flatMap(mapper) {
|
|
38
|
+
return new IteratorProxy({
|
|
39
|
+
iterator: anObject(this),
|
|
40
|
+
mapper: aFunction(mapper),
|
|
41
|
+
innerIterator: null,
|
|
42
|
+
innerNext: null
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
});
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
// https://github.com/tc39/proposal-iterator-helpers
|
|
3
|
+
var $ = require('../internals/export');
|
|
4
|
+
var iterate = require('../internals/iterate');
|
|
5
|
+
var anObject = require('../internals/an-object');
|
|
6
|
+
|
|
7
|
+
$({ target: 'Iterator', proto: true, real: true }, {
|
|
8
|
+
forEach: function forEach(fn) {
|
|
9
|
+
iterate(anObject(this), fn, undefined, false, true);
|
|
10
|
+
}
|
|
11
|
+
});
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
// https://github.com/tc39/proposal-iterator-helpers
|
|
2
|
+
var $ = require('../internals/export');
|
|
3
|
+
var path = require('../internals/path');
|
|
4
|
+
var aFunction = require('../internals/a-function');
|
|
5
|
+
var anObject = require('../internals/an-object');
|
|
6
|
+
var toObject = require('../internals/to-object');
|
|
7
|
+
var createIteratorProxy = require('../internals/create-iterator-proxy');
|
|
8
|
+
var getIteratorMethod = require('../internals/get-iterator-method');
|
|
9
|
+
|
|
10
|
+
var Iterator = path.Iterator;
|
|
11
|
+
|
|
12
|
+
var IteratorProxy = createIteratorProxy(function (arg) {
|
|
13
|
+
var result = anObject(this.next.call(this.iterator, arg));
|
|
14
|
+
var done = this.done = !!result.done;
|
|
15
|
+
if (!done) return result.value;
|
|
16
|
+
}, true);
|
|
17
|
+
|
|
18
|
+
$({ target: 'Iterator', stat: true }, {
|
|
19
|
+
from: function from(O) {
|
|
20
|
+
var object = toObject(O);
|
|
21
|
+
var usingIterator = getIteratorMethod(object);
|
|
22
|
+
var iterator;
|
|
23
|
+
if (usingIterator != null) {
|
|
24
|
+
iterator = aFunction(usingIterator).call(object);
|
|
25
|
+
if (iterator instanceof Iterator) return iterator;
|
|
26
|
+
} else {
|
|
27
|
+
iterator = object;
|
|
28
|
+
} return new IteratorProxy({
|
|
29
|
+
iterator: iterator
|
|
30
|
+
});
|
|
31
|
+
}
|
|
32
|
+
});
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
// https://github.com/tc39/proposal-iterator-helpers
|
|
3
|
+
var $ = require('../internals/export');
|
|
4
|
+
var aFunction = require('../internals/a-function');
|
|
5
|
+
var anObject = require('../internals/an-object');
|
|
6
|
+
var createIteratorProxy = require('../internals/create-iterator-proxy');
|
|
7
|
+
var callWithSafeIterationClosing = require('../internals/call-with-safe-iteration-closing');
|
|
8
|
+
|
|
9
|
+
var IteratorProxy = createIteratorProxy(function (arg) {
|
|
10
|
+
var iterator = this.iterator;
|
|
11
|
+
var result = anObject(this.next.call(iterator, arg));
|
|
12
|
+
var done = this.done = !!result.done;
|
|
13
|
+
if (!done) return callWithSafeIterationClosing(iterator, this.mapper, result.value);
|
|
14
|
+
});
|
|
15
|
+
|
|
16
|
+
$({ target: 'Iterator', proto: true, real: true }, {
|
|
17
|
+
map: function map(mapper) {
|
|
18
|
+
return new IteratorProxy({
|
|
19
|
+
iterator: anObject(this),
|
|
20
|
+
mapper: aFunction(mapper)
|
|
21
|
+
});
|
|
22
|
+
}
|
|
23
|
+
});
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
// https://github.com/tc39/proposal-iterator-helpers
|
|
3
|
+
var $ = require('../internals/export');
|
|
4
|
+
var iterate = require('../internals/iterate');
|
|
5
|
+
var aFunction = require('../internals/a-function');
|
|
6
|
+
var anObject = require('../internals/an-object');
|
|
7
|
+
|
|
8
|
+
$({ target: 'Iterator', proto: true, real: true }, {
|
|
9
|
+
reduce: function reduce(reducer /* , initialValue */) {
|
|
10
|
+
anObject(this);
|
|
11
|
+
aFunction(reducer);
|
|
12
|
+
var noInitial = arguments.length < 2;
|
|
13
|
+
var accumulator = noInitial ? undefined : arguments[1];
|
|
14
|
+
iterate(this, function (value) {
|
|
15
|
+
if (noInitial) {
|
|
16
|
+
noInitial = false;
|
|
17
|
+
accumulator = value;
|
|
18
|
+
} else {
|
|
19
|
+
accumulator = reducer(accumulator, value);
|
|
20
|
+
}
|
|
21
|
+
}, undefined, false, true);
|
|
22
|
+
if (noInitial) throw TypeError('Reduce of empty iterator with no initial value');
|
|
23
|
+
return accumulator;
|
|
24
|
+
}
|
|
25
|
+
});
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
// https://github.com/tc39/proposal-iterator-helpers
|
|
3
|
+
var $ = require('../internals/export');
|
|
4
|
+
var iterate = require('../internals/iterate');
|
|
5
|
+
var aFunction = require('../internals/a-function');
|
|
6
|
+
var anObject = require('../internals/an-object');
|
|
7
|
+
|
|
8
|
+
$({ target: 'Iterator', proto: true, real: true }, {
|
|
9
|
+
some: function some(fn) {
|
|
10
|
+
anObject(this);
|
|
11
|
+
aFunction(fn);
|
|
12
|
+
return iterate(this, function (value) {
|
|
13
|
+
if (fn(value)) return iterate.stop();
|
|
14
|
+
}, undefined, false, true).stopped;
|
|
15
|
+
}
|
|
16
|
+
});
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
// https://github.com/tc39/proposal-iterator-helpers
|
|
3
|
+
var $ = require('../internals/export');
|
|
4
|
+
var anObject = require('../internals/an-object');
|
|
5
|
+
var toPositiveInteger = require('../internals/to-positive-integer');
|
|
6
|
+
var createIteratorProxy = require('../internals/create-iterator-proxy');
|
|
7
|
+
|
|
8
|
+
var IteratorProxy = createIteratorProxy(function (arg) {
|
|
9
|
+
if (!this.remaining--) {
|
|
10
|
+
this.done = true;
|
|
11
|
+
return;
|
|
12
|
+
}
|
|
13
|
+
var result = anObject(this.next.call(this.iterator, arg));
|
|
14
|
+
var done = this.done = !!result.done;
|
|
15
|
+
if (!done) return result.value;
|
|
16
|
+
});
|
|
17
|
+
|
|
18
|
+
$({ target: 'Iterator', proto: true, real: true }, {
|
|
19
|
+
take: function take(limit) {
|
|
20
|
+
return new IteratorProxy({
|
|
21
|
+
iterator: anObject(this),
|
|
22
|
+
remaining: toPositiveInteger(limit)
|
|
23
|
+
});
|
|
24
|
+
}
|
|
25
|
+
});
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
// https://github.com/tc39/proposal-iterator-helpers
|
|
3
|
+
var $ = require('../internals/export');
|
|
4
|
+
var iterate = require('../internals/iterate');
|
|
5
|
+
var anObject = require('../internals/an-object');
|
|
6
|
+
|
|
7
|
+
var push = [].push;
|
|
8
|
+
|
|
9
|
+
$({ target: 'Iterator', proto: true, real: true }, {
|
|
10
|
+
toArray: function toArray() {
|
|
11
|
+
var result = [];
|
|
12
|
+
iterate(anObject(this), push, result, false, true);
|
|
13
|
+
return result;
|
|
14
|
+
}
|
|
15
|
+
});
|
|
@@ -4,6 +4,7 @@ var IS_PURE = require('../internals/is-pure');
|
|
|
4
4
|
var anObject = require('../internals/an-object');
|
|
5
5
|
var bind = require('../internals/bind-context');
|
|
6
6
|
var getMapIterator = require('../internals/get-map-iterator');
|
|
7
|
+
var iterate = require('../internals/iterate');
|
|
7
8
|
|
|
8
9
|
// `Map.prototype.every` method
|
|
9
10
|
// https://github.com/tc39/proposal-collection-methods
|
|
@@ -12,10 +13,8 @@ $({ target: 'Map', proto: true, real: true, forced: IS_PURE }, {
|
|
|
12
13
|
var map = anObject(this);
|
|
13
14
|
var iterator = getMapIterator(map);
|
|
14
15
|
var boundFunction = bind(callbackfn, arguments.length > 1 ? arguments[1] : undefined, 3);
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
if (!boundFunction(entry[1], entry[0], map)) return false;
|
|
19
|
-
} return true;
|
|
16
|
+
return !iterate(iterator, function (key, value) {
|
|
17
|
+
if (!boundFunction(value, key, map)) return iterate.stop();
|
|
18
|
+
}, undefined, true, true).stopped;
|
|
20
19
|
}
|
|
21
20
|
});
|
|
@@ -7,6 +7,7 @@ var aFunction = require('../internals/a-function');
|
|
|
7
7
|
var bind = require('../internals/bind-context');
|
|
8
8
|
var speciesConstructor = require('../internals/species-constructor');
|
|
9
9
|
var getMapIterator = require('../internals/get-map-iterator');
|
|
10
|
+
var iterate = require('../internals/iterate');
|
|
10
11
|
|
|
11
12
|
// `Map.prototype.filter` method
|
|
12
13
|
// https://github.com/tc39/proposal-collection-methods
|
|
@@ -17,11 +18,9 @@ $({ target: 'Map', proto: true, real: true, forced: IS_PURE }, {
|
|
|
17
18
|
var boundFunction = bind(callbackfn, arguments.length > 1 ? arguments[1] : undefined, 3);
|
|
18
19
|
var newMap = new (speciesConstructor(map, getBuiltIn('Map')))();
|
|
19
20
|
var setter = aFunction(newMap.set);
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
if (boundFunction(value = entry[1], key = entry[0], map)) setter.call(newMap, key, value);
|
|
24
|
-
}
|
|
21
|
+
iterate(iterator, function (key, value) {
|
|
22
|
+
if (boundFunction(value, key, map)) setter.call(newMap, key, value);
|
|
23
|
+
}, undefined, true, true);
|
|
25
24
|
return newMap;
|
|
26
25
|
}
|
|
27
26
|
});
|
|
@@ -4,6 +4,7 @@ var IS_PURE = require('../internals/is-pure');
|
|
|
4
4
|
var anObject = require('../internals/an-object');
|
|
5
5
|
var bind = require('../internals/bind-context');
|
|
6
6
|
var getMapIterator = require('../internals/get-map-iterator');
|
|
7
|
+
var iterate = require('../internals/iterate');
|
|
7
8
|
|
|
8
9
|
// `Map.prototype.findKey` method
|
|
9
10
|
// https://github.com/tc39/proposal-collection-methods
|
|
@@ -12,10 +13,8 @@ $({ target: 'Map', proto: true, real: true, forced: IS_PURE }, {
|
|
|
12
13
|
var map = anObject(this);
|
|
13
14
|
var iterator = getMapIterator(map);
|
|
14
15
|
var boundFunction = bind(callbackfn, arguments.length > 1 ? arguments[1] : undefined, 3);
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
if (boundFunction(entry[1], key = entry[0], map)) return key;
|
|
19
|
-
}
|
|
16
|
+
return iterate(iterator, function (key, value) {
|
|
17
|
+
if (boundFunction(value, key, map)) return iterate.stop(key);
|
|
18
|
+
}, undefined, true, true).result;
|
|
20
19
|
}
|
|
21
20
|
});
|
|
@@ -4,6 +4,7 @@ var IS_PURE = require('../internals/is-pure');
|
|
|
4
4
|
var anObject = require('../internals/an-object');
|
|
5
5
|
var bind = require('../internals/bind-context');
|
|
6
6
|
var getMapIterator = require('../internals/get-map-iterator');
|
|
7
|
+
var iterate = require('../internals/iterate');
|
|
7
8
|
|
|
8
9
|
// `Map.prototype.find` method
|
|
9
10
|
// https://github.com/tc39/proposal-collection-methods
|
|
@@ -12,10 +13,8 @@ $({ target: 'Map', proto: true, real: true, forced: IS_PURE }, {
|
|
|
12
13
|
var map = anObject(this);
|
|
13
14
|
var iterator = getMapIterator(map);
|
|
14
15
|
var boundFunction = bind(callbackfn, arguments.length > 1 ? arguments[1] : undefined, 3);
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
if (boundFunction(value = entry[1], entry[0], map)) return value;
|
|
19
|
-
}
|
|
16
|
+
return iterate(iterator, function (key, value) {
|
|
17
|
+
if (boundFunction(value, key, map)) return iterate.stop(value);
|
|
18
|
+
}, undefined, true, true).result;
|
|
20
19
|
}
|
|
21
20
|
});
|
|
@@ -4,17 +4,14 @@ var IS_PURE = require('../internals/is-pure');
|
|
|
4
4
|
var anObject = require('../internals/an-object');
|
|
5
5
|
var getMapIterator = require('../internals/get-map-iterator');
|
|
6
6
|
var sameValueZero = require('../internals/same-value-zero');
|
|
7
|
+
var iterate = require('../internals/iterate');
|
|
7
8
|
|
|
8
9
|
// `Map.prototype.includes` method
|
|
9
10
|
// https://github.com/tc39/proposal-collection-methods
|
|
10
11
|
$({ target: 'Map', proto: true, real: true, forced: IS_PURE }, {
|
|
11
12
|
includes: function includes(searchElement) {
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
while (!(step = iterator.next()).done) {
|
|
16
|
-
if (sameValueZero(step.value[1], searchElement)) return true;
|
|
17
|
-
}
|
|
18
|
-
return false;
|
|
13
|
+
return iterate(getMapIterator(anObject(this)), function (key, value) {
|
|
14
|
+
if (sameValueZero(value, searchElement)) return iterate.stop();
|
|
15
|
+
}, undefined, true, true).stopped;
|
|
19
16
|
}
|
|
20
17
|
});
|
|
@@ -3,17 +3,14 @@ var $ = require('../internals/export');
|
|
|
3
3
|
var IS_PURE = require('../internals/is-pure');
|
|
4
4
|
var anObject = require('../internals/an-object');
|
|
5
5
|
var getMapIterator = require('../internals/get-map-iterator');
|
|
6
|
+
var iterate = require('../internals/iterate');
|
|
6
7
|
|
|
7
8
|
// `Map.prototype.includes` method
|
|
8
9
|
// https://github.com/tc39/proposal-collection-methods
|
|
9
10
|
$({ target: 'Map', proto: true, real: true, forced: IS_PURE }, {
|
|
10
11
|
keyOf: function keyOf(searchElement) {
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
while (!(step = iterator.next()).done) {
|
|
15
|
-
entry = step.value;
|
|
16
|
-
if (entry[1] === searchElement) return entry[0];
|
|
17
|
-
}
|
|
12
|
+
return iterate(getMapIterator(anObject(this)), function (key, value) {
|
|
13
|
+
if (value === searchElement) return iterate.stop(key);
|
|
14
|
+
}, undefined, true, true).result;
|
|
18
15
|
}
|
|
19
16
|
});
|
|
@@ -7,6 +7,7 @@ var aFunction = require('../internals/a-function');
|
|
|
7
7
|
var bind = require('../internals/bind-context');
|
|
8
8
|
var speciesConstructor = require('../internals/species-constructor');
|
|
9
9
|
var getMapIterator = require('../internals/get-map-iterator');
|
|
10
|
+
var iterate = require('../internals/iterate');
|
|
10
11
|
|
|
11
12
|
// `Map.prototype.mapKeys` method
|
|
12
13
|
// https://github.com/tc39/proposal-collection-methods
|
|
@@ -17,11 +18,9 @@ $({ target: 'Map', proto: true, real: true, forced: IS_PURE }, {
|
|
|
17
18
|
var boundFunction = bind(callbackfn, arguments.length > 1 ? arguments[1] : undefined, 3);
|
|
18
19
|
var newMap = new (speciesConstructor(map, getBuiltIn('Map')))();
|
|
19
20
|
var setter = aFunction(newMap.set);
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
setter.call(newMap, boundFunction(value = entry[1], entry[0], map), value);
|
|
24
|
-
}
|
|
21
|
+
iterate(iterator, function (key, value) {
|
|
22
|
+
setter.call(newMap, boundFunction(value, key, map), value);
|
|
23
|
+
}, undefined, true, true);
|
|
25
24
|
return newMap;
|
|
26
25
|
}
|
|
27
26
|
});
|
|
@@ -7,6 +7,7 @@ var aFunction = require('../internals/a-function');
|
|
|
7
7
|
var bind = require('../internals/bind-context');
|
|
8
8
|
var speciesConstructor = require('../internals/species-constructor');
|
|
9
9
|
var getMapIterator = require('../internals/get-map-iterator');
|
|
10
|
+
var iterate = require('../internals/iterate');
|
|
10
11
|
|
|
11
12
|
// `Map.prototype.mapValues` method
|
|
12
13
|
// https://github.com/tc39/proposal-collection-methods
|
|
@@ -17,11 +18,9 @@ $({ target: 'Map', proto: true, real: true, forced: IS_PURE }, {
|
|
|
17
18
|
var boundFunction = bind(callbackfn, arguments.length > 1 ? arguments[1] : undefined, 3);
|
|
18
19
|
var newMap = new (speciesConstructor(map, getBuiltIn('Map')))();
|
|
19
20
|
var setter = aFunction(newMap.set);
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
setter.call(newMap, key = entry[0], boundFunction(entry[1], key, map));
|
|
24
|
-
}
|
|
21
|
+
iterate(iterator, function (key, value) {
|
|
22
|
+
setter.call(newMap, key, boundFunction(value, key, map));
|
|
23
|
+
}, undefined, true, true);
|
|
25
24
|
return newMap;
|
|
26
25
|
}
|
|
27
26
|
});
|
|
@@ -4,6 +4,7 @@ var IS_PURE = require('../internals/is-pure');
|
|
|
4
4
|
var anObject = require('../internals/an-object');
|
|
5
5
|
var aFunction = require('../internals/a-function');
|
|
6
6
|
var getMapIterator = require('../internals/get-map-iterator');
|
|
7
|
+
var iterate = require('../internals/iterate');
|
|
7
8
|
|
|
8
9
|
// `Map.prototype.reduce` method
|
|
9
10
|
// https://github.com/tc39/proposal-collection-methods
|
|
@@ -11,18 +12,18 @@ $({ target: 'Map', proto: true, real: true, forced: IS_PURE }, {
|
|
|
11
12
|
reduce: function reduce(callbackfn /* , initialValue */) {
|
|
12
13
|
var map = anObject(this);
|
|
13
14
|
var iterator = getMapIterator(map);
|
|
14
|
-
var
|
|
15
|
+
var noInitial = arguments.length < 2;
|
|
16
|
+
var accumulator = noInitial ? undefined : arguments[1];
|
|
15
17
|
aFunction(callbackfn);
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
}
|
|
18
|
+
iterate(iterator, function (key, value) {
|
|
19
|
+
if (noInitial) {
|
|
20
|
+
noInitial = false;
|
|
21
|
+
accumulator = value;
|
|
22
|
+
} else {
|
|
23
|
+
accumulator = callbackfn(accumulator, value, key, map);
|
|
24
|
+
}
|
|
25
|
+
}, undefined, true, true);
|
|
26
|
+
if (noInitial) throw TypeError('Reduce of empty map with no initial value');
|
|
26
27
|
return accumulator;
|
|
27
28
|
}
|
|
28
29
|
});
|
|
@@ -4,6 +4,7 @@ var IS_PURE = require('../internals/is-pure');
|
|
|
4
4
|
var anObject = require('../internals/an-object');
|
|
5
5
|
var bind = require('../internals/bind-context');
|
|
6
6
|
var getMapIterator = require('../internals/get-map-iterator');
|
|
7
|
+
var iterate = require('../internals/iterate');
|
|
7
8
|
|
|
8
9
|
// `Set.prototype.some` method
|
|
9
10
|
// https://github.com/tc39/proposal-collection-methods
|
|
@@ -12,10 +13,8 @@ $({ target: 'Map', proto: true, real: true, forced: IS_PURE }, {
|
|
|
12
13
|
var map = anObject(this);
|
|
13
14
|
var iterator = getMapIterator(map);
|
|
14
15
|
var boundFunction = bind(callbackfn, arguments.length > 1 ? arguments[1] : undefined, 3);
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
if (boundFunction(entry[1], entry[0], map)) return true;
|
|
19
|
-
} return false;
|
|
16
|
+
return iterate(iterator, function (key, value) {
|
|
17
|
+
if (boundFunction(value, key, map)) return iterate.stop();
|
|
18
|
+
}, undefined, true, true).stopped;
|
|
20
19
|
}
|
|
21
20
|
});
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
// TODO: remove from `core-js@4`
|
|
3
|
+
var $ = require('../internals/export');
|
|
4
|
+
var IS_PURE = require('../internals/is-pure');
|
|
5
|
+
var $upsert = require('../internals/map-upsert');
|
|
6
|
+
|
|
7
|
+
// `Map.prototype.updateOrInsert` method (replaced by `Map.prototype.upsert`)
|
|
8
|
+
// https://github.com/thumbsupep/proposal-upsert
|
|
9
|
+
$({ target: 'Map', proto: true, real: true, forced: IS_PURE }, {
|
|
10
|
+
updateOrInsert: $upsert
|
|
11
|
+
});
|
|
@@ -9,12 +9,13 @@ var aFunction = require('../internals/a-function');
|
|
|
9
9
|
$({ target: 'Map', proto: true, real: true, forced: IS_PURE }, {
|
|
10
10
|
update: function update(key, callback /* , thunk */) {
|
|
11
11
|
var map = anObject(this);
|
|
12
|
+
var length = arguments.length;
|
|
12
13
|
aFunction(callback);
|
|
13
14
|
var isPresentInMap = map.has(key);
|
|
14
|
-
if (!isPresentInMap &&
|
|
15
|
+
if (!isPresentInMap && length < 3) {
|
|
15
16
|
throw TypeError('Updating absent value');
|
|
16
17
|
}
|
|
17
|
-
var value = isPresentInMap ? map.get(key) : aFunction(arguments[2])(key, map);
|
|
18
|
+
var value = isPresentInMap ? map.get(key) : aFunction(length > 2 ? arguments[2] : undefined)(key, map);
|
|
18
19
|
map.set(key, callback(value, key, map));
|
|
19
20
|
return map;
|
|
20
21
|
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
var $ = require('../internals/export');
|
|
3
|
+
var IS_PURE = require('../internals/is-pure');
|
|
4
|
+
var $upsert = require('../internals/map-upsert');
|
|
5
|
+
|
|
6
|
+
// `Map.prototype.upsert` method
|
|
7
|
+
// https://github.com/thumbsupep/proposal-upsert
|
|
8
|
+
$({ target: 'Map', proto: true, real: true, forced: IS_PURE }, {
|
|
9
|
+
upsert: $upsert
|
|
10
|
+
});
|
|
@@ -4,7 +4,6 @@ var $ = require('../internals/export');
|
|
|
4
4
|
// https://github.com/tc39/proposal-Math.signbit
|
|
5
5
|
$({ target: 'Math', stat: true }, {
|
|
6
6
|
signbit: function signbit(x) {
|
|
7
|
-
// eslint-disable-next-line no-self-compare
|
|
8
7
|
return (x = +x) != x ? x : x == 0 ? 1 / x == Infinity : x > 0;
|
|
9
8
|
}
|
|
10
9
|
});
|