core-js 3.33.3 → 3.35.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 (98) hide show
  1. package/actual/map/group-by.js +2 -10
  2. package/actual/object/group-by.js +2 -4
  3. package/actual/promise/with-resolvers.js +3 -10
  4. package/es/index.js +3 -0
  5. package/es/map/group-by.js +13 -0
  6. package/es/map/index.js +1 -0
  7. package/es/object/group-by.js +7 -0
  8. package/es/object/index.js +1 -0
  9. package/es/promise/index.js +1 -0
  10. package/es/promise/with-resolvers.js +13 -0
  11. package/features/typed-array/from-base64.js +2 -0
  12. package/features/typed-array/from-hex.js +2 -0
  13. package/features/typed-array/to-base64.js +2 -0
  14. package/features/typed-array/to-hex.js +2 -0
  15. package/full/index.js +7 -0
  16. package/full/typed-array/from-base64.js +2 -0
  17. package/full/typed-array/from-hex.js +2 -0
  18. package/full/typed-array/index.js +4 -0
  19. package/full/typed-array/methods.js +4 -0
  20. package/full/typed-array/to-base64.js +2 -0
  21. package/full/typed-array/to-hex.js +2 -0
  22. package/internals/a-data-view.js +9 -0
  23. package/internals/a-possible-prototype.js +2 -2
  24. package/internals/a-string.js +7 -0
  25. package/internals/an-object-or-undefined.js +10 -0
  26. package/internals/an-uint8-array.js +11 -0
  27. package/internals/array-buffer.js +6 -9
  28. package/internals/array-from-constructor-and-list.js +2 -2
  29. package/internals/array-iteration-from-last.js +1 -1
  30. package/internals/array-iteration.js +1 -1
  31. package/internals/array-reduce.js +1 -1
  32. package/internals/array-sort.js +30 -33
  33. package/internals/base64-map.js +14 -5
  34. package/internals/collection-from.js +17 -24
  35. package/internals/collection-of.js +11 -3
  36. package/internals/collection-strong.js +1 -2
  37. package/internals/get-alphabet-option.js +8 -0
  38. package/internals/get-set-record.js +5 -10
  39. package/internals/is-callable.js +4 -4
  40. package/internals/is-object.js +1 -6
  41. package/internals/is-possible-prototype.js +6 -0
  42. package/internals/microtask.js +2 -4
  43. package/internals/object-get-own-property-names-external.js +1 -1
  44. package/internals/safe-get-built-in.js +13 -0
  45. package/internals/shared.js +2 -2
  46. package/internals/typed-array-constructor.js +3 -12
  47. package/modules/es.array.push.js +1 -1
  48. package/modules/es.function.has-instance.js +2 -5
  49. package/modules/es.map.group-by.js +31 -0
  50. package/modules/es.object.group-by.js +30 -0
  51. package/modules/es.object.proto.js +4 -2
  52. package/modules/es.promise.reject.js +2 -2
  53. package/modules/es.promise.with-resolvers.js +16 -0
  54. package/modules/es.regexp.constructor.js +2 -1
  55. package/modules/es.regexp.dot-all.js +1 -1
  56. package/modules/es.regexp.to-string.js +1 -1
  57. package/modules/es.string.ends-with.js +1 -5
  58. package/modules/es.string.split.js +1 -1
  59. package/modules/es.string.starts-with.js +1 -5
  60. package/modules/es.symbol.constructor.js +1 -1
  61. package/modules/es.weak-map.constructor.js +3 -6
  62. package/modules/esnext.data-view.set-float16.js +2 -3
  63. package/modules/esnext.data-view.set-uint8-clamped.js +2 -3
  64. package/modules/esnext.iterator.constructor.js +27 -7
  65. package/modules/esnext.map.from.js +3 -2
  66. package/modules/esnext.map.group-by.js +2 -30
  67. package/modules/esnext.map.of.js +3 -2
  68. package/modules/esnext.number.from-string.js +1 -1
  69. package/modules/esnext.object.group-by.js +2 -29
  70. package/modules/esnext.promise.with-resolvers.js +2 -15
  71. package/modules/esnext.set.from.js +3 -2
  72. package/modules/esnext.set.of.js +3 -2
  73. package/modules/esnext.string.dedent.js +1 -1
  74. package/modules/esnext.uint8-array.from-base64.js +75 -0
  75. package/modules/esnext.uint8-array.from-hex.js +28 -0
  76. package/modules/esnext.uint8-array.to-base64.js +47 -0
  77. package/modules/esnext.uint8-array.to-hex.js +22 -0
  78. package/modules/esnext.weak-map.from.js +3 -2
  79. package/modules/esnext.weak-map.of.js +3 -2
  80. package/modules/esnext.weak-set.from.js +3 -2
  81. package/modules/esnext.weak-set.of.js +3 -2
  82. package/modules/web.atob.js +20 -15
  83. package/modules/web.btoa.js +11 -7
  84. package/modules/web.dom-collections.iterator.js +2 -4
  85. package/modules/web.queue-microtask.js +1 -7
  86. package/modules/web.url-search-params.constructor.js +1 -9
  87. package/modules/web.url.constructor.js +1 -1
  88. package/package.json +1 -1
  89. package/proposals/array-buffer-base64.js +6 -0
  90. package/stable/index.js +3 -0
  91. package/stable/map/group-by.js +4 -0
  92. package/stable/object/group-by.js +4 -0
  93. package/stable/promise/with-resolvers.js +4 -0
  94. package/stage/2.js +1 -0
  95. package/stage/3.js +0 -2
  96. package/stage/4.js +2 -0
  97. package/internals/array-slice-simple.js +0 -18
  98. package/internals/document-all.js +0 -11
