core-js 3.6.2 → 3.7.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 (110) hide show
  1. package/es/aggregate-error.js +6 -0
  2. package/es/index.js +33 -29
  3. package/es/object/index.js +2 -1
  4. package/es/object/to-string.js +3 -2
  5. package/es/promise/any.js +12 -0
  6. package/es/promise/index.js +4 -2
  7. package/es/reflect/index.js +1 -0
  8. package/es/reflect/to-string-tag.js +3 -0
  9. package/es/string/index.js +1 -0
  10. package/es/string/replace-all.js +4 -0
  11. package/es/string/virtual/index.js +1 -0
  12. package/es/string/virtual/replace-all.js +4 -0
  13. package/es/symbol/index.js +2 -1
  14. package/es/symbol/to-string-tag.js +2 -1
  15. package/features/aggregate-error.js +4 -4
  16. package/features/map/emplace.js +5 -0
  17. package/features/map/index.js +2 -0
  18. package/features/promise/any.js +4 -9
  19. package/features/reflect/to-string-tag.js +3 -0
  20. package/features/string/replace-all.js +4 -2
  21. package/features/string/virtual/replace-all.js +4 -2
  22. package/features/weak-map/emplace.js +5 -0
  23. package/features/weak-map/index.js +2 -0
  24. package/internals/array-last-index-of.js +2 -1
  25. package/internals/array-method-uses-to-length.js +5 -8
  26. package/internals/async-iterator-iteration.js +25 -6
  27. package/internals/call-with-safe-iteration-closing.js +2 -2
  28. package/internals/collection-from.js +5 -5
  29. package/internals/collection-strong.js +1 -1
  30. package/internals/collection-weak.js +1 -1
  31. package/internals/collection.js +1 -1
  32. package/internals/correct-is-regexp-logic.js +2 -2
  33. package/internals/engine-is-node.js +4 -0
  34. package/internals/fix-regexp-well-known-symbol-logic.js +18 -2
  35. package/internals/global.js +1 -1
  36. package/internals/internal-state.js +4 -1
  37. package/internals/iterate.js +26 -11
  38. package/internals/iterator-close.js +8 -0
  39. package/internals/map-emplace.js +13 -0
  40. package/internals/microtask.js +8 -8
  41. package/internals/redefine.js +8 -2
  42. package/internals/shared.js +1 -1
  43. package/internals/task.js +9 -3
  44. package/modules/es.aggregate-error.js +31 -0
  45. package/modules/es.array.reduce-right.js +8 -2
  46. package/modules/es.array.reduce.js +6 -1
  47. package/modules/es.object.from-entries.js +1 -1
  48. package/modules/es.promise.all-settled.js +2 -2
  49. package/modules/es.promise.any.js +46 -0
  50. package/modules/es.promise.js +27 -25
  51. package/modules/es.reflect.set.js +3 -2
  52. package/modules/es.reflect.to-string-tag.js +9 -0
  53. package/modules/es.string.replace-all.js +50 -0
  54. package/modules/es.string.replace.js +8 -1
  55. package/modules/esnext.aggregate-error.js +2 -45
  56. package/modules/esnext.async-iterator.take.js +12 -3
  57. package/modules/esnext.iterator.every.js +3 -3
  58. package/modules/esnext.iterator.find.js +3 -3
  59. package/modules/esnext.iterator.flat-map.js +21 -15
  60. package/modules/esnext.iterator.for-each.js +1 -1
  61. package/modules/esnext.iterator.reduce.js +1 -1
  62. package/modules/esnext.iterator.some.js +3 -3
  63. package/modules/esnext.iterator.take.js +4 -2
  64. package/modules/esnext.iterator.to-array.js +1 -1
  65. package/modules/esnext.map.emplace.js +10 -0
  66. package/modules/esnext.map.every.js +3 -3
  67. package/modules/esnext.map.filter.js +1 -1
  68. package/modules/esnext.map.find-key.js +3 -3
  69. package/modules/esnext.map.find.js +3 -3
  70. package/modules/esnext.map.includes.js +3 -3
  71. package/modules/esnext.map.key-of.js +3 -3
  72. package/modules/esnext.map.map-keys.js +1 -1
  73. package/modules/esnext.map.map-values.js +1 -1
  74. package/modules/esnext.map.merge.js +1 -1
  75. package/modules/esnext.map.reduce.js +1 -1
  76. package/modules/esnext.map.some.js +3 -3
  77. package/modules/esnext.map.update-or-insert.js +1 -1
  78. package/modules/esnext.map.upsert.js +2 -1
  79. package/modules/esnext.observable.js +3 -3
  80. package/modules/esnext.promise.any.js +2 -46
  81. package/modules/esnext.reflect.get-metadata-keys.js +1 -1
  82. package/modules/esnext.set.every.js +3 -3
  83. package/modules/esnext.set.filter.js +1 -1
  84. package/modules/esnext.set.find.js +3 -3
  85. package/modules/esnext.set.is-disjoint-from.js +3 -3
  86. package/modules/esnext.set.is-subset-of.js +3 -3
  87. package/modules/esnext.set.is-superset-of.js +3 -3
  88. package/modules/esnext.set.join.js +1 -1
  89. package/modules/esnext.set.map.js +1 -1
  90. package/modules/esnext.set.reduce.js +1 -1
  91. package/modules/esnext.set.some.js +3 -3
  92. package/modules/esnext.set.union.js +1 -1
  93. package/modules/esnext.string.replace-all.js +2 -50
  94. package/modules/esnext.weak-map.emplace.js +10 -0
  95. package/modules/esnext.weak-map.upsert.js +3 -2
  96. package/modules/web.queue-microtask.js +2 -3
  97. package/modules/web.url-search-params.js +1 -1
  98. package/modules/web.url.js +1 -1
  99. package/package.json +1 -1
  100. package/postinstall.js +3 -1
  101. package/proposals/efficient-64-bit-arithmetic.js +1 -0
  102. package/proposals/map-upsert.js +4 -0
  103. package/proposals/object-iteration.js +1 -0
  104. package/stable/aggregate-error.js +6 -0
  105. package/stable/promise/any.js +3 -0
  106. package/stable/reflect/to-string-tag.js +3 -0
  107. package/stable/string/replace-all.js +3 -0
  108. package/stable/string/virtual/replace-all.js +3 -0
  109. package/stage/3.js +0 -2
  110. package/stage/4.js +2 -0
