core-js 3.33.1 → 3.33.2

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.
@@ -10,7 +10,7 @@ var AsyncFromSyncIterator = require('../internals/async-from-sync-iterator');
10
10
 
11
11
  var ASYNC_ITERATOR = wellKnownSymbol('asyncIterator');
12
12
 
13
- module.exports = function from(obj) {
13
+ module.exports = function (obj) {
14
14
  var object = anObject(obj);
15
15
  var alreadyAsync = true;
16
16
  var method = getMethod(object, ASYNC_ITERATOR);
@@ -2,5 +2,7 @@
2
2
  var global = require('../internals/global');
3
3
 
4
4
  module.exports = function (CONSTRUCTOR, METHOD) {
5
- return global[CONSTRUCTOR].prototype[METHOD];
5
+ var Constructor = global[CONSTRUCTOR];
6
+ var Prototype = Constructor && Constructor.prototype;
7
+ return Prototype && Prototype[METHOD];
6
8
  };
@@ -5,9 +5,9 @@ var store = require('../internals/shared-store');
5
5
  (module.exports = function (key, value) {
6
6
  return store[key] || (store[key] = value !== undefined ? value : {});
7
7
  })('versions', []).push({
8
- version: '3.33.1',
8
+ version: '3.33.2',
9
9
  mode: IS_PURE ? 'pure' : 'global',
10
10
  copyright: '© 2014-2023 Denis Pushkarev (zloirock.ru)',
11
- license: 'https://github.com/zloirock/core-js/blob/v3.33.1/LICENSE',
11
+ license: 'https://github.com/zloirock/core-js/blob/v3.33.2/LICENSE',
12
12
  source: 'https://github.com/zloirock/core-js'
13
13
  });
@@ -9,18 +9,19 @@ var INVALID_RADIX = 'Invalid radix';
9
9
  var $RangeError = RangeError;
10
10
  var $SyntaxError = SyntaxError;
11
11
  var $TypeError = TypeError;
12
- var valid = /^[\da-z]+$/;
12
+ var pow = Math.pow;
13
+ var valid = /^[\d.a-z]+$/;
13
14
  var charAt = uncurryThis(''.charAt);
14
15
  var exec = uncurryThis(valid.exec);
15
16
  var numberToString = uncurryThis(1.0.toString);
16
17
  var stringSlice = uncurryThis(''.slice);
18
+ var split = uncurryThis(''.split);
17
19
 
18
20
  // `Number.fromString` method
19
21
  // https://github.com/tc39/proposal-number-fromstring
20
22
  $({ target: 'Number', stat: true, forced: true }, {
21
23
  fromString: function fromString(string, radix) {
22
24
  var sign = 1;
23
- var R, mathNum;
24
25
  if (typeof string != 'string') throw new $TypeError(INVALID_NUMBER_REPRESENTATION);
25
26
  if (!string.length) throw new $SyntaxError(INVALID_NUMBER_REPRESENTATION);
26
27
  if (charAt(string, 0) === '-') {
@@ -28,11 +29,13 @@ $({ target: 'Number', stat: true, forced: true }, {
28
29
  string = stringSlice(string, 1);
29
30
  if (!string.length) throw new $SyntaxError(INVALID_NUMBER_REPRESENTATION);
30
31
  }
31
- R = radix === undefined ? 10 : toIntegerOrInfinity(radix);
32
+ var R = radix === undefined ? 10 : toIntegerOrInfinity(radix);
32
33
  if (R < 2 || R > 36) throw new $RangeError(INVALID_RADIX);
33
- if (!exec(valid, string) || numberToString(mathNum = parseInt(string, R), R) !== string) {
34
- throw new $SyntaxError(INVALID_NUMBER_REPRESENTATION);
35
- }
34
+ if (!exec(valid, string)) throw new $SyntaxError(INVALID_NUMBER_REPRESENTATION);
35
+ var parts = split(string, '.');
36
+ var mathNum = parseInt(parts[0], R);
37
+ if (parts.length > 1) mathNum += parseInt(parts[1], R) / pow(R, parts[1].length);
38
+ if (numberToString(mathNum, R) !== string) throw new $SyntaxError(INVALID_NUMBER_REPRESENTATION);
36
39
  return sign * mathNum;
37
40
  }
38
41
  });
@@ -2,7 +2,7 @@
2
2
  var IS_PURE = require('../internals/is-pure');
3
3
  var $ = require('../internals/export');
4
4
  var global = require('../internals/global');
5
- var getBuiltin = require('../internals/get-built-in');
5
+ var getBuiltIn = require('../internals/get-built-in');
6
6
  var uncurryThis = require('../internals/function-uncurry-this');
7
7
  var fails = require('../internals/fails');
8
8
  var uid = require('../internals/uid');
@@ -22,7 +22,8 @@ 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
+ var setIterate = require('../internals/set-iterate');
26
+ var detachTransferable = require('../internals/detach-transferable');
26
27
  var ERROR_STACK_INSTALLABLE = require('../internals/error-stack-installable');
27
28
  var PROPER_STRUCTURED_CLONE_TRANSFER = require('../internals/structured-clone-proper-transfer');
28
29
 
@@ -30,25 +31,17 @@ var Object = global.Object;
30
31
  var Array = global.Array;
31
32
  var Date = global.Date;
32
33
  var Error = global.Error;
33
- var EvalError = global.EvalError;
34
- var RangeError = global.RangeError;
35
- var ReferenceError = global.ReferenceError;
36
- var SyntaxError = global.SyntaxError;
37
34
  var TypeError = global.TypeError;
38
- var URIError = global.URIError;
39
35
  var PerformanceMark = global.PerformanceMark;
40
- var WebAssembly = global.WebAssembly;
41
- var CompileError = WebAssembly && WebAssembly.CompileError || Error;
42
- var LinkError = WebAssembly && WebAssembly.LinkError || Error;
43
- var RuntimeError = WebAssembly && WebAssembly.RuntimeError || Error;
44
- var DOMException = getBuiltin('DOMException');
36
+ var DOMException = getBuiltIn('DOMException');
45
37
  var Map = MapHelpers.Map;
46
38
  var mapHas = MapHelpers.has;
47
39
  var mapGet = MapHelpers.get;
48
40
  var mapSet = MapHelpers.set;
49
41
  var Set = SetHelpers.Set;
50
42
  var setAdd = SetHelpers.add;
51
- var objectKeys = getBuiltin('Object', 'keys');
43
+ var setHas = SetHelpers.has;
44
+ var objectKeys = getBuiltIn('Object', 'keys');
52
45
  var push = uncurryThis([].push);
53
46
  var thisBooleanValue = uncurryThis(true.valueOf);
54
47
  var thisNumberValue = uncurryThis(1.0.valueOf);
@@ -63,7 +56,7 @@ var checkBasicSemantic = function (structuredCloneImplementation) {
63
56
  var set1 = new global.Set([7]);
64
57
  var set2 = structuredCloneImplementation(set1);
65
58
  var number = structuredCloneImplementation(Object(7));
66
- return set2 === set1 || !set2.has(7) || typeof number != 'object' || +number !== 7;
59
+ return set2 === set1 || !set2.has(7) || !isObject(number) || +number !== 7;
67
60
  }) && structuredCloneImplementation;
68
61
  };
69
62
 
@@ -159,10 +152,10 @@ var cloneBuffer = function (value, map, $type) {
159
152
 
160
153
  // `ArrayBuffer#slice` is not available in IE10
161
154
  // `ArrayBuffer#slice` and `DataView` are not available in old FF
162
- if (!DataView && typeof value.slice != 'function') throwUnpolyfillable('ArrayBuffer');
155
+ if (!DataView && !isCallable(value.slice)) throwUnpolyfillable('ArrayBuffer');
163
156
  // detached buffers throws in `DataView` and `.slice`
164
157
  try {
165
- if (typeof value.slice == 'function' && !value.resizable) {
158
+ if (isCallable(value.slice) && !value.resizable) {
166
159
  clone = value.slice(0);
167
160
  } else {
168
161
  length = value.byteLength;
@@ -192,13 +185,7 @@ var cloneView = function (value, type, offset, length, map) {
192
185
  return new C(cloneBuffer(value.buffer, map), offset, length);
193
186
  };
194
187
 
195
- var Placeholder = function (object, type, metadata) {
196
- this.object = object;
197
- this.type = type;
198
- this.metadata = metadata;
199
- };
200
-
201
- var structuredCloneInternal = function (value, map, transferredBuffers) {
188
+ var structuredCloneInternal = function (value, map) {
202
189
  if (isSymbol(value)) throwUncloneable('Symbol');
203
190
  if (!isObject(value)) return value;
204
191
  // effectively preserves circular references
@@ -231,34 +218,21 @@ var structuredCloneInternal = function (value, map, transferredBuffers) {
231
218
  name = value.name;
232
219
  switch (name) {
233
220
  case 'AggregateError':
234
- cloned = new (getBuiltin('AggregateError'))([]);
221
+ cloned = new (getBuiltIn(name))([]);
235
222
  break;
236
223
  case 'EvalError':
237
- cloned = new EvalError();
238
- break;
239
224
  case 'RangeError':
240
- cloned = new RangeError();
241
- break;
242
225
  case 'ReferenceError':
243
- cloned = new ReferenceError();
244
- break;
226
+ case 'SuppressedError':
245
227
  case 'SyntaxError':
246
- cloned = new SyntaxError();
247
- break;
248
228
  case 'TypeError':
249
- cloned = new TypeError();
250
- break;
251
229
  case 'URIError':
252
- cloned = new URIError();
230
+ cloned = new (getBuiltIn(name))();
253
231
  break;
254
232
  case 'CompileError':
255
- cloned = new CompileError();
256
- break;
257
233
  case 'LinkError':
258
- cloned = new LinkError();
259
- break;
260
234
  case 'RuntimeError':
261
- cloned = new RuntimeError();
235
+ cloned = new (getBuiltIn('WebAssembly', name))();
262
236
  break;
263
237
  default:
264
238
  cloned = new Error();
@@ -269,9 +243,7 @@ var structuredCloneInternal = function (value, map, transferredBuffers) {
269
243
  break;
270
244
  case 'ArrayBuffer':
271
245
  case 'SharedArrayBuffer':
272
- cloned = transferredBuffers
273
- ? new Placeholder(value, type)
274
- : cloneBuffer(value, map, type);
246
+ cloned = cloneBuffer(value, map, type);
275
247
  break;
276
248
  case 'DataView':
277
249
  case 'Int8Array':
@@ -287,17 +259,15 @@ var structuredCloneInternal = function (value, map, transferredBuffers) {
287
259
  case 'BigInt64Array':
288
260
  case 'BigUint64Array':
289
261
  length = type === 'DataView' ? value.byteLength : value.length;
290
- cloned = transferredBuffers
291
- ? new Placeholder(value, type, { offset: value.byteOffset, length: length })
292
- : cloneView(value, type, value.byteOffset, length, map);
262
+ cloned = cloneView(value, type, value.byteOffset, length, map);
293
263
  break;
294
264
  case 'DOMQuad':
295
265
  try {
296
266
  cloned = new DOMQuad(
297
- structuredCloneInternal(value.p1, map, transferredBuffers),
298
- structuredCloneInternal(value.p2, map, transferredBuffers),
299
- structuredCloneInternal(value.p3, map, transferredBuffers),
300
- structuredCloneInternal(value.p4, map, transferredBuffers)
267
+ structuredCloneInternal(value.p1, map),
268
+ structuredCloneInternal(value.p2, map),
269
+ structuredCloneInternal(value.p3, map),
270
+ structuredCloneInternal(value.p4, map)
301
271
  );
302
272
  } catch (error) {
303
273
  cloned = tryNativeRestrictedStructuredClone(value, type);
@@ -318,7 +288,7 @@ var structuredCloneInternal = function (value, map, transferredBuffers) {
318
288
  dataTransfer = createDataTransfer();
319
289
  if (dataTransfer) {
320
290
  for (i = 0, length = lengthOfArrayLike(value); i < length; i++) {
321
- dataTransfer.items.add(structuredCloneInternal(value[i], map, transferredBuffers));
291
+ dataTransfer.items.add(structuredCloneInternal(value[i], map));
322
292
  }
323
293
  cloned = dataTransfer.files;
324
294
  } else cloned = tryNativeRestrictedStructuredClone(value, type);
@@ -327,7 +297,7 @@ var structuredCloneInternal = function (value, map, transferredBuffers) {
327
297
  // Safari 9 ImageData is a constructor, but typeof ImageData is 'object'
328
298
  try {
329
299
  cloned = new ImageData(
330
- structuredCloneInternal(value.data, map, transferredBuffers),
300
+ structuredCloneInternal(value.data, map),
331
301
  value.width,
332
302
  value.height,
333
303
  { colorSpace: value.colorSpace }
@@ -424,105 +394,38 @@ var structuredCloneInternal = function (value, map, transferredBuffers) {
424
394
  keys = objectKeys(value);
425
395
  for (i = 0, length = lengthOfArrayLike(keys); i < length; i++) {
426
396
  key = keys[i];
427
- createProperty(cloned, key, structuredCloneInternal(value[key], map, transferredBuffers));
397
+ createProperty(cloned, key, structuredCloneInternal(value[key], map));
428
398
  } break;
429
399
  case 'Map':
430
400
  value.forEach(function (v, k) {
431
- mapSet(cloned, structuredCloneInternal(k, map, transferredBuffers), structuredCloneInternal(v, map, transferredBuffers));
401
+ mapSet(cloned, structuredCloneInternal(k, map), structuredCloneInternal(v, map));
432
402
  });
433
403
  break;
434
404
  case 'Set':
435
405
  value.forEach(function (v) {
436
- setAdd(cloned, structuredCloneInternal(v, map, transferredBuffers));
406
+ setAdd(cloned, structuredCloneInternal(v, map));
437
407
  });
438
408
  break;
439
409
  case 'Error':
440
- createNonEnumerableProperty(cloned, 'message', structuredCloneInternal(value.message, map, transferredBuffers));
410
+ createNonEnumerableProperty(cloned, 'message', structuredCloneInternal(value.message, map));
441
411
  if (hasOwn(value, 'cause')) {
442
- createNonEnumerableProperty(cloned, 'cause', structuredCloneInternal(value.cause, map, transferredBuffers));
412
+ createNonEnumerableProperty(cloned, 'cause', structuredCloneInternal(value.cause, map));
443
413
  }
444
414
  if (name === 'AggregateError') {
445
- cloned.errors = structuredCloneInternal(value.errors, map, transferredBuffers);
415
+ cloned.errors = structuredCloneInternal(value.errors, map);
416
+ } else if (name === 'SuppressedError') {
417
+ cloned.error = structuredCloneInternal(value.error, map);
418
+ cloned.suppressed = structuredCloneInternal(value.suppressed, map);
446
419
  } // break omitted
447
420
  case 'DOMException':
448
421
  if (ERROR_STACK_INSTALLABLE) {
449
- createNonEnumerableProperty(cloned, 'stack', structuredCloneInternal(value.stack, map, transferredBuffers));
422
+ createNonEnumerableProperty(cloned, 'stack', structuredCloneInternal(value.stack, map));
450
423
  }
451
424
  }
452
425
 
453
426
  return cloned;
454
427
  };
455
428
 
456
- var replacePlaceholders = function (value, map) {
457
- if (!isObject(value)) return value;
458
- if (mapHas(map, value)) return mapGet(map, value);
459
-
460
- var type, object, metadata, i, length, keys, key, replacement;
461
-
462
- if (value instanceof Placeholder) {
463
- type = value.type;
464
- object = value.object;
465
-
466
- switch (type) {
467
- case 'ArrayBuffer':
468
- case 'SharedArrayBuffer':
469
- replacement = cloneBuffer(object, map, type);
470
- break;
471
- case 'DataView':
472
- case 'Int8Array':
473
- case 'Uint8Array':
474
- case 'Uint8ClampedArray':
475
- case 'Int16Array':
476
- case 'Uint16Array':
477
- case 'Int32Array':
478
- case 'Uint32Array':
479
- case 'Float16Array':
480
- case 'Float32Array':
481
- case 'Float64Array':
482
- case 'BigInt64Array':
483
- case 'BigUint64Array':
484
- metadata = value.metadata;
485
- replacement = cloneView(object, type, metadata.offset, metadata.length, map);
486
- }
487
- } else switch (classof(value)) {
488
- case 'Array':
489
- case 'Object':
490
- keys = objectKeys(value);
491
- for (i = 0, length = lengthOfArrayLike(keys); i < length; i++) {
492
- key = keys[i];
493
- value[key] = replacePlaceholders(value[key], map);
494
- } break;
495
- case 'Map':
496
- replacement = new Map();
497
- value.forEach(function (v, k) {
498
- mapSet(replacement, replacePlaceholders(k, map), replacePlaceholders(v, map));
499
- });
500
- break;
501
- case 'Set':
502
- replacement = new Set();
503
- value.forEach(function (v) {
504
- setAdd(replacement, replacePlaceholders(v, map));
505
- });
506
- break;
507
- case 'Error':
508
- value.message = replacePlaceholders(value.message, map);
509
- if (hasOwn(value, 'cause')) {
510
- value.cause = replacePlaceholders(value.cause, map);
511
- }
512
- if (value.name === 'AggregateError') {
513
- value.errors = replacePlaceholders(value.errors, map);
514
- } // break omitted
515
- case 'DOMException':
516
- if (ERROR_STACK_INSTALLABLE) {
517
- value.stack = replacePlaceholders(value.stack, map);
518
- }
519
- }
520
-
521
- mapSet(map, value, replacement || value);
522
-
523
- return replacement || value;
524
- };
525
-
526
429
  var tryToTransfer = function (rawTransfer, map) {
527
430
  if (!isObject(rawTransfer)) throw new TypeError('Transfer option cannot be converted to a sequence');
528
431
 
@@ -534,7 +437,7 @@ var tryToTransfer = function (rawTransfer, map) {
534
437
 
535
438
  var i = 0;
536
439
  var length = lengthOfArrayLike(transfer);
537
- var buffers = [];
440
+ var buffers = new Set();
538
441
  var value, type, C, transferred, canvas, context;
539
442
 
540
443
  while (i < length) {
@@ -542,13 +445,15 @@ var tryToTransfer = function (rawTransfer, map) {
542
445
 
543
446
  type = classof(value);
544
447
 
448
+ if (type === 'ArrayBuffer' ? setHas(buffers, value) : mapHas(map, value)) {
449
+ throw new DOMException('Duplicate transferable', DATA_CLONE_ERROR);
450
+ }
451
+
545
452
  if (type === 'ArrayBuffer') {
546
- push(buffers, value);
453
+ setAdd(buffers, value);
547
454
  continue;
548
455
  }
549
456
 
550
- if (mapHas(map, value)) throw new DOMException('Duplicate transferable', DATA_CLONE_ERROR);
551
-
552
457
  if (PROPER_STRUCTURED_CLONE_TRANSFER) {
553
458
  transferred = nativeStructuredClone(value, { transfer: [value] });
554
459
  } else switch (type) {
@@ -587,25 +492,18 @@ var tryToTransfer = function (rawTransfer, map) {
587
492
  return buffers;
588
493
  };
589
494
 
590
- var tryToTransferBuffers = function (transfer, map) {
591
- var i = 0;
592
- var length = lengthOfArrayLike(transfer);
593
- var value, transferred;
594
-
595
- while (i < length) {
596
- value = transfer[i++];
597
-
598
- if (mapHas(map, value)) throw new DOMException('Duplicate transferable', DATA_CLONE_ERROR);
599
-
600
- if (arrayBufferTransfer) {
601
- transferred = arrayBufferTransfer(value, undefined, true);
495
+ var detachBuffers = function (buffers) {
496
+ setIterate(buffers, function (buffer) {
497
+ if (PROPER_STRUCTURED_CLONE_TRANSFER) {
498
+ nativeRestrictedStructuredClone(buffer, { transfer: [buffer] });
499
+ } else if (isCallable(buffer.transfer)) {
500
+ buffer.transfer();
501
+ } else if (detachTransferable) {
502
+ detachTransferable(buffer);
602
503
  } else {
603
- if (!isCallable(value.transfer)) throwUnpolyfillable('ArrayBuffer', TRANSFERRING);
604
- transferred = value.transfer();
504
+ throwUnpolyfillable('ArrayBuffer', TRANSFERRING);
605
505
  }
606
-
607
- mapSet(map, value, transferred);
608
- }
506
+ });
609
507
  };
610
508
 
611
509
  // `structuredClone` method
@@ -614,24 +512,18 @@ $({ global: true, enumerable: true, sham: !PROPER_STRUCTURED_CLONE_TRANSFER, for
614
512
  structuredClone: function structuredClone(value /* , { transfer } */) {
615
513
  var options = validateArgumentsLength(arguments.length, 1) > 1 && !isNullOrUndefined(arguments[1]) ? anObject(arguments[1]) : undefined;
616
514
  var transfer = options ? options.transfer : undefined;
617
- var transferredBuffers = false;
618
515
  var map, buffers;
619
516
 
620
517
  if (transfer !== undefined) {
621
518
  map = new Map();
622
519
  buffers = tryToTransfer(transfer, map);
623
- transferredBuffers = !!lengthOfArrayLike(buffers);
624
520
  }
625
521
 
626
- var clone = structuredCloneInternal(value, map, transferredBuffers);
522
+ var clone = structuredCloneInternal(value, map);
627
523
 
628
- // since of an issue with cloning views of transferred buffers, we a forced to transfer / clone them in 2 steps
524
+ // since of an issue with cloning views of transferred buffers, we a forced to detach them later
629
525
  // https://github.com/zloirock/core-js/issues/1265
630
- if (transferredBuffers) {
631
- map = new Map();
632
- tryToTransferBuffers(transfer, map);
633
- clone = replacePlaceholders(clone, map);
634
- }
526
+ if (buffers) detachBuffers(buffers);
635
527
 
636
528
  return clone;
637
529
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "core-js",
3
- "version": "3.33.1",
3
+ "version": "3.33.2",
4
4
  "type": "commonjs",
5
5
  "description": "Standard library",
6
6
  "keywords": [