core-js 3.25.3 → 3.26.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.
Files changed (69) hide show
  1. package/README.md +1 -1
  2. package/actual/array/from-async.js +8 -0
  3. package/actual/array/index.js +1 -0
  4. package/actual/self.js +3 -0
  5. package/features/instance/is-well-formed.js +1 -0
  6. package/features/instance/to-well-formed.js +1 -0
  7. package/features/self.js +1 -0
  8. package/features/string/is-well-formed.js +1 -0
  9. package/features/string/to-well-formed.js +1 -0
  10. package/features/string/virtual/is-well-formed.js +1 -0
  11. package/features/string/virtual/to-well-formed.js +1 -0
  12. package/full/array/from-async.js +2 -7
  13. package/full/array/index.js +0 -1
  14. package/full/index.js +3 -0
  15. package/full/instance/is-well-formed.js +10 -0
  16. package/full/instance/to-well-formed.js +10 -0
  17. package/full/self.js +3 -0
  18. package/full/string/index.js +2 -0
  19. package/full/string/is-well-formed.js +3 -0
  20. package/full/string/to-well-formed.js +3 -0
  21. package/full/string/virtual/index.js +2 -0
  22. package/full/string/virtual/is-well-formed.js +3 -0
  23. package/full/string/virtual/to-well-formed.js +3 -0
  24. package/internals/array-from-async.js +18 -3
  25. package/internals/async-from-sync-iterator.js +3 -6
  26. package/internals/async-iterator-create-proxy.js +3 -3
  27. package/internals/async-iterator-iteration.js +16 -10
  28. package/internals/classof-raw.js +3 -3
  29. package/internals/function-uncurry-this-raw.js +11 -0
  30. package/internals/function-uncurry-this.js +7 -12
  31. package/internals/get-async-iterator-flattenable.js +28 -0
  32. package/internals/get-async-iterator.js +2 -1
  33. package/internals/get-iterator-flattenable.js +11 -0
  34. package/internals/internal-state.js +9 -8
  35. package/internals/iterator-create-proxy.js +3 -3
  36. package/internals/shared.js +2 -2
  37. package/modules/esnext.async-iterator.filter.js +8 -2
  38. package/modules/esnext.async-iterator.flat-map.js +15 -11
  39. package/modules/esnext.async-iterator.from.js +5 -22
  40. package/modules/esnext.async-iterator.indexed.js +1 -0
  41. package/modules/esnext.async-iterator.map.js +8 -2
  42. package/modules/esnext.async-iterator.reduce.js +11 -3
  43. package/modules/esnext.function.un-this.js +2 -2
  44. package/modules/esnext.iterator.every.js +2 -1
  45. package/modules/esnext.iterator.filter.js +1 -1
  46. package/modules/esnext.iterator.find.js +2 -1
  47. package/modules/esnext.iterator.flat-map.js +7 -18
  48. package/modules/esnext.iterator.for-each.js +7 -1
  49. package/modules/esnext.iterator.from.js +5 -13
  50. package/modules/esnext.iterator.indexed.js +1 -0
  51. package/modules/esnext.iterator.map.js +1 -1
  52. package/modules/esnext.iterator.reduce.js +3 -1
  53. package/modules/esnext.iterator.some.js +2 -1
  54. package/modules/esnext.iterator.to-async.js +1 -1
  55. package/modules/esnext.string.is-well-formed.js +23 -0
  56. package/modules/esnext.string.to-well-formed.js +33 -0
  57. package/modules/web.self.js +41 -0
  58. package/modules/web.structured-clone.js +8 -1
  59. package/package.json +27 -14
  60. package/proposals/well-formed-unicode-strings.js +2 -0
  61. package/stable/index.js +1 -0
  62. package/stable/self.js +4 -0
  63. package/stage/0.js +2 -1
  64. package/stage/1.js +2 -1
  65. package/stage/2.js +3 -2
  66. package/stage/3.js +3 -1
  67. package/stage/4.js +1 -0
  68. package/stage/pre.js +2 -1
  69. package/web/index.js +1 -0
@@ -1,32 +1,15 @@
1
1
  // https://github.com/tc39/proposal-iterator-helpers
