core-js 3.32.1 → 3.33.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 (108) hide show
  1. package/features/regexp/escape.js +2 -0
  2. package/full/index.js +1 -0
  3. package/full/regexp/escape.js +5 -0
  4. package/full/regexp/index.js +1 -0
  5. package/internals/a-callable.js +1 -1
  6. package/internals/a-constructor.js +1 -1
  7. package/internals/a-possible-prototype.js +1 -1
  8. package/internals/an-instance.js +1 -1
  9. package/internals/an-object.js +1 -1
  10. package/internals/array-buffer-byte-length.js +1 -1
  11. package/internals/array-buffer-transfer.js +22 -14
  12. package/internals/array-buffer-view-core.js +3 -3
  13. package/internals/array-buffer.js +6 -5
  14. package/internals/array-reduce.js +1 -1
  15. package/internals/array-set-length.js +1 -1
  16. package/internals/array-with.js +1 -1
  17. package/internals/check-correctness-of-iteration.js +3 -1
  18. package/internals/composite-key.js +1 -1
  19. package/internals/date-to-iso-string.js +1 -1
  20. package/internals/date-to-primitive.js +1 -1
  21. package/internals/delete-property-or-throw.js +1 -1
  22. package/internals/detach-transferable.js +37 -0
  23. package/internals/error-stack-clear.js +1 -1
  24. package/internals/error-stack-installable.js +1 -1
  25. package/internals/fix-regexp-well-known-symbol-logic.js +4 -1
  26. package/internals/get-iterator.js +1 -1
  27. package/internals/get-set-record.js +2 -2
  28. package/internals/ieee754.js +12 -23
  29. package/internals/internal-state.js +3 -3
  30. package/internals/is-constructor.js +1 -1
  31. package/internals/iterate.js +1 -1
  32. package/internals/iterator-define.js +5 -2
  33. package/internals/map-upsert.js +1 -1
  34. package/internals/math-expm1.js +1 -0
  35. package/internals/math-f16round.js +12 -0
  36. package/internals/math-float-round.js +23 -0
  37. package/internals/math-fround.js +5 -21
  38. package/internals/new-promise-capability.js +1 -1
  39. package/internals/not-a-nan.js +1 -1
  40. package/internals/not-a-regexp.js +1 -1
  41. package/internals/numeric-range-iterator.js +5 -5
  42. package/internals/object-define-property.js +1 -1
  43. package/internals/ordinary-to-primitive.js +1 -1
  44. package/internals/parse-json-string.js +4 -4
  45. package/internals/regexp-exec-abstract.js +1 -1
  46. package/internals/regexp-unsupported-dot-all.js +1 -1
  47. package/internals/require-object-coercible.js +1 -1
  48. package/internals/shared.js +2 -2
  49. package/internals/string-cooked.js +1 -1
  50. package/internals/string-punycode-to-ascii.js +3 -3
  51. package/internals/string-repeat.js +1 -1
  52. package/internals/to-big-int.js +1 -1
  53. package/internals/to-index.js +1 -1
  54. package/internals/to-offset.js +1 -1
  55. package/internals/to-positive-integer.js +1 -1
  56. package/internals/to-primitive.js +1 -1
  57. package/internals/to-string.js +1 -1
  58. package/internals/typed-array-constructor.js +3 -3
  59. package/internals/validate-arguments-length.js +1 -1
  60. package/modules/es.aggregate-error.constructor.js +1 -1
  61. package/modules/es.error.cause.js +2 -1
  62. package/modules/es.number.constructor.js +15 -4
  63. package/modules/es.number.to-exponential.js +1 -1
  64. package/modules/es.number.to-fixed.js +1 -1
  65. package/modules/es.promise.constructor.js +2 -2
  66. package/modules/es.regexp.constructor.js +1 -1
  67. package/modules/es.regexp.dot-all.js +1 -1
  68. package/modules/es.regexp.sticky.js +1 -1
  69. package/modules/es.string.from-code-point.js +1 -1
  70. package/modules/es.string.match-all.js +1 -1
  71. package/modules/es.string.replace-all.js +1 -1
  72. package/modules/es.symbol.constructor.js +17 -8
  73. package/modules/es.symbol.key-for.js +1 -1
  74. package/modules/es.typed-array.set.js +1 -1
  75. package/modules/esnext.async-disposable-stack.constructor.js +1 -1
  76. package/modules/esnext.async-iterator.constructor.js +1 -1
  77. package/modules/esnext.async-iterator.reduce.js +1 -1
  78. package/modules/esnext.data-view.set-float16.js +3 -2
  79. package/modules/esnext.data-view.set-uint8-clamped.js +1 -1
  80. package/modules/esnext.disposable-stack.constructor.js +1 -1
  81. package/modules/esnext.iterator.constructor.js +1 -1
  82. package/modules/esnext.iterator.range.js +1 -1
  83. package/modules/esnext.iterator.reduce.js +1 -1
  84. package/modules/esnext.json.parse.js +7 -7
  85. package/modules/esnext.json.raw-json.js +2 -2
  86. package/modules/esnext.map.reduce.js +1 -1
  87. package/modules/esnext.map.update.js +1 -1
  88. package/modules/esnext.math.f16round.js +2 -11
  89. package/modules/esnext.math.seeded-prng.js +1 -1
  90. package/modules/esnext.number.from-string.js +5 -5
  91. package/modules/esnext.observable.constructor.js +1 -2
  92. package/modules/esnext.observable.from.js +1 -2
  93. package/modules/esnext.observable.of.js +1 -2
  94. package/modules/esnext.regexp.escape.js +20 -0
  95. package/modules/esnext.set.reduce.js +1 -1
  96. package/modules/esnext.string.dedent.js +5 -5
  97. package/modules/esnext.suppressed-error.constructor.js +1 -1
  98. package/modules/web.dom-exception.constructor.js +2 -2
  99. package/modules/web.dom-exception.stack.js +2 -2
  100. package/modules/web.self.js +1 -1
  101. package/modules/web.structured-clone.js +19 -18
  102. package/modules/web.url-search-params.constructor.js +1 -1
  103. package/modules/web.url.constructor.js +3 -3
  104. package/package.json +1 -1
  105. package/postinstall.js +2 -0
  106. package/proposals/regexp-escaping.js +3 -0
  107. package/stage/2.js +1 -0
  108. package/internals/observable-forced.js +0 -14
