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.
- package/es/aggregate-error.js +6 -0
- package/es/index.js +33 -29
- package/es/object/index.js +2 -1
- package/es/object/to-string.js +3 -2
- package/es/promise/any.js +12 -0
- package/es/promise/index.js +4 -2
- package/es/reflect/index.js +1 -0
- package/es/reflect/to-string-tag.js +3 -0
- package/es/string/index.js +1 -0
- package/es/string/replace-all.js +4 -0
- package/es/string/virtual/index.js +1 -0
- package/es/string/virtual/replace-all.js +4 -0
- package/es/symbol/index.js +2 -1
- package/es/symbol/to-string-tag.js +2 -1
- package/features/aggregate-error.js +4 -4
- package/features/map/emplace.js +5 -0
- package/features/map/index.js +2 -0
- package/features/promise/any.js +4 -9
- package/features/reflect/to-string-tag.js +3 -0
- package/features/string/replace-all.js +4 -2
- package/features/string/virtual/replace-all.js +4 -2
- package/features/weak-map/emplace.js +5 -0
- package/features/weak-map/index.js +2 -0
- package/internals/async-iterator-iteration.js +25 -6
- package/internals/call-with-safe-iteration-closing.js +2 -2
- package/internals/collection-from.js +5 -5
- package/internals/collection-strong.js +1 -1
- package/internals/collection-weak.js +1 -1
- package/internals/collection.js +1 -1
- package/internals/correct-is-regexp-logic.js +2 -2
- package/internals/engine-is-node.js +4 -0
- package/internals/global.js +1 -1
- package/internals/internal-state.js +4 -1
- package/internals/iterate.js +26 -11
- package/internals/iterator-close.js +8 -0
- package/internals/map-emplace.js +13 -0
- package/internals/microtask.js +8 -8
- package/internals/redefine.js +8 -2
- package/internals/shared.js +1 -1
- package/internals/task.js +4 -4
- package/modules/es.aggregate-error.js +31 -0
- package/modules/es.array.reduce-right.js +6 -1
- package/modules/es.array.reduce.js +6 -1
- package/modules/es.object.from-entries.js +1 -1
- package/modules/es.promise.all-settled.js +2 -2
- package/modules/es.promise.any.js +46 -0
- package/modules/es.promise.js +27 -25
- package/modules/es.reflect.set.js +3 -2
- package/modules/es.reflect.to-string-tag.js +9 -0
- package/modules/es.string.replace-all.js +50 -0
- package/modules/esnext.aggregate-error.js +2 -45
- package/modules/esnext.async-iterator.take.js +12 -3
- package/modules/esnext.iterator.every.js +3 -3
- package/modules/esnext.iterator.find.js +3 -3
- package/modules/esnext.iterator.flat-map.js +21 -15
- package/modules/esnext.iterator.for-each.js +1 -1
- package/modules/esnext.iterator.reduce.js +1 -1
- package/modules/esnext.iterator.some.js +3 -3
- package/modules/esnext.iterator.take.js +4 -2
- package/modules/esnext.iterator.to-array.js +1 -1
- package/modules/esnext.map.emplace.js +10 -0
- package/modules/esnext.map.every.js +3 -3
- package/modules/esnext.map.filter.js +1 -1
- package/modules/esnext.map.find-key.js +3 -3
- package/modules/esnext.map.find.js +3 -3
- package/modules/esnext.map.includes.js +3 -3
- package/modules/esnext.map.key-of.js +3 -3
- package/modules/esnext.map.map-keys.js +1 -1
- package/modules/esnext.map.map-values.js +1 -1
- package/modules/esnext.map.merge.js +1 -1
- package/modules/esnext.map.reduce.js +1 -1
- package/modules/esnext.map.some.js +3 -3
- package/modules/esnext.map.update-or-insert.js +1 -1
- package/modules/esnext.map.upsert.js +2 -1
- package/modules/esnext.observable.js +3 -3
- package/modules/esnext.promise.any.js +2 -46
- package/modules/esnext.reflect.get-metadata-keys.js +1 -1
- package/modules/esnext.set.every.js +3 -3
- package/modules/esnext.set.filter.js +1 -1
- package/modules/esnext.set.find.js +3 -3
- package/modules/esnext.set.is-disjoint-from.js +3 -3
- package/modules/esnext.set.is-subset-of.js +3 -3
- package/modules/esnext.set.is-superset-of.js +3 -3
- package/modules/esnext.set.join.js +1 -1
- package/modules/esnext.set.map.js +1 -1
- package/modules/esnext.set.reduce.js +1 -1
- package/modules/esnext.set.some.js +3 -3
- package/modules/esnext.set.union.js +1 -1
- package/modules/esnext.string.replace-all.js +2 -50
- package/modules/esnext.weak-map.emplace.js +10 -0
- package/modules/esnext.weak-map.upsert.js +3 -2
- package/modules/web.queue-microtask.js +2 -3
- package/modules/web.url-search-params.js +1 -1
- package/package.json +1 -1
- package/proposals/efficient-64-bit-arithmetic.js +1 -0
- package/proposals/map-upsert.js +4 -0
- package/proposals/object-iteration.js +1 -0
- package/stable/aggregate-error.js +6 -0
- package/stable/promise/any.js +3 -0
- package/stable/reflect/to-string-tag.js +3 -0
- package/stable/string/replace-all.js +3 -0
- package/stable/string/virtual/replace-all.js +3 -0
- package/stage/3.js +0 -2
- 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(
|
|
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,
|
|
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
|
|
18
|
-
},
|
|
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
|
-
},
|
|
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
|
|
18
|
-
},
|
|
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
|
|
18
|
-
},
|
|
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
|
|
15
|
-
},
|
|
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
|
|
14
|
-
},
|
|
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
|
-
},
|
|
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
|
-
},
|
|
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
|
-
},
|
|
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
|
|
18
|
-
},
|
|
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.
|
|
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
|
|
182
|
-
},
|
|
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
|
-
|
|
2
|
-
|
|
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');
|
|
@@ -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
|
|
18
|
-
},
|
|
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
|
-
},
|
|
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
|
|
18
|
-
},
|
|
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
|
|
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
|
|
23
|
-
},
|
|
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
|
|
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,
|
|
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
|
-
},
|
|
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
|
-
},
|
|
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
|
|
18
|
-
},
|
|
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
|
-
|
|
2
|
-
|
|
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/
|
|
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
|
|
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 =
|
|
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.
|
|
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
package/proposals/map-upsert.js
CHANGED
|
@@ -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');
|
package/stage/3.js
CHANGED
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;
|