@@ -1,45 +1,2 @@
1
- 'use strict';
2
- var $ = require('../internals/export');
3
- var DESCRIPTORS = require('../internals/descriptors');
4
- var getPrototypeOf = require('../internals/object-get-prototype-of');
5
- var setPrototypeOf = require('../internals/object-set-prototype-of');
6
- var create = require('../internals/object-create');
7
- var defineProperty = require('../internals/object-define-property');
8
- var createPropertyDescriptor = require('../internals/create-property-descriptor');
9
- var iterate = require('../internals/iterate');
10
- var createNonEnumerableProperty = require('../internals/create-non-enumerable-property');
11
- var InternalStateModule = require('../internals/internal-state');
12
-
13
- var setInternalState = InternalStateModule.set;
14
- var getInternalAggregateErrorState = InternalStateModule.getterFor('AggregateError');
15
-
16
- var $AggregateError = function AggregateError(errors, message) {
17
- var that = this;
18
- if (!(that instanceof $AggregateError)) return new $AggregateError(errors, message);
19
- if (setPrototypeOf) {
20
- that = setPrototypeOf(new Error(message), getPrototypeOf(that));
21
- }
22
- var errorsArray = [];
23
- iterate(errors, errorsArray.push, errorsArray);
24
- if (DESCRIPTORS) setInternalState(that, { errors: errorsArray, type: 'AggregateError' });
25
- else that.errors = errorsArray;
26
- if (message !== undefined) createNonEnumerableProperty(that, 'message', String(message));
27
- return that;
28
- };
29
-
30
- $AggregateError.prototype = create(Error.prototype, {
31
- constructor: createPropertyDescriptor(5, $AggregateError),
32
- message: createPropertyDescriptor(5, ''),
33
- name: createPropertyDescriptor(5, 'AggregateError')
34
- });
35
-
36
- if (DESCRIPTORS) defineProperty.f($AggregateError.prototype, 'errors', {
37
- get: function () {
38
- return getInternalAggregateErrorState(this).errors;
39
- },
40
- configurable: true
41
- });
42
-
43
- $({ global: true }, {
44
- AggregateError: $AggregateError
45
- });
1
+ // TODO: Remove from `core-js@4`
2
+ require('./es.aggregate-error');
@@ -5,11 +5,20 @@ var anObject = require('../internals/an-object');
5
5
  var toPositiveInteger = require('../internals/to-positive-integer');
6
6
  var createAsyncIteratorProxy = require('../internals/async-iterator-create-proxy');
7
7
 