2
2
  var $ = require('../internals/export');
3
- var toObject = require('../internals/to-object');
4
3
  var isPrototypeOf = require('../internals/object-is-prototype-of');
4
+ var getAsyncIteratorFlattenable = require('../internals/get-async-iterator-flattenable');
5
5
  var AsyncIteratorPrototype = require('../internals/async-iterator-prototype');
6
- var getAsyncIterator = require('../internals/get-async-iterator');
7
- var getIterator = require('../internals/get-iterator');
8
- var getIteratorDirect = require('../internals/get-iterator-direct');
9
- var getIteratorMethod = require('../internals/get-iterator-method');
10
- var getMethod = require('../internals/get-method');
11
- var wellKnownSymbol = require('../internals/well-known-symbol');
12
- var AsyncFromSyncIterator = require('../internals/async-from-sync-iterator');
13
6
  var WrapAsyncIterator = require('../internals/async-iterator-wrap');
14
7
 
15
- var ASYNC_ITERATOR = wellKnownSymbol('asyncIterator');
16
-
17
8
  $({ target: 'AsyncIterator', stat: true, forced: true }, {
18
9
  from: function from(O) {
19
- var object = toObject(O);
20
- var usingIterator = getMethod(object, ASYNC_ITERATOR);
21
- var iterator;
22
- if (usingIterator) {
23
- iterator = getAsyncIterator(object, usingIterator);
24
- if (isPrototypeOf(AsyncIteratorPrototype, iterator)) return iterator;
25
- }
26
- if (iterator === undefined) {
27
- usingIterator = getIteratorMethod(object);
28
- if (usingIterator) iterator = new AsyncFromSyncIterator(getIterator(object, usingIterator));
29
- }
30
- return new WrapAsyncIterator(getIteratorDirect(iterator !== undefined ? iterator : object));
10
+ var iteratorRecord = getAsyncIteratorFlattenable(O);
11
+ return isPrototypeOf(AsyncIteratorPrototype, iteratorRecord.iterator)
12
+ ? iteratorRecord.iterator
13
+ : new WrapAsyncIterator(iteratorRecord);
31
14
  }
32
15
  });
@@ -1,3 +1,4 @@
1
+ // TODO: Remove from `core-js@4`
1
2
  // https://github.com/tc39/proposal-iterator-helpers
2
3
  var $ = require('../internals/export');
3
4
  var indexed = require('../internals/async-iterator-indexed');
@@ -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 isObject = require('../internals/is-object');
7
8
  var getIteratorDirect = require('../internals/get-iterator-direct');
8
9
  var createAsyncIteratorProxy = require('../internals/async-iterator-create-proxy');
9
10
  var createIterResultObject = require('../internals/create-iter-result-object');
@@ -32,9 +33,14 @@ var AsyncIteratorProxy = createAsyncIteratorProxy(function (Promise) {
32
33
  } else {
33
34
  var value = step.value;
34
35
  try {
35
- Promise.resolve(mapper(value)).then(function (mapped) {
36
+ var result = mapper(value, state.counter++);
37
+
38
+ var handler = function (mapped) {
36
39
  resolve(createIterResultObject(mapped, false));
37
- }, ifAbruptCloseAsyncIterator);
40
+ };
41
+
42
+ if (isObject(result)) Promise.resolve(result).then(handler, ifAbruptCloseAsyncIterator);
43
+ else handler(result);
38
44
  } catch (error2) { ifAbruptCloseAsyncIterator(error2); }
39
45
  }
40
46
  } catch (error) { doneAndReject(error); }
@@ -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 isObject = require('../internals/is-object');
7
8
  var getBuiltIn = require('../internals/get-built-in');
8
9
  var getIteratorDirect = require('../internals/get-iterator-direct');
9
10
  var closeAsyncIteration = require('../internals/async-iterator-close');
