core-js 3.17.2 → 3.18.2
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/promise/all-settled.js +2 -1
- package/es/promise/any.js +2 -1
- package/features/array/from-async.js +8 -0
- package/features/array/index.js +2 -0
- package/features/index.js +2 -0
- package/features/map/from.js +2 -1
- package/features/map/group-by.js +2 -1
- package/features/map/key-by.js +2 -1
- package/features/map/of.js +2 -1
- package/features/promise/try.js +2 -1
- package/features/set/from.js +2 -1
- package/features/set/of.js +2 -1
- package/features/typed-array/from-async.js +1 -0
- package/features/typed-array/index.js +2 -0
- package/features/typed-array/methods.js +2 -0
- package/features/weak-map/from.js +2 -1
- package/features/weak-map/of.js +2 -1
- package/features/weak-set/from.js +2 -1
- package/features/weak-set/of.js +2 -1
- package/internals/a-callable.js +8 -0
- package/internals/a-constructor.js +8 -0
- package/internals/a-possible-prototype.js +4 -5
- package/internals/an-instance.js +2 -3
- package/internals/an-object.js +4 -4
- package/internals/array-buffer-view-core.js +13 -12
- package/internals/array-buffer.js +9 -3
- package/internals/array-copy-within.js +2 -2
- package/internals/array-fill.js +2 -2
- package/internals/array-from-async.js +36 -0
- package/internals/array-from.js +8 -7
- package/internals/array-group-by.js +2 -2
- package/internals/array-includes.js +2 -2
- package/internals/array-iteration-from-last.js +2 -2
- package/internals/array-iteration.js +2 -2
- package/internals/array-last-index-of.js +4 -4
- package/internals/array-reduce.js +4 -4
- package/internals/array-species-constructor.js +3 -2
- package/internals/array-unique-by.js +5 -5
- package/internals/async-from-sync-iterator.js +4 -4
- package/internals/async-iterator-create-proxy.js +7 -6
- package/internals/async-iterator-iteration.js +27 -15
- package/internals/async-iterator-prototype.js +16 -16
- package/internals/classof.js +2 -1
- package/internals/collection-add-all.js +2 -2
- package/internals/collection-delete-all.js +2 -2
- package/internals/collection-from.js +4 -3
- package/internals/collection-weak.js +3 -3
- package/internals/collection.js +2 -1
- package/internals/copy-constructor-properties.js +2 -2
- package/internals/define-iterator.js +21 -13
- package/internals/define-well-known-symbol.js +2 -2
- package/internals/dom-token-list-prototype.js +7 -0
- package/internals/export.js +1 -0
- package/internals/flatten-into-array.js +4 -3
- package/internals/function-bind-context.js +2 -2
- package/internals/function-bind.js +2 -2
- package/internals/function-name.js +17 -0
- package/internals/get-async-iterator.js +2 -5
- package/internals/get-built-in.js +3 -2
- package/internals/get-iterator-method.js +3 -2
- package/internals/get-iterator.js +5 -5
- package/internals/get-method.js +4 -3
- package/internals/{has.js → has-own-property.js} +2 -0
- package/internals/inherit-if-required.js +2 -1
- package/internals/inspect-source.js +2 -1
- package/internals/install-error-cause.js +10 -0
- package/internals/internal-metadata.js +4 -4
- package/internals/internal-state.js +4 -4
- package/internals/is-array.js +2 -2
- package/internals/is-callable.js +5 -0
- package/internals/is-constructor.js +41 -0
- package/internals/is-data-descriptor.js +2 -2
- package/internals/is-forced.js +2 -1
- package/internals/is-integral-number.js +10 -0
- package/internals/is-object.js +3 -1
- package/internals/is-symbol.js +2 -1
- package/internals/iterate.js +3 -3
- package/internals/iterator-close.js +3 -2
- package/internals/iterator-create-proxy.js +10 -9
- package/internals/iterators-core.js +8 -6
- package/internals/length-of-array-like.js +7 -0
- package/internals/map-upsert.js +4 -3
- package/internals/native-weak-map.js +2 -1
- package/internals/new-promise-capability.js +3 -3
- package/internals/number-parse-float.js +6 -1
- package/internals/number-parse-int.js +6 -1
- package/internals/object-get-own-property-descriptor.js +2 -2
- package/internals/object-get-prototype-of.js +8 -6
- package/internals/object-iterator.js +2 -2
- package/internals/object-keys-internal.js +3 -3
- package/internals/ordinary-to-primitive.js +4 -3
- package/internals/redefine.js +12 -6
- package/internals/regexp-exec-abstract.js +8 -13
- package/internals/regexp-unsupported-dot-all.js +1 -1
- package/internals/regexp-unsupported-ncg.js +1 -1
- package/internals/set-to-string-tag.js +2 -2
- package/internals/shared.js +1 -1
- package/internals/species-constructor.js +2 -2
- package/internals/string-multibyte.js +2 -3
- package/internals/string-pad-webkit-bug.js +0 -1
- package/internals/string-pad.js +1 -1
- package/internals/string-repeat.js +2 -2
- package/internals/string-trim-forced.js +4 -1
- package/internals/task.js +3 -2
- package/internals/to-absolute-index.js +2 -2
- package/internals/to-index.js +2 -2
- package/internals/to-integer-or-infinity.js +10 -0
- package/internals/to-length.js +2 -2
- package/internals/to-positive-integer.js +2 -2
- package/internals/to-primitive.js +3 -2
- package/internals/to-string.js +2 -2
- package/internals/try-to-string.js +7 -0
- package/internals/typed-array-constructor.js +8 -8
- package/internals/typed-array-from.js +6 -4
- package/internals/well-known-symbol.js +3 -3
- package/modules/es.aggregate-error.js +5 -2
- package/modules/es.array.at.js +4 -4
- package/modules/es.array.concat.js +2 -2
- package/modules/es.array.flat-map.js +4 -4
- package/modules/es.array.flat.js +4 -4
- package/modules/es.array.of.js +2 -1
- package/modules/es.array.slice.js +5 -4
- package/modules/es.array.sort.js +4 -4
- package/modules/es.array.splice.js +4 -4
- package/modules/es.date.set-year.js +2 -2
- package/modules/es.date.to-primitive.js +2 -2
- package/modules/es.function.has-instance.js +2 -1
- package/modules/es.function.name.js +2 -1
- package/modules/es.number.constructor.js +15 -14
- 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 +2 -2
- package/modules/es.object.define-getter.js +2 -2
- package/modules/es.object.define-setter.js +2 -2
- package/modules/es.object.has-own.js +1 -1
- package/modules/es.parse-float.js +3 -3
- package/modules/es.parse-int.js +3 -3
- package/modules/es.promise.all-settled.js +2 -2
- package/modules/es.promise.any.js +2 -2
- package/modules/es.promise.finally.js +3 -2
- package/modules/es.promise.js +10 -9
- package/modules/es.reflect.apply.js +2 -2
- package/modules/es.reflect.construct.js +3 -3
- package/modules/es.regexp.constructor.js +2 -2
- package/modules/es.regexp.test.js +4 -4
- package/modules/es.regexp.to-string.js +2 -1
- package/modules/es.string.at-alternative.js +3 -4
- package/modules/es.string.ends-with.js +1 -1
- package/modules/es.string.match-all.js +6 -16
- package/modules/es.string.match.js +3 -2
- package/modules/es.string.raw.js +12 -6
- package/modules/es.string.replace-all.js +5 -3
- package/modules/es.string.replace.js +7 -5
- package/modules/es.string.search.js +3 -2
- package/modules/es.string.split.js +3 -2
- package/modules/es.string.substr.js +7 -4
- package/modules/es.string.trim-end.js +1 -1
- package/modules/es.string.trim-start.js +1 -1
- package/modules/es.symbol.description.js +4 -3
- package/modules/es.symbol.js +20 -16
- package/modules/es.typed-array.at.js +4 -4
- package/modules/es.typed-array.iterator.js +4 -4
- package/modules/es.typed-array.set.js +2 -2
- package/modules/es.typed-array.sort.js +4 -4
- package/modules/esnext.aggregate-error.js +1 -1
- package/modules/esnext.array.from-async.js +8 -0
- package/modules/esnext.array.last-index.js +2 -2
- package/modules/esnext.array.last-item.js +3 -3
- package/modules/esnext.async-iterator.constructor.js +3 -3
- package/modules/esnext.async-iterator.filter.js +2 -2
- package/modules/esnext.async-iterator.flat-map.js +3 -3
- package/modules/esnext.async-iterator.from.js +7 -9
- package/modules/esnext.async-iterator.map.js +2 -2
- package/modules/esnext.async-iterator.reduce.js +3 -3
- package/modules/esnext.async-iterator.to-array.js +1 -1
- package/modules/esnext.global-this.js +1 -1
- package/modules/esnext.iterator.constructor.js +5 -12
- package/modules/esnext.iterator.every.js +2 -2
- package/modules/esnext.iterator.filter.js +2 -2
- package/modules/esnext.iterator.find.js +2 -2
- package/modules/esnext.iterator.flat-map.js +4 -4
- package/modules/esnext.iterator.from.js +5 -7
- package/modules/esnext.iterator.map.js +2 -2
- package/modules/esnext.iterator.reduce.js +2 -2
- package/modules/esnext.iterator.some.js +2 -2
- package/modules/esnext.map.filter.js +2 -2
- package/modules/esnext.map.group-by.js +9 -7
- package/modules/esnext.map.key-by.js +3 -3
- package/modules/esnext.map.key-of.js +1 -1
- package/modules/esnext.map.map-keys.js +2 -2
- package/modules/esnext.map.map-values.js +2 -2
- package/modules/esnext.map.merge.js +2 -2
- package/modules/esnext.map.reduce.js +2 -2
- package/modules/esnext.map.update-or-insert.js +1 -1
- package/modules/esnext.map.update.js +3 -3
- package/modules/esnext.number.from-string.js +2 -2
- package/modules/esnext.observable.js +16 -14
- package/modules/esnext.promise.all-settled.js +1 -1
- package/modules/esnext.promise.any.js +1 -1
- package/modules/esnext.set.difference.js +2 -2
- package/modules/esnext.set.filter.js +2 -2
- package/modules/esnext.set.intersection.js +3 -3
- package/modules/esnext.set.is-disjoint-from.js +2 -2
- package/modules/esnext.set.is-subset-of.js +4 -3
- package/modules/esnext.set.is-superset-of.js +2 -2
- package/modules/esnext.set.map.js +2 -2
- package/modules/esnext.set.reduce.js +2 -2
- package/modules/esnext.set.symmetric-difference.js +3 -3
- package/modules/esnext.set.union.js +2 -2
- package/modules/esnext.string.match-all.js +1 -1
- package/modules/esnext.string.replace-all.js +1 -1
- package/modules/esnext.typed-array.from-async.js +26 -0
- package/modules/web.dom-collections.for-each.js +10 -3
- package/modules/web.dom-collections.iterator.js +8 -3
- package/modules/web.timers.js +2 -1
- package/modules/web.url-search-params.js +7 -6
- package/modules/web.url.js +6 -6
- package/package.json +2 -2
- package/postinstall.js +1 -1
- package/proposals/array-from-async.js +3 -0
- package/stage/1.js +1 -0
- package/internals/a-function.js +0 -5
- package/internals/is-integer.js +0 -9
- package/internals/to-integer.js +0 -8
package/configurator.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
var
|
|
1
|
+
var hasOwn = require('./internals/has-own-property');
|
|
2
2
|
var isArray = require('./internals/is-array');
|
|
3
3
|
var isForced = require('./internals/is-forced');
|
|
4
4
|
var shared = require('./internals/shared-store');
|
|
@@ -17,7 +17,11 @@ module.exports = function (options) {
|
|
|
17
17
|
setAggressivenessLevel(options.useNative, isForced.NATIVE);
|
|
18
18
|
setAggressivenessLevel(options.usePolyfill, isForced.POLYFILL);
|
|
19
19
|
setAggressivenessLevel(options.useFeatureDetection, null);
|
|
20
|
-
if (
|
|
21
|
-
|
|
20
|
+
if (hasOwn(options, USE_FUNCTION_CONSTRUCTOR)) {
|
|
21
|
+
shared[USE_FUNCTION_CONSTRUCTOR] = !!options[USE_FUNCTION_CONSTRUCTOR];
|
|
22
|
+
}
|
|
23
|
+
if (hasOwn(options, ASYNC_ITERATOR_PROTOTYPE)) {
|
|
24
|
+
shared[USE_FUNCTION_CONSTRUCTOR] = options[ASYNC_ITERATOR_PROTOTYPE];
|
|
25
|
+
}
|
|
22
26
|
}
|
|
23
27
|
};
|
|
@@ -4,11 +4,12 @@ require('../../modules/es.object.to-string');
|
|
|
4
4
|
require('../../modules/es.promise');
|
|
5
5
|
require('../../modules/es.promise.all-settled');
|
|
6
6
|
require('../../modules/es.string.iterator');
|
|
7
|
+
var isCallable = require('../../internals/is-callable');
|
|
7
8
|
var path = require('../../internals/path');
|
|
8
9
|
|
|
9
10
|
var Promise = path.Promise;
|
|
10
11
|
var $allSettled = Promise.allSettled;
|
|
11
12
|
|
|
12
13
|
module.exports = function allSettled(iterable) {
|
|
13
|
-
return $allSettled.call(
|
|
14
|
+
return $allSettled.call(isCallable(this) ? this : Promise, iterable);
|
|
14
15
|
};
|
package/es/promise/any.js
CHANGED
|
@@ -5,11 +5,12 @@ require('../../modules/es.object.to-string');
|
|
|
5
5
|
require('../../modules/es.promise');
|
|
6
6
|
require('../../modules/es.promise.any');
|
|
7
7
|
require('../../modules/es.string.iterator');
|
|
8
|
+
var isCallable = require('../../internals/is-callable');
|
|
8
9
|
var path = require('../../internals/path');
|
|
9
10
|
|
|
10
11
|
var Promise = path.Promise;
|
|
11
12
|
var $any = Promise.any;
|
|
12
13
|
|
|
13
14
|
module.exports = function any(iterable) {
|
|
14
|
-
return $any.call(
|
|
15
|
+
return $any.call(isCallable(this) ? this : Promise, iterable);
|
|
15
16
|
};
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
require('../../modules/es.array.iterator');
|
|
2
|
+
require('../../modules/es.object.to-string');
|
|
3
|
+
require('../../modules/es.promise');
|
|
4
|
+
require('../../modules/es.string.iterator');
|
|
5
|
+
require('../../modules/esnext.array.from-async');
|
|
6
|
+
var path = require('../../internals/path');
|
|
7
|
+
|
|
8
|
+
module.exports = path.Array.fromAsync;
|
package/features/array/index.js
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
var parent = require('../../stable/array');
|
|
2
2
|
require('../../modules/es.map');
|
|
3
|
+
require('../../modules/es.promise');
|
|
4
|
+
require('../../modules/esnext.array.from-async');
|
|
3
5
|
// TODO: Remove from `core-js@4`
|
|
4
6
|
require('../../modules/esnext.array.at');
|
|
5
7
|
// TODO: Remove from `core-js@4`
|
package/features/index.js
CHANGED
|
@@ -221,6 +221,7 @@ require('../modules/es.unescape');
|
|
|
221
221
|
require('../modules/es.weak-map');
|
|
222
222
|
require('../modules/es.weak-set');
|
|
223
223
|
require('../modules/esnext.aggregate-error');
|
|
224
|
+
require('../modules/esnext.array.from-async');
|
|
224
225
|
require('../modules/esnext.array.at');
|
|
225
226
|
require('../modules/esnext.array.filter-out');
|
|
226
227
|
require('../modules/esnext.array.filter-reject');
|
|
@@ -344,6 +345,7 @@ require('../modules/esnext.symbol.metadata');
|
|
|
344
345
|
require('../modules/esnext.symbol.observable');
|
|
345
346
|
require('../modules/esnext.symbol.pattern-match');
|
|
346
347
|
require('../modules/esnext.symbol.replace-all');
|
|
348
|
+
require('../modules/esnext.typed-array.from-async');
|
|
347
349
|
require('../modules/esnext.typed-array.at');
|
|
348
350
|
require('../modules/esnext.typed-array.filter-out');
|
|
349
351
|
require('../modules/esnext.typed-array.filter-reject');
|
package/features/map/from.js
CHANGED
|
@@ -4,11 +4,12 @@ require('../../modules/es.map');
|
|
|
4
4
|
require('../../modules/es.string.iterator');
|
|
5
5
|
require('../../modules/esnext.map.from');
|
|
6
6
|
require('../../modules/web.dom-collections.iterator');
|
|
7
|
+
var isCallable = require('../../internals/is-callable');
|
|
7
8
|
var path = require('../../internals/path');
|
|
8
9
|
|
|
9
10
|
var Map = path.Map;
|
|
10
11
|
var mapFrom = Map.from;
|
|
11
12
|
|
|
12
13
|
module.exports = function from(source, mapFn, thisArg) {
|
|
13
|
-
return mapFrom.call(
|
|
14
|
+
return mapFrom.call(isCallable(this) ? this : Map, source, mapFn, thisArg);
|
|
14
15
|
};
|
package/features/map/group-by.js
CHANGED
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
require('../../modules/es.map');
|
|
3
3
|
require('../../modules/esnext.map.group-by');
|
|
4
|
+
var isCallable = require('../../internals/is-callable');
|
|
4
5
|
var path = require('../../internals/path');
|
|
5
6
|
|
|
6
7
|
var Map = path.Map;
|
|
7
8
|
var mapGroupBy = Map.groupBy;
|
|
8
9
|
|
|
9
10
|
module.exports = function groupBy(source, iterable, keyDerivative) {
|
|
10
|
-
return mapGroupBy.call(
|
|
11
|
+
return mapGroupBy.call(isCallable(this) ? this : Map, source, iterable, keyDerivative);
|
|
11
12
|
};
|
package/features/map/key-by.js
CHANGED
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
require('../../modules/es.map');
|
|
3
3
|
require('../../modules/esnext.map.key-by');
|
|
4
|
+
var isCallable = require('../../internals/is-callable');
|
|
4
5
|
var path = require('../../internals/path');
|
|
5
6
|
|
|
6
7
|
var Map = path.Map;
|
|
7
8
|
var mapKeyBy = Map.keyBy;
|
|
8
9
|
|
|
9
10
|
module.exports = function keyBy(source, iterable, keyDerivative) {
|
|
10
|
-
return mapKeyBy.call(
|
|
11
|
+
return mapKeyBy.call(isCallable(this) ? this : Map, source, iterable, keyDerivative);
|
|
11
12
|
};
|
package/features/map/of.js
CHANGED
|
@@ -2,11 +2,12 @@
|
|
|
2
2
|
require('../../modules/es.array.iterator');
|
|
3
3
|
require('../../modules/es.map');
|
|
4
4
|
require('../../modules/esnext.map.of');
|
|
5
|
+
var isCallable = require('../../internals/is-callable');
|
|
5
6
|
var path = require('../../internals/path');
|
|
6
7
|
|
|
7
8
|
var Map = path.Map;
|
|
8
9
|
var mapOf = Map.of;
|
|
9
10
|
|
|
10
11
|
module.exports = function of() {
|
|
11
|
-
return mapOf.apply(
|
|
12
|
+
return mapOf.apply(isCallable(this) ? this : Map, arguments);
|
|
12
13
|
};
|
package/features/promise/try.js
CHANGED
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
require('../../modules/es.promise');
|
|
3
3
|
require('../../modules/esnext.promise.try');
|
|
4
|
+
var isCallable = require('../../internals/is-callable');
|
|
4
5
|
var path = require('../../internals/path');
|
|
5
6
|
|
|
6
7
|
var Promise = path.Promise;
|
|
7
8
|
var promiseTry = Promise['try'];
|
|
8
9
|
|
|
9
10
|
module.exports = { 'try': function (callbackfn) {
|
|
10
|
-
return promiseTry.call(
|
|
11
|
+
return promiseTry.call(isCallable(this) ? this : Promise, callbackfn);
|
|
11
12
|
} }['try'];
|
package/features/set/from.js
CHANGED
|
@@ -4,11 +4,12 @@ require('../../modules/es.set');
|
|
|
4
4
|
require('../../modules/es.string.iterator');
|
|
5
5
|
require('../../modules/esnext.set.from');
|
|
6
6
|
require('../../modules/web.dom-collections.iterator');
|
|
7
|
+
var isCallable = require('../../internals/is-callable');
|
|
7
8
|
var path = require('../../internals/path');
|
|
8
9
|
|
|
9
10
|
var Set = path.Set;
|
|
10
11
|
var setFrom = Set.from;
|
|
11
12
|
|
|
12
13
|
module.exports = function from(source, mapFn, thisArg) {
|
|
13
|
-
return setFrom.call(
|
|
14
|
+
return setFrom.call(isCallable(this) ? this : Set, source, mapFn, thisArg);
|
|
14
15
|
};
|
package/features/set/of.js
CHANGED
|
@@ -2,11 +2,12 @@
|
|
|
2
2
|
require('../../modules/es.array.iterator');
|
|
3
3
|
require('../../modules/es.set');
|
|
4
4
|
require('../../modules/esnext.set.of');
|
|
5
|
+
var isCallable = require('../../internals/is-callable');
|
|
5
6
|
var path = require('../../internals/path');
|
|
6
7
|
|
|
7
8
|
var Set = path.Set;
|
|
8
9
|
var setOf = Set.of;
|
|
9
10
|
|
|
10
11
|
module.exports = function of() {
|
|
11
|
-
return setOf.apply(
|
|
12
|
+
return setOf.apply(isCallable(this) ? this : Set, arguments);
|
|
12
13
|
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
require('../../modules/esnext.typed-array.from-async');
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
var parent = require('../../stable/typed-array');
|
|
2
2
|
require('../../modules/es.map');
|
|
3
|
+
require('../../modules/es.promise');
|
|
4
|
+
require('../../modules/esnext.typed-array.from-async');
|
|
3
5
|
// TODO: Remove from `core-js@4`
|
|
4
6
|
require('../../modules/esnext.typed-array.at');
|
|
5
7
|
// TODO: Remove from `core-js@4`
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
var parent = require('../../stable/typed-array/methods');
|
|
2
2
|
require('../../modules/es.map');
|
|
3
|
+
require('../../modules/es.promise');
|
|
4
|
+
require('../../modules/esnext.typed-array.from-async');
|
|
3
5
|
// TODO: Remove from `core-js@4`
|
|
4
6
|
require('../../modules/esnext.typed-array.at');
|
|
5
7
|
// TODO: Remove from `core-js@4`
|
|
@@ -4,11 +4,12 @@ require('../../modules/es.string.iterator');
|
|
|
4
4
|
require('../../modules/es.weak-map');
|
|
5
5
|
require('../../modules/esnext.weak-map.from');
|
|
6
6
|
require('../../modules/web.dom-collections.iterator');
|
|
7
|
+
var isCallable = require('../../internals/is-callable');
|
|
7
8
|
var path = require('../../internals/path');
|
|
8
9
|
|
|
9
10
|
var WeakMap = path.WeakMap;
|
|
10
11
|
var weakMapFrom = WeakMap.from;
|
|
11
12
|
|
|
12
13
|
module.exports = function from(source, mapFn, thisArg) {
|
|
13
|
-
return weakMapFrom.call(
|
|
14
|
+
return weakMapFrom.call(isCallable(this) ? this : WeakMap, source, mapFn, thisArg);
|
|
14
15
|
};
|
package/features/weak-map/of.js
CHANGED
|
@@ -2,11 +2,12 @@
|
|
|
2
2
|
require('../../modules/es.array.iterator');
|
|
3
3
|
require('../../modules/es.weak-map');
|
|
4
4
|
require('../../modules/esnext.weak-map.of');
|
|
5
|
+
var isCallable = require('../../internals/is-callable');
|
|
5
6
|
var path = require('../../internals/path');
|
|
6
7
|
|
|
7
8
|
var WeakMap = path.WeakMap;
|
|
8
9
|
var weakMapOf = WeakMap.of;
|
|
9
10
|
|
|
10
11
|
module.exports = function of() {
|
|
11
|
-
return weakMapOf.apply(
|
|
12
|
+
return weakMapOf.apply(isCallable(this) ? this : WeakMap, arguments);
|
|
12
13
|
};
|
|
@@ -4,11 +4,12 @@ require('../../modules/es.string.iterator');
|
|
|
4
4
|
require('../../modules/es.weak-set');
|
|
5
5
|
require('../../modules/esnext.weak-set.from');
|
|
6
6
|
require('../../modules/web.dom-collections.iterator');
|
|
7
|
+
var isCallable = require('../../internals/is-callable');
|
|
7
8
|
var path = require('../../internals/path');
|
|
8
9
|
|
|
9
10
|
var WeakSet = path.WeakSet;
|
|
10
11
|
var weakSetfrom = WeakSet.from;
|
|
11
12
|
|
|
12
13
|
module.exports = function from(source, mapFn, thisArg) {
|
|
13
|
-
return weakSetfrom.call(
|
|
14
|
+
return weakSetfrom.call(isCallable(this) ? this : WeakSet, source, mapFn, thisArg);
|
|
14
15
|
};
|
package/features/weak-set/of.js
CHANGED
|
@@ -2,11 +2,12 @@
|
|
|
2
2
|
require('../../modules/es.array.iterator');
|
|
3
3
|
require('../../modules/es.weak-set');
|
|
4
4
|
require('../../modules/esnext.weak-set.of');
|
|
5
|
+
var isCallable = require('../../internals/is-callable');
|
|
5
6
|
var path = require('../../internals/path');
|
|
6
7
|
|
|
7
8
|
var WeakSet = path.WeakSet;
|
|
8
9
|
var weakSetOf = WeakSet.of;
|
|
9
10
|
|
|
10
11
|
module.exports = function of() {
|
|
11
|
-
return weakSetOf.apply(
|
|
12
|
+
return weakSetOf.apply(isCallable(this) ? this : WeakSet, arguments);
|
|
12
13
|
};
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
var isCallable = require('../internals/is-callable');
|
|
2
|
+
var tryToString = require('../internals/try-to-string');
|
|
3
|
+
|
|
4
|
+
// `Assert: IsCallable(argument) is true`
|
|
5
|
+
module.exports = function (argument) {
|
|
6
|
+
if (isCallable(argument)) return argument;
|
|
7
|
+
throw TypeError(tryToString(argument) + ' is not a function');
|
|
8
|
+
};
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
var isConstructor = require('../internals/is-constructor');
|
|
2
|
+
var tryToString = require('../internals/try-to-string');
|
|
3
|
+
|
|
4
|
+
// `Assert: IsConstructor(argument) is true`
|
|
5
|
+
module.exports = function (argument) {
|
|
6
|
+
if (isConstructor(argument)) return argument;
|
|
7
|
+
throw TypeError(tryToString(argument) + ' is not a constructor');
|
|
8
|
+
};
|
|
@@ -1,7 +1,6 @@
|
|
|
1
|
-
var
|
|
1
|
+
var isCallable = require('../internals/is-callable');
|
|
2
2
|
|
|
3
|
-
module.exports = function (
|
|
4
|
-
if (
|
|
5
|
-
|
|
6
|
-
} return it;
|
|
3
|
+
module.exports = function (argument) {
|
|
4
|
+
if (typeof argument === 'object' || isCallable(argument)) return argument;
|
|
5
|
+
throw TypeError("Can't set " + String(argument) + ' as a prototype');
|
|
7
6
|
};
|
package/internals/an-instance.js
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
module.exports = function (it, Constructor, name) {
|
|
2
|
-
if (
|
|
3
|
-
|
|
4
|
-
} return it;
|
|
2
|
+
if (it instanceof Constructor) return it;
|
|
3
|
+
throw TypeError('Incorrect ' + (name ? name + ' ' : '') + 'invocation');
|
|
5
4
|
};
|
package/internals/an-object.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
var isObject = require('../internals/is-object');
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
3
|
+
// `Assert: Type(argument) is Object`
|
|
4
|
+
module.exports = function (argument) {
|
|
5
|
+
if (isObject(argument)) return argument;
|
|
6
|
+
throw TypeError(String(argument) + ' is not an object');
|
|
7
7
|
};
|
|
@@ -2,9 +2,11 @@
|
|
|
2
2
|
var NATIVE_ARRAY_BUFFER = require('../internals/array-buffer-native');
|
|
3
3
|
var DESCRIPTORS = require('../internals/descriptors');
|
|
4
4
|
var global = require('../internals/global');
|
|
5
|
+
var isCallable = require('../internals/is-callable');
|
|
5
6
|
var isObject = require('../internals/is-object');
|
|
6
|
-
var
|
|
7
|
+
var hasOwn = require('../internals/has-own-property');
|
|
7
8
|
var classof = require('../internals/classof');
|
|
9
|
+
var tryToString = require('../internals/try-to-string');
|
|
8
10
|
var createNonEnumerableProperty = require('../internals/create-non-enumerable-property');
|
|
9
11
|
var redefine = require('../internals/redefine');
|
|
10
12
|
var defineProperty = require('../internals/object-define-property').f;
|
|
@@ -51,15 +53,15 @@ var isView = function isView(it) {
|
|
|
51
53
|
if (!isObject(it)) return false;
|
|
52
54
|
var klass = classof(it);
|
|
53
55
|
return klass === 'DataView'
|
|
54
|
-
||
|
|
55
|
-
||
|
|
56
|
+
|| hasOwn(TypedArrayConstructorsList, klass)
|
|
57
|
+
|| hasOwn(BigIntArrayConstructorsList, klass);
|
|
56
58
|
};
|
|
57
59
|
|
|
58
60
|
var isTypedArray = function (it) {
|
|
59
61
|
if (!isObject(it)) return false;
|
|
60
62
|
var klass = classof(it);
|
|
61
|
-
return
|
|
62
|
-
||
|
|
63
|
+
return hasOwn(TypedArrayConstructorsList, klass)
|
|
64
|
+
|| hasOwn(BigIntArrayConstructorsList, klass);
|
|
63
65
|
};
|
|
64
66
|
|
|
65
67
|
var aTypedArray = function (it) {
|
|
@@ -68,16 +70,15 @@ var aTypedArray = function (it) {
|
|
|
68
70
|
};
|
|
69
71
|
|
|
70
72
|
var aTypedArrayConstructor = function (C) {
|
|
71
|
-
if (
|
|
72
|
-
|
|
73
|
-
} return C;
|
|
73
|
+
if (isCallable(C) && (!setPrototypeOf || isPrototypeOf.call(TypedArray, C))) return C;
|
|
74
|
+
throw TypeError(tryToString(C) + ' is not a typed array constructor');
|
|
74
75
|
};
|
|
75
76
|
|
|
76
77
|
var exportTypedArrayMethod = function (KEY, property, forced) {
|
|
77
78
|
if (!DESCRIPTORS) return;
|
|
78
79
|
if (forced) for (var ARRAY in TypedArrayConstructorsList) {
|
|
79
80
|
var TypedArrayConstructor = global[ARRAY];
|
|
80
|
-
if (TypedArrayConstructor &&
|
|
81
|
+
if (TypedArrayConstructor && hasOwn(TypedArrayConstructor.prototype, KEY)) try {
|
|
81
82
|
delete TypedArrayConstructor.prototype[KEY];
|
|
82
83
|
} catch (error) { /* empty */ }
|
|
83
84
|
}
|
|
@@ -93,7 +94,7 @@ var exportTypedArrayStaticMethod = function (KEY, property, forced) {
|
|
|
93
94
|
if (setPrototypeOf) {
|
|
94
95
|
if (forced) for (ARRAY in TypedArrayConstructorsList) {
|
|
95
96
|
TypedArrayConstructor = global[ARRAY];
|
|
96
|
-
if (TypedArrayConstructor &&
|
|
97
|
+
if (TypedArrayConstructor && hasOwn(TypedArrayConstructor, KEY)) try {
|
|
97
98
|
delete TypedArrayConstructor[KEY];
|
|
98
99
|
} catch (error) { /* empty */ }
|
|
99
100
|
}
|
|
@@ -126,7 +127,7 @@ for (NAME in BigIntArrayConstructorsList) {
|
|
|
126
127
|
}
|
|
127
128
|
|
|
128
129
|
// WebKit bug - typed arrays constructors prototype is Object.prototype
|
|
129
|
-
if (!NATIVE_ARRAY_BUFFER_VIEWS ||
|
|
130
|
+
if (!NATIVE_ARRAY_BUFFER_VIEWS || !isCallable(TypedArray) || TypedArray === Function.prototype) {
|
|
130
131
|
// eslint-disable-next-line no-shadow -- safe
|
|
131
132
|
TypedArray = function TypedArray() {
|
|
132
133
|
throw TypeError('Incorrect invocation');
|
|
@@ -148,7 +149,7 @@ if (NATIVE_ARRAY_BUFFER_VIEWS && getPrototypeOf(Uint8ClampedArrayPrototype) !==
|
|
|
148
149
|
setPrototypeOf(Uint8ClampedArrayPrototype, TypedArrayPrototype);
|
|
149
150
|
}
|
|
150
151
|
|
|
151
|
-
if (DESCRIPTORS && !
|
|
152
|
+
if (DESCRIPTORS && !hasOwn(TypedArrayPrototype, TO_STRING_TAG)) {
|
|
152
153
|
TYPED_ARRAY_TAG_REQIRED = true;
|
|
153
154
|
defineProperty(TypedArrayPrototype, TO_STRING_TAG, { get: function () {
|
|
154
155
|
return isObject(this) ? this[TYPED_ARRAY_TAG] : undefined;
|
|
@@ -2,11 +2,12 @@
|
|
|
2
2
|
var global = require('../internals/global');
|
|
3
3
|
var DESCRIPTORS = require('../internals/descriptors');
|
|
4
4
|
var NATIVE_ARRAY_BUFFER = require('../internals/array-buffer-native');
|
|
5
|
+
var FunctionName = require('../internals/function-name');
|
|
5
6
|
var createNonEnumerableProperty = require('../internals/create-non-enumerable-property');
|
|
6
7
|
var redefineAll = require('../internals/redefine-all');
|
|
7
8
|
var fails = require('../internals/fails');
|
|
8
9
|
var anInstance = require('../internals/an-instance');
|
|
9
|
-
var
|
|
10
|
+
var toIntegerOrInfinity = require('../internals/to-integer-or-infinity');
|
|
10
11
|
var toLength = require('../internals/to-length');
|
|
11
12
|
var toIndex = require('../internals/to-index');
|
|
12
13
|
var IEEE754 = require('../internals/ieee754');
|
|
@@ -18,6 +19,8 @@ var arrayFill = require('../internals/array-fill');
|
|
|
18
19
|
var setToStringTag = require('../internals/set-to-string-tag');
|
|
19
20
|
var InternalStateModule = require('../internals/internal-state');
|
|
20
21
|
|
|
22
|
+
var PROPER_FUNCTION_NAME = FunctionName.PROPER;
|
|
23
|
+
var CONFIGURABLE_FUNCTION_NAME = FunctionName.CONFIGURABLE;
|
|
21
24
|
var getInternalState = InternalStateModule.get;
|
|
22
25
|
var setInternalState = InternalStateModule.set;
|
|
23
26
|
var ARRAY_BUFFER = 'ArrayBuffer';
|
|
@@ -98,7 +101,7 @@ if (!NATIVE_ARRAY_BUFFER) {
|
|
|
98
101
|
anInstance(this, $DataView, DATA_VIEW);
|
|
99
102
|
anInstance(buffer, $ArrayBuffer, DATA_VIEW);
|
|
100
103
|
var bufferLength = getInternalState(buffer).byteLength;
|
|
101
|
-
var offset =
|
|
104
|
+
var offset = toIntegerOrInfinity(byteOffset);
|
|
102
105
|
if (offset < 0 || offset > bufferLength) throw RangeError('Wrong offset');
|
|
103
106
|
byteLength = byteLength === undefined ? bufferLength - offset : toLength(byteLength);
|
|
104
107
|
if (offset + byteLength > bufferLength) throw RangeError(WRONG_LENGTH);
|
|
@@ -174,6 +177,7 @@ if (!NATIVE_ARRAY_BUFFER) {
|
|
|
174
177
|
}
|
|
175
178
|
});
|
|
176
179
|
} else {
|
|
180
|
+
var INCORRECT_ARRAY_BUFFER_NAME = PROPER_FUNCTION_NAME && NativeArrayBuffer.name !== ARRAY_BUFFER;
|
|
177
181
|
/* eslint-disable no-new -- required for testing */
|
|
178
182
|
if (!fails(function () {
|
|
179
183
|
NativeArrayBuffer(1);
|
|
@@ -183,7 +187,7 @@ if (!NATIVE_ARRAY_BUFFER) {
|
|
|
183
187
|
new NativeArrayBuffer();
|
|
184
188
|
new NativeArrayBuffer(1.5);
|
|
185
189
|
new NativeArrayBuffer(NaN);
|
|
186
|
-
return
|
|
190
|
+
return INCORRECT_ARRAY_BUFFER_NAME && !CONFIGURABLE_FUNCTION_NAME;
|
|
187
191
|
})) {
|
|
188
192
|
/* eslint-enable no-new -- required for testing */
|
|
189
193
|
$ArrayBuffer = function ArrayBuffer(length) {
|
|
@@ -197,6 +201,8 @@ if (!NATIVE_ARRAY_BUFFER) {
|
|
|
197
201
|
}
|
|
198
202
|
}
|
|
199
203
|
ArrayBufferPrototype.constructor = $ArrayBuffer;
|
|
204
|
+
} else if (INCORRECT_ARRAY_BUFFER_NAME && CONFIGURABLE_FUNCTION_NAME) {
|
|
205
|
+
createNonEnumerableProperty(NativeArrayBuffer, 'name', ARRAY_BUFFER);
|
|
200
206
|
}
|
|
201
207
|
|
|
202
208
|
// WebKit bug - the same parent prototype for typed arrays and data view
|
|
@@ -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;
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
var bind = require('../internals/function-bind-context');
|
|
3
|
+
var toObject = require('../internals/to-object');
|
|
4
|
+
var isConstructor = require('../internals/is-constructor');
|
|
5
|
+
var getAsyncIterator = require('../internals/get-async-iterator');
|
|
6
|
+
var getIterator = require('../internals/get-iterator');
|
|
7
|
+
var getIteratorMethod = require('../internals/get-iterator-method');
|
|
8
|
+
var getMethod = require('../internals/get-method');
|
|
9
|
+
var getVirtual = require('../internals/entry-virtual');
|
|
10
|
+
var getBuiltIn = require('../internals/get-built-in');
|
|
11
|
+
var wellKnownSymbol = require('../internals/well-known-symbol');
|
|
12
|
+
var AsyncFromSyncIterator = require('../internals/async-from-sync-iterator');
|
|
13
|
+
var toArray = require('../internals/async-iterator-iteration').toArray;
|
|
14
|
+
|
|
15
|
+
var ASYNC_ITERATOR = wellKnownSymbol('asyncIterator');
|
|
16
|
+
var arrayIterator = getVirtual('Array').values;
|
|
17
|
+
|
|
18
|
+
// `Array.fromAsync` method implementation
|
|
19
|
+
// https://github.com/tc39/proposal-array-from-async
|
|
20
|
+
module.exports = function fromAsync(asyncItems /* , mapfn = undefined, thisArg = undefined */) {
|
|
21
|
+
var C = this;
|
|
22
|
+
var argumentsLength = arguments.length;
|
|
23
|
+
var mapfn = argumentsLength > 1 ? arguments[1] : undefined;
|
|
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, 2);
|
|
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
|
+
});
|
|
36
|
+
};
|
package/internals/array-from.js
CHANGED
|
@@ -3,7 +3,8 @@ var bind = require('../internals/function-bind-context');
|
|
|
3
3
|
var toObject = require('../internals/to-object');
|
|
4
4
|
var callWithSafeIterationClosing = require('../internals/call-with-safe-iteration-closing');
|
|
5
5
|
var isArrayIteratorMethod = require('../internals/is-array-iterator-method');
|
|
6
|
-
var
|
|
6
|
+
var isConstructor = require('../internals/is-constructor');
|
|
7
|
+
var lengthOfArrayLike = require('../internals/length-of-array-like');
|
|
7
8
|
var createProperty = require('../internals/create-property');
|
|
8
9
|
var getIterator = require('../internals/get-iterator');
|
|
9
10
|
var getIteratorMethod = require('../internals/get-iterator-method');
|
|
@@ -12,26 +13,26 @@ var getIteratorMethod = require('../internals/get-iterator-method');
|
|
|
12
13
|
// https://tc39.es/ecma262/#sec-array.from
|
|
13
14
|
module.exports = function from(arrayLike /* , mapfn = undefined, thisArg = undefined */) {
|
|
14
15
|
var O = toObject(arrayLike);
|
|
15
|
-
var
|
|
16
|
+
var IS_CONSTRUCTOR = isConstructor(this);
|
|
16
17
|
var argumentsLength = arguments.length;
|
|
17
18
|
var mapfn = argumentsLength > 1 ? arguments[1] : undefined;
|
|
18
19
|
var mapping = mapfn !== undefined;
|
|
20
|
+
if (mapping) mapfn = bind(mapfn, argumentsLength > 2 ? arguments[2] : undefined, 2);
|
|
19
21
|
var iteratorMethod = getIteratorMethod(O);
|
|
20
22
|
var index = 0;
|
|
21
23
|
var length, result, step, iterator, next, value;
|
|
22
|
-
if (mapping) mapfn = bind(mapfn, argumentsLength > 2 ? arguments[2] : undefined, 2);
|
|
23
24
|
// if the target is not iterable or it's an array with the default iterator - use a simple case
|
|
24
|
-
if (iteratorMethod
|
|
25
|
+
if (iteratorMethod && !(this == Array && isArrayIteratorMethod(iteratorMethod))) {
|
|
25
26
|
iterator = getIterator(O, iteratorMethod);
|
|
26
27
|
next = iterator.next;
|
|
27
|
-
result = new
|
|
28
|
+
result = IS_CONSTRUCTOR ? new this() : [];
|
|
28
29
|
for (;!(step = next.call(iterator)).done; index++) {
|
|
29
30
|
value = mapping ? callWithSafeIterationClosing(iterator, mapfn, [step.value, index], true) : step.value;
|
|
30
31
|
createProperty(result, index, value);
|
|
31
32
|
}
|
|
32
33
|
} else {
|
|
33
|
-
length =
|
|
34
|
-
result = new
|
|
34
|
+
length = lengthOfArrayLike(O);
|
|
35
|
+
result = IS_CONSTRUCTOR ? new this(length) : Array(length);
|
|
35
36
|
for (;length > index; index++) {
|
|
36
37
|
value = mapping ? mapfn(O[index], index) : O[index];
|
|
37
38
|
createProperty(result, index, value);
|
|
@@ -1,8 +1,8 @@
|
|
|
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 toLength = require('../internals/to-length');
|
|
5
4
|
var toPropertyKey = require('../internals/to-property-key');
|
|
5
|
+
var lengthOfArrayLike = require('../internals/length-of-array-like');
|
|
6
6
|
var objectCreate = require('../internals/object-create');
|
|
7
7
|
var arrayFromConstructorAndList = require('../internals/array-from-constructor-and-list');
|
|
8
8
|
|
|
@@ -13,7 +13,7 @@ module.exports = function ($this, callbackfn, that, specificConstructor) {
|
|
|
13
13
|
var self = IndexedObject(O);
|
|
14
14
|
var boundFunction = bind(callbackfn, that, 3);
|
|
15
15
|
var target = objectCreate(null);
|
|
16
|
-
var length =
|
|
16
|
+
var length = lengthOfArrayLike(self);
|
|
17
17
|
var index = 0;
|
|
18
18
|
var Constructor, key, value;
|
|
19
19
|
for (;length > index; index++) {
|
|
@@ -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) {
|
|
@@ -10,7 +10,7 @@ var createMethod = function (TYPE) {
|
|
|
10
10
|
var O = toObject($this);
|
|
11
11
|
var self = IndexedObject(O);
|
|
12
12
|
var boundFunction = bind(callbackfn, that, 3);
|
|
13
|
-
var index =
|
|
13
|
+
var index = lengthOfArrayLike(self);
|
|
14
14
|
var value, result;
|
|
15
15
|
while (index-- > 0) {
|
|
16
16
|
value = self[index];
|