@@ -1,13 +1,5 @@
1
1
  'use strict';
2
- require('../../modules/es.map');
2
+ var parent = require('../../stable/map/group-by');
3
3
  require('../../modules/esnext.map.group-by');
4
- var call = require('../../internals/function-call');
5
- var isCallable = require('../../internals/is-callable');
6
- var path = require('../../internals/path');
7
4
 
8
- var Map = path.Map;
9
- var mapGroupBy = Map.groupBy;
10
-
11
- module.exports = function groupBy(source, iterable, keyDerivative) {
12
- return call(mapGroupBy, isCallable(this) ? this : Map, source, iterable, keyDerivative);
13
- };
5
+ module.exports = parent;
@@ -1,7 +1,5 @@
1
1
  'use strict';
2
- require('../../modules/es.object.create');
2
+ var parent = require('../../stable/object/group-by');
3
3
  require('../../modules/esnext.object.group-by');
4
4
 
5
- var path = require('../../internals/path');
6
-
7
- module.exports = path.Object.groupBy;
5
+ module.exports = parent;
@@ -1,13 +1,6 @@
1
1
  'use strict';
2
- require('../../modules/es.promise');
2
+ var parent = require('../../stable/promise/with-resolvers');
3
+ // TODO: Remove from `core-js@4`
3
4
  require('../../modules/esnext.promise.with-resolvers');
4
- var call = require('../../internals/function-call');
5
- var isCallable = require('../../internals/is-callable');
6
- var path = require('../../internals/path');
7
5
 
8
- var Promise = path.Promise;
9
- var promiseWithResolvers = Promise.withResolvers;
10
-
11
- module.exports = function withResolvers() {
12
- return call(promiseWithResolvers, isCallable(this) ? this : Promise);
13
- };
6
+ module.exports = parent;
package/es/index.js CHANGED
@@ -76,6 +76,7 @@ require('../modules/es.global-this');
76
76
  require('../modules/es.json.stringify');
77
77
  require('../modules/es.json.to-string-tag');
78
78
  require('../modules/es.map');
79
+ require('../modules/es.map.group-by');
79
80
  require('../modules/es.math.acosh');
80
81
  require('../modules/es.math.asinh');
81
82
  require('../modules/es.math.atanh');
@@ -120,6 +121,7 @@ require('../modules/es.object.get-own-property-descriptor');
120
121
  require('../modules/es.object.get-own-property-descriptors');
121
122
  require('../modules/es.object.get-own-property-names');
122
123
  require('../modules/es.object.get-prototype-of');
124
+ require('../modules/es.object.group-by');
123
125
  require('../modules/es.object.has-own');
124
126
  require('../modules/es.object.is');
125
127
  require('../modules/es.object.is-extensible');
