core-js 3.48.0 → 3.50.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 (179) hide show
  1. package/README.md +2 -2
  2. package/actual/iterator/chunks.js +8 -0
  3. package/actual/iterator/concat.js +4 -0
  4. package/actual/iterator/from.js +4 -0
  5. package/actual/iterator/includes.js +8 -0
  6. package/actual/iterator/index.js +4 -1
  7. package/actual/iterator/join.js +8 -0
  8. package/actual/iterator/windows.js +8 -0
  9. package/actual/iterator/zip-keyed.js +6 -21
  10. package/actual/iterator/zip.js +6 -19
  11. package/actual/promise/all-keyed.js +16 -0
  12. package/actual/promise/all-settled-keyed.js +16 -0
  13. package/actual/promise/index.js +4 -0
  14. package/configurator.js +1 -1
  15. package/es/index.js +2 -0
  16. package/es/iterator/index.js +4 -0
  17. package/es/iterator/zip-keyed.js +24 -0
  18. package/es/iterator/zip.js +22 -0
  19. package/es/object/define-properties.js +2 -2
  20. package/es/object/define-property.js +2 -2
  21. package/es/object/get-own-property-descriptor.js +2 -2
  22. package/es/promise/try.js +2 -2
  23. package/features/iterator/includes.js +2 -0
  24. package/features/iterator/join.js +2 -0
  25. package/features/promise/all-keyed.js +2 -0
  26. package/features/promise/all-settled-keyed.js +2 -0
  27. package/full/index.js +6 -0
  28. package/full/iterator/chunks.js +2 -6
  29. package/full/iterator/concat.js +0 -2
  30. package/full/iterator/from.js +0 -2
  31. package/full/iterator/includes.js +4 -0
  32. package/full/iterator/index.js +0 -2
  33. package/full/iterator/join.js +4 -0
  34. package/full/iterator/range.js +3 -1
  35. package/full/iterator/windows.js +2 -6
  36. package/full/iterator/zip-keyed.js +0 -2
  37. package/full/iterator/zip.js +0 -2
  38. package/full/promise/all-keyed.js +4 -0
  39. package/full/promise/all-settled-keyed.js +4 -0
  40. package/internals/add-disposable-resource.js +1 -1
  41. package/internals/advance-string-index.js +1 -1
  42. package/internals/array-buffer-transfer.js +4 -1
  43. package/internals/array-buffer-view-core.js +1 -1
  44. package/internals/array-buffer.js +1 -2
  45. package/internals/array-fill.js +2 -1
  46. package/internals/array-from-async.js +7 -9
  47. package/internals/array-from.js +15 -4
  48. package/internals/async-from-sync-iterator.js +28 -4
  49. package/internals/async-iterator-close.js +11 -3
  50. package/internals/async-iterator-create-proxy.js +61 -22
  51. package/internals/async-iterator-iteration.js +7 -4
  52. package/internals/async-iterator-map.js +20 -18
  53. package/internals/does-not-exceed-safe-integer.js +1 -1
  54. package/internals/environment-is-ios.js +1 -2
  55. package/internals/error-stack-clear.js +1 -1
  56. package/internals/function-bind-native.js +1 -1
  57. package/internals/function-name.js +1 -1
  58. package/internals/get-async-iterator-flattenable.js +1 -1
  59. package/internals/get-async-iterator.js +1 -1
  60. package/internals/get-internal-iterator.js +1 -0
  61. package/internals/get-iterator-flattenable.js +1 -1
  62. package/internals/get-iterator-internal.js +14 -0
  63. package/internals/get-iterator-method-internal.js +14 -0
  64. package/internals/get-iterator-method.js +4 -7
  65. package/internals/get-iterator-record.js +1 -1
  66. package/internals/get-iterator.js +4 -5
  67. package/internals/is-iterable.js +4 -10
  68. package/internals/iterate.js +10 -5
  69. package/internals/iterator-chunk-size-validation.js +17 -0
  70. package/internals/iterator-cleanup-state.js +6 -0
  71. package/internals/iterator-create-proxy.js +14 -5
  72. package/internals/iterator-window.js +4 -6
  73. package/internals/iterator-zip.js +4 -3
  74. package/internals/iterators.js +1 -1
  75. package/internals/math-log1p.js +3 -1
  76. package/internals/numeric-range-iterator.js +9 -4
  77. package/internals/regexp-exec.js +20 -13
  78. package/internals/set-difference.js +1 -1
  79. package/internals/set-is-disjoint-from.js +1 -1
  80. package/internals/set-is-superset-of.js +1 -1
  81. package/internals/shared-store.js +2 -2
  82. package/internals/shared.js +3 -1
  83. package/internals/string-pad.js +2 -1
  84. package/internals/string-parse.js +1 -1
  85. package/internals/string-repeat.js +2 -1
  86. package/internals/to-uint8-clamped.js +11 -3
  87. package/internals/typed-array-constructor.js +1 -2
  88. package/internals/typed-array-from.js +5 -3
  89. package/internals/uint8-from-base64.js +4 -2
  90. package/internals/uint8-from-hex.js +10 -10
  91. package/internals/url-percent-coding.js +171 -0
  92. package/modules/es.array.flat.js +2 -1
  93. package/modules/es.array.from-async.js +1 -1
  94. package/modules/es.array.includes.js +7 -1
  95. package/modules/es.array.sort.js +3 -1
  96. package/modules/es.data-view.get-float16.js +1 -1
  97. package/modules/es.data-view.set-float16.js +2 -1
  98. package/modules/es.date.set-year.js +4 -1
  99. package/modules/es.date.to-json.js +1 -1
  100. package/modules/es.error.is-error.js +1 -1
  101. package/modules/es.escape.js +10 -8
  102. package/modules/es.iterator.concat.js +5 -4
  103. package/modules/es.iterator.drop.js +16 -1
  104. package/modules/es.iterator.flat-map.js +12 -14
  105. package/modules/es.iterator.take.js +22 -2
  106. package/modules/es.iterator.zip-keyed.js +70 -0
  107. package/modules/es.iterator.zip.js +92 -0
  108. package/modules/es.json.parse.js +14 -2
  109. package/modules/es.json.stringify.js +157 -38
  110. package/modules/es.map.get-or-insert-computed.js +3 -4
  111. package/modules/es.map.get-or-insert.js +2 -3
  112. package/modules/es.map.group-by.js +2 -0
  113. package/modules/es.math.asinh.js +6 -1
  114. package/modules/es.math.atanh.js +2 -2
  115. package/modules/es.math.cbrt.js +3 -1
  116. package/modules/es.math.sum-precise.js +3 -3
  117. package/modules/es.number.to-exponential.js +15 -6
  118. package/modules/es.object.group-by.js +2 -0
  119. package/modules/es.object.proto.js +2 -1
  120. package/modules/es.promise.try.js +16 -8
  121. package/modules/es.reflect.construct.js +1 -1
  122. package/modules/es.reflect.define-property.js +10 -0
  123. package/modules/es.reflect.delete-property.js +5 -2
  124. package/modules/es.reflect.get.js +9 -7
  125. package/modules/es.reflect.set.js +14 -9
  126. package/modules/es.regexp.constructor.js +16 -5
  127. package/modules/es.string.ends-with.js +1 -1
  128. package/modules/es.string.from-code-point.js +2 -2
  129. package/modules/es.string.match-all.js +1 -1
  130. package/modules/es.string.match.js +5 -3
  131. package/modules/es.string.replace.js +9 -8
  132. package/modules/es.string.search.js +3 -1
  133. package/modules/es.string.split.js +7 -5
  134. package/modules/es.string.starts-with.js +1 -1
  135. package/modules/es.string.substr.js +5 -7
  136. package/modules/es.symbol.constructor.js +3 -2
  137. package/modules/es.symbol.description.js +9 -0
  138. package/modules/es.typed-array.sort.js +3 -3
  139. package/modules/es.uint8-array.from-base64.js +1 -1
  140. package/modules/es.uint8-array.from-hex.js +1 -1
  141. package/modules/es.uint8-array.set-from-base64.js +1 -1
  142. package/modules/es.uint8-array.set-from-hex.js +1 -1
  143. package/modules/es.uint8-array.to-base64.js +23 -6
  144. package/modules/es.uint8-array.to-hex.js +6 -4
  145. package/modules/es.weak-map.get-or-insert-computed.js +2 -2
  146. package/modules/es.weak-map.get-or-insert.js +2 -3
  147. package/modules/esnext.array.is-template-object.js +1 -1
  148. package/modules/esnext.async-iterator.reduce.js +2 -2
  149. package/modules/esnext.async-iterator.take.js +4 -2
  150. package/modules/esnext.bigint.range.js +1 -1
  151. package/modules/esnext.iterator.chunks.js +6 -8
  152. package/modules/esnext.iterator.includes.js +44 -0
  153. package/modules/esnext.iterator.join.js +31 -0
  154. package/modules/esnext.iterator.range.js +1 -1
  155. package/modules/esnext.iterator.windows.js +2 -1
  156. package/modules/esnext.iterator.zip-keyed.js +2 -70
  157. package/modules/esnext.iterator.zip.js +2 -90
  158. package/modules/esnext.number.from-string.js +30 -3
  159. package/modules/esnext.number.range.js +1 -1
  160. package/modules/esnext.observable.from.js +6 -3
  161. package/modules/esnext.promise.all-keyed.js +57 -0
  162. package/modules/esnext.promise.all-settled-keyed.js +60 -0
  163. package/modules/esnext.string.dedent.js +1 -1
  164. package/modules/web.atob.js +15 -6
  165. package/modules/web.btoa.js +10 -3
  166. package/modules/web.structured-clone.js +2 -2
  167. package/modules/web.url-search-params.constructor.js +13 -130
  168. package/modules/web.url-search-params.delete.js +6 -9
  169. package/modules/web.url.constructor.js +154 -39
  170. package/modules/web.url.parse.js +1 -1
  171. package/modules/web.url.to-json.js +4 -1
  172. package/package.json +8 -1
  173. package/proposals/await-dictionary.js +4 -0
  174. package/proposals/iterator-includes.js +3 -0
  175. package/proposals/iterator-join.js +3 -0
  176. package/stable/index.js +2 -0
  177. package/stable/iterator/zip-keyed.js +5 -0
  178. package/stable/iterator/zip.js +5 -0
  179. package/stage/3.js +4 -0