@@ -18,6 +19,7 @@ $({ target: 'AsyncIterator', proto: true, real: true, forced: true }, {
18
19
  var next = record.next;
19
20
  var noInitial = arguments.length < 2;
20
21
  var accumulator = noInitial ? undefined : arguments[1];
22
+ var counter = 0;
21
23
  aCallable(reducer);
22
24
 
23
25
  return new Promise(function (resolve, reject) {
@@ -38,12 +40,18 @@ $({ target: 'AsyncIterator', proto: true, real: true, forced: true }, {
38
40
  accumulator = value;
39
41
  loop();
40
42
  } else try {
41
- Promise.resolve(reducer(accumulator, value)).then(function (result) {
42
- accumulator = result;
43
+ var result = reducer(accumulator, value, counter);
44
+
45
+ var handler = function ($result) {
46
+ accumulator = $result;
43
47
  loop();
44
- }, ifAbruptCloseAsyncIterator);
48
+ };
49
+
50
+ if (isObject(result)) Promise.resolve(result).then(handler, ifAbruptCloseAsyncIterator);
51
+ else handler(result);
45
52
  } catch (error3) { ifAbruptCloseAsyncIterator(error3); }
46
53
  }
54
+ counter++;
47
55
  } catch (error2) { reject(error2); }
48
56
  }, reject);
49
57
  } catch (error) { reject(error); }
@@ -1,11 +1,11 @@
1
1
  var $ = require('../internals/export');
2
- var uncurryThis = require('../internals/function-uncurry-this');
2
+ var uncurryThisRaw = require('../internals/function-uncurry-this-raw');
3
3
  var aCallable = require('../internals/a-callable');
4
4
 
5
5
  // `Function.prototype.unThis` method
6
6
  // https://github.com/js-choi/proposal-function-un-this
7
7
  $({ target: 'Function', proto: true, forced: true }, {
8
8
  unThis: function unThis() {
9
- return uncurryThis(aCallable(this));
9
+ return uncurryThisRaw(aCallable(this));
10
10
  }
11
11
  });
@@ -8,9 +8,10 @@ var getIteratorDirect = require('../internals/get-iterator-direct');
8
8
  $({ target: 'Iterator', proto: true, real: true, forced: true }, {
9
9
  every: function every(fn) {
10
10
  var record = getIteratorDirect(this);
11
+ var counter = 0;
11
12
  aCallable(fn);
12
13
  return !iterate(record, function (value, stop) {
13
- if (!fn(value)) return stop();
14
+ if (!fn(value, counter++)) return stop();
14
15
  }, { IS_RECORD: true, INTERRUPTED: true }).stopped;
15
16
  }
16
17
  });
@@ -18,7 +18,7 @@ var IteratorProxy = createIteratorProxy(function () {
18
18
  done = this.done = !!result.done;
19
19
  if (done) return;
20
20
  value = result.value;
21
- if (callWithSafeIterationClosing(iterator, filterer, value)) return value;
21
+ if (callWithSafeIterationClosing(iterator, filterer, [value, this.counter++], true)) return value;
22
22
  }
23
23
  });
24
24
 
@@ -8,9 +8,10 @@ var getIteratorDirect = require('../internals/get-iterator-direct');
8
8
  $({ target: 'Iterator', proto: true, real: true, forced: true }, {
9
9
  find: function find(fn) {
10
10
  var record = getIteratorDirect(this);
11
+ var counter = 0;
11
12
  aCallable(fn);
12
13
  return iterate(record, function (value, stop) {
13
- if (fn(value)) return stop(value);
14
+ if (fn(value, counter++)) return stop(value);
14
15
  }, { IS_RECORD: true, INTERRUPTED: true }).result;
15
16
  }
16
17
  });
@@ -5,22 +5,20 @@ 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 getIteratorDirect = require('../internals/get-iterator-direct');
8
- var getIteratorMethod = require('../internals/get-iterator-method');
8
+ var getIteratorFlattenable = require('../internals/get-iterator-flattenable');
9
9
  var createIteratorProxy = require('../internals/iterator-create-proxy');
10
10
  var iteratorClose = require('../internals/iterator-close');
11
11
 