@@ -140,6 +142,7 @@ require('../modules/es.promise');
140
142
  require('../modules/es.promise.all-settled');
141
143
  require('../modules/es.promise.any');
142
144
  require('../modules/es.promise.finally');
145
+ require('../modules/es.promise.with-resolvers');
143
146
  require('../modules/es.reflect.apply');
144
147
  require('../modules/es.reflect.construct');
145
148
  require('../modules/es.reflect.define-property');
@@ -0,0 +1,13 @@
1
+ 'use strict';
2
+ require('../../modules/es.map');
3
+ require('../../modules/es.map.group-by');
4
+ var call = require('../../internals/function-call');
5
+ var isCallable = require('../../internals/is-callable');
6
+ var path = require('../../internals/path');
7
+
8
+ var Map = path.Map;
9
+ var mapGroupBy = Map.groupBy;
10
+
11
+ module.exports = function groupBy(source, iterable, keyDerivative) {
12
+ return call(mapGroupBy, isCallable(this) ? this : Map, source, iterable, keyDerivative);
13
+ };
package/es/map/index.js CHANGED
@@ -1,6 +1,7 @@
1
1
  'use strict';
2
2
  require('../../modules/es.array.iterator');
3
3
  require('../../modules/es.map');
4
+ require('../../modules/es.map.group-by');
4
5
  require('../../modules/es.object.to-string');
5
6
  require('../../modules/es.string.iterator');
6
7
  var path = require('../../internals/path');
@@ -0,0 +1,7 @@
1
+ 'use strict';
2
+ require('../../modules/es.object.create');
3
+ require('../../modules/es.object.group-by');
4
+
5
+ var path = require('../../internals/path');
6
+
7
+ module.exports = path.Object.groupBy;
@@ -11,6 +11,7 @@ require('../../modules/es.object.get-own-property-descriptor');
11
11
  require('../../modules/es.object.get-own-property-descriptors');
12
12
  require('../../modules/es.object.get-own-property-names');
13
13
  require('../../modules/es.object.get-prototype-of');
14
+ require('../../modules/es.object.group-by');
14
15
  require('../../modules/es.object.has-own');
15
16
  require('../../modules/es.object.is');
16
17
  require('../../modules/es.object.is-extensible');
@@ -5,6 +5,7 @@ require('../../modules/es.object.to-string');
5
5
  require('../../modules/es.promise');
6
6
  require('../../modules/es.promise.all-settled');
7
7
  require('../../modules/es.promise.any');
8
+ require('../../modules/es.promise.with-resolvers');
8
9
  require('../../modules/es.promise.finally');
9
10
  require('../../modules/es.string.iterator');
10
11
  var path = require('../../internals/path');
@@ -0,0 +1,13 @@
1
+ 'use strict';
2
+ require('../../modules/es.promise');
3
+ require('../../modules/es.promise.with-resolvers');
4
+ var call = require('../../internals/function-call');
5
+ var isCallable = require('../../internals/is-callable');
6
+ var path = require('../../internals/path');
7
+
8
+ var Promise = path.Promise;
9
+ var promiseWithResolvers = Promise.withResolvers;
10
+
11
+ module.exports = function withResolvers() {
12
+ return call(promiseWithResolvers, isCallable(this) ? this : Promise);
13
+ };
@@ -0,0 +1,2 @@
1
+ 'use strict';
2
+ module.exports = require('../../full/typed-array/from-base64');
@@ -0,0 +1,2 @@
1
+ 'use strict';
2
+ module.exports = require('../../full/typed-array/from-hex');
@@ -0,0 +1,2 @@
1
+ 'use strict';
2
+ module.exports = require('../../full/typed-array/to-base64');
@@ -0,0 +1,2 @@
1
+ 'use strict';
2
+ module.exports = require('../../full/typed-array/to-hex');
package/full/index.js CHANGED
@@ -76,6 +76,7 @@ require('../modules/es.global-this');
76
76
  require('../modules/es.json.stringify');
77
77
  require('../modules/es.json.to-string-tag');
78
78
  require('../modules/es.map');
79
+ require('../modules/es.map.group-by');
79
80
  require('../modules/es.math.acosh');
80
81
  require('../modules/es.math.asinh');