8
- var AsyncIteratorProxy = createAsyncIteratorProxy(function (arg) {
8
+ var AsyncIteratorProxy = createAsyncIteratorProxy(function (arg, Promise) {
9
+ var iterator = this.iterator;
10
+ var returnMethod, result;
9
11
  if (!this.remaining--) {
12
+ result = { done: true, value: undefined };
10
13
  this.done = true;
11
- return { done: true, value: undefined };
12
- } return this.next.call(this.iterator, arg);
14
+ returnMethod = iterator['return'];
15
+ if (returnMethod !== undefined) {
16
+ return Promise.resolve(returnMethod.call(iterator)).then(function () {
17
+ return result;
18
+ });
19
+ }
20
+ return result;
21
+ } return this.next.call(iterator, arg);
13
22
  });
14
23
 
15
24
  $({ target: 'AsyncIterator', proto: true, real: true }, {
@@ -9,8 +9,8 @@ $({ target: 'Iterator', proto: true, real: true }, {
9
9
  every: function every(fn) {
10
10
  anObject(this);
11
11
  aFunction(fn);
12
- return !iterate(this, function (value) {
13
- if (!fn(value)) return iterate.stop();
14
- }, undefined, false, true).stopped;
12
+ return !iterate(this, function (value, stop) {
13
+ if (!fn(value)) return stop();
14
+ }, { IS_ITERATOR: true, INTERRUPTED: true }).stopped;
15
15
  }
16
16
  });
@@ -9,8 +9,8 @@ $({ target: 'Iterator', proto: true, real: true }, {
9
9
  find: function find(fn) {
10
10
  anObject(this);
11
11
  aFunction(fn);
12
- return iterate(this, function (value) {
13
- if (fn(value)) return iterate.stop(value);
14
- }, undefined, false, true).result;
12
+ return iterate(this, function (value, stop) {
13
+ if (fn(value)) return stop(value);
14
+ }, { IS_ITERATOR: true, INTERRUPTED: true }).result;
15
15
  }
16
16
  });
@@ -5,32 +5,38 @@ var aFunction = require('../internals/a-function');
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');
8
- var callWithSafeIterationClosing = require('../internals/call-with-safe-iteration-closing');
8
+ var iteratorClose = require('../internals/iterator-close');
9
9
 
10
10
  var IteratorProxy = createIteratorProxy(function (arg) {
11
11
  var iterator = this.iterator;
12
+ var mapper = this.mapper;
12
13
  var result, mapped, iteratorMethod, innerIterator;
13
14
 
14
15
  while (true) {
15
- if (innerIterator = this.innerIterator) {
16
- result = anObject(this.innerNext.call(innerIterator));
17
- if (!result.done) return result.value;
18
- this.innerIterator = this.innerNext = null;
19
- }
16
+ try {
17
+ if (innerIterator = this.innerIterator) {
18
+ result = anObject(this.innerNext.call(innerIterator));
19
+ if (!result.done) return result.value;
20
+ this.innerIterator = this.innerNext = null;
21
+ }
20
22
 
21
- result = anObject(this.next.call(iterator, arg));
23
+ result = anObject(this.next.call(iterator, arg));
22
24
 
23
- if (this.done = !!result.done) return;
25
+ if (this.done = !!result.done) return;
24
26
 
25
- mapped = callWithSafeIterationClosing(iterator, this.mapper, result.value);
26
- iteratorMethod = getIteratorMethod(mapped);
27
+ mapped = mapper(result.value);
28
+ iteratorMethod = getIteratorMethod(mapped);
27
29
 
28
- if (iteratorMethod === undefined) {
29
- throw TypeError('.flatMap callback should return an iterable object');
30
- }
30
+ if (iteratorMethod === undefined) {
31
+ throw TypeError('.flatMap callback should return an iterable object');
32
+ }
31
33
 
32
- this.innerIterator = innerIterator = anObject(iteratorMethod.call(mapped));
33
- this.innerNext = aFunction(innerIterator.next);
34
+ this.innerIterator = innerIterator = anObject(iteratorMethod.call(mapped));
35
+ this.innerNext = aFunction(innerIterator.next);
36
+ } catch (error) {
37
+ iteratorClose(iterator);
38
+ throw error;
39
+ }
34
40
  }
35
41
  });
36
42
 
@@ -6,6 +6,6 @@ var anObject = require('../internals/an-object');
6
6
 
7
7
  $({ target: 'Iterator', proto: true, real: true }, {
8
8
  forEach: function forEach(fn) {
9
- iterate(anObject(this), fn, undefined, false, true);
9
+ iterate(anObject(this), fn, { IS_ITERATOR: true });
10
10
  }
11
11
  });
@@ -18,7 +18,7 @@ $({ target: 'Iterator', proto: true, real: true }, {
18
18
  } else {
19
19
  accumulator = reducer(accumulator, value);
20
20
  }
21
- }, undefined, false, true);
21
+ }, { IS_ITERATOR: true });
22
22
  if (noInitial) throw TypeError('Reduce of empty iterator with no initial value');
