core-js 3.18.0 → 3.19.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/configurator.js +7 -3
- package/es/date/to-primitive.js +2 -3
- package/es/date/to-string.js +2 -4
- package/es/instance/at.js +6 -5
- package/es/instance/bind.js +3 -2
- package/es/instance/code-point-at.js +4 -3
- package/es/instance/concat.js +3 -2
- package/es/instance/copy-within.js +3 -2
- package/es/instance/ends-with.js +4 -3
- package/es/instance/entries.js +3 -2
- package/es/instance/every.js +3 -2
- package/es/instance/fill.js +3 -2
- package/es/instance/filter.js +3 -2
- package/es/instance/find-index.js +3 -2
- package/es/instance/find.js +3 -2
- package/es/instance/flags.js +2 -1
- package/es/instance/flat-map.js +3 -2
- package/es/instance/flat.js +3 -2
- package/es/instance/for-each.js +3 -2
- package/es/instance/includes.js +6 -5
- package/es/instance/index-of.js +3 -2
- package/es/instance/keys.js +3 -2
- package/es/instance/last-index-of.js +3 -2
- package/es/instance/map.js +3 -2
- package/es/instance/match-all.js +4 -3
- package/es/instance/pad-end.js +4 -3
- package/es/instance/pad-start.js +4 -3
- package/es/instance/reduce-right.js +3 -2
- package/es/instance/reduce.js +3 -2
- package/es/instance/repeat.js +4 -3
- package/es/instance/replace-all.js +4 -3
- package/es/instance/reverse.js +3 -2
- package/es/instance/slice.js +3 -2
- package/es/instance/some.js +3 -2
- package/es/instance/sort.js +3 -2
- package/es/instance/splice.js +3 -2
- package/es/instance/starts-with.js +4 -3
- package/es/instance/trim-end.js +4 -3
- package/es/instance/trim-left.js +4 -3
- package/es/instance/trim-right.js +4 -3
- package/es/instance/trim-start.js +4 -3
- package/es/instance/trim.js +4 -3
- package/es/instance/values.js +3 -2
- package/es/json/stringify.js +4 -3
- package/es/promise/all-settled.js +2 -1
- package/es/promise/any.js +2 -1
- package/es/regexp/flags.js +3 -4
- package/es/regexp/match.js +2 -1
- package/es/regexp/replace.js +2 -1
- package/es/regexp/search.js +2 -1
- package/es/regexp/split.js +2 -1
- package/es/regexp/test.js +2 -3
- package/es/regexp/to-string.js +2 -3
- package/es/string/iterator.js +2 -5
- package/features/instance/at.js +6 -5
- package/features/instance/code-points.js +4 -3
- package/features/instance/filter-out.js +3 -2
- package/features/instance/filter-reject.js +3 -2
- package/features/instance/find-last-index.js +3 -2
- package/features/instance/find-last.js +3 -2
- package/features/instance/group-by.js +3 -2
- package/features/instance/unique-by.js +3 -2
- package/features/map/from.js +3 -2
- package/features/map/group-by.js +2 -1
- package/features/map/key-by.js +2 -1
- package/features/map/of.js +3 -2
- package/features/promise/try.js +2 -1
- package/features/set/from.js +3 -2
- package/features/set/of.js +3 -2
- package/features/typed-array/methods.js +2 -0
- package/features/weak-map/from.js +3 -2
- package/features/weak-map/of.js +3 -2
- package/features/weak-set/from.js +3 -2
- package/features/weak-set/of.js +3 -2
- package/internals/a-callable.js +3 -0
- package/internals/a-constructor.js +3 -0
- package/internals/a-possible-prototype.js +5 -1
- package/internals/an-instance.js +8 -3
- package/internals/an-object.js +4 -0
- package/internals/array-buffer-native.js +1 -1
- package/internals/array-buffer-view-core.js +11 -10
- package/internals/array-buffer.js +31 -18
- package/internals/array-copy-within.js +2 -2
- package/internals/array-fill.js +2 -2
- package/internals/array-from-async.js +14 -10
- package/internals/array-from.js +8 -4
- package/internals/array-group-by.js +8 -5
- package/internals/array-includes.js +2 -2
- package/internals/array-iteration-from-last.js +3 -3
- package/internals/array-iteration.js +7 -6
- package/internals/array-last-index-of.js +6 -5
- package/internals/array-reduce.js +5 -2
- package/internals/array-slice.js +3 -0
- package/internals/array-sort.js +10 -11
- package/internals/array-species-constructor.js +2 -0
- package/internals/array-unique-by.js +15 -11
- package/internals/async-from-sync-iterator.js +4 -3
- package/internals/async-iterator-create-proxy.js +4 -3
- package/internals/async-iterator-iteration.js +6 -2
- package/internals/classof-raw.js +5 -2
- package/internals/classof.js +3 -0
- package/internals/clear-error-stack.js +20 -0
- package/internals/collection-add-all.js +3 -2
- package/internals/collection-delete-all.js +3 -2
- package/internals/collection-from.js +7 -4
- package/internals/collection-of.js +3 -4
- package/internals/collection-strong.js +11 -9
- package/internals/collection-weak.js +13 -9
- package/internals/collection.js +8 -7
- package/internals/composite-key.js +9 -2
- package/internals/copy-constructor-properties.js +2 -2
- package/internals/create-html.js +3 -1
- package/internals/date-to-iso-string.js +23 -13
- package/internals/date-to-primitive.js +3 -0
- package/internals/define-iterator.js +2 -1
- package/internals/define-well-known-symbol.js +2 -2
- package/internals/engine-v8-version.js +10 -4
- package/internals/entry-unbind.js +3 -5
- package/internals/error-stack-installable.js +10 -0
- package/internals/export.js +1 -1
- package/internals/fix-regexp-well-known-symbol-logic.js +5 -3
- package/internals/flatten-into-array.js +8 -4
- package/internals/function-apply.js +9 -0
- package/internals/function-bind-context.js +5 -17
- package/internals/function-bind.js +15 -9
- package/internals/function-call.js +5 -0
- package/internals/function-name.js +2 -2
- package/internals/function-uncurry-this.js +12 -0
- package/internals/get-async-iterator.js +2 -1
- package/internals/get-iterator.js +7 -2
- package/internals/get-map-iterator.js +3 -1
- package/internals/get-set-iterator.js +3 -1
- package/internals/get-substitution.js +10 -7
- package/internals/has-own-property.js +10 -0
- package/internals/host-report-errors.js +1 -1
- package/internals/ieee754.js +4 -1
- package/internals/indexed-object.js +5 -2
- package/internals/inspect-source.js +3 -2
- package/internals/install-error-cause.js +10 -0
- package/internals/internal-metadata.js +7 -6
- package/internals/internal-state.js +13 -11
- package/internals/is-callable.js +2 -2
- package/internals/is-constructor.js +6 -4
- package/internals/is-data-descriptor.js +2 -2
- package/internals/is-integral-number.js +10 -0
- package/internals/is-iterable.js +4 -2
- package/internals/is-object.js +1 -1
- package/internals/is-symbol.js +6 -2
- package/internals/iterate.js +16 -8
- package/internals/iterator-close.js +2 -1
- package/internals/iterator-create-proxy.js +4 -3
- package/internals/length-of-array-like.js +7 -0
- package/internals/map-emplace.js +8 -3
- package/internals/map-upsert.js +12 -4
- package/internals/math-scale.js +9 -12
- package/internals/microtask.js +6 -4
- package/internals/normalize-string-argument.js +5 -0
- package/internals/not-a-regexp.js +3 -0
- package/internals/number-parse-float.js +8 -6
- package/internals/number-parse-int.js +4 -2
- package/internals/numeric-range-iterator.js +4 -0
- package/internals/object-assign.js +5 -2
- package/internals/object-define-properties.js +3 -1
- package/internals/object-define-property.js +2 -0
- package/internals/object-get-own-property-descriptor.js +3 -2
- package/internals/object-get-own-property-names-external.js +4 -4
- package/internals/object-get-prototype-of.js +4 -3
- package/internals/object-is-prototype-of.js +3 -0
- package/internals/object-iterator.js +2 -2
- package/internals/object-keys-internal.js +7 -4
- package/internals/object-set-prototype-of.js +4 -3
- package/internals/object-to-array.js +7 -3
- package/internals/ordinary-to-primitive.js +7 -3
- package/internals/own-keys.js +4 -1
- package/internals/redefine.js +2 -2
- package/internals/reflect-metadata.js +9 -3
- package/internals/regexp-exec-abstract.js +6 -2
- package/internals/regexp-exec.js +19 -14
- package/internals/require-object-coercible.js +4 -0
- package/internals/set-global.js +4 -2
- package/internals/set-to-string-tag.js +2 -2
- package/internals/shared.js +1 -1
- package/internals/string-multibyte.js +15 -7
- package/internals/string-pad-webkit-bug.js +0 -1
- package/internals/string-pad.js +7 -4
- package/internals/string-punycode-to-ascii.js +26 -14
- package/internals/string-repeat.js +5 -2
- package/internals/string-trim.js +4 -2
- package/internals/task.js +11 -11
- package/internals/this-number-value.js +2 -4
- package/internals/to-absolute-index.js +2 -2
- package/internals/to-index.js +5 -2
- package/internals/to-integer-or-infinity.js +10 -0
- package/internals/to-length.js +2 -2
- package/internals/to-object.js +3 -0
- package/internals/to-offset.js +3 -0
- package/internals/to-positive-integer.js +5 -2
- package/internals/to-primitive.js +4 -1
- package/internals/to-property-key.js +1 -1
- package/internals/to-string.js +3 -0
- package/internals/try-to-string.js +4 -0
- package/internals/typed-array-constructor.js +18 -14
- package/internals/typed-array-from.js +6 -5
- package/internals/uid.js +4 -1
- package/internals/well-known-symbol.js +8 -4
- package/modules/es.aggregate-error.js +24 -11
- package/modules/es.array-buffer.slice.js +8 -4
- package/modules/es.array.at.js +4 -4
- package/modules/es.array.concat.js +4 -2
- package/modules/es.array.flat-map.js +2 -2
- package/modules/es.array.flat.js +4 -4
- package/modules/es.array.index-of.js +7 -5
- package/modules/es.array.join.js +3 -2
- package/modules/es.array.of.js +3 -1
- package/modules/es.array.reduce.js +2 -1
- package/modules/es.array.reverse.js +3 -2
- package/modules/es.array.slice.js +6 -4
- package/modules/es.array.sort.js +9 -6
- package/modules/es.array.splice.js +6 -4
- package/modules/es.date.get-year.js +3 -2
- package/modules/es.date.now.js +6 -1
- package/modules/es.date.set-year.js +8 -6
- package/modules/es.date.to-primitive.js +2 -1
- package/modules/es.date.to-string.js +5 -4
- package/modules/es.escape.js +12 -5
- package/modules/es.function.has-instance.js +3 -2
- package/modules/es.function.name.js +4 -2
- package/modules/es.json.stringify.js +18 -7
- package/modules/es.map.js +1 -1
- package/modules/es.number.constructor.js +25 -19
- package/modules/es.number.is-integer.js +2 -2
- package/modules/es.number.is-safe-integer.js +2 -2
- package/modules/es.number.to-fixed.js +21 -15
- package/modules/es.number.to-precision.js +6 -5
- package/modules/es.object.has-own.js +1 -1
- package/modules/es.promise.all-settled.js +2 -2
- package/modules/es.promise.any.js +5 -4
- package/modules/es.promise.js +22 -18
- package/modules/es.reflect.apply.js +4 -10
- package/modules/es.reflect.construct.js +10 -5
- package/modules/es.reflect.get.js +2 -1
- package/modules/es.reflect.set.js +2 -1
- package/modules/es.regexp.constructor.js +25 -16
- package/modules/es.regexp.dot-all.js +5 -1
- package/modules/es.regexp.flags.js +4 -2
- package/modules/es.regexp.sticky.js +5 -1
- package/modules/es.regexp.test.js +7 -3
- package/modules/es.regexp.to-string.js +8 -5
- package/modules/es.set.js +1 -1
- package/modules/es.string.at-alternative.js +7 -5
- package/modules/es.string.ends-with.js +7 -5
- package/modules/es.string.from-code-point.js +7 -4
- package/modules/es.string.includes.js +8 -2
- package/modules/es.string.match-all.js +25 -19
- package/modules/es.string.match.js +2 -1
- package/modules/es.string.raw.js +9 -8
- package/modules/es.string.replace-all.js +19 -13
- package/modules/es.string.replace.js +21 -14
- package/modules/es.string.search.js +2 -1
- package/modules/es.string.split.js +23 -16
- package/modules/es.string.starts-with.js +6 -4
- package/modules/es.string.substr.js +10 -6
- package/modules/es.symbol.description.js +22 -14
- package/modules/es.symbol.js +47 -33
- package/modules/es.typed-array.at.js +4 -4
- package/modules/es.typed-array.copy-within.js +4 -2
- package/modules/es.typed-array.fill.js +9 -2
- package/modules/es.typed-array.iterator.js +7 -6
- package/modules/es.typed-array.join.js +3 -3
- package/modules/es.typed-array.last-index-of.js +3 -2
- package/modules/es.typed-array.reduce-right.js +2 -1
- package/modules/es.typed-array.reduce.js +2 -1
- package/modules/es.typed-array.set.js +4 -2
- package/modules/es.typed-array.slice.js +2 -2
- package/modules/es.typed-array.sort.js +13 -28
- package/modules/es.typed-array.to-locale-string.js +7 -2
- package/modules/es.typed-array.to-string.js +3 -2
- package/modules/es.unescape.js +14 -9
- package/modules/es.weak-map.js +14 -13
- package/modules/esnext.array.is-template-object.js +1 -1
- package/modules/esnext.array.last-index.js +2 -2
- package/modules/esnext.array.last-item.js +3 -3
- package/modules/esnext.async-iterator.as-indexed-pairs.js +2 -1
- package/modules/esnext.async-iterator.constructor.js +4 -4
- package/modules/esnext.async-iterator.drop.js +2 -1
- package/modules/esnext.async-iterator.filter.js +2 -1
- package/modules/esnext.async-iterator.flat-map.js +3 -2
- package/modules/esnext.async-iterator.from.js +4 -4
- package/modules/esnext.async-iterator.map.js +2 -1
- package/modules/esnext.async-iterator.reduce.js +4 -1
- package/modules/esnext.async-iterator.take.js +4 -2
- package/modules/esnext.composite-key.js +5 -1
- package/modules/esnext.composite-symbol.js +3 -2
- package/modules/esnext.iterator.as-indexed-pairs.js +2 -1
- package/modules/esnext.iterator.constructor.js +4 -4
- package/modules/esnext.iterator.drop.js +4 -2
- package/modules/esnext.iterator.filter.js +2 -1
- package/modules/esnext.iterator.flat-map.js +7 -3
- package/modules/esnext.iterator.from.js +4 -4
- package/modules/esnext.iterator.map.js +2 -1
- package/modules/esnext.iterator.reduce.js +3 -0
- package/modules/esnext.iterator.take.js +2 -1
- package/modules/esnext.map.delete-all.js +2 -4
- package/modules/esnext.map.emplace.js +2 -2
- package/modules/esnext.map.every.js +1 -1
- package/modules/esnext.map.filter.js +5 -4
- package/modules/esnext.map.find-key.js +1 -1
- package/modules/esnext.map.find.js +1 -1
- package/modules/esnext.map.group-by.js +6 -2
- package/modules/esnext.map.includes.js +1 -1
- package/modules/esnext.map.key-by.js +2 -1
- package/modules/esnext.map.map-keys.js +5 -4
- package/modules/esnext.map.map-values.js +5 -4
- package/modules/esnext.map.reduce.js +3 -0
- package/modules/esnext.map.some.js +1 -1
- package/modules/esnext.map.update-or-insert.js +2 -2
- package/modules/esnext.map.update.js +11 -4
- package/modules/esnext.map.upsert.js +2 -2
- package/modules/esnext.math.seeded-prng.js +3 -1
- package/modules/esnext.number.from-string.js +14 -5
- package/modules/esnext.observable.js +14 -9
- package/modules/esnext.reflect.get-metadata-keys.js +5 -10
- package/modules/esnext.set.add-all.js +2 -4
- package/modules/esnext.set.delete-all.js +2 -4
- package/modules/esnext.set.difference.js +3 -2
- package/modules/esnext.set.every.js +1 -1
- package/modules/esnext.set.filter.js +4 -3
- package/modules/esnext.set.find.js +1 -1
- package/modules/esnext.set.intersection.js +3 -2
- package/modules/esnext.set.is-disjoint-from.js +3 -2
- package/modules/esnext.set.is-subset-of.js +3 -2
- package/modules/esnext.set.is-superset-of.js +3 -2
- package/modules/esnext.set.join.js +9 -4
- package/modules/esnext.set.map.js +5 -4
- package/modules/esnext.set.reduce.js +3 -0
- package/modules/esnext.set.some.js +1 -1
- package/modules/esnext.set.symmetric-difference.js +3 -2
- package/modules/esnext.typed-array.from-async.js +9 -3
- package/modules/esnext.typed-array.unique-by.js +4 -2
- package/modules/esnext.weak-map.delete-all.js +2 -4
- package/modules/esnext.weak-map.emplace.js +2 -2
- package/modules/esnext.weak-map.upsert.js +2 -2
- package/modules/esnext.weak-set.add-all.js +2 -4
- package/modules/esnext.weak-set.delete-all.js +2 -4
- package/modules/web.dom-collections.for-each.js +3 -1
- package/modules/web.timers.js +5 -4
- package/modules/web.url-search-params.js +63 -54
- package/modules/web.url.js +112 -98
- package/modules/web.url.to-json.js +2 -1
- package/package.json +2 -2
- package/postinstall.js +1 -1
- package/stable/instance/entries.js +6 -4
- package/stable/instance/for-each.js +6 -4
- package/stable/instance/keys.js +6 -4
- package/stable/instance/values.js +6 -4
- package/internals/has.js +0 -7
- package/internals/is-integer.js +0 -9
- package/internals/to-integer.js +0 -8
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
var global = require('../internals/global');
|
|
3
|
+
var uncurryThis = require('../internals/function-uncurry-this');
|
|
3
4
|
var DESCRIPTORS = require('../internals/descriptors');
|
|
4
5
|
var NATIVE_ARRAY_BUFFER = require('../internals/array-buffer-native');
|
|
5
6
|
var FunctionName = require('../internals/function-name');
|
|
@@ -7,7 +8,7 @@ var createNonEnumerableProperty = require('../internals/create-non-enumerable-pr
|
|
|
7
8
|
var redefineAll = require('../internals/redefine-all');
|
|
8
9
|
var fails = require('../internals/fails');
|
|
9
10
|
var anInstance = require('../internals/an-instance');
|
|
10
|
-
var
|
|
11
|
+
var toIntegerOrInfinity = require('../internals/to-integer-or-infinity');
|
|
11
12
|
var toLength = require('../internals/to-length');
|
|
12
13
|
var toIndex = require('../internals/to-index');
|
|
13
14
|
var IEEE754 = require('../internals/ieee754');
|
|
@@ -16,6 +17,7 @@ var setPrototypeOf = require('../internals/object-set-prototype-of');
|
|
|
16
17
|
var getOwnPropertyNames = require('../internals/object-get-own-property-names').f;
|
|
17
18
|
var defineProperty = require('../internals/object-define-property').f;
|
|
18
19
|
var arrayFill = require('../internals/array-fill');
|
|
20
|
+
var arraySlice = require('../internals/array-slice');
|
|
19
21
|
var setToStringTag = require('../internals/set-to-string-tag');
|
|
20
22
|
var InternalStateModule = require('../internals/internal-state');
|
|
21
23
|
|
|
@@ -30,10 +32,14 @@ var WRONG_LENGTH = 'Wrong length';
|
|
|
30
32
|
var WRONG_INDEX = 'Wrong index';
|
|
31
33
|
var NativeArrayBuffer = global[ARRAY_BUFFER];
|
|
32
34
|
var $ArrayBuffer = NativeArrayBuffer;
|
|
35
|
+
var ArrayBufferPrototype = $ArrayBuffer && $ArrayBuffer[PROTOTYPE];
|
|
33
36
|
var $DataView = global[DATA_VIEW];
|
|
34
|
-
var
|
|
37
|
+
var DataViewPrototype = $DataView && $DataView[PROTOTYPE];
|
|
35
38
|
var ObjectPrototype = Object.prototype;
|
|
39
|
+
var Array = global.Array;
|
|
36
40
|
var RangeError = global.RangeError;
|
|
41
|
+
var fill = uncurryThis(arrayFill);
|
|
42
|
+
var reverse = uncurryThis([].reverse);
|
|
37
43
|
|
|
38
44
|
var packIEEE754 = IEEE754.pack;
|
|
39
45
|
var unpackIEEE754 = IEEE754.unpack;
|
|
@@ -72,8 +78,8 @@ var get = function (view, count, index, isLittleEndian) {
|
|
|
72
78
|
if (intIndex + count > store.byteLength) throw RangeError(WRONG_INDEX);
|
|
73
79
|
var bytes = getInternalState(store.buffer).bytes;
|
|
74
80
|
var start = intIndex + store.byteOffset;
|
|
75
|
-
var pack = bytes
|
|
76
|
-
return isLittleEndian ? pack :
|
|
81
|
+
var pack = arraySlice(bytes, start, start + count);
|
|
82
|
+
return isLittleEndian ? pack : reverse(pack);
|
|
77
83
|
};
|
|
78
84
|
|
|
79
85
|
var set = function (view, count, index, conversion, value, isLittleEndian) {
|
|
@@ -88,20 +94,22 @@ var set = function (view, count, index, conversion, value, isLittleEndian) {
|
|
|
88
94
|
|
|
89
95
|
if (!NATIVE_ARRAY_BUFFER) {
|
|
90
96
|
$ArrayBuffer = function ArrayBuffer(length) {
|
|
91
|
-
anInstance(this,
|
|
97
|
+
anInstance(this, ArrayBufferPrototype);
|
|
92
98
|
var byteLength = toIndex(length);
|
|
93
99
|
setInternalState(this, {
|
|
94
|
-
bytes:
|
|
100
|
+
bytes: fill(Array(byteLength), 0),
|
|
95
101
|
byteLength: byteLength
|
|
96
102
|
});
|
|
97
103
|
if (!DESCRIPTORS) this.byteLength = byteLength;
|
|
98
104
|
};
|
|
99
105
|
|
|
106
|
+
ArrayBufferPrototype = $ArrayBuffer[PROTOTYPE];
|
|
107
|
+
|
|
100
108
|
$DataView = function DataView(buffer, byteOffset, byteLength) {
|
|
101
|
-
anInstance(this,
|
|
102
|
-
anInstance(buffer,
|
|
109
|
+
anInstance(this, DataViewPrototype);
|
|
110
|
+
anInstance(buffer, ArrayBufferPrototype);
|
|
103
111
|
var bufferLength = getInternalState(buffer).byteLength;
|
|
104
|
-
var offset =
|
|
112
|
+
var offset = toIntegerOrInfinity(byteOffset);
|
|
105
113
|
if (offset < 0 || offset > bufferLength) throw RangeError('Wrong offset');
|
|
106
114
|
byteLength = byteLength === undefined ? bufferLength - offset : toLength(byteLength);
|
|
107
115
|
if (offset + byteLength > bufferLength) throw RangeError(WRONG_LENGTH);
|
|
@@ -117,6 +125,8 @@ if (!NATIVE_ARRAY_BUFFER) {
|
|
|
117
125
|
}
|
|
118
126
|
};
|
|
119
127
|
|
|
128
|
+
DataViewPrototype = $DataView[PROTOTYPE];
|
|
129
|
+
|
|
120
130
|
if (DESCRIPTORS) {
|
|
121
131
|
addGetter($ArrayBuffer, 'byteLength');
|
|
122
132
|
addGetter($DataView, 'buffer');
|
|
@@ -124,7 +134,7 @@ if (!NATIVE_ARRAY_BUFFER) {
|
|
|
124
134
|
addGetter($DataView, 'byteOffset');
|
|
125
135
|
}
|
|
126
136
|
|
|
127
|
-
redefineAll(
|
|
137
|
+
redefineAll(DataViewPrototype, {
|
|
128
138
|
getInt8: function getInt8(byteOffset) {
|
|
129
139
|
return get(this, 1, byteOffset)[0] << 24 >> 24;
|
|
130
140
|
},
|
|
@@ -191,36 +201,39 @@ if (!NATIVE_ARRAY_BUFFER) {
|
|
|
191
201
|
})) {
|
|
192
202
|
/* eslint-enable no-new -- required for testing */
|
|
193
203
|
$ArrayBuffer = function ArrayBuffer(length) {
|
|
194
|
-
anInstance(this,
|
|
204
|
+
anInstance(this, ArrayBufferPrototype);
|
|
195
205
|
return new NativeArrayBuffer(toIndex(length));
|
|
196
206
|
};
|
|
197
|
-
|
|
207
|
+
|
|
208
|
+
$ArrayBuffer[PROTOTYPE] = ArrayBufferPrototype;
|
|
209
|
+
|
|
198
210
|
for (var keys = getOwnPropertyNames(NativeArrayBuffer), j = 0, key; keys.length > j;) {
|
|
199
211
|
if (!((key = keys[j++]) in $ArrayBuffer)) {
|
|
200
212
|
createNonEnumerableProperty($ArrayBuffer, key, NativeArrayBuffer[key]);
|
|
201
213
|
}
|
|
202
214
|
}
|
|
215
|
+
|
|
203
216
|
ArrayBufferPrototype.constructor = $ArrayBuffer;
|
|
204
217
|
} else if (INCORRECT_ARRAY_BUFFER_NAME && CONFIGURABLE_FUNCTION_NAME) {
|
|
205
218
|
createNonEnumerableProperty(NativeArrayBuffer, 'name', ARRAY_BUFFER);
|
|
206
219
|
}
|
|
207
220
|
|
|
208
221
|
// WebKit bug - the same parent prototype for typed arrays and data view
|
|
209
|
-
if (setPrototypeOf && getPrototypeOf(
|
|
210
|
-
setPrototypeOf(
|
|
222
|
+
if (setPrototypeOf && getPrototypeOf(DataViewPrototype) !== ObjectPrototype) {
|
|
223
|
+
setPrototypeOf(DataViewPrototype, ObjectPrototype);
|
|
211
224
|
}
|
|
212
225
|
|
|
213
226
|
// iOS Safari 7.x bug
|
|
214
227
|
var testView = new $DataView(new $ArrayBuffer(2));
|
|
215
|
-
var $setInt8 =
|
|
228
|
+
var $setInt8 = uncurryThis(DataViewPrototype.setInt8);
|
|
216
229
|
testView.setInt8(0, 2147483648);
|
|
217
230
|
testView.setInt8(1, 2147483649);
|
|
218
|
-
if (testView.getInt8(0) || !testView.getInt8(1)) redefineAll(
|
|
231
|
+
if (testView.getInt8(0) || !testView.getInt8(1)) redefineAll(DataViewPrototype, {
|
|
219
232
|
setInt8: function setInt8(byteOffset, value) {
|
|
220
|
-
$setInt8
|
|
233
|
+
$setInt8(this, byteOffset, value << 24 >> 24);
|
|
221
234
|
},
|
|
222
235
|
setUint8: function setUint8(byteOffset, value) {
|
|
223
|
-
$setInt8
|
|
236
|
+
$setInt8(this, byteOffset, value << 24 >> 24);
|
|
224
237
|
}
|
|
225
238
|
}, { unsafe: true });
|
|
226
239
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
var toObject = require('../internals/to-object');
|
|
3
3
|
var toAbsoluteIndex = require('../internals/to-absolute-index');
|
|
4
|
-
var
|
|
4
|
+
var lengthOfArrayLike = require('../internals/length-of-array-like');
|
|
5
5
|
|
|
6
6
|
var min = Math.min;
|
|
7
7
|
|
|
@@ -10,7 +10,7 @@ var min = Math.min;
|
|
|
10
10
|
// eslint-disable-next-line es/no-array-prototype-copywithin -- safe
|
|
11
11
|
module.exports = [].copyWithin || function copyWithin(target /* = 0 */, start /* = 0, end = @length */) {
|
|
12
12
|
var O = toObject(this);
|
|
13
|
-
var len =
|
|
13
|
+
var len = lengthOfArrayLike(O);
|
|
14
14
|
var to = toAbsoluteIndex(target, len);
|
|
15
15
|
var from = toAbsoluteIndex(start, len);
|
|
16
16
|
var end = arguments.length > 2 ? arguments[2] : undefined;
|
package/internals/array-fill.js
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
var toObject = require('../internals/to-object');
|
|
3
3
|
var toAbsoluteIndex = require('../internals/to-absolute-index');
|
|
4
|
-
var
|
|
4
|
+
var lengthOfArrayLike = require('../internals/length-of-array-like');
|
|
5
5
|
|
|
6
6
|
// `Array.prototype.fill` method implementation
|
|
7
7
|
// https://tc39.es/ecma262/#sec-array.prototype.fill
|
|
8
8
|
module.exports = function fill(value /* , start = 0, end = @length */) {
|
|
9
9
|
var O = toObject(this);
|
|
10
|
-
var length =
|
|
10
|
+
var length = lengthOfArrayLike(O);
|
|
11
11
|
var argumentsLength = arguments.length;
|
|
12
12
|
var index = toAbsoluteIndex(argumentsLength > 1 ? arguments[1] : undefined, length);
|
|
13
13
|
var end = argumentsLength > 2 ? arguments[2] : undefined;
|
|
@@ -7,6 +7,7 @@ var getIterator = require('../internals/get-iterator');
|
|
|
7
7
|
var getIteratorMethod = require('../internals/get-iterator-method');
|
|
8
8
|
var getMethod = require('../internals/get-method');
|
|
9
9
|
var getVirtual = require('../internals/entry-virtual');
|
|
10
|
+
var getBuiltIn = require('../internals/get-built-in');
|
|
10
11
|
var wellKnownSymbol = require('../internals/well-known-symbol');
|
|
11
12
|
var AsyncFromSyncIterator = require('../internals/async-from-sync-iterator');
|
|
12
13
|
var toArray = require('../internals/async-iterator-iteration').toArray;
|
|
@@ -17,16 +18,19 @@ var arrayIterator = getVirtual('Array').values;
|
|
|
17
18
|
// `Array.fromAsync` method implementation
|
|
18
19
|
// https://github.com/tc39/proposal-array-from-async
|
|
19
20
|
module.exports = function fromAsync(asyncItems /* , mapfn = undefined, thisArg = undefined */) {
|
|
20
|
-
var
|
|
21
|
+
var C = this;
|
|
21
22
|
var argumentsLength = arguments.length;
|
|
22
23
|
var mapfn = argumentsLength > 1 ? arguments[1] : undefined;
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
?
|
|
30
|
-
|
|
31
|
-
|
|
24
|
+
var thisArg = argumentsLength > 2 ? arguments[2] : undefined;
|
|
25
|
+
return new (getBuiltIn('Promise'))(function (resolve) {
|
|
26
|
+
var O = toObject(asyncItems);
|
|
27
|
+
if (mapfn !== undefined) mapfn = bind(mapfn, thisArg);
|
|
28
|
+
var usingAsyncIterator = getMethod(O, ASYNC_ITERATOR);
|
|
29
|
+
var usingSyncIterator = usingAsyncIterator ? undefined : getIteratorMethod(O) || arrayIterator;
|
|
30
|
+
var A = isConstructor(C) ? new C() : [];
|
|
31
|
+
var iterator = usingAsyncIterator
|
|
32
|
+
? getAsyncIterator(O, usingAsyncIterator)
|
|
33
|
+
: new AsyncFromSyncIterator(getIterator(O, usingSyncIterator));
|
|
34
|
+
resolve(toArray(iterator, mapfn, A));
|
|
35
|
+
});
|
|
32
36
|
};
|
package/internals/array-from.js
CHANGED
|
@@ -1,14 +1,18 @@
|
|
|
1
1
|
'use strict';
|
|
2
|
+
var global = require('../internals/global');
|
|
2
3
|
var bind = require('../internals/function-bind-context');
|
|
4
|
+
var call = require('../internals/function-call');
|
|
3
5
|
var toObject = require('../internals/to-object');
|
|
4
6
|
var callWithSafeIterationClosing = require('../internals/call-with-safe-iteration-closing');
|
|
5
7
|
var isArrayIteratorMethod = require('../internals/is-array-iterator-method');
|
|
6
8
|
var isConstructor = require('../internals/is-constructor');
|
|
7
|
-
var
|
|
9
|
+
var lengthOfArrayLike = require('../internals/length-of-array-like');
|
|
8
10
|
var createProperty = require('../internals/create-property');
|
|
9
11
|
var getIterator = require('../internals/get-iterator');
|
|
10
12
|
var getIteratorMethod = require('../internals/get-iterator-method');
|
|
11
13
|
|
|
14
|
+
var Array = global.Array;
|
|
15
|
+
|
|
12
16
|
// `Array.from` method implementation
|
|
13
17
|
// https://tc39.es/ecma262/#sec-array.from
|
|
14
18
|
module.exports = function from(arrayLike /* , mapfn = undefined, thisArg = undefined */) {
|
|
@@ -17,7 +21,7 @@ module.exports = function from(arrayLike /* , mapfn = undefined, thisArg = undef
|
|
|
17
21
|
var argumentsLength = arguments.length;
|
|
18
22
|
var mapfn = argumentsLength > 1 ? arguments[1] : undefined;
|
|
19
23
|
var mapping = mapfn !== undefined;
|
|
20
|
-
if (mapping) mapfn = bind(mapfn, argumentsLength > 2 ? arguments[2] : undefined
|
|
24
|
+
if (mapping) mapfn = bind(mapfn, argumentsLength > 2 ? arguments[2] : undefined);
|
|
21
25
|
var iteratorMethod = getIteratorMethod(O);
|
|
22
26
|
var index = 0;
|
|
23
27
|
var length, result, step, iterator, next, value;
|
|
@@ -26,12 +30,12 @@ module.exports = function from(arrayLike /* , mapfn = undefined, thisArg = undef
|
|
|
26
30
|
iterator = getIterator(O, iteratorMethod);
|
|
27
31
|
next = iterator.next;
|
|
28
32
|
result = IS_CONSTRUCTOR ? new this() : [];
|
|
29
|
-
for (;!(step =
|
|
33
|
+
for (;!(step = call(next, iterator)).done; index++) {
|
|
30
34
|
value = mapping ? callWithSafeIterationClosing(iterator, mapfn, [step.value, index], true) : step.value;
|
|
31
35
|
createProperty(result, index, value);
|
|
32
36
|
}
|
|
33
37
|
} else {
|
|
34
|
-
length =
|
|
38
|
+
length = lengthOfArrayLike(O);
|
|
35
39
|
result = IS_CONSTRUCTOR ? new this(length) : Array(length);
|
|
36
40
|
for (;length > index; index++) {
|
|
37
41
|
value = mapping ? mapfn(O[index], index) : O[index];
|
|
@@ -1,19 +1,22 @@
|
|
|
1
|
+
var global = require('../internals/global');
|
|
1
2
|
var bind = require('../internals/function-bind-context');
|
|
3
|
+
var uncurryThis = require('../internals/function-uncurry-this');
|
|
2
4
|
var IndexedObject = require('../internals/indexed-object');
|
|
3
5
|
var toObject = require('../internals/to-object');
|
|
4
|
-
var toLength = require('../internals/to-length');
|
|
5
6
|
var toPropertyKey = require('../internals/to-property-key');
|
|
7
|
+
var lengthOfArrayLike = require('../internals/length-of-array-like');
|
|
6
8
|
var objectCreate = require('../internals/object-create');
|
|
7
9
|
var arrayFromConstructorAndList = require('../internals/array-from-constructor-and-list');
|
|
8
10
|
|
|
9
|
-
var
|
|
11
|
+
var Array = global.Array;
|
|
12
|
+
var push = uncurryThis([].push);
|
|
10
13
|
|
|
11
14
|
module.exports = function ($this, callbackfn, that, specificConstructor) {
|
|
12
15
|
var O = toObject($this);
|
|
13
16
|
var self = IndexedObject(O);
|
|
14
|
-
var boundFunction = bind(callbackfn, that
|
|
17
|
+
var boundFunction = bind(callbackfn, that);
|
|
15
18
|
var target = objectCreate(null);
|
|
16
|
-
var length =
|
|
19
|
+
var length = lengthOfArrayLike(self);
|
|
17
20
|
var index = 0;
|
|
18
21
|
var Constructor, key, value;
|
|
19
22
|
for (;length > index; index++) {
|
|
@@ -21,7 +24,7 @@ module.exports = function ($this, callbackfn, that, specificConstructor) {
|
|
|
21
24
|
key = toPropertyKey(boundFunction(value, index, O));
|
|
22
25
|
// in some IE10 builds, `hasOwnProperty` returns incorrect result on integer keys
|
|
23
26
|
// but since it's a `null` prototype object, we can safely use `in`
|
|
24
|
-
if (key in target) push
|
|
27
|
+
if (key in target) push(target[key], value);
|
|
25
28
|
else target[key] = [value];
|
|
26
29
|
}
|
|
27
30
|
if (specificConstructor) {
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
var toIndexedObject = require('../internals/to-indexed-object');
|
|
2
|
-
var toLength = require('../internals/to-length');
|
|
3
2
|
var toAbsoluteIndex = require('../internals/to-absolute-index');
|
|
3
|
+
var lengthOfArrayLike = require('../internals/length-of-array-like');
|
|
4
4
|
|
|
5
5
|
// `Array.prototype.{ indexOf, includes }` methods implementation
|
|
6
6
|
var createMethod = function (IS_INCLUDES) {
|
|
7
7
|
return function ($this, el, fromIndex) {
|
|
8
8
|
var O = toIndexedObject($this);
|
|
9
|
-
var length =
|
|
9
|
+
var length = lengthOfArrayLike(O);
|
|
10
10
|
var index = toAbsoluteIndex(fromIndex, length);
|
|
11
11
|
var value;
|
|
12
12
|
// Array#includes uses SameValueZero equality algorithm
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
var bind = require('../internals/function-bind-context');
|
|
2
2
|
var IndexedObject = require('../internals/indexed-object');
|
|
3
3
|
var toObject = require('../internals/to-object');
|
|
4
|
-
var
|
|
4
|
+
var lengthOfArrayLike = require('../internals/length-of-array-like');
|
|
5
5
|
|
|
6
6
|
// `Array.prototype.{ findLast, findLastIndex }` methods implementation
|
|
7
7
|
var createMethod = function (TYPE) {
|
|
@@ -9,8 +9,8 @@ var createMethod = function (TYPE) {
|
|
|
9
9
|
return function ($this, callbackfn, that) {
|
|
10
10
|
var O = toObject($this);
|
|
11
11
|
var self = IndexedObject(O);
|
|
12
|
-
var boundFunction = bind(callbackfn, that
|
|
13
|
-
var index =
|
|
12
|
+
var boundFunction = bind(callbackfn, that);
|
|
13
|
+
var index = lengthOfArrayLike(self);
|
|
14
14
|
var value, result;
|
|
15
15
|
while (index-- > 0) {
|
|
16
16
|
value = self[index];
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
var bind = require('../internals/function-bind-context');
|
|
2
|
+
var uncurryThis = require('../internals/function-uncurry-this');
|
|
2
3
|
var IndexedObject = require('../internals/indexed-object');
|
|
3
4
|
var toObject = require('../internals/to-object');
|
|
4
|
-
var
|
|
5
|
+
var lengthOfArrayLike = require('../internals/length-of-array-like');
|
|
5
6
|
var arraySpeciesCreate = require('../internals/array-species-create');
|
|
6
7
|
|
|
7
|
-
var push = [].push;
|
|
8
|
+
var push = uncurryThis([].push);
|
|
8
9
|
|
|
9
10
|
// `Array.prototype.{ forEach, map, filter, some, every, find, findIndex, filterReject }` methods implementation
|
|
10
11
|
var createMethod = function (TYPE) {
|
|
@@ -18,8 +19,8 @@ var createMethod = function (TYPE) {
|
|
|
18
19
|
return function ($this, callbackfn, that, specificCreate) {
|
|
19
20
|
var O = toObject($this);
|
|
20
21
|
var self = IndexedObject(O);
|
|
21
|
-
var boundFunction = bind(callbackfn, that
|
|
22
|
-
var length =
|
|
22
|
+
var boundFunction = bind(callbackfn, that);
|
|
23
|
+
var length = lengthOfArrayLike(self);
|
|
23
24
|
var index = 0;
|
|
24
25
|
var create = specificCreate || arraySpeciesCreate;
|
|
25
26
|
var target = IS_MAP ? create($this, length) : IS_FILTER || IS_FILTER_REJECT ? create($this, 0) : undefined;
|
|
@@ -33,10 +34,10 @@ var createMethod = function (TYPE) {
|
|
|
33
34
|
case 3: return true; // some
|
|
34
35
|
case 5: return value; // find
|
|
35
36
|
case 6: return index; // findIndex
|
|
36
|
-
case 2: push
|
|
37
|
+
case 2: push(target, value); // filter
|
|
37
38
|
} else switch (TYPE) {
|
|
38
39
|
case 4: return false; // every
|
|
39
|
-
case 7: push
|
|
40
|
+
case 7: push(target, value); // filterReject
|
|
40
41
|
}
|
|
41
42
|
}
|
|
42
43
|
}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
/* eslint-disable es/no-array-prototype-lastindexof -- safe */
|
|
3
|
+
var apply = require('../internals/function-apply');
|
|
3
4
|
var toIndexedObject = require('../internals/to-indexed-object');
|
|
4
|
-
var
|
|
5
|
-
var
|
|
5
|
+
var toIntegerOrInfinity = require('../internals/to-integer-or-infinity');
|
|
6
|
+
var lengthOfArrayLike = require('../internals/length-of-array-like');
|
|
6
7
|
var arrayMethodIsStrict = require('../internals/array-method-is-strict');
|
|
7
8
|
|
|
8
9
|
var min = Math.min;
|
|
@@ -15,11 +16,11 @@ var FORCED = NEGATIVE_ZERO || !STRICT_METHOD;
|
|
|
15
16
|
// https://tc39.es/ecma262/#sec-array.prototype.lastindexof
|
|
16
17
|
module.exports = FORCED ? function lastIndexOf(searchElement /* , fromIndex = @[*-1] */) {
|
|
17
18
|
// convert -0 to +0
|
|
18
|
-
if (NEGATIVE_ZERO) return $lastIndexOf
|
|
19
|
+
if (NEGATIVE_ZERO) return apply($lastIndexOf, this, arguments) || 0;
|
|
19
20
|
var O = toIndexedObject(this);
|
|
20
|
-
var length =
|
|
21
|
+
var length = lengthOfArrayLike(O);
|
|
21
22
|
var index = length - 1;
|
|
22
|
-
if (arguments.length > 1) index = min(index,
|
|
23
|
+
if (arguments.length > 1) index = min(index, toIntegerOrInfinity(arguments[1]));
|
|
23
24
|
if (index < 0) index = length + index;
|
|
24
25
|
for (;index >= 0; index--) if (index in O && O[index] === searchElement) return index || 0;
|
|
25
26
|
return -1;
|
|
@@ -1,7 +1,10 @@
|
|
|
1
|
+
var global = require('../internals/global');
|
|
1
2
|
var aCallable = require('../internals/a-callable');
|
|
2
3
|
var toObject = require('../internals/to-object');
|
|
3
4
|
var IndexedObject = require('../internals/indexed-object');
|
|
4
|
-
var
|
|
5
|
+
var lengthOfArrayLike = require('../internals/length-of-array-like');
|
|
6
|
+
|
|
7
|
+
var TypeError = global.TypeError;
|
|
5
8
|
|
|
6
9
|
// `Array.prototype.{ reduce, reduceRight }` methods implementation
|
|
7
10
|
var createMethod = function (IS_RIGHT) {
|
|
@@ -9,7 +12,7 @@ var createMethod = function (IS_RIGHT) {
|
|
|
9
12
|
aCallable(callbackfn);
|
|
10
13
|
var O = toObject(that);
|
|
11
14
|
var self = IndexedObject(O);
|
|
12
|
-
var length =
|
|
15
|
+
var length = lengthOfArrayLike(O);
|
|
13
16
|
var index = IS_RIGHT ? length - 1 : 0;
|
|
14
17
|
var i = IS_RIGHT ? -1 : 1;
|
|
15
18
|
if (argumentsLength < 2) while (true) {
|
package/internals/array-sort.js
CHANGED
|
@@ -1,12 +1,14 @@
|
|
|
1
|
-
|
|
1
|
+
var arraySlice = require('../internals/array-slice');
|
|
2
|
+
|
|
2
3
|
var floor = Math.floor;
|
|
3
4
|
|
|
4
5
|
var mergeSort = function (array, comparefn) {
|
|
5
6
|
var length = array.length;
|
|
6
7
|
var middle = floor(length / 2);
|
|
7
8
|
return length < 8 ? insertionSort(array, comparefn) : merge(
|
|
8
|
-
|
|
9
|
-
mergeSort(array
|
|
9
|
+
array,
|
|
10
|
+
mergeSort(arraySlice(array, 0, middle), comparefn),
|
|
11
|
+
mergeSort(arraySlice(array, middle), comparefn),
|
|
10
12
|
comparefn
|
|
11
13
|
);
|
|
12
14
|
};
|
|
@@ -26,20 +28,17 @@ var insertionSort = function (array, comparefn) {
|
|
|
26
28
|
} return array;
|
|
27
29
|
};
|
|
28
30
|
|
|
29
|
-
var merge = function (left, right, comparefn) {
|
|
31
|
+
var merge = function (array, left, right, comparefn) {
|
|
30
32
|
var llength = left.length;
|
|
31
33
|
var rlength = right.length;
|
|
32
34
|
var lindex = 0;
|
|
33
35
|
var rindex = 0;
|
|
34
|
-
var result = [];
|
|
35
36
|
|
|
36
37
|
while (lindex < llength || rindex < rlength) {
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
}
|
|
42
|
-
} return result;
|
|
38
|
+
array[lindex + rindex] = (lindex < llength && rindex < rlength)
|
|
39
|
+
? comparefn(left[lindex], right[rindex]) <= 0 ? left[lindex++] : right[rindex++]
|
|
40
|
+
: lindex < llength ? left[lindex++] : right[rindex++];
|
|
41
|
+
} return array;
|
|
43
42
|
};
|
|
44
43
|
|
|
45
44
|
module.exports = mergeSort;
|
|
@@ -1,9 +1,11 @@
|
|
|
1
|
+
var global = require('../internals/global');
|
|
1
2
|
var isArray = require('../internals/is-array');
|
|
2
3
|
var isConstructor = require('../internals/is-constructor');
|
|
3
4
|
var isObject = require('../internals/is-object');
|
|
4
5
|
var wellKnownSymbol = require('../internals/well-known-symbol');
|
|
5
6
|
|
|
6
7
|
var SPECIES = wellKnownSymbol('species');
|
|
8
|
+
var Array = global.Array;
|
|
7
9
|
|
|
8
10
|
// a part of `ArraySpeciesCreate` abstract operation
|
|
9
11
|
// https://tc39.es/ecma262/#sec-arrayspeciescreate
|
|
@@ -1,32 +1,36 @@
|
|
|
1
1
|
'use strict';
|
|
2
|
+
var getBuiltIn = require('../internals/get-built-in');
|
|
3
|
+
var uncurryThis = require('../internals/function-uncurry-this');
|
|
2
4
|
var aCallable = require('../internals/a-callable');
|
|
3
|
-
var
|
|
5
|
+
var lengthOfArrayLike = require('../internals/length-of-array-like');
|
|
4
6
|
var toObject = require('../internals/to-object');
|
|
5
|
-
var getBuiltIn = require('../internals/get-built-in');
|
|
6
7
|
var arraySpeciesCreate = require('../internals/array-species-create');
|
|
7
8
|
|
|
8
|
-
var
|
|
9
|
+
var Map = getBuiltIn('Map');
|
|
10
|
+
var MapPrototype = Map.prototype;
|
|
11
|
+
var mapForEach = uncurryThis(MapPrototype.forEach);
|
|
12
|
+
var mapHas = uncurryThis(MapPrototype.has);
|
|
13
|
+
var mapSet = uncurryThis(MapPrototype.set);
|
|
14
|
+
var push = uncurryThis([].push);
|
|
9
15
|
|
|
10
16
|
// `Array.prototype.uniqueBy` method
|
|
11
17
|
// https://github.com/tc39/proposal-array-unique
|
|
12
18
|
module.exports = function uniqueBy(resolver) {
|
|
13
19
|
var that = toObject(this);
|
|
14
|
-
var length =
|
|
20
|
+
var length = lengthOfArrayLike(that);
|
|
15
21
|
var result = arraySpeciesCreate(that, 0);
|
|
16
|
-
var Map = getBuiltIn('Map');
|
|
17
22
|
var map = new Map();
|
|
18
|
-
var resolverFunction
|
|
19
|
-
if (resolver != null) resolverFunction = aCallable(resolver);
|
|
20
|
-
else resolverFunction = function (value) {
|
|
23
|
+
var resolverFunction = resolver != null ? aCallable(resolver) : function (value) {
|
|
21
24
|
return value;
|
|
22
25
|
};
|
|
26
|
+
var index, item, key;
|
|
23
27
|
for (index = 0; index < length; index++) {
|
|
24
28
|
item = that[index];
|
|
25
29
|
key = resolverFunction(item);
|
|
26
|
-
if (!map
|
|
30
|
+
if (!mapHas(map, key)) mapSet(map, key, item);
|
|
27
31
|
}
|
|
28
|
-
map
|
|
29
|
-
push
|
|
32
|
+
mapForEach(map, function (value) {
|
|
33
|
+
push(result, value);
|
|
30
34
|
});
|
|
31
35
|
return result;
|
|
32
36
|
};
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
'use strict';
|
|
2
|
+
var apply = require('../internals/function-apply');
|
|
2
3
|
var anObject = require('../internals/an-object');
|
|
3
4
|
var create = require('../internals/object-create');
|
|
4
5
|
var getMethod = require('../internals/get-method');
|
|
@@ -31,7 +32,7 @@ AsyncFromSyncIterator.prototype = redefineAll(create(AsyncIteratorPrototype), {
|
|
|
31
32
|
var state = getInternalState(this);
|
|
32
33
|
var hasArg = !!arguments.length;
|
|
33
34
|
return new Promise(function (resolve, reject) {
|
|
34
|
-
var result = anObject(state.next
|
|
35
|
+
var result = anObject(apply(state.next, state.iterator, hasArg ? [arg] : []));
|
|
35
36
|
asyncFromSyncIteratorContinuation(result, resolve, reject);
|
|
36
37
|
});
|
|
37
38
|
},
|
|
@@ -41,7 +42,7 @@ AsyncFromSyncIterator.prototype = redefineAll(create(AsyncIteratorPrototype), {
|
|
|
41
42
|
return new Promise(function (resolve, reject) {
|
|
42
43
|
var $return = getMethod(iterator, 'return');
|
|
43
44
|
if ($return === undefined) return resolve({ done: true, value: arg });
|
|
44
|
-
var result = anObject($return
|
|
45
|
+
var result = anObject(apply($return, iterator, hasArg ? [arg] : []));
|
|
45
46
|
asyncFromSyncIteratorContinuation(result, resolve, reject);
|
|
46
47
|
});
|
|
47
48
|
},
|
|
@@ -51,7 +52,7 @@ AsyncFromSyncIterator.prototype = redefineAll(create(AsyncIteratorPrototype), {
|
|
|
51
52
|
return new Promise(function (resolve, reject) {
|
|
52
53
|
var $throw = getMethod(iterator, 'throw');
|
|
53
54
|
if ($throw === undefined) return reject(arg);
|
|
54
|
-
var result = anObject($throw
|
|
55
|
+
var result = anObject(apply($throw, iterator, hasArg ? [arg] : []));
|
|
55
56
|
asyncFromSyncIteratorContinuation(result, resolve, reject);
|
|
56
57
|
});
|
|
57
58
|
}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
'use strict';
|
|
2
|
+
var call = require('../internals/function-call');
|
|
2
3
|
var aCallable = require('../internals/a-callable');
|
|
3
4
|
var anObject = require('../internals/an-object');
|
|
4
5
|
var create = require('../internals/object-create');
|
|
@@ -33,7 +34,7 @@ module.exports = function (nextHandler, IS_ITERATOR) {
|
|
|
33
34
|
var state = getInternalState(that);
|
|
34
35
|
var args = hasArgument ? [state.ignoreArgument ? undefined : arg] : IS_ITERATOR ? [] : [undefined];
|
|
35
36
|
state.ignoreArgument = false;
|
|
36
|
-
resolve(state.done ? { done: true, value: undefined } : anObject(
|
|
37
|
+
resolve(state.done ? { done: true, value: undefined } : anObject(call(nextHandler, state, Promise, args)));
|
|
37
38
|
});
|
|
38
39
|
},
|
|
39
40
|
'return': function (value) {
|
|
@@ -44,7 +45,7 @@ module.exports = function (nextHandler, IS_ITERATOR) {
|
|
|
44
45
|
state.done = true;
|
|
45
46
|
var $$return = getMethod(iterator, 'return');
|
|
46
47
|
if ($$return === undefined) return resolve({ done: true, value: value });
|
|
47
|
-
Promise.resolve($$return
|
|
48
|
+
Promise.resolve(call($$return, iterator, value)).then(function (result) {
|
|
48
49
|
anObject(result);
|
|
49
50
|
resolve({ done: true, value: value });
|
|
50
51
|
}, reject);
|
|
@@ -58,7 +59,7 @@ module.exports = function (nextHandler, IS_ITERATOR) {
|
|
|
58
59
|
state.done = true;
|
|
59
60
|
var $$throw = getMethod(iterator, 'throw');
|
|
60
61
|
if ($$throw === undefined) return reject(value);
|
|
61
|
-
resolve($$throw
|
|
62
|
+
resolve(call($$throw, iterator, value));
|
|
62
63
|
});
|
|
63
64
|
}
|
|
64
65
|
});
|
|
@@ -1,11 +1,15 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
// https://github.com/tc39/proposal-iterator-helpers
|
|
3
|
+
// https://github.com/tc39/proposal-array-from-async
|
|
4
|
+
var global = require('../internals/global');
|
|
5
|
+
var call = require('../internals/function-call');
|
|
3
6
|
var aCallable = require('../internals/a-callable');
|
|
4
7
|
var anObject = require('../internals/an-object');
|
|
5
8
|
var getBuiltIn = require('../internals/get-built-in');
|
|
6
9
|
var getMethod = require('../internals/get-method');
|
|
7
10
|
|
|
8
11
|
var MAX_SAFE_INTEGER = 0x1FFFFFFFFFFFFF;
|
|
12
|
+
var TypeError = global.TypeError;
|
|
9
13
|
|
|
10
14
|
var createMethod = function (TYPE) {
|
|
11
15
|
var IS_TO_ARRAY = TYPE == 0;
|
|
@@ -25,7 +29,7 @@ var createMethod = function (TYPE) {
|
|
|
25
29
|
try {
|
|
26
30
|
var returnMethod = getMethod(iterator, 'return');
|
|
27
31
|
if (returnMethod) {
|
|
28
|
-
return Promise.resolve(
|
|
32
|
+
return Promise.resolve(call(returnMethod, iterator)).then(function () {
|
|
29
33
|
method(argument);
|
|
30
34
|
}, function (error) {
|
|
31
35
|
reject(error);
|
|
@@ -45,7 +49,7 @@ var createMethod = function (TYPE) {
|
|
|
45
49
|
if (IS_TO_ARRAY && (index > MAX_SAFE_INTEGER) && MAPPING) {
|
|
46
50
|
throw TypeError('The allowed number of iterations has been exceeded');
|
|
47
51
|
}
|
|
48
|
-
Promise.resolve(anObject(
|
|
52
|
+
Promise.resolve(anObject(call(next, iterator))).then(function (step) {
|
|
49
53
|
try {
|
|
50
54
|
if (anObject(step).done) {
|
|
51
55
|
if (IS_TO_ARRAY) {
|
package/internals/classof-raw.js
CHANGED
|
@@ -1,5 +1,8 @@
|
|
|
1
|
-
var
|
|
1
|
+
var uncurryThis = require('../internals/function-uncurry-this');
|
|
2
|
+
|
|
3
|
+
var toString = uncurryThis({}.toString);
|
|
4
|
+
var stringSlice = uncurryThis(''.slice);
|
|
2
5
|
|
|
3
6
|
module.exports = function (it) {
|
|
4
|
-
return toString
|
|
7
|
+
return stringSlice(toString(it), 8, -1);
|
|
5
8
|
};
|