@@ -30,7 +30,7 @@ var push = uncurryThis([].push);
30
30
 
31
31
  var IS_DIGIT = /^\d$/;
32
32
  var IS_NON_ZERO_DIGIT = /^[1-9]$/;
33
- var IS_NUMBER_START = /^(-|\d)$/;
33
+ var IS_NUMBER_START = /^(?:-|\d)$/;
34
34
  var IS_WHITESPACE = /^[\t\n\r ]$/;
35
35
 
36
36
  var PRIMITIVE = 0;
@@ -43,7 +43,7 @@ var $parse = function (source, reviver) {
43
43
  var value = root.value;
44
44
  var endIndex = context.skip(IS_WHITESPACE, root.end);
45
45
  if (endIndex < source.length) {
46
- throw SyntaxError('Unexpected extra character: "' + at(source, endIndex) + '" after the parsed data at: ' + endIndex);
46
+ throw new SyntaxError('Unexpected extra character: "' + at(source, endIndex) + '" after the parsed data at: ' + endIndex);
47
47
  }
48
48
  return isCallable(reviver) ? internalize({ '': value }, '', reviver, root) : value;
49
49
  };
@@ -119,7 +119,7 @@ Context.prototype = {
119
119
  return fork.keyword(false);
120
120
  case 'n':
121
121
  return fork.keyword(null);
122
- } throw SyntaxError('Unexpected character: "' + chr + '" at: ' + i);
122
+ } throw new SyntaxError('Unexpected character: "' + chr + '" at: ' + i);
123
123
  },