23
23
  return accumulator;
24
24
  }
@@ -9,8 +9,8 @@ $({ target: 'Iterator', proto: true, real: true }, {
9
9
  some: function some(fn) {
10
10
  anObject(this);
11
11
  aFunction(fn);
12
- return iterate(this, function (value) {
13
- if (fn(value)) return iterate.stop();
14
- }, undefined, false, true).stopped;
12
+ return iterate(this, function (value, stop) {
13
+ if (fn(value)) return stop();
14
+ }, { IS_ITERATOR: true, INTERRUPTED: true }).stopped;
15
15
  }
16
16
  });
@@ -4,13 +4,15 @@ var $ = require('../internals/export');
4
4
  var anObject = require('../internals/an-object');
5
5
  var toPositiveInteger = require('../internals/to-positive-integer');
6
6
  var createIteratorProxy = require('../internals/iterator-create-proxy');
7
+ var iteratorClose = require('../internals/iterator-close');
7
8
 
8
9
  var IteratorProxy = createIteratorProxy(function (arg) {
10
+ var iterator = this.iterator;
9
11
  if (!this.remaining--) {
10
12
  this.done = true;
11
- return;
13
+ return iteratorClose(iterator);
12
14
  }
13
- var result = anObject(this.next.call(this.iterator, arg));
15
+ var result = anObject(this.next.call(iterator, arg));
14
16
  var done = this.done = !!result.done;
15
17
  if (!done) return result.value;
16
18
  });
@@ -9,7 +9,7 @@ var push = [].push;
9
9
  $({ target: 'Iterator', proto: true, real: true }, {
10
10
  toArray: function toArray() {
11
11
  var result = [];
12
- iterate(anObject(this), push, result, false, true);
12
+ iterate(anObject(this), push, { that: result, IS_ITERATOR: true });
13
13
  return result;
14
14
  }
15
15
  });
@@ -0,0 +1,10 @@
1
+ 'use strict';
2
+ var $ = require('../internals/export');
3
+ var IS_PURE = require('../internals/is-pure');
4
+ var $emplace = require('../internals/map-emplace');
5
+
6
+ // `Map.prototype.emplace` method
7
+ // https://github.com/thumbsupep/proposal-upsert
8
+ $({ target: 'Map', proto: true, real: true, forced: IS_PURE }, {
9
+ emplace: $emplace
10
+ });
@@ -13,8 +13,8 @@ $({ target: 'Map', proto: true, real: true, forced: IS_PURE }, {
13
13
  var map = anObject(this);
14
14
  var iterator = getMapIterator(map);
15
15
  var boundFunction = bind(callbackfn, arguments.length > 1 ? arguments[1] : undefined, 3);
16
- return !iterate(iterator, function (key, value) {
17
- if (!boundFunction(value, key, map)) return iterate.stop();
18
- }, undefined, true, true).stopped;
16
+ return !iterate(iterator, function (key, value, stop) {
17
+ if (!boundFunction(value, key, map)) return stop();
18
+ }, { AS_ENTRIES: true, IS_ITERATOR: true, INTERRUPTED: true }).stopped;
19
19
  }
20
20
  });
@@ -20,7 +20,7 @@ $({ target: 'Map', proto: true, real: true, forced: IS_PURE }, {
20
20
  var setter = aFunction(newMap.set);
21
21
  iterate(iterator, function (key, value) {
22
22
  if (boundFunction(value, key, map)) setter.call(newMap, key, value);
23
- }, undefined, true, true);
23
+ }, { AS_ENTRIES: true, IS_ITERATOR: true });
24
24
  return newMap;
25
25
  }
26
26
  });
@@ -13,8 +13,8 @@ $({ target: 'Map', proto: true, real: true, forced: IS_PURE }, {
13
13
  var map = anObject(this);
14
14
  var iterator = getMapIterator(map);
15
15
  var boundFunction = bind(callbackfn, arguments.length > 1 ? arguments[1] : undefined, 3);
16
- return iterate(iterator, function (key, value) {
17
- if (boundFunction(value, key, map)) return iterate.stop(key);
18
- }, undefined, true, true).result;
16
+ return iterate(iterator, function (key, value, stop) {
17
+ if (boundFunction(value, key, map)) return stop(key);
18
+ }, { AS_ENTRIES: true, IS_ITERATOR: true, INTERRUPTED: true }).result;
19
19
  }
20
20
  });