@@ -10,6 +10,7 @@ var IteratorPrototype = require('../internals/iterators-core').IteratorPrototype
10
10
  var createIterResultObject = require('../internals/create-iter-result-object');
11
11
  var iteratorClose = require('../internals/iterator-close');
12
12
  var iteratorCloseAll = require('../internals/iterator-close-all');
13
+ var cleanupState = require('../internals/iterator-cleanup-state');
13
14
 
14
15
  var TO_STRING_TAG = wellKnownSymbol('toStringTag');
15
16
  var ITERATOR_HELPER = 'IteratorHelper';
@@ -31,29 +32,37 @@ var createIteratorProxyPrototype = function (IS_ITERATOR) {
31
32
  if (state.done) return createIterResultObject(undefined, true);
32
33
  try {
33
34
  var result = state.nextHandler();
35
+ if (state.done) cleanupState(state);
34
36
  return state.returnHandlerResult ? result : createIterResultObject(result, state.done);
35
37
  } catch (error) {
36
38
  state.done = true;
39
+ cleanupState(state);
37
40
  throw error;
38
41
  }
39
42
  },
40
43
  'return': function () {
41
44
  var state = getInternalState(this);
42
45
  var iterator = state.iterator;
46
+ var inner = state.inner;
47
+ var openIters = state.openIters;
48
+ var done = state.done;
43
49
  state.done = true;
44
50
  if (IS_ITERATOR) {
45
51
  var returnMethod = getMethod(iterator, 'return');
46
52
  return returnMethod ? call(returnMethod, iterator) : createIterResultObject(undefined, true);
47
53
  }
48
- if (state.inner) try {
49
- iteratorClose(state.inner.iterator, NORMAL);
54
+ cleanupState(state);
55
+ if (done) return createIterResultObject(undefined, true);
56
+ if (inner) try {
57
+ iteratorClose(inner.iterator, NORMAL);
50
58
  } catch (error) {
51
59
  return iteratorClose(iterator, THROW, error);
52
60
  }
53
- if (state.openIters) try {
54
- iteratorCloseAll(state.openIters, NORMAL);
61
+ if (openIters) try {
62
+ iteratorCloseAll(openIters, NORMAL);
55
63
  } catch (error) {
56
- return iteratorClose(iterator, THROW, error);
64
+ if (iterator) return iteratorClose(iterator, THROW, error);
65
+ throw error;
57
66
  }
58
67
  if (iterator) iteratorClose(iterator, NORMAL);
59
68
  return createIterResultObject(undefined, true);
@@ -5,9 +5,9 @@ var createIteratorProxy = require('../internals/iterator-create-proxy');
5
5
  var createIterResultObject = require('../internals/create-iter-result-object');
6
6
  var getIteratorDirect = require('../internals/get-iterator-direct');
7
7
  var iteratorClose = require('../internals/iterator-close');
8
+ var chunkSizeValidation = require('../internals/iterator-chunk-size-validation');
8
9
  var uncurryThis = require('../internals/function-uncurry-this');
9
10
 
10
- var $RangeError = RangeError;
11
11
  var $TypeError = TypeError;
12
12
  var push = uncurryThis([].push);
13
13
  var slice = uncurryThis([].slice);
@@ -23,12 +23,12 @@ var IteratorProxy = createIteratorProxy(function () {
23
23
  while (true) {
24
24
  result = anObject(call(next, iterator));
25
25
  done = this.done = !!result.done;
26
- if (allowPartial && done && buffer.length && buffer.length < windowSize) return createIterResultObject(buffer, false);
26
+ if (allowPartial && done && buffer.length && buffer.length < windowSize) return createIterResultObject(slice(buffer, 0), false);
27
27
  if (done) return createIterResultObject(undefined, true);
28
28
 
29
29
  if (buffer.length === windowSize) this.buffer = buffer = slice(buffer, 1);
30
30
  push(buffer, result.value);
31
- if (buffer.length === windowSize) return createIterResultObject(buffer, false);
31
+ if (buffer.length === windowSize) return createIterResultObject(slice(buffer, 0), false);
32
32
  }
33
33
  }, false, true);
34
34
 
@@ -36,9 +36,7 @@ var IteratorProxy = createIteratorProxy(function () {
36
36
  // https://github.com/tc39/proposal-iterator-chunking
37
37
  module.exports = function (O, windowSize, undersized) {
38
38
  anObject(O);
39
- if (typeof windowSize != 'number' || !windowSize || windowSize >>> 0 !== windowSize) {
40
- return iteratorClose(O, 'throw', new $RangeError('`windowSize` must be integer in [1, 2^32-1]'));
41
- }
39
+ chunkSizeValidation(windowSize, O);
42
40
  if (undersized !== undefined && undersized !== 'only-full' && undersized !== ALLOW_PARTIAL) {
43
41
  return iteratorClose(O, 'throw', new $TypeError('Incorrect `undersized` argument'));
44
42
  }
@@ -1,6 +1,7 @@
1
1
  'use strict';
2
2
  var call = require('../internals/function-call');
3
3
  var uncurryThis = require('../internals/function-uncurry-this');
4
+ var anObject = require('../internals/an-object');
4
5
  var createIteratorProxy = require('../internals/iterator-create-proxy');
5
6
  var iteratorCloseAll = require('../internals/iterator-close-all');
6
7
 
@@ -31,7 +32,7 @@ var IteratorProxy = createIteratorProxy(function () {
31
32
  result = padding[i];
32
33
  } else {
33
34
  try {
34
- result = call(iter.next, iter.iterator);
35
+ result = anObject(call(iter.next, iter.iterator));
35
36
  done = result.done;
36
37
  result = result.value;
37
38
  } catch (error) {
@@ -54,12 +55,12 @@ var IteratorProxy = createIteratorProxy(function () {
54
55
  for (var k = 1; k < iterCount; k++) {
55
56
  // eslint-disable-next-line max-depth -- specification case
56
57
  try {
57
- open = call(iters[k].next, iters[k].iterator);
58
+ open = anObject(call(iters[k].next, iters[k].iterator));
58
59
  openDone = open.done;
59
60
  open = open.value;
60
61
  } catch (error) {
61
62
  openIters[k] = undefined;
62
- return iteratorCloseAll(openIters, THROW, open);
63
+ return iteratorCloseAll(openIters, THROW, error);
63
64
  }
64
65
  // eslint-disable-next-line max-depth -- specification case
65
66
  if (openDone) {
@@ -1,2 +1,2 @@
1
1
  'use strict';
2
- module.exports = {};
2
+ module.exports = Object.create ? Object.create(null) : {};
@@ -6,5 +6,7 @@ var log = Math.log;
6
6
  // eslint-disable-next-line es/no-math-log1p -- safe
7
7
  module.exports = Math.log1p || function log1p(x) {
8
8
  var n = +x;
9
- return n > -1e-8 && n < 1e-8 ? n - n * n / 2 : log(1 + n);
9
+ if (n > -1e-8 && n < 1e-8) return n - n * n / 2;
10
+ var u = 1 + n;
11
+ return u === 1 ? n : n === u - 1 ? log(u) : n * log(u) / (u - 1);
10
12
  };
@@ -1,4 +1,5 @@
1
1
  'use strict';
2
+ // https://github.com/tc39/proposal-iterator.range
2
3
  var InternalStateModule = require('../internals/internal-state');
3
4
  var createIteratorConstructor = require('../internals/iterator-create-constructor');
4
5
  var createIterResultObject = require('../internals/create-iter-result-object');
@@ -17,6 +18,10 @@ var $RangeError = RangeError;
17
18
  var $TypeError = TypeError;
18
19
 
19
20
  var $RangeIterator = createIteratorConstructor(function NumericRangeIterator(start, end, option, type, zero, one) {
21
+ // eslint-disable-next-line no-self-compare -- NaN check
22
+ if (start !== start || end !== end) {
23
+ throw new $RangeError(INCORRECT_RANGE);
24
+ }
20
25
  // TODO: Drop the first `typeof` check after removing legacy methods in `core-js@4`
21
26
  if (typeof start != type || (end !== Infinity && end !== -Infinity && typeof end != type)) {
22
27
  throw new $TypeError(INCORRECT_RANGE);
@@ -27,7 +32,7 @@ var $RangeIterator = createIteratorConstructor(function NumericRangeIterator(sta
27
32
  var ifIncrease = end > start;
28
33
  var inclusiveEnd = false;
29
34
  var step;
30
- if (option === undefined) {
35
+ if (isNullOrUndefined(option)) {
31
36
  step = undefined;
32
37
  } else if (isObject(option)) {
33
38
  step = option.step;
@@ -43,11 +48,11 @@ var $RangeIterator = createIteratorConstructor(function NumericRangeIterator(sta
43
48
  if (typeof step != type) {
44
49
  throw new $TypeError(INCORRECT_RANGE);
45
50
  }
46
- if (step === Infinity || step === -Infinity || (step === zero && start !== end)) {
51
+ // eslint-disable-next-line no-self-compare -- NaN check
52
+ if (step !== step || step === Infinity || step === -Infinity || (step === zero && start !== end)) {
47
53
  throw new $RangeError(INCORRECT_RANGE);
48
54
  }
49
- // eslint-disable-next-line no-self-compare -- NaN check
50
- var hitsEnd = start !== start || end !== end || step !== step || (end > start) !== (step > zero);
55
+ var hitsEnd = end > start !== step > zero;
51
56
  setInternalState(this, {
52
57
  type: NUMERIC_RANGE_ITERATOR,
53
58
  start: start,
@@ -35,18 +35,29 @@ var NPCG_INCLUDED = /()??/.exec('')[1] !== undefined;
35
35
 
36
36
  var PATCH = UPDATES_LAST_INDEX_WRONG || NPCG_INCLUDED || UNSUPPORTED_Y || UNSUPPORTED_DOT_ALL || UNSUPPORTED_NCG;
37
37
 
38
+ var setGroups = function (re, groups) {
39
+ var object = re.groups = create(null);
40
+ for (var i = 0; i < groups.length; i++) {
41
+ var group = groups[i];
42
+ object[group[0]] = re[group[1]];
43
+ }
44
+ };
45
+
38
46
  if (PATCH) {
39
47
  patchedExec = function exec(string) {
40
48
  var re = this;
41
49
  var state = getInternalState(re);
42
50
  var str = toString(string);
43
51
  var raw = state.raw;
44
- var result, reCopy, lastIndex, match, i, object, group;
52
+ var result, reCopy, lastIndex;
45
53
 
46
54
  if (raw) {
47
55
  raw.lastIndex = re.lastIndex;
48
56
  result = call(patchedExec, raw, str);
49
57
  re.lastIndex = raw.lastIndex;
58
+
59
+ if (result && state.groups) setGroups(result, state.groups);
60
+
50
61
  return result;
51
62
  }
52
63
 
@@ -65,8 +76,10 @@ if (PATCH) {
65
76
 
66
77
  strCopy = stringSlice(str, re.lastIndex);
67
78
  // Support anchored sticky behavior.
68
- if (re.lastIndex > 0 && (!re.multiline || re.multiline && charAt(str, re.lastIndex - 1) !== '\n')) {
69
- source = '(?: ' + source + ')';
79
+ var prevChar = re.lastIndex > 0 && charAt(str, re.lastIndex - 1);
80
+ if (re.lastIndex > 0 &&
81
+ (!re.multiline || re.multiline && prevChar !== '\n' && prevChar !== '\r' && prevChar !== '\u2028' && prevChar !== '\u2029')) {
82
+ source = '(?: (?:' + source + '))';
70
83
  strCopy = ' ' + strCopy;
71
84
  charsAdded++;
72
85
  }
@@ -80,11 +93,11 @@ if (PATCH) {
80
93
  }
81
94
  if (UPDATES_LAST_INDEX_WRONG) lastIndex = re.lastIndex;
82
95
 
83
- match = call(nativeExec, sticky ? reCopy : re, strCopy);
96
+ var match = call(nativeExec, sticky ? reCopy : re, strCopy);
84
97
 
85
98
  if (sticky) {
86
99
  if (match) {
87
- match.input = stringSlice(match.input, charsAdded);
100
+ match.input = str;
88
101
  match[0] = stringSlice(match[0], charsAdded);
89
102
  match.index = re.lastIndex;
90
103
  re.lastIndex += match[0].length;
@@ -96,19 +109,13 @@ if (PATCH) {
96
109
  // Fix browsers whose `exec` methods don't consistently return `undefined`
97
110
  // for NPCG, like IE8. NOTE: This doesn't work for /(.?)?/
98
111
  call(nativeReplace, match[0], reCopy, function () {
99
- for (i = 1; i < arguments.length - 2; i++) {
112
+ for (var i = 1; i < arguments.length - 2; i++) {
100
113
  if (arguments[i] === undefined) match[i] = undefined;
101
114
  }
102
115
  });
103
116
  }
104
117
 
105
- if (match && groups) {
106
- match.groups = object = create(null);
107
- for (i = 0; i < groups.length; i++) {
108
- group = groups[i];
109
- object[group[0]] = match[group[1]];
110
- }
111
- }
118
+ if (match && groups) setGroups(match, groups);
112
119
 
113
120
  return match;
114
121
  };
@@ -16,7 +16,7 @@ module.exports = function difference(other) {
16
16
  var O = aSet(this);
17
17
  var otherRec = getSetRecord(other);
18
18
  var result = clone(O);
19
- if (size(O) <= otherRec.size) iterateSet(O, function (e) {
19
+ if (size(result) <= otherRec.size) iterateSet(result, function (e) {
20
20
  if (otherRec.includes(e)) remove(result, e);
21
21
  });
22
22
  else iterateSimple(otherRec.getIterator(), function (e) {
@@ -17,6 +17,6 @@ module.exports = function isDisjointFrom(other) {
17
17
  }, true) !== false;
18
18
  var iterator = otherRec.getIterator();
19
19
  return iterateSimple(iterator, function (e) {
20
- if (has(O, e)) return iteratorClose(iterator, 'normal', false);
20
+ if (has(O, e)) return iteratorClose(iterator.iterator, 'normal', false);
21
21
  }) !== false;
22
22
  };
@@ -14,6 +14,6 @@ module.exports = function isSupersetOf(other) {
14
14
  if (size(O) < otherRec.size) return false;
15
15
  var iterator = otherRec.getIterator();
16
16
  return iterateSimple(iterator, function (e) {
17
- if (!has(O, e)) return iteratorClose(iterator, 'normal', false);
17
+ if (!has(O, e)) return iteratorClose(iterator.iterator, 'normal', false);
18
18
  }) !== false;
19
19
  };
@@ -7,9 +7,9 @@ var SHARED = '__core-js_shared__';
7
7
  var store = module.exports = globalThis[SHARED] || defineGlobalProperty(SHARED, {});
8
8
 
9
9
  (store.versions || (store.versions = [])).push({
10
- version: '3.48.0',
10
+ version: '3.50.0',
11
11
  mode: IS_PURE ? 'pure' : 'global',
12
12
  copyright: '© 2013–2025 Denis Pushkarev (zloirock.ru), 2025–2026 CoreJS Company (core-js.io). All rights reserved.',
13
- license: 'https://github.com/zloirock/core-js/blob/v3.48.0/LICENSE',
13
+ license: 'https://github.com/zloirock/core-js/blob/v3.50.0/LICENSE',
14
14
  source: 'https://github.com/zloirock/core-js'
15
15
  });
@@ -1,6 +1,8 @@
1
1
  'use strict';
2
2
  var store = require('../internals/shared-store');
3
+ // eslint-disable-next-line es/no-object-create -- safe
4
+ var create = Object.create || Object;
3
5
 
4
6
  module.exports = function (key, value) {
5
- return store[key] || (store[key] = value || {});
7
+ return store[key] || (store[key] = value || create(null));
6
8
  };
@@ -15,9 +15,10 @@ var createMethod = function (IS_END) {
15
15
  var S = toString(requireObjectCoercible($this));
16
16
  var intMaxLength = toLength(maxLength);
17
17
  var stringLength = S.length;
18
+ if (intMaxLength <= stringLength) return S;
18
19
  var fillStr = fillString === undefined ? ' ' : toString(fillString);
19
20
  var fillLen, stringFiller;
20
- if (intMaxLength <= stringLength || fillStr === '') return S;
21
+ if (fillStr === '') return S;
21
22
  fillLen = intMaxLength - stringLength;
22
23
  stringFiller = repeat(fillStr, ceil(fillLen / fillStr.length));
23
24
  if (stringFiller.length > fillLen) stringFiller = stringSlice(stringFiller, 0, fillLen);
@@ -23,7 +23,7 @@ var isDigit = function (str, index) {
23
23
  };
24
24
 
25
25
  var parseHex = function (str, index, end) {
26
- if (end >= str.length) return -1;
26
+ if (end > str.length || index >= end) return -1;
27
27
  var n = 0;
28
28
  for (; index < end; index++) {
29
29
  var c = hexToInt(charCodeAt(str, index));
@@ -4,6 +4,7 @@ var toString = require('../internals/to-string');
4
4
  var requireObjectCoercible = require('../internals/require-object-coercible');
5
5
 
6
6
  var $RangeError = RangeError;
7
+ var floor = Math.floor;
7
8
 
8
9
  // `String.prototype.repeat` method implementation
9
10
  // https://tc39.es/ecma262/#sec-string.prototype.repeat
@@ -12,6 +13,6 @@ module.exports = function repeat(count) {
12
13
  var result = '';
13
14
  var n = toIntegerOrInfinity(count);
14
15
  if (n < 0 || n === Infinity) throw new $RangeError('Wrong number of repetitions');
15
- for (;n > 0; (n >>>= 1) && (str += str)) if (n & 1) result += str;
16
+ for (;n > 0; (n = floor(n / 2)) && (str += str)) if (n % 2) result += str;
16
17
  return result;
17
18
  };
@@ -1,7 +1,15 @@
1
1
  'use strict';
2
- var round = Math.round;
2
+ var floor = Math.floor;
3
3
 
4
+ // https://tc39.es/ecma262/#sec-touint8clamp
4
5
  module.exports = function (it) {
5
- var value = round(it);
6
- return value < 0 ? 0 : value > 0xFF ? 0xFF : value & 0xFF;
6
+ var number = +it;
7
+ // eslint-disable-next-line no-self-compare -- NaN check
8
+ if (number !== number || number <= 0) return 0;
9
+ if (number >= 0xFF) return 0xFF;
10
+ var f = floor(number);
11
+ if (f + 0.5 < number) return f + 1;
12
+ if (number < f + 0.5) return f;
13
+ // round-half-to-even (banker's rounding)
14
+ return f % 2 === 0 ? f : f + 1;
7
15
  };
@@ -10,7 +10,6 @@ var anInstance = require('../internals/an-instance');
10
10
  var createPropertyDescriptor = require('../internals/create-property-descriptor');
11
11
  var createNonEnumerableProperty = require('../internals/create-non-enumerable-property');
12
12
  var isIntegralNumber = require('../internals/is-integral-number');
13
- var toLength = require('../internals/to-length');
14
13
  var toIndex = require('../internals/to-index');
15
14
  var toOffset = require('../internals/to-offset');
16
15
  var toUint8Clamped = require('../internals/to-uint8-clamped');
@@ -162,7 +161,7 @@ if (DESCRIPTORS) {
162
161
  byteLength = $len - byteOffset;
163
162
  if (byteLength < 0) throw new RangeError(WRONG_LENGTH);
164
163
  } else {
165
- byteLength = toLength($length) * BYTES;
164
+ byteLength = toIndex($length) * BYTES;
166
165
  if (byteLength + byteOffset > $len) throw new RangeError(WRONG_LENGTH);
167
166
  }
168
167
  length = byteLength / BYTES;
@@ -1,11 +1,12 @@
1
1
  'use strict';
2
2
  var bind = require('../internals/function-bind-context');
3
3
  var call = require('../internals/function-call');
4
+ var aCallable = require('../internals/a-callable');
4
5
  var aConstructor = require('../internals/a-constructor');
5
6
  var toObject = require('../internals/to-object');
6
7
  var lengthOfArrayLike = require('../internals/length-of-array-like');
7
- var getIterator = require('../internals/get-iterator');
8
- var getIteratorMethod = require('../internals/get-iterator-method');
8
+ var getIterator = require('../internals/get-iterator-internal');
9
+ var getIteratorMethod = require('../internals/get-iterator-method-internal');
9
10
  var isArrayIteratorMethod = require('../internals/is-array-iterator-method');
10
11
  var isBigIntArray = require('../internals/is-big-int-array');
11
12
  var aTypedArrayConstructor = require('../internals/array-buffer-view-core').aTypedArrayConstructor;
@@ -13,10 +14,11 @@ var toBigInt = require('../internals/to-big-int');
13
14
 
14
15
  module.exports = function from(source /* , mapfn, thisArg */) {
15
16
  var C = aConstructor(this);
16
- var O = toObject(source);
17
17
  var argumentsLength = arguments.length;
18
18
  var mapfn = argumentsLength > 1 ? arguments[1] : undefined;
19
19
  var mapping = mapfn !== undefined;
20
+ if (mapping) aCallable(mapfn);
21
+ var O = toObject(source);
20
22
  var iteratorMethod = getIteratorMethod(O);
21
23
  var i, length, result, thisIsBigIntArray, value, step, iterator, next;
22
24
  if (iteratorMethod && !isArrayIteratorMethod(iteratorMethod)) {
@@ -13,7 +13,9 @@ var base64UrlAlphabet = base64Map.c2iUrl;
13
13
 
14
14
  var SyntaxError = globalThis.SyntaxError;
15
15
  var TypeError = globalThis.TypeError;
16
+ var $Array = globalThis.Array;
16
17
  var at = uncurryThis(''.charAt);
18
+ var floor = Math.floor;
17
19
 
18
20
  var skipAsciiWhitespace = function (string, index) {
19
21
  var length = string.length;
@@ -82,7 +84,7 @@ module.exports = function (string, options, into, maxLength) {
82
84
  if (into) notDetached(into.buffer);
83
85
 
84
86
  var stringLength = string.length;
85
- var bytes = into || [];
87
+ var bytes = into || $Array(floor(stringLength * 3 / 4));
86
88
  var written = 0;
87
89
  var read = 0;
88
90
  var chunk = '';
@@ -152,6 +154,6 @@ module.exports = function (string, options, into, maxLength) {
152
154
  }
153
155
  }
154
156
  }
155
-
157
+ if (!into) bytes.length = written;
156
158
  return { bytes: bytes, read: read, written: written };
157
159
  };
@@ -4,23 +4,23 @@ var uncurryThis = require('../internals/function-uncurry-this');
4
4
 
5
5
  var Uint8Array = globalThis.Uint8Array;
6
6
  var SyntaxError = globalThis.SyntaxError;
7
- var parseInt = globalThis.parseInt;
8
7
  var min = Math.min;
9
- var NOT_HEX = /[^\da-f]/i;
10
- var exec = uncurryThis(NOT_HEX.exec);
11
- var stringSlice = uncurryThis(''.slice);
8
+ var stringMatch = uncurryThis(''.match);
12
9
 
13
10
  module.exports = function (string, into) {
14
11
  var stringLength = string.length;
15
12
  if (stringLength % 2 !== 0) throw new SyntaxError('String should be an even number of characters');
16
13
  var maxLength = into ? min(into.length, stringLength / 2) : stringLength / 2;
17
14
  var bytes = into || new Uint8Array(maxLength);
18
- var read = 0;
15
+ var segments = stringMatch(string, /[\S\s]{2}/g);
19
16
  var written = 0;
20
- while (written < maxLength) {
21
- var hexits = stringSlice(string, read, read += 2);
22
- if (exec(NOT_HEX, hexits)) throw new SyntaxError('String should only contain hex characters');
23
- bytes[written++] = parseInt(hexits, 16);
17
+ for (; written < maxLength; written++) {
18
+ var result = +('0x' + segments[written] + '0');
19
+ // eslint-disable-next-line no-self-compare -- NaN check
20
+ if (result !== result) {
21
+ throw new SyntaxError('String should only contain hex characters');
22
+ }
23
+ bytes[written] = result >> 4;
24
24
  }
25
- return { bytes: bytes, read: read };
25
+ return { bytes: bytes, read: written << 1 };
26
26
  };
@@ -0,0 +1,171 @@
1
+ 'use strict';
2
+ // TODO: in core-js@4, move /modules/ dependencies to public entries for better optimization by tools like `preset-env`
3
+ require('../modules/es.string.from-code-point');
4
+ var getBuiltIn = require('../internals/get-built-in');
5
+ var uncurryThis = require('../internals/function-uncurry-this');
6
+
7
+ var fromCharCode = String.fromCharCode;
8
+ var fromCodePoint = getBuiltIn('String', 'fromCodePoint');
9
+ var $encodeURIComponent = encodeURIComponent;
10
+ var $parseInt = parseInt;
11
+ var charAt = uncurryThis(''.charAt);
12
+ var push = uncurryThis([].push);
13
+ var replace = uncurryThis(''.replace);
14
+ var stringSlice = uncurryThis(''.slice);
15
+ var exec = uncurryThis(/./.exec);
16
+
17
+ var FALLBACK_REPLACER = '\uFFFD';
18
+ var VALID_HEX = /^[0-9a-f]+$/i;
19
+ // a surrogate pair is matched first, so a one-unit match is always a lone surrogate
20
+ var SURROGATE = /[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDFFF]/g;
21
+
22
+ var parseHexOctet = function (string, start) {
23
+ var substr = stringSlice(string, start, start + 2);
24
+ if (!exec(VALID_HEX, substr)) return NaN;
25
+
26
+ return $parseInt(substr, 16);
27
+ };
28
+
29
+ var getLeadingOnes = function (octet) {
30
+ var count = 0;
31
+ for (var mask = 0x80; mask > 0 && (octet & mask) !== 0; mask >>= 1) {
32
+ count++;
33
+ }
34
+ return count;
35
+ };
36
+
37
+ var utf8Decode = function (octets) {
38
+ var codePoint = null;
39
+ var length = octets.length;
40
+
41
+ switch (length) {
42
+ case 1:
43
+ codePoint = octets[0];
44
+ break;
45
+ case 2:
46
+ codePoint = (octets[0] & 0x1F) << 6 | (octets[1] & 0x3F);
47
+ break;
48
+ case 3:
49
+ codePoint = (octets[0] & 0x0F) << 12 | (octets[1] & 0x3F) << 6 | (octets[2] & 0x3F);
50
+ break;
51
+ case 4:
52
+ codePoint = (octets[0] & 0x07) << 18 | (octets[1] & 0x3F) << 12 | (octets[2] & 0x3F) << 6 | (octets[3] & 0x3F);
53
+ break;
54
+ }
55
+
56
+ // reject surrogates, overlong encodings, and out-of-range codepoints
57
+ if (codePoint === null
58
+ || codePoint > 0x10FFFF
59
+ || (codePoint >= 0xD800 && codePoint <= 0xDFFF)
60
+ || codePoint < (length > 3 ? 0x10000 : length > 2 ? 0x800 : length > 1 ? 0x80 : 0)
61
+ ) return null;
62
+
63
+ return codePoint;
64
+ };
65
+
66
+ var replaceLoneSurrogate = function (chunk) {
67
+ return chunk.length === 2 ? chunk : FALLBACK_REPLACER;
68
+ };
69
+
70
+ // https://url.spec.whatwg.org/#percent-decode
71
+ /* eslint-disable max-depth -- ok */
72
+ var decode = function (input) {
73
+ var length = input.length;
74
+ var result = '';
75
+ var i = 0;
76
+
77
+ while (i < length) {
78
+ var decodedChar = charAt(input, i);
79
+
80
+ if (decodedChar === '%') {
81
+ if (charAt(input, i + 1) === '%' || i + 3 > length) {
82
+ result += '%';
83
+ i++;
84
+ continue;
85
+ }
86
+
87
+ var octet = parseHexOctet(input, i + 1);
88
+
89
+ // eslint-disable-next-line no-self-compare -- NaN check
90
+ if (octet !== octet) {
91
+ result += decodedChar;
92
+ i++;
93
+ continue;
94
+ }
95
+
96
+ i += 2;
97
+ var byteSequenceLength = getLeadingOnes(octet);
98
+
99
+ if (byteSequenceLength === 0) {
100
+ decodedChar = fromCharCode(octet);
101
+ } else {
102
+ if (byteSequenceLength === 1 || byteSequenceLength > 4) {
103
+ result += FALLBACK_REPLACER;
104
+ i++;
105
+ continue;
106
+ }
107
+
108
+ var octets = [octet];
109
+ var sequenceIndex = 1;
110
+
111
+ while (sequenceIndex < byteSequenceLength) {
112
+ i++;
113
+ if (i + 3 > length || charAt(input, i) !== '%') break;
114
+
115
+ var nextByte = parseHexOctet(input, i + 1);
116
+
117
+ // eslint-disable-next-line no-self-compare -- NaN check
118
+ if (nextByte !== nextByte || nextByte > 191 || nextByte < 128) break;
119
+
120
+ // https://encoding.spec.whatwg.org/#utf-8-decoder - position-specific byte ranges
121
+ if (sequenceIndex === 1) {
122
+ if (octet === 0xE0 && nextByte < 0xA0) break;
123
+ if (octet === 0xED && nextByte > 0x9F) break;
124
+ if (octet === 0xF0 && nextByte < 0x90) break;
125
+ if (octet === 0xF4 && nextByte > 0x8F) break;
126
+ }
127
+
128
+ push(octets, nextByte);
129
+ i += 2;
130
+ sequenceIndex++;
131
+ }
132
+
133
+ if (octets.length !== byteSequenceLength) {
134
+ result += FALLBACK_REPLACER;
135
+ continue;
136
+ }
137
+
138
+ var codePoint = utf8Decode(octets);
139
+ if (codePoint === null) {
140
+ for (var replacement = 0; replacement < byteSequenceLength; replacement++) result += FALLBACK_REPLACER;
141
+ i++;
142
+ continue;
143
+ } else {
144
+ decodedChar = fromCodePoint(codePoint);
145
+ }
146
+ }
147
+ }
148
+
149
+ result += decodedChar;
150
+ i++;
151
+ }
152
+
153
+ return result;
154
+ };
155
+ /* eslint-enable max-depth -- ok */
156
+
157
+ // https://url.spec.whatwg.org/#string-percent-encode-after-encoding
158
+ // a lone surrogate is the only input `encodeURIComponent` throws on, and the UTF-8
159
+ // encoder replaces it - so the throw selects the slow path instead of a per-call scan
160
+ var encode = function (input) {
161
+ try {
162
+ return $encodeURIComponent(input);
163
+ } catch (error) {
164
+ return $encodeURIComponent(replace(input, SURROGATE, replaceLoneSurrogate));
165
+ }
166
+ };
167
+
168
+ module.exports = {
169
+ decode: decode,
170
+ encode: encode
171
+ };
@@ -13,8 +13,9 @@ $({ target: 'Array', proto: true }, {
13
13
  var depthArg = arguments.length ? arguments[0] : undefined;
14
14
  var O = toObject(this);
15
15
  var sourceLen = lengthOfArrayLike(O);
16
+ var depthNum = depthArg === undefined ? 1 : toIntegerOrInfinity(depthArg);
16
17
  var A = arraySpeciesCreate(O, 0);
17
- flattenIntoArray(A, O, O, sourceLen, 0, depthArg === undefined ? 1 : toIntegerOrInfinity(depthArg));
18
+ flattenIntoArray(A, O, O, sourceLen, 0, depthNum);
18
19
  return A;
19
20
  }
20
21
  });