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.
- 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/array-last-index-of.js +2 -1
- package/internals/array-method-uses-to-length.js +5 -8
- 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/fix-regexp-well-known-symbol-logic.js +18 -2
- 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 +9 -3
- package/modules/es.aggregate-error.js +31 -0
- package/modules/es.array.reduce-right.js +8 -2
- 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/es.string.replace.js +8 -1
- 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/modules/web.url.js +1 -1
- package/package.json +1 -1
- package/postinstall.js +3 -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
|
@@ -1,45 +1,2 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
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
|
-
|
|
12
|
-
|
|
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
|
|
14
|
-
},
|
|
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
|
|
14
|
-
},
|
|
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
|
|
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
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
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
|
-
|
|
23
|
+
result = anObject(this.next.call(iterator, arg));
|
|
22
24
|
|
|
23
|
-
|
|
25
|
+
if (this.done = !!result.done) return;
|
|
24
26
|
|
|
25
|
-
|
|
26
|
-
|
|
27
|
+
mapped = mapper(result.value);
|
|
28
|
+
iteratorMethod = getIteratorMethod(mapped);
|
|
27
29
|
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
30
|
+
if (iteratorMethod === undefined) {
|
|
31
|
+
throw TypeError('.flatMap callback should return an iterable object');
|
|
32
|
+
}
|
|
31
33
|
|
|
32
|
-
|
|
33
|
-
|
|
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
|
|
|
@@ -18,7 +18,7 @@ $({ target: 'Iterator', proto: true, real: true }, {
|
|
|
18
18
|
} else {
|
|
19
19
|
accumulator = reducer(accumulator, value);
|
|
20
20
|
}
|
|
21
|
-
},
|
|
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
|
|
14
|
-
},
|
|
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(
|
|
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');
|