core-js 3.20.0 → 3.21.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 (174) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +2 -2
  3. package/actual/array/group-by-to-map.js +1 -0
  4. package/actual/array/index.js +1 -0
  5. package/actual/array/virtual/group-by-to-map.js +1 -0
  6. package/actual/array/virtual/index.js +1 -0
  7. package/actual/atob.js +3 -0
  8. package/actual/btoa.js +3 -0
  9. package/features/atob.js +3 -0
  10. package/features/btoa.js +3 -0
  11. package/features/index.js +2 -0
  12. package/internals/array-buffer-view-core.js +9 -4
  13. package/internals/base64-map.js +9 -0
  14. package/internals/function-apply.js +3 -2
  15. package/internals/function-bind-context.js +2 -1
  16. package/internals/function-bind-native.js +7 -0
  17. package/internals/function-bind.js +2 -1
  18. package/internals/function-call.js +3 -1
  19. package/internals/function-uncurry-this.js +5 -3
  20. package/internals/ie8-dom-define.js +2 -2
  21. package/internals/native-url.js +1 -0
  22. package/internals/numeric-range-iterator.js +1 -1
  23. package/internals/object-create.js +2 -2
  24. package/internals/object-define-properties.js +2 -1
  25. package/internals/object-define-property.js +22 -1
  26. package/internals/queue.js +23 -0
  27. package/internals/shared.js +4 -2
  28. package/internals/task.js +5 -2
  29. package/internals/v8-prototype-define-bug.js +12 -0
  30. package/internals/validate-arguments-length.js +8 -0
  31. package/modules/es.function.bind.js +1 -1
  32. package/modules/es.object.define-properties.js +3 -2
  33. package/modules/es.object.define-property.js +4 -3
  34. package/modules/es.promise.finally.js +1 -0
  35. package/modules/es.promise.js +47 -43
  36. package/modules/es.symbol.js +2 -0
  37. package/modules/es.typed-array.set.js +20 -5
  38. package/modules/es.weak-map.js +5 -5
  39. package/modules/esnext.array.filter-out.js +1 -1
  40. package/modules/esnext.array.filter-reject.js +1 -1
  41. package/modules/esnext.array.from-async.js +1 -1
  42. package/modules/esnext.array.is-template-object.js +1 -1
  43. package/modules/esnext.array.last-index.js +1 -1
  44. package/modules/esnext.array.last-item.js +1 -1
  45. package/modules/esnext.array.to-reversed.js +1 -1
  46. package/modules/esnext.array.to-sorted.js +1 -1
  47. package/modules/esnext.array.to-spliced.js +1 -1
  48. package/modules/esnext.array.unique-by.js +1 -1
  49. package/modules/esnext.array.with.js +1 -1
  50. package/modules/esnext.async-iterator.as-indexed-pairs.js +1 -1
  51. package/modules/esnext.async-iterator.drop.js +1 -1
  52. package/modules/esnext.async-iterator.every.js +1 -1
  53. package/modules/esnext.async-iterator.filter.js +1 -1
  54. package/modules/esnext.async-iterator.find.js +1 -1
  55. package/modules/esnext.async-iterator.flat-map.js +1 -1
  56. package/modules/esnext.async-iterator.for-each.js +1 -1
  57. package/modules/esnext.async-iterator.from.js +1 -1
  58. package/modules/esnext.async-iterator.map.js +1 -1
  59. package/modules/esnext.async-iterator.reduce.js +1 -1
  60. package/modules/esnext.async-iterator.some.js +1 -1
  61. package/modules/esnext.async-iterator.take.js +1 -1
  62. package/modules/esnext.async-iterator.to-array.js +1 -1
  63. package/modules/esnext.bigint.range.js +1 -1
  64. package/modules/esnext.composite-key.js +1 -1
  65. package/modules/esnext.composite-symbol.js +1 -1
  66. package/modules/esnext.function.is-callable.js +1 -1
  67. package/modules/esnext.function.is-constructor.js +1 -1
  68. package/modules/esnext.function.un-this.js +1 -1
  69. package/modules/esnext.iterator.as-indexed-pairs.js +1 -1
  70. package/modules/esnext.iterator.drop.js +1 -1
  71. package/modules/esnext.iterator.every.js +1 -1
  72. package/modules/esnext.iterator.filter.js +1 -1
  73. package/modules/esnext.iterator.find.js +1 -1
  74. package/modules/esnext.iterator.flat-map.js +1 -1
  75. package/modules/esnext.iterator.for-each.js +1 -1
  76. package/modules/esnext.iterator.from.js +1 -1
  77. package/modules/esnext.iterator.map.js +1 -1
  78. package/modules/esnext.iterator.reduce.js +1 -1
  79. package/modules/esnext.iterator.some.js +1 -1
  80. package/modules/esnext.iterator.take.js +1 -1
  81. package/modules/esnext.iterator.to-array.js +1 -1
  82. package/modules/esnext.iterator.to-async.js +1 -1
  83. package/modules/esnext.map.delete-all.js +1 -2
  84. package/modules/esnext.map.emplace.js +1 -2
  85. package/modules/esnext.map.every.js +1 -2
  86. package/modules/esnext.map.filter.js +1 -2
  87. package/modules/esnext.map.find-key.js +1 -2
  88. package/modules/esnext.map.find.js +1 -2
  89. package/modules/esnext.map.from.js +1 -1
  90. package/modules/esnext.map.group-by.js +1 -1
  91. package/modules/esnext.map.includes.js +1 -2
  92. package/modules/esnext.map.key-by.js +1 -1
  93. package/modules/esnext.map.key-of.js +1 -2
  94. package/modules/esnext.map.map-keys.js +1 -2
  95. package/modules/esnext.map.map-values.js +1 -2
  96. package/modules/esnext.map.merge.js +2 -3
  97. package/modules/esnext.map.of.js +1 -1
  98. package/modules/esnext.map.reduce.js +1 -2
  99. package/modules/esnext.map.some.js +1 -2
  100. package/modules/esnext.map.update-or-insert.js +1 -2
  101. package/modules/esnext.map.update.js +1 -2
  102. package/modules/esnext.map.upsert.js +1 -2
  103. package/modules/esnext.math.clamp.js +1 -1
  104. package/modules/esnext.math.deg-per-rad.js +1 -1
  105. package/modules/esnext.math.degrees.js +1 -1
  106. package/modules/esnext.math.fscale.js +1 -1
  107. package/modules/esnext.math.iaddh.js +1 -1
  108. package/modules/esnext.math.imulh.js +1 -1
  109. package/modules/esnext.math.isubh.js +1 -1
  110. package/modules/esnext.math.rad-per-deg.js +1 -1
  111. package/modules/esnext.math.radians.js +1 -1
  112. package/modules/esnext.math.scale.js +1 -1
  113. package/modules/esnext.math.signbit.js +1 -1
  114. package/modules/esnext.math.umulh.js +1 -1
  115. package/modules/esnext.number.from-string.js +1 -1
  116. package/modules/esnext.number.range.js +1 -1
  117. package/modules/esnext.object.iterate-entries.js +1 -1
  118. package/modules/esnext.object.iterate-keys.js +1 -1
  119. package/modules/esnext.object.iterate-values.js +1 -1
  120. package/modules/esnext.observable.js +9 -1
  121. package/modules/esnext.promise.try.js +1 -1
  122. package/modules/esnext.set.add-all.js +1 -2
  123. package/modules/esnext.set.delete-all.js +1 -2
  124. package/modules/esnext.set.difference.js +1 -2
  125. package/modules/esnext.set.every.js +1 -2
  126. package/modules/esnext.set.filter.js +1 -2
  127. package/modules/esnext.set.find.js +1 -2
  128. package/modules/esnext.set.from.js +1 -1
  129. package/modules/esnext.set.intersection.js +1 -2
  130. package/modules/esnext.set.is-disjoint-from.js +1 -2
  131. package/modules/esnext.set.is-subset-of.js +1 -2
  132. package/modules/esnext.set.is-superset-of.js +1 -2
  133. package/modules/esnext.set.join.js +1 -2
  134. package/modules/esnext.set.map.js +1 -2
  135. package/modules/esnext.set.of.js +1 -1
  136. package/modules/esnext.set.reduce.js +1 -2
  137. package/modules/esnext.set.some.js +1 -2
  138. package/modules/esnext.set.symmetric-difference.js +1 -2
  139. package/modules/esnext.set.union.js +1 -2
  140. package/modules/esnext.string.at.js +1 -6
  141. package/modules/esnext.string.code-points.js +1 -1
  142. package/modules/esnext.string.cooked.js +1 -1
  143. package/modules/esnext.typed-array.filter-out.js +1 -1
  144. package/modules/esnext.typed-array.filter-reject.js +1 -1
  145. package/modules/esnext.typed-array.from-async.js +1 -2
  146. package/modules/esnext.typed-array.group-by.js +1 -1
  147. package/modules/esnext.typed-array.to-reversed.js +1 -1
  148. package/modules/esnext.typed-array.to-sorted.js +1 -1
  149. package/modules/esnext.typed-array.to-spliced.js +1 -1
  150. package/modules/esnext.typed-array.unique-by.js +1 -1
  151. package/modules/esnext.typed-array.with.js +1 -1
  152. package/modules/esnext.weak-map.delete-all.js +1 -2
  153. package/modules/esnext.weak-map.emplace.js +1 -2
  154. package/modules/esnext.weak-map.from.js +1 -1
  155. package/modules/esnext.weak-map.of.js +1 -1
  156. package/modules/esnext.weak-map.upsert.js +1 -2
  157. package/modules/esnext.weak-set.add-all.js +1 -2
  158. package/modules/esnext.weak-set.delete-all.js +1 -2
  159. package/modules/esnext.weak-set.from.js +1 -1
  160. package/modules/esnext.weak-set.of.js +1 -1
  161. package/modules/web.atob.js +52 -0
  162. package/modules/web.btoa.js +37 -0
  163. package/modules/web.dom-exception.constructor.js +1 -1
  164. package/modules/web.queue-microtask.js +4 -0
  165. package/modules/web.structured-clone.js +5 -4
  166. package/modules/web.timers.js +5 -3
  167. package/modules/web.url-search-params.js +1 -4
  168. package/modules/web.url.js +3 -2
  169. package/package.json +2 -2
  170. package/postinstall.js +1 -1
  171. package/stable/atob.js +9 -0
  172. package/stable/btoa.js +9 -0
  173. package/stable/index.js +2 -0
  174. package/web/index.js +2 -0