@@ -13,8 +13,8 @@ $({ target: 'Map', proto: true, real: true, forced: IS_PURE }, {
13
13
  var map = anObject(this);
14
14
  var iterator = getMapIterator(map);
15
15
  var boundFunction = bind(callbackfn, arguments.length > 1 ? arguments[1] : undefined, 3);
16
- return iterate(iterator, function (key, value) {
17
- if (boundFunction(value, key, map)) return iterate.stop(value);
18
- }, undefined, true, true).result;
16
+ return iterate(iterator, function (key, value, stop) {
17
+ if (boundFunction(value, key, map)) return stop(value);
18
+ }, { AS_ENTRIES: true, IS_ITERATOR: true, INTERRUPTED: true }).result;
19
19
  }
20
20
  });
@@ -10,8 +10,8 @@ var iterate = require('../internals/iterate');
10
10
  // https://github.com/tc39/proposal-collection-methods
11
11
  $({ target: 'Map', proto: true, real: true, forced: IS_PURE }, {
12
12
  includes: function includes(searchElement) {
13
- return iterate(getMapIterator(anObject(this)), function (key, value) {
14
- if (sameValueZero(value, searchElement)) return iterate.stop();
15
- }, undefined, true, true).stopped;
13
+ return iterate(getMapIterator(anObject(this)), function (key, value, stop) {
14
+ if (sameValueZero(value, searchElement)) return stop();
15
+ }, { AS_ENTRIES: true, IS_ITERATOR: true, INTERRUPTED: true }).stopped;
16
16
  }
17
17
  });
@@ -9,8 +9,8 @@ var iterate = require('../internals/iterate');
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) {
12
- return iterate(getMapIterator(anObject(this)), function (key, value) {
13
- if (value === searchElement) return iterate.stop(key);
14
- }, undefined, true, true).result;
12
+ return iterate(getMapIterator(anObject(this)), function (key, value, stop) {
13
+ if (value === searchElement) return stop(key);
14
+ }, { AS_ENTRIES: true, IS_ITERATOR: true, INTERRUPTED: true }).result;
15
15
  }
16
16
  });
@@ -20,7 +20,7 @@ $({ target: 'Map', proto: true, real: true, forced: IS_PURE }, {
20
20
  var setter = aFunction(newMap.set);
21
21
  iterate(iterator, function (key, value) {
22
22
  setter.call(newMap, boundFunction(value, key, map), value);
23
- }, undefined, true, true);
23
+ }, { AS_ENTRIES: true, IS_ITERATOR: true });
24
24
  return newMap;
25
25
  }
26
26
  });
@@ -20,7 +20,7 @@ $({ target: 'Map', proto: true, real: true, forced: IS_PURE }, {
20
20
  var setter = aFunction(newMap.set);
21
21
  iterate(iterator, function (key, value) {
22
22
  setter.call(newMap, key, boundFunction(value, key, map));
23
- }, undefined, true, true);
23
+ }, { AS_ENTRIES: true, IS_ITERATOR: true });
24
24
  return newMap;
25
25
  }
26
26
  });
@@ -14,7 +14,7 @@ $({ target: 'Map', proto: true, real: true, forced: IS_PURE }, {
14
14
  var setter = aFunction(map.set);
15
15
  var i = 0;
16
16
  while (i < arguments.length) {
17
- iterate(arguments[i++], setter, map, true);
17
+ iterate(arguments[i++], setter, { that: map, AS_ENTRIES: true });
18
18
  }
19
19
  return map;
20
20
  }
@@ -22,7 +22,7 @@ $({ target: 'Map', proto: true, real: true, forced: IS_PURE }, {
22
22
  } else {
23
23
  accumulator = callbackfn(accumulator, value, key, map);
24
24
  }
25
- }, undefined, true, true);
25
+ }, { AS_ENTRIES: true, IS_ITERATOR: true });
26
26
  if (noInitial) throw TypeError('Reduce of empty map with no initial value');
27
27
  return accumulator;
28
28
  }
