core-js 3.17.2 → 3.18.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.
Files changed (225) hide show
  1. package/configurator.js +7 -3
  2. package/es/promise/all-settled.js +2 -1
  3. package/es/promise/any.js +2 -1
  4. package/features/array/from-async.js +8 -0
  5. package/features/array/index.js +2 -0
  6. package/features/index.js +2 -0
  7. package/features/map/from.js +2 -1
  8. package/features/map/group-by.js +2 -1
  9. package/features/map/key-by.js +2 -1
  10. package/features/map/of.js +2 -1
  11. package/features/promise/try.js +2 -1
  12. package/features/set/from.js +2 -1
  13. package/features/set/of.js +2 -1
  14. package/features/typed-array/from-async.js +1 -0
  15. package/features/typed-array/index.js +2 -0
  16. package/features/typed-array/methods.js +2 -0
  17. package/features/weak-map/from.js +2 -1
  18. package/features/weak-map/of.js +2 -1
  19. package/features/weak-set/from.js +2 -1
  20. package/features/weak-set/of.js +2 -1
  21. package/internals/a-callable.js +8 -0
  22. package/internals/a-constructor.js +8 -0
  23. package/internals/a-possible-prototype.js +4 -5
  24. package/internals/an-instance.js +2 -3
  25. package/internals/an-object.js +4 -4
  26. package/internals/array-buffer-view-core.js +13 -12
  27. package/internals/array-buffer.js +9 -3
  28. package/internals/array-copy-within.js +2 -2
  29. package/internals/array-fill.js +2 -2
  30. package/internals/array-from-async.js +36 -0
  31. package/internals/array-from.js +8 -7
  32. package/internals/array-group-by.js +2 -2
  33. package/internals/array-includes.js +2 -2
  34. package/internals/array-iteration-from-last.js +2 -2
  35. package/internals/array-iteration.js +2 -2
  36. package/internals/array-last-index-of.js +4 -4
  37. package/internals/array-reduce.js +4 -4
  38. package/internals/array-species-constructor.js +3 -2
  39. package/internals/array-unique-by.js +5 -5
  40. package/internals/async-from-sync-iterator.js +4 -4
  41. package/internals/async-iterator-create-proxy.js +7 -6
  42. package/internals/async-iterator-iteration.js +27 -15
  43. package/internals/async-iterator-prototype.js +16 -16
  44. package/internals/classof.js +2 -1
  45. package/internals/collection-add-all.js +2 -2
  46. package/internals/collection-delete-all.js +2 -2
  47. package/internals/collection-from.js +4 -3
  48. package/internals/collection-weak.js +3 -3
  49. package/internals/collection.js +2 -1
  50. package/internals/copy-constructor-properties.js +2 -2
  51. package/internals/define-iterator.js +21 -13
  52. package/internals/define-well-known-symbol.js +2 -2
  53. package/internals/dom-token-list-prototype.js +7 -0
  54. package/internals/export.js +1 -0
  55. package/internals/flatten-into-array.js +4 -3
  56. package/internals/function-bind-context.js +2 -2
  57. package/internals/function-bind.js +2 -2
  58. package/internals/function-name.js +17 -0
  59. package/internals/get-async-iterator.js +2 -5
  60. package/internals/get-built-in.js +3 -2
  61. package/internals/get-iterator-method.js +3 -2
  62. package/internals/get-iterator.js +5 -5
  63. package/internals/get-method.js +4 -3
  64. package/internals/{has.js → has-own-property.js} +2 -0
  65. package/internals/inherit-if-required.js +2 -1
  66. package/internals/inspect-source.js +2 -1
  67. package/internals/install-error-cause.js +10 -0
  68. package/internals/internal-metadata.js +4 -4
  69. package/internals/internal-state.js +4 -4
  70. package/internals/is-array.js +2 -2
  71. package/internals/is-callable.js +5 -0
  72. package/internals/is-constructor.js +41 -0
  73. package/internals/is-data-descriptor.js +2 -2
  74. package/internals/is-forced.js +2 -1
  75. package/internals/is-integral-number.js +10 -0
  76. package/internals/is-object.js +3 -1
  77. package/internals/is-symbol.js +2 -1
  78. package/internals/iterate.js +3 -3
  79. package/internals/iterator-close.js +3 -2
  80. package/internals/iterator-create-proxy.js +10 -9
  81. package/internals/iterators-core.js +8 -6
  82. package/internals/length-of-array-like.js +7 -0
  83. package/internals/map-upsert.js +4 -3
  84. package/internals/native-weak-map.js +2 -1
  85. package/internals/new-promise-capability.js +3 -3
  86. package/internals/number-parse-float.js +6 -1
  87. package/internals/number-parse-int.js +6 -1
  88. package/internals/object-get-own-property-descriptor.js +2 -2
  89. package/internals/object-get-prototype-of.js +8 -6
  90. package/internals/object-iterator.js +2 -2
  91. package/internals/object-keys-internal.js +3 -3
  92. package/internals/ordinary-to-primitive.js +4 -3
  93. package/internals/redefine.js +12 -6
  94. package/internals/regexp-exec-abstract.js +8 -13
  95. package/internals/regexp-unsupported-dot-all.js +1 -1
  96. package/internals/regexp-unsupported-ncg.js +1 -1
  97. package/internals/set-to-string-tag.js +2 -2
  98. package/internals/shared.js +1 -1
  99. package/internals/species-constructor.js +2 -2
  100. package/internals/string-multibyte.js +2 -3
  101. package/internals/string-pad-webkit-bug.js +0 -1
  102. package/internals/string-pad.js +1 -1
  103. package/internals/string-repeat.js +2 -2
  104. package/internals/string-trim-forced.js +4 -1
  105. package/internals/task.js +3 -2
  106. package/internals/to-absolute-index.js +2 -2
  107. package/internals/to-index.js +2 -2
  108. package/internals/to-integer-or-infinity.js +10 -0
  109. package/internals/to-length.js +2 -2
  110. package/internals/to-positive-integer.js +2 -2
  111. package/internals/to-primitive.js +3 -2
  112. package/internals/to-string.js +2 -2
  113. package/internals/try-to-string.js +7 -0
  114. package/internals/typed-array-constructor.js +8 -8
  115. package/internals/typed-array-from.js +6 -4
  116. package/internals/well-known-symbol.js +3 -3
  117. package/modules/es.aggregate-error.js +5 -2
  118. package/modules/es.array.at.js +4 -4
  119. package/modules/es.array.concat.js +2 -2
  120. package/modules/es.array.flat-map.js +4 -4
  121. package/modules/es.array.flat.js +4 -4
  122. package/modules/es.array.of.js +2 -1
  123. package/modules/es.array.slice.js +5 -4
  124. package/modules/es.array.sort.js +4 -4
  125. package/modules/es.array.splice.js +4 -4
  126. package/modules/es.date.set-year.js +2 -2
  127. package/modules/es.date.to-primitive.js +2 -2
  128. package/modules/es.function.has-instance.js +2 -1
  129. package/modules/es.function.name.js +2 -1
  130. package/modules/es.number.constructor.js +15 -14
  131. package/modules/es.number.is-integer.js +2 -2
  132. package/modules/es.number.is-safe-integer.js +2 -2
  133. package/modules/es.number.to-fixed.js +2 -2
  134. package/modules/es.object.define-getter.js +2 -2
  135. package/modules/es.object.define-setter.js +2 -2
  136. package/modules/es.object.has-own.js +1 -1
  137. package/modules/es.parse-float.js +3 -3
  138. package/modules/es.parse-int.js +3 -3
  139. package/modules/es.promise.all-settled.js +2 -2
  140. package/modules/es.promise.any.js +2 -2
  141. package/modules/es.promise.finally.js +3 -2
  142. package/modules/es.promise.js +10 -9
  143. package/modules/es.reflect.apply.js +2 -2
  144. package/modules/es.reflect.construct.js +3 -3
  145. package/modules/es.regexp.constructor.js +2 -2
  146. package/modules/es.regexp.test.js +4 -4
  147. package/modules/es.regexp.to-string.js +2 -1
  148. package/modules/es.string.at-alternative.js +3 -4
  149. package/modules/es.string.ends-with.js +1 -1
  150. package/modules/es.string.match-all.js +6 -16
  151. package/modules/es.string.match.js +3 -2
  152. package/modules/es.string.raw.js +12 -6
  153. package/modules/es.string.replace-all.js +5 -3
  154. package/modules/es.string.replace.js +7 -5
  155. package/modules/es.string.search.js +3 -2
  156. package/modules/es.string.split.js +3 -2
  157. package/modules/es.string.substr.js +7 -4
  158. package/modules/es.string.trim-end.js +1 -1
  159. package/modules/es.string.trim-start.js +1 -1
  160. package/modules/es.symbol.description.js +4 -3
  161. package/modules/es.symbol.js +20 -16
  162. package/modules/es.typed-array.at.js +4 -4
  163. package/modules/es.typed-array.iterator.js +4 -4
  164. package/modules/es.typed-array.set.js +2 -2
  165. package/modules/es.typed-array.sort.js +4 -4
  166. package/modules/esnext.aggregate-error.js +1 -1
  167. package/modules/esnext.array.from-async.js +8 -0
  168. package/modules/esnext.array.last-index.js +2 -2
  169. package/modules/esnext.array.last-item.js +3 -3
  170. package/modules/esnext.async-iterator.constructor.js +3 -3
  171. package/modules/esnext.async-iterator.filter.js +2 -2
  172. package/modules/esnext.async-iterator.flat-map.js +3 -3
  173. package/modules/esnext.async-iterator.from.js +7 -9
  174. package/modules/esnext.async-iterator.map.js +2 -2
  175. package/modules/esnext.async-iterator.reduce.js +3 -3
  176. package/modules/esnext.async-iterator.to-array.js +1 -1
  177. package/modules/esnext.global-this.js +1 -1
  178. package/modules/esnext.iterator.constructor.js +5 -12
  179. package/modules/esnext.iterator.every.js +2 -2
  180. package/modules/esnext.iterator.filter.js +2 -2
  181. package/modules/esnext.iterator.find.js +2 -2
  182. package/modules/esnext.iterator.flat-map.js +4 -4
  183. package/modules/esnext.iterator.from.js +5 -7
  184. package/modules/esnext.iterator.map.js +2 -2
  185. package/modules/esnext.iterator.reduce.js +2 -2
  186. package/modules/esnext.iterator.some.js +2 -2
  187. package/modules/esnext.map.filter.js +2 -2
  188. package/modules/esnext.map.group-by.js +9 -7
  189. package/modules/esnext.map.key-by.js +3 -3
  190. package/modules/esnext.map.key-of.js +1 -1
  191. package/modules/esnext.map.map-keys.js +2 -2
  192. package/modules/esnext.map.map-values.js +2 -2
  193. package/modules/esnext.map.merge.js +2 -2
  194. package/modules/esnext.map.reduce.js +2 -2
  195. package/modules/esnext.map.update-or-insert.js +1 -1
  196. package/modules/esnext.map.update.js +3 -3
  197. package/modules/esnext.number.from-string.js +2 -2
  198. package/modules/esnext.observable.js +16 -14
  199. package/modules/esnext.promise.all-settled.js +1 -1
  200. package/modules/esnext.promise.any.js +1 -1
  201. package/modules/esnext.set.difference.js +2 -2
  202. package/modules/esnext.set.filter.js +2 -2
  203. package/modules/esnext.set.intersection.js +3 -3
  204. package/modules/esnext.set.is-disjoint-from.js +2 -2
  205. package/modules/esnext.set.is-subset-of.js +4 -3
  206. package/modules/esnext.set.is-superset-of.js +2 -2
  207. package/modules/esnext.set.map.js +2 -2
  208. package/modules/esnext.set.reduce.js +2 -2
  209. package/modules/esnext.set.symmetric-difference.js +3 -3
  210. package/modules/esnext.set.union.js +2 -2
  211. package/modules/esnext.string.match-all.js +1 -1
  212. package/modules/esnext.string.replace-all.js +1 -1
  213. package/modules/esnext.typed-array.from-async.js +26 -0
  214. package/modules/web.dom-collections.for-each.js +10 -3
  215. package/modules/web.dom-collections.iterator.js +8 -3
  216. package/modules/web.timers.js +2 -1
  217. package/modules/web.url-search-params.js +7 -6
  218. package/modules/web.url.js +6 -6
  219. package/package.json +2 -2
  220. package/postinstall.js +1 -1
  221. package/proposals/array-from-async.js +3 -0
  222. package/stage/1.js +1 -0
  223. package/internals/a-function.js +0 -5
  224. package/internals/is-integer.js +0 -9
  225. package/internals/to-integer.js +0 -8