@@ -1,7 +1,6 @@
1
1
  'use strict';
2
2
  var $ = require('../internals/export');
3
3
  var global = require('../internals/global');
4
- var IS_PURE = require('../internals/is-pure');
5
4
  var aCallable = require('../internals/a-callable');
6
5
  var anObject = require('../internals/an-object');
7
6
  var getSetIterator = require('../internals/get-set-iterator');
@@ -11,7 +10,7 @@ var TypeError = global.TypeError;
11
10
 
12
11
  // `Set.prototype.reduce` method
13
12
  // https://github.com/tc39/proposal-collection-methods
14
- $({ target: 'Set', proto: true, real: true, forced: IS_PURE }, {
13
+ $({ target: 'Set', proto: true, real: true, forced: true }, {
15
14
  reduce: function reduce(callbackfn /* , initialValue */) {
16
15
  var set = anObject(this);
17
16
  var iterator = getSetIterator(set);
@@ -1,6 +1,5 @@
1
1
  'use strict';
2
2
  var $ = require('../internals/export');
3
- var IS_PURE = require('../internals/is-pure');
4
3
  var anObject = require('../internals/an-object');
5
4
  var bind = require('../internals/function-bind-context');
6
5
  var getSetIterator = require('../internals/get-set-iterator');
@@ -8,7 +7,7 @@ var iterate = require('../internals/iterate');
8
7
 
9
8
  // `Set.prototype.some` method
10
9
  // https://github.com/tc39/proposal-collection-methods
11
- $({ target: 'Set', proto: true, real: true, forced: IS_PURE }, {
10
+ $({ target: 'Set', proto: true, real: true, forced: true }, {
12
11
  some: function some(callbackfn /* , thisArg */) {
13
12
  var set = anObject(this);
14
13
  var iterator = getSetIterator(set);
@@ -1,5 +1,4 @@
1
1
  'use strict';
2
- var IS_PURE = require('../internals/is-pure');
3
2
  var $ = require('../internals/export');
4
3
  var getBuiltIn = require('../internals/get-built-in');
5
4
  var call = require('../internals/function-call');
@@ -10,7 +9,7 @@ var iterate = require('../internals/iterate');
10
9
 
11
10
  // `Set.prototype.symmetricDifference` method
12
11
  // https://github.com/tc39/proposal-set-methods
13
- $({ target: 'Set', proto: true, real: true, forced: IS_PURE }, {
12
+ $({ target: 'Set', proto: true, real: true, forced: true }, {
14
13
  symmetricDifference: function symmetricDifference(iterable) {
15
14
  var set = anObject(this);
16
15
  var newSet = new (speciesConstructor(set, getBuiltIn('Set')))(set);
@@ -1,6 +1,5 @@
1
1
  'use strict';
2
2
  var $ = require('../internals/export');
3
- var IS_PURE = require('../internals/is-pure');
4
3
  var getBuiltIn = require('../internals/get-built-in');
5
4
  var aCallable = require('../internals/a-callable');
6
5
  var anObject = require('../internals/an-object');
@@ -9,7 +8,7 @@ var iterate = require('../internals/iterate');
9
8
 
10
9
  // `Set.prototype.union` method
11
10
  // https://github.com/tc39/proposal-set-methods
12
- $({ target: 'Set', proto: true, real: true, forced: IS_PURE }, {
11
+ $({ target: 'Set', proto: true, real: true, forced: true }, {
13
12
  union: function union(iterable) {
14
13
  var set = anObject(this);
15
14
  var newSet = new (speciesConstructor(set, getBuiltIn('Set')))(set);
@@ -1,18 +1,13 @@
1
1
  'use strict';
2
2
  var $ = require('../internals/export');
3
3
  var charAt = require('../internals/string-multibyte').charAt;
4
- var fails = require('../internals/fails');
5
4
  var requireObjectCoercible = require('../internals/require-object-coercible');
6
5
  var toIntegerOrInfinity = require('../internals/to-integer-or-infinity');
7
6
  var toString = require('../internals/to-string');
8
7
 
9
- var FORCED = fails(function () {
10
- return '𠮷'.at(-2) !== '𠮷';
11
- });
12
-
13
8
  // `String.prototype.at` method
14
9
  // https://github.com/mathiasbynens/String.prototype.at
15
- $({ target: 'String', proto: true, forced: FORCED }, {
10
+ $({ target: 'String', proto: true, forced: true }, {
16
11
  at: function at(index) {
17
12
  var S = toString(requireObjectCoercible(this));
18
13
  var len = S.length;
@@ -32,7 +32,7 @@ var $StringIterator = createIteratorConstructor(function StringIterator(string)
32
32
 
33
33
  // `String.prototype.codePoints` method
34
34
  // https://github.com/tc39/proposal-string-prototype-codepoints
35
- $({ target: 'String', proto: true }, {
35
+ $({ target: 'String', proto: true, forced: true }, {
36
36
  codePoints: function codePoints() {
37
37
  return new $StringIterator(toString(requireObjectCoercible(this)));
38
38
  }
@@ -12,7 +12,7 @@ var join = uncurryThis(ArrayPrototype.join);
12
12
 
13
13
  // `String.cooked` method
14
14
  // https://github.com/tc39/proposal-string-cooked
15
- $({ target: 'String', stat: true }, {
15
+ $({ target: 'String', stat: true, forced: true }, {
16
16
  cooked: function cooked(template /* , ...substitutions */) {
17
17
  var cookedTemplate = toIndexedObject(template);
18
18
  var literalSegments = lengthOfArrayLike(cookedTemplate);
@@ -12,4 +12,4 @@ var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;
12
12
  exportTypedArrayMethod('filterOut', function filterOut(callbackfn /* , thisArg */) {
13
13
  var list = $filterReject(aTypedArray(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined);
14
14
  return fromSpeciesAndList(this, list);
15
- });
15
+ }, true);
@@ -11,4 +11,4 @@ var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;
11
11
  exportTypedArrayMethod('filterReject', function filterReject(callbackfn /* , thisArg */) {
12
12
  var list = $filterReject(aTypedArray(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined);
13
13
  return fromSpeciesAndList(this, list);
14
- });
14
+ }, true);
@@ -3,7 +3,6 @@
3
3
  var getBuiltIn = require('../internals/get-built-in');
4
4
  var aConstructor = require('../internals/a-constructor');
5
5
  var arrayFromAsync = require('../internals/array-from-async');
6
- var TYPED_ARRAYS_CONSTRUCTORS_REQUIRES_WRAPPERS = require('../internals/typed-array-constructors-require-wrappers');
7
6
  var ArrayBufferViewCore = require('../internals/array-buffer-view-core');
8
7
  var arrayFromConstructorAndList = require('../internals/array-from-constructor-and-list');
9
8
 
@@ -23,4 +22,4 @@ exportTypedArrayStaticMethod('fromAsync', function fromAsync(asyncItems /* , map
23
22
  }).then(function (list) {
24
23
  return arrayFromConstructorAndList(aTypedArrayConstructor(C), list);
25
24
  });
26
- }, TYPED_ARRAYS_CONSTRUCTORS_REQUIRES_WRAPPERS);
25
+ }, true);
@@ -12,4 +12,4 @@ var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;
12
12
  exportTypedArrayMethod('groupBy', function groupBy(callbackfn /* , thisArg */) {
13
13
  var thisArg = arguments.length > 1 ? arguments[1] : undefined;
14
14
  return $groupBy(aTypedArray(this), callbackfn, thisArg, typedArraySpeciesConstructor);
15
- });
15
+ }, true);
@@ -10,4 +10,4 @@ var TYPED_ARRAY_CONSTRUCTOR = ArrayBufferViewCore.TYPED_ARRAY_CONSTRUCTOR;
10
10
  // https://tc39.es/proposal-change-array-by-copy/#sec-%typedarray%.prototype.toReversed
11
11
  exportTypedArrayMethod('toReversed', function toReversed() {
12
12
  return arrayToReversed(aTypedArray(this), this[TYPED_ARRAY_CONSTRUCTOR]);
13
- });
13
+ }, true);
@@ -16,4 +16,4 @@ exportTypedArrayMethod('toSorted', function toSorted(compareFn) {
16
16
  var O = aTypedArray(this);
17
17
  var A = arrayFromConstructorAndList(O[TYPED_ARRAY_CONSTRUCTOR], O);
18
18
  return sort(A, compareFn);
19
- });
19
+ }, true);
@@ -12,4 +12,4 @@ var TYPED_ARRAY_CONSTRUCTOR = ArrayBufferViewCore.TYPED_ARRAY_CONSTRUCTOR;
12
12
  // eslint-disable-next-line no-unused-vars -- required for .length
13
13
  exportTypedArrayMethod('toSpliced', function toSpliced(start, deleteCount /* , ...items */) {
14
14
  return arrayToSpliced(aTypedArray(this), this[TYPED_ARRAY_CONSTRUCTOR], arraySlice(arguments));
15
- });
15
+ }, true);
@@ -12,4 +12,4 @@ var arrayUniqueBy = uncurryThis($arrayUniqueBy);
12
12
  // https://github.com/tc39/proposal-array-unique
13
13
  exportTypedArrayMethod('uniqueBy', function uniqueBy(resolver) {
14
14
  return fromSpeciesAndList(this, arrayUniqueBy(aTypedArray(this), resolver));
15
- });
15
+ }, true);
@@ -10,4 +10,4 @@ var TYPED_ARRAY_CONSTRUCTOR = ArrayBufferViewCore.TYPED_ARRAY_CONSTRUCTOR;
10
10
  // https://tc39.es/proposal-change-array-by-copy/#sec-%typedarray%.prototype.with
11
11
  exportTypedArrayMethod('with', { 'with': function (index, value) {
12
12
  return arrayWith(aTypedArray(this), this[TYPED_ARRAY_CONSTRUCTOR], index, value);
13
- } }['with']);
13
+ } }['with'], true);
@@ -1,10 +1,9 @@
1
1
  'use strict';
2
2
  var $ = require('../internals/export');
3
- var IS_PURE = require('../internals/is-pure');
4
3
  var deleteAll = require('../internals/collection-delete-all');
5
4
 
6
5
  // `WeakMap.prototype.deleteAll` method
7
6
  // https://github.com/tc39/proposal-collection-methods
8
- $({ target: 'WeakMap', proto: true, real: true, forced: IS_PURE }, {
7
+ $({ target: 'WeakMap', proto: true, real: true, forced: true }, {
9
8
  deleteAll: deleteAll
10
9
  });
@@ -1,10 +1,9 @@
1
1
  'use strict';
2
2
  var $ = require('../internals/export');
3
- var IS_PURE = require('../internals/is-pure');
4
3
  var emplace = require('../internals/map-emplace');
5
4
 
6
5
  // `WeakMap.prototype.emplace` method
7
6
  // https://github.com/tc39/proposal-upsert
8
- $({ target: 'WeakMap', proto: true, real: true, forced: IS_PURE }, {
7
+ $({ target: 'WeakMap', proto: true, real: true, forced: true }, {
9
8
  emplace: emplace
10
9
  });
@@ -3,6 +3,6 @@ var from = require('../internals/collection-from');
3
3
 
4
4
  // `WeakMap.from` method
5
5
  // https://tc39.github.io/proposal-setmap-offrom/#sec-weakmap.from
6
- $({ target: 'WeakMap', stat: true }, {
6
+ $({ target: 'WeakMap', stat: true, forced: true }, {
7
7
  from: from
8
8
  });
@@ -3,6 +3,6 @@ var of = require('../internals/collection-of');
3
3
 
4
4
  // `WeakMap.of` method
5
5
  // https://tc39.github.io/proposal-setmap-offrom/#sec-weakmap.of
6
- $({ target: 'WeakMap', stat: true }, {
6
+ $({ target: 'WeakMap', stat: true, forced: true }, {
7
7
  of: of
8
8
  });
@@ -1,11 +1,10 @@
1
1
  'use strict';
2
2
  // TODO: remove from `core-js@4`
3
3
  var $ = require('../internals/export');
4
- var IS_PURE = require('../internals/is-pure');
5
4
  var upsert = require('../internals/map-upsert');
6
5
 
7
6
  // `WeakMap.prototype.upsert` method (replaced by `WeakMap.prototype.emplace`)
8
7
  // https://github.com/tc39/proposal-upsert
9
- $({ target: 'WeakMap', proto: true, real: true, forced: IS_PURE }, {
8
+ $({ target: 'WeakMap', proto: true, real: true, forced: true }, {
10
9
  upsert: upsert
11
10
  });
@@ -1,10 +1,9 @@
1
1
  'use strict';
2
2
  var $ = require('../internals/export');
3
- var IS_PURE = require('../internals/is-pure');
4
3
  var addAll = require('../internals/collection-add-all');
5
4
 
6
5
  // `WeakSet.prototype.addAll` method
7
6
  // https://github.com/tc39/proposal-collection-methods
8
- $({ target: 'WeakSet', proto: true, real: true, forced: IS_PURE }, {
7
+ $({ target: 'WeakSet', proto: true, real: true, forced: true }, {
9
8
  addAll: addAll
10
9
  });
@@ -1,10 +1,9 @@
1
1
  'use strict';
2
2
  var $ = require('../internals/export');
3
- var IS_PURE = require('../internals/is-pure');
4
3
  var deleteAll = require('../internals/collection-delete-all');
5
4
 
6
5
  // `WeakSet.prototype.deleteAll` method
7
6
  // https://github.com/tc39/proposal-collection-methods
8
- $({ target: 'WeakSet', proto: true, real: true, forced: IS_PURE }, {
7
+ $({ target: 'WeakSet', proto: true, real: true, forced: true }, {
9
8
  deleteAll: deleteAll
10
9
  });
@@ -3,6 +3,6 @@ var from = require('../internals/collection-from');
3
3
 
4
4
  // `WeakSet.from` method
5
5
  // https://tc39.github.io/proposal-setmap-offrom/#sec-weakset.from
6
- $({ target: 'WeakSet', stat: true }, {
6
+ $({ target: 'WeakSet', stat: true, forced: true }, {
7
7
  from: from
8
8
  });
@@ -3,6 +3,6 @@ var of = require('../internals/collection-of');
3
3
 
4
4
  // `WeakSet.of` method
5
5
  // https://tc39.github.io/proposal-setmap-offrom/#sec-weakset.of
6
- $({ target: 'WeakSet', stat: true }, {
6
+ $({ target: 'WeakSet', stat: true, forced: true }, {
7
7
  of: of
8
8
  });
@@ -0,0 +1,52 @@
1
+ var $ = require('../internals/export');
2
+ var getBuiltIn = require('../internals/get-built-in');
3
+ var uncurryThis = require('../internals/function-uncurry-this');
4
+ var fails = require('../internals/fails');
5
+ var toString = require('../internals/to-string');
6
+ var hasOwn = require('../internals/has-own-property');
7
+ var validateArgumentsLength = require('../internals/validate-arguments-length');
8
+ var ctoi = require('../internals/base64-map').ctoi;
9
+
10
+ var disallowed = /[^\d+/a-z]/i;
11
+ var whitespaces = /[\t\n\f\r ]+/g;
12
+ var finalEq = /[=]+$/;
13
+
14
+ var $atob = getBuiltIn('atob');
15
+ var fromCharCode = String.fromCharCode;
16
+ var charAt = uncurryThis(''.charAt);
17
+ var replace = uncurryThis(''.replace);
18
+ var exec = uncurryThis(disallowed.exec);
19
+
20
+ var NO_SPACES_IGNORE = fails(function () {
21
+ return atob(' ') !== '';
22
+ });
23
+
24
+ var NO_ARG_RECEIVING_CHECK = !NO_SPACES_IGNORE && !fails(function () {
25
+ $atob();
26
+ });
27
+
28
+ // `atob` method
29
+ // https://html.spec.whatwg.org/multipage/webappapis.html#dom-atob
30
+ $({ global: true, enumerable: true, forced: NO_SPACES_IGNORE || NO_ARG_RECEIVING_CHECK }, {
31
+ atob: function atob(data) {
32
+ validateArgumentsLength(arguments.length, 1);
33
+ if (NO_ARG_RECEIVING_CHECK) return $atob(data);
34
+ var string = replace(toString(data), whitespaces, '');
35
+ var output = '';
36
+ var position = 0;
37
+ var bc = 0;
38
+ var chr, bs;
39
+ if (string.length % 4 == 0) {
40
+ string = replace(string, finalEq, '');
41
+ }
42
+ if (string.length % 4 == 1 || exec(disallowed, string)) {
43
+ throw new (getBuiltIn('DOMException'))('The string is not correctly encoded', 'InvalidCharacterError');
44
+ }
45
+ while (chr = charAt(string, position++)) {
46
+ if (hasOwn(ctoi, chr)) {
47
+ bs = bc % 4 ? bs * 64 + ctoi[chr] : ctoi[chr];
48
+ if (bc++ % 4) output += fromCharCode(255 & bs >> (-2 * bc & 6));
49
+ }
50
+ } return output;
51
+ }
52
+ });
@@ -0,0 +1,37 @@
1
+ var $ = require('../internals/export');
2
+ var getBuiltIn = require('../internals/get-built-in');
3
+ var uncurryThis = require('../internals/function-uncurry-this');
4
+ var fails = require('../internals/fails');
5
+ var toString = require('../internals/to-string');
6
+ var validateArgumentsLength = require('../internals/validate-arguments-length');
7
+ var itoc = require('../internals/base64-map').itoc;
8
+
9
+ var $btoa = getBuiltIn('btoa');
10
+ var charAt = uncurryThis(''.charAt);
11
+ var charCodeAt = uncurryThis(''.charCodeAt);
12
+
13
+ var NO_ARG_RECEIVING_CHECK = !!$btoa && !fails(function () {
14
+ $btoa();
15
+ });
16
+
17
+ // `btoa` method
18
+ // https://html.spec.whatwg.org/multipage/webappapis.html#dom-btoa
19
+ $({ global: true, enumerable: true, forced: NO_ARG_RECEIVING_CHECK }, {
20
+ btoa: function btoa(data) {
21
+ validateArgumentsLength(arguments.length, 1);
22
+ if (NO_ARG_RECEIVING_CHECK) return $btoa(data);
23
+ var string = toString(data);
24
+ var output = '';
25
+ var position = 0;
26
+ var map = itoc;
27
+ var block, charCode;
28
+ while (charAt(string, position) || (map = '=', position % 1)) {
29
+ charCode = charCodeAt(string, position += 3 / 4);
30
+ if (charCode > 0xFF) {
31
+ throw new (getBuiltIn('DOMException'))('The string contains characters outside of the Latin1 range', 'InvalidCharacterError');
32
+ }
33
+ block = block << 8 | charCode;
34
+ output += charAt(map, 63 & block >> 8 - position % 1 * 8);
35
+ } return output;
36
+ }
37
+ });
@@ -6,7 +6,7 @@ var fails = require('../internals/fails');
6
6
  var create = require('../internals/object-create');
7
7
  var createPropertyDescriptor = require('../internals/create-property-descriptor');
8
8
  var defineProperty = require('../internals/object-define-property').f;
9
- var defineProperties = require('../internals/object-define-properties');
9
+ var defineProperties = require('../internals/object-define-properties').f;
10
10
  var redefine = require('../internals/redefine');
11
11
  var hasOwn = require('../internals/has-own-property');
12
12
  var anInstance = require('../internals/an-instance');
@@ -1,6 +1,8 @@
1
1
  var $ = require('../internals/export');
2
2
  var global = require('../internals/global');
3
3
  var microtask = require('../internals/microtask');
4
+ var aCallable = require('../internals/a-callable');
5
+ var validateArgumentsLength = require('../internals/validate-arguments-length');
4
6
  var IS_NODE = require('../internals/engine-is-node');
5
7
 
6
8
  var process = global.process;
@@ -9,6 +11,8 @@ var process = global.process;
9
11
  // https://html.spec.whatwg.org/multipage/timers-and-user-prompts.html#dom-queuemicrotask
10
12
  $({ global: true, enumerable: true, noTargetGet: true }, {
11
13
  queueMicrotask: function queueMicrotask(fn) {
14
+ validateArgumentsLength(arguments.length, 1);
15
+ aCallable(fn);
12
16
  var domain = IS_NODE && process.domain;
13
17
  microtask(domain ? domain.bind(fn) : fn);
14
18
  }
@@ -16,6 +16,7 @@ var hasOwn = require('../internals/has-own-property');
16
16
  var createProperty = require('../internals/create-property');
17
17
  var createNonEnumerableProperty = require('../internals/create-non-enumerable-property');
18
18
  var lengthOfArrayLike = require('../internals/length-of-array-like');
19
+ var validateArgumentsLength = require('../internals/validate-arguments-length');
19
20
  var regExpFlags = require('../internals/regexp-flags');
20
21
  var ERROR_STACK_INSTALLABLE = require('../internals/error-stack-installable');
21
22
 
@@ -43,7 +44,7 @@ var mapSet = uncurryThis(MapPrototype.set);
43
44
  var setAdd = uncurryThis(Set.prototype.add);
44
45
  var objectKeys = getBuiltin('Object', 'keys');
45
46
  var push = uncurryThis([].push);
46
- var bolleanValueOf = uncurryThis(true.valueOf);
47
+ var booleanValueOf = uncurryThis(true.valueOf);
47
48
  var numberValueOf = uncurryThis(1.0.valueOf);
48
49
  var stringValueOf = uncurryThis(''.valueOf);
49
50
  var getFlags = uncurryThis(regExpFlags);
@@ -248,7 +249,7 @@ var structuredCloneInternal = function (value, map) {
248
249
  cloned = Object(value.valueOf());
249
250
  break;
250
251
  case 'Boolean':
251
- cloned = Object(bolleanValueOf(value));
252
+ cloned = Object(booleanValueOf(value));
252
253
  break;
253
254
  case 'Number':
254
255
  cloned = Object(numberValueOf(value));
@@ -278,7 +279,7 @@ var structuredCloneInternal = function (value, map) {
278
279
  }
279
280
  }
280
281
  } catch (error) {
281
- throw new DOMException('ArrayBuffer is deatched', DATA_CLONE_ERROR);
282
+ throw new DOMException('ArrayBuffer is detached', DATA_CLONE_ERROR);
282
283
  } break;
283
284
  case 'SharedArrayBuffer':
284
285
  // SharedArrayBuffer should use shared memory, we can't polyfill it, so return the original
@@ -447,7 +448,7 @@ var tryToTransfer = function (rawTransfer, map) {
447
448
 
448
449
  $({ global: true, enumerable: true, sham: !PROPER_TRANSFER, forced: FORCED_REPLACEMENT }, {
449
450
  structuredClone: function structuredClone(value /* , { transfer } */) {
450
- var options = arguments.length > 1 ? anObject(arguments[1]) : undefined;
451
+ var options = validateArgumentsLength(arguments.length, 1) > 1 ? anObject(arguments[1]) : undefined;
451
452
  var transfer = options ? options.transfer : undefined;
452
453
  var map;
453
454
 
@@ -4,17 +4,19 @@ var apply = require('../internals/function-apply');
4
4
  var isCallable = require('../internals/is-callable');
5
5
  var userAgent = require('../internals/engine-user-agent');
6
6
  var arraySlice = require('../internals/array-slice');
7
+ var validateArgumentsLength = require('../internals/validate-arguments-length');
7
8
 
8
9
  var MSIE = /MSIE .\./.test(userAgent); // <- dirty ie9- check
9
10
  var Function = global.Function;
10
11
 
11
12
  var wrap = function (scheduler) {
12
13
  return function (handler, timeout /* , ...arguments */) {
13
- var boundArgs = arguments.length > 2;
14
+ var boundArgs = validateArgumentsLength(arguments.length, 1) > 2;
15
+ var fn = isCallable(handler) ? handler : Function(handler);
14
16
  var args = boundArgs ? arraySlice(arguments, 2) : undefined;
15
17
  return scheduler(boundArgs ? function () {
16
- apply(isCallable(handler) ? handler : Function(handler), this, args);
17
- } : handler, timeout);
18
+ apply(fn, this, args);
19
+ } : fn, timeout);
18
20
  };
19
21
  };
20
22
 
@@ -24,6 +24,7 @@ var create = require('../internals/object-create');
24
24
  var createPropertyDescriptor = require('../internals/create-property-descriptor');
25
25
  var getIterator = require('../internals/get-iterator');
26
26
  var getIteratorMethod = require('../internals/get-iterator-method');
27
+ var validateArgumentsLength = require('../internals/validate-arguments-length');
27
28
  var wellKnownSymbol = require('../internals/well-known-symbol');
28
29
  var arraySort = require('../internals/array-sort');
29
30
 
@@ -99,10 +100,6 @@ var serialize = function (it) {
99
100
  return replace(encodeURIComponent(it), find, replacer);
100
101
  };
101
102
 
102
- var validateArgumentsLength = function (passed, required) {
103
- if (passed < required) throw TypeError('Not enough arguments');
104
- };
105
-
106
103
  var URLSearchParamsIterator = createIteratorConstructor(function Iterator(params, kind) {
107
104
  setInternalState(this, {
108
105
  type: URL_SEARCH_PARAMS_ITERATOR,
@@ -7,7 +7,7 @@ var USE_NATIVE_URL = require('../internals/native-url');
7
7
  var global = require('../internals/global');
8
8
  var bind = require('../internals/function-bind-context');
9
9
  var uncurryThis = require('../internals/function-uncurry-this');
10
- var defineProperties = require('../internals/object-define-properties');
10
+ var defineProperties = require('../internals/object-define-properties').f;
11
11
  var redefine = require('../internals/redefine');
12
12
  var anInstance = require('../internals/an-instance');
13
13
  var hasOwn = require('../internals/has-own-property');
@@ -18,6 +18,7 @@ var codeAt = require('../internals/string-multibyte').codeAt;
18
18
  var toASCII = require('../internals/string-punycode-to-ascii');
19
19
  var $toString = require('../internals/to-string');
20
20
  var setToStringTag = require('../internals/set-to-string-tag');
21
+ var validateArgumentsLength = require('../internals/validate-arguments-length');
21
22
  var URLSearchParamsModule = require('../modules/web.url-search-params');
22
23
  var InternalStateModule = require('../internals/internal-state');
23
24
 
@@ -939,7 +940,7 @@ URLState.prototype = {
939
940
  // https://url.spec.whatwg.org/#url-class
940
941
  var URLConstructor = function URL(url /* , base */) {
941
942
  var that = anInstance(this, URLPrototype);
942
- var base = arguments.length > 1 ? arguments[1] : undefined;
943
+ var base = validateArgumentsLength(arguments.length, 1) > 1 ? arguments[1] : undefined;
943
944
  var state = setInternalState(that, new URLState(url, false, base));
944
945
  if (!DESCRIPTORS) {
945
946
  that.href = state.serialize();
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "core-js",
3
3
  "description": "Standard library",
4
- "version": "3.20.0",
4
+ "version": "3.21.0",
5
5
  "repository": {
6
6
  "type": "git",
7
7
  "url": "https://github.com/zloirock/core-js.git"
@@ -54,5 +54,5 @@
54
54
  "scripts": {
55
55
  "postinstall": "node -e \"try{require('./postinstall')}catch(e){}\""
56
56
  },
57
- "gitHead": "29590d0f9f1ef51856b8498da76c316712ac7fae"
57
+ "gitHead": "32492dc5f55ea9bbd21b8fa8145cedd36d68c160"
58
58
  }
package/postinstall.js CHANGED
@@ -38,7 +38,7 @@ function isBannerRequired() {
38
38
  try {
39
39
  var DELTA = Date.now() - fs.statSync(file).mtime;
40
40
  if (DELTA >= 0 && DELTA < MINUTE * 3) {
41
- banners = JSON.parse(fs.readFileSync(file, 'utf8'));
41
+ banners = JSON.parse(fs.readFileSync(file));
42
42
  if (banners.indexOf(BANNER) !== -1) return false;
43
43
  }
44
44
  } catch (error) {
package/stable/atob.js ADDED
@@ -0,0 +1,9 @@
1
+ require('../modules/es.error.to-string');
2
+ require('../modules/es.object.to-string');
3
+ require('../modules/web.atob');
4
+ require('../modules/web.dom-exception.constructor');
5
+ require('../modules/web.dom-exception.stack');
6
+ require('../modules/web.dom-exception.to-string-tag');
7
+ var path = require('../internals/path');
8
+
9
+ module.exports = path.atob;
package/stable/btoa.js ADDED
@@ -0,0 +1,9 @@
1
+ require('../modules/es.error.to-string');
2
+ require('../modules/es.object.to-string');
3
+ require('../modules/web.btoa');
4
+ require('../modules/web.dom-exception.constructor');
5
+ require('../modules/web.dom-exception.stack');
6
+ require('../modules/web.dom-exception.to-string-tag');
7
+ var path = require('../internals/path');
8
+
9
+ module.exports = path.btoa;
package/stable/index.js CHANGED
@@ -224,6 +224,8 @@ require('../modules/es.typed-array.to-string');
224
224
  require('../modules/es.unescape');
225
225
  require('../modules/es.weak-map');
226
226
  require('../modules/es.weak-set');
227
+ require('../modules/web.atob');
228
+ require('../modules/web.btoa');
227
229
  require('../modules/web.dom-collections.for-each');
228
230
  require('../modules/web.dom-collections.iterator');
229
231
  require('../modules/web.dom-exception.constructor');
package/web/index.js CHANGED
@@ -1,3 +1,5 @@
1
+ require('../modules/web.atob');
2
+ require('../modules/web.btoa');
1
3
  require('../modules/web.dom-collections.for-each');
2
4
  require('../modules/web.dom-collections.iterator');
3
5
  require('../modules/web.dom-exception.constructor');