core-js 3.23.1 → 3.23.4
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/internals/array-buffer-view-core.js +14 -4
- package/internals/async-iterator-create-proxy.js +5 -3
- package/internals/async-iterator-iteration.js +5 -3
- package/internals/define-built-in.js +4 -2
- package/internals/get-iterator-direct.js +9 -0
- package/internals/is-big-int-array.js +8 -0
- package/internals/iterate.js +5 -2
- package/internals/iterator-create-proxy.js +5 -3
- package/internals/make-built-in.js +2 -1
- package/internals/map-emplace.js +11 -5
- package/internals/regexp-exec.js +1 -1
- package/internals/shared.js +2 -2
- package/internals/typed-array-constructor.js +2 -2
- package/internals/typed-array-species-constructor.js +2 -2
- package/modules/es.regexp.constructor.js +1 -1
- package/modules/es.typed-array.reduce-right.js +1 -1
- package/modules/esnext.array.to-spliced.js +31 -6
- package/modules/esnext.async-iterator.as-indexed-pairs.js +2 -2
- package/modules/esnext.async-iterator.drop.js +2 -2
- package/modules/esnext.async-iterator.filter.js +2 -2
- package/modules/esnext.async-iterator.flat-map.js +2 -2
- package/modules/esnext.async-iterator.from.js +2 -1
- package/modules/esnext.async-iterator.map.js +2 -2
- package/modules/esnext.async-iterator.reduce.js +4 -2
- package/modules/esnext.async-iterator.take.js +2 -3
- package/modules/esnext.iterator.as-indexed-pairs.js +2 -2
- package/modules/esnext.iterator.drop.js +2 -2
- package/modules/esnext.iterator.every.js +4 -4
- package/modules/esnext.iterator.filter.js +2 -2
- package/modules/esnext.iterator.find.js +4 -4
- package/modules/esnext.iterator.flat-map.js +2 -2
- package/modules/esnext.iterator.for-each.js +2 -2
- package/modules/esnext.iterator.from.js +2 -1
- package/modules/esnext.iterator.map.js +2 -2
- package/modules/esnext.iterator.reduce.js +4 -4
- package/modules/esnext.iterator.some.js +4 -4
- package/modules/esnext.iterator.take.js +2 -2
- package/modules/esnext.iterator.to-array.js +2 -2
- package/modules/esnext.math.deg-per-rad.js +2 -4
- package/modules/esnext.math.rad-per-deg.js +2 -4
- package/modules/esnext.typed-array.to-reversed.js +2 -2
- package/modules/esnext.typed-array.to-sorted.js +2 -2
- package/modules/esnext.typed-array.to-spliced.js +53 -6
- package/modules/esnext.typed-array.with.js +5 -7
- package/modules/web.dom-exception.stack.js +11 -1
- package/modules/web.structured-clone.js +8 -4
- package/package.json +1 -1
- package/internals/array-to-spliced.js +0 -36
|
@@ -15,7 +15,10 @@ var getPrototypeOf = require('../internals/object-get-prototype-of');
|
|
|
15
15
|
var setPrototypeOf = require('../internals/object-set-prototype-of');
|
|
16
16
|
var wellKnownSymbol = require('../internals/well-known-symbol');
|
|
17
17
|
var uid = require('../internals/uid');
|
|
18
|
+
var InternalStateModule = require('../internals/internal-state');
|
|
18
19
|
|
|
20
|
+
var enforceInternalState = InternalStateModule.enforce;
|
|
21
|
+
var getInternalState = InternalStateModule.get;
|
|
19
22
|
var Int8Array = global.Int8Array;
|
|
20
23
|
var Int8ArrayPrototype = Int8Array && Int8Array.prototype;
|
|
21
24
|
var Uint8ClampedArray = global.Uint8ClampedArray;
|
|
@@ -27,7 +30,7 @@ var TypeError = global.TypeError;
|
|
|
27
30
|
|
|
28
31
|
var TO_STRING_TAG = wellKnownSymbol('toStringTag');
|
|
29
32
|
var TYPED_ARRAY_TAG = uid('TYPED_ARRAY_TAG');
|
|
30
|
-
var TYPED_ARRAY_CONSTRUCTOR =
|
|
33
|
+
var TYPED_ARRAY_CONSTRUCTOR = 'TypedArrayConstructor';
|
|
31
34
|
// Fixing native typed arrays in Opera Presto crashes the browser, see #595
|
|
32
35
|
var NATIVE_ARRAY_BUFFER_VIEWS = NATIVE_ARRAY_BUFFER && !!setPrototypeOf && classof(global.opera) !== 'Opera';
|
|
33
36
|
var TYPED_ARRAY_TAG_REQUIRED = false;
|
|
@@ -58,6 +61,13 @@ var isView = function isView(it) {
|
|
|
58
61
|
|| hasOwn(BigIntArrayConstructorsList, klass);
|
|
59
62
|
};
|
|
60
63
|
|
|
64
|
+
var getTypedArrayConstructor = function (it) {
|
|
65
|
+
var proto = getPrototypeOf(it);
|
|
66
|
+
if (!isObject(proto)) return;
|
|
67
|
+
var state = getInternalState(proto);
|
|
68
|
+
return (state && hasOwn(state, TYPED_ARRAY_CONSTRUCTOR)) ? state[TYPED_ARRAY_CONSTRUCTOR] : getTypedArrayConstructor(proto);
|
|
69
|
+
};
|
|
70
|
+
|
|
61
71
|
var isTypedArray = function (it) {
|
|
62
72
|
if (!isObject(it)) return false;
|
|
63
73
|
var klass = classof(it);
|
|
@@ -122,14 +132,14 @@ var exportTypedArrayStaticMethod = function (KEY, property, forced) {
|
|
|
122
132
|
for (NAME in TypedArrayConstructorsList) {
|
|
123
133
|
Constructor = global[NAME];
|
|
124
134
|
Prototype = Constructor && Constructor.prototype;
|
|
125
|
-
if (Prototype)
|
|
135
|
+
if (Prototype) enforceInternalState(Prototype)[TYPED_ARRAY_CONSTRUCTOR] = Constructor;
|
|
126
136
|
else NATIVE_ARRAY_BUFFER_VIEWS = false;
|
|
127
137
|
}
|
|
128
138
|
|
|
129
139
|
for (NAME in BigIntArrayConstructorsList) {
|
|
130
140
|
Constructor = global[NAME];
|
|
131
141
|
Prototype = Constructor && Constructor.prototype;
|
|
132
|
-
if (Prototype)
|
|
142
|
+
if (Prototype) enforceInternalState(Prototype)[TYPED_ARRAY_CONSTRUCTOR] = Constructor;
|
|
133
143
|
}
|
|
134
144
|
|
|
135
145
|
// WebKit bug - typed arrays constructors prototype is Object.prototype
|
|
@@ -167,12 +177,12 @@ if (DESCRIPTORS && !hasOwn(TypedArrayPrototype, TO_STRING_TAG)) {
|
|
|
167
177
|
|
|
168
178
|
module.exports = {
|
|
169
179
|
NATIVE_ARRAY_BUFFER_VIEWS: NATIVE_ARRAY_BUFFER_VIEWS,
|
|
170
|
-
TYPED_ARRAY_CONSTRUCTOR: TYPED_ARRAY_CONSTRUCTOR,
|
|
171
180
|
TYPED_ARRAY_TAG: TYPED_ARRAY_TAG_REQUIRED && TYPED_ARRAY_TAG,
|
|
172
181
|
aTypedArray: aTypedArray,
|
|
173
182
|
aTypedArrayConstructor: aTypedArrayConstructor,
|
|
174
183
|
exportTypedArrayMethod: exportTypedArrayMethod,
|
|
175
184
|
exportTypedArrayStaticMethod: exportTypedArrayStaticMethod,
|
|
185
|
+
getTypedArrayConstructor: getTypedArrayConstructor,
|
|
176
186
|
isView: isView,
|
|
177
187
|
isTypedArray: isTypedArray,
|
|
178
188
|
TypedArray: TypedArray,
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
var call = require('../internals/function-call');
|
|
3
|
-
var aCallable = require('../internals/a-callable');
|
|
4
3
|
var anObject = require('../internals/an-object');
|
|
5
4
|
var create = require('../internals/object-create');
|
|
6
5
|
var createNonEnumerableProperty = require('../internals/create-non-enumerable-property');
|
|
@@ -20,9 +19,12 @@ var getInternalState = InternalStateModule.getterFor(ASYNC_ITERATOR_PROXY);
|
|
|
20
19
|
var TO_STRING_TAG = wellKnownSymbol('toStringTag');
|
|
21
20
|
|
|
22
21
|
module.exports = function (nextHandler, IS_ITERATOR) {
|
|
23
|
-
var AsyncIteratorProxy = function AsyncIterator(state) {
|
|
22
|
+
var AsyncIteratorProxy = function AsyncIterator(record, state) {
|
|
23
|
+
if (state) {
|
|
24
|
+
state.iterator = record.iterator;
|
|
25
|
+
state.next = record.next;
|
|
26
|
+
} else state = record;
|
|
24
27
|
state.type = ASYNC_ITERATOR_PROXY;
|
|
25
|
-
state.next = aCallable(state.iterator.next);
|
|
26
28
|
state.done = false;
|
|
27
29
|
state.ignoreArgument = !IS_ITERATOR;
|
|
28
30
|
setInternalState(this, state);
|
|
@@ -6,6 +6,7 @@ var aCallable = require('../internals/a-callable');
|
|
|
6
6
|
var anObject = require('../internals/an-object');
|
|
7
7
|
var doesNotExceedSafeInteger = require('../internals/does-not-exceed-safe-integer');
|
|
8
8
|
var getBuiltIn = require('../internals/get-built-in');
|
|
9
|
+
var getIteratorDirect = require('../internals/get-iterator-direct');
|
|
9
10
|
var getMethod = require('../internals/get-method');
|
|
10
11
|
|
|
11
12
|
var createMethod = function (TYPE) {
|
|
@@ -13,10 +14,11 @@ var createMethod = function (TYPE) {
|
|
|
13
14
|
var IS_FOR_EACH = TYPE == 1;
|
|
14
15
|
var IS_EVERY = TYPE == 2;
|
|
15
16
|
var IS_SOME = TYPE == 3;
|
|
16
|
-
return function (
|
|
17
|
-
|
|
17
|
+
return function (object, fn, target) {
|
|
18
|
+
var record = getIteratorDirect(object);
|
|
18
19
|
var Promise = getBuiltIn('Promise');
|
|
19
|
-
var
|
|
20
|
+
var iterator = record.iterator;
|
|
21
|
+
var next = record.next;
|
|
20
22
|
var index = 0;
|
|
21
23
|
var MAPPING = fn !== undefined;
|
|
22
24
|
if (MAPPING || !IS_TO_ARRAY) aCallable(fn);
|
|
@@ -12,8 +12,10 @@ module.exports = function (O, key, value, options) {
|
|
|
12
12
|
if (simple) O[key] = value;
|
|
13
13
|
else defineGlobalProperty(key, value);
|
|
14
14
|
} else {
|
|
15
|
-
|
|
16
|
-
|
|
15
|
+
try {
|
|
16
|
+
if (!options.unsafe) delete O[key];
|
|
17
|
+
else if (O[key]) simple = true;
|
|
18
|
+
} catch (error) { /* empty */ }
|
|
17
19
|
if (simple) O[key] = value;
|
|
18
20
|
else definePropertyModule.f(O, key, {
|
|
19
21
|
value: value,
|
package/internals/iterate.js
CHANGED
|
@@ -21,6 +21,7 @@ var ResultPrototype = Result.prototype;
|
|
|
21
21
|
module.exports = function (iterable, unboundFunction, options) {
|
|
22
22
|
var that = options && options.that;
|
|
23
23
|
var AS_ENTRIES = !!(options && options.AS_ENTRIES);
|
|
24
|
+
var IS_RECORD = !!(options && options.IS_RECORD);
|
|
24
25
|
var IS_ITERATOR = !!(options && options.IS_ITERATOR);
|
|
25
26
|
var INTERRUPTED = !!(options && options.INTERRUPTED);
|
|
26
27
|
var fn = bind(unboundFunction, that);
|
|
@@ -38,7 +39,9 @@ module.exports = function (iterable, unboundFunction, options) {
|
|
|
38
39
|
} return INTERRUPTED ? fn(value, stop) : fn(value);
|
|
39
40
|
};
|
|
40
41
|
|
|
41
|
-
if (
|
|
42
|
+
if (IS_RECORD) {
|
|
43
|
+
iterator = iterable.iterator;
|
|
44
|
+
} else if (IS_ITERATOR) {
|
|
42
45
|
iterator = iterable;
|
|
43
46
|
} else {
|
|
44
47
|
iterFn = getIteratorMethod(iterable);
|
|
@@ -53,7 +56,7 @@ module.exports = function (iterable, unboundFunction, options) {
|
|
|
53
56
|
iterator = getIterator(iterable, iterFn);
|
|
54
57
|
}
|
|
55
58
|
|
|
56
|
-
next = iterator.next;
|
|
59
|
+
next = IS_RECORD ? iterable.next : iterator.next;
|
|
57
60
|
while (!(step = call(next, iterator)).done) {
|
|
58
61
|
try {
|
|
59
62
|
result = callFn(step.value);
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
var call = require('../internals/function-call');
|
|
3
|
-
var aCallable = require('../internals/a-callable');
|
|
4
3
|
var anObject = require('../internals/an-object');
|
|
5
4
|
var create = require('../internals/object-create');
|
|
6
5
|
var createNonEnumerableProperty = require('../internals/create-non-enumerable-property');
|
|
@@ -17,9 +16,12 @@ var getInternalState = InternalStateModule.getterFor(ITERATOR_PROXY);
|
|
|
17
16
|
var TO_STRING_TAG = wellKnownSymbol('toStringTag');
|
|
18
17
|
|
|
19
18
|
module.exports = function (nextHandler, IS_ITERATOR) {
|
|
20
|
-
var IteratorProxy = function Iterator(state) {
|
|
19
|
+
var IteratorProxy = function Iterator(record, state) {
|
|
20
|
+
if (state) {
|
|
21
|
+
state.iterator = record.iterator;
|
|
22
|
+
state.next = record.next;
|
|
23
|
+
} else state = record;
|
|
21
24
|
state.type = ITERATOR_PROXY;
|
|
22
|
-
state.next = aCallable(state.iterator.next);
|
|
23
25
|
state.done = false;
|
|
24
26
|
state.ignoreArg = !IS_ITERATOR;
|
|
25
27
|
setInternalState(this, state);
|
|
@@ -24,7 +24,8 @@ var makeBuiltIn = module.exports = function (value, name, options) {
|
|
|
24
24
|
if (options && options.getter) name = 'get ' + name;
|
|
25
25
|
if (options && options.setter) name = 'set ' + name;
|
|
26
26
|
if (!hasOwn(value, 'name') || (CONFIGURABLE_FUNCTION_NAME && value.name !== name)) {
|
|
27
|
-
defineProperty(value, 'name', { value: name, configurable: true });
|
|
27
|
+
if (DESCRIPTORS) defineProperty(value, 'name', { value: name, configurable: true });
|
|
28
|
+
else value.name = name;
|
|
28
29
|
}
|
|
29
30
|
if (CONFIGURABLE_LENGTH && options && hasOwn(options, 'arity') && value.length !== options.arity) {
|
|
30
31
|
defineProperty(value, 'length', { value: options.arity });
|
package/internals/map-emplace.js
CHANGED
|
@@ -10,9 +10,15 @@ module.exports = function emplace(key, handler) {
|
|
|
10
10
|
var get = aCallable(map.get);
|
|
11
11
|
var has = aCallable(map.has);
|
|
12
12
|
var set = aCallable(map.set);
|
|
13
|
-
var value
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
13
|
+
var value, inserted;
|
|
14
|
+
if (call(has, map, key)) {
|
|
15
|
+
value = call(get, map, key);
|
|
16
|
+
if ('update' in handler) {
|
|
17
|
+
value = handler.update(value, key, map);
|
|
18
|
+
call(set, map, key, value);
|
|
19
|
+
} return value;
|
|
20
|
+
}
|
|
21
|
+
inserted = handler.insert(key, map);
|
|
22
|
+
call(set, map, key, inserted);
|
|
23
|
+
return inserted;
|
|
18
24
|
};
|
package/internals/regexp-exec.js
CHANGED
|
@@ -94,7 +94,7 @@ if (PATCH) {
|
|
|
94
94
|
}
|
|
95
95
|
if (NPCG_INCLUDED && match && match.length > 1) {
|
|
96
96
|
// Fix browsers whose `exec` methods don't consistently return `undefined`
|
|
97
|
-
// for NPCG, like IE8. NOTE: This doesn' work for /(.?)?/
|
|
97
|
+
// for NPCG, like IE8. NOTE: This doesn't work for /(.?)?/
|
|
98
98
|
call(nativeReplace, match[0], reCopy, function () {
|
|
99
99
|
for (i = 1; i < arguments.length - 2; i++) {
|
|
100
100
|
if (arguments[i] === undefined) match[i] = undefined;
|
package/internals/shared.js
CHANGED
|
@@ -4,9 +4,9 @@ var store = require('../internals/shared-store');
|
|
|
4
4
|
(module.exports = function (key, value) {
|
|
5
5
|
return store[key] || (store[key] = value !== undefined ? value : {});
|
|
6
6
|
})('versions', []).push({
|
|
7
|
-
version: '3.23.
|
|
7
|
+
version: '3.23.4',
|
|
8
8
|
mode: IS_PURE ? 'pure' : 'global',
|
|
9
9
|
copyright: '© 2014-2022 Denis Pushkarev (zloirock.ru)',
|
|
10
|
-
license: 'https://github.com/zloirock/core-js/blob/v3.23.
|
|
10
|
+
license: 'https://github.com/zloirock/core-js/blob/v3.23.4/LICENSE',
|
|
11
11
|
source: 'https://github.com/zloirock/core-js'
|
|
12
12
|
});
|
|
@@ -32,6 +32,7 @@ var inheritIfRequired = require('../internals/inherit-if-required');
|
|
|
32
32
|
|
|
33
33
|
var getInternalState = InternalStateModule.get;
|
|
34
34
|
var setInternalState = InternalStateModule.set;
|
|
35
|
+
var enforceInternalState = InternalStateModule.enforce;
|
|
35
36
|
var nativeDefineProperty = definePropertyModule.f;
|
|
36
37
|
var nativeGetOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;
|
|
37
38
|
var round = Math.round;
|
|
@@ -40,7 +41,6 @@ var ArrayBuffer = ArrayBufferModule.ArrayBuffer;
|
|
|
40
41
|
var ArrayBufferPrototype = ArrayBuffer.prototype;
|
|
41
42
|
var DataView = ArrayBufferModule.DataView;
|
|
42
43
|
var NATIVE_ARRAY_BUFFER_VIEWS = ArrayBufferViewCore.NATIVE_ARRAY_BUFFER_VIEWS;
|
|
43
|
-
var TYPED_ARRAY_CONSTRUCTOR = ArrayBufferViewCore.TYPED_ARRAY_CONSTRUCTOR;
|
|
44
44
|
var TYPED_ARRAY_TAG = ArrayBufferViewCore.TYPED_ARRAY_TAG;
|
|
45
45
|
var TypedArray = ArrayBufferViewCore.TypedArray;
|
|
46
46
|
var TypedArrayPrototype = ArrayBufferViewCore.TypedArrayPrototype;
|
|
@@ -217,7 +217,7 @@ if (DESCRIPTORS) {
|
|
|
217
217
|
createNonEnumerableProperty(TypedArrayConstructorPrototype, 'constructor', TypedArrayConstructor);
|
|
218
218
|
}
|
|
219
219
|
|
|
220
|
-
|
|
220
|
+
enforceInternalState(TypedArrayConstructorPrototype).TypedArrayConstructor = TypedArrayConstructor;
|
|
221
221
|
|
|
222
222
|
if (TYPED_ARRAY_TAG) {
|
|
223
223
|
createNonEnumerableProperty(TypedArrayConstructorPrototype, TYPED_ARRAY_TAG, CONSTRUCTOR_NAME);
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
var ArrayBufferViewCore = require('../internals/array-buffer-view-core');
|
|
2
2
|
var speciesConstructor = require('../internals/species-constructor');
|
|
3
3
|
|
|
4
|
-
var TYPED_ARRAY_CONSTRUCTOR = ArrayBufferViewCore.TYPED_ARRAY_CONSTRUCTOR;
|
|
5
4
|
var aTypedArrayConstructor = ArrayBufferViewCore.aTypedArrayConstructor;
|
|
5
|
+
var getTypedArrayConstructor = ArrayBufferViewCore.getTypedArrayConstructor;
|
|
6
6
|
|
|
7
7
|
// a part of `TypedArraySpeciesCreate` abstract operation
|
|
8
8
|
// https://tc39.es/ecma262/#typedarray-species-create
|
|
9
9
|
module.exports = function (originalArray) {
|
|
10
|
-
return aTypedArrayConstructor(speciesConstructor(originalArray, originalArray
|
|
10
|
+
return aTypedArrayConstructor(speciesConstructor(originalArray, getTypedArrayConstructor(originalArray)));
|
|
11
11
|
};
|
|
@@ -29,7 +29,7 @@ var charAt = uncurryThis(''.charAt);
|
|
|
29
29
|
var replace = uncurryThis(''.replace);
|
|
30
30
|
var stringIndexOf = uncurryThis(''.indexOf);
|
|
31
31
|
var stringSlice = uncurryThis(''.slice);
|
|
32
|
-
// TODO: Use only
|
|
32
|
+
// TODO: Use only proper RegExpIdentifierName
|
|
33
33
|
var IS_NCG = /^\?<[^\s\d!#%&*+<=>@^][^\s!#%&*+<=>@^]*>/;
|
|
34
34
|
var re1 = /a/g;
|
|
35
35
|
var re2 = /a/g;
|
|
@@ -5,7 +5,7 @@ var $reduceRight = require('../internals/array-reduce').right;
|
|
|
5
5
|
var aTypedArray = ArrayBufferViewCore.aTypedArray;
|
|
6
6
|
var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;
|
|
7
7
|
|
|
8
|
-
// `%TypedArray%.prototype.
|
|
8
|
+
// `%TypedArray%.prototype.reduceRight` method
|
|
9
9
|
// https://tc39.es/ecma262/#sec-%typedarray%.prototype.reduceright
|
|
10
10
|
exportTypedArrayMethod('reduceRight', function reduceRight(callbackfn /* , initialValue */) {
|
|
11
11
|
var length = arguments.length;
|
|
@@ -1,18 +1,43 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
var $ = require('../internals/export');
|
|
3
|
-
var toIndexedObject = require('../internals/to-indexed-object');
|
|
4
|
-
var arraySlice = require('../internals/array-slice');
|
|
5
|
-
var arrayToSpliced = require('../internals/array-to-spliced');
|
|
6
3
|
var addToUnscopables = require('../internals/add-to-unscopables');
|
|
4
|
+
var doesNotExceedSafeInteger = require('../internals/does-not-exceed-safe-integer');
|
|
5
|
+
var lengthOfArrayLike = require('../internals/length-of-array-like');
|
|
6
|
+
var toAbsoluteIndex = require('../internals/to-absolute-index');
|
|
7
|
+
var toIndexedObject = require('../internals/to-indexed-object');
|
|
8
|
+
var toIntegerOrInfinity = require('../internals/to-integer-or-infinity');
|
|
7
9
|
|
|
8
10
|
var $Array = Array;
|
|
11
|
+
var max = Math.max;
|
|
12
|
+
var min = Math.min;
|
|
9
13
|
|
|
10
14
|
// `Array.prototype.toSpliced` method
|
|
11
15
|
// https://tc39.es/proposal-change-array-by-copy/#sec-array.prototype.toSpliced
|
|
12
|
-
$({ target: 'Array', proto: true
|
|
13
|
-
// eslint-disable-next-line no-unused-vars -- required for .length
|
|
16
|
+
$({ target: 'Array', proto: true }, {
|
|
14
17
|
toSpliced: function toSpliced(start, deleteCount /* , ...items */) {
|
|
15
|
-
|
|
18
|
+
var O = toIndexedObject(this);
|
|
19
|
+
var len = lengthOfArrayLike(O);
|
|
20
|
+
var actualStart = toAbsoluteIndex(start, len);
|
|
21
|
+
var argumentsLength = arguments.length;
|
|
22
|
+
var k = 0;
|
|
23
|
+
var insertCount, actualDeleteCount, newLen, A;
|
|
24
|
+
if (argumentsLength === 0) {
|
|
25
|
+
insertCount = actualDeleteCount = 0;
|
|
26
|
+
} else if (argumentsLength === 1) {
|
|
27
|
+
insertCount = 0;
|
|
28
|
+
actualDeleteCount = len - actualStart;
|
|
29
|
+
} else {
|
|
30
|
+
insertCount = argumentsLength - 2;
|
|
31
|
+
actualDeleteCount = min(max(toIntegerOrInfinity(deleteCount), 0), len - actualStart);
|
|
32
|
+
}
|
|
33
|
+
newLen = doesNotExceedSafeInteger(len + insertCount - actualDeleteCount);
|
|
34
|
+
A = $Array(newLen);
|
|
35
|
+
|
|
36
|
+
for (; k < actualStart; k++) A[k] = O[k];
|
|
37
|
+
for (; k < actualStart + insertCount; k++) A[k] = arguments[k - actualStart + 2];
|
|
38
|
+
for (; k < newLen; k++) A[k] = O[k + actualDeleteCount - insertCount];
|
|
39
|
+
|
|
40
|
+
return A;
|
|
16
41
|
}
|
|
17
42
|
});
|
|
18
43
|
|
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
var $ = require('../internals/export');
|
|
4
4
|
var apply = require('../internals/function-apply');
|
|
5
5
|
var anObject = require('../internals/an-object');
|
|
6
|
+
var getIteratorDirect = require('../internals/get-iterator-direct');
|
|
6
7
|
var createAsyncIteratorProxy = require('../internals/async-iterator-create-proxy');
|
|
7
8
|
|
|
8
9
|
var AsyncIteratorProxy = createAsyncIteratorProxy(function (Promise, args) {
|
|
@@ -20,8 +21,7 @@ var AsyncIteratorProxy = createAsyncIteratorProxy(function (Promise, args) {
|
|
|
20
21
|
|
|
21
22
|
$({ target: 'AsyncIterator', proto: true, real: true, forced: true }, {
|
|
22
23
|
asIndexedPairs: function asIndexedPairs() {
|
|
23
|
-
return new AsyncIteratorProxy({
|
|
24
|
-
iterator: anObject(this),
|
|
24
|
+
return new AsyncIteratorProxy(getIteratorDirect(this), {
|
|
25
25
|
index: 0
|
|
26
26
|
});
|
|
27
27
|
}
|
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
var $ = require('../internals/export');
|
|
4
4
|
var apply = require('../internals/function-apply');
|
|
5
5
|
var anObject = require('../internals/an-object');
|
|
6
|
+
var getIteratorDirect = require('../internals/get-iterator-direct');
|
|
6
7
|
var toPositiveInteger = require('../internals/to-positive-integer');
|
|
7
8
|
var createAsyncIteratorProxy = require('../internals/async-iterator-create-proxy');
|
|
8
9
|
|
|
@@ -34,8 +35,7 @@ var AsyncIteratorProxy = createAsyncIteratorProxy(function (Promise, args) {
|
|
|
34
35
|
|
|
35
36
|
$({ target: 'AsyncIterator', proto: true, real: true, forced: true }, {
|
|
36
37
|
drop: function drop(limit) {
|
|
37
|
-
return new AsyncIteratorProxy({
|
|
38
|
-
iterator: anObject(this),
|
|
38
|
+
return new AsyncIteratorProxy(getIteratorDirect(this), {
|
|
39
39
|
remaining: toPositiveInteger(limit)
|
|
40
40
|
});
|
|
41
41
|
}
|
|
@@ -4,6 +4,7 @@ var $ = require('../internals/export');
|
|
|
4
4
|
var apply = require('../internals/function-apply');
|
|
5
5
|
var aCallable = require('../internals/a-callable');
|
|
6
6
|
var anObject = require('../internals/an-object');
|
|
7
|
+
var getIteratorDirect = require('../internals/get-iterator-direct');
|
|
7
8
|
var createAsyncIteratorProxy = require('../internals/async-iterator-create-proxy');
|
|
8
9
|
|
|
9
10
|
var AsyncIteratorProxy = createAsyncIteratorProxy(function (Promise, args) {
|
|
@@ -35,8 +36,7 @@ var AsyncIteratorProxy = createAsyncIteratorProxy(function (Promise, args) {
|
|
|
35
36
|
|
|
36
37
|
$({ target: 'AsyncIterator', proto: true, real: true, forced: true }, {
|
|
37
38
|
filter: function filter(filterer) {
|
|
38
|
-
return new AsyncIteratorProxy({
|
|
39
|
-
iterator: anObject(this),
|
|
39
|
+
return new AsyncIteratorProxy(getIteratorDirect(this), {
|
|
40
40
|
filterer: aCallable(filterer)
|
|
41
41
|
});
|
|
42
42
|
}
|
|
@@ -4,6 +4,7 @@ var $ = require('../internals/export');
|
|
|
4
4
|
var call = require('../internals/function-call');
|
|
5
5
|
var aCallable = require('../internals/a-callable');
|
|
6
6
|
var anObject = require('../internals/an-object');
|
|
7
|
+
var getIteratorDirect = require('../internals/get-iterator-direct');
|
|
7
8
|
var createAsyncIteratorProxy = require('../internals/async-iterator-create-proxy');
|
|
8
9
|
var getAsyncIterator = require('../internals/get-async-iterator');
|
|
9
10
|
|
|
@@ -55,8 +56,7 @@ var AsyncIteratorProxy = createAsyncIteratorProxy(function (Promise) {
|
|
|
55
56
|
|
|
56
57
|
$({ target: 'AsyncIterator', proto: true, real: true, forced: true }, {
|
|
57
58
|
flatMap: function flatMap(mapper) {
|
|
58
|
-
return new AsyncIteratorProxy({
|
|
59
|
-
iterator: anObject(this),
|
|
59
|
+
return new AsyncIteratorProxy(getIteratorDirect(this), {
|
|
60
60
|
mapper: aCallable(mapper),
|
|
61
61
|
innerIterator: null,
|
|
62
62
|
innerNext: null
|
|
@@ -8,6 +8,7 @@ var AsyncIteratorPrototype = require('../internals/async-iterator-prototype');
|
|
|
8
8
|
var createAsyncIteratorProxy = require('../internals/async-iterator-create-proxy');
|
|
9
9
|
var getAsyncIterator = require('../internals/get-async-iterator');
|
|
10
10
|
var getIterator = require('../internals/get-iterator');
|
|
11
|
+
var getIteratorDirect = require('../internals/get-iterator-direct');
|
|
11
12
|
var getIteratorMethod = require('../internals/get-iterator-method');
|
|
12
13
|
var getMethod = require('../internals/get-method');
|
|
13
14
|
var wellKnownSymbol = require('../internals/well-known-symbol');
|
|
@@ -32,6 +33,6 @@ $({ target: 'AsyncIterator', stat: true, forced: true }, {
|
|
|
32
33
|
usingIterator = getIteratorMethod(object);
|
|
33
34
|
if (usingIterator) return new AsyncFromSyncIterator(getIterator(object, usingIterator));
|
|
34
35
|
}
|
|
35
|
-
return new AsyncIteratorProxy(
|
|
36
|
+
return new AsyncIteratorProxy(getIteratorDirect(iterator !== undefined ? iterator : object));
|
|
36
37
|
}
|
|
37
38
|
});
|
|
@@ -4,6 +4,7 @@ var $ = require('../internals/export');
|
|
|
4
4
|
var apply = require('../internals/function-apply');
|
|
5
5
|
var aCallable = require('../internals/a-callable');
|
|
6
6
|
var anObject = require('../internals/an-object');
|
|
7
|
+
var getIteratorDirect = require('../internals/get-iterator-direct');
|
|
7
8
|
var createAsyncIteratorProxy = require('../internals/async-iterator-create-proxy');
|
|
8
9
|
|
|
9
10
|
var AsyncIteratorProxy = createAsyncIteratorProxy(function (Promise, args) {
|
|
@@ -23,8 +24,7 @@ var AsyncIteratorProxy = createAsyncIteratorProxy(function (Promise, args) {
|
|
|
23
24
|
|
|
24
25
|
$({ target: 'AsyncIterator', proto: true, real: true, forced: true }, {
|
|
25
26
|
map: function map(mapper) {
|
|
26
|
-
return new AsyncIteratorProxy({
|
|
27
|
-
iterator: anObject(this),
|
|
27
|
+
return new AsyncIteratorProxy(getIteratorDirect(this), {
|
|
28
28
|
mapper: aCallable(mapper)
|
|
29
29
|
});
|
|
30
30
|
}
|
|
@@ -5,14 +5,16 @@ var call = require('../internals/function-call');
|
|
|
5
5
|
var aCallable = require('../internals/a-callable');
|
|
6
6
|
var anObject = require('../internals/an-object');
|
|
7
7
|
var getBuiltIn = require('../internals/get-built-in');
|
|
8
|
+
var getIteratorDirect = require('../internals/get-iterator-direct');
|
|
8
9
|
|
|
9
10
|
var Promise = getBuiltIn('Promise');
|
|
10
11
|
var $TypeError = TypeError;
|
|
11
12
|
|
|
12
13
|
$({ target: 'AsyncIterator', proto: true, real: true, forced: true }, {
|
|
13
14
|
reduce: function reduce(reducer /* , initialValue */) {
|
|
14
|
-
var
|
|
15
|
-
var
|
|
15
|
+
var record = getIteratorDirect(this);
|
|
16
|
+
var iterator = record.iterator;
|
|
17
|
+
var next = record.next;
|
|
16
18
|
var noInitial = arguments.length < 2;
|
|
17
19
|
var accumulator = noInitial ? undefined : arguments[1];
|
|
18
20
|
aCallable(reducer);
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
var $ = require('../internals/export');
|
|
4
4
|
var apply = require('../internals/function-apply');
|
|
5
5
|
var call = require('../internals/function-call');
|
|
6
|
-
var
|
|
6
|
+
var getIteratorDirect = require('../internals/get-iterator-direct');
|
|
7
7
|
var toPositiveInteger = require('../internals/to-positive-integer');
|
|
8
8
|
var createAsyncIteratorProxy = require('../internals/async-iterator-create-proxy');
|
|
9
9
|
|
|
@@ -25,8 +25,7 @@ var AsyncIteratorProxy = createAsyncIteratorProxy(function (Promise, args) {
|
|
|
25
25
|
|
|
26
26
|
$({ target: 'AsyncIterator', proto: true, real: true, forced: true }, {
|
|
27
27
|
take: function take(limit) {
|
|
28
|
-
return new AsyncIteratorProxy({
|
|
29
|
-
iterator: anObject(this),
|
|
28
|
+
return new AsyncIteratorProxy(getIteratorDirect(this), {
|
|
30
29
|
remaining: toPositiveInteger(limit)
|
|
31
30
|
});
|
|
32
31
|
}
|
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
var $ = require('../internals/export');
|
|
4
4
|
var apply = require('../internals/function-apply');
|
|
5
5
|
var anObject = require('../internals/an-object');
|
|
6
|
+
var getIteratorDirect = require('../internals/get-iterator-direct');
|
|
6
7
|
var createIteratorProxy = require('../internals/iterator-create-proxy');
|
|
7
8
|
|
|
8
9
|
var IteratorProxy = createIteratorProxy(function (args) {
|
|
@@ -13,8 +14,7 @@ var IteratorProxy = createIteratorProxy(function (args) {
|
|
|
13
14
|
|
|
14
15
|
$({ target: 'Iterator', proto: true, real: true, forced: true }, {
|
|
15
16
|
asIndexedPairs: function asIndexedPairs() {
|
|
16
|
-
return new IteratorProxy({
|
|
17
|
-
iterator: anObject(this),
|
|
17
|
+
return new IteratorProxy(getIteratorDirect(this), {
|
|
18
18
|
index: 0
|
|
19
19
|
});
|
|
20
20
|
}
|
|
@@ -4,6 +4,7 @@ var $ = require('../internals/export');
|
|
|
4
4
|
var apply = require('../internals/function-apply');
|
|
5
5
|
var call = require('../internals/function-call');
|
|
6
6
|
var anObject = require('../internals/an-object');
|
|
7
|
+
var getIteratorDirect = require('../internals/get-iterator-direct');
|
|
7
8
|
var toPositiveInteger = require('../internals/to-positive-integer');
|
|
8
9
|
var createIteratorProxy = require('../internals/iterator-create-proxy');
|
|
9
10
|
|
|
@@ -24,8 +25,7 @@ var IteratorProxy = createIteratorProxy(function (args) {
|
|
|
24
25
|
|
|
25
26
|
$({ target: 'Iterator', proto: true, real: true, forced: true }, {
|
|
26
27
|
drop: function drop(limit) {
|
|
27
|
-
return new IteratorProxy({
|
|
28
|
-
iterator: anObject(this),
|
|
28
|
+
return new IteratorProxy(getIteratorDirect(this), {
|
|
29
29
|
remaining: toPositiveInteger(limit)
|
|
30
30
|
});
|
|
31
31
|
}
|
|
@@ -3,14 +3,14 @@
|
|
|
3
3
|
var $ = require('../internals/export');
|
|
4
4
|
var iterate = require('../internals/iterate');
|
|
5
5
|
var aCallable = require('../internals/a-callable');
|
|
6
|
-
var
|
|
6
|
+
var getIteratorDirect = require('../internals/get-iterator-direct');
|
|
7
7
|
|
|
8
8
|
$({ target: 'Iterator', proto: true, real: true, forced: true }, {
|
|
9
9
|
every: function every(fn) {
|
|
10
|
-
|
|
10
|
+
var record = getIteratorDirect(this);
|
|
11
11
|
aCallable(fn);
|
|
12
|
-
return !iterate(
|
|
12
|
+
return !iterate(record, function (value, stop) {
|
|
13
13
|
if (!fn(value)) return stop();
|
|
14
|
-
}, {
|
|
14
|
+
}, { IS_RECORD: true, INTERRUPTED: true }).stopped;
|
|
15
15
|
}
|
|
16
16
|
});
|
|
@@ -4,6 +4,7 @@ var $ = require('../internals/export');
|
|
|
4
4
|
var apply = require('../internals/function-apply');
|
|
5
5
|
var aCallable = require('../internals/a-callable');
|
|
6
6
|
var anObject = require('../internals/an-object');
|
|
7
|
+
var getIteratorDirect = require('../internals/get-iterator-direct');
|
|
7
8
|
var createIteratorProxy = require('../internals/iterator-create-proxy');
|
|
8
9
|
var callWithSafeIterationClosing = require('../internals/call-with-safe-iteration-closing');
|
|
9
10
|
|
|
@@ -23,8 +24,7 @@ var IteratorProxy = createIteratorProxy(function (args) {
|
|
|
23
24
|
|
|
24
25
|
$({ target: 'Iterator', proto: true, real: true, forced: true }, {
|
|
25
26
|
filter: function filter(filterer) {
|
|
26
|
-
return new IteratorProxy({
|
|
27
|
-
iterator: anObject(this),
|
|
27
|
+
return new IteratorProxy(getIteratorDirect(this), {
|
|
28
28
|
filterer: aCallable(filterer)
|
|
29
29
|
});
|
|
30
30
|
}
|
|
@@ -3,14 +3,14 @@
|
|
|
3
3
|
var $ = require('../internals/export');
|
|
4
4
|
var iterate = require('../internals/iterate');
|
|
5
5
|
var aCallable = require('../internals/a-callable');
|
|
6
|
-
var
|
|
6
|
+
var getIteratorDirect = require('../internals/get-iterator-direct');
|
|
7
7
|
|
|
8
8
|
$({ target: 'Iterator', proto: true, real: true, forced: true }, {
|
|
9
9
|
find: function find(fn) {
|
|
10
|
-
|
|
10
|
+
var record = getIteratorDirect(this);
|
|
11
11
|
aCallable(fn);
|
|
12
|
-
return iterate(
|
|
12
|
+
return iterate(record, function (value, stop) {
|
|
13
13
|
if (fn(value)) return stop(value);
|
|
14
|
-
}, {
|
|
14
|
+
}, { IS_RECORD: true, INTERRUPTED: true }).result;
|
|
15
15
|
}
|
|
16
16
|
});
|
|
@@ -4,6 +4,7 @@ var $ = require('../internals/export');
|
|
|
4
4
|
var call = require('../internals/function-call');
|
|
5
5
|
var aCallable = require('../internals/a-callable');
|
|
6
6
|
var anObject = require('../internals/an-object');
|
|
7
|
+
var getIteratorDirect = require('../internals/get-iterator-direct');
|
|
7
8
|
var getIteratorMethod = require('../internals/get-iterator-method');
|
|
8
9
|
var createIteratorProxy = require('../internals/iterator-create-proxy');
|
|
9
10
|
var iteratorClose = require('../internals/iterator-close');
|
|
@@ -44,8 +45,7 @@ var IteratorProxy = createIteratorProxy(function () {
|
|
|
44
45
|
|
|
45
46
|
$({ target: 'Iterator', proto: true, real: true, forced: true }, {
|
|
46
47
|
flatMap: function flatMap(mapper) {
|
|
47
|
-
return new IteratorProxy({
|
|
48
|
-
iterator: anObject(this),
|
|
48
|
+
return new IteratorProxy(getIteratorDirect(this), {
|
|
49
49
|
mapper: aCallable(mapper),
|
|
50
50
|
innerIterator: null,
|
|
51
51
|
innerNext: null
|
|
@@ -2,10 +2,10 @@
|
|
|
2
2
|
// https://github.com/tc39/proposal-iterator-helpers
|
|
3
3
|
var $ = require('../internals/export');
|
|
4
4
|
var iterate = require('../internals/iterate');
|
|
5
|
-
var
|
|
5
|
+
var getIteratorDirect = require('../internals/get-iterator-direct');
|
|
6
6
|
|
|
7
7
|
$({ target: 'Iterator', proto: true, real: true, forced: true }, {
|
|
8
8
|
forEach: function forEach(fn) {
|
|
9
|
-
iterate(
|
|
9
|
+
iterate(getIteratorDirect(this), fn, { IS_RECORD: true });
|
|
10
10
|
}
|
|
11
11
|
});
|
|
@@ -7,6 +7,7 @@ var isPrototypeOf = require('../internals/object-is-prototype-of');
|
|
|
7
7
|
var IteratorPrototype = require('../internals/iterators-core').IteratorPrototype;
|
|
8
8
|
var createIteratorProxy = require('../internals/iterator-create-proxy');
|
|
9
9
|
var getIterator = require('../internals/get-iterator');
|
|
10
|
+
var getIteratorDirect = require('../internals/get-iterator-direct');
|
|
10
11
|
var getIteratorMethod = require('../internals/get-iterator-method');
|
|
11
12
|
|
|
12
13
|
var IteratorProxy = createIteratorProxy(function (args) {
|
|
@@ -25,6 +26,6 @@ $({ target: 'Iterator', stat: true, forced: true }, {
|
|
|
25
26
|
if (isPrototypeOf(IteratorPrototype, iterator)) return iterator;
|
|
26
27
|
} else {
|
|
27
28
|
iterator = object;
|
|
28
|
-
} return new IteratorProxy(
|
|
29
|
+
} return new IteratorProxy(getIteratorDirect(iterator));
|
|
29
30
|
}
|
|
30
31
|
});
|
|
@@ -4,6 +4,7 @@ var $ = require('../internals/export');
|
|
|
4
4
|
var apply = require('../internals/function-apply');
|
|
5
5
|
var aCallable = require('../internals/a-callable');
|
|
6
6
|
var anObject = require('../internals/an-object');
|
|
7
|
+
var getIteratorDirect = require('../internals/get-iterator-direct');
|
|
7
8
|
var createIteratorProxy = require('../internals/iterator-create-proxy');
|
|
8
9
|
var callWithSafeIterationClosing = require('../internals/call-with-safe-iteration-closing');
|
|
9
10
|
|
|
@@ -16,8 +17,7 @@ var IteratorProxy = createIteratorProxy(function (args) {
|
|
|
16
17
|
|
|
17
18
|
$({ target: 'Iterator', proto: true, real: true, forced: true }, {
|
|
18
19
|
map: function map(mapper) {
|
|
19
|
-
return new IteratorProxy({
|
|
20
|
-
iterator: anObject(this),
|
|
20
|
+
return new IteratorProxy(getIteratorDirect(this), {
|
|
21
21
|
mapper: aCallable(mapper)
|
|
22
22
|
});
|
|
23
23
|
}
|
|
@@ -3,24 +3,24 @@
|
|
|
3
3
|
var $ = require('../internals/export');
|
|
4
4
|
var iterate = require('../internals/iterate');
|
|
5
5
|
var aCallable = require('../internals/a-callable');
|
|
6
|
-
var
|
|
6
|
+
var getIteratorDirect = require('../internals/get-iterator-direct');
|
|
7
7
|
|
|
8
8
|
var $TypeError = TypeError;
|
|
9
9
|
|
|
10
10
|
$({ target: 'Iterator', proto: true, real: true, forced: true }, {
|
|
11
11
|
reduce: function reduce(reducer /* , initialValue */) {
|
|
12
|
-
|
|
12
|
+
var record = getIteratorDirect(this);
|
|
13
13
|
aCallable(reducer);
|
|
14
14
|
var noInitial = arguments.length < 2;
|
|
15
15
|
var accumulator = noInitial ? undefined : arguments[1];
|
|
16
|
-
iterate(
|
|
16
|
+
iterate(record, function (value) {
|
|
17
17
|
if (noInitial) {
|
|
18
18
|
noInitial = false;
|
|
19
19
|
accumulator = value;
|
|
20
20
|
} else {
|
|
21
21
|
accumulator = reducer(accumulator, value);
|
|
22
22
|
}
|
|
23
|
-
}, {
|
|
23
|
+
}, { IS_RECORD: true });
|
|
24
24
|
if (noInitial) throw $TypeError('Reduce of empty iterator with no initial value');
|
|
25
25
|
return accumulator;
|
|
26
26
|
}
|
|
@@ -3,14 +3,14 @@
|
|
|
3
3
|
var $ = require('../internals/export');
|
|
4
4
|
var iterate = require('../internals/iterate');
|
|
5
5
|
var aCallable = require('../internals/a-callable');
|
|
6
|
-
var
|
|
6
|
+
var getIteratorDirect = require('../internals/get-iterator-direct');
|
|
7
7
|
|
|
8
8
|
$({ target: 'Iterator', proto: true, real: true, forced: true }, {
|
|
9
9
|
some: function some(fn) {
|
|
10
|
-
|
|
10
|
+
var record = getIteratorDirect(this);
|
|
11
11
|
aCallable(fn);
|
|
12
|
-
return iterate(
|
|
12
|
+
return iterate(record, function (value, stop) {
|
|
13
13
|
if (fn(value)) return stop();
|
|
14
|
-
}, {
|
|
14
|
+
}, { IS_RECORD: true, INTERRUPTED: true }).stopped;
|
|
15
15
|
}
|
|
16
16
|
});
|
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
var $ = require('../internals/export');
|
|
4
4
|
var apply = require('../internals/function-apply');
|
|
5
5
|
var anObject = require('../internals/an-object');
|
|
6
|
+
var getIteratorDirect = require('../internals/get-iterator-direct');
|
|
6
7
|
var toPositiveInteger = require('../internals/to-positive-integer');
|
|
7
8
|
var createIteratorProxy = require('../internals/iterator-create-proxy');
|
|
8
9
|
var iteratorClose = require('../internals/iterator-close');
|
|
@@ -20,8 +21,7 @@ var IteratorProxy = createIteratorProxy(function (args) {
|
|
|
20
21
|
|
|
21
22
|
$({ target: 'Iterator', proto: true, real: true, forced: true }, {
|
|
22
23
|
take: function take(limit) {
|
|
23
|
-
return new IteratorProxy({
|
|
24
|
-
iterator: anObject(this),
|
|
24
|
+
return new IteratorProxy(getIteratorDirect(this), {
|
|
25
25
|
remaining: toPositiveInteger(limit)
|
|
26
26
|
});
|
|
27
27
|
}
|
|
@@ -2,14 +2,14 @@
|
|
|
2
2
|
// https://github.com/tc39/proposal-iterator-helpers
|
|
3
3
|
var $ = require('../internals/export');
|
|
4
4
|
var iterate = require('../internals/iterate');
|
|
5
|
-
var
|
|
5
|
+
var getIteratorDirect = require('../internals/get-iterator-direct');
|
|
6
6
|
|
|
7
7
|
var push = [].push;
|
|
8
8
|
|
|
9
9
|
$({ target: 'Iterator', proto: true, real: true, forced: true }, {
|
|
10
10
|
toArray: function toArray() {
|
|
11
11
|
var result = [];
|
|
12
|
-
iterate(
|
|
12
|
+
iterate(getIteratorDirect(this), push, { that: result, IS_RECORD: true });
|
|
13
13
|
return result;
|
|
14
14
|
}
|
|
15
15
|
});
|
|
@@ -1,9 +1,7 @@
|
|
|
1
1
|
var $ = require('../internals/export');
|
|
2
2
|
|
|
3
|
-
var DEG_PER_RAD = Math.PI / 180;
|
|
4
|
-
|
|
5
3
|
// `Math.DEG_PER_RAD` constant
|
|
6
4
|
// https://rwaldron.github.io/proposal-math-extensions/
|
|
7
|
-
$({ target: 'Math', stat: true, nonConfigurable: true, nonWritable: true
|
|
8
|
-
DEG_PER_RAD:
|
|
5
|
+
$({ target: 'Math', stat: true, nonConfigurable: true, nonWritable: true }, {
|
|
6
|
+
DEG_PER_RAD: Math.PI / 180
|
|
9
7
|
});
|
|
@@ -1,9 +1,7 @@
|
|
|
1
1
|
var $ = require('../internals/export');
|
|
2
2
|
|
|
3
|
-
var RAD_PER_DEG = 180 / Math.PI;
|
|
4
|
-
|
|
5
3
|
// `Math.RAD_PER_DEG` constant
|
|
6
4
|
// https://rwaldron.github.io/proposal-math-extensions/
|
|
7
|
-
$({ target: 'Math', stat: true, nonConfigurable: true, nonWritable: true
|
|
8
|
-
RAD_PER_DEG:
|
|
5
|
+
$({ target: 'Math', stat: true, nonConfigurable: true, nonWritable: true }, {
|
|
6
|
+
RAD_PER_DEG: 180 / Math.PI
|
|
9
7
|
});
|
|
@@ -4,10 +4,10 @@ var ArrayBufferViewCore = require('../internals/array-buffer-view-core');
|
|
|
4
4
|
|
|
5
5
|
var aTypedArray = ArrayBufferViewCore.aTypedArray;
|
|
6
6
|
var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;
|
|
7
|
-
var
|
|
7
|
+
var getTypedArrayConstructor = ArrayBufferViewCore.getTypedArrayConstructor;
|
|
8
8
|
|
|
9
9
|
// `%TypedArray%.prototype.toReversed` method
|
|
10
10
|
// https://tc39.es/proposal-change-array-by-copy/#sec-%typedarray%.prototype.toReversed
|
|
11
11
|
exportTypedArrayMethod('toReversed', function toReversed() {
|
|
12
|
-
return arrayToReversed(aTypedArray(this), this
|
|
12
|
+
return arrayToReversed(aTypedArray(this), getTypedArrayConstructor(this));
|
|
13
13
|
});
|
|
@@ -5,8 +5,8 @@ var aCallable = require('../internals/a-callable');
|
|
|
5
5
|
var arrayFromConstructorAndList = require('../internals/array-from-constructor-and-list');
|
|
6
6
|
|
|
7
7
|
var aTypedArray = ArrayBufferViewCore.aTypedArray;
|
|
8
|
+
var getTypedArrayConstructor = ArrayBufferViewCore.getTypedArrayConstructor;
|
|
8
9
|
var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;
|
|
9
|
-
var TYPED_ARRAY_CONSTRUCTOR = ArrayBufferViewCore.TYPED_ARRAY_CONSTRUCTOR;
|
|
10
10
|
var sort = uncurryThis(ArrayBufferViewCore.TypedArrayPrototype.sort);
|
|
11
11
|
|
|
12
12
|
// `%TypedArray%.prototype.toSorted` method
|
|
@@ -14,6 +14,6 @@ var sort = uncurryThis(ArrayBufferViewCore.TypedArrayPrototype.sort);
|
|
|
14
14
|
exportTypedArrayMethod('toSorted', function toSorted(compareFn) {
|
|
15
15
|
if (compareFn !== undefined) aCallable(compareFn);
|
|
16
16
|
var O = aTypedArray(this);
|
|
17
|
-
var A = arrayFromConstructorAndList(O
|
|
17
|
+
var A = arrayFromConstructorAndList(getTypedArrayConstructor(O), O);
|
|
18
18
|
return sort(A, compareFn);
|
|
19
19
|
});
|
|
@@ -1,15 +1,62 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
var ArrayBufferViewCore = require('../internals/array-buffer-view-core');
|
|
3
|
-
var
|
|
4
|
-
var
|
|
3
|
+
var lengthOfArrayLike = require('../internals/length-of-array-like');
|
|
4
|
+
var toAbsoluteIndex = require('../internals/to-absolute-index');
|
|
5
|
+
var toIntegerOrInfinity = require('../internals/to-integer-or-infinity');
|
|
6
|
+
var fails = require('../internals/fails');
|
|
5
7
|
|
|
6
8
|
var aTypedArray = ArrayBufferViewCore.aTypedArray;
|
|
9
|
+
var getTypedArrayConstructor = ArrayBufferViewCore.getTypedArrayConstructor;
|
|
7
10
|
var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;
|
|
8
|
-
var
|
|
11
|
+
var max = Math.max;
|
|
12
|
+
var min = Math.min;
|
|
13
|
+
|
|
14
|
+
// some early implementations, like WebKit, does not follow the final semantic
|
|
15
|
+
var PROPER_ORDER = !fails(function () {
|
|
16
|
+
// eslint-disable-next-line es-x/no-typed-arrays -- required for testing
|
|
17
|
+
var array = new Int8Array([1]);
|
|
18
|
+
|
|
19
|
+
var spliced = array.toSpliced(1, 0, {
|
|
20
|
+
valueOf: function () {
|
|
21
|
+
array[0] = 2;
|
|
22
|
+
return 3;
|
|
23
|
+
}
|
|
24
|
+
});
|
|
25
|
+
|
|
26
|
+
return spliced[0] !== 2 || spliced[1] !== 3;
|
|
27
|
+
});
|
|
9
28
|
|
|
10
29
|
// `%TypedArray%.prototype.toSpliced` method
|
|
11
30
|
// https://tc39.es/proposal-change-array-by-copy/#sec-%typedarray%.prototype.toSpliced
|
|
12
|
-
// eslint-disable-next-line no-unused-vars -- required for .length
|
|
13
31
|
exportTypedArrayMethod('toSpliced', function toSpliced(start, deleteCount /* , ...items */) {
|
|
14
|
-
|
|
15
|
-
|
|
32
|
+
var O = aTypedArray(this);
|
|
33
|
+
var C = getTypedArrayConstructor(O);
|
|
34
|
+
var len = lengthOfArrayLike(O);
|
|
35
|
+
var actualStart = toAbsoluteIndex(start, len);
|
|
36
|
+
var argumentsLength = arguments.length;
|
|
37
|
+
var k = 0;
|
|
38
|
+
var insertCount, actualDeleteCount, convertedItems, newLen, A;
|
|
39
|
+
if (argumentsLength === 0) {
|
|
40
|
+
insertCount = actualDeleteCount = 0;
|
|
41
|
+
} else if (argumentsLength === 1) {
|
|
42
|
+
insertCount = 0;
|
|
43
|
+
actualDeleteCount = len - actualStart;
|
|
44
|
+
} else {
|
|
45
|
+
actualDeleteCount = min(max(toIntegerOrInfinity(deleteCount), 0), len - actualStart);
|
|
46
|
+
insertCount = argumentsLength - 2;
|
|
47
|
+
if (insertCount) {
|
|
48
|
+
convertedItems = new C(insertCount);
|
|
49
|
+
for (var i = 2; i < argumentsLength; i++) {
|
|
50
|
+
convertedItems[i - 2] = arguments[i];
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
newLen = len + insertCount - actualDeleteCount;
|
|
55
|
+
A = new C(newLen);
|
|
56
|
+
|
|
57
|
+
for (; k < actualStart; k++) A[k] = O[k];
|
|
58
|
+
for (; k < actualStart + insertCount; k++) A[k] = convertedItems[k - actualStart];
|
|
59
|
+
for (; k < newLen; k++) A[k] = O[k + actualDeleteCount - insertCount];
|
|
60
|
+
|
|
61
|
+
return A;
|
|
62
|
+
}, !PROPER_ORDER);
|
|
@@ -1,15 +1,13 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
var arrayWith = require('../internals/array-with');
|
|
3
3
|
var ArrayBufferViewCore = require('../internals/array-buffer-view-core');
|
|
4
|
+
var isBigIntArray = require('../internals/is-big-int-array');
|
|
4
5
|
var toIntegerOrInfinity = require('../internals/to-integer-or-infinity');
|
|
5
6
|
var toBigInt = require('../internals/to-big-int');
|
|
6
|
-
var classof = require('../internals/classof');
|
|
7
|
-
var uncurryThis = require('../internals/function-uncurry-this');
|
|
8
7
|
|
|
9
8
|
var aTypedArray = ArrayBufferViewCore.aTypedArray;
|
|
9
|
+
var getTypedArrayConstructor = ArrayBufferViewCore.getTypedArrayConstructor;
|
|
10
10
|
var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;
|
|
11
|
-
var TYPED_ARRAY_CONSTRUCTOR = ArrayBufferViewCore.TYPED_ARRAY_CONSTRUCTOR;
|
|
12
|
-
var slice = uncurryThis(''.slice);
|
|
13
11
|
|
|
14
12
|
var PROPER_ORDER = !!function () {
|
|
15
13
|
try {
|
|
@@ -25,8 +23,8 @@ var PROPER_ORDER = !!function () {
|
|
|
25
23
|
// `%TypedArray%.prototype.with` method
|
|
26
24
|
// https://tc39.es/proposal-change-array-by-copy/#sec-%typedarray%.prototype.with
|
|
27
25
|
exportTypedArrayMethod('with', { 'with': function (index, value) {
|
|
28
|
-
aTypedArray(this);
|
|
26
|
+
var O = aTypedArray(this);
|
|
29
27
|
var relativeIndex = toIntegerOrInfinity(index);
|
|
30
|
-
var actualValue =
|
|
31
|
-
return arrayWith(
|
|
28
|
+
var actualValue = isBigIntArray(O) ? toBigInt(value) : +value;
|
|
29
|
+
return arrayWith(O, getTypedArrayConstructor(O), relativeIndex, actualValue);
|
|
32
30
|
} }['with'], !PROPER_ORDER);
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
var $ = require('../internals/export');
|
|
3
|
+
var global = require('../internals/global');
|
|
3
4
|
var getBuiltIn = require('../internals/get-built-in');
|
|
4
5
|
var createPropertyDescriptor = require('../internals/create-property-descriptor');
|
|
5
6
|
var defineProperty = require('../internals/object-define-property').f;
|
|
@@ -9,6 +10,7 @@ var inheritIfRequired = require('../internals/inherit-if-required');
|
|
|
9
10
|
var normalizeStringArgument = require('../internals/normalize-string-argument');
|
|
10
11
|
var DOMExceptionConstants = require('../internals/dom-exception-constants');
|
|
11
12
|
var clearErrorStack = require('../internals/clear-error-stack');
|
|
13
|
+
var DESCRIPTORS = require('../internals/descriptors');
|
|
12
14
|
var IS_PURE = require('../internals/is-pure');
|
|
13
15
|
|
|
14
16
|
var DOM_EXCEPTION = 'DOMException';
|
|
@@ -32,7 +34,15 @@ var DOMExceptionPrototype = $DOMException.prototype = NativeDOMException.prototy
|
|
|
32
34
|
|
|
33
35
|
var ERROR_HAS_STACK = 'stack' in Error(DOM_EXCEPTION);
|
|
34
36
|
var DOM_EXCEPTION_HAS_STACK = 'stack' in new NativeDOMException(1, 2);
|
|
35
|
-
|
|
37
|
+
|
|
38
|
+
// eslint-disable-next-line es-x/no-object-getownpropertydescriptor -- safe
|
|
39
|
+
var descriptor = NativeDOMException && DESCRIPTORS && Object.getOwnPropertyDescriptor(global, DOM_EXCEPTION);
|
|
40
|
+
|
|
41
|
+
// Bun ~ 0.1.1 DOMException have incorrect descriptor and we can't redefine it
|
|
42
|
+
// https://github.com/Jarred-Sumner/bun/issues/399
|
|
43
|
+
var BUGGY_DESCRIPTOR = !!descriptor && !(descriptor.writable && descriptor.configurable);
|
|
44
|
+
|
|
45
|
+
var FORCED_CONSTRUCTOR = ERROR_HAS_STACK && !BUGGY_DESCRIPTOR && !DOM_EXCEPTION_HAS_STACK;
|
|
36
46
|
|
|
37
47
|
// `DOMException` constructor patch for `.stack` where it's required
|
|
38
48
|
// https://webidl.spec.whatwg.org/#es-DOMException-specialness
|
|
@@ -69,7 +69,7 @@ var checkErrorsCloning = function (structuredCloneImplementation, $Error) {
|
|
|
69
69
|
return !fails(function () {
|
|
70
70
|
var error = new $Error();
|
|
71
71
|
var test = structuredCloneImplementation({ a: error, b: error });
|
|
72
|
-
return !(test && test.a === test.b && test.a instanceof $Error);
|
|
72
|
+
return !(test && test.a === test.b && test.a instanceof $Error && test.stack === error.stack);
|
|
73
73
|
});
|
|
74
74
|
};
|
|
75
75
|
|
|
@@ -82,13 +82,17 @@ var checkNewErrorsCloningSemantic = function (structuredCloneImplementation) {
|
|
|
82
82
|
};
|
|
83
83
|
|
|
84
84
|
// FF94+, Safari 15.4+, Chrome 98+, NodeJS 17.0+, Deno 1.13+
|
|
85
|
-
// FF and Safari implementations can't clone errors
|
|
85
|
+
// FF<103 and Safari implementations can't clone errors
|
|
86
86
|
// https://bugzilla.mozilla.org/show_bug.cgi?id=1556604
|
|
87
|
+
// FF103 can clone errors, but `.stack` of clone is an empty string
|
|
88
|
+
// https://bugzilla.mozilla.org/show_bug.cgi?id=1778762
|
|
89
|
+
// FF104+ fixed it on usual errors, but not on DOMExceptions
|
|
90
|
+
// https://bugzilla.mozilla.org/show_bug.cgi?id=1777321
|
|
87
91
|
// Chrome <102 returns `null` if cloned object contains multiple references to one error
|
|
88
92
|
// https://bugs.chromium.org/p/v8/issues/detail?id=12542
|
|
89
93
|
// NodeJS implementation can't clone DOMExceptions
|
|
90
94
|
// https://github.com/nodejs/node/issues/41038
|
|
91
|
-
//
|
|
95
|
+
// only FF103+ supports new (html/5749) error cloning semantic
|
|
92
96
|
var nativeStructuredClone = global.structuredClone;
|
|
93
97
|
|
|
94
98
|
var FORCED_REPLACEMENT = IS_PURE
|
|
@@ -106,7 +110,7 @@ var FORCED_REPLACEMENT = IS_PURE
|
|
|
106
110
|
// NodeJS <17.2 structured cloning implementation from `performance.mark` is too naive
|
|
107
111
|
// and can't clone, for example, `RegExp` or some boxed primitives
|
|
108
112
|
// https://github.com/nodejs/node/issues/40840
|
|
109
|
-
// no one of
|
|
113
|
+
// no one of those implementations supports new (html/5749) error cloning semantic
|
|
110
114
|
var structuredCloneFromMark = !nativeStructuredClone && checkBasicSemantic(function (value) {
|
|
111
115
|
return new PerformanceMark(PERFORMANCE_MARK, { detail: value }).detail;
|
|
112
116
|
});
|
package/package.json
CHANGED
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
var lengthOfArrayLike = require('../internals/length-of-array-like');
|
|
2
|
-
var doesNotExceedSafeInteger = require('../internals/does-not-exceed-safe-integer');
|
|
3
|
-
var toAbsoluteIndex = require('../internals/to-absolute-index');
|
|
4
|
-
var toIntegerOrInfinity = require('../internals/to-integer-or-infinity');
|
|
5
|
-
|
|
6
|
-
var max = Math.max;
|
|
7
|
-
var min = Math.min;
|
|
8
|
-
|
|
9
|
-
// https://tc39.es/proposal-change-array-by-copy/#sec-array.prototype.toSpliced
|
|
10
|
-
// https://tc39.es/proposal-change-array-by-copy/#sec-%typedarray%.prototype.toSpliced
|
|
11
|
-
module.exports = function (O, C, args) {
|
|
12
|
-
var start = args[0];
|
|
13
|
-
var deleteCount = args[1];
|
|
14
|
-
var len = lengthOfArrayLike(O);
|
|
15
|
-
var actualStart = toAbsoluteIndex(start, len);
|
|
16
|
-
var argumentsLength = args.length;
|
|
17
|
-
var k = 0;
|
|
18
|
-
var insertCount, actualDeleteCount, newLen, A;
|
|
19
|
-
if (argumentsLength === 0) {
|
|
20
|
-
insertCount = actualDeleteCount = 0;
|
|
21
|
-
} else if (argumentsLength === 1) {
|
|
22
|
-
insertCount = 0;
|
|
23
|
-
actualDeleteCount = len - actualStart;
|
|
24
|
-
} else {
|
|
25
|
-
insertCount = argumentsLength - 2;
|
|
26
|
-
actualDeleteCount = min(max(toIntegerOrInfinity(deleteCount), 0), len - actualStart);
|
|
27
|
-
}
|
|
28
|
-
newLen = doesNotExceedSafeInteger(len + insertCount - actualDeleteCount);
|
|
29
|
-
A = new C(newLen);
|
|
30
|
-
|
|
31
|
-
for (; k < actualStart; k++) A[k] = O[k];
|
|
32
|
-
for (; k < actualStart + insertCount; k++) A[k] = args[k - actualStart + 2];
|
|
33
|
-
for (; k < newLen; k++) A[k] = O[k + actualDeleteCount - insertCount];
|
|
34
|
-
|
|
35
|
-
return A;
|
|
36
|
-
};
|