core-js 3.38.1 → 3.40.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/LICENSE +1 -1
- package/actual/error/index.js +2 -0
- package/actual/error/is-error.js +6 -0
- package/actual/iterator/drop.js +2 -4
- package/actual/iterator/every.js +2 -4
- package/actual/iterator/filter.js +2 -4
- package/actual/iterator/find.js +2 -4
- package/actual/iterator/flat-map.js +2 -4
- package/actual/iterator/for-each.js +2 -4
- package/actual/iterator/from.js +2 -7
- package/actual/iterator/index.js +2 -7
- package/actual/iterator/map.js +2 -4
- package/actual/iterator/reduce.js +2 -4
- package/actual/iterator/some.js +2 -4
- package/actual/iterator/take.js +2 -4
- package/actual/iterator/to-array.js +2 -4
- package/actual/iterator/to-async.js +2 -0
- package/actual/math/index.js +2 -0
- package/actual/math/sum-precise.js +6 -0
- package/actual/promise/index.js +1 -0
- package/actual/promise/try.js +3 -10
- package/es/index.js +14 -0
- package/es/iterator/drop.js +8 -0
- package/es/iterator/every.js +8 -0
- package/es/iterator/filter.js +8 -0
- package/es/iterator/find.js +8 -0
- package/es/iterator/flat-map.js +8 -0
- package/es/iterator/for-each.js +8 -0
- package/es/iterator/from.js +21 -0
- package/es/iterator/index.js +21 -0
- package/es/iterator/map.js +8 -0
- package/es/iterator/reduce.js +8 -0
- package/es/iterator/some.js +8 -0
- package/es/iterator/take.js +8 -0
- package/es/iterator/to-array.js +8 -0
- package/es/promise/index.js +1 -0
- package/es/promise/try.js +15 -0
- package/features/error/is-error.js +2 -0
- package/features/iterator/concat.js +2 -0
- package/features/map/get-or-insert-computed.js +2 -0
- package/features/map/get-or-insert.js +2 -0
- package/features/weak-map/get-or-insert-computed.js +2 -0
- package/features/weak-map/get-or-insert.js +2 -0
- package/full/error/is-error.js +4 -0
- package/full/index.js +20 -0
- package/full/iterator/concat.js +20 -0
- package/full/iterator/index.js +1 -0
- package/full/map/from.js +2 -0
- package/full/map/get-or-insert-computed.js +6 -0
- package/full/map/get-or-insert.js +6 -0
- package/full/map/group-by.js +2 -0
- package/full/map/index.js +3 -1
- package/full/map/key-by.js +2 -0
- package/full/map/of.js +2 -0
- package/full/math/index.js +0 -2
- package/full/math/sum-precise.js +2 -4
- package/full/weak-map/from.js +2 -0
- package/full/weak-map/get-or-insert-computed.js +6 -0
- package/full/weak-map/get-or-insert.js +6 -0
- package/full/weak-map/index.js +3 -1
- package/full/weak-map/of.js +2 -0
- package/internals/add-disposable-resource.js +7 -1
- package/internals/array-buffer-is-detached.js +5 -7
- package/internals/array-buffer.js +2 -2
- package/internals/error-stack-clear.js +1 -1
- package/internals/function-apply.js +1 -1
- package/internals/function-call.js +1 -1
- package/internals/function-uncurry-this.js +1 -0
- package/internals/iterator-create-proxy.js +7 -5
- package/internals/math-float-round.js +1 -5
- package/internals/math-log2.js +10 -0
- package/internals/math-round-ties-to-even.js +7 -0
- package/internals/math-scale.js +1 -1
- package/internals/native-raw-json.js +2 -0
- package/internals/object-assign.js +1 -0
- package/internals/object-prototype-accessors-forced.js +1 -1
- package/internals/set-method-accept-set-like.js +25 -2
- package/internals/shared-store.js +3 -3
- package/internals/typed-array-constructors-require-wrappers.js +1 -1
- package/internals/typed-array-from-same-type-and-list.js +7 -0
- package/internals/use-symbol-as-uid.js +3 -3
- package/modules/es.array-buffer.detached.js +2 -0
- package/modules/es.array-buffer.slice.js +1 -2
- package/modules/es.iterator.constructor.js +65 -0
- package/modules/es.iterator.drop.js +36 -0
- package/modules/es.iterator.every.js +20 -0
- package/modules/es.iterator.filter.js +35 -0
- package/modules/es.iterator.find.js +20 -0
- package/modules/es.iterator.flat-map.js +45 -0
- package/modules/es.iterator.for-each.js +20 -0
- package/modules/es.iterator.from.js +24 -0
- package/modules/es.iterator.map.js +10 -0
- package/modules/es.iterator.reduce.js +32 -0
- package/modules/es.iterator.some.js +20 -0
- package/modules/es.iterator.take.js +33 -0
- package/modules/es.iterator.to-array.js +17 -0
- package/modules/es.map.group-by.js +1 -1
- package/modules/es.math.log2.js +2 -6
- package/modules/es.object.from-entries.js +1 -1
- package/modules/es.object.group-by.js +1 -1
- package/modules/es.promise.constructor.js +2 -0
- package/modules/es.promise.try.js +33 -0
- package/modules/es.promise.with-resolvers.js +1 -1
- package/modules/es.regexp.constructor.js +1 -1
- package/modules/es.set.difference.v2.js +6 -2
- package/modules/es.set.intersection.v2.js +5 -3
- package/modules/es.set.is-disjoint-from.v2.js +6 -2
- package/modules/es.set.is-subset-of.v2.js +6 -2
- package/modules/es.set.is-superset-of.v2.js +6 -2
- package/modules/es.set.symmetric-difference.v2.js +1 -1
- package/modules/es.set.union.v2.js +1 -1
- package/modules/es.string.is-well-formed.js +1 -1
- package/modules/es.string.to-well-formed.js +1 -1
- package/modules/es.symbol.description.js +1 -1
- package/modules/es.typed-array.filter.js +2 -2
- package/modules/es.typed-array.map.js +2 -2
- package/modules/es.typed-array.slice.js +2 -2
- package/modules/es.typed-array.subarray.js +2 -2
- package/modules/esnext.array.from-async.js +1 -0
- package/modules/esnext.data-view.get-float16.js +17 -2
- package/modules/esnext.data-view.set-float16.js +37 -4
- package/modules/esnext.error.is-error.js +36 -0
- package/modules/esnext.iterator.concat.js +57 -0
- package/modules/esnext.iterator.constructor.js +2 -64
- package/modules/esnext.iterator.drop.js +2 -35
- package/modules/esnext.iterator.every.js +2 -19
- package/modules/esnext.iterator.filter.js +2 -34
- package/modules/esnext.iterator.find.js +2 -19
- package/modules/esnext.iterator.flat-map.js +2 -44
- package/modules/esnext.iterator.for-each.js +2 -19
- package/modules/esnext.iterator.from.js +2 -23
- package/modules/esnext.iterator.map.js +2 -9
- package/modules/esnext.iterator.reduce.js +2 -31
- package/modules/esnext.iterator.some.js +2 -19
- package/modules/esnext.iterator.take.js +2 -32
- package/modules/esnext.iterator.to-array.js +2 -16
- package/modules/esnext.map.get-or-insert-computed.js +24 -0
- package/modules/esnext.map.get-or-insert.js +18 -0
- package/modules/esnext.math.f16round.js +10 -2
- package/modules/esnext.math.sum-precise.js +1 -1
- package/modules/esnext.promise.try.js +2 -32
- package/modules/esnext.regexp.escape.js +1 -0
- package/modules/esnext.string.dedent.js +1 -1
- package/modules/esnext.typed-array.filter-out.js +2 -2
- package/modules/esnext.typed-array.filter-reject.js +2 -2
- package/modules/esnext.typed-array.group-by.js +2 -2
- package/modules/esnext.typed-array.to-spliced.js +1 -17
- package/modules/esnext.weak-map.get-or-insert-computed.js +23 -0
- package/modules/esnext.weak-map.get-or-insert.js +18 -0
- package/modules/web.structured-clone.js +4 -0
- package/package.json +1 -1
- package/proposals/is-error.js +3 -0
- package/proposals/iterator-sequencing.js +3 -0
- package/proposals/map-upsert-v4.js +6 -0
- package/stable/index.js +14 -0
- package/stable/iterator/drop.js +4 -0
- package/stable/iterator/every.js +4 -0
- package/stable/iterator/filter.js +4 -0
- package/stable/iterator/find.js +4 -0
- package/stable/iterator/flat-map.js +4 -0
- package/stable/iterator/for-each.js +4 -0
- package/stable/iterator/from.js +5 -0
- package/stable/iterator/index.js +5 -0
- package/stable/iterator/map.js +4 -0
- package/stable/iterator/reduce.js +4 -0
- package/stable/iterator/some.js +4 -0
- package/stable/iterator/take.js +4 -0
- package/stable/iterator/to-array.js +4 -0
- package/stable/promise/try.js +4 -0
- package/stage/1.js +0 -1
- package/stage/2.7.js +1 -1
- package/stage/2.js +3 -1
- package/stage/3.js +2 -2
- package/stage/4.js +2 -0
- package/internals/math-f16round.js +0 -12
- package/internals/typed-array-from-species-and-list.js +0 -7
- package/internals/typed-array-species-constructor.js +0 -12
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
var $ = require('../internals/export');
|
|
3
|
+
var call = require('../internals/function-call');
|
|
4
|
+
var aCallable = require('../internals/a-callable');
|
|
5
|
+
var anObject = require('../internals/an-object');
|
|
6
|
+
var getIteratorDirect = require('../internals/get-iterator-direct');
|
|
7
|
+
var getIteratorFlattenable = require('../internals/get-iterator-flattenable');
|
|
8
|
+
var createIteratorProxy = require('../internals/iterator-create-proxy');
|
|
9
|
+
var iteratorClose = require('../internals/iterator-close');
|
|
10
|
+
var IS_PURE = require('../internals/is-pure');
|
|
11
|
+
|
|
12
|
+
var IteratorProxy = createIteratorProxy(function () {
|
|
13
|
+
var iterator = this.iterator;
|
|
14
|
+
var mapper = this.mapper;
|
|
15
|
+
var result, inner;
|
|
16
|
+
|
|
17
|
+
while (true) {
|
|
18
|
+
if (inner = this.inner) try {
|
|
19
|
+
result = anObject(call(inner.next, inner.iterator));
|
|
20
|
+
if (!result.done) return result.value;
|
|
21
|
+
this.inner = null;
|
|
22
|
+
} catch (error) { iteratorClose(iterator, 'throw', error); }
|
|
23
|
+
|
|
24
|
+
result = anObject(call(this.next, iterator));
|
|
25
|
+
|
|
26
|
+
if (this.done = !!result.done) return;
|
|
27
|
+
|
|
28
|
+
try {
|
|
29
|
+
this.inner = getIteratorFlattenable(mapper(result.value, this.counter++), false);
|
|
30
|
+
} catch (error) { iteratorClose(iterator, 'throw', error); }
|
|
31
|
+
}
|
|
32
|
+
});
|
|
33
|
+
|
|
34
|
+
// `Iterator.prototype.flatMap` method
|
|
35
|
+
// https://tc39.es/ecma262/#sec-iterator.prototype.flatmap
|
|
36
|
+
$({ target: 'Iterator', proto: true, real: true, forced: IS_PURE }, {
|
|
37
|
+
flatMap: function flatMap(mapper) {
|
|
38
|
+
anObject(this);
|
|
39
|
+
aCallable(mapper);
|
|
40
|
+
return new IteratorProxy(getIteratorDirect(this), {
|
|
41
|
+
mapper: mapper,
|
|
42
|
+
inner: null
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
});
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
var $ = require('../internals/export');
|
|
3
|
+
var iterate = require('../internals/iterate');
|
|
4
|
+
var aCallable = require('../internals/a-callable');
|
|
5
|
+
var anObject = require('../internals/an-object');
|
|
6
|
+
var getIteratorDirect = require('../internals/get-iterator-direct');
|
|
7
|
+
|
|
8
|
+
// `Iterator.prototype.forEach` method
|
|
9
|
+
// https://tc39.es/ecma262/#sec-iterator.prototype.foreach
|
|
10
|
+
$({ target: 'Iterator', proto: true, real: true }, {
|
|
11
|
+
forEach: function forEach(fn) {
|
|
12
|
+
anObject(this);
|
|
13
|
+
aCallable(fn);
|
|
14
|
+
var record = getIteratorDirect(this);
|
|
15
|
+
var counter = 0;
|
|
16
|
+
iterate(record, function (value) {
|
|
17
|
+
fn(value, counter++);
|
|
18
|
+
}, { IS_RECORD: true });
|
|
19
|
+
}
|
|
20
|
+
});
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
var $ = require('../internals/export');
|
|
3
|
+
var call = require('../internals/function-call');
|
|
4
|
+
var toObject = require('../internals/to-object');
|
|
5
|
+
var isPrototypeOf = require('../internals/object-is-prototype-of');
|
|
6
|
+
var IteratorPrototype = require('../internals/iterators-core').IteratorPrototype;
|
|
7
|
+
var createIteratorProxy = require('../internals/iterator-create-proxy');
|
|
8
|
+
var getIteratorFlattenable = require('../internals/get-iterator-flattenable');
|
|
9
|
+
var IS_PURE = require('../internals/is-pure');
|
|
10
|
+
|
|
11
|
+
var IteratorProxy = createIteratorProxy(function () {
|
|
12
|
+
return call(this.next, this.iterator);
|
|
13
|
+
}, true);
|
|
14
|
+
|
|
15
|
+
// `Iterator.from` method
|
|
16
|
+
// https://tc39.es/ecma262/#sec-iterator.from
|
|
17
|
+
$({ target: 'Iterator', stat: true, forced: IS_PURE }, {
|
|
18
|
+
from: function from(O) {
|
|
19
|
+
var iteratorRecord = getIteratorFlattenable(typeof O == 'string' ? toObject(O) : O, true);
|
|
20
|
+
return isPrototypeOf(IteratorPrototype, iteratorRecord.iterator)
|
|
21
|
+
? iteratorRecord.iterator
|
|
22
|
+
: new IteratorProxy(iteratorRecord);
|
|
23
|
+
}
|
|
24
|
+
});
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
var $ = require('../internals/export');
|
|
3
|
+
var map = require('../internals/iterator-map');
|
|
4
|
+
var IS_PURE = require('../internals/is-pure');
|
|
5
|
+
|
|
6
|
+
// `Iterator.prototype.map` method
|
|
7
|
+
// https://tc39.es/ecma262/#sec-iterator.prototype.map
|
|
8
|
+
$({ target: 'Iterator', proto: true, real: true, forced: IS_PURE }, {
|
|
9
|
+
map: map
|
|
10
|
+
});
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
var $ = require('../internals/export');
|
|
3
|
+
var iterate = require('../internals/iterate');
|
|
4
|
+
var aCallable = require('../internals/a-callable');
|
|
5
|
+
var anObject = require('../internals/an-object');
|
|
6
|
+
var getIteratorDirect = require('../internals/get-iterator-direct');
|
|
7
|
+
|
|
8
|
+
var $TypeError = TypeError;
|
|
9
|
+
|
|
10
|
+
// `Iterator.prototype.reduce` method
|
|
11
|
+
// https://tc39.es/ecma262/#sec-iterator.prototype.reduce
|
|
12
|
+
$({ target: 'Iterator', proto: true, real: true }, {
|
|
13
|
+
reduce: function reduce(reducer /* , initialValue */) {
|
|
14
|
+
anObject(this);
|
|
15
|
+
aCallable(reducer);
|
|
16
|
+
var record = getIteratorDirect(this);
|
|
17
|
+
var noInitial = arguments.length < 2;
|
|
18
|
+
var accumulator = noInitial ? undefined : arguments[1];
|
|
19
|
+
var counter = 0;
|
|
20
|
+
iterate(record, function (value) {
|
|
21
|
+
if (noInitial) {
|
|
22
|
+
noInitial = false;
|
|
23
|
+
accumulator = value;
|
|
24
|
+
} else {
|
|
25
|
+
accumulator = reducer(accumulator, value, counter);
|
|
26
|
+
}
|
|
27
|
+
counter++;
|
|
28
|
+
}, { IS_RECORD: true });
|
|
29
|
+
if (noInitial) throw new $TypeError('Reduce of empty iterator with no initial value');
|
|
30
|
+
return accumulator;
|
|
31
|
+
}
|
|
32
|
+
});
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
var $ = require('../internals/export');
|
|
3
|
+
var iterate = require('../internals/iterate');
|
|
4
|
+
var aCallable = require('../internals/a-callable');
|
|
5
|
+
var anObject = require('../internals/an-object');
|
|
6
|
+
var getIteratorDirect = require('../internals/get-iterator-direct');
|
|
7
|
+
|
|
8
|
+
// `Iterator.prototype.some` method
|
|
9
|
+
// https://tc39.es/ecma262/#sec-iterator.prototype.some
|
|
10
|
+
$({ target: 'Iterator', proto: true, real: true }, {
|
|
11
|
+
some: function some(predicate) {
|
|
12
|
+
anObject(this);
|
|
13
|
+
aCallable(predicate);
|
|
14
|
+
var record = getIteratorDirect(this);
|
|
15
|
+
var counter = 0;
|
|
16
|
+
return iterate(record, function (value, stop) {
|
|
17
|
+
if (predicate(value, counter++)) return stop();
|
|
18
|
+
}, { IS_RECORD: true, INTERRUPTED: true }).stopped;
|
|
19
|
+
}
|
|
20
|
+
});
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
var $ = require('../internals/export');
|
|
3
|
+
var call = require('../internals/function-call');
|
|
4
|
+
var anObject = require('../internals/an-object');
|
|
5
|
+
var getIteratorDirect = require('../internals/get-iterator-direct');
|
|
6
|
+
var notANaN = require('../internals/not-a-nan');
|
|
7
|
+
var toPositiveInteger = require('../internals/to-positive-integer');
|
|
8
|
+
var createIteratorProxy = require('../internals/iterator-create-proxy');
|
|
9
|
+
var iteratorClose = require('../internals/iterator-close');
|
|
10
|
+
var IS_PURE = require('../internals/is-pure');
|
|
11
|
+
|
|
12
|
+
var IteratorProxy = createIteratorProxy(function () {
|
|
13
|
+
var iterator = this.iterator;
|
|
14
|
+
if (!this.remaining--) {
|
|
15
|
+
this.done = true;
|
|
16
|
+
return iteratorClose(iterator, 'normal', undefined);
|
|
17
|
+
}
|
|
18
|
+
var result = anObject(call(this.next, iterator));
|
|
19
|
+
var done = this.done = !!result.done;
|
|
20
|
+
if (!done) return result.value;
|
|
21
|
+
});
|
|
22
|
+
|
|
23
|
+
// `Iterator.prototype.take` method
|
|
24
|
+
// https://tc39.es/ecma262/#sec-iterator.prototype.take
|
|
25
|
+
$({ target: 'Iterator', proto: true, real: true, forced: IS_PURE }, {
|
|
26
|
+
take: function take(limit) {
|
|
27
|
+
anObject(this);
|
|
28
|
+
var remaining = toPositiveInteger(notANaN(+limit));
|
|
29
|
+
return new IteratorProxy(getIteratorDirect(this), {
|
|
30
|
+
remaining: remaining
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
});
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
var $ = require('../internals/export');
|
|
3
|
+
var anObject = require('../internals/an-object');
|
|
4
|
+
var iterate = require('../internals/iterate');
|
|
5
|
+
var getIteratorDirect = require('../internals/get-iterator-direct');
|
|
6
|
+
|
|
7
|
+
var push = [].push;
|
|
8
|
+
|
|
9
|
+
// `Iterator.prototype.toArray` method
|
|
10
|
+
// https://tc39.es/ecma262/#sec-iterator.prototype.toarray
|
|
11
|
+
$({ target: 'Iterator', proto: true, real: true }, {
|
|
12
|
+
toArray: function toArray() {
|
|
13
|
+
var result = [];
|
|
14
|
+
iterate(getIteratorDirect(anObject(this)), push, { that: result, IS_RECORD: true });
|
|
15
|
+
return result;
|
|
16
|
+
}
|
|
17
|
+
});
|
|
@@ -21,7 +21,7 @@ var DOES_NOT_WORK_WITH_PRIMITIVES = IS_PURE || fails(function () {
|
|
|
21
21
|
});
|
|
22
22
|
|
|
23
23
|
// `Map.groupBy` method
|
|
24
|
-
// https://
|
|
24
|
+
// https://tc39.es/ecma262/#sec-map.groupby
|
|
25
25
|
$({ target: 'Map', stat: true, forced: IS_PURE || DOES_NOT_WORK_WITH_PRIMITIVES }, {
|
|
26
26
|
groupBy: function groupBy(items, callbackfn) {
|
|
27
27
|
requireObjectCoercible(items);
|
package/modules/es.math.log2.js
CHANGED
|
@@ -1,13 +1,9 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
var $ = require('../internals/export');
|
|
3
|
-
|
|
4
|
-
var log = Math.log;
|
|
5
|
-
var LN2 = Math.LN2;
|
|
3
|
+
var log2 = require('../internals/math-log2');
|
|
6
4
|
|
|
7
5
|
// `Math.log2` method
|
|
8
6
|
// https://tc39.es/ecma262/#sec-math.log2
|
|
9
7
|
$({ target: 'Math', stat: true }, {
|
|
10
|
-
log2:
|
|
11
|
-
return log(x) / LN2;
|
|
12
|
-
}
|
|
8
|
+
log2: log2
|
|
13
9
|
});
|
|
@@ -4,7 +4,7 @@ var iterate = require('../internals/iterate');
|
|
|
4
4
|
var createProperty = require('../internals/create-property');
|
|
5
5
|
|
|
6
6
|
// `Object.fromEntries` method
|
|
7
|
-
// https://
|
|
7
|
+
// https://tc39.es/ecma262/#sec-object.fromentries
|
|
8
8
|
$({ target: 'Object', stat: true }, {
|
|
9
9
|
fromEntries: function fromEntries(iterable) {
|
|
10
10
|
var obj = {};
|
|
@@ -20,7 +20,7 @@ var DOES_NOT_WORK_WITH_PRIMITIVES = !nativeGroupBy || fails(function () {
|
|
|
20
20
|
});
|
|
21
21
|
|
|
22
22
|
// `Object.groupBy` method
|
|
23
|
-
// https://
|
|
23
|
+
// https://tc39.es/ecma262/#sec-object.groupby
|
|
24
24
|
$({ target: 'Object', stat: true, forced: DOES_NOT_WORK_WITH_PRIMITIVES }, {
|
|
25
25
|
groupBy: function groupBy(items, callbackfn) {
|
|
26
26
|
requireObjectCoercible(items);
|
|
@@ -280,6 +280,8 @@ if (FORCED_PROMISE_CONSTRUCTOR) {
|
|
|
280
280
|
}
|
|
281
281
|
}
|
|
282
282
|
|
|
283
|
+
// `Promise` constructor
|
|
284
|
+
// https://tc39.es/ecma262/#sec-promise-executor
|
|
283
285
|
$({ global: true, constructor: true, wrap: true, forced: FORCED_PROMISE_CONSTRUCTOR }, {
|
|
284
286
|
Promise: PromiseConstructor
|
|
285
287
|
});
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
var $ = require('../internals/export');
|
|
3
|
+
var globalThis = require('../internals/global-this');
|
|
4
|
+
var apply = require('../internals/function-apply');
|
|
5
|
+
var slice = require('../internals/array-slice');
|
|
6
|
+
var newPromiseCapabilityModule = require('../internals/new-promise-capability');
|
|
7
|
+
var aCallable = require('../internals/a-callable');
|
|
8
|
+
var perform = require('../internals/perform');
|
|
9
|
+
|
|
10
|
+
var Promise = globalThis.Promise;
|
|
11
|
+
|
|
12
|
+
var ACCEPT_ARGUMENTS = false;
|
|
13
|
+
// Avoiding the use of polyfills of the previous iteration of this proposal
|
|
14
|
+
// that does not accept arguments of the callback
|
|
15
|
+
var FORCED = !Promise || !Promise['try'] || perform(function () {
|
|
16
|
+
Promise['try'](function (argument) {
|
|
17
|
+
ACCEPT_ARGUMENTS = argument === 8;
|
|
18
|
+
}, 8);
|
|
19
|
+
}).error || !ACCEPT_ARGUMENTS;
|
|
20
|
+
|
|
21
|
+
// `Promise.try` method
|
|
22
|
+
// https://tc39.es/ecma262/#sec-promise.try
|
|
23
|
+
$({ target: 'Promise', stat: true, forced: FORCED }, {
|
|
24
|
+
'try': function (callbackfn /* , ...args */) {
|
|
25
|
+
var args = arguments.length > 1 ? slice(arguments, 1) : [];
|
|
26
|
+
var promiseCapability = newPromiseCapabilityModule.f(this);
|
|
27
|
+
var result = perform(function () {
|
|
28
|
+
return apply(aCallable(callbackfn), undefined, args);
|
|
29
|
+
});
|
|
30
|
+
(result.error ? promiseCapability.reject : promiseCapability.resolve)(result.value);
|
|
31
|
+
return promiseCapability.promise;
|
|
32
|
+
}
|
|
33
|
+
});
|
|
@@ -3,7 +3,7 @@ var $ = require('../internals/export');
|
|
|
3
3
|
var newPromiseCapabilityModule = require('../internals/new-promise-capability');
|
|
4
4
|
|
|
5
5
|
// `Promise.withResolvers` method
|
|
6
|
-
// https://
|
|
6
|
+
// https://tc39.es/ecma262/#sec-promise.withResolvers
|
|
7
7
|
$({ target: 'Promise', stat: true }, {
|
|
8
8
|
withResolvers: function withResolvers() {
|
|
9
9
|
var promiseCapability = newPromiseCapabilityModule.f(this);
|
|
@@ -46,7 +46,7 @@ var BASE_FORCED = DESCRIPTORS &&
|
|
|
46
46
|
(!CORRECT_NEW || MISSED_STICKY || UNSUPPORTED_DOT_ALL || UNSUPPORTED_NCG || fails(function () {
|
|
47
47
|
re2[MATCH] = false;
|
|
48
48
|
// RegExp constructor can alter flags and IsRegExp works correct with @@match
|
|
49
|
-
// eslint-disable-next-line
|
|
49
|
+
// eslint-disable-next-line sonarjs/inconsistent-function-call -- required for testing
|
|
50
50
|
return NativeRegExp(re1) !== re1 || NativeRegExp(re2) === re2 || String(NativeRegExp(re1, 'i')) !== '/a/i';
|
|
51
51
|
}));
|
|
52
52
|
|
|
@@ -3,8 +3,12 @@ var $ = require('../internals/export');
|
|
|
3
3
|
var difference = require('../internals/set-difference');
|
|
4
4
|
var setMethodAcceptSetLike = require('../internals/set-method-accept-set-like');
|
|
5
5
|
|
|
6
|
+
var INCORRECT = !setMethodAcceptSetLike('difference', function (result) {
|
|
7
|
+
return result.size === 0;
|
|
8
|
+
});
|
|
9
|
+
|
|
6
10
|
// `Set.prototype.difference` method
|
|
7
|
-
// https://
|
|
8
|
-
$({ target: 'Set', proto: true, real: true, forced:
|
|
11
|
+
// https://tc39.es/ecma262/#sec-set.prototype.difference
|
|
12
|
+
$({ target: 'Set', proto: true, real: true, forced: INCORRECT }, {
|
|
9
13
|
difference: difference
|
|
10
14
|
});
|
|
@@ -4,13 +4,15 @@ var fails = require('../internals/fails');
|
|
|
4
4
|
var intersection = require('../internals/set-intersection');
|
|
5
5
|
var setMethodAcceptSetLike = require('../internals/set-method-accept-set-like');
|
|
6
6
|
|
|
7
|
-
var INCORRECT = !setMethodAcceptSetLike('intersection'
|
|
8
|
-
|
|
7
|
+
var INCORRECT = !setMethodAcceptSetLike('intersection', function (result) {
|
|
8
|
+
return result.size === 2 && result.has(1) && result.has(2);
|
|
9
|
+
}) || fails(function () {
|
|
10
|
+
// eslint-disable-next-line es/no-array-from, es/no-set, es/no-set-prototype-intersection -- testing
|
|
9
11
|
return String(Array.from(new Set([1, 2, 3]).intersection(new Set([3, 2])))) !== '3,2';
|
|
10
12
|
});
|
|
11
13
|
|
|
12
14
|
// `Set.prototype.intersection` method
|
|
13
|
-
// https://
|
|
15
|
+
// https://tc39.es/ecma262/#sec-set.prototype.intersection
|
|
14
16
|
$({ target: 'Set', proto: true, real: true, forced: INCORRECT }, {
|
|
15
17
|
intersection: intersection
|
|
16
18
|
});
|
|
@@ -3,8 +3,12 @@ var $ = require('../internals/export');
|
|
|
3
3
|
var isDisjointFrom = require('../internals/set-is-disjoint-from');
|
|
4
4
|
var setMethodAcceptSetLike = require('../internals/set-method-accept-set-like');
|
|
5
5
|
|
|
6
|
+
var INCORRECT = !setMethodAcceptSetLike('isDisjointFrom', function (result) {
|
|
7
|
+
return !result;
|
|
8
|
+
});
|
|
9
|
+
|
|
6
10
|
// `Set.prototype.isDisjointFrom` method
|
|
7
|
-
// https://
|
|
8
|
-
$({ target: 'Set', proto: true, real: true, forced:
|
|
11
|
+
// https://tc39.es/ecma262/#sec-set.prototype.isdisjointfrom
|
|
12
|
+
$({ target: 'Set', proto: true, real: true, forced: INCORRECT }, {
|
|
9
13
|
isDisjointFrom: isDisjointFrom
|
|
10
14
|
});
|
|
@@ -3,8 +3,12 @@ var $ = require('../internals/export');
|
|
|
3
3
|
var isSubsetOf = require('../internals/set-is-subset-of');
|
|
4
4
|
var setMethodAcceptSetLike = require('../internals/set-method-accept-set-like');
|
|
5
5
|
|
|
6
|
+
var INCORRECT = !setMethodAcceptSetLike('isSubsetOf', function (result) {
|
|
7
|
+
return result;
|
|
8
|
+
});
|
|
9
|
+
|
|
6
10
|
// `Set.prototype.isSubsetOf` method
|
|
7
|
-
// https://
|
|
8
|
-
$({ target: 'Set', proto: true, real: true, forced:
|
|
11
|
+
// https://tc39.es/ecma262/#sec-set.prototype.issubsetof
|
|
12
|
+
$({ target: 'Set', proto: true, real: true, forced: INCORRECT }, {
|
|
9
13
|
isSubsetOf: isSubsetOf
|
|
10
14
|
});
|
|
@@ -3,8 +3,12 @@ var $ = require('../internals/export');
|
|
|
3
3
|
var isSupersetOf = require('../internals/set-is-superset-of');
|
|
4
4
|
var setMethodAcceptSetLike = require('../internals/set-method-accept-set-like');
|
|
5
5
|
|
|
6
|
+
var INCORRECT = !setMethodAcceptSetLike('isSupersetOf', function (result) {
|
|
7
|
+
return !result;
|
|
8
|
+
});
|
|
9
|
+
|
|
6
10
|
// `Set.prototype.isSupersetOf` method
|
|
7
|
-
// https://
|
|
8
|
-
$({ target: 'Set', proto: true, real: true, forced:
|
|
11
|
+
// https://tc39.es/ecma262/#sec-set.prototype.issupersetof
|
|
12
|
+
$({ target: 'Set', proto: true, real: true, forced: INCORRECT }, {
|
|
9
13
|
isSupersetOf: isSupersetOf
|
|
10
14
|
});
|
|
@@ -4,7 +4,7 @@ var symmetricDifference = require('../internals/set-symmetric-difference');
|
|
|
4
4
|
var setMethodAcceptSetLike = require('../internals/set-method-accept-set-like');
|
|
5
5
|
|
|
6
6
|
// `Set.prototype.symmetricDifference` method
|
|
7
|
-
// https://
|
|
7
|
+
// https://tc39.es/ecma262/#sec-set.prototype.symmetricdifference
|
|
8
8
|
$({ target: 'Set', proto: true, real: true, forced: !setMethodAcceptSetLike('symmetricDifference') }, {
|
|
9
9
|
symmetricDifference: symmetricDifference
|
|
10
10
|
});
|
|
@@ -4,7 +4,7 @@ var union = require('../internals/set-union');
|
|
|
4
4
|
var setMethodAcceptSetLike = require('../internals/set-method-accept-set-like');
|
|
5
5
|
|
|
6
6
|
// `Set.prototype.union` method
|
|
7
|
-
// https://
|
|
7
|
+
// https://tc39.es/ecma262/#sec-set.prototype.union
|
|
8
8
|
$({ target: 'Set', proto: true, real: true, forced: !setMethodAcceptSetLike('union') }, {
|
|
9
9
|
union: union
|
|
10
10
|
});
|
|
@@ -7,7 +7,7 @@ var toString = require('../internals/to-string');
|
|
|
7
7
|
var charCodeAt = uncurryThis(''.charCodeAt);
|
|
8
8
|
|
|
9
9
|
// `String.prototype.isWellFormed` method
|
|
10
|
-
// https://
|
|
10
|
+
// https://tc39.es/ecma262/#sec-string.prototype.iswellformed
|
|
11
11
|
$({ target: 'String', proto: true }, {
|
|
12
12
|
isWellFormed: function isWellFormed() {
|
|
13
13
|
var S = toString(requireObjectCoercible(this));
|
|
@@ -20,7 +20,7 @@ var TO_STRING_CONVERSION_BUG = $toWellFormed && fails(function () {
|
|
|
20
20
|
});
|
|
21
21
|
|
|
22
22
|
// `String.prototype.toWellFormed` method
|
|
23
|
-
// https://
|
|
23
|
+
// https://tc39.es/ecma262/#sec-string.prototype.towellformed
|
|
24
24
|
$({ target: 'String', proto: true, forced: TO_STRING_CONVERSION_BUG }, {
|
|
25
25
|
toWellFormed: function toWellFormed() {
|
|
26
26
|
var S = toString(requireObjectCoercible(this));
|
|
@@ -24,7 +24,7 @@ if (DESCRIPTORS && isCallable(NativeSymbol) && (!('description' in SymbolPrototy
|
|
|
24
24
|
var SymbolWrapper = function Symbol() {
|
|
25
25
|
var description = arguments.length < 1 || arguments[0] === undefined ? undefined : toString(arguments[0]);
|
|
26
26
|
var result = isPrototypeOf(SymbolPrototype, this)
|
|
27
|
-
// eslint-disable-next-line
|
|
27
|
+
// eslint-disable-next-line sonarjs/inconsistent-function-call -- ok
|
|
28
28
|
? new NativeSymbol(description)
|
|
29
29
|
// in Edge 13, String(Symbol(undefined)) === 'Symbol(undefined)'
|
|
30
30
|
: description === undefined ? NativeSymbol() : NativeSymbol(description);
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
var ArrayBufferViewCore = require('../internals/array-buffer-view-core');
|
|
3
3
|
var $filter = require('../internals/array-iteration').filter;
|
|
4
|
-
var
|
|
4
|
+
var fromSameTypeAndList = require('../internals/typed-array-from-same-type-and-list');
|
|
5
5
|
|
|
6
6
|
var aTypedArray = ArrayBufferViewCore.aTypedArray;
|
|
7
7
|
var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;
|
|
@@ -10,5 +10,5 @@ var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;
|
|
|
10
10
|
// https://tc39.es/ecma262/#sec-%typedarray%.prototype.filter
|
|
11
11
|
exportTypedArrayMethod('filter', function filter(callbackfn /* , thisArg */) {
|
|
12
12
|
var list = $filter(aTypedArray(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined);
|
|
13
|
-
return
|
|
13
|
+
return fromSameTypeAndList(this, list);
|
|
14
14
|
});
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
var ArrayBufferViewCore = require('../internals/array-buffer-view-core');
|
|
3
3
|
var $map = require('../internals/array-iteration').map;
|
|
4
|
-
var typedArraySpeciesConstructor = require('../internals/typed-array-species-constructor');
|
|
5
4
|
|
|
6
5
|
var aTypedArray = ArrayBufferViewCore.aTypedArray;
|
|
6
|
+
var getTypedArrayConstructor = ArrayBufferViewCore.getTypedArrayConstructor;
|
|
7
7
|
var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;
|
|
8
8
|
|
|
9
9
|
// `%TypedArray%.prototype.map` method
|
|
10
10
|
// https://tc39.es/ecma262/#sec-%typedarray%.prototype.map
|
|
11
11
|
exportTypedArrayMethod('map', function map(mapfn /* , thisArg */) {
|
|
12
12
|
return $map(aTypedArray(this), mapfn, arguments.length > 1 ? arguments[1] : undefined, function (O, length) {
|
|
13
|
-
return new (
|
|
13
|
+
return new (getTypedArrayConstructor(O))(length);
|
|
14
14
|
});
|
|
15
15
|
});
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
var ArrayBufferViewCore = require('../internals/array-buffer-view-core');
|
|
3
|
-
var typedArraySpeciesConstructor = require('../internals/typed-array-species-constructor');
|
|
4
3
|
var fails = require('../internals/fails');
|
|
5
4
|
var arraySlice = require('../internals/array-slice');
|
|
6
5
|
|
|
7
6
|
var aTypedArray = ArrayBufferViewCore.aTypedArray;
|
|
7
|
+
var getTypedArrayConstructor = ArrayBufferViewCore.getTypedArrayConstructor;
|
|
8
8
|
var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;
|
|
9
9
|
|
|
10
10
|
var FORCED = fails(function () {
|
|
@@ -16,7 +16,7 @@ var FORCED = fails(function () {
|
|
|
16
16
|
// https://tc39.es/ecma262/#sec-%typedarray%.prototype.slice
|
|
17
17
|
exportTypedArrayMethod('slice', function slice(start, end) {
|
|
18
18
|
var list = arraySlice(aTypedArray(this), start, end);
|
|
19
|
-
var C =
|
|
19
|
+
var C = getTypedArrayConstructor(this);
|
|
20
20
|
var index = 0;
|
|
21
21
|
var length = list.length;
|
|
22
22
|
var result = new C(length);
|
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
var ArrayBufferViewCore = require('../internals/array-buffer-view-core');
|
|
3
3
|
var toLength = require('../internals/to-length');
|
|
4
4
|
var toAbsoluteIndex = require('../internals/to-absolute-index');
|
|
5
|
-
var typedArraySpeciesConstructor = require('../internals/typed-array-species-constructor');
|
|
6
5
|
|
|
7
6
|
var aTypedArray = ArrayBufferViewCore.aTypedArray;
|
|
7
|
+
var getTypedArrayConstructor = ArrayBufferViewCore.getTypedArrayConstructor;
|
|
8
8
|
var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;
|
|
9
9
|
|
|
10
10
|
// `%TypedArray%.prototype.subarray` method
|
|
@@ -13,7 +13,7 @@ exportTypedArrayMethod('subarray', function subarray(begin, end) {
|
|
|
13
13
|
var O = aTypedArray(this);
|
|
14
14
|
var length = O.length;
|
|
15
15
|
var beginIndex = toAbsoluteIndex(begin, length);
|
|
16
|
-
var C =
|
|
16
|
+
var C = getTypedArrayConstructor(O);
|
|
17
17
|
return new C(
|
|
18
18
|
O.buffer,
|
|
19
19
|
O.byteOffset + beginIndex * O.BYTES_PER_ELEMENT,
|
|
@@ -3,6 +3,7 @@ var $ = require('../internals/export');
|
|
|
3
3
|
var fromAsync = require('../internals/array-from-async');
|
|
4
4
|
var fails = require('../internals/fails');
|
|
5
5
|
|
|
6
|
+
// eslint-disable-next-line es/no-nonstandard-array-properties -- safe
|
|
6
7
|
var nativeFromAsync = Array.fromAsync;
|
|
7
8
|
// https://bugs.webkit.org/show_bug.cgi?id=271703
|
|
8
9
|
var INCORRECT_CONSTRUCTURING = !nativeFromAsync || fails(function () {
|
|
@@ -1,7 +1,22 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
var $ = require('../internals/export');
|
|
3
3
|
var uncurryThis = require('../internals/function-uncurry-this');
|
|
4
|
-
|
|
4
|
+
|
|
5
|
+
var pow = Math.pow;
|
|
6
|
+
|
|
7
|
+
var EXP_MASK16 = 31; // 2 ** 5 - 1
|
|
8
|
+
var SIGNIFICAND_MASK16 = 1023; // 2 ** 10 - 1
|
|
9
|
+
var MIN_SUBNORMAL16 = pow(2, -24); // 2 ** -10 * 2 ** -14
|
|
10
|
+
var SIGNIFICAND_DENOM16 = 0.0009765625; // 2 ** -10
|
|
11
|
+
|
|
12
|
+
var unpackFloat16 = function (bytes) {
|
|
13
|
+
var sign = bytes >>> 15;
|
|
14
|
+
var exponent = bytes >>> 10 & EXP_MASK16;
|
|
15
|
+
var significand = bytes & SIGNIFICAND_MASK16;
|
|
16
|
+
if (exponent === EXP_MASK16) return significand === 0 ? (sign === 0 ? Infinity : -Infinity) : NaN;
|
|
17
|
+
if (exponent === 0) return significand * (sign === 0 ? MIN_SUBNORMAL16 : -MIN_SUBNORMAL16);
|
|
18
|
+
return pow(2, exponent - 15) * (sign === 0 ? 1 + significand * SIGNIFICAND_DENOM16 : -1 - significand * SIGNIFICAND_DENOM16);
|
|
19
|
+
};
|
|
5
20
|
|
|
6
21
|
// eslint-disable-next-line es/no-typed-arrays -- safe
|
|
7
22
|
var getUint16 = uncurryThis(DataView.prototype.getUint16);
|
|
@@ -11,6 +26,6 @@ var getUint16 = uncurryThis(DataView.prototype.getUint16);
|
|
|
11
26
|
$({ target: 'DataView', proto: true }, {
|
|
12
27
|
getFloat16: function getFloat16(byteOffset /* , littleEndian */) {
|
|
13
28
|
var uint16 = getUint16(this, byteOffset, arguments.length > 1 ? arguments[1] : false);
|
|
14
|
-
return
|
|
29
|
+
return unpackFloat16(uint16);
|
|
15
30
|
}
|
|
16
31
|
});
|
|
@@ -3,8 +3,41 @@ var $ = require('../internals/export');
|
|
|
3
3
|
var uncurryThis = require('../internals/function-uncurry-this');
|
|
4
4
|
var aDataView = require('../internals/a-data-view');
|
|
5
5
|
var toIndex = require('../internals/to-index');
|
|
6
|
-
|
|
7
|
-
var
|
|
6
|
+
// TODO: Replace with module dependency in `core-js@4`
|
|
7
|
+
var log2 = require('../internals/math-log2');
|
|
8
|
+
var roundTiesToEven = require('../internals/math-round-ties-to-even');
|
|
9
|
+
|
|
10
|
+
var pow = Math.pow;
|
|
11
|
+
|
|
12
|
+
var MIN_INFINITY16 = 65520; // (2 - 2 ** -11) * 2 ** 15
|
|
13
|
+
var MIN_NORMAL16 = 0.000061005353927612305; // (1 - 2 ** -11) * 2 ** -14
|
|
14
|
+
var REC_MIN_SUBNORMAL16 = 16777216; // 2 ** 10 * 2 ** 14
|
|
15
|
+
var REC_SIGNIFICAND_DENOM16 = 1024; // 2 ** 10;
|
|
16
|
+
|
|
17
|
+
var packFloat16 = function (value) {
|
|
18
|
+
// eslint-disable-next-line no-self-compare -- NaN check
|
|
19
|
+
if (value !== value) return 0x7E00; // NaN
|
|
20
|
+
if (value === 0) return (1 / value === -Infinity) << 15; // +0 or -0
|
|
21
|
+
|
|
22
|
+
var neg = value < 0;
|
|
23
|
+
if (neg) value = -value;
|
|
24
|
+
if (value >= MIN_INFINITY16) return neg << 15 | 0x7C00; // Infinity
|
|
25
|
+
if (value < MIN_NORMAL16) return neg << 15 | roundTiesToEven(value * REC_MIN_SUBNORMAL16); // subnormal
|
|
26
|
+
|
|
27
|
+
// normal
|
|
28
|
+
var exponent = log2(value) | 0;
|
|
29
|
+
if (exponent === -15) {
|
|
30
|
+
// we round from a value between 2 ** -15 * (1 + 1022/1024) (the largest subnormal) and 2 ** -14 * (1 + 0/1024) (the smallest normal)
|
|
31
|
+
// to the latter (former impossible because of the subnormal check above)
|
|
32
|
+
return neg << 15 | REC_SIGNIFICAND_DENOM16;
|
|
33
|
+
}
|
|
34
|
+
var significand = roundTiesToEven((value * pow(2, -exponent) - 1) * REC_SIGNIFICAND_DENOM16);
|
|
35
|
+
if (significand === REC_SIGNIFICAND_DENOM16) {
|
|
36
|
+
// we round from a value between 2 ** n * (1 + 1023/1024) and 2 ** (n + 1) * (1 + 0/1024) to the latter
|
|
37
|
+
return neg << 15 | exponent + 16 << 10;
|
|
38
|
+
}
|
|
39
|
+
return neg << 15 | exponent + 15 << 10 | significand;
|
|
40
|
+
};
|
|
8
41
|
|
|
9
42
|
// eslint-disable-next-line es/no-typed-arrays -- safe
|
|
10
43
|
var setUint16 = uncurryThis(DataView.prototype.setUint16);
|
|
@@ -15,7 +48,7 @@ $({ target: 'DataView', proto: true }, {
|
|
|
15
48
|
setFloat16: function setFloat16(byteOffset, value /* , littleEndian */) {
|
|
16
49
|
aDataView(this);
|
|
17
50
|
var offset = toIndex(byteOffset);
|
|
18
|
-
var bytes =
|
|
19
|
-
return setUint16(this, offset, bytes
|
|
51
|
+
var bytes = packFloat16(+value);
|
|
52
|
+
return setUint16(this, offset, bytes, arguments.length > 2 ? arguments[2] : false);
|
|
20
53
|
}
|
|
21
54
|
});
|