core-js 3.6.5 → 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 (104) 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/async-iterator-iteration.js +25 -6
  25. package/internals/call-with-safe-iteration-closing.js +2 -2
  26. package/internals/collection-from.js +5 -5
  27. package/internals/collection-strong.js +1 -1
  28. package/internals/collection-weak.js +1 -1
  29. package/internals/collection.js +1 -1
  30. package/internals/correct-is-regexp-logic.js +2 -2
  31. package/internals/engine-is-node.js +4 -0
  32. package/internals/global.js +1 -1
  33. package/internals/internal-state.js +4 -1
  34. package/internals/iterate.js +26 -11
  35. package/internals/iterator-close.js +8 -0
  36. package/internals/map-emplace.js +13 -0
  37. package/internals/microtask.js +8 -8
  38. package/internals/redefine.js +8 -2
  39. package/internals/shared.js +1 -1
  40. package/internals/task.js +4 -4
  41. package/modules/es.aggregate-error.js +31 -0
  42. package/modules/es.array.reduce-right.js +6 -1
  43. package/modules/es.array.reduce.js +6 -1
  44. package/modules/es.object.from-entries.js +1 -1
  45. package/modules/es.promise.all-settled.js +2 -2
  46. package/modules/es.promise.any.js +46 -0
  47. package/modules/es.promise.js +27 -25
  48. package/modules/es.reflect.set.js +3 -2
  49. package/modules/es.reflect.to-string-tag.js +9 -0
  50. package/modules/es.string.replace-all.js +50 -0
  51. package/modules/esnext.aggregate-error.js +2 -45
  52. package/modules/esnext.async-iterator.take.js +12 -3
  53. package/modules/esnext.iterator.every.js +3 -3
  54. package/modules/esnext.iterator.find.js +3 -3
  55. package/modules/esnext.iterator.flat-map.js +21 -15
  56. package/modules/esnext.iterator.for-each.js +1 -1
  57. package/modules/esnext.iterator.reduce.js +1 -1
  58. package/modules/esnext.iterator.some.js +3 -3
  59. package/modules/esnext.iterator.take.js +4 -2
  60. package/modules/esnext.iterator.to-array.js +1 -1
  61. package/modules/esnext.map.emplace.js +10 -0
  62. package/modules/esnext.map.every.js +3 -3
  63. package/modules/esnext.map.filter.js +1 -1
  64. package/modules/esnext.map.find-key.js +3 -3
  65. package/modules/esnext.map.find.js +3 -3
  66. package/modules/esnext.map.includes.js +3 -3
  67. package/modules/esnext.map.key-of.js +3 -3
  68. package/modules/esnext.map.map-keys.js +1 -1
  69. package/modules/esnext.map.map-values.js +1 -1
  70. package/modules/esnext.map.merge.js +1 -1
  71. package/modules/esnext.map.reduce.js +1 -1
  72. package/modules/esnext.map.some.js +3 -3
  73. package/modules/esnext.map.update-or-insert.js +1 -1
  74. package/modules/esnext.map.upsert.js +2 -1
  75. package/modules/esnext.observable.js +3 -3
  76. package/modules/esnext.promise.any.js +2 -46
  77. package/modules/esnext.reflect.get-metadata-keys.js +1 -1
  78. package/modules/esnext.set.every.js +3 -3
  79. package/modules/esnext.set.filter.js +1 -1
  80. package/modules/esnext.set.find.js +3 -3
  81. package/modules/esnext.set.is-disjoint-from.js +3 -3
  82. package/modules/esnext.set.is-subset-of.js +3 -3
  83. package/modules/esnext.set.is-superset-of.js +3 -3
  84. package/modules/esnext.set.join.js +1 -1
  85. package/modules/esnext.set.map.js +1 -1
  86. package/modules/esnext.set.reduce.js +1 -1
  87. package/modules/esnext.set.some.js +3 -3
  88. package/modules/esnext.set.union.js +1 -1
  89. package/modules/esnext.string.replace-all.js +2 -50
  90. package/modules/esnext.weak-map.emplace.js +10 -0
  91. package/modules/esnext.weak-map.upsert.js +3 -2
  92. package/modules/web.queue-microtask.js +2 -3
  93. package/modules/web.url-search-params.js +1 -1
  94. package/package.json +1 -1
  95. package/proposals/efficient-64-bit-arithmetic.js +1 -0
  96. package/proposals/map-upsert.js +4 -0
  97. package/proposals/object-iteration.js +1 -0
  98. package/stable/aggregate-error.js +6 -0
  99. package/stable/promise/any.js +3 -0
  100. package/stable/reflect/to-string-tag.js +3 -0
  101. package/stable/string/replace-all.js +3 -0
  102. package/stable/string/virtual/replace-all.js +3 -0
  103. package/stage/3.js +0 -2
  104. package/stage/4.js +2 -0
