core-js-pure 3.23.2 → 3.23.5

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.
Files changed (34) hide show
  1. package/internals/async-iterator-create-proxy.js +5 -3
  2. package/internals/async-iterator-iteration.js +5 -3
  3. package/internals/get-iterator-direct.js +9 -0
  4. package/internals/is-big-int-array.js +8 -0
  5. package/internals/iterate.js +5 -2
  6. package/internals/iterator-create-proxy.js +5 -3
  7. package/internals/map-emplace.js +11 -5
  8. package/internals/shared.js +2 -2
  9. package/modules/esnext.array.to-spliced.js +31 -6
  10. package/modules/esnext.async-iterator.as-indexed-pairs.js +2 -2
  11. package/modules/esnext.async-iterator.drop.js +2 -2
  12. package/modules/esnext.async-iterator.filter.js +2 -2
  13. package/modules/esnext.async-iterator.flat-map.js +2 -2
  14. package/modules/esnext.async-iterator.from.js +2 -1
  15. package/modules/esnext.async-iterator.map.js +2 -2
  16. package/modules/esnext.async-iterator.reduce.js +4 -2
  17. package/modules/esnext.async-iterator.take.js +2 -3
  18. package/modules/esnext.iterator.as-indexed-pairs.js +2 -2
  19. package/modules/esnext.iterator.drop.js +2 -2
  20. package/modules/esnext.iterator.every.js +4 -4
  21. package/modules/esnext.iterator.filter.js +2 -2
  22. package/modules/esnext.iterator.find.js +4 -4
  23. package/modules/esnext.iterator.flat-map.js +2 -2
  24. package/modules/esnext.iterator.for-each.js +2 -2
  25. package/modules/esnext.iterator.from.js +2 -1
  26. package/modules/esnext.iterator.map.js +2 -2
  27. package/modules/esnext.iterator.reduce.js +4 -4
  28. package/modules/esnext.iterator.some.js +4 -4
  29. package/modules/esnext.iterator.take.js +2 -2
  30. package/modules/esnext.iterator.to-array.js +2 -2
  31. package/modules/web.dom-exception.stack.js +11 -1
  32. package/modules/web.structured-clone.js +8 -4
  33. package/package.json +1 -1
  34. package/internals/array-to-spliced.js +0 -36
@@ -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 (iterator, fn, target) {
17
- anObject(iterator);
17
+ return function (object, fn, target) {
18
+ var record = getIteratorDirect(object);
18
19
  var Promise = getBuiltIn('Promise');
19
- var next = aCallable(iterator.next);
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);
@@ -0,0 +1,9 @@
1
+ var aCallable = require('../internals/a-callable');
2
+ var anObject = require('../internals/an-object');
3
+
4
+ module.exports = function (obj) {
5
+ return {
6
+ iterator: obj,
7
+ next: aCallable(anObject(obj).next)
8
+ };
9
+ };
@@ -0,0 +1,8 @@
1
+ var classof = require('../internals/classof');
2
+ var uncurryThis = require('../internals/function-uncurry-this');
3
+
4
+ var slice = uncurryThis(''.slice);
5
+
6
+ module.exports = function (it) {
7
+ return slice(classof(it), 0, 3) === 'Big';
8
+ };
@@ -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 (IS_ITERATOR) {
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);
@@ -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 = (call(has, map, key) && 'update' in handler)
14
- ? handler.update(call(get, map, key), key, map)
15
- : handler.insert(key, map);
16
- call(set, map, key, value);
17
- return value;
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
  };
@@ -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.2',
7
+ version: '3.23.5',
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.2/LICENSE',
10
+ license: 'https://github.com/zloirock/core-js/blob/v3.23.5/LICENSE',
11
11
  source: 'https://github.com/zloirock/core-js'
12
12
  });
@@ -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, arity: 2 }, {
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
- return arrayToSpliced(toIndexedObject(this), $Array, arraySlice(arguments));
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({ iterator: iterator !== undefined ? iterator : object });
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 iterator = anObject(this);
15
- var next = aCallable(iterator.next);
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 anObject = require('../internals/an-object');
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 anObject = require('../internals/an-object');
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
- anObject(this);
10
+ var record = getIteratorDirect(this);
11
11
  aCallable(fn);
12
- return !iterate(this, function (value, stop) {
12
+ return !iterate(record, function (value, stop) {
13
13
  if (!fn(value)) return stop();
14
- }, { IS_ITERATOR: true, INTERRUPTED: true }).stopped;
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 anObject = require('../internals/an-object');
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
- anObject(this);
10
+ var record = getIteratorDirect(this);
11
11
  aCallable(fn);
12
- return iterate(this, function (value, stop) {
12
+ return iterate(record, function (value, stop) {
13
13
  if (fn(value)) return stop(value);
14
- }, { IS_ITERATOR: true, INTERRUPTED: true }).result;
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 anObject = require('../internals/an-object');
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(anObject(this), fn, { IS_ITERATOR: true });
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({ iterator: iterator });
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 anObject = require('../internals/an-object');
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
- anObject(this);
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(this, function (value) {
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
- }, { IS_ITERATOR: true });
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 anObject = require('../internals/an-object');
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
- anObject(this);
10
+ var record = getIteratorDirect(this);
11
11
  aCallable(fn);
12
- return iterate(this, function (value, stop) {
12
+ return iterate(record, function (value, stop) {
13
13
  if (fn(value)) return stop();
14
- }, { IS_ITERATOR: true, INTERRUPTED: true }).stopped;
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 anObject = require('../internals/an-object');
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(anObject(this), push, { that: result, IS_ITERATOR: true });
12
+ iterate(getIteratorDirect(this), push, { that: result, IS_RECORD: true });
13
13
  return result;
14
14
  }
15
15
  });
@@ -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
- var FORCED_CONSTRUCTOR = ERROR_HAS_STACK && !DOM_EXCEPTION_HAS_STACK;
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.a.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
- // no one of current implementations supports new (html/5749) error cloning semantic
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 current implementations supports new (html/5749) error cloning semantic
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,7 +1,7 @@
1
1
  {
2
2
  "name": "core-js-pure",
3
3
  "description": "Standard library",
4
- "version": "3.23.2",
4
+ "version": "3.23.5",
5
5
  "repository": {
6
6
  "type": "git",
7
7
  "url": "https://github.com/zloirock/core-js.git"
@@ -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
- };