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
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
'use strict';
|
|
2
|
+
require('../../modules/es.string.iterator');
|
|
2
3
|
require('../../modules/es.weak-set');
|
|
3
4
|
require('../../modules/esnext.weak-set.from');
|
|
5
|
+
require('../../modules/web.dom-collections.iterator');
|
|
4
6
|
var path = require('../../internals/path');
|
|
5
7
|
|
|
6
8
|
var WeakSet = path.WeakSet;
|
package/features/weak-set/of.js
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
'use strict';
|
|
2
|
+
require('../../modules/es.string.iterator');
|
|
2
3
|
require('../../modules/es.weak-set');
|
|
3
4
|
require('../../modules/esnext.weak-set.of');
|
|
5
|
+
require('../../modules/web.dom-collections.iterator');
|
|
4
6
|
var path = require('../../internals/path');
|
|
5
7
|
|
|
6
8
|
var WeakSet = path.WeakSet;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
var wellKnownSymbol = require('../internals/well-known-symbol');
|
|
2
2
|
var create = require('../internals/object-create');
|
|
3
|
-
var
|
|
3
|
+
var createNonEnumerableProperty = require('../internals/create-non-enumerable-property');
|
|
4
4
|
|
|
5
5
|
var UNSCOPABLES = wellKnownSymbol('unscopables');
|
|
6
6
|
var ArrayPrototype = Array.prototype;
|
|
@@ -8,7 +8,7 @@ var ArrayPrototype = Array.prototype;
|
|
|
8
8
|
// Array.prototype[@@unscopables]
|
|
9
9
|
// https://tc39.github.io/ecma262/#sec-array.prototype-@@unscopables
|
|
10
10
|
if (ArrayPrototype[UNSCOPABLES] == undefined) {
|
|
11
|
-
|
|
11
|
+
createNonEnumerableProperty(ArrayPrototype, UNSCOPABLES, create(null));
|
|
12
12
|
}
|
|
13
13
|
|
|
14
14
|
// add a key to Array.prototype[@@unscopables]
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
'use strict';
|
|
2
|
-
var
|
|
2
|
+
var charAt = require('../internals/string-multibyte').charAt;
|
|
3
3
|
|
|
4
4
|
// `AdvanceStringIndex` abstract operation
|
|
5
5
|
// https://tc39.github.io/ecma262/#sec-advancestringindex
|
|
6
6
|
module.exports = function (S, index, unicode) {
|
|
7
|
-
return index + (unicode ?
|
|
7
|
+
return index + (unicode ? charAt(S, index).length : 1);
|
|
8
8
|
};
|
|
@@ -4,7 +4,7 @@ var global = require('../internals/global');
|
|
|
4
4
|
var isObject = require('../internals/is-object');
|
|
5
5
|
var has = require('../internals/has');
|
|
6
6
|
var classof = require('../internals/classof');
|
|
7
|
-
var
|
|
7
|
+
var createNonEnumerableProperty = require('../internals/create-non-enumerable-property');
|
|
8
8
|
var redefine = require('../internals/redefine');
|
|
9
9
|
var defineProperty = require('../internals/object-define-property').f;
|
|
10
10
|
var getPrototypeOf = require('../internals/object-get-prototype-of');
|
|
@@ -25,8 +25,9 @@ var isPrototypeOf = ObjectPrototype.isPrototypeOf;
|
|
|
25
25
|
|
|
26
26
|
var TO_STRING_TAG = wellKnownSymbol('toStringTag');
|
|
27
27
|
var TYPED_ARRAY_TAG = uid('TYPED_ARRAY_TAG');
|
|
28
|
-
var NATIVE_ARRAY_BUFFER = !!(global.ArrayBuffer &&
|
|
29
|
-
|
|
28
|
+
var NATIVE_ARRAY_BUFFER = !!(global.ArrayBuffer && DataView);
|
|
29
|
+
// Fixing native typed arrays in Opera Presto crashes the browser, see #595
|
|
30
|
+
var NATIVE_ARRAY_BUFFER_VIEWS = NATIVE_ARRAY_BUFFER && !!setPrototypeOf && classof(global.opera) !== 'Opera';
|
|
30
31
|
var TYPED_ARRAY_TAG_REQIRED = false;
|
|
31
32
|
var NAME;
|
|
32
33
|
|
|
@@ -139,7 +140,7 @@ if (DESCRIPTORS && !has(TypedArrayPrototype, TO_STRING_TAG)) {
|
|
|
139
140
|
return isObject(this) ? this[TYPED_ARRAY_TAG] : undefined;
|
|
140
141
|
} });
|
|
141
142
|
for (NAME in TypedArrayConstructorsList) if (global[NAME]) {
|
|
142
|
-
|
|
143
|
+
createNonEnumerableProperty(global[NAME], TYPED_ARRAY_TAG, NAME);
|
|
143
144
|
}
|
|
144
145
|
}
|
|
145
146
|
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
var global = require('../internals/global');
|
|
3
3
|
var DESCRIPTORS = require('../internals/descriptors');
|
|
4
4
|
var NATIVE_ARRAY_BUFFER = require('../internals/array-buffer-view-core').NATIVE_ARRAY_BUFFER;
|
|
5
|
-
var
|
|
5
|
+
var createNonEnumerableProperty = require('../internals/create-non-enumerable-property');
|
|
6
6
|
var redefineAll = require('../internals/redefine-all');
|
|
7
7
|
var fails = require('../internals/fails');
|
|
8
8
|
var anInstance = require('../internals/an-instance');
|
|
@@ -207,24 +207,24 @@ if (!NATIVE_ARRAY_BUFFER) {
|
|
|
207
207
|
return get(this, 1, byteOffset)[0];
|
|
208
208
|
},
|
|
209
209
|
getInt16: function getInt16(byteOffset /* , littleEndian */) {
|
|
210
|
-
var bytes = get(this, 2, byteOffset, arguments[1]);
|
|
210
|
+
var bytes = get(this, 2, byteOffset, arguments.length > 1 ? arguments[1] : undefined);
|
|
211
211
|
return (bytes[1] << 8 | bytes[0]) << 16 >> 16;
|
|
212
212
|
},
|
|
213
213
|
getUint16: function getUint16(byteOffset /* , littleEndian */) {
|
|
214
|
-
var bytes = get(this, 2, byteOffset, arguments[1]);
|
|
214
|
+
var bytes = get(this, 2, byteOffset, arguments.length > 1 ? arguments[1] : undefined);
|
|
215
215
|
return bytes[1] << 8 | bytes[0];
|
|
216
216
|
},
|
|
217
217
|
getInt32: function getInt32(byteOffset /* , littleEndian */) {
|
|
218
|
-
return unpackInt32(get(this, 4, byteOffset, arguments[1]));
|
|
218
|
+
return unpackInt32(get(this, 4, byteOffset, arguments.length > 1 ? arguments[1] : undefined));
|
|
219
219
|
},
|
|
220
220
|
getUint32: function getUint32(byteOffset /* , littleEndian */) {
|
|
221
|
-
return unpackInt32(get(this, 4, byteOffset, arguments[1])) >>> 0;
|
|
221
|
+
return unpackInt32(get(this, 4, byteOffset, arguments.length > 1 ? arguments[1] : undefined)) >>> 0;
|
|
222
222
|
},
|
|
223
223
|
getFloat32: function getFloat32(byteOffset /* , littleEndian */) {
|
|
224
|
-
return unpackIEEE754(get(this, 4, byteOffset, arguments[1]), 23);
|
|
224
|
+
return unpackIEEE754(get(this, 4, byteOffset, arguments.length > 1 ? arguments[1] : undefined), 23);
|
|
225
225
|
},
|
|
226
226
|
getFloat64: function getFloat64(byteOffset /* , littleEndian */) {
|
|
227
|
-
return unpackIEEE754(get(this, 8, byteOffset, arguments[1]), 52);
|
|
227
|
+
return unpackIEEE754(get(this, 8, byteOffset, arguments.length > 1 ? arguments[1] : undefined), 52);
|
|
228
228
|
},
|
|
229
229
|
setInt8: function setInt8(byteOffset, value) {
|
|
230
230
|
set(this, 1, byteOffset, packInt8, value);
|
|
@@ -233,22 +233,22 @@ if (!NATIVE_ARRAY_BUFFER) {
|
|
|
233
233
|
set(this, 1, byteOffset, packInt8, value);
|
|
234
234
|
},
|
|
235
235
|
setInt16: function setInt16(byteOffset, value /* , littleEndian */) {
|
|
236
|
-
set(this, 2, byteOffset, packInt16, value, arguments[2]);
|
|
236
|
+
set(this, 2, byteOffset, packInt16, value, arguments.length > 2 ? arguments[2] : undefined);
|
|
237
237
|
},
|
|
238
238
|
setUint16: function setUint16(byteOffset, value /* , littleEndian */) {
|
|
239
|
-
set(this, 2, byteOffset, packInt16, value, arguments[2]);
|
|
239
|
+
set(this, 2, byteOffset, packInt16, value, arguments.length > 2 ? arguments[2] : undefined);
|
|
240
240
|
},
|
|
241
241
|
setInt32: function setInt32(byteOffset, value /* , littleEndian */) {
|
|
242
|
-
set(this, 4, byteOffset, packInt32, value, arguments[2]);
|
|
242
|
+
set(this, 4, byteOffset, packInt32, value, arguments.length > 2 ? arguments[2] : undefined);
|
|
243
243
|
},
|
|
244
244
|
setUint32: function setUint32(byteOffset, value /* , littleEndian */) {
|
|
245
|
-
set(this, 4, byteOffset, packInt32, value, arguments[2]);
|
|
245
|
+
set(this, 4, byteOffset, packInt32, value, arguments.length > 2 ? arguments[2] : undefined);
|
|
246
246
|
},
|
|
247
247
|
setFloat32: function setFloat32(byteOffset, value /* , littleEndian */) {
|
|
248
|
-
set(this, 4, byteOffset, packFloat32, value, arguments[2]);
|
|
248
|
+
set(this, 4, byteOffset, packFloat32, value, arguments.length > 2 ? arguments[2] : undefined);
|
|
249
249
|
},
|
|
250
250
|
setFloat64: function setFloat64(byteOffset, value /* , littleEndian */) {
|
|
251
|
-
set(this, 8, byteOffset, packFloat64, value, arguments[2]);
|
|
251
|
+
set(this, 8, byteOffset, packFloat64, value, arguments.length > 2 ? arguments[2] : undefined);
|
|
252
252
|
}
|
|
253
253
|
});
|
|
254
254
|
} else {
|
|
@@ -268,7 +268,9 @@ if (!NATIVE_ARRAY_BUFFER) {
|
|
|
268
268
|
};
|
|
269
269
|
var ArrayBufferPrototype = $ArrayBuffer[PROTOTYPE] = NativeArrayBuffer[PROTOTYPE];
|
|
270
270
|
for (var keys = getOwnPropertyNames(NativeArrayBuffer), j = 0, key; keys.length > j;) {
|
|
271
|
-
if (!((key = keys[j++]) in $ArrayBuffer))
|
|
271
|
+
if (!((key = keys[j++]) in $ArrayBuffer)) {
|
|
272
|
+
createNonEnumerableProperty($ArrayBuffer, key, NativeArrayBuffer[key]);
|
|
273
|
+
}
|
|
272
274
|
}
|
|
273
275
|
ArrayBufferPrototype.constructor = $ArrayBuffer;
|
|
274
276
|
}
|
|
@@ -289,5 +291,8 @@ if (!NATIVE_ARRAY_BUFFER) {
|
|
|
289
291
|
|
|
290
292
|
setToStringTag($ArrayBuffer, ARRAY_BUFFER);
|
|
291
293
|
setToStringTag($DataView, DATA_VIEW);
|
|
292
|
-
|
|
293
|
-
exports
|
|
294
|
+
|
|
295
|
+
module.exports = {
|
|
296
|
+
ArrayBuffer: $ArrayBuffer,
|
|
297
|
+
DataView: $DataView
|
|
298
|
+
};
|
|
@@ -3,6 +3,8 @@ var toObject = require('../internals/to-object');
|
|
|
3
3
|
var toAbsoluteIndex = require('../internals/to-absolute-index');
|
|
4
4
|
var toLength = require('../internals/to-length');
|
|
5
5
|
|
|
6
|
+
var min = Math.min;
|
|
7
|
+
|
|
6
8
|
// `Array.prototype.copyWithin` method implementation
|
|
7
9
|
// https://tc39.github.io/ecma262/#sec-array.prototype.copywithin
|
|
8
10
|
module.exports = [].copyWithin || function copyWithin(target /* = 0 */, start /* = 0, end = @length */) {
|
|
@@ -11,7 +13,7 @@ module.exports = [].copyWithin || function copyWithin(target /* = 0 */, start /*
|
|
|
11
13
|
var to = toAbsoluteIndex(target, len);
|
|
12
14
|
var from = toAbsoluteIndex(start, len);
|
|
13
15
|
var end = arguments.length > 2 ? arguments[2] : undefined;
|
|
14
|
-
var count =
|
|
16
|
+
var count = min((end === undefined ? len : toAbsoluteIndex(end, len)) - from, len - to);
|
|
15
17
|
var inc = 1;
|
|
16
18
|
if (from < to && to < from + count) {
|
|
17
19
|
inc = -1;
|
|
@@ -1,12 +1,9 @@
|
|
|
1
1
|
'use strict';
|
|
2
|
-
var
|
|
2
|
+
var $forEach = require('../internals/array-iteration').forEach;
|
|
3
3
|
var sloppyArrayMethod = require('../internals/sloppy-array-method');
|
|
4
4
|
|
|
5
|
-
var internalForEach = arrayMethods(0);
|
|
6
|
-
var SLOPPY_METHOD = sloppyArrayMethod('forEach');
|
|
7
|
-
|
|
8
5
|
// `Array.prototype.forEach` method implementation
|
|
9
6
|
// https://tc39.github.io/ecma262/#sec-array.prototype.foreach
|
|
10
|
-
module.exports =
|
|
11
|
-
return
|
|
7
|
+
module.exports = sloppyArrayMethod('forEach') ? function forEach(callbackfn /* , thisArg */) {
|
|
8
|
+
return $forEach(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);
|
|
12
9
|
} : [].forEach;
|
package/internals/array-from.js
CHANGED
|
@@ -7,7 +7,7 @@ var toLength = require('../internals/to-length');
|
|
|
7
7
|
var createProperty = require('../internals/create-property');
|
|
8
8
|
var getIteratorMethod = require('../internals/get-iterator-method');
|
|
9
9
|
|
|
10
|
-
// `Array.from` method
|
|
10
|
+
// `Array.from` method implementation
|
|
11
11
|
// https://tc39.github.io/ecma262/#sec-array.from
|
|
12
12
|
module.exports = function from(arrayLike /* , mapfn = undefined, thisArg = undefined */) {
|
|
13
13
|
var O = toObject(arrayLike);
|
|
@@ -17,13 +17,14 @@ module.exports = function from(arrayLike /* , mapfn = undefined, thisArg = undef
|
|
|
17
17
|
var mapping = mapfn !== undefined;
|
|
18
18
|
var index = 0;
|
|
19
19
|
var iteratorMethod = getIteratorMethod(O);
|
|
20
|
-
var length, result, step, iterator;
|
|
20
|
+
var length, result, step, iterator, next;
|
|
21
21
|
if (mapping) mapfn = bind(mapfn, argumentsLength > 2 ? arguments[2] : undefined, 2);
|
|
22
22
|
// if the target is not iterable or it's an array with the default iterator - use a simple case
|
|
23
23
|
if (iteratorMethod != undefined && !(C == Array && isArrayIteratorMethod(iteratorMethod))) {
|
|
24
24
|
iterator = iteratorMethod.call(O);
|
|
25
|
+
next = iterator.next;
|
|
25
26
|
result = new C();
|
|
26
|
-
for (;!(step =
|
|
27
|
+
for (;!(step = next.call(iterator)).done; index++) {
|
|
27
28
|
createProperty(result, index, mapping
|
|
28
29
|
? callWithSafeIterationClosing(iterator, mapfn, [step.value, index], true)
|
|
29
30
|
: step.value
|
|
@@ -3,11 +3,7 @@ var toLength = require('../internals/to-length');
|
|
|
3
3
|
var toAbsoluteIndex = require('../internals/to-absolute-index');
|
|
4
4
|
|
|
5
5
|
// `Array.prototype.{ indexOf, includes }` methods implementation
|
|
6
|
-
|
|
7
|
-
// https://tc39.github.io/ecma262/#sec-array.prototype.indexof
|
|
8
|
-
// true -> Array#includes
|
|
9
|
-
// https://tc39.github.io/ecma262/#sec-array.prototype.includes
|
|
10
|
-
module.exports = function (IS_INCLUDES) {
|
|
6
|
+
var createMethod = function (IS_INCLUDES) {
|
|
11
7
|
return function ($this, el, fromIndex) {
|
|
12
8
|
var O = toIndexedObject($this);
|
|
13
9
|
var length = toLength(O.length);
|
|
@@ -20,8 +16,17 @@ module.exports = function (IS_INCLUDES) {
|
|
|
20
16
|
// eslint-disable-next-line no-self-compare
|
|
21
17
|
if (value != value) return true;
|
|
22
18
|
// Array#indexOf ignores holes, Array#includes - not
|
|
23
|
-
} else for (;length > index; index++)
|
|
24
|
-
if (O[index] === el) return IS_INCLUDES || index || 0;
|
|
19
|
+
} else for (;length > index; index++) {
|
|
20
|
+
if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0;
|
|
25
21
|
} return !IS_INCLUDES && -1;
|
|
26
22
|
};
|
|
27
23
|
};
|
|
24
|
+
|
|
25
|
+
module.exports = {
|
|
26
|
+
// `Array.prototype.includes` method
|
|
27
|
+
// https://tc39.github.io/ecma262/#sec-array.prototype.includes
|
|
28
|
+
includes: createMethod(true),
|
|
29
|
+
// `Array.prototype.indexOf` method
|
|
30
|
+
// https://tc39.github.io/ecma262/#sec-array.prototype.indexof
|
|
31
|
+
indexOf: createMethod(false)
|
|
32
|
+
};
|
|
@@ -4,35 +4,23 @@ var toObject = require('../internals/to-object');
|
|
|
4
4
|
var toLength = require('../internals/to-length');
|
|
5
5
|
var arraySpeciesCreate = require('../internals/array-species-create');
|
|
6
6
|
|
|
7
|
+
var push = [].push;
|
|
8
|
+
|
|
7
9
|
// `Array.prototype.{ forEach, map, filter, some, every, find, findIndex }` methods implementation
|
|
8
|
-
|
|
9
|
-
// https://tc39.github.io/ecma262/#sec-array.prototype.foreach
|
|
10
|
-
// 1 -> Array#map
|
|
11
|
-
// https://tc39.github.io/ecma262/#sec-array.prototype.map
|
|
12
|
-
// 2 -> Array#filter
|
|
13
|
-
// https://tc39.github.io/ecma262/#sec-array.prototype.filter
|
|
14
|
-
// 3 -> Array#some
|
|
15
|
-
// https://tc39.github.io/ecma262/#sec-array.prototype.some
|
|
16
|
-
// 4 -> Array#every
|
|
17
|
-
// https://tc39.github.io/ecma262/#sec-array.prototype.every
|
|
18
|
-
// 5 -> Array#find
|
|
19
|
-
// https://tc39.github.io/ecma262/#sec-array.prototype.find
|
|
20
|
-
// 6 -> Array#findIndex
|
|
21
|
-
// https://tc39.github.io/ecma262/#sec-array.prototype.findIndex
|
|
22
|
-
module.exports = function (TYPE, specificCreate) {
|
|
10
|
+
var createMethod = function (TYPE) {
|
|
23
11
|
var IS_MAP = TYPE == 1;
|
|
24
12
|
var IS_FILTER = TYPE == 2;
|
|
25
13
|
var IS_SOME = TYPE == 3;
|
|
26
14
|
var IS_EVERY = TYPE == 4;
|
|
27
15
|
var IS_FIND_INDEX = TYPE == 6;
|
|
28
16
|
var NO_HOLES = TYPE == 5 || IS_FIND_INDEX;
|
|
29
|
-
|
|
30
|
-
return function ($this, callbackfn, that) {
|
|
17
|
+
return function ($this, callbackfn, that, specificCreate) {
|
|
31
18
|
var O = toObject($this);
|
|
32
19
|
var self = IndexedObject(O);
|
|
33
20
|
var boundFunction = bind(callbackfn, that, 3);
|
|
34
21
|
var length = toLength(self.length);
|
|
35
22
|
var index = 0;
|
|
23
|
+
var create = specificCreate || arraySpeciesCreate;
|
|
36
24
|
var target = IS_MAP ? create($this, length) : IS_FILTER ? create($this, 0) : undefined;
|
|
37
25
|
var value, result;
|
|
38
26
|
for (;length > index; index++) if (NO_HOLES || index in self) {
|
|
@@ -44,10 +32,34 @@ module.exports = function (TYPE, specificCreate) {
|
|
|
44
32
|
case 3: return true; // some
|
|
45
33
|
case 5: return value; // find
|
|
46
34
|
case 6: return index; // findIndex
|
|
47
|
-
case 2:
|
|
35
|
+
case 2: push.call(target, value); // filter
|
|
48
36
|
} else if (IS_EVERY) return false; // every
|
|
49
37
|
}
|
|
50
38
|
}
|
|
51
39
|
return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : target;
|
|
52
40
|
};
|
|
53
41
|
};
|
|
42
|
+
|
|
43
|
+
module.exports = {
|
|
44
|
+
// `Array.prototype.forEach` method
|
|
45
|
+
// https://tc39.github.io/ecma262/#sec-array.prototype.foreach
|
|
46
|
+
forEach: createMethod(0),
|
|
47
|
+
// `Array.prototype.map` method
|
|
48
|
+
// https://tc39.github.io/ecma262/#sec-array.prototype.map
|
|
49
|
+
map: createMethod(1),
|
|
50
|
+
// `Array.prototype.filter` method
|
|
51
|
+
// https://tc39.github.io/ecma262/#sec-array.prototype.filter
|
|
52
|
+
filter: createMethod(2),
|
|
53
|
+
// `Array.prototype.some` method
|
|
54
|
+
// https://tc39.github.io/ecma262/#sec-array.prototype.some
|
|
55
|
+
some: createMethod(3),
|
|
56
|
+
// `Array.prototype.every` method
|
|
57
|
+
// https://tc39.github.io/ecma262/#sec-array.prototype.every
|
|
58
|
+
every: createMethod(4),
|
|
59
|
+
// `Array.prototype.find` method
|
|
60
|
+
// https://tc39.github.io/ecma262/#sec-array.prototype.find
|
|
61
|
+
find: createMethod(5),
|
|
62
|
+
// `Array.prototype.findIndex` method
|
|
63
|
+
// https://tc39.github.io/ecma262/#sec-array.prototype.findIndex
|
|
64
|
+
findIndex: createMethod(6)
|
|
65
|
+
};
|
|
@@ -4,6 +4,7 @@ var toInteger = require('../internals/to-integer');
|
|
|
4
4
|
var toLength = require('../internals/to-length');
|
|
5
5
|
var sloppyArrayMethod = require('../internals/sloppy-array-method');
|
|
6
6
|
|
|
7
|
+
var min = Math.min;
|
|
7
8
|
var nativeLastIndexOf = [].lastIndexOf;
|
|
8
9
|
var NEGATIVE_ZERO = !!nativeLastIndexOf && 1 / [1].lastIndexOf(1, -0) < 0;
|
|
9
10
|
var SLOPPY_METHOD = sloppyArrayMethod('lastIndexOf');
|
|
@@ -16,8 +17,8 @@ module.exports = (NEGATIVE_ZERO || SLOPPY_METHOD) ? function lastIndexOf(searchE
|
|
|
16
17
|
var O = toIndexedObject(this);
|
|
17
18
|
var length = toLength(O.length);
|
|
18
19
|
var index = length - 1;
|
|
19
|
-
if (arguments.length > 1) index =
|
|
20
|
+
if (arguments.length > 1) index = min(index, toInteger(arguments[1]));
|
|
20
21
|
if (index < 0) index = length + index;
|
|
21
|
-
for (;index >= 0; index--) if (index in O
|
|
22
|
+
for (;index >= 0; index--) if (index in O && O[index] === searchElement) return index || 0;
|
|
22
23
|
return -1;
|
|
23
24
|
} : nativeLastIndexOf;
|
|
@@ -4,28 +4,37 @@ var IndexedObject = require('../internals/indexed-object');
|
|
|
4
4
|
var toLength = require('../internals/to-length');
|
|
5
5
|
|
|
6
6
|
// `Array.prototype.{ reduce, reduceRight }` methods implementation
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
7
|
+
var createMethod = function (IS_RIGHT) {
|
|
8
|
+
return function (that, callbackfn, argumentsLength, memo) {
|
|
9
|
+
aFunction(callbackfn);
|
|
10
|
+
var O = toObject(that);
|
|
11
|
+
var self = IndexedObject(O);
|
|
12
|
+
var length = toLength(O.length);
|
|
13
|
+
var index = IS_RIGHT ? length - 1 : 0;
|
|
14
|
+
var i = IS_RIGHT ? -1 : 1;
|
|
15
|
+
if (argumentsLength < 2) while (true) {
|
|
16
|
+
if (index in self) {
|
|
17
|
+
memo = self[index];
|
|
18
|
+
index += i;
|
|
19
|
+
break;
|
|
20
|
+
}
|
|
19
21
|
index += i;
|
|
20
|
-
|
|
22
|
+
if (IS_RIGHT ? index < 0 : length <= index) {
|
|
23
|
+
throw TypeError('Reduce of empty array with no initial value');
|
|
24
|
+
}
|
|
21
25
|
}
|
|
22
|
-
index += i
|
|
23
|
-
|
|
24
|
-
throw TypeError('Reduce of empty array with no initial value');
|
|
26
|
+
for (;IS_RIGHT ? index >= 0 : length > index; index += i) if (index in self) {
|
|
27
|
+
memo = callbackfn(memo, self[index], index, O);
|
|
25
28
|
}
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
29
|
+
return memo;
|
|
30
|
+
};
|
|
31
|
+
};
|
|
32
|
+
|
|
33
|
+
module.exports = {
|
|
34
|
+
// `Array.prototype.reduce` method
|
|
35
|
+
// https://tc39.github.io/ecma262/#sec-array.prototype.reduce
|
|
36
|
+
left: createMethod(false),
|
|
37
|
+
// `Array.prototype.reduceRight` method
|
|
38
|
+
// https://tc39.github.io/ecma262/#sec-array.prototype.reduceright
|
|
39
|
+
right: createMethod(true)
|
|
31
40
|
};
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
// https://github.com/tc39/proposal-iterator-helpers
|
|
3
|
+
var aFunction = require('../internals/a-function');
|
|
4
|
+
var anObject = require('../internals/an-object');
|
|
5
|
+
var getBuiltIn = require('../internals/get-built-in');
|
|
6
|
+
|
|
7
|
+
var Promise = getBuiltIn('Promise');
|
|
8
|
+
var push = [].push;
|
|
9
|
+
|
|
10
|
+
var createMethod = function (TYPE) {
|
|
11
|
+
var IS_TO_ARRAY = TYPE == 0;
|
|
12
|
+
var IS_FOR_EACH = TYPE == 1;
|
|
13
|
+
var IS_EVERY = TYPE == 2;
|
|
14
|
+
var IS_SOME = TYPE == 3;
|
|
15
|
+
return function (iterator, fn) {
|
|
16
|
+
anObject(iterator);
|
|
17
|
+
var next = aFunction(iterator.next);
|
|
18
|
+
var array = IS_TO_ARRAY ? [] : undefined;
|
|
19
|
+
if (!IS_TO_ARRAY) aFunction(fn);
|
|
20
|
+
|
|
21
|
+
return new Promise(function (resolve, reject) {
|
|
22
|
+
var loop = function () {
|
|
23
|
+
try {
|
|
24
|
+
Promise.resolve(anObject(next.call(iterator))).then(function (step) {
|
|
25
|
+
try {
|
|
26
|
+
if (anObject(step).done) {
|
|
27
|
+
resolve(IS_TO_ARRAY ? array : IS_SOME ? false : IS_EVERY || undefined);
|
|
28
|
+
} else {
|
|
29
|
+
var value = step.value;
|
|
30
|
+
if (IS_TO_ARRAY) {
|
|
31
|
+
push.call(array, value);
|
|
32
|
+
loop();
|
|
33
|
+
} else {
|
|
34
|
+
Promise.resolve(fn(value)).then(function (result) {
|
|
35
|
+
if (IS_FOR_EACH) {
|
|
36
|
+
loop();
|
|
37
|
+
} else if (IS_EVERY) {
|
|
38
|
+
result ? loop() : resolve(false);
|
|
39
|
+
} else {
|
|
40
|
+
result ? resolve(IS_SOME || value) : loop();
|
|
41
|
+
}
|
|
42
|
+
}, reject);
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
} catch (err) { reject(err); }
|
|
46
|
+
}, reject);
|
|
47
|
+
} catch (error) { reject(error); }
|
|
48
|
+
};
|
|
49
|
+
|
|
50
|
+
loop();
|
|
51
|
+
});
|
|
52
|
+
};
|
|
53
|
+
};
|
|
54
|
+
|
|
55
|
+
module.exports = {
|
|
56
|
+
toArray: createMethod(0),
|
|
57
|
+
forEach: createMethod(1),
|
|
58
|
+
every: createMethod(2),
|
|
59
|
+
some: createMethod(3),
|
|
60
|
+
find: createMethod(4)
|
|
61
|
+
};
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
var global = require('../internals/global');
|
|
2
|
+
var shared = require('../internals/shared-store');
|
|
3
|
+
var getPrototypeOf = require('../internals/object-get-prototype-of');
|
|
4
|
+
var has = require('../internals/has');
|
|
5
|
+
var createNonEnumerableProperty = require('../internals/create-non-enumerable-property');
|
|
6
|
+
var wellKnownSymbol = require('../internals/well-known-symbol');
|
|
7
|
+
var IS_PURE = require('../internals/is-pure');
|
|
8
|
+
|
|
9
|
+
var USE_FUNCTION_CONSTRUCTOR = 'USE_FUNCTION_CONSTRUCTOR';
|
|
10
|
+
var ASYNC_ITERATOR = wellKnownSymbol('asyncIterator');
|
|
11
|
+
var AsyncIterator = global.AsyncIterator;
|
|
12
|
+
var PassedAsyncIteratorPrototype = shared.AsyncIteratorPrototype;
|
|
13
|
+
var AsyncIteratorPrototype, prototype;
|
|
14
|
+
|
|
15
|
+
if (!IS_PURE) {
|
|
16
|
+
if (PassedAsyncIteratorPrototype) {
|
|
17
|
+
AsyncIteratorPrototype = PassedAsyncIteratorPrototype;
|
|
18
|
+
} else if (typeof AsyncIterator == 'function') {
|
|
19
|
+
AsyncIteratorPrototype = AsyncIterator.prototype;
|
|
20
|
+
} else if (shared[USE_FUNCTION_CONSTRUCTOR] || global[USE_FUNCTION_CONSTRUCTOR]) {
|
|
21
|
+
try {
|
|
22
|
+
// eslint-disable-next-line no-new-func
|
|
23
|
+
prototype = getPrototypeOf(getPrototypeOf(getPrototypeOf(Function('return async function*(){}()')())));
|
|
24
|
+
if (getPrototypeOf(prototype) === Object.prototype) AsyncIteratorPrototype = prototype;
|
|
25
|
+
} catch (error) { /* empty */ }
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
if (!AsyncIteratorPrototype) AsyncIteratorPrototype = {};
|
|
30
|
+
|
|
31
|
+
if (!has(AsyncIteratorPrototype, ASYNC_ITERATOR)) {
|
|
32
|
+
createNonEnumerableProperty(AsyncIteratorPrototype, ASYNC_ITERATOR, function () {
|
|
33
|
+
return this;
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
module.exports = AsyncIteratorPrototype;
|
|
@@ -7,8 +7,10 @@ module.exports = function (/* ...elements */) {
|
|
|
7
7
|
var collection = anObject(this);
|
|
8
8
|
var remover = aFunction(collection['delete']);
|
|
9
9
|
var allDeleted = true;
|
|
10
|
+
var wasDeleted;
|
|
10
11
|
for (var k = 0, len = arguments.length; k < len; k++) {
|
|
11
|
-
|
|
12
|
+
wasDeleted = remover.call(collection, arguments[k]);
|
|
13
|
+
allDeleted = allDeleted && wasDeleted;
|
|
12
14
|
}
|
|
13
15
|
return !!allDeleted;
|
|
14
16
|
};
|
|
@@ -5,7 +5,8 @@ var bind = require('../internals/bind-context');
|
|
|
5
5
|
var iterate = require('../internals/iterate');
|
|
6
6
|
|
|
7
7
|
module.exports = function from(source /* , mapFn, thisArg */) {
|
|
8
|
-
var
|
|
8
|
+
var length = arguments.length;
|
|
9
|
+
var mapFn = length > 1 ? arguments[1] : undefined;
|
|
9
10
|
var mapping, A, n, boundFunction;
|
|
10
11
|
aFunction(this);
|
|
11
12
|
mapping = mapFn !== undefined;
|
|
@@ -14,7 +15,7 @@ module.exports = function from(source /* , mapFn, thisArg */) {
|
|
|
14
15
|
A = [];
|
|
15
16
|
if (mapping) {
|
|
16
17
|
n = 0;
|
|
17
|
-
boundFunction = bind(mapFn, arguments[2], 2);
|
|
18
|
+
boundFunction = bind(mapFn, length > 2 ? arguments[2] : undefined, 2);
|
|
18
19
|
iterate(source, function (nextItem) {
|
|
19
20
|
A.push(boundFunction(nextItem, n++));
|
|
20
21
|
});
|
|
@@ -5,14 +5,14 @@ var anObject = require('../internals/an-object');
|
|
|
5
5
|
var isObject = require('../internals/is-object');
|
|
6
6
|
var anInstance = require('../internals/an-instance');
|
|
7
7
|
var iterate = require('../internals/iterate');
|
|
8
|
-
var
|
|
8
|
+
var ArrayIterationModule = require('../internals/array-iteration');
|
|
9
9
|
var $has = require('../internals/has');
|
|
10
10
|
var InternalStateModule = require('../internals/internal-state');
|
|
11
11
|
|
|
12
12
|
var setInternalState = InternalStateModule.set;
|
|
13
13
|
var internalStateGetterFor = InternalStateModule.getterFor;
|
|
14
|
-
var
|
|
15
|
-
var
|
|
14
|
+
var find = ArrayIterationModule.find;
|
|
15
|
+
var findIndex = ArrayIterationModule.findIndex;
|
|
16
16
|
var id = 0;
|
|
17
17
|
|
|
18
18
|
// fallback for uncaught frozen keys
|
|
@@ -25,7 +25,7 @@ var UncaughtFrozenStore = function () {
|
|
|
25
25
|
};
|
|
26
26
|
|
|
27
27
|
var findUncaughtFrozen = function (store, key) {
|
|
28
|
-
return
|
|
28
|
+
return find(store.entries, function (it) {
|
|
29
29
|
return it[0] === key;
|
|
30
30
|
});
|
|
31
31
|
};
|
|
@@ -44,7 +44,7 @@ UncaughtFrozenStore.prototype = {
|
|
|
44
44
|
else this.entries.push([key, value]);
|
|
45
45
|
},
|
|
46
46
|
'delete': function (key) {
|
|
47
|
-
var index =
|
|
47
|
+
var index = findIndex(this.entries, function (it) {
|
|
48
48
|
return it[0] === key;
|
|
49
49
|
});
|
|
50
50
|
if (~index) this.entries.splice(index, 1);
|