124
124
  node: function (type, value, start, end, nodes) {
125
125
  return new Node(value, end, type ? null : slice(this.source, start, end), nodes);
@@ -196,14 +196,14 @@ Context.prototype = {
196
196
  if (at(source, i) === '-') i++;
197
197
  if (at(source, i) === '0') i++;
198
198
  else if (exec(IS_NON_ZERO_DIGIT, at(source, i))) i = this.skip(IS_DIGIT, ++i);
199
- else throw SyntaxError('Failed to parse number at: ' + i);
199
+ else throw new SyntaxError('Failed to parse number at: ' + i);
200
200
  if (at(source, i) === '.') i = this.skip(IS_DIGIT, ++i);
201
201
  if (at(source, i) === 'e' || at(source, i) === 'E') {
202
202
  i++;
203
203
  if (at(source, i) === '+' || at(source, i) === '-') i++;
204
204
  var exponentStartIndex = i;
205
205
  i = this.skip(IS_DIGIT, i);
206
- if (exponentStartIndex === i) throw SyntaxError("Failed to parse number's exponent value at: " + i);
206
+ if (exponentStartIndex === i) throw new SyntaxError("Failed to parse number's exponent value at: " + i);
207
207
  }
208
208
  return this.node(PRIMITIVE, Number(slice(source, startIndex, i)), startIndex, i);
209
209
  },
@@ -211,7 +211,7 @@ Context.prototype = {
211
211
  var keyword = '' + value;
212
212
  var index = this.index;
213
213
  var endIndex = index + keyword.length;
214
- if (slice(this.source, index, endIndex) !== keyword) throw SyntaxError('Failed to parse value at: ' + index);
214
+ if (slice(this.source, index, endIndex) !== keyword) throw new SyntaxError('Failed to parse value at: ' + index);
215
215
  return this.node(PRIMITIVE, value, index, endIndex);
216
216
  },
217
217
  skip: function (regex, i) {
@@ -223,7 +223,7 @@ Context.prototype = {
223
223
  i = this.skip(IS_WHITESPACE, i);
224
224
  var chr = at(this.source, i);
225
225
  for (var j = 0; j < array.length; j++) if (array[j] === chr) return i;
226
- throw SyntaxError('Unexpected character: "' + chr + '" at: ' + i);
226
+ throw new SyntaxError('Unexpected character: "' + chr + '" at: ' + i);
227
227
  }
228
228
  };
229
229
 
@@ -37,10 +37,10 @@ $({ target: 'JSON', stat: true, forced: !NATIVE_RAW_JSON }, {
37
37
  rawJSON: function rawJSON(text) {
38
38
  var jsonString = toString(text);
39
39
  if (jsonString === '' || exec(IS_WHITESPACE, at(jsonString, 0)) || exec(IS_WHITESPACE, at(jsonString, jsonString.length - 1))) {
40
- throw $SyntaxError(ERROR_MESSAGE);
40
+ throw new $SyntaxError(ERROR_MESSAGE);
41
41
  }
42
42
  var parsed = parse(jsonString);
43
- if (typeof parsed == 'object' && parsed !== null) throw $SyntaxError(ERROR_MESSAGE);
43
+ if (typeof parsed == 'object' && parsed !== null) throw new $SyntaxError(ERROR_MESSAGE);
44
44
  var obj = create(null);
45
45
  setInternalState(obj, { type: 'RawJSON' });
46
46
  createProperty(obj, 'rawJSON', jsonString);
@@ -22,7 +22,7 @@ $({ target: 'Map', proto: true, real: true, forced: true }, {
22
22
  accumulator = callbackfn(accumulator, value, key, map);
23
23
  }
24
24
  });
25
- if (noInitial) throw $TypeError('Reduce of empty map with no initial value');
25
+ if (noInitial) throw new $TypeError('Reduce of empty map with no initial value');
26
26
  return accumulator;
27
27
  }
28
28
  });