@@ -1,7 +1,7 @@
1
1
  'use strict';
2
2
  // https://github.com/tc39/proposal-iterator-helpers
3
3
  var $ = require('../internals/export');
4
- var aFunction = require('../internals/a-function');
4
+ var aCallable = require('../internals/a-callable');
5
5
  var anObject = require('../internals/an-object');
6
6
  var getBuiltIn = require('../internals/get-built-in');
7
7
 
@@ -10,10 +10,10 @@ var Promise = getBuiltIn('Promise');
10
10
  $({ target: 'AsyncIterator', proto: true, real: true }, {
11
11
  reduce: function reduce(reducer /* , initialValue */) {
12
12
  var iterator = anObject(this);
13
- var next = aFunction(iterator.next);
13
+ var next = aCallable(iterator.next);
14
14
  var noInitial = arguments.length < 2;
15
15
  var accumulator = noInitial ? undefined : arguments[1];
16
- aFunction(reducer);
16
+ aCallable(reducer);
17
17
 
18
18
  return new Promise(function (resolve, reject) {
19
19
  var loop = function () {
@@ -5,6 +5,6 @@ var $toArray = require('../internals/async-iterator-iteration').toArray;
5
5
 
6
6
  $({ target: 'AsyncIterator', proto: true, real: true }, {
7
7
  toArray: function toArray() {
8
- return $toArray(this);
8
+ return $toArray(this, undefined, []);
9
9
  }
10
10
  });
@@ -1,2 +1,2 @@
1
1
  // TODO: Remove from `core-js@4`
2
- require('./es.global-this');
2
+ require('../modules/es.global-this');
@@ -3,21 +3,21 @@
3
3
  var $ = require('../internals/export');
4
4
  var global = require('../internals/global');
5
5
  var anInstance = require('../internals/an-instance');
6
+ var isCallable = require('../internals/is-callable');
6
7
  var createNonEnumerableProperty = require('../internals/create-non-enumerable-property');
7
8
  var fails = require('../internals/fails');
8
- var has = require('../internals/has');
9
+ var hasOwn = require('../internals/has-own-property');
9
10
  var wellKnownSymbol = require('../internals/well-known-symbol');
10
11
  var IteratorPrototype = require('../internals/iterators-core').IteratorPrototype;
11
12
  var IS_PURE = require('../internals/is-pure');
12
13
 
13
- var ITERATOR = wellKnownSymbol('iterator');
14
14
  var TO_STRING_TAG = wellKnownSymbol('toStringTag');
15
15
 
16
16
  var NativeIterator = global.Iterator;
17
17
 
18
18
  // FF56- have non-standard global helper `Iterator`
19
19
  var FORCED = IS_PURE
20
- || typeof NativeIterator != 'function'
20
+ || !isCallable(NativeIterator)
21
21
  || NativeIterator.prototype !== IteratorPrototype
22
22
  // FF44- non-standard `Iterator` passes previous tests
23
23
  || !fails(function () { NativeIterator({}); });
@@ -26,18 +26,11 @@ var IteratorConstructor = function Iterator() {
26
26
  anInstance(this, IteratorConstructor);
27
27
  };
28
28
 
29
- if (IS_PURE) {
30
- IteratorPrototype = {};
31
- createNonEnumerableProperty(IteratorPrototype, ITERATOR, function () {
32
- return this;
33
- });
34
- }
35
-
36
- if (!has(IteratorPrototype, TO_STRING_TAG)) {
29
+ if (!hasOwn(IteratorPrototype, TO_STRING_TAG)) {
37
30
  createNonEnumerableProperty(IteratorPrototype, TO_STRING_TAG, 'Iterator');
38
31
  }
39
32
 
40
- if (FORCED || !has(IteratorPrototype, 'constructor') || IteratorPrototype.constructor === Object) {
33
+ if (FORCED || !hasOwn(IteratorPrototype, 'constructor') || IteratorPrototype.constructor === Object) {
41
34
  createNonEnumerableProperty(IteratorPrototype, 'constructor', IteratorConstructor);
42
35
  }
43
36
 
@@ -2,13 +2,13 @@
2
2
  // https://github.com/tc39/proposal-iterator-helpers
3
3
  var $ = require('../internals/export');
4
4
  var iterate = require('../internals/iterate');
5
- var aFunction = require('../internals/a-function');
5
+ var aCallable = require('../internals/a-callable');
6
6
  var anObject = require('../internals/an-object');
7
7
 
8
8
  $({ target: 'Iterator', proto: true, real: true }, {
9
9
  every: function every(fn) {
10
10
  anObject(this);
11
- aFunction(fn);
11
+ aCallable(fn);
12
12
  return !iterate(this, function (value, stop) {
13
13
  if (!fn(value)) return stop();
14
14
  }, { IS_ITERATOR: true, INTERRUPTED: true }).stopped;
@@ -1,7 +1,7 @@
1
1
  'use strict';
2
2
  // https://github.com/tc39/proposal-iterator-helpers
3
3
  var $ = require('../internals/export');
4
- var aFunction = require('../internals/a-function');
4
+ var aCallable = require('../internals/a-callable');
5
5
  var anObject = require('../internals/an-object');
6
6
  var createIteratorProxy = require('../internals/iterator-create-proxy');
7
7
  var callWithSafeIterationClosing = require('../internals/call-with-safe-iteration-closing');
@@ -24,7 +24,7 @@ $({ target: 'Iterator', proto: true, real: true }, {
24
24
  filter: function filter(filterer) {
25
25
  return new IteratorProxy({
26
26
  iterator: anObject(this),
27
- filterer: aFunction(filterer)
27
+ filterer: aCallable(filterer)
28
28
  });
29
29
  }
30
30
  });
@@ -2,13 +2,13 @@
2
2
  // https://github.com/tc39/proposal-iterator-helpers
3
3
  var $ = require('../internals/export');
4
4
  var iterate = require('../internals/iterate');
5
- var aFunction = require('../internals/a-function');
5
+ var aCallable = require('../internals/a-callable');
6
6
  var anObject = require('../internals/an-object');
7
7
 
8
8
  $({ target: 'Iterator', proto: true, real: true }, {
9
9
  find: function find(fn) {
10
10
  anObject(this);
11
- aFunction(fn);
11
+ aCallable(fn);
12
12
  return iterate(this, function (value, stop) {
13
13
  if (fn(value)) return stop(value);
14
14
  }, { IS_ITERATOR: true, INTERRUPTED: true }).result;
@@ -1,7 +1,7 @@
1
1
  'use strict';
2
2
  // https://github.com/tc39/proposal-iterator-helpers
3
3
  var $ = require('../internals/export');
4
- var aFunction = require('../internals/a-function');
4
+ var aCallable = require('../internals/a-callable');
5
5
  var anObject = require('../internals/an-object');
6
6
  var getIteratorMethod = require('../internals/get-iterator-method');
7
7
  var createIteratorProxy = require('../internals/iterator-create-proxy');
@@ -27,12 +27,12 @@ var IteratorProxy = createIteratorProxy(function () {
27
27
  mapped = mapper(result.value);
28
28
  iteratorMethod = getIteratorMethod(mapped);
29
29
 
30
- if (iteratorMethod === undefined) {
30
+ if (!iteratorMethod) {
31
31
  throw TypeError('.flatMap callback should return an iterable object');
32
32
  }
33
33
 
34
34
  this.innerIterator = innerIterator = anObject(iteratorMethod.call(mapped));
35
- this.innerNext = aFunction(innerIterator.next);
35
+ this.innerNext = aCallable(innerIterator.next);
36
36
  } catch (error) {
37
37
  iteratorClose(iterator, 'throw', error);
38
38
  }
@@ -43,7 +43,7 @@ $({ target: 'Iterator', proto: true, real: true }, {
43
43
  flatMap: function flatMap(mapper) {
44
44
  return new IteratorProxy({
45
45
  iterator: anObject(this),
46
- mapper: aFunction(mapper),
46
+ mapper: aCallable(mapper),
47
47
  innerIterator: null,
48
48
  innerNext: null
49
49
  });
@@ -1,13 +1,13 @@
1
1
  // https://github.com/tc39/proposal-iterator-helpers
2
2
  var $ = require('../internals/export');
3
- var path = require('../internals/path');
4
3
  var anObject = require('../internals/an-object');
5
4
  var toObject = require('../internals/to-object');
5
+ var IteratorPrototype = require('../internals/iterators-core').IteratorPrototype;
6
6
  var createIteratorProxy = require('../internals/iterator-create-proxy');
7
7
  var getIterator = require('../internals/get-iterator');
8
8
  var getIteratorMethod = require('../internals/get-iterator-method');
9
9
 
10
- var Iterator = path.Iterator;
10
+ var isPrototypeOf = {}.isPrototypeOf;
11
11
 
12
12
  var IteratorProxy = createIteratorProxy(function (args) {
13
13
  var result = anObject(this.next.apply(this.iterator, args));
@@ -20,13 +20,11 @@ $({ target: 'Iterator', stat: true }, {
20
20
  var object = toObject(O);
21
21
  var usingIterator = getIteratorMethod(object);
22
22
  var iterator;
23
- if (usingIterator != null) {
23
+ if (usingIterator) {
24
24
  iterator = getIterator(object, usingIterator);
25
- if (iterator instanceof Iterator) return iterator;
25
+ if (isPrototypeOf.call(IteratorPrototype, iterator)) return iterator;
26
26
  } else {
27
27
  iterator = object;
28
- } return new IteratorProxy({
29
- iterator: iterator
30
- });
28
+ } return new IteratorProxy({ iterator: iterator });
31
29
  }
32
30
  });
@@ -1,7 +1,7 @@
1
1
  'use strict';
2
2
  // https://github.com/tc39/proposal-iterator-helpers
3
3
  var $ = require('../internals/export');
4
- var aFunction = require('../internals/a-function');
4
+ var aCallable = require('../internals/a-callable');
5
5
  var anObject = require('../internals/an-object');
6
6
  var createIteratorProxy = require('../internals/iterator-create-proxy');
7
7
  var callWithSafeIterationClosing = require('../internals/call-with-safe-iteration-closing');
@@ -17,7 +17,7 @@ $({ target: 'Iterator', proto: true, real: true }, {
17
17
  map: function map(mapper) {
18
18
  return new IteratorProxy({
19
19
  iterator: anObject(this),
20
- mapper: aFunction(mapper)
20
+ mapper: aCallable(mapper)
21
21
  });
22
22
  }
23
23
  });
@@ -2,13 +2,13 @@
2
2
  // https://github.com/tc39/proposal-iterator-helpers
3
3
  var $ = require('../internals/export');
4
4
  var iterate = require('../internals/iterate');
5
- var aFunction = require('../internals/a-function');
5
+ var aCallable = require('../internals/a-callable');
6
6
  var anObject = require('../internals/an-object');
7
7
 
8
8
  $({ target: 'Iterator', proto: true, real: true }, {
9
9
  reduce: function reduce(reducer /* , initialValue */) {
10
10
  anObject(this);
11
- aFunction(reducer);
11
+ aCallable(reducer);
12
12
  var noInitial = arguments.length < 2;
13
13
  var accumulator = noInitial ? undefined : arguments[1];
14
14
  iterate(this, function (value) {
@@ -2,13 +2,13 @@
2
2
  // https://github.com/tc39/proposal-iterator-helpers
3
3
  var $ = require('../internals/export');
4
4
  var iterate = require('../internals/iterate');
5
- var aFunction = require('../internals/a-function');
5
+ var aCallable = require('../internals/a-callable');
6
6
  var anObject = require('../internals/an-object');
7
7
 
8
8
  $({ target: 'Iterator', proto: true, real: true }, {
9
9
  some: function some(fn) {
10
10
  anObject(this);
11
- aFunction(fn);
11
+ aCallable(fn);
12
12
  return iterate(this, function (value, stop) {
13
13
  if (fn(value)) return stop();
14
14
  }, { IS_ITERATOR: true, INTERRUPTED: true }).stopped;
@@ -2,8 +2,8 @@
2
2
  var $ = require('../internals/export');
3
3
  var IS_PURE = require('../internals/is-pure');
4
4
  var getBuiltIn = require('../internals/get-built-in');
5
+ var aCallable = require('../internals/a-callable');
5
6
  var anObject = require('../internals/an-object');
6
- var aFunction = require('../internals/a-function');
7
7
  var bind = require('../internals/function-bind-context');
8
8
  var speciesConstructor = require('../internals/species-constructor');
9
9
  var getMapIterator = require('../internals/get-map-iterator');
@@ -17,7 +17,7 @@ $({ target: 'Map', proto: true, real: true, forced: IS_PURE }, {
17
17
  var iterator = getMapIterator(map);
18
18
  var boundFunction = bind(callbackfn, arguments.length > 1 ? arguments[1] : undefined, 3);
19
19
  var newMap = new (speciesConstructor(map, getBuiltIn('Map')))();
20
- var setter = aFunction(newMap.set);
20
+ var setter = aCallable(newMap.set);
21
21
  iterate(iterator, function (key, value) {
22
22
  if (boundFunction(value, key, map)) setter.call(newMap, key, value);
23
23
  }, { AS_ENTRIES: true, IS_ITERATOR: true });
@@ -1,22 +1,24 @@
1
1
  'use strict';
2
2
  var $ = require('../internals/export');
3
+ var aCallable = require('../internals/a-callable');
4
+ var getIterator = require('../internals/get-iterator');
3
5
  var iterate = require('../internals/iterate');
4
- var aFunction = require('../internals/a-function');
5
6
 
6
7
  // `Map.groupBy` method
7
8
  // https://github.com/tc39/proposal-collection-methods
8
9
  $({ target: 'Map', stat: true }, {
9
10
  groupBy: function groupBy(iterable, keyDerivative) {
11
+ aCallable(keyDerivative);
12
+ var iterator = getIterator(iterable);
10
13
  var newMap = new this();
11
- aFunction(keyDerivative);
12
- var has = aFunction(newMap.has);
13
- var get = aFunction(newMap.get);
14
- var set = aFunction(newMap.set);
15
- iterate(iterable, function (element) {
14
+ var has = aCallable(newMap.has);
15
+ var get = aCallable(newMap.get);
16
+ var set = aCallable(newMap.set);
17
+ iterate(iterator, function (element) {
16
18
  var derivedKey = keyDerivative(element);
17
19
  if (!has.call(newMap, derivedKey)) set.call(newMap, derivedKey, [element]);
18
20
  else get.call(newMap, derivedKey).push(element);
19
- });
21
+ }, { IS_ITERATOR: true });
20
22
  return newMap;
21
23
  }
22
24
  });
@@ -1,15 +1,15 @@
1
1
  'use strict';
2
2
  var $ = require('../internals/export');
3
3
  var iterate = require('../internals/iterate');
4
- var aFunction = require('../internals/a-function');
4
+ var aCallable = require('../internals/a-callable');
5
5
 
6
6
  // `Map.keyBy` method
7
7
  // https://github.com/tc39/proposal-collection-methods
8
8
  $({ target: 'Map', stat: true }, {
9
9
  keyBy: function keyBy(iterable, keyDerivative) {
10
10
  var newMap = new this();
11
- aFunction(keyDerivative);
12
- var setter = aFunction(newMap.set);
11
+ aCallable(keyDerivative);
12
+ var setter = aCallable(newMap.set);
13
13
  iterate(iterable, function (element) {
14
14
  setter.call(newMap, keyDerivative(element), element);
15
15
  });
@@ -5,7 +5,7 @@ var anObject = require('../internals/an-object');
5
5
  var getMapIterator = require('../internals/get-map-iterator');
6
6
  var iterate = require('../internals/iterate');
7
7
 
8
- // `Map.prototype.includes` method
8
+ // `Map.prototype.keyOf` method
9
9
  // https://github.com/tc39/proposal-collection-methods
10
10
  $({ target: 'Map', proto: true, real: true, forced: IS_PURE }, {
11
11
  keyOf: function keyOf(searchElement) {
@@ -2,8 +2,8 @@
2
2
  var $ = require('../internals/export');
3
3
  var IS_PURE = require('../internals/is-pure');
4
4
  var getBuiltIn = require('../internals/get-built-in');
5
+ var aCallable = require('../internals/a-callable');
5
6
  var anObject = require('../internals/an-object');
6
- var aFunction = require('../internals/a-function');
7
7
  var bind = require('../internals/function-bind-context');
8
8
  var speciesConstructor = require('../internals/species-constructor');
9
9
  var getMapIterator = require('../internals/get-map-iterator');
@@ -17,7 +17,7 @@ $({ target: 'Map', proto: true, real: true, forced: IS_PURE }, {
17
17
  var iterator = getMapIterator(map);
18
18
  var boundFunction = bind(callbackfn, arguments.length > 1 ? arguments[1] : undefined, 3);
19
19
  var newMap = new (speciesConstructor(map, getBuiltIn('Map')))();
20
- var setter = aFunction(newMap.set);
20
+ var setter = aCallable(newMap.set);
21
21
  iterate(iterator, function (key, value) {
22
22
  setter.call(newMap, boundFunction(value, key, map), value);
23
23
  }, { AS_ENTRIES: true, IS_ITERATOR: true });
@@ -2,8 +2,8 @@
2
2
  var $ = require('../internals/export');
3
3
  var IS_PURE = require('../internals/is-pure');
4
4
  var getBuiltIn = require('../internals/get-built-in');
5
+ var aCallable = require('../internals/a-callable');
5
6
  var anObject = require('../internals/an-object');
6
- var aFunction = require('../internals/a-function');
7
7
  var bind = require('../internals/function-bind-context');
8
8
  var speciesConstructor = require('../internals/species-constructor');
9
9
  var getMapIterator = require('../internals/get-map-iterator');
@@ -17,7 +17,7 @@ $({ target: 'Map', proto: true, real: true, forced: IS_PURE }, {
17
17
  var iterator = getMapIterator(map);
18
18
  var boundFunction = bind(callbackfn, arguments.length > 1 ? arguments[1] : undefined, 3);
19
19
  var newMap = new (speciesConstructor(map, getBuiltIn('Map')))();
20
- var setter = aFunction(newMap.set);
20
+ var setter = aCallable(newMap.set);
21
21
  iterate(iterator, function (key, value) {
22
22
  setter.call(newMap, key, boundFunction(value, key, map));
23
23
  }, { AS_ENTRIES: true, IS_ITERATOR: true });
@@ -1,8 +1,8 @@
1
1
  'use strict';
2
2
  var $ = require('../internals/export');
3
3
  var IS_PURE = require('../internals/is-pure');
4
+ var aCallable = require('../internals/a-callable');
4
5
  var anObject = require('../internals/an-object');
5
- var aFunction = require('../internals/a-function');
6
6
  var iterate = require('../internals/iterate');
7
7
 
8
8
  // `Map.prototype.merge` method
@@ -11,7 +11,7 @@ $({ target: 'Map', proto: true, real: true, forced: IS_PURE }, {
11
11
  // eslint-disable-next-line no-unused-vars -- required for `.length`
12
12
  merge: function merge(iterable /* ...iterbles */) {
13
13
  var map = anObject(this);
14
- var setter = aFunction(map.set);
14
+ var setter = aCallable(map.set);
15
15
  var argumentsLength = arguments.length;
16
16
  var i = 0;
17
17
  while (i < argumentsLength) {
@@ -2,7 +2,7 @@
2
2
  var $ = require('../internals/export');
3
3
  var IS_PURE = require('../internals/is-pure');
4
4
  var anObject = require('../internals/an-object');
5
- var aFunction = require('../internals/a-function');
5
+ var aCallable = require('../internals/a-callable');
6
6
  var getMapIterator = require('../internals/get-map-iterator');
7
7
  var iterate = require('../internals/iterate');
8
8
 
@@ -14,7 +14,7 @@ $({ target: 'Map', proto: true, real: true, forced: IS_PURE }, {
14
14
  var iterator = getMapIterator(map);
15
15
  var noInitial = arguments.length < 2;
16
16
  var accumulator = noInitial ? undefined : arguments[1];
17
- aFunction(callbackfn);
17
+ aCallable(callbackfn);
18
18
  iterate(iterator, function (key, value) {
19
19
  if (noInitial) {
20
20
  noInitial = false;
@@ -6,6 +6,6 @@ var $upsert = require('../internals/map-upsert');
6
6
 
7
7
  // `Map.prototype.updateOrInsert` method (replaced by `Map.prototype.emplace`)
8
8
  // https://github.com/thumbsupep/proposal-upsert
9
- $({ target: 'Map', proto: true, real: true, forced: IS_PURE }, {
9
+ $({ target: 'Map', proto: true, real: true, name: 'upsert', forced: IS_PURE }, {
10
10
  updateOrInsert: $upsert
11
11
  });
@@ -2,7 +2,7 @@
2
2
  var $ = require('../internals/export');
3
3
  var IS_PURE = require('../internals/is-pure');
4
4
  var anObject = require('../internals/an-object');
5
- var aFunction = require('../internals/a-function');
5
+ var aCallable = require('../internals/a-callable');
6
6
 
7
7
  // `Set.prototype.update` method
8
8
  // https://github.com/tc39/proposal-collection-methods
@@ -10,12 +10,12 @@ $({ target: 'Map', proto: true, real: true, forced: IS_PURE }, {
10
10
  update: function update(key, callback /* , thunk */) {
11
11
  var map = anObject(this);
12
12
  var length = arguments.length;
13
- aFunction(callback);
13
+ aCallable(callback);
14
14
  var isPresentInMap = map.has(key);
15
15
  if (!isPresentInMap && length < 3) {
16
16
  throw TypeError('Updating absent value');
17
17
  }
18
- var value = isPresentInMap ? map.get(key) : aFunction(length > 2 ? arguments[2] : undefined)(key, map);
18
+ var value = isPresentInMap ? map.get(key) : aCallable(length > 2 ? arguments[2] : undefined)(key, map);
19
19
  map.set(key, callback(value, key, map));
20
20
  return map;
21
21
  }
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
  var $ = require('../internals/export');
3
- var toInteger = require('../internals/to-integer');
3
+ var toIntegerOrInfinity = require('../internals/to-integer-or-infinity');
4
4
  var parseInt = require('../internals/number-parse-int');
5
5
 
6
6
  var INVALID_NUMBER_REPRESENTATION = 'Invalid number representation';
@@ -20,7 +20,7 @@ $({ target: 'Number', stat: true }, {
20
20
  string = string.slice(1);
21
21
  if (!string.length) throw SyntaxError(INVALID_NUMBER_REPRESENTATION);
22
22
  }
23
- R = radix === undefined ? 10 : toInteger(radix);
23
+ R = radix === undefined ? 10 : toIntegerOrInfinity(radix);
24
24
  if (R < 2 || R > 36) throw RangeError(INVALID_RADIX);
25
25
  if (!valid.test(string) || (mathNum = parseInt(string, R)).toString(R) !== string) {
26
26
  throw SyntaxError(INVALID_NUMBER_REPRESENTATION);
@@ -3,12 +3,14 @@
3
3
  var $ = require('../internals/export');
4
4
  var DESCRIPTORS = require('../internals/descriptors');
5
5
  var setSpecies = require('../internals/set-species');
6
- var aFunction = require('../internals/a-function');
6
+ var aCallable = require('../internals/a-callable');
7
+ var isCallable = require('../internals/is-callable');
8
+ var isConstructor = require('../internals/is-constructor');
7
9
  var anObject = require('../internals/an-object');
8
10
  var isObject = require('../internals/is-object');
9
11
  var anInstance = require('../internals/an-instance');
10
12
  var defineProperty = require('../internals/object-define-property').f;
11
- var createNonEnumerableProperty = require('../internals/create-non-enumerable-property');
13
+ var redefine = require('../internals/redefine');
12
14
  var redefineAll = require('../internals/redefine-all');
13
15
  var getIterator = require('../internals/get-iterator');
14
16
  var getMethod = require('../internals/get-method');
@@ -55,7 +57,7 @@ var Subscription = function (observer, subscriber) {
55
57
  var start;
56
58
  if (!DESCRIPTORS) this.closed = false;
57
59
  try {
58
- if (start = getMethod(observer.start)) start.call(observer, this);
60
+ if (start = getMethod(observer, 'start')) start.call(observer, this);
59
61
  } catch (error) {
60
62
  hostReportErrors(error);
61
63
  }
@@ -64,9 +66,9 @@ var Subscription = function (observer, subscriber) {
64
66
  try {
65
67
  var cleanup = subscriber(subscriptionObserver);
66
68
  var subscription = cleanup;
67
- if (cleanup != null) subscriptionState.cleanup = typeof cleanup.unsubscribe === 'function'
69
+ if (cleanup != null) subscriptionState.cleanup = isCallable(cleanup.unsubscribe)
68
70
  ? function () { subscription.unsubscribe(); }
69
- : aFunction(cleanup);
71
+ : aCallable(cleanup);
70
72
  } catch (error) {
71
73
  subscriptionObserver.error(error);
72
74
  return;
@@ -101,7 +103,7 @@ SubscriptionObserver.prototype = redefineAll({}, {
101
103
  if (!subscriptionClosed(subscriptionState)) {
102
104
  var observer = subscriptionState.observer;
103
105
  try {
104
- var nextMethod = getMethod(observer.next);
106
+ var nextMethod = getMethod(observer, 'next');
105
107
  if (nextMethod) nextMethod.call(observer, value);
106
108
  } catch (error) {
107
109
  hostReportErrors(error);
@@ -114,7 +116,7 @@ SubscriptionObserver.prototype = redefineAll({}, {
114
116
  var observer = subscriptionState.observer;
115
117
  close(subscriptionState);
116
118
  try {
117
- var errorMethod = getMethod(observer.error);
119
+ var errorMethod = getMethod(observer, 'error');
118
120
  if (errorMethod) errorMethod.call(observer, value);
119
121
  else hostReportErrors(value);
120
122
  } catch (err) {
@@ -128,7 +130,7 @@ SubscriptionObserver.prototype = redefineAll({}, {
128
130
  var observer = subscriptionState.observer;
129
131
  close(subscriptionState);
130
132
  try {
131
- var completeMethod = getMethod(observer.complete);
133
+ var completeMethod = getMethod(observer, 'complete');
132
134
  if (completeMethod) completeMethod.call(observer);
133
135
  } catch (error) {
134
136
  hostReportErrors(error);
@@ -146,13 +148,13 @@ if (DESCRIPTORS) defineProperty(SubscriptionObserver.prototype, 'closed', {
146
148
 
147
149
  var $Observable = function Observable(subscriber) {
148
150
  anInstance(this, $Observable, 'Observable');
149
- setInternalState(this, { subscriber: aFunction(subscriber) });
151
+ setInternalState(this, { subscriber: aCallable(subscriber) });
150
152
  };
151
153
 
152
154
  redefineAll($Observable.prototype, {
153
155
  subscribe: function subscribe(observer) {
154
156
  var length = arguments.length;
155
- return new Subscription(typeof observer === 'function' ? {
157
+ return new Subscription(isCallable(observer) ? {
156
158
  next: observer,
157
159
  error: length > 1 ? arguments[1] : undefined,
158
160
  complete: length > 2 ? arguments[2] : undefined
@@ -162,8 +164,8 @@ redefineAll($Observable.prototype, {
162
164
 
163
165
  redefineAll($Observable, {
164
166
  from: function from(x) {
165
- var C = typeof this === 'function' ? this : $Observable;
166
- var observableMethod = getMethod(anObject(x)[OBSERVABLE]);
167
+ var C = isConstructor(this) ? this : $Observable;
168
+ var observableMethod = getMethod(anObject(x), OBSERVABLE);
167
169
  if (observableMethod) {
168
170
  var observable = anObject(observableMethod.call(x));
169
171
  return observable.constructor === C ? observable : new C(function (observer) {
@@ -180,7 +182,7 @@ redefineAll($Observable, {
180
182
  });
181
183
  },
182
184
  of: function of() {
183
- var C = typeof this === 'function' ? this : $Observable;
185
+ var C = isConstructor(this) ? this : $Observable;
184
186
  var length = arguments.length;
185
187
  var items = new Array(length);
186
188
  var index = 0;
@@ -194,7 +196,7 @@ redefineAll($Observable, {
194
196
  }
195
197
  });
196
198
 
197
- createNonEnumerableProperty($Observable.prototype, OBSERVABLE, function () { return this; });
199
+ redefine($Observable.prototype, OBSERVABLE, function () { return this; });
198
200
 
199
201
  $({ global: true }, {
200
202
  Observable: $Observable
@@ -1,2 +1,2 @@
1
1
  // TODO: Remove from `core-js@4`
2
- require('./es.promise.all-settled.js');
2
+ require('../modules/es.promise.all-settled.js');
@@ -1,2 +1,2 @@
1
1
  // TODO: Remove from `core-js@4`
2
- require('./es.promise.any');
2
+ require('../modules/es.promise.any');
@@ -2,8 +2,8 @@
2
2
  var $ = require('../internals/export');
3
3
  var IS_PURE = require('../internals/is-pure');
4
4
  var getBuiltIn = require('../internals/get-built-in');
5
+ var aCallable = require('../internals/a-callable');
5
6
  var anObject = require('../internals/an-object');
6
- var aFunction = require('../internals/a-function');
7
7
  var speciesConstructor = require('../internals/species-constructor');
8
8
  var iterate = require('../internals/iterate');
9
9
 
@@ -13,7 +13,7 @@ $({ target: 'Set', proto: true, real: true, forced: IS_PURE }, {
13
13
  difference: function difference(iterable) {
14
14
  var set = anObject(this);
15
15
  var newSet = new (speciesConstructor(set, getBuiltIn('Set')))(set);
16
- var remover = aFunction(newSet['delete']);
16
+ var remover = aCallable(newSet['delete']);
17
17
  iterate(iterable, function (value) {
18
18
  remover.call(newSet, value);
19
19
  });
@@ -2,8 +2,8 @@
2
2
  var $ = require('../internals/export');
3
3
  var IS_PURE = require('../internals/is-pure');
4
4
  var getBuiltIn = require('../internals/get-built-in');
5
+ var aCallable = require('../internals/a-callable');
5
6
  var anObject = require('../internals/an-object');
6
- var aFunction = require('../internals/a-function');
7
7
  var bind = require('../internals/function-bind-context');
8
8
  var speciesConstructor = require('../internals/species-constructor');
9
9
  var getSetIterator = require('../internals/get-set-iterator');
@@ -17,7 +17,7 @@ $({ target: 'Set', proto: true, real: true, forced: IS_PURE }, {
17
17
  var iterator = getSetIterator(set);
18
18
  var boundFunction = bind(callbackfn, arguments.length > 1 ? arguments[1] : undefined, 3);
19
19
  var newSet = new (speciesConstructor(set, getBuiltIn('Set')))();
20
- var adder = aFunction(newSet.add);
20
+ var adder = aCallable(newSet.add);
21
21
  iterate(iterator, function (value) {
22
22
  if (boundFunction(value, value, set)) adder.call(newSet, value);
23
23
  }, { IS_ITERATOR: true });