12
- var $TypeError = TypeError;
13
-
14
12
  var IteratorProxy = createIteratorProxy(function () {
15
13
  var iterator = this.iterator;
16
14
  var mapper = this.mapper;
17
- var result, mapped, iteratorMethod, innerIterator;
15
+ var result, inner;
18
16
 
19
17
  while (true) {
20
- if (innerIterator = this.innerIterator) try {
21
- result = anObject(call(this.innerNext, innerIterator));
18
+ if (inner = this.inner) try {
19
+ result = anObject(call(inner.next, inner.iterator));
22
20
  if (!result.done) return result.value;
23
- this.innerIterator = this.innerNext = null;
21
+ this.inner = null;
24
22
  } catch (error) { iteratorClose(iterator, 'throw', error); }
25
23
 
26
24
  result = anObject(call(this.next, iterator));
@@ -28,15 +26,7 @@ var IteratorProxy = createIteratorProxy(function () {
28
26
  if (this.done = !!result.done) return;
29
27
 
30
28
  try {
31
- mapped = mapper(result.value);
32
- iteratorMethod = getIteratorMethod(mapped);
33
-
34
- if (!iteratorMethod) {
35
- throw $TypeError('.flatMap callback should return an iterable object');
36
- }
37
-
38
- this.innerIterator = innerIterator = anObject(call(iteratorMethod, mapped));
39
- this.innerNext = aCallable(innerIterator.next);
29
+ this.inner = getIteratorFlattenable(mapper(result.value, this.counter++));
40
30
  } catch (error) { iteratorClose(iterator, 'throw', error); }
41
31
  }
42
32
  });
@@ -45,8 +35,7 @@ $({ target: 'Iterator', proto: true, real: true, forced: true }, {
45
35
  flatMap: function flatMap(mapper) {
46
36
  return new IteratorProxy(getIteratorDirect(this), {
47
37
  mapper: aCallable(mapper),
48
- innerIterator: null,
49
- innerNext: null
38
+ inner: null
50
39
  });
51
40
  }
52
41
  });
@@ -2,10 +2,16 @@
2
2
  // https://github.com/tc39/proposal-iterator-helpers
3
3
  var $ = require('../internals/export');
4
4
  var iterate = require('../internals/iterate');
5
+ var aCallable = require('../internals/a-callable');
5
6
  var getIteratorDirect = require('../internals/get-iterator-direct');
6
7
 
7
8
  $({ target: 'Iterator', proto: true, real: true, forced: true }, {
8
9
  forEach: function forEach(fn) {
9
- iterate(getIteratorDirect(this), fn, { IS_RECORD: true });
10
+ var record = getIteratorDirect(this);
11
+ var counter = 0;
12
+ aCallable(fn);
13
+ iterate(record, function (value) {
14
+ fn(value, counter++);
15
+ }, { IS_RECORD: true });
10
16
  }
11
17
  });
@@ -1,13 +1,10 @@
1
1
  // https://github.com/tc39/proposal-iterator-helpers
2
2
  var $ = require('../internals/export');
3
3
  var call = require('../internals/function-call');
4
- var toObject = require('../internals/to-object');
5
4
  var isPrototypeOf = require('../internals/object-is-prototype-of');
6
5
  var IteratorPrototype = require('../internals/iterators-core').IteratorPrototype;
7
6
  var createIteratorProxy = require('../internals/iterator-create-proxy');
8
- var getIterator = require('../internals/get-iterator');
9
- var getIteratorDirect = require('../internals/get-iterator-direct');
10
- var getIteratorMethod = require('../internals/get-iterator-method');
7
+ var getIteratorFlattenable = require('../internals/get-iterator-flattenable');
11
8
 
12
9
  var IteratorProxy = createIteratorProxy(function () {
13
10
  return call(this.next, this.iterator);
@@ -15,14 +12,9 @@ var IteratorProxy = createIteratorProxy(function () {
15
12
 
16
13
  $({ target: 'Iterator', stat: true, forced: true }, {
17
14
  from: function from(O) {
18
- var object = toObject(O);
19
- var usingIterator = getIteratorMethod(object);
20
- var iterator;
21
- if (usingIterator) {
22
- iterator = getIterator(object, usingIterator);
23
- if (isPrototypeOf(IteratorPrototype, iterator)) return iterator;
24
- } else {
25
- iterator = object;
26
- } return new IteratorProxy(getIteratorDirect(iterator));
15
+ var iteratorRecord = getIteratorFlattenable(O);
16
+ return isPrototypeOf(IteratorPrototype, iteratorRecord.iterator)
17
+ ? iteratorRecord.iterator
18
+ : new IteratorProxy(iteratorRecord);
27
19
  }
28
20
  });
@@ -1,3 +1,4 @@
1
+ // TODO: Remove from `core-js@4`
1
2
  // https://github.com/tc39/proposal-iterator-helpers
2
3
  var $ = require('../internals/export');
3
4
  var indexed = require('../internals/iterator-indexed');
@@ -12,7 +12,7 @@ var IteratorProxy = createIteratorProxy(function () {
12
12
  var iterator = this.iterator;
13
13
  var result = anObject(call(this.next, iterator));
14
14
  var done = this.done = !!result.done;
15
- if (!done) return callWithSafeIterationClosing(iterator, this.mapper, result.value);
15
+ if (!done) return callWithSafeIterationClosing(iterator, this.mapper, [result.value, this.counter++], true);
16
16
  });
17
17
 
18
18
  $({ target: 'Iterator', proto: true, real: true, forced: true }, {
@@ -13,13 +13,15 @@ $({ target: 'Iterator', proto: true, real: true, forced: true }, {
13
13
  aCallable(reducer);
14
14
  var noInitial = arguments.length < 2;
15
15
  var accumulator = noInitial ? undefined : arguments[1];
16
+ var counter = 0;
16
17
  iterate(record, function (value) {
17
18
  if (noInitial) {
18
19
  noInitial = false;
19
20
  accumulator = value;
20
21
  } else {
21
- accumulator = reducer(accumulator, value);
22
+ accumulator = reducer(accumulator, value, counter);
22
23
  }
24
+ counter++;
23
25
  }, { IS_RECORD: true });
24
26
  if (noInitial) throw $TypeError('Reduce of empty iterator with no initial value');
25
27
  return accumulator;
@@ -8,9 +8,10 @@ var getIteratorDirect = require('../internals/get-iterator-direct');
8
8
  $({ target: 'Iterator', proto: true, real: true, forced: true }, {
9
9
  some: function some(fn) {
10
10
  var record = getIteratorDirect(this);
11
+ var counter = 0;
11
12
  aCallable(fn);
12
13
  return iterate(record, function (value, stop) {
13
- if (fn(value)) return stop();
14
+ if (fn(value, counter++)) return stop();
14
15
  }, { IS_RECORD: true, INTERRUPTED: true }).stopped;
15
16
  }
16
17
  });
@@ -7,6 +7,6 @@ var getIteratorDirect = require('../internals/get-iterator-direct');
7
7
 
8
8
  $({ target: 'Iterator', proto: true, real: true, forced: true }, {
9
9
  toAsync: function toAsync() {
10
- return new WrapAsyncIterator(getIteratorDirect(new AsyncFromSyncIterator(this)));
10
+ return new WrapAsyncIterator(getIteratorDirect(new AsyncFromSyncIterator(getIteratorDirect(this))));
11
11
  }
12
12
  });
@@ -0,0 +1,23 @@
1
+ 'use strict';
2
+ var $ = require('../internals/export');
3
+ var uncurryThis = require('../internals/function-uncurry-this');
4
+ var requireObjectCoercible = require('../internals/require-object-coercible');
5
+ var toString = require('../internals/to-string');
6
+
7
+ var charCodeAt = uncurryThis(''.charCodeAt);
8
+
9
+ // `String.prototype.isWellFormed` method
10
+ // https://github.com/tc39/proposal-is-usv-string
11
+ $({ target: 'String', proto: true, forced: true }, {
12
+ isWellFormed: function isWellFormed() {
13
+ var S = toString(requireObjectCoercible(this));
14
+ var length = S.length;
15
+ for (var i = 0; i < length; i++) {
16
+ var charCode = charCodeAt(S, i);
17
+ // single UTF-16 code unit
18
+ if ((charCode & 0xF800) != 0xD800) continue;
19
+ // unpaired surrogate
20
+ if (charCode >= 0xDC00 || ++i >= length || (charCodeAt(S, i) & 0xFC00) != 0xDC00) return false;
21
+ } return true;
22
+ }
23
+ });
@@ -0,0 +1,33 @@
1
+ 'use strict';
2
+ var $ = require('../internals/export');
3
+ var uncurryThis = require('../internals/function-uncurry-this');
4
+ var requireObjectCoercible = require('../internals/require-object-coercible');
5
+ var toString = require('../internals/to-string');
6
+
7
+ var $Array = Array;
8
+ var charAt = uncurryThis(''.charAt);
9
+ var charCodeAt = uncurryThis(''.charCodeAt);
10
+ var join = uncurryThis([].join);
11
+ var REPLACEMENT_CHARACTER = '\uFFFD';
12
+
13
+ // `String.prototype.toWellFormed` method
14
+ // https://github.com/tc39/proposal-is-usv-string
15
+ $({ target: 'String', proto: true, forced: true }, {
16
+ toWellFormed: function toWellFormed() {
17
+ var S = toString(requireObjectCoercible(this));
18
+ var length = S.length;
19
+ var result = $Array(length);
20
+ for (var i = 0; i < length; i++) {
21
+ var charCode = charCodeAt(S, i);
22
+ // single UTF-16 code unit
23
+ if ((charCode & 0xF800) != 0xD800) result[i] = charAt(S, i);
24
+ // unpaired surrogate
25
+ else if (charCode >= 0xDC00 || i + 1 >= length || (charCodeAt(S, i + 1) & 0xFC00) != 0xDC00) result[i] = REPLACEMENT_CHARACTER;
26
+ // surrogate pair
27
+ else {
28
+ result[i] = charAt(S, i);
29
+ result[++i] = charAt(S, i);
30
+ }
31
+ } return join(result, '');
32
+ }
33
+ });
@@ -0,0 +1,41 @@
1
+ 'use strict';
2
+ var $ = require('../internals/export');
3
+ var global = require('../internals/global');
4
+ var defineBuiltInAccessor = require('../internals/define-built-in-accessor');
5
+ var DESCRIPTORS = require('../internals/descriptors');
6
+
7
+ var $TypeError = TypeError;
8
+ // eslint-disable-next-line es/no-object-defineproperty -- safe
9
+ var defineProperty = Object.defineProperty;
10
+ var INCORRECT_VALUE = global.self !== global;
11
+
12
+ // `self` getter
13
+ // https://html.spec.whatwg.org/multipage/window-object.html#dom-self
14
+ try {
15
+ if (DESCRIPTORS) {
16
+ // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe
17
+ var descriptor = Object.getOwnPropertyDescriptor(global, 'self');
18
+ // some engines have `self`, but with incorrect descriptor
19
+ // https://github.com/denoland/deno/issues/15765
20
+ if (INCORRECT_VALUE || !descriptor || !descriptor.get || !descriptor.enumerable) {
21
+ defineBuiltInAccessor(global, 'self', {
22
+ get: function self() {
23
+ return global;
24
+ },
25
+ set: function self(value) {
26
+ if (this !== global) throw $TypeError('Illegal invocation');
27
+ defineProperty(global, 'self', {
28
+ value: value,
29
+ writable: true,
30
+ configurable: true,
31
+ enumerable: true
32
+ });
33
+ },
34
+ configurable: true,
35
+ enumerable: true
36
+ });
37
+ }
38
+ } else $({ global: true, simple: true, forced: INCORRECT_VALUE }, {
39
+ self: global
40
+ });
41
+ } catch (error) { /* empty */ }
@@ -371,9 +371,13 @@ var structuredCloneInternal = function (value, map) {
371
371
  } catch (error) {
372
372
  throwUnpolyfillable(type);
373
373
  } break;
374
+ case 'CropTarget':
374
375
  case 'CryptoKey':
375
- case 'GPUCompilationMessage':
376
+ case 'FileSystemDirectoryHandle':
377
+ case 'FileSystemFileHandle':
378
+ case 'FileSystemHandle':
376
379
  case 'GPUCompilationInfo':
380
+ case 'GPUCompilationMessage':
377
381
  case 'ImageBitmap':
378
382
  case 'RTCCertificate':
379
383
  case 'WebAssembly.Module':
@@ -472,6 +476,7 @@ var tryToTransfer = function (rawTransfer, map) {
472
476
  } catch (error) { /* empty */ }
473
477
  break;
474
478
  case 'ArrayBuffer':
479
+ case 'MediaSourceHandle':
475
480
  case 'MessagePort':
476
481
  case 'OffscreenCanvas':
477
482
  case 'ReadableStream':
@@ -485,6 +490,8 @@ var tryToTransfer = function (rawTransfer, map) {
485
490
  }
486
491
  };
487
492
 
493
+ // `structuredClone` method
494
+ // https://html.spec.whatwg.org/multipage/structured-data.html#dom-structuredclone
488
495
  $({ global: true, enumerable: true, sham: !PROPER_TRANSFER, forced: FORCED_REPLACEMENT }, {
489
496
  structuredClone: function structuredClone(value /* , { transfer } */) {
490
497
  var options = validateArgumentsLength(arguments.length, 1) > 1 && !isNullOrUndefined(arguments[1]) ? anObject(arguments[1]) : undefined;
package/package.json CHANGED
@@ -1,17 +1,7 @@
1
1
  {
2
2
  "name": "core-js",
3
+ "version": "3.26.0",
3
4
  "description": "Standard library",
4
- "version": "3.25.3",
5
- "repository": {
6
- "type": "git",
7
- "url": "https://github.com/zloirock/core-js.git"
8
- },
9
- "main": "index.js",
10
- "funding": {
11
- "type": "opencollective",
12
- "url": "https://opencollective.com/core-js"
13
- },
14
- "license": "MIT",
15
5
  "keywords": [
16
6
  "ES3",
17
7
  "ES5",
@@ -23,6 +13,9 @@
23
13
  "ES2018",
24
14
  "ES2019",
25
15
  "ES2020",
16
+ "ES2021",
17
+ "ES2022",
18
+ "ES2023",
26
19
  "ECMAScript 3",
27
20
  "ECMAScript 5",
28
21
  "ECMAScript 6",
@@ -33,24 +26,44 @@
33
26
  "ECMAScript 2018",
34
27
  "ECMAScript 2019",
35
28
  "ECMAScript 2020",
36
- "Harmony",
37
- "Strawman",
29
+ "ECMAScript 2021",
30
+ "ECMAScript 2022",
31
+ "ECMAScript 2023",
38
32
  "Map",
39
33
  "Set",
40
34
  "WeakMap",
41
35
  "WeakSet",
36
+ "TypedArray",
42
37
  "Promise",
43
38
  "Observable",
44
39
  "Symbol",
45
- "TypedArray",
40
+ "Iterator",
41
+ "AsyncIterator",
46
42
  "URL",
47
43
  "URLSearchParams",
48
44
  "queueMicrotask",
49
45
  "setImmediate",
46
+ "structuredClone",
50
47
  "polyfill",
51
48
  "ponyfill",
52
49
  "shim"
53
50
  ],
51
+ "repository": {
52
+ "type": "git",
53
+ "url": "https://github.com/zloirock/core-js.git",
54
+ "directory": "packages/core-js"
55
+ },
56
+ "funding": {
57
+ "type": "opencollective",
58
+ "url": "https://opencollective.com/core-js"
59
+ },
60
+ "license": "MIT",
61
+ "author": {
62
+ "name": "Denis Pushkarev",
63
+ "email": "zloirock@zloirock.ru",
64
+ "url": "http://zloirock.ru"
65
+ },
66
+ "main": "index.js",
54
67
  "scripts": {
55
68
  "postinstall": "node -e \"try{require('./postinstall')}catch(e){}\""
56
69
  }
@@ -0,0 +1,2 @@
1
+ require('../modules/esnext.string.is-well-formed');
2
+ require('../modules/esnext.string.to-well-formed');
package/stable/index.js CHANGED
@@ -240,6 +240,7 @@ require('../modules/web.dom-exception.stack');
240
240
  require('../modules/web.dom-exception.to-string-tag');
241
241
  require('../modules/web.immediate');
242
242
  require('../modules/web.queue-microtask');
243
+ require('../modules/web.self');
243
244
  require('../modules/web.structured-clone');
244
245
  require('../modules/web.timers');
245
246
  require('../modules/web.url');
package/stable/self.js ADDED
@@ -0,0 +1,4 @@
1
+ require('../modules/web.self');
2
+ var path = require('../internals/path');
3
+
4
+ module.exports = path.self;
package/stage/0.js CHANGED
@@ -1,3 +1,5 @@
1
+ var parent = require('./1');
2
+
1
3
  require('../proposals/efficient-64-bit-arithmetic');
2
4
  require('../proposals/function-is-callable-is-constructor');
3
5
  require('../proposals/function-un-this');
@@ -5,6 +7,5 @@ require('../proposals/string-at');
5
7
  require('../proposals/url');
6
8
  // TODO: Obsolete versions, remove from `core-js@4`:
7
9
  require('../proposals/array-filtering');
8
- var parent = require('./1');
9
10
 
10
11
  module.exports = parent;
package/stage/1.js CHANGED
@@ -1,3 +1,5 @@
1
+ var parent = require('./2');
2
+
1
3
  require('../proposals/array-filtering-stage-1');
2
4
  require('../proposals/array-last');
3
5
  require('../proposals/array-unique');
@@ -19,6 +21,5 @@ require('../proposals/string-cooked');
19
21
  require('../proposals/array-from-async');
20
22
  require('../proposals/map-upsert');
21
23
  require('../proposals/string-replace-all');
22
- var parent = require('./2');
23
24
 
24
25
  module.exports = parent;
package/stage/2.js CHANGED
@@ -1,13 +1,14 @@
1
- require('../proposals/array-from-async-stage-2');
1
+ var parent = require('./3');
2
+
2
3
  require('../proposals/array-is-template-object');
3
4
  require('../proposals/decorator-metadata');
4
5
  require('../proposals/iterator-helpers');
5
6
  require('../proposals/map-upsert-stage-2');
6
7
  require('../proposals/set-methods');
7
8
  require('../proposals/using-statement');
9
+ require('../proposals/well-formed-unicode-strings');
8
10
  // TODO: Obsolete versions, remove from `core-js@4`
9
11
  require('../proposals/array-grouping');
10
12
  require('../proposals/decorators');
11
- var parent = require('./3');
12
13
 
13
14
  module.exports = parent;
package/stage/3.js CHANGED
@@ -1,7 +1,9 @@
1
+ var parent = require('./4');
2
+
3
+ require('../proposals/array-from-async-stage-2');
1
4
  require('../proposals/array-grouping-stage-3-2');
2
5
  require('../proposals/change-array-by-copy');
3
6
  // TODO: Obsolete versions, remove from `core-js@4`
4
7
  require('../proposals/array-grouping-stage-3');
5
- var parent = require('./4');
6
8
 
7
9
  module.exports = parent;
package/stage/4.js CHANGED
@@ -8,6 +8,7 @@ require('../proposals/promise-any');
8
8
  require('../proposals/relative-indexing-method');
9
9
  require('../proposals/string-match-all');
10
10
  require('../proposals/string-replace-all-stage-4');
11
+
11
12
  var path = require('../internals/path');
12
13
 
13
14
  module.exports = path;
package/stage/pre.js CHANGED
@@ -1,4 +1,5 @@
1
- require('../proposals/reflect-metadata');
2
1
  var parent = require('./0');
3
2
 
3
+ require('../proposals/reflect-metadata');
4
+
4
5
  module.exports = parent;
package/web/index.js CHANGED
@@ -7,6 +7,7 @@ require('../modules/web.dom-exception.stack');
7
7
  require('../modules/web.dom-exception.to-string-tag');
8
8
  require('../modules/web.immediate');
9
9
  require('../modules/web.queue-microtask');
10
+ require('../modules/web.self');
10
11
  require('../modules/web.structured-clone');
11
12
  require('../modules/web.timers');
12
13
  require('../modules/web.url');