81
82
  require('../modules/es.math.atanh');
@@ -120,6 +121,7 @@ require('../modules/es.object.get-own-property-descriptor');
120
121
  require('../modules/es.object.get-own-property-descriptors');
121
122
  require('../modules/es.object.get-own-property-names');
122
123
  require('../modules/es.object.get-prototype-of');
124
+ require('../modules/es.object.group-by');
123
125
  require('../modules/es.object.has-own');
124
126
  require('../modules/es.object.is');
125
127
  require('../modules/es.object.is-extensible');
@@ -140,6 +142,7 @@ require('../modules/es.promise');
140
142
  require('../modules/es.promise.all-settled');
141
143
  require('../modules/es.promise.any');
142
144
  require('../modules/es.promise.finally');
145
+ require('../modules/es.promise.with-resolvers');
143
146
  require('../modules/es.reflect.apply');
144
147
  require('../modules/es.reflect.construct');
145
148
  require('../modules/es.reflect.define-property');
@@ -429,6 +432,10 @@ require('../modules/esnext.typed-array.to-sorted');
429
432
  require('../modules/esnext.typed-array.to-spliced');
430
433
  require('../modules/esnext.typed-array.unique-by');
431
434
  require('../modules/esnext.typed-array.with');
435
+ require('../modules/esnext.uint8-array.from-base64');
436
+ require('../modules/esnext.uint8-array.from-hex');
437
+ require('../modules/esnext.uint8-array.to-base64');
438
+ require('../modules/esnext.uint8-array.to-hex');
432
439
  require('../modules/esnext.weak-map.delete-all');
433
440
  require('../modules/esnext.weak-map.from');
434
441
  require('../modules/esnext.weak-map.of');
@@ -0,0 +1,2 @@
1
+ 'use strict';
2
+ require('../../modules/esnext.uint8-array.from-base64');
@@ -0,0 +1,2 @@
1
+ 'use strict';
2
+ require('../../modules/esnext.uint8-array.from-hex');
@@ -10,5 +10,9 @@ require('../../modules/esnext.typed-array.filter-out');
10
10
  require('../../modules/esnext.typed-array.filter-reject');
11
11
  require('../../modules/esnext.typed-array.group-by');
12
12
  require('../../modules/esnext.typed-array.unique-by');
13
+ require('../../modules/esnext.uint8-array.from-base64');
14
+ require('../../modules/esnext.uint8-array.from-hex');
15
+ require('../../modules/esnext.uint8-array.to-base64');
16
+ require('../../modules/esnext.uint8-array.to-hex');
13
17
 
14
18
  module.exports = parent;
@@ -10,5 +10,9 @@ require('../../modules/esnext.typed-array.filter-out');
10
10
  require('../../modules/esnext.typed-array.filter-reject');
11
11
  require('../../modules/esnext.typed-array.group-by');
12
12
  require('../../modules/esnext.typed-array.unique-by');
13
+ require('../../modules/esnext.uint8-array.from-base64');
14
+ require('../../modules/esnext.uint8-array.from-hex');
15
+ require('../../modules/esnext.uint8-array.to-base64');
16
+ require('../../modules/esnext.uint8-array.to-hex');
13
17
 
14
18
  module.exports = parent;
@@ -0,0 +1,2 @@
1
+ 'use strict';
2
+ require('../../modules/esnext.uint8-array.to-base64');
@@ -0,0 +1,2 @@
1
+ 'use strict';
2
+ require('../../modules/esnext.uint8-array.to-hex');
@@ -0,0 +1,9 @@
1
+ 'use strict';
2
+ var classof = require('../internals/classof');
3
+
4
+ var $TypeError = TypeError;
5
+
6
+ module.exports = function (argument) {
7
+ if (classof(argument) === 'DataView') return argument;
8
+ throw new $TypeError('Argument is not a DataView');
9
+ };
@@ -1,10 +1,10 @@
1
1
  'use strict';
2
- var isCallable = require('../internals/is-callable');
2
+ var isPossiblePrototype = require('../internals/is-possible-prototype');
3
3
 
4
4
  var $String = String;
5
5
  var $TypeError = TypeError;
6
6
 