@@ -18,7 +18,7 @@ $({ target: 'Map', proto: true, real: true, forced: true }, {
18
18
  aCallable(callback);
19
19
  var isPresentInMap = has(map, key);
20
20
  if (!isPresentInMap && length < 3) {
21
- throw $TypeError('Updating absent value');
21
+ throw new $TypeError('Updating absent value');
22
22
  }
23
23
  var value = isPresentInMap ? get(map, key) : aCallable(length > 2 ? arguments[2] : undefined)(key, map);
24
24
  set(map, key, callback(value, key, map));
@@ -1,16 +1,7 @@
1
1
  'use strict';
2
2
  var $ = require('../internals/export');
3
- var IEEE754 = require('../internals/ieee754');
4
-
5
- var packIEEE754 = IEEE754.pack;
6
- var unpackIEEE754 = IEEE754.unpack;
7
- var $isFinite = isFinite;
3
+ var f16round = require('../internals/math-f16round');
8
4
 
9
5
  // `Math.f16round` method
10
6
  // https://github.com/tc39/proposal-float16array
11
- $({ target: 'Math', stat: true }, {
12
- f16round: function f16round(x) {
13
- var n = +x;
14
- return $isFinite(n) && n !== 0 ? unpackIEEE754(packIEEE754(n, 10, 2), 10) : n;
15
- }
16
- });
7
+ $({ target: 'Math', stat: true }, { f16round: f16round });
@@ -30,7 +30,7 @@ var $SeededRandomGenerator = createIteratorConstructor(function SeededRandomGene
30
30
  $({ target: 'Math', stat: true, forced: true }, {
31
31
  seededPRNG: function seededPRNG(it) {
32
32
  var seed = anObject(it).seed;
33
- if (!numberIsFinite(seed)) throw $TypeError(SEED_TYPE_ERROR);
33
+ if (!numberIsFinite(seed)) throw new $TypeError(SEED_TYPE_ERROR);
34
34
  return new $SeededRandomGenerator(seed);
35
35
  }
36
36
  });
@@ -21,17 +21,17 @@ $({ target: 'Number', stat: true, forced: true }, {
21
21
  fromString: function fromString(string, radix) {
22
22
  var sign = 1;
23
23
  var R, mathNum;
24
- if (typeof string != 'string') throw $TypeError(INVALID_NUMBER_REPRESENTATION);
25
- if (!string.length) throw $SyntaxError(INVALID_NUMBER_REPRESENTATION);
24
+ if (typeof string != 'string') throw new $TypeError(INVALID_NUMBER_REPRESENTATION);
25
+ if (!string.length) throw new $SyntaxError(INVALID_NUMBER_REPRESENTATION);
26
26
  if (charAt(string, 0) === '-') {
27
27
  sign = -1;
28
28
  string = stringSlice(string, 1);
29
- if (!string.length) throw $SyntaxError(INVALID_NUMBER_REPRESENTATION);
29
+ if (!string.length) throw new $SyntaxError(INVALID_NUMBER_REPRESENTATION);
30
30
  }
31
31
  R = radix === undefined ? 10 : toIntegerOrInfinity(radix);
32
- if (R < 2 || R > 36) throw $RangeError(INVALID_RADIX);
32
+ if (R < 2 || R > 36) throw new $RangeError(INVALID_RADIX);
33
33
  if (!exec(valid, string) || numberToString(mathNum = parseInt(string, R), R) !== string) {
34
- throw $SyntaxError(INVALID_NUMBER_REPRESENTATION);
34
+ throw new $SyntaxError(INVALID_NUMBER_REPRESENTATION);
35
35
  }
36
36
  return sign * mathNum;
37
37
  }
@@ -17,7 +17,6 @@ var defineBuiltInAccessor = require('../internals/define-built-in-accessor');
17
17
  var hostReportErrors = require('../internals/host-report-errors');
18
18
  var wellKnownSymbol = require('../internals/well-known-symbol');
19
19
  var InternalStateModule = require('../internals/internal-state');
20
- var OBSERVABLE_FORCED = require('../internals/observable-forced');
21
20
 
22
21
  var $$OBSERVABLE = wellKnownSymbol('observable');
23
22
  var OBSERVABLE = 'Observable';
@@ -181,7 +180,7 @@ defineBuiltIns(ObservablePrototype, {
181
180
 
182
181
  defineBuiltIn(ObservablePrototype, $$OBSERVABLE, function () { return this; });
183
182
 
184
- $({ global: true, constructor: true, forced: OBSERVABLE_FORCED }, {
183
+ $({ global: true, constructor: true, forced: true }, {
185
184
  Observable: $Observable
186
185
  });
187
186
 
@@ -8,13 +8,12 @@ var getIterator = require('../internals/get-iterator');
8
8
  var getMethod = require('../internals/get-method');
9
9
  var iterate = require('../internals/iterate');
10
10
  var wellKnownSymbol = require('../internals/well-known-symbol');
11
- var OBSERVABLE_FORCED = require('../internals/observable-forced');
12
11
 
13
12
  var $$OBSERVABLE = wellKnownSymbol('observable');
14
13
 
15
14
  // `Observable.from` method
16
15
  // https://github.com/tc39/proposal-observable
17
- $({ target: 'Observable', stat: true, forced: OBSERVABLE_FORCED }, {
16
+ $({ target: 'Observable', stat: true, forced: true }, {
18
17
  from: function from(x) {
19
18
  var C = isConstructor(this) ? this : getBuiltIn('Observable');
20
19
  var observableMethod = getMethod(anObject(x), $$OBSERVABLE);
@@ -2,13 +2,12 @@
2
2
  var $ = require('../internals/export');
3
3
  var getBuiltIn = require('../internals/get-built-in');
4
4
  var isConstructor = require('../internals/is-constructor');
5
- var OBSERVABLE_FORCED = require('../internals/observable-forced');
6
5
 
7
6
  var Array = getBuiltIn('Array');
8
7
 
9
8
  // `Observable.of` method
10
9
  // https://github.com/tc39/proposal-observable
11
- $({ target: 'Observable', stat: true, forced: OBSERVABLE_FORCED }, {
10
+ $({ target: 'Observable', stat: true, forced: true }, {
12
11
  of: function of() {
13
12
  var C = isConstructor(this) ? this : getBuiltIn('Observable');
14
13
  var length = arguments.length;
@@ -0,0 +1,20 @@
1
+ 'use strict';
2
+ var $ = require('../internals/export');
3
+ var uncurryThis = require('../internals/function-uncurry-this');
4
+ var toString = require('../internals/to-string');
5
+ var WHITESPACES = require('../internals/whitespaces');
6
+
7
+ var charCodeAt = uncurryThis(''.charCodeAt);
8
+ var replace = uncurryThis(''.replace);
9
+ var NEED_ESCAPING = RegExp('[!"#$%&\'()*+,\\-./:;<=>?@[\\\\\\]^`{|}~' + WHITESPACES + ']', 'g');
10
+
11
+ // `RegExp.escape` method
12
+ // https://github.com/tc39/proposal-regex-escaping
13
+ $({ target: 'RegExp', stat: true, forced: true }, {
14
+ escape: function escape(S) {
15
+ var str = toString(S);
16
+ var firstCode = charCodeAt(str, 0);
17
+ // escape first DecimalDigit
18
+ return (firstCode > 47 && firstCode < 58 ? '\\x3' : '') + replace(str, NEED_ESCAPING, '\\$&');
19
+ }
20
+ });
@@ -22,7 +22,7 @@ $({ target: 'Set', proto: true, real: true, forced: true }, {
22
22
  accumulator = callbackfn(accumulator, value, value, set);
23
23
  }
24
24
  });
25
- if (noInitial) throw $TypeError('Reduce of empty set with no initial value');
25
+ if (noInitial) throw new $TypeError('Reduce of empty set with no initial value');
26
26
  return accumulator;
27
27
  }
28
28
  });
@@ -47,7 +47,7 @@ var INVALID_CLOSING_LINE = 'Invalid closing line';
47
47
  var dedentTemplateStringsArray = function (template) {
48
48
  var rawInput = template.raw;
49
49
  // https://github.com/tc39/proposal-string-dedent/issues/75
50
- if (FREEZING && !isFrozen(rawInput)) throw $TypeError('Raw template should be frozen');
50
+ if (FREEZING && !isFrozen(rawInput)) throw new $TypeError('Raw template should be frozen');
51
51
  if (globalDedentRegistry.has(rawInput)) return globalDedentRegistry.get(rawInput);
52
52
  var raw = dedentStringsArray(rawInput);
53
53
  var cookedArr = cookStrings(raw);
@@ -67,12 +67,12 @@ var dedentStringsArray = function (template) {
67
67
  var i = 0;
68
68
  var lines, common, quasi, k;
69
69
 
70
- if (!length) throw $TypeError(INVALID_TAG);
70
+ if (!length) throw new $TypeError(INVALID_TAG);
71
71
 
72
72
  for (; i < length; i++) {
73
73
  var element = t[i];
74
74
  if (typeof element == 'string') blocks[i] = split(element, NEW_LINE);
75
- else throw $TypeError(INVALID_TAG);
75
+ else throw new $TypeError(INVALID_TAG);
76
76
  }
77
77
 
78
78
  for (i = 0; i < length; i++) {
@@ -80,13 +80,13 @@ var dedentStringsArray = function (template) {
80
80
  lines = blocks[i];
81
81
  if (i === 0) {
82
82
  if (lines.length === 1 || lines[0].length > 0) {
83
- throw $TypeError(INVALID_OPENING_LINE);
83
+ throw new $TypeError(INVALID_OPENING_LINE);
84
84
  }
85
85
  lines[1] = '';
86
86
  }
87
87
  if (lastSplit) {
88
88
  if (lines.length === 1 || exec(NON_WHITESPACE, lines[lines.length - 1])) {
89
- throw $TypeError(INVALID_CLOSING_LINE);
89
+ throw new $TypeError(INVALID_CLOSING_LINE);
90
90
  }
91
91
  lines[lines.length - 2] = '';
92
92
  lines[lines.length - 1] = '';
@@ -18,7 +18,7 @@ var $SuppressedError = function SuppressedError(error, suppressed, message) {
18
18
  var isInstance = isPrototypeOf(SuppressedErrorPrototype, this);
19
19
  var that;
20
20
  if (setPrototypeOf) {
21
- that = setPrototypeOf($Error(), isInstance ? getPrototypeOf(this) : SuppressedErrorPrototype);
21
+ that = setPrototypeOf(new $Error(), isInstance ? getPrototypeOf(this) : SuppressedErrorPrototype);
22
22
  } else {
23
23
  that = isInstance ? this : create(SuppressedErrorPrototype);
24
24
  createNonEnumerableProperty(that, TO_STRING_TAG, 'Error');
@@ -37,7 +37,7 @@ var NativeDOMExceptionPrototype = NativeDOMException && NativeDOMException.proto
37
37
  var ErrorPrototype = Error.prototype;
38
38
  var setInternalState = InternalStateModule.set;
39
39
  var getInternalState = InternalStateModule.getterFor(DOM_EXCEPTION);
40
- var HAS_STACK = 'stack' in Error(DOM_EXCEPTION);
40
+ var HAS_STACK = 'stack' in new Error(DOM_EXCEPTION);
41
41
 
42
42
  var codeFor = function (name) {
43
43
  return hasOwn(DOMExceptionConstants, name) && DOMExceptionConstants[name].m ? DOMExceptionConstants[name].c : 0;
@@ -61,7 +61,7 @@ var $DOMException = function DOMException() {
61
61
  this.code = code;
62
62
  }
63
63
  if (HAS_STACK) {
64
- var error = Error(message);
64
+ var error = new Error(message);
65
65
  error.name = DOM_EXCEPTION;
66
66
  defineProperty(this, 'stack', createPropertyDescriptor(1, clearErrorStack(error.stack, 1)));
67
67
  }
@@ -23,7 +23,7 @@ var $DOMException = function DOMException() {
23
23
  var message = normalizeStringArgument(argumentsLength < 1 ? undefined : arguments[0]);
24
24
  var name = normalizeStringArgument(argumentsLength < 2 ? undefined : arguments[1], 'Error');
25
25
  var that = new NativeDOMException(message, name);
26
- var error = Error(message);
26
+ var error = new Error(message);
27
27
  error.name = DOM_EXCEPTION;
28
28
  defineProperty(that, 'stack', createPropertyDescriptor(1, clearErrorStack(error.stack, 1)));
29
29
  inheritIfRequired(that, this, $DOMException);
@@ -32,7 +32,7 @@ var $DOMException = function DOMException() {
32
32
 
33
33
  var DOMExceptionPrototype = $DOMException.prototype = NativeDOMException.prototype;
34
34
 
35
- var ERROR_HAS_STACK = 'stack' in Error(DOM_EXCEPTION);
35
+ var ERROR_HAS_STACK = 'stack' in new Error(DOM_EXCEPTION);
36
36
  var DOM_EXCEPTION_HAS_STACK = 'stack' in new NativeDOMException(1, 2);
37
37
 
38
38
  // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe
@@ -23,7 +23,7 @@ try {
23
23
  return global;
24
24
  },
25
25
  set: function self(value) {
26
- if (this !== global) throw $TypeError('Illegal invocation');
26
+ if (this !== global) throw new $TypeError('Illegal invocation');
27
27
  defineProperty(global, 'self', {
28
28
  value: value,
29
29
  writable: true,
@@ -22,8 +22,9 @@ var validateArgumentsLength = require('../internals/validate-arguments-length');
22
22
  var getRegExpFlags = require('../internals/regexp-get-flags');
23
23
  var MapHelpers = require('../internals/map-helpers');
24
24
  var SetHelpers = require('../internals/set-helpers');
25
+ var arrayBufferTransfer = require('../internals/array-buffer-transfer');
25
26
  var ERROR_STACK_INSTALLABLE = require('../internals/error-stack-installable');
26
- var PROPER_TRANSFER = require('../internals/structured-clone-proper-transfer');
27
+ var PROPER_STRUCTURED_CLONE_TRANSFER = require('../internals/structured-clone-proper-transfer');
27
28
 
28
29
  var Object = global.Object;
29
30
  var Array = global.Array;
@@ -62,7 +63,7 @@ var checkBasicSemantic = function (structuredCloneImplementation) {
62
63
  var set1 = new global.Set([7]);
63
64
  var set2 = structuredCloneImplementation(set1);
64
65
  var number = structuredCloneImplementation(Object(7));
65
- return set2 === set1 || !set2.has(7) || typeof number != 'object' || number !== 7;
66
+ return set2 === set1 || !set2.has(7) || typeof number != 'object' || +number !== 7;
66
67
  }) && structuredCloneImplementation;
67
68
  };
68
69
 
@@ -230,37 +231,37 @@ var structuredCloneInternal = function (value, map, transferredBuffers) {
230
231
  name = value.name;
231
232
  switch (name) {
232
233
  case 'AggregateError':
233
- cloned = getBuiltin('AggregateError')([]);
234
+ cloned = new (getBuiltin('AggregateError'))([]);
234
235
  break;
235
236
  case 'EvalError':
236
- cloned = EvalError();
237
+ cloned = new EvalError();
237
238
  break;
238
239
  case 'RangeError':
239
- cloned = RangeError();
240
+ cloned = new RangeError();
240
241
  break;
241
242
  case 'ReferenceError':
242
- cloned = ReferenceError();
243
+ cloned = new ReferenceError();
243
244
  break;
244
245
  case 'SyntaxError':
245
- cloned = SyntaxError();
246
+ cloned = new SyntaxError();
246
247
  break;
247
248
  case 'TypeError':
248
- cloned = TypeError();
249
+ cloned = new TypeError();
249
250
  break;
250
251
  case 'URIError':
251
- cloned = URIError();
252
+ cloned = new URIError();
252
253
  break;
253
254
  case 'CompileError':
254
- cloned = CompileError();
255
+ cloned = new CompileError();
255
256
  break;
256
257
  case 'LinkError':
257
- cloned = LinkError();
258
+ cloned = new LinkError();
258
259
  break;
259
260
  case 'RuntimeError':
260
- cloned = RuntimeError();
261
+ cloned = new RuntimeError();
261
262
  break;
262
263
  default:
263
- cloned = Error();
264
+ cloned = new Error();
264
265
  }
265
266
  break;
266
267
  case 'DOMException':
@@ -523,7 +524,7 @@ var replacePlaceholders = function (value, map) {
523
524
  };
524
525
 
525
526
  var tryToTransfer = function (rawTransfer, map) {
526
- if (!isObject(rawTransfer)) throw TypeError('Transfer option cannot be converted to a sequence');
527
+ if (!isObject(rawTransfer)) throw new TypeError('Transfer option cannot be converted to a sequence');
527
528
 
528
529
  var transfer = [];
529
530
 
@@ -548,7 +549,7 @@ var tryToTransfer = function (rawTransfer, map) {
548
549
 
549
550
  if (mapHas(map, value)) throw new DOMException('Duplicate transferable', DATA_CLONE_ERROR);
550
551
 
551
- if (PROPER_TRANSFER) {
552
+ if (PROPER_STRUCTURED_CLONE_TRANSFER) {
552
553
  transferred = nativeStructuredClone(value, { transfer: [value] });
553
554
  } else switch (type) {
554
555
  case 'ImageBitmap':
@@ -596,8 +597,8 @@ var tryToTransferBuffers = function (transfer, map) {
596
597
 
597
598
  if (mapHas(map, value)) throw new DOMException('Duplicate transferable', DATA_CLONE_ERROR);
598
599
 
599
- if (PROPER_TRANSFER) {
600
- transferred = nativeStructuredClone(value, { transfer: [value] });
600
+ if (arrayBufferTransfer) {
601
+ transferred = arrayBufferTransfer(value, undefined, true);
601
602
  } else {
602
603
  if (!isCallable(value.transfer)) throwUnpolyfillable('ArrayBuffer', TRANSFERRING);
603
604
  transferred = value.transfer();
@@ -609,7 +610,7 @@ var tryToTransferBuffers = function (transfer, map) {
609
610
 
610
611
  // `structuredClone` method
611
612
  // https://html.spec.whatwg.org/multipage/structured-data.html#dom-structuredclone
612
- $({ global: true, enumerable: true, sham: !PROPER_TRANSFER, forced: FORCED_REPLACEMENT }, {
613
+ $({ global: true, enumerable: true, sham: !PROPER_STRUCTURED_CLONE_TRANSFER, forced: FORCED_REPLACEMENT }, {
613
614
  structuredClone: function structuredClone(value /* , { transfer } */) {
614
615
  var options = validateArgumentsLength(arguments.length, 1) > 1 && !isNullOrUndefined(arguments[1]) ? anObject(arguments[1]) : undefined;
615
616
  var transfer = options ? options.transfer : undefined;
@@ -156,7 +156,7 @@ URLSearchParamsState.prototype = {
156
156
  (first = call(entryNext, entryIterator)).done ||
157
157
  (second = call(entryNext, entryIterator)).done ||
158
158
  !call(entryNext, entryIterator).done
159
- ) throw TypeError('Expected sequence with length 2');
159
+ ) throw new TypeError('Expected sequence with length 2');
160
160
  push(this.entries, { key: $toString(first.value), value: $toString(second.value) });
161
161
  }
162
162
  } else for (var key in object) if (hasOwn(object, key)) {
@@ -320,12 +320,12 @@ var URLState = function (url, isBase, base) {
320
320
  var baseState, failure, searchParams;
321
321
  if (isBase) {
322
322
  failure = this.parse(urlString);
323
- if (failure) throw TypeError(failure);
323
+ if (failure) throw new TypeError(failure);
324
324
  this.searchParams = null;
325
325
  } else {
326
326
  if (base !== undefined) baseState = new URLState(base, true);
327
327
  failure = this.parse(urlString, null, baseState);
328
- if (failure) throw TypeError(failure);
328
+ if (failure) throw new TypeError(failure);
329
329
  searchParams = getInternalSearchParamsState(new URLSearchParams());
330
330
  searchParams.bindURL(this);
331
331
  this.searchParams = searchParams;
@@ -814,7 +814,7 @@ URLState.prototype = {
814
814
  // https://url.spec.whatwg.org/#dom-url-href
815
815
  setHref: function (href) {
816
816
  var failure = this.parse(href);
817
- if (failure) throw TypeError(failure);
817
+ if (failure) throw new TypeError(failure);
818
818
  this.searchParams.update();
819
819
  },
820
820
  // https://url.spec.whatwg.org/#dom-url-origin
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "core-js",
3
- "version": "3.32.1",
3
+ "version": "3.33.0",
4
4
  "description": "Standard library",
5
5
  "keywords": [
6
6
  "ES3",
package/postinstall.js CHANGED
@@ -1,4 +1,6 @@
1
1
  'use strict';
2
+ /* eslint-disable node/no-sync -- avoiding overcomplicating */
3
+ /* eslint-disable unicorn/prefer-node-protocol -- ancient env possible */
2
4
  var fs = require('fs');
3
5
  var os = require('os');
4
6
  var path = require('path');
@@ -0,0 +1,3 @@
1
+ 'use strict';
2
+ // https://github.com/tc39/proposal-regex-escaping
3
+ require('../modules/esnext.regexp.escape');
package/stage/2.js CHANGED
@@ -5,6 +5,7 @@ require('../proposals/array-is-template-object');
5
5
  require('../proposals/async-iterator-helpers');
6
6
  require('../proposals/iterator-range');
7
7
  require('../proposals/map-upsert-stage-2');
8
+ require('../proposals/regexp-escaping');
8
9
  require('../proposals/string-dedent');
9
10
  require('../proposals/symbol-predicates-v2');
10
11
  // TODO: Obsolete versions, remove from `core-js@4`
@@ -1,14 +0,0 @@
1
- 'use strict';
2
- var global = require('../internals/global');
3
- var isCallable = require('../internals/is-callable');
4
- var wellKnownSymbol = require('../internals/well-known-symbol');
5
-
6
- var $$OBSERVABLE = wellKnownSymbol('observable');
7
- var NativeObservable = global.Observable;
8
- var NativeObservablePrototype = NativeObservable && NativeObservable.prototype;
9
-
10
- module.exports = !isCallable(NativeObservable)
11
- || !isCallable(NativeObservable.from)
12
- || !isCallable(NativeObservable.of)
13
- || !isCallable(NativeObservablePrototype.subscribe)
14
- || !isCallable(NativeObservablePrototype[$$OBSERVABLE]);