@@ -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');
@@ -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
+ // `WeakMap.prototype.emplace` method
7
+ // https://github.com/tc39/proposal-upsert
8
+ $({ target: 'WeakMap', proto: true, real: true, forced: IS_PURE }, {
9
+ emplace: $emplace
10
+ });
@@ -1,10 +1,11 @@
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
- // `WeakMap.prototype.upsert` method
7
- // https://github.com/thumbsupep/proposal-upsert
7
+ // `WeakMap.prototype.upsert` method (replaced by `WeakMap.prototype.emplace`)
8
+ // https://github.com/tc39/proposal-upsert
8
9
  $({ target: 'WeakMap', proto: true, real: true, forced: IS_PURE }, {
9
10
  upsert: $upsert
10
11
  });
@@ -1,16 +1,15 @@
1
1
  var $ = require('../internals/export');
2
2
  var global = require('../internals/global');
3
3
  var microtask = require('../internals/microtask');
4
- var classof = require('../internals/classof-raw');
4
+ var IS_NODE = require('../internals/engine-is-node');
5
5
 
6
6
  var process = global.process;
7
- var isNode = classof(process) == 'process';
8
7
 
9
8
  // `queueMicrotask` method
10
9
  // https://html.spec.whatwg.org/multipage/timers-and-user-prompts.html#dom-queuemicrotask
11
10
  $({ global: true, enumerable: true, noTargetGet: true }, {
12
11
  queueMicrotask: function queueMicrotask(fn) {
13
- var domain = isNode && process.domain;
12
+ var domain = IS_NODE && process.domain;
14
13
  microtask(domain ? domain.bind(fn) : fn);
15
14
  }
16
15
  });
@@ -162,7 +162,7 @@ var URLSearchParamsConstructor = function URLSearchParams(/* init */) {
162
162
  var URLSearchParamsPrototype = URLSearchParamsConstructor.prototype;
163
163
 
164
164
  redefineAll(URLSearchParamsPrototype, {
165
- // `URLSearchParams.prototype.appent` method
165
+ // `URLSearchParams.prototype.append` method
166
166
  // https://url.spec.whatwg.org/#dom-urlsearchparams-append
167
167
  append: function append(name, value) {
168
168
  validateArgumentsLength(arguments.length, 2);
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "core-js",
3
3
  "description": "Standard library",
4
- "version": "3.6.5",
4
+ "version": "3.7.0",
5
5
  "repository": {
6
6
  "type": "git",
7
7
  "url": "https://github.com/zloirock/core-js.git"
@@ -1,3 +1,4 @@
1
+ // TODO: remove from `core-js@4` as withdrawn
1
2
  require('../modules/esnext.math.iaddh');
2
3
  require('../modules/esnext.math.isubh');
3
4
  require('../modules/esnext.math.imulh');
@@ -1,5 +1,9 @@
1
1
  // https://github.com/thumbsupep/proposal-upsert
2
+ require('../modules/esnext.map.emplace');
2
3
  // TODO: remove from `core-js@4`
3
4
  require('../modules/esnext.map.update-or-insert');
5
+ // TODO: remove from `core-js@4`
4
6
  require('../modules/esnext.map.upsert');
7
+ require('../modules/esnext.weak-map.emplace');
8
+ // TODO: remove from `core-js@4`
5
9
  require('../modules/esnext.weak-map.upsert');
@@ -1,3 +1,4 @@
1
+ // TODO: remove from `core-js@4` as withdrawn
1
2
  require('../modules/esnext.object.iterate-entries');
2
3
  require('../modules/esnext.object.iterate-keys');
3
4
  require('../modules/esnext.object.iterate-values');
@@ -0,0 +1,6 @@
1
+ // TODO: remove from `core-js@4`
2
+ require('../modules/esnext.aggregate-error');
3
+
4
+ var parent = require('../es/aggregate-error');
5
+
6
+ module.exports = parent;
@@ -0,0 +1,3 @@
1
+ var parent = require('../../es/promise/any');
2
+
3
+ module.exports = parent;
@@ -0,0 +1,3 @@
1
+ require('../../modules/es.reflect.to-string-tag');
2
+
3
+ module.exports = 'Reflect';
@@ -0,0 +1,3 @@
1
+ var parent = require('../../es/string/replace-all');
2
+
3
+ module.exports = parent;
@@ -0,0 +1,3 @@
1
+ var parent = require('../../../es/string/virtual/replace-all');
2
+
3
+ module.exports = parent;
package/stage/3.js CHANGED
@@ -1,5 +1,3 @@
1
- require('../proposals/promise-any');
2
- require('../proposals/string-replace-all');
3
1
  var parent = require('./4');
4
2
 
5
3
  module.exports = parent;
package/stage/4.js CHANGED
@@ -1,6 +1,8 @@
1
1
  require('../proposals/global-this');
2
2
  require('../proposals/promise-all-settled');
3
+ require('../proposals/promise-any');
3
4
  require('../proposals/string-match-all');
5
+ require('../proposals/string-replace-all');
4
6
  var path = require('../internals/path');
5
7
 
6
8
  module.exports = path;