@@ -13,8 +13,8 @@ $({ target: 'Map', proto: true, real: true, forced: IS_PURE }, {
13
13
  var map = anObject(this);
14
14
  var iterator = getMapIterator(map);
15
15
  var boundFunction = bind(callbackfn, arguments.length > 1 ? arguments[1] : undefined, 3);
16
- return iterate(iterator, function (key, value) {
17
- if (boundFunction(value, key, map)) return iterate.stop();
18
- }, undefined, true, true).stopped;
16
+ return iterate(iterator, function (key, value, stop) {
17
+ if (boundFunction(value, key, map)) return stop();
18
+ }, { AS_ENTRIES: true, IS_ITERATOR: true, INTERRUPTED: true }).stopped;
19
19
  }
20
20
  });
@@ -4,7 +4,7 @@ var $ = require('../internals/export');
4
4
  var IS_PURE = require('../internals/is-pure');
5
5
  var $upsert = require('../internals/map-upsert');
6
6
 
7
- // `Map.prototype.updateOrInsert` method (replaced by `Map.prototype.upsert`)
7
+ // `Map.prototype.updateOrInsert` method (replaced by `Map.prototype.emplace`)
8
8
  // https://github.com/thumbsupep/proposal-upsert
9
9
  $({ target: 'Map', proto: true, real: true, forced: IS_PURE }, {
10
10
  updateOrInsert: $upsert
@@ -1,9 +1,10 @@
1
1
  'use strict';
2
+ // TODO: remove from `core-js@4`
2
3
  var $ = require('../internals/export');
3
4
  var IS_PURE = require('../internals/is-pure');
4
5
  var $upsert = require('../internals/map-upsert');
5
6
 
6
- // `Map.prototype.upsert` method
7
+ // `Map.prototype.upsert` method (replaced by `Map.prototype.emplace`)
7
8
  // https://github.com/thumbsupep/proposal-upsert
8
9
  $({ target: 'Map', proto: true, real: true, forced: IS_PURE }, {
9
10
  upsert: $upsert
@@ -176,10 +176,10 @@ redefineAll($Observable, {
176
176
  }
177
177
  var iterator = getIterator(x);
178
178
  return new C(function (observer) {
179
- iterate(iterator, function (it) {
179
+ iterate(iterator, function (it, stop) {
180
180
  observer.next(it);
181
- if (observer.closed) return iterate.stop();
182
- }, undefined, false, true);
181
+ if (observer.closed) return stop();
182
+ }, { IS_ITERATOR: true, INTERRUPTED: true });
183
183
  observer.complete();
184
184
  });
185
185
  },
@@ -1,46 +1,2 @@
1
- 'use strict';
2
- var $ = require('../internals/export');
3
- var aFunction = require('../internals/a-function');
4
- var getBuiltIn = require('../internals/get-built-in');
5
- var newPromiseCapabilityModule = require('../internals/new-promise-capability');
6
- var perform = require('../internals/perform');
7
- var iterate = require('../internals/iterate');
8
-
9
- var PROMISE_ANY_ERROR = 'No one promise resolved';
10
-
11
- // `Promise.any` method
12
- // https://github.com/tc39/proposal-promise-any
13
- $({ target: 'Promise', stat: true }, {
14
- any: function any(iterable) {
15
- var C = this;
16
- var capability = newPromiseCapabilityModule.f(C);
17
- var resolve = capability.resolve;
18
- var reject = capability.reject;
19
- var result = perform(function () {
20
- var promiseResolve = aFunction(C.resolve);
21
- var errors = [];
22
- var counter = 0;
23
- var remaining = 1;
24
- var alreadyResolved = false;
25
- iterate(iterable, function (promise) {
26
- var index = counter++;
27
- var alreadyRejected = false;
28
- errors.push(undefined);
29
- remaining++;
30
- promiseResolve.call(C, promise).then(function (value) {
31
- if (alreadyRejected || alreadyResolved) return;
32
- alreadyResolved = true;
33
- resolve(value);
34
- }, function (e) {
35
- if (alreadyRejected || alreadyResolved) return;
36
- alreadyRejected = true;
37
- errors[index] = e;
38
- --remaining || reject(new (getBuiltIn('AggregateError'))(errors, PROMISE_ANY_ERROR));
39
- });
40
- });
41
- --remaining || reject(new (getBuiltIn('AggregateError'))(errors, PROMISE_ANY_ERROR));
42
- });
43
- if (result.error) reject(result.value);
44
- return capability.promise;
45
- }
46
- });
1
+ // TODO: Remove from `core-js@4`
2
+ require('./es.promise.any');
@@ -11,7 +11,7 @@ var toMetadataKey = ReflectMetadataModule.toKey;
11
11
 
12
12
  var from = function (iter) {
13
13
  var result = [];
14
- iterate(iter, result.push, result);
14
+ iterate(iter, result.push, { that: result });
15
15
  return result;
16
16
  };
17
17
 
@@ -13,8 +13,8 @@ $({ target: 'Set', proto: true, real: true, forced: IS_PURE }, {
13
13
  var set = anObject(this);
14
14
  var iterator = getSetIterator(set);
15
15
  var boundFunction = bind(callbackfn, arguments.length > 1 ? arguments[1] : undefined, 3);
16
- return !iterate(iterator, function (value) {
17
- if (!boundFunction(value, value, set)) return iterate.stop();
18
- }, undefined, false, true).stopped;
16
+ return !iterate(iterator, function (value, stop) {
17
+ if (!boundFunction(value, value, set)) return stop();
18
+ }, { IS_ITERATOR: true, INTERRUPTED: true }).stopped;
19
19
  }
20
20
  });
@@ -20,7 +20,7 @@ $({ target: 'Set', proto: true, real: true, forced: IS_PURE }, {
20
20
  var adder = aFunction(newSet.add);
21
21
  iterate(iterator, function (value) {
22
22
  if (boundFunction(value, value, set)) adder.call(newSet, value);
23
- }, undefined, false, true);
23
+ }, { IS_ITERATOR: true });
24
24
  return newSet;
25
25
  }
26
26
  });