7
7
  module.exports = function (argument) {
8
- if (typeof argument == 'object' || isCallable(argument)) return argument;
8
+ if (isPossiblePrototype(argument)) return argument;
9
9
  throw new $TypeError("Can't set " + $String(argument) + ' as a prototype');
10
10
  };
@@ -0,0 +1,7 @@
1
+ 'use strict';
2
+ var $TypeError = TypeError;
3
+
4
+ module.exports = function (argument) {
5
+ if (typeof argument == 'string') return argument;
6
+ throw new $TypeError('Argument is not a string');
7
+ };
@@ -0,0 +1,10 @@
1
+ 'use strict';
2
+ var isObject = require('../internals/is-object');
3
+
4
+ var $String = String;
5
+ var $TypeError = TypeError;
6
+
7
+ module.exports = function (argument) {
8
+ if (argument === undefined || isObject(argument)) return argument;
9
+ throw new $TypeError($String(argument) + ' is not an object or undefined');
10
+ };
@@ -0,0 +1,11 @@
1
+ 'use strict';
2
+ var classof = require('../internals/classof');
3
+
4
+ var $TypeError = TypeError;
5
+
6
+ // Perform ? RequireInternalSlot(argument, [[TypedArrayName]])
7
+ // If argument.[[TypedArrayName]] is not "Uint8Array", throw a TypeError exception
8
+ module.exports = function (argument) {
9
+ if (classof(argument) === 'Uint8Array') return argument;
10
+ throw new $TypeError('Argument is not an Uint8Array');
11
+ };
@@ -16,9 +16,10 @@ var fround = require('../internals/math-fround');
16
16
  var IEEE754 = require('../internals/ieee754');
17
17
  var getPrototypeOf = require('../internals/object-get-prototype-of');
18
18
  var setPrototypeOf = require('../internals/object-set-prototype-of');
19
- var getOwnPropertyNames = require('../internals/object-get-own-property-names').f;
20
19
  var arrayFill = require('../internals/array-fill');
21
- var arraySlice = require('../internals/array-slice-simple');
20
+ var arraySlice = require('../internals/array-slice');
21
+ var inheritIfRequired = require('../internals/inherit-if-required');
22
+ var copyConstructorProperties = require('../internals/copy-constructor-properties');
22
23
  var setToStringTag = require('../internals/set-to-string-tag');
23
24
  var InternalStateModule = require('../internals/internal-state');
24
25
 
@@ -218,18 +219,14 @@ if (!NATIVE_ARRAY_BUFFER) {
218
219
  /* eslint-enable no-new -- required for testing */
219
220
  $ArrayBuffer = function ArrayBuffer(length) {
220
221
  anInstance(this, ArrayBufferPrototype);
221
- return new NativeArrayBuffer(toIndex(length));
222
+ return inheritIfRequired(new NativeArrayBuffer(toIndex(length)), this, $ArrayBuffer);
222
223
  };
223
224
 
224
225
  $ArrayBuffer[PROTOTYPE] = ArrayBufferPrototype;
225
226
 
226
- for (var keys = getOwnPropertyNames(NativeArrayBuffer), j = 0, key; keys.length > j;) {
227
- if (!((key = keys[j++]) in $ArrayBuffer)) {
228
- createNonEnumerableProperty($ArrayBuffer, key, NativeArrayBuffer[key]);
229
- }
230
- }
231
-
232
227
  ArrayBufferPrototype.constructor = $ArrayBuffer;
228
+
229
+ copyConstructorProperties($ArrayBuffer, NativeArrayBuffer);
233
230
  } else if (INCORRECT_ARRAY_BUFFER_NAME && CONFIGURABLE_FUNCTION_NAME) {
234
231
  createNonEnumerableProperty(NativeArrayBuffer, 'name', ARRAY_BUFFER);
235
232
  }
@@ -1,9 +1,9 @@
1
1
  'use strict';
2
2
  var lengthOfArrayLike = require('../internals/length-of-array-like');
3
3
 
