core-js 3.22.3 → 3.22.8
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/actual/typed-array/at.js +1 -1
- package/full/typed-array/at.js +1 -1
- package/internals/a-callable.js +2 -3
- package/internals/a-constructor.js +2 -3
- package/internals/a-possible-prototype.js +3 -4
- package/internals/add-to-unscopables.js +2 -2
- package/internals/an-instance.js +2 -3
- package/internals/an-object.js +3 -4
- package/internals/array-buffer-view-core.js +4 -4
- package/internals/array-buffer.js +3 -3
- package/internals/array-copy-within.js +2 -1
- package/internals/array-from.js +3 -4
- package/internals/array-group-by.js +2 -3
- package/internals/array-reduce.js +2 -3
- package/internals/array-slice-simple.js +2 -3
- package/internals/array-species-constructor.js +3 -4
- package/internals/array-to-spliced.js +2 -4
- package/internals/array-with.js +2 -3
- package/internals/async-from-sync-iterator.js +2 -2
- package/internals/async-iterator-create-proxy.js +2 -2
- package/internals/async-iterator-iteration.js +2 -7
- package/internals/async-iterator-prototype.js +2 -2
- package/internals/classof.js +2 -3
- package/internals/collection-strong.js +3 -3
- package/internals/collection-weak.js +3 -3
- package/internals/collection.js +3 -3
- package/internals/composite-key.js +3 -4
- package/internals/date-to-iso-string.js +2 -3
- package/internals/date-to-primitive.js +2 -3
- package/internals/define-built-in-accessor.js +8 -0
- package/internals/define-built-in.js +20 -0
- package/internals/define-built-ins.js +6 -0
- package/internals/{set-global.js → define-global-property.js} +0 -0
- package/internals/define-iterator.js +4 -4
- package/internals/delete-property-or-throw.js +8 -0
- package/internals/does-not-exceed-safe-integer.js +7 -0
- package/internals/export.js +18 -19
- package/internals/fix-regexp-well-known-symbol-logic.js +3 -3
- package/internals/flatten-into-array.js +2 -4
- package/internals/function-bind.js +3 -4
- package/internals/get-iterator.js +2 -3
- package/internals/ieee754.js +2 -4
- package/internals/indexed-object.js +4 -5
- package/internals/is-iterable.js +2 -3
- package/internals/is-symbol.js +2 -3
- package/internals/iterate.js +2 -3
- package/internals/iterator-create-proxy.js +2 -2
- package/internals/iterators-core.js +2 -2
- package/internals/make-built-in.js +48 -0
- package/internals/map-upsert.js +2 -3
- package/internals/math-expm1.js +2 -1
- package/internals/math-fround.js +3 -2
- package/internals/math-log1p.js +2 -1
- package/internals/math-sign.js +2 -1
- package/internals/math-trunc.js +10 -0
- package/internals/not-a-regexp.js +2 -3
- package/internals/numeric-range-iterator.js +7 -8
- package/internals/object-define-property.js +2 -3
- package/internals/object-get-prototype-of.js +5 -5
- package/internals/ordinary-to-primitive.js +2 -3
- package/internals/regexp-exec-abstract.js +2 -3
- package/internals/require-object-coercible.js +2 -4
- package/internals/shared-store.js +2 -2
- package/internals/shared.js +2 -2
- package/internals/string-punycode-to-ascii.js +3 -4
- package/internals/string-repeat.js +2 -3
- package/internals/symbol-define-to-primitive.js +3 -3
- package/internals/to-big-int.js +12 -0
- package/internals/to-index.js +2 -3
- package/internals/to-integer-or-infinity.js +3 -4
- package/internals/to-object.js +2 -3
- package/internals/to-offset.js +2 -3
- package/internals/to-positive-integer.js +2 -3
- package/internals/to-primitive.js +2 -3
- package/internals/to-string.js +2 -3
- package/internals/try-to-string.js +2 -4
- package/internals/typed-array-constructor.js +3 -3
- package/internals/validate-arguments-length.js +2 -4
- package/modules/es.aggregate-error.cause.js +1 -1
- package/modules/es.aggregate-error.constructor.js +6 -7
- package/modules/es.array-buffer.constructor.js +1 -1
- package/modules/es.array.concat.js +4 -7
- package/modules/es.array.of.js +4 -4
- package/modules/es.array.slice.js +4 -5
- package/modules/es.array.sort.js +2 -1
- package/modules/es.array.splice.js +7 -11
- package/modules/es.data-view.constructor.js +1 -1
- package/modules/es.date.now.js +3 -4
- package/modules/es.date.to-json.js +1 -1
- package/modules/es.date.to-primitive.js +2 -2
- package/modules/es.date.to-string.js +2 -2
- package/modules/es.error.cause.js +2 -2
- package/modules/es.error.to-string.js +2 -2
- package/modules/es.function.has-instance.js +3 -2
- package/modules/es.json.stringify.js +1 -1
- package/modules/es.math.acosh.js +4 -3
- package/modules/es.math.asinh.js +2 -1
- package/modules/es.math.atanh.js +2 -1
- package/modules/es.math.cbrt.js +2 -1
- package/modules/es.math.clz32.js +2 -1
- package/modules/es.math.hypot.js +1 -1
- package/modules/es.math.sinh.js +2 -1
- package/modules/es.math.tanh.js +4 -3
- package/modules/es.math.trunc.js +2 -6
- package/modules/es.number.constructor.js +2 -2
- package/modules/es.number.to-exponential.js +7 -8
- package/modules/es.number.to-fixed.js +5 -6
- package/modules/es.object.assign.js +1 -1
- package/modules/es.object.to-string.js +2 -2
- package/modules/es.promise.catch.js +2 -2
- package/modules/es.promise.constructor.js +17 -21
- package/modules/es.promise.finally.js +2 -2
- package/modules/es.regexp.constructor.js +2 -2
- package/modules/es.regexp.dot-all.js +5 -6
- package/modules/es.regexp.flags.js +2 -2
- package/modules/es.regexp.sticky.js +5 -6
- package/modules/es.regexp.test.js +2 -3
- package/modules/es.regexp.to-string.js +2 -2
- package/modules/es.string.from-code-point.js +3 -4
- package/modules/es.string.match-all.js +4 -5
- package/modules/es.string.replace-all.js +2 -3
- package/modules/es.symbol.constructor.js +5 -5
- package/modules/es.symbol.description.js +1 -1
- package/modules/es.typed-array.fill.js +18 -9
- package/modules/es.weak-map.constructor.js +2 -2
- package/modules/esnext.array.last-index.js +2 -2
- package/modules/esnext.array.last-item.js +2 -2
- package/modules/esnext.array.to-reversed.js +2 -3
- package/modules/esnext.array.to-sorted.js +2 -3
- package/modules/esnext.array.to-spliced.js +3 -4
- package/modules/esnext.array.with.js +2 -3
- package/modules/esnext.async-iterator.constructor.js +1 -1
- package/modules/esnext.async-iterator.reduce.js +2 -3
- package/modules/esnext.composite-key.js +2 -3
- package/modules/esnext.iterator.constructor.js +1 -1
- package/modules/esnext.iterator.flat-map.js +2 -3
- package/modules/esnext.iterator.reduce.js +2 -3
- package/modules/esnext.map.merge.js +1 -1
- package/modules/esnext.map.reduce.js +2 -3
- package/modules/esnext.map.update.js +2 -3
- package/modules/esnext.math.seeded-prng.js +2 -3
- package/modules/esnext.math.signbit.js +3 -1
- package/modules/esnext.number.from-string.js +8 -9
- package/modules/esnext.observable.constructor.js +12 -12
- package/modules/esnext.set.reduce.js +2 -3
- package/modules/esnext.string.cooked.js +2 -3
- package/modules/esnext.typed-array.to-spliced.js +1 -1
- package/modules/esnext.typed-array.with.js +9 -0
- package/modules/web.dom-exception.constructor.js +10 -10
- package/modules/web.dom-exception.stack.js +1 -1
- package/modules/web.queue-microtask.js +1 -1
- package/modules/web.structured-clone.js +21 -9
- package/modules/web.url-search-params.constructor.js +8 -8
- package/modules/web.url.constructor.js +43 -45
- package/package.json +2 -3
- package/internals/redefine-all.js +0 -6
- package/internals/redefine.js +0 -46
|
@@ -4,6 +4,7 @@ var isObject = require('../internals/is-object');
|
|
|
4
4
|
var definePropertyModule = require('../internals/object-define-property');
|
|
5
5
|
var getPrototypeOf = require('../internals/object-get-prototype-of');
|
|
6
6
|
var wellKnownSymbol = require('../internals/well-known-symbol');
|
|
7
|
+
var makeBuiltIn = require('../internals/make-built-in');
|
|
7
8
|
|
|
8
9
|
var HAS_INSTANCE = wellKnownSymbol('hasInstance');
|
|
9
10
|
var FunctionPrototype = Function.prototype;
|
|
@@ -11,12 +12,12 @@ var FunctionPrototype = Function.prototype;
|
|
|
11
12
|
// `Function.prototype[@@hasInstance]` method
|
|
12
13
|
// https://tc39.es/ecma262/#sec-function.prototype-@@hasinstance
|
|
13
14
|
if (!(HAS_INSTANCE in FunctionPrototype)) {
|
|
14
|
-
definePropertyModule.f(FunctionPrototype, HAS_INSTANCE, { value: function (O) {
|
|
15
|
+
definePropertyModule.f(FunctionPrototype, HAS_INSTANCE, { value: makeBuiltIn(function (O) {
|
|
15
16
|
if (!isCallable(this) || !isObject(O)) return false;
|
|
16
17
|
var P = this.prototype;
|
|
17
18
|
if (!isObject(P)) return O instanceof this;
|
|
18
19
|
// for environment w/o native `@@hasInstance` logic enough `instanceof`, but add this:
|
|
19
20
|
while (O = getPrototypeOf(O)) if (P === O) return true;
|
|
20
21
|
return false;
|
|
21
|
-
} });
|
|
22
|
+
}, HAS_INSTANCE) });
|
|
22
23
|
}
|
|
@@ -61,7 +61,7 @@ var fixIllFormed = function (match, offset, string) {
|
|
|
61
61
|
if ($stringify) {
|
|
62
62
|
// `JSON.stringify` method
|
|
63
63
|
// https://tc39.es/ecma262/#sec-json.stringify
|
|
64
|
-
$({ target: 'JSON', stat: true, forced: WRONG_SYMBOLS_CONVERSION || ILL_FORMED_UNICODE }, {
|
|
64
|
+
$({ target: 'JSON', stat: true, arity: 3, forced: WRONG_SYMBOLS_CONVERSION || ILL_FORMED_UNICODE }, {
|
|
65
65
|
// eslint-disable-next-line no-unused-vars -- required for `.length`
|
|
66
66
|
stringify: function stringify(it, replacer, space) {
|
|
67
67
|
var args = arraySlice(arguments);
|
package/modules/es.math.acosh.js
CHANGED
|
@@ -17,8 +17,9 @@ var FORCED = !$acosh
|
|
|
17
17
|
// https://tc39.es/ecma262/#sec-math.acosh
|
|
18
18
|
$({ target: 'Math', stat: true, forced: FORCED }, {
|
|
19
19
|
acosh: function acosh(x) {
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
20
|
+
var n = +x;
|
|
21
|
+
return n < 1 ? NaN : n > 94906265.62425156
|
|
22
|
+
? log(n) + LN2
|
|
23
|
+
: log1p(n - 1 + sqrt(n - 1) * sqrt(n + 1));
|
|
23
24
|
}
|
|
24
25
|
});
|
package/modules/es.math.asinh.js
CHANGED
|
@@ -6,7 +6,8 @@ var log = Math.log;
|
|
|
6
6
|
var sqrt = Math.sqrt;
|
|
7
7
|
|
|
8
8
|
function asinh(x) {
|
|
9
|
-
|
|
9
|
+
var n = +x;
|
|
10
|
+
return !isFinite(n) || n == 0 ? n : n < 0 ? -asinh(-n) : log(n + sqrt(n * n + 1));
|
|
10
11
|
}
|
|
11
12
|
|
|
12
13
|
// `Math.asinh` method
|
package/modules/es.math.atanh.js
CHANGED
|
@@ -9,6 +9,7 @@ var log = Math.log;
|
|
|
9
9
|
// Tor Browser bug: Math.atanh(-0) -> 0
|
|
10
10
|
$({ target: 'Math', stat: true, forced: !($atanh && 1 / $atanh(-0) < 0) }, {
|
|
11
11
|
atanh: function atanh(x) {
|
|
12
|
-
|
|
12
|
+
var n = +x;
|
|
13
|
+
return n == 0 ? n : log((1 + n) / (1 - n)) / 2;
|
|
13
14
|
}
|
|
14
15
|
});
|
package/modules/es.math.cbrt.js
CHANGED
package/modules/es.math.clz32.js
CHANGED
|
@@ -8,6 +8,7 @@ var LOG2E = Math.LOG2E;
|
|
|
8
8
|
// https://tc39.es/ecma262/#sec-math.clz32
|
|
9
9
|
$({ target: 'Math', stat: true }, {
|
|
10
10
|
clz32: function clz32(x) {
|
|
11
|
-
|
|
11
|
+
var n = x >>> 0;
|
|
12
|
+
return n ? 31 - floor(log(n + 0.5) * LOG2E) : 32;
|
|
12
13
|
}
|
|
13
14
|
});
|
package/modules/es.math.hypot.js
CHANGED
|
@@ -11,7 +11,7 @@ var BUGGY = !!$hypot && $hypot(Infinity, NaN) !== Infinity;
|
|
|
11
11
|
|
|
12
12
|
// `Math.hypot` method
|
|
13
13
|
// https://tc39.es/ecma262/#sec-math.hypot
|
|
14
|
-
$({ target: 'Math', stat: true, forced: BUGGY }, {
|
|
14
|
+
$({ target: 'Math', stat: true, arity: 2, forced: BUGGY }, {
|
|
15
15
|
// eslint-disable-next-line no-unused-vars -- required for `.length`
|
|
16
16
|
hypot: function hypot(value1, value2) {
|
|
17
17
|
var sum = 0;
|
package/modules/es.math.sinh.js
CHANGED
|
@@ -16,6 +16,7 @@ var FORCED = fails(function () {
|
|
|
16
16
|
// V8 near Chromium 38 has a problem with very small numbers
|
|
17
17
|
$({ target: 'Math', stat: true, forced: FORCED }, {
|
|
18
18
|
sinh: function sinh(x) {
|
|
19
|
-
|
|
19
|
+
var n = +x;
|
|
20
|
+
return abs(n) < 1 ? (expm1(n) - expm1(-n)) / 2 : (exp(n - 1) - exp(-n - 1)) * (E / 2);
|
|
20
21
|
}
|
|
21
22
|
});
|
package/modules/es.math.tanh.js
CHANGED
|
@@ -7,8 +7,9 @@ var exp = Math.exp;
|
|
|
7
7
|
// https://tc39.es/ecma262/#sec-math.tanh
|
|
8
8
|
$({ target: 'Math', stat: true }, {
|
|
9
9
|
tanh: function tanh(x) {
|
|
10
|
-
var
|
|
11
|
-
var
|
|
12
|
-
|
|
10
|
+
var n = +x;
|
|
11
|
+
var a = expm1(n);
|
|
12
|
+
var b = expm1(-n);
|
|
13
|
+
return a == Infinity ? 1 : b == Infinity ? -1 : (a - b) / (exp(n) + exp(-n));
|
|
13
14
|
}
|
|
14
15
|
});
|
package/modules/es.math.trunc.js
CHANGED
|
@@ -1,12 +1,8 @@
|
|
|
1
1
|
var $ = require('../internals/export');
|
|
2
|
-
|
|
3
|
-
var ceil = Math.ceil;
|
|
4
|
-
var floor = Math.floor;
|
|
2
|
+
var trunc = require('../internals/math-trunc');
|
|
5
3
|
|
|
6
4
|
// `Math.trunc` method
|
|
7
5
|
// https://tc39.es/ecma262/#sec-math.trunc
|
|
8
6
|
$({ target: 'Math', stat: true }, {
|
|
9
|
-
trunc:
|
|
10
|
-
return (it > 0 ? floor : ceil)(it);
|
|
11
|
-
}
|
|
7
|
+
trunc: trunc
|
|
12
8
|
});
|
|
@@ -3,7 +3,7 @@ var DESCRIPTORS = require('../internals/descriptors');
|
|
|
3
3
|
var global = require('../internals/global');
|
|
4
4
|
var uncurryThis = require('../internals/function-uncurry-this');
|
|
5
5
|
var isForced = require('../internals/is-forced');
|
|
6
|
-
var
|
|
6
|
+
var defineBuiltIn = require('../internals/define-built-in');
|
|
7
7
|
var hasOwn = require('../internals/has-own-property');
|
|
8
8
|
var inheritIfRequired = require('../internals/inherit-if-required');
|
|
9
9
|
var isPrototypeOf = require('../internals/object-is-prototype-of');
|
|
@@ -84,5 +84,5 @@ if (isForced(NUMBER, !NativeNumber(' 0o1') || !NativeNumber('0b1') || NativeNumb
|
|
|
84
84
|
}
|
|
85
85
|
NumberWrapper.prototype = NumberPrototype;
|
|
86
86
|
NumberPrototype.constructor = NumberWrapper;
|
|
87
|
-
|
|
87
|
+
defineBuiltIn(global, NUMBER, NumberWrapper, { constructor: true });
|
|
88
88
|
}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
var $ = require('../internals/export');
|
|
3
|
-
var global = require('../internals/global');
|
|
4
3
|
var uncurryThis = require('../internals/function-uncurry-this');
|
|
5
4
|
var toIntegerOrInfinity = require('../internals/to-integer-or-infinity');
|
|
6
5
|
var thisNumberValue = require('../internals/this-number-value');
|
|
@@ -8,9 +7,9 @@ var $repeat = require('../internals/string-repeat');
|
|
|
8
7
|
var log10 = require('../internals/math-log10');
|
|
9
8
|
var fails = require('../internals/fails');
|
|
10
9
|
|
|
11
|
-
var RangeError =
|
|
12
|
-
var String =
|
|
13
|
-
var isFinite =
|
|
10
|
+
var $RangeError = RangeError;
|
|
11
|
+
var $String = String;
|
|
12
|
+
var $isFinite = isFinite;
|
|
14
13
|
var abs = Math.abs;
|
|
15
14
|
var floor = Math.floor;
|
|
16
15
|
var pow = Math.pow;
|
|
@@ -51,9 +50,9 @@ $({ target: 'Number', proto: true, forced: FORCED }, {
|
|
|
51
50
|
var x = thisNumberValue(this);
|
|
52
51
|
if (fractionDigits === undefined) return un$ToExponential(x);
|
|
53
52
|
var f = toIntegerOrInfinity(fractionDigits);
|
|
54
|
-
if (
|
|
53
|
+
if (!$isFinite(x)) return String(x);
|
|
55
54
|
// TODO: ES2018 increased the maximum number of fraction digits to 100, need to improve the implementation
|
|
56
|
-
if (f < 0 || f > 20) throw RangeError('Incorrect fraction digits');
|
|
55
|
+
if (f < 0 || f > 20) throw $RangeError('Incorrect fraction digits');
|
|
57
56
|
if (ROUNDS_PROPERLY) return un$ToExponential(x, f);
|
|
58
57
|
var s = '';
|
|
59
58
|
var m = '';
|
|
@@ -82,7 +81,7 @@ $({ target: 'Number', proto: true, forced: FORCED }, {
|
|
|
82
81
|
n /= 10;
|
|
83
82
|
e += 1;
|
|
84
83
|
}
|
|
85
|
-
m = String(n);
|
|
84
|
+
m = $String(n);
|
|
86
85
|
}
|
|
87
86
|
if (f !== 0) {
|
|
88
87
|
m = stringSlice(m, 0, 1) + '.' + stringSlice(m, 1);
|
|
@@ -92,7 +91,7 @@ $({ target: 'Number', proto: true, forced: FORCED }, {
|
|
|
92
91
|
d = '0';
|
|
93
92
|
} else {
|
|
94
93
|
c = e > 0 ? '+' : '-';
|
|
95
|
-
d = String(abs(e));
|
|
94
|
+
d = $String(abs(e));
|
|
96
95
|
}
|
|
97
96
|
m += 'e' + c + d;
|
|
98
97
|
return s + m;
|
|
@@ -1,14 +1,13 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
var $ = require('../internals/export');
|
|
3
|
-
var global = require('../internals/global');
|
|
4
3
|
var uncurryThis = require('../internals/function-uncurry-this');
|
|
5
4
|
var toIntegerOrInfinity = require('../internals/to-integer-or-infinity');
|
|
6
5
|
var thisNumberValue = require('../internals/this-number-value');
|
|
7
6
|
var $repeat = require('../internals/string-repeat');
|
|
8
7
|
var fails = require('../internals/fails');
|
|
9
8
|
|
|
10
|
-
var RangeError =
|
|
11
|
-
var String =
|
|
9
|
+
var $RangeError = RangeError;
|
|
10
|
+
var $String = String;
|
|
12
11
|
var floor = Math.floor;
|
|
13
12
|
var repeat = uncurryThis($repeat);
|
|
14
13
|
var stringSlice = uncurryThis(''.slice);
|
|
@@ -56,7 +55,7 @@ var dataToString = function (data) {
|
|
|
56
55
|
var s = '';
|
|
57
56
|
while (--index >= 0) {
|
|
58
57
|
if (s !== '' || index === 0 || data[index] !== 0) {
|
|
59
|
-
var t = String(data[index]);
|
|
58
|
+
var t = $String(data[index]);
|
|
60
59
|
s = s === '' ? t : s + repeat('0', 7 - t.length) + t;
|
|
61
60
|
}
|
|
62
61
|
} return s;
|
|
@@ -84,10 +83,10 @@ $({ target: 'Number', proto: true, forced: FORCED }, {
|
|
|
84
83
|
var e, z, j, k;
|
|
85
84
|
|
|
86
85
|
// TODO: ES2018 increased the maximum number of fraction digits to 100, need to improve the implementation
|
|
87
|
-
if (fractDigits < 0 || fractDigits > 20) throw RangeError('Incorrect fraction digits');
|
|
86
|
+
if (fractDigits < 0 || fractDigits > 20) throw $RangeError('Incorrect fraction digits');
|
|
88
87
|
// eslint-disable-next-line no-self-compare -- NaN check
|
|
89
88
|
if (number != number) return 'NaN';
|
|
90
|
-
if (number <= -1e21 || number >= 1e21) return String(number);
|
|
89
|
+
if (number <= -1e21 || number >= 1e21) return $String(number);
|
|
91
90
|
if (number < 0) {
|
|
92
91
|
sign = '-';
|
|
93
92
|
number = -number;
|
|
@@ -4,6 +4,6 @@ var assign = require('../internals/object-assign');
|
|
|
4
4
|
// `Object.assign` method
|
|
5
5
|
// https://tc39.es/ecma262/#sec-object.assign
|
|
6
6
|
// eslint-disable-next-line es-x/no-object-assign -- required for testing
|
|
7
|
-
$({ target: 'Object', stat: true, forced: Object.assign !== assign }, {
|
|
7
|
+
$({ target: 'Object', stat: true, arity: 2, forced: Object.assign !== assign }, {
|
|
8
8
|
assign: assign
|
|
9
9
|
});
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
var TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');
|
|
2
|
-
var
|
|
2
|
+
var defineBuiltIn = require('../internals/define-built-in');
|
|
3
3
|
var toString = require('../internals/object-to-string');
|
|
4
4
|
|
|
5
5
|
// `Object.prototype.toString` method
|
|
6
6
|
// https://tc39.es/ecma262/#sec-object.prototype.tostring
|
|
7
7
|
if (!TO_STRING_TAG_SUPPORT) {
|
|
8
|
-
|
|
8
|
+
defineBuiltIn(Object.prototype, 'toString', toString, { unsafe: true });
|
|
9
9
|
}
|
|
@@ -5,7 +5,7 @@ var FORCED_PROMISE_CONSTRUCTOR = require('../internals/promise-constructor-detec
|
|
|
5
5
|
var NativePromiseConstructor = require('../internals/promise-native-constructor');
|
|
6
6
|
var getBuiltIn = require('../internals/get-built-in');
|
|
7
7
|
var isCallable = require('../internals/is-callable');
|
|
8
|
-
var
|
|
8
|
+
var defineBuiltIn = require('../internals/define-built-in');
|
|
9
9
|
|
|
10
10
|
var NativePromisePrototype = NativePromiseConstructor && NativePromiseConstructor.prototype;
|
|
11
11
|
|
|
@@ -21,6 +21,6 @@ $({ target: 'Promise', proto: true, forced: FORCED_PROMISE_CONSTRUCTOR, real: tr
|
|
|
21
21
|
if (!IS_PURE && isCallable(NativePromiseConstructor)) {
|
|
22
22
|
var method = getBuiltIn('Promise').prototype['catch'];
|
|
23
23
|
if (NativePromisePrototype['catch'] !== method) {
|
|
24
|
-
|
|
24
|
+
defineBuiltIn(NativePromisePrototype, 'catch', method, { unsafe: true });
|
|
25
25
|
}
|
|
26
26
|
}
|
|
@@ -4,8 +4,7 @@ var IS_PURE = require('../internals/is-pure');
|
|
|
4
4
|
var IS_NODE = require('../internals/engine-is-node');
|
|
5
5
|
var global = require('../internals/global');
|
|
6
6
|
var call = require('../internals/function-call');
|
|
7
|
-
var
|
|
8
|
-
var redefineAll = require('../internals/redefine-all');
|
|
7
|
+
var defineBuiltIn = require('../internals/define-built-in');
|
|
9
8
|
var setPrototypeOf = require('../internals/object-set-prototype-of');
|
|
10
9
|
var setToStringTag = require('../internals/set-to-string-tag');
|
|
11
10
|
var setSpecies = require('../internals/set-species');
|
|
@@ -225,23 +224,20 @@ if (FORCED_PROMISE_CONSTRUCTOR) {
|
|
|
225
224
|
});
|
|
226
225
|
};
|
|
227
226
|
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
});
|
|
243
|
-
return reaction.promise;
|
|
244
|
-
}
|
|
227
|
+
// `Promise.prototype.then` method
|
|
228
|
+
// https://tc39.es/ecma262/#sec-promise.prototype.then
|
|
229
|
+
Internal.prototype = defineBuiltIn(PromisePrototype, 'then', function then(onFulfilled, onRejected) {
|
|
230
|
+
var state = getInternalPromiseState(this);
|
|
231
|
+
var reaction = newPromiseCapability(speciesConstructor(this, PromiseConstructor));
|
|
232
|
+
state.parent = true;
|
|
233
|
+
reaction.ok = isCallable(onFulfilled) ? onFulfilled : true;
|
|
234
|
+
reaction.fail = isCallable(onRejected) && onRejected;
|
|
235
|
+
reaction.domain = IS_NODE ? process.domain : undefined;
|
|
236
|
+
if (state.state == PENDING) state.reactions.add(reaction);
|
|
237
|
+
else microtask(function () {
|
|
238
|
+
callReaction(reaction, state);
|
|
239
|
+
});
|
|
240
|
+
return reaction.promise;
|
|
245
241
|
});
|
|
246
242
|
|
|
247
243
|
OwnPromiseCapability = function () {
|
|
@@ -263,7 +259,7 @@ if (FORCED_PROMISE_CONSTRUCTOR) {
|
|
|
263
259
|
|
|
264
260
|
if (!NATIVE_PROMISE_SUBCLASSING) {
|
|
265
261
|
// make `Promise#then` return a polyfilled `Promise` for native promise-based APIs
|
|
266
|
-
|
|
262
|
+
defineBuiltIn(NativePromisePrototype, 'then', function then(onFulfilled, onRejected) {
|
|
267
263
|
var that = this;
|
|
268
264
|
return new PromiseConstructor(function (resolve, reject) {
|
|
269
265
|
call(nativeThen, that, resolve, reject);
|
|
@@ -284,7 +280,7 @@ if (FORCED_PROMISE_CONSTRUCTOR) {
|
|
|
284
280
|
}
|
|
285
281
|
}
|
|
286
282
|
|
|
287
|
-
$({ global: true, wrap: true, forced: FORCED_PROMISE_CONSTRUCTOR }, {
|
|
283
|
+
$({ global: true, constructor: true, wrap: true, forced: FORCED_PROMISE_CONSTRUCTOR }, {
|
|
288
284
|
Promise: PromiseConstructor
|
|
289
285
|
});
|
|
290
286
|
|
|
@@ -7,7 +7,7 @@ var getBuiltIn = require('../internals/get-built-in');
|
|
|
7
7
|
var isCallable = require('../internals/is-callable');
|
|
8
8
|
var speciesConstructor = require('../internals/species-constructor');
|
|
9
9
|
var promiseResolve = require('../internals/promise-resolve');
|
|
10
|
-
var
|
|
10
|
+
var defineBuiltIn = require('../internals/define-built-in');
|
|
11
11
|
|
|
12
12
|
var NativePromisePrototype = NativePromiseConstructor && NativePromiseConstructor.prototype;
|
|
13
13
|
|
|
@@ -38,6 +38,6 @@ $({ target: 'Promise', proto: true, real: true, forced: NON_GENERIC }, {
|
|
|
38
38
|
if (!IS_PURE && isCallable(NativePromiseConstructor)) {
|
|
39
39
|
var method = getBuiltIn('Promise').prototype['finally'];
|
|
40
40
|
if (NativePromisePrototype['finally'] !== method) {
|
|
41
|
-
|
|
41
|
+
defineBuiltIn(NativePromisePrototype, 'finally', method, { unsafe: true });
|
|
42
42
|
}
|
|
43
43
|
}
|
|
@@ -11,7 +11,7 @@ var toString = require('../internals/to-string');
|
|
|
11
11
|
var getRegExpFlags = require('../internals/regexp-get-flags');
|
|
12
12
|
var stickyHelpers = require('../internals/regexp-sticky-helpers');
|
|
13
13
|
var proxyAccessor = require('../internals/proxy-accessor');
|
|
14
|
-
var
|
|
14
|
+
var defineBuiltIn = require('../internals/define-built-in');
|
|
15
15
|
var fails = require('../internals/fails');
|
|
16
16
|
var hasOwn = require('../internals/has-own-property');
|
|
17
17
|
var enforceInternalState = require('../internals/internal-state').enforce;
|
|
@@ -183,7 +183,7 @@ if (isForced('RegExp', BASE_FORCED)) {
|
|
|
183
183
|
|
|
184
184
|
RegExpPrototype.constructor = RegExpWrapper;
|
|
185
185
|
RegExpWrapper.prototype = RegExpPrototype;
|
|
186
|
-
|
|
186
|
+
defineBuiltIn(global, 'RegExp', RegExpWrapper, { constructor: true });
|
|
187
187
|
}
|
|
188
188
|
|
|
189
189
|
// https://tc39.es/ecma262/#sec-get-regexp-@@species
|
|
@@ -1,26 +1,25 @@
|
|
|
1
|
-
var global = require('../internals/global');
|
|
2
1
|
var DESCRIPTORS = require('../internals/descriptors');
|
|
3
2
|
var UNSUPPORTED_DOT_ALL = require('../internals/regexp-unsupported-dot-all');
|
|
4
3
|
var classof = require('../internals/classof-raw');
|
|
5
|
-
var
|
|
4
|
+
var defineBuiltInAccessor = require('../internals/define-built-in-accessor');
|
|
6
5
|
var getInternalState = require('../internals/internal-state').get;
|
|
7
6
|
|
|
8
7
|
var RegExpPrototype = RegExp.prototype;
|
|
9
|
-
var TypeError =
|
|
8
|
+
var $TypeError = TypeError;
|
|
10
9
|
|
|
11
10
|
// `RegExp.prototype.dotAll` getter
|
|
12
11
|
// https://tc39.es/ecma262/#sec-get-regexp.prototype.dotall
|
|
13
12
|
if (DESCRIPTORS && UNSUPPORTED_DOT_ALL) {
|
|
14
|
-
|
|
13
|
+
defineBuiltInAccessor(RegExpPrototype, 'dotAll', {
|
|
15
14
|
configurable: true,
|
|
16
|
-
get: function () {
|
|
15
|
+
get: function dotAll() {
|
|
17
16
|
if (this === RegExpPrototype) return undefined;
|
|
18
17
|
// We can't use InternalStateModule.getterFor because
|
|
19
18
|
// we don't add metadata for regexps created by a literal.
|
|
20
19
|
if (classof(this) === 'RegExp') {
|
|
21
20
|
return !!getInternalState(this).dotAll;
|
|
22
21
|
}
|
|
23
|
-
throw TypeError('Incompatible receiver, RegExp required');
|
|
22
|
+
throw $TypeError('Incompatible receiver, RegExp required');
|
|
24
23
|
}
|
|
25
24
|
});
|
|
26
25
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
var DESCRIPTORS = require('../internals/descriptors');
|
|
2
|
-
var
|
|
2
|
+
var defineBuiltInAccessor = require('../internals/define-built-in-accessor');
|
|
3
3
|
var regExpFlags = require('../internals/regexp-flags');
|
|
4
4
|
var fails = require('../internals/fails');
|
|
5
5
|
|
|
@@ -12,7 +12,7 @@ var FORCED = DESCRIPTORS && fails(function () {
|
|
|
12
12
|
|
|
13
13
|
// `RegExp.prototype.flags` getter
|
|
14
14
|
// https://tc39.es/ecma262/#sec-get-regexp.prototype.flags
|
|
15
|
-
if (FORCED)
|
|
15
|
+
if (FORCED) defineBuiltInAccessor(RegExpPrototype, 'flags', {
|
|
16
16
|
configurable: true,
|
|
17
17
|
get: regExpFlags
|
|
18
18
|
});
|
|
@@ -1,26 +1,25 @@
|
|
|
1
|
-
var global = require('../internals/global');
|
|
2
1
|
var DESCRIPTORS = require('../internals/descriptors');
|
|
3
2
|
var MISSED_STICKY = require('../internals/regexp-sticky-helpers').MISSED_STICKY;
|
|
4
3
|
var classof = require('../internals/classof-raw');
|
|
5
|
-
var
|
|
4
|
+
var defineBuiltInAccessor = require('../internals/define-built-in-accessor');
|
|
6
5
|
var getInternalState = require('../internals/internal-state').get;
|
|
7
6
|
|
|
8
7
|
var RegExpPrototype = RegExp.prototype;
|
|
9
|
-
var TypeError =
|
|
8
|
+
var $TypeError = TypeError;
|
|
10
9
|
|
|
11
10
|
// `RegExp.prototype.sticky` getter
|
|
12
11
|
// https://tc39.es/ecma262/#sec-get-regexp.prototype.sticky
|
|
13
12
|
if (DESCRIPTORS && MISSED_STICKY) {
|
|
14
|
-
|
|
13
|
+
defineBuiltInAccessor(RegExpPrototype, 'sticky', {
|
|
15
14
|
configurable: true,
|
|
16
|
-
get: function () {
|
|
15
|
+
get: function sticky() {
|
|
17
16
|
if (this === RegExpPrototype) return undefined;
|
|
18
17
|
// We can't use InternalStateModule.getterFor because
|
|
19
18
|
// we don't add metadata for regexps created by a literal.
|
|
20
19
|
if (classof(this) === 'RegExp') {
|
|
21
20
|
return !!getInternalState(this).sticky;
|
|
22
21
|
}
|
|
23
|
-
throw TypeError('Incompatible receiver, RegExp required');
|
|
22
|
+
throw $TypeError('Incompatible receiver, RegExp required');
|
|
24
23
|
}
|
|
25
24
|
});
|
|
26
25
|
}
|
|
@@ -2,7 +2,6 @@
|
|
|
2
2
|
// TODO: Remove from `core-js@4` since it's moved to entry points
|
|
3
3
|
require('../modules/es.regexp.exec');
|
|
4
4
|
var $ = require('../internals/export');
|
|
5
|
-
var global = require('../internals/global');
|
|
6
5
|
var call = require('../internals/function-call');
|
|
7
6
|
var uncurryThis = require('../internals/function-uncurry-this');
|
|
8
7
|
var isCallable = require('../internals/is-callable');
|
|
@@ -18,7 +17,7 @@ var DELEGATES_TO_EXEC = function () {
|
|
|
18
17
|
return re.test('abc') === true && execCalled;
|
|
19
18
|
}();
|
|
20
19
|
|
|
21
|
-
var
|
|
20
|
+
var $TypeError = TypeError;
|
|
22
21
|
var un$Test = uncurryThis(/./.test);
|
|
23
22
|
|
|
24
23
|
// `RegExp.prototype.test` method
|
|
@@ -29,7 +28,7 @@ $({ target: 'RegExp', proto: true, forced: !DELEGATES_TO_EXEC }, {
|
|
|
29
28
|
if (!isCallable(exec)) return un$Test(this, str);
|
|
30
29
|
var result = call(exec, this, str);
|
|
31
30
|
if (result !== null && !isObject(result)) {
|
|
32
|
-
throw new
|
|
31
|
+
throw new $TypeError('RegExp exec method returned something other than an Object or null');
|
|
33
32
|
}
|
|
34
33
|
return !!result;
|
|
35
34
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
var PROPER_FUNCTION_NAME = require('../internals/function-name').PROPER;
|
|
3
|
-
var
|
|
3
|
+
var defineBuiltIn = require('../internals/define-built-in');
|
|
4
4
|
var anObject = require('../internals/an-object');
|
|
5
5
|
var $toString = require('../internals/to-string');
|
|
6
6
|
var fails = require('../internals/fails');
|
|
@@ -17,7 +17,7 @@ var INCORRECT_NAME = PROPER_FUNCTION_NAME && n$ToString.name != TO_STRING;
|
|
|
17
17
|
// `RegExp.prototype.toString` method
|
|
18
18
|
// https://tc39.es/ecma262/#sec-regexp.prototype.tostring
|
|
19
19
|
if (NOT_GENERIC || INCORRECT_NAME) {
|
|
20
|
-
|
|
20
|
+
defineBuiltIn(RegExp.prototype, TO_STRING, function toString() {
|
|
21
21
|
var R = anObject(this);
|
|
22
22
|
var pattern = $toString(R.source);
|
|
23
23
|
var flags = $toString(getRegExpFlags(R));
|
|
@@ -1,9 +1,8 @@
|
|
|
1
1
|
var $ = require('../internals/export');
|
|
2
|
-
var global = require('../internals/global');
|
|
3
2
|
var uncurryThis = require('../internals/function-uncurry-this');
|
|
4
3
|
var toAbsoluteIndex = require('../internals/to-absolute-index');
|
|
5
4
|
|
|
6
|
-
var RangeError =
|
|
5
|
+
var $RangeError = RangeError;
|
|
7
6
|
var fromCharCode = String.fromCharCode;
|
|
8
7
|
// eslint-disable-next-line es-x/no-string-fromcodepoint -- required for testing
|
|
9
8
|
var $fromCodePoint = String.fromCodePoint;
|
|
@@ -14,7 +13,7 @@ var INCORRECT_LENGTH = !!$fromCodePoint && $fromCodePoint.length != 1;
|
|
|
14
13
|
|
|
15
14
|
// `String.fromCodePoint` method
|
|
16
15
|
// https://tc39.es/ecma262/#sec-string.fromcodepoint
|
|
17
|
-
$({ target: 'String', stat: true, forced: INCORRECT_LENGTH }, {
|
|
16
|
+
$({ target: 'String', stat: true, arity: 1, forced: INCORRECT_LENGTH }, {
|
|
18
17
|
// eslint-disable-next-line no-unused-vars -- required for `.length`
|
|
19
18
|
fromCodePoint: function fromCodePoint(x) {
|
|
20
19
|
var elements = [];
|
|
@@ -23,7 +22,7 @@ $({ target: 'String', stat: true, forced: INCORRECT_LENGTH }, {
|
|
|
23
22
|
var code;
|
|
24
23
|
while (length > i) {
|
|
25
24
|
code = +arguments[i++];
|
|
26
|
-
if (toAbsoluteIndex(code, 0x10FFFF) !== code) throw RangeError(code + ' is not a valid code point');
|
|
25
|
+
if (toAbsoluteIndex(code, 0x10FFFF) !== code) throw $RangeError(code + ' is not a valid code point');
|
|
27
26
|
elements[i] = code < 0x10000
|
|
28
27
|
? fromCharCode(code)
|
|
29
28
|
: fromCharCode(((code -= 0x10000) >> 10) + 0xD800, code % 0x400 + 0xDC00);
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
/* eslint-disable es-x/no-string-prototype-matchall -- safe */
|
|
3
3
|
var $ = require('../internals/export');
|
|
4
|
-
var global = require('../internals/global');
|
|
5
4
|
var call = require('../internals/function-call');
|
|
6
5
|
var uncurryThis = require('../internals/function-uncurry-this');
|
|
7
6
|
var createIteratorConstructor = require('../internals/create-iterator-constructor');
|
|
@@ -13,7 +12,7 @@ var classof = require('../internals/classof-raw');
|
|
|
13
12
|
var isRegExp = require('../internals/is-regexp');
|
|
14
13
|
var getRegExpFlags = require('../internals/regexp-get-flags');
|
|
15
14
|
var getMethod = require('../internals/get-method');
|
|
16
|
-
var
|
|
15
|
+
var defineBuiltIn = require('../internals/define-built-in');
|
|
17
16
|
var fails = require('../internals/fails');
|
|
18
17
|
var wellKnownSymbol = require('../internals/well-known-symbol');
|
|
19
18
|
var speciesConstructor = require('../internals/species-constructor');
|
|
@@ -28,7 +27,7 @@ var REGEXP_STRING_ITERATOR = REGEXP_STRING + ' Iterator';
|
|
|
28
27
|
var setInternalState = InternalStateModule.set;
|
|
29
28
|
var getInternalState = InternalStateModule.getterFor(REGEXP_STRING_ITERATOR);
|
|
30
29
|
var RegExpPrototype = RegExp.prototype;
|
|
31
|
-
var TypeError =
|
|
30
|
+
var $TypeError = TypeError;
|
|
32
31
|
var stringIndexOf = uncurryThis(''.indexOf);
|
|
33
32
|
var un$MatchAll = uncurryThis(''.matchAll);
|
|
34
33
|
|
|
@@ -82,7 +81,7 @@ $({ target: 'String', proto: true, forced: WORKS_WITH_NON_GLOBAL_REGEX }, {
|
|
|
82
81
|
if (regexp != null) {
|
|
83
82
|
if (isRegExp(regexp)) {
|
|
84
83
|
flags = toString(requireObjectCoercible(getRegExpFlags(regexp)));
|
|
85
|
-
if (!~stringIndexOf(flags, 'g')) throw TypeError('`.matchAll` does not allow non-global regexes');
|
|
84
|
+
if (!~stringIndexOf(flags, 'g')) throw $TypeError('`.matchAll` does not allow non-global regexes');
|
|
86
85
|
}
|
|
87
86
|
if (WORKS_WITH_NON_GLOBAL_REGEX) return un$MatchAll(O, regexp);
|
|
88
87
|
matcher = getMethod(regexp, MATCH_ALL);
|
|
@@ -95,4 +94,4 @@ $({ target: 'String', proto: true, forced: WORKS_WITH_NON_GLOBAL_REGEX }, {
|
|
|
95
94
|
}
|
|
96
95
|
});
|
|
97
96
|
|
|
98
|
-
IS_PURE || MATCH_ALL in RegExpPrototype ||
|
|
97
|
+
IS_PURE || MATCH_ALL in RegExpPrototype || defineBuiltIn(RegExpPrototype, MATCH_ALL, $matchAll);
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
var $ = require('../internals/export');
|
|
3
|
-
var global = require('../internals/global');
|
|
4
3
|
var call = require('../internals/function-call');
|
|
5
4
|
var uncurryThis = require('../internals/function-uncurry-this');
|
|
6
5
|
var requireObjectCoercible = require('../internals/require-object-coercible');
|
|
@@ -14,7 +13,7 @@ var wellKnownSymbol = require('../internals/well-known-symbol');
|
|
|
14
13
|
var IS_PURE = require('../internals/is-pure');
|
|
15
14
|
|
|
16
15
|
var REPLACE = wellKnownSymbol('replace');
|
|
17
|
-
var TypeError =
|
|
16
|
+
var $TypeError = TypeError;
|
|
18
17
|
var indexOf = uncurryThis(''.indexOf);
|
|
19
18
|
var replace = uncurryThis(''.replace);
|
|
20
19
|
var stringSlice = uncurryThis(''.slice);
|
|
@@ -39,7 +38,7 @@ $({ target: 'String', proto: true }, {
|
|
|
39
38
|
IS_REG_EXP = isRegExp(searchValue);
|
|
40
39
|
if (IS_REG_EXP) {
|
|
41
40
|
flags = toString(requireObjectCoercible(getRegExpFlags(searchValue)));
|
|
42
|
-
if (!~indexOf(flags, 'g')) throw TypeError('`.replaceAll` does not allow non-global regexes');
|
|
41
|
+
if (!~indexOf(flags, 'g')) throw $TypeError('`.replaceAll` does not allow non-global regexes');
|
|
43
42
|
}
|
|
44
43
|
replacer = getMethod(searchValue, REPLACE);
|
|
45
44
|
if (replacer) {
|