@@ -13,8 +13,8 @@ $({ target: 'Set', proto: true, real: true, forced: IS_PURE }, {
13
13
  var set = anObject(this);
14
14
  var iterator = getSetIterator(set);
15
15
  var boundFunction = bind(callbackfn, arguments.length > 1 ? arguments[1] : undefined, 3);
16
- return iterate(iterator, function (value) {
17
- if (boundFunction(value, value, set)) return iterate.stop(value);
18
- }, undefined, false, true).result;
16
+ return iterate(iterator, function (value, stop) {
17
+ if (boundFunction(value, value, set)) return stop(value);
18
+ }, { IS_ITERATOR: true, INTERRUPTED: true }).result;
19
19
  }
20
20
  });
@@ -11,8 +11,8 @@ $({ target: 'Set', proto: true, real: true, forced: IS_PURE }, {
11
11
  isDisjointFrom: function isDisjointFrom(iterable) {
12
12
  var set = anObject(this);
13
13
  var hasCheck = aFunction(set.has);
14
- return !iterate(iterable, function (value) {
15
- if (hasCheck.call(set, value) === true) return iterate.stop();
16
- }).stopped;
14
+ return !iterate(iterable, function (value, stop) {
15
+ if (hasCheck.call(set, value) === true) return stop();
16
+ }, { INTERRUPTED: true }).stopped;
17
17
  }
18
18
  });
@@ -18,8 +18,8 @@ $({ target: 'Set', proto: true, real: true, forced: IS_PURE }, {
18
18
  otherSet = new (getBuiltIn('Set'))(iterable);
19
19
  hasCheck = aFunction(otherSet.has);
20
20
  }
21
- return !iterate(iterator, function (value) {
22
- if (hasCheck.call(otherSet, value) === false) return iterate.stop();
23
- }, undefined, false, true).stopped;
21
+ return !iterate(iterator, function (value, stop) {
22
+ if (hasCheck.call(otherSet, value) === false) return stop();
23
+ }, { IS_ITERATOR: true, INTERRUPTED: true }).stopped;
24
24
  }
25
25
  });
@@ -11,8 +11,8 @@ $({ target: 'Set', proto: true, real: true, forced: IS_PURE }, {
11
11
  isSupersetOf: function isSupersetOf(iterable) {
12
12
  var set = anObject(this);
13
13
  var hasCheck = aFunction(set.has);
14
- return !iterate(iterable, function (value) {
15
- if (hasCheck.call(set, value) === false) return iterate.stop();
16
- }).stopped;
14
+ return !iterate(iterable, function (value, stop) {
15
+ if (hasCheck.call(set, value) === false) return stop();
16
+ }, { INTERRUPTED: true }).stopped;
17
17
  }
18
18
  });
@@ -13,7 +13,7 @@ $({ target: 'Set', proto: true, real: true, forced: IS_PURE }, {
13
13
  var iterator = getSetIterator(set);
14
14
  var sep = separator === undefined ? ',' : String(separator);
15
15
  var result = [];
16
- iterate(iterator, result.push, result, false, true);
16
+ iterate(iterator, result.push, { that: result, IS_ITERATOR: true });
17
17
  return result.join(sep);
18
18
  }
19
19
  });