4
- module.exports = function (Constructor, list) {
4
+ module.exports = function (Constructor, list, $length) {
5
5
  var index = 0;
6
- var length = lengthOfArrayLike(list);
6
+ var length = arguments.length > 2 ? $length : lengthOfArrayLike(list);
7
7
  var result = new Constructor(length);
8
8
  while (length > index) result[index] = list[index++];
9
9
  return result;
@@ -10,8 +10,8 @@ var createMethod = function (TYPE) {
10
10
  return function ($this, callbackfn, that) {
11
11
  var O = toObject($this);
12
12
  var self = IndexedObject(O);
13
- var boundFunction = bind(callbackfn, that);
14
13
  var index = lengthOfArrayLike(self);
14
+ var boundFunction = bind(callbackfn, that);
15
15
  var value, result;
16
16
  while (index-- > 0) {
17
17
  value = self[index];
@@ -20,8 +20,8 @@ var createMethod = function (TYPE) {
20
20
  return function ($this, callbackfn, that, specificCreate) {
21
21
  var O = toObject($this);
22
22
  var self = IndexedObject(O);
23
- var boundFunction = bind(callbackfn, that);
24
23
  var length = lengthOfArrayLike(self);
24
+ var boundFunction = bind(callbackfn, that);
25
25
  var index = 0;
26
26
  var create = specificCreate || arraySpeciesCreate;
27
27
  var target = IS_MAP ? create($this, length) : IS_FILTER || IS_FILTER_REJECT ? create($this, 0) : undefined;
@@ -9,10 +9,10 @@ var $TypeError = TypeError;
9
9
  // `Array.prototype.{ reduce, reduceRight }` methods implementation
10
10
  var createMethod = function (IS_RIGHT) {
11
11
  return function (that, callbackfn, argumentsLength, memo) {
12
- aCallable(callbackfn);
13
12
  var O = toObject(that);
14
13
  var self = IndexedObject(O);
15
14
  var length = lengthOfArrayLike(O);
15
+ aCallable(callbackfn);
16
16
  var index = IS_RIGHT ? length - 1 : 0;
17
17
  var i = IS_RIGHT ? -1 : 1;
18
18
  if (argumentsLength < 2) while (true) {
@@ -1,45 +1,42 @@
1
1
  'use strict';
2
- var arraySlice = require('../internals/array-slice-simple');
2
+ var arraySlice = require('../internals/array-slice');
3
3
 
4
4
  var floor = Math.floor;
5
5
 
6
- var mergeSort = function (array, comparefn) {
6
+ var sort = function (array, comparefn) {
7
7
  var length = array.length;
8
- var middle = floor(length / 2);
9
- return length < 8 ? insertionSort(array, comparefn) : merge(
10
- array,
11
- mergeSort(arraySlice(array, 0, middle), comparefn),
12
- mergeSort(arraySlice(array, middle), comparefn),
13
- comparefn
14
- );
15
- };
16
8
 
17
- var insertionSort = function (array, comparefn) {
18
- var length = array.length;
19
- var i = 1;
20
- var element, j;
9
+ if (length < 8) {
10
+ // insertion sort
11
+ var i = 1;
12
+ var element, j;
21
13
 
22
- while (i < length) {
23
- j = i;
24
- element = array[i];
25
- while (j && comparefn(array[j - 1], element) > 0) {
26
- array[j] = array[--j];
14
+ while (i < length) {
15
+ j = i;
16
+ element = array[i];
17
+ while (j && comparefn(array[j - 1], element) > 0) {
18
+ array[j] = array[--j];
19
+ }
20
+ if (j !== i++) array[j] = element;
27
21
  }
28
- if (j !== i++) array[j] = element;
29
- } return array;
30
- };
22
+ } else {
23
+ // merge sort
24
+ var middle = floor(length / 2);
25
+ var left = sort(arraySlice(array, 0, middle), comparefn);
26
+ var right = sort(arraySlice(array, middle), comparefn);
27
+ var llength = left.length;
28
+ var rlength = right.length;
29
+ var lindex = 0;
30
+ var rindex = 0;
31
31
 
32
- var merge = function (array, left, right, comparefn) {
33
- var llength = left.length;
34
- var rlength = right.length;
35
- var lindex = 0;
36
- var rindex = 0;
32
+ while (lindex < llength || rindex < rlength) {
33
+ array[lindex + rindex] = (lindex < llength && rindex < rlength)
34
+ ? comparefn(left[lindex], right[rindex]) <= 0 ? left[lindex++] : right[rindex++]
35
+ : lindex < llength ? left[lindex++] : right[rindex++];
36
+ }
37
+ }
37
38
 
38
- while (lindex < llength || rindex < rlength) {
39
- array[lindex + rindex] = (lindex < llength && rindex < rlength)
40
- ? comparefn(left[lindex], right[rindex]) <= 0 ? left[lindex++] : right[rindex++]
41
- : lindex < llength ? left[lindex++] : right[rindex++];
42
- } return array;
39
+ return array;
43
40
  };
44
41
 
45
- module.exports = mergeSort;
42
+ module.exports = sort;
@@ -1,10 +1,19 @@
1
1
  'use strict';
2
- var itoc = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';
3
- var ctoi = {};
2
+ var commonAlphabet = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';
3
+ var base64Alphabet = commonAlphabet + '+/';
4
+ var base64UrlAlphabet = commonAlphabet + '-_';
4
5
 
5
- for (var index = 0; index < 66; index++) ctoi[itoc.charAt(index)] = index;
6
+ var inverse = function (characters) {
7
+ // TODO: use `Object.create(null)` in `core-js@4`
8
+ var result = {};
9
+ var index = 0;
10
+ for (; index < 64; index++) result[characters.charAt(index)] = index;
11
+ return result;
12
+ };
6
13
 
7
14
  module.exports = {
8
- itoc: itoc,
9
- ctoi: ctoi
15
+ i2c: base64Alphabet,
16
+ c2i: inverse(base64Alphabet),
17
+ i2cUrl: base64UrlAlphabet,
18
+ c2iUrl: inverse(base64UrlAlphabet)
10
19
  };
@@ -1,31 +1,24 @@
1
1
  'use strict';
2
2
  // https://tc39.github.io/proposal-setmap-offrom/
3
3
  var bind = require('../internals/function-bind-context');
4
- var call = require('../internals/function-call');
5
- var aCallable = require('../internals/a-callable');
6
- var aConstructor = require('../internals/a-constructor');
7
- var isNullOrUndefined = require('../internals/is-null-or-undefined');
4
+ var anObject = require('../internals/an-object');
5
+ var toObject = require('../internals/to-object');
8
6
  var iterate = require('../internals/iterate');
9
7
 
10
- var push = [].push;
11
-
12
- module.exports = function from(source /* , mapFn, thisArg */) {
13
- var length = arguments.length;
14
- var mapFn = length > 1 ? arguments[1] : undefined;
15
- var mapping, array, n, boundFunction;
16
- aConstructor(this);
17
- mapping = mapFn !== undefined;
18
- if (mapping) aCallable(mapFn);
19
- if (isNullOrUndefined(source)) return new this();
20
- array = [];
21
- if (mapping) {
22
- n = 0;
23
- boundFunction = bind(mapFn, length > 2 ? arguments[2] : undefined);
24
- iterate(source, function (nextItem) {
25
- call(push, array, boundFunction(nextItem, n++));
8
+ module.exports = function (C, adder, ENTRY) {
9
+ return function from(source /* , mapFn, thisArg */) {
10
+ var O = toObject(source);
11
+ var length = arguments.length;
12
+ var mapFn = length > 1 ? arguments[1] : undefined;
13
+ var mapping = mapFn !== undefined;
14
+ var boundFunction = mapping ? bind(mapFn, length > 2 ? arguments[2] : undefined) : undefined;
15
+ var result = new C();
16
+ var n = 0;
17
+ iterate(O, function (nextItem) {
18
+ var entry = mapping ? boundFunction(nextItem, n++) : nextItem;
19
+ if (ENTRY) adder(result, anObject(entry)[0], entry[1]);
20
+ else adder(result, entry);
26
21
  });
27
- } else {
28
- iterate(source, push, { that: array });
29
- }
30
- return new this(array);
22
+ return result;
23
+ };
31
24
  };
@@ -1,7 +1,15 @@
1
1
  'use strict';
2
- var arraySlice = require('../internals/array-slice');
2
+ var anObject = require('../internals/an-object');
3
3
 
4
4
  // https://tc39.github.io/proposal-setmap-offrom/
5
- module.exports = function of() {
6
- return new this(arraySlice(arguments));
5
+ module.exports = function (C, adder, ENTRY) {
6
+ return function of() {
7
+ var result = new C();
8
+ var length = arguments.length;
9
+ for (var index = 0; index < length; index++) {
10
+ var entry = arguments[index];
11
+ if (ENTRY) adder(result, anObject(entry)[0], entry[1]);
12
+ else adder(result, entry);
13
+ } return result;
14
+ };
7
15
  };
@@ -80,15 +80,14 @@ module.exports = {
80
80
  clear: function clear() {
81
81
  var that = this;
82
82
  var state = getInternalState(that);
83
- var data = state.index;
84
83
  var entry = state.first;
85
84
  while (entry) {
86
85
  entry.removed = true;
87
86
  if (entry.previous) entry.previous = entry.previous.next = undefined;
88
- delete data[entry.index];
89
87
  entry = entry.next;
90
88
  }
91
89
  state.first = state.last = undefined;
90
+ state.index = create(null);
92
91
  if (DESCRIPTORS) state.size = 0;
93
92
  else that.size = 0;
94
93
  },
@@ -0,0 +1,8 @@
1
+ 'use strict';
2
+ var $TypeError = TypeError;
3
+
4
+ module.exports = function (options) {
5
+ var alphabet = options && options.alphabet;
6
+ if (alphabet === undefined || alphabet === 'base64' || alphabet === 'base64url') return alphabet || 'base64';
7
+ throw new $TypeError('Incorrect `alphabet` option');
8
+ };
@@ -10,11 +10,11 @@ var $RangeError = RangeError;
10
10
  var $TypeError = TypeError;
11
11
  var max = Math.max;
12
12
 
13
- var SetRecord = function (set, size, has, keys) {
13
+ var SetRecord = function (set, intSize) {
14
14
  this.set = set;
15
- this.size = size;
16
- this.has = has;
17
- this.keys = keys;
15
+ this.size = max(intSize, 0);
16
+ this.has = aCallable(set.has);
17
+ this.keys = aCallable(set.keys);
18
18
  };
19
19
 
20
20
  SetRecord.prototype = {
@@ -36,10 +36,5 @@ module.exports = function (obj) {
36
36
  if (numSize !== numSize) throw new $TypeError(INVALID_SIZE);
37
37
  var intSize = toIntegerOrInfinity(numSize);
38
38
  if (intSize < 0) throw new $RangeError(INVALID_SIZE);
39
- return new SetRecord(
40
- obj,
41
- max(intSize, 0),
42
- aCallable(obj.has),
43
- aCallable(obj.keys)
44
- );
39
+ return new SetRecord(obj, intSize);
45
40
  };
@@ -1,11 +1,11 @@
1
1
  'use strict';
2
- var $documentAll = require('../internals/document-all');
3
-
4
- var documentAll = $documentAll.all;
2
+ // https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot
3
+ var documentAll = typeof document == 'object' && document.all;
5
4
 
6
5
  // `IsCallable` abstract operation
7
6
  // https://tc39.es/ecma262/#sec-iscallable
8
- module.exports = $documentAll.IS_HTMLDDA ? function (argument) {
7
+ // eslint-disable-next-line unicorn/no-typeof-undefined -- required for testing
8
+ module.exports = typeof documentAll == 'undefined' && documentAll !== undefined ? function (argument) {
9
9
  return typeof argument == 'function' || argument === documentAll;
10
10
  } : function (argument) {
11
11
  return typeof argument == 'function';
@@ -1,11 +1,6 @@
1
1
  'use strict';
2
2
  var isCallable = require('../internals/is-callable');
3
- var $documentAll = require('../internals/document-all');
4
3
 
5
- var documentAll = $documentAll.all;
6
-
7
- module.exports = $documentAll.IS_HTMLDDA ? function (it) {
8
- return typeof it == 'object' ? it !== null : isCallable(it) || it === documentAll;
9
- } : function (it) {
4
+ module.exports = function (it) {
10
5
  return typeof it == 'object' ? it !== null : isCallable(it);
11
6
  };
@@ -0,0 +1,6 @@
1
+ 'use strict';
2
+ var isObject = require('../internals/is-object');
3
+
4
+ module.exports = function (argument) {
5
+ return isObject(argument) || argument === null;
6
+ };