@@ -20,7 +20,7 @@ $({ target: 'Set', proto: true, real: true, forced: IS_PURE }, {
20
20
  var adder = aFunction(newSet.add);
21
21
  iterate(iterator, function (value) {
22
22
  adder.call(newSet, boundFunction(value, value, set));
23
- }, undefined, false, true);
23
+ }, { IS_ITERATOR: true });
24
24
  return newSet;
25
25
  }
26
26
  });
@@ -22,7 +22,7 @@ $({ target: 'Set', proto: true, real: true, forced: IS_PURE }, {
22
22
  } else {
23
23
  accumulator = callbackfn(accumulator, value, value, set);
24
24
  }
25
- }, undefined, false, true);
25
+ }, { IS_ITERATOR: true });
26
26
  if (noInitial) throw TypeError('Reduce of empty set with no initial value');
27
27
  return accumulator;
28
28
  }
@@ -13,8 +13,8 @@ $({ target: 'Set', proto: true, real: true, forced: IS_PURE }, {
13
13
  var set = anObject(this);
14
14
  var iterator = getSetIterator(set);
15
15
  var boundFunction = bind(callbackfn, arguments.length > 1 ? arguments[1] : undefined, 3);
16
- return iterate(iterator, function (value) {
17
- if (boundFunction(value, value, set)) return iterate.stop();
18
- }, undefined, false, true).stopped;
16
+ return iterate(iterator, function (value, stop) {
17
+ if (boundFunction(value, value, set)) return stop();
18
+ }, { IS_ITERATOR: true, INTERRUPTED: true }).stopped;
19
19
  }
20
20
  });
@@ -13,7 +13,7 @@ $({ target: 'Set', proto: true, real: true, forced: IS_PURE }, {
13
13
  union: function union(iterable) {
14
14
  var set = anObject(this);
15
15
  var newSet = new (speciesConstructor(set, getBuiltIn('Set')))(set);
16
- iterate(iterable, aFunction(newSet.add), newSet);
16
+ iterate(iterable, aFunction(newSet.add), { that: newSet });
17
17
  return newSet;
18
18
  }
19
19
  });
@@ -1,50 +1,2 @@
1
- 'use strict';
2
- var $ = require('../internals/export');
3
- var requireObjectCoercible = require('../internals/require-object-coercible');
4
- var isRegExp = require('../internals/is-regexp');
5
- var getRegExpFlags = require('../internals/regexp-flags');
6
- var wellKnownSymbol = require('../internals/well-known-symbol');
7
- var IS_PURE = require('../internals/is-pure');
8
-
9
- var REPLACE = wellKnownSymbol('replace');
10
- var RegExpPrototype = RegExp.prototype;
11
-
12
- // `String.prototype.replaceAll` method
13
- // https://github.com/tc39/proposal-string-replace-all
14
- $({ target: 'String', proto: true }, {
15
- replaceAll: function replaceAll(searchValue, replaceValue) {
16
- var O = requireObjectCoercible(this);
17
- var IS_REG_EXP, flags, replacer, string, searchString, template, result, position, index;
18
- if (searchValue != null) {
19
- IS_REG_EXP = isRegExp(searchValue);
20
- if (IS_REG_EXP) {
21
- flags = String(requireObjectCoercible('flags' in RegExpPrototype
22
- ? searchValue.flags
23
- : getRegExpFlags.call(searchValue)
24
- ));
25
- if (!~flags.indexOf('g')) throw TypeError('`.replaceAll` does not allow non-global regexes');
26
- }
27
- replacer = searchValue[REPLACE];
28
- if (replacer !== undefined) {
29
- return replacer.call(searchValue, O, replaceValue);
30
- } else if (IS_PURE && IS_REG_EXP) {
31
- return String(O).replace(searchValue, replaceValue);
32
- }
33
- }
34
- string = String(O);
35
- searchString = String(searchValue);
36
- if (searchString === '') return replaceAll.call(string, /(?:)/g, replaceValue);
37
- template = string.split(searchString);
38
- if (typeof replaceValue !== 'function') {
39
- return template.join(String(replaceValue));
40
- }
41
- result = template[0];
42
- position = result.length;
43
- for (index = 1; index < template.length; index++) {
44
- result += String(replaceValue(searchString, position, string));
45
- position += searchString.length + template[index].length;
46
- result += template[index];
47
- }
48
- return result;
49
- }
50
- });
1
+ // TODO: Remove from `core-js@4`
2
+ require('./es.string.replace-all');