core-js 3.24.0 → 3.25.1
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/README.md +2 -2
- package/actual/object/proto.js +3 -0
- package/es/index.js +1 -0
- package/es/object/index.js +1 -0
- package/es/object/proto.js +1 -0
- package/features/object/proto.js +1 -0
- package/full/index.js +1 -0
- package/full/object/proto.js +3 -0
- package/internals/{array-buffer-native.js → array-buffer-basic-detection.js} +0 -0
- package/internals/array-buffer-view-core.js +1 -1
- package/internals/array-buffer.js +3 -3
- package/internals/array-set-length.js +27 -0
- package/internals/array-unique-by.js +2 -1
- package/internals/async-from-sync-iterator.js +3 -2
- package/internals/async-iterator-create-proxy.js +20 -11
- package/internals/async-iterator-indexed.js +3 -2
- package/internals/collection-from.js +2 -1
- package/internals/collection-strong.js +8 -6
- package/internals/collection-weak.js +3 -2
- package/internals/collection.js +2 -1
- package/internals/create-iter-result-object.js +5 -0
- package/internals/date-to-iso-string.js +7 -6
- package/internals/engine-is-browser.js +6 -1
- package/internals/{clear-error-stack.js → error-stack-clear.js} +0 -0
- package/internals/get-iterator-method.js +2 -1
- package/internals/get-method.js +2 -1
- package/internals/internal-state.js +3 -3
- package/internals/is-iterable.js +2 -0
- package/internals/is-null-or-undefined.js +5 -0
- package/internals/is-object.js +8 -1
- package/internals/{create-iterator-constructor.js → iterator-create-constructor.js} +0 -0
- package/internals/iterator-create-proxy.js +9 -5
- package/internals/{define-iterator.js → iterator-define.js} +1 -1
- package/internals/iterators-core.js +2 -1
- package/internals/new-promise-capability.js +3 -1
- package/internals/number-parse-float.js +5 -5
- package/internals/numeric-range-iterator.js +13 -10
- package/internals/object-iterator.js +6 -5
- package/internals/promise-constructor-detection.js +1 -1
- package/internals/require-object-coercible.js +3 -1
- package/internals/shared.js +2 -2
- package/internals/species-constructor.js +2 -1
- package/internals/{native-symbol.js → symbol-constructor-detection.js} +0 -0
- package/internals/{native-symbol-registry.js → symbol-registry-detection.js} +1 -1
- package/internals/typed-array-from.js +7 -2
- package/internals/{native-url.js → url-constructor-detection.js} +0 -0
- package/internals/use-symbol-as-uid.js +1 -1
- package/internals/weak-map-basic-detection.js +6 -0
- package/internals/{define-well-known-symbol.js → well-known-symbol-define.js} +0 -0
- package/internals/well-known-symbol.js +1 -1
- package/internals/wrap-error-constructor-with-cause.js +1 -1
- package/modules/es.aggregate-error.cause.js +1 -0
- package/modules/es.aggregate-error.constructor.js +2 -2
- package/modules/es.array-buffer.slice.js +3 -3
- package/modules/es.array.index-of.js +5 -5
- package/modules/es.array.iterator.js +6 -5
- package/modules/es.array.join.js +2 -2
- package/modules/es.array.push.js +2 -1
- package/modules/es.array.reverse.js +2 -2
- package/modules/es.array.slice.js +2 -2
- package/modules/es.array.sort.js +3 -3
- package/modules/es.array.splice.js +2 -1
- package/modules/es.array.unshift.js +2 -1
- package/modules/es.data-view.constructor.js +1 -1
- package/modules/es.date.now.js +2 -2
- package/modules/es.date.set-year.js +2 -2
- package/modules/es.date.to-string.js +4 -4
- package/modules/es.global-this.js +1 -1
- package/modules/es.json.stringify.js +1 -1
- package/modules/es.number.to-exponential.js +11 -11
- package/modules/es.number.to-fixed.js +6 -6
- package/modules/es.number.to-precision.js +5 -5
- package/modules/es.object.get-own-property-symbols.js +1 -1
- package/modules/es.object.proto.js +29 -0
- package/modules/es.regexp.test.js +12 -12
- package/modules/es.regexp.to-string.js +3 -3
- package/modules/es.string.ends-with.js +3 -3
- package/modules/es.string.iterator.js +4 -3
- package/modules/es.string.match-all.js +16 -11
- package/modules/es.string.match.js +2 -1
- package/modules/es.string.replace-all.js +2 -1
- package/modules/es.string.replace.js +2 -1
- package/modules/es.string.search.js +2 -1
- package/modules/es.string.split.js +3 -2
- package/modules/es.string.starts-with.js +3 -3
- package/modules/es.symbol.async-iterator.js +1 -1
- package/modules/es.symbol.constructor.js +2 -2
- package/modules/es.symbol.description.js +4 -4
- package/modules/es.symbol.for.js +1 -1
- package/modules/es.symbol.has-instance.js +1 -1
- package/modules/es.symbol.is-concat-spreadable.js +1 -1
- package/modules/es.symbol.iterator.js +1 -1
- package/modules/es.symbol.key-for.js +1 -1
- package/modules/es.symbol.match-all.js +1 -1
- package/modules/es.symbol.match.js +1 -1
- package/modules/es.symbol.replace.js +1 -1
- package/modules/es.symbol.search.js +1 -1
- package/modules/es.symbol.species.js +1 -1
- package/modules/es.symbol.split.js +1 -1
- package/modules/es.symbol.to-primitive.js +1 -1
- package/modules/es.symbol.to-string-tag.js +1 -1
- package/modules/es.symbol.unscopables.js +1 -1
- package/modules/es.typed-array.sort.js +7 -7
- package/modules/es.weak-map.constructor.js +1 -1
- package/modules/esnext.array.is-template-object.js +1 -1
- package/modules/esnext.async-iterator.drop.js +3 -2
- package/modules/esnext.async-iterator.filter.js +3 -2
- package/modules/esnext.async-iterator.flat-map.js +3 -2
- package/modules/esnext.async-iterator.map.js +3 -2
- package/modules/esnext.async-iterator.take.js +4 -3
- package/modules/esnext.math.seeded-prng.js +3 -2
- package/modules/esnext.observable.constructor.js +4 -3
- package/modules/esnext.string.code-points.js +4 -3
- package/modules/esnext.symbol.async-dispose.js +1 -1
- package/modules/esnext.symbol.dispose.js +1 -1
- package/modules/esnext.symbol.matcher.js +1 -1
- package/modules/esnext.symbol.metadata-key.js +1 -1
- package/modules/esnext.symbol.metadata.js +1 -1
- package/modules/esnext.symbol.observable.js +1 -1
- package/modules/esnext.symbol.pattern-match.js +1 -1
- package/modules/esnext.symbol.replace-all.js +1 -1
- package/modules/esnext.typed-array.to-spliced.js +7 -2
- package/modules/web.dom-exception.constructor.js +1 -1
- package/modules/web.dom-exception.stack.js +1 -1
- package/modules/web.structured-clone.js +26 -14
- package/modules/web.url-search-params.constructor.js +2 -2
- package/modules/web.url.constructor.js +1 -1
- package/package.json +1 -1
- package/stable/index.js +1 -0
- package/stable/object/proto.js +3 -0
- package/internals/native-weak-map.js +0 -7
|
@@ -4,14 +4,14 @@ var uncurryThis = require('../internals/function-uncurry-this');
|
|
|
4
4
|
var fails = require('../internals/fails');
|
|
5
5
|
var thisNumberValue = require('../internals/this-number-value');
|
|
6
6
|
|
|
7
|
-
var
|
|
7
|
+
var nativeToPrecision = uncurryThis(1.0.toPrecision);
|
|
8
8
|
|
|
9
9
|
var FORCED = fails(function () {
|
|
10
10
|
// IE7-
|
|
11
|
-
return
|
|
11
|
+
return nativeToPrecision(1, undefined) !== '1';
|
|
12
12
|
}) || !fails(function () {
|
|
13
13
|
// V8 ~ Android 4.3-
|
|
14
|
-
|
|
14
|
+
nativeToPrecision({});
|
|
15
15
|
});
|
|
16
16
|
|
|
17
17
|
// `Number.prototype.toPrecision` method
|
|
@@ -19,7 +19,7 @@ var FORCED = fails(function () {
|
|
|
19
19
|
$({ target: 'Number', proto: true, forced: FORCED }, {
|
|
20
20
|
toPrecision: function toPrecision(precision) {
|
|
21
21
|
return precision === undefined
|
|
22
|
-
?
|
|
23
|
-
:
|
|
22
|
+
? nativeToPrecision(thisNumberValue(this))
|
|
23
|
+
: nativeToPrecision(thisNumberValue(this), precision);
|
|
24
24
|
}
|
|
25
25
|
});
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
var $ = require('../internals/export');
|
|
2
|
-
var NATIVE_SYMBOL = require('../internals/
|
|
2
|
+
var NATIVE_SYMBOL = require('../internals/symbol-constructor-detection');
|
|
3
3
|
var fails = require('../internals/fails');
|
|
4
4
|
var getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');
|
|
5
5
|
var toObject = require('../internals/to-object');
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
var DESCRIPTORS = require('../internals/descriptors');
|
|
3
|
+
var defineBuiltInAccessor = require('../internals/define-built-in-accessor');
|
|
4
|
+
var isObject = require('../internals/is-object');
|
|
5
|
+
var toObject = require('../internals/to-object');
|
|
6
|
+
var requireObjectCoercible = require('../internals/require-object-coercible');
|
|
7
|
+
|
|
8
|
+
// eslint-disable-next-line es-x/no-object-getprototypeof -- safe
|
|
9
|
+
var getPrototypeOf = Object.getPrototypeOf;
|
|
10
|
+
// eslint-disable-next-line es-x/no-object-setprototypeof -- safe
|
|
11
|
+
var setPrototypeOf = Object.setPrototypeOf;
|
|
12
|
+
var ObjectPrototype = Object.prototype;
|
|
13
|
+
var PROTO = '__proto__';
|
|
14
|
+
|
|
15
|
+
// `Object.prototype.__proto__` accessor
|
|
16
|
+
// https://tc39.es/ecma262/#sec-object.prototype.__proto__
|
|
17
|
+
if (DESCRIPTORS && getPrototypeOf && setPrototypeOf && !(PROTO in ObjectPrototype)) try {
|
|
18
|
+
defineBuiltInAccessor(ObjectPrototype, PROTO, {
|
|
19
|
+
configurable: true,
|
|
20
|
+
get: function __proto__() {
|
|
21
|
+
return getPrototypeOf(toObject(this));
|
|
22
|
+
},
|
|
23
|
+
set: function __proto__(proto) {
|
|
24
|
+
var O = requireObjectCoercible(this);
|
|
25
|
+
if (!isObject(proto) && proto !== null || !isObject(O)) return;
|
|
26
|
+
setPrototypeOf(O, proto);
|
|
27
|
+
}
|
|
28
|
+
});
|
|
29
|
+
} catch (error) { /* empty */ }
|
|
@@ -3,9 +3,9 @@
|
|
|
3
3
|
require('../modules/es.regexp.exec');
|
|
4
4
|
var $ = require('../internals/export');
|
|
5
5
|
var call = require('../internals/function-call');
|
|
6
|
-
var uncurryThis = require('../internals/function-uncurry-this');
|
|
7
6
|
var isCallable = require('../internals/is-callable');
|
|
8
|
-
var
|
|
7
|
+
var anObject = require('../internals/an-object');
|
|
8
|
+
var toString = require('../internals/to-string');
|
|
9
9
|
|
|
10
10
|
var DELEGATES_TO_EXEC = function () {
|
|
11
11
|
var execCalled = false;
|
|
@@ -17,19 +17,19 @@ var DELEGATES_TO_EXEC = function () {
|
|
|
17
17
|
return re.test('abc') === true && execCalled;
|
|
18
18
|
}();
|
|
19
19
|
|
|
20
|
-
var
|
|
21
|
-
var un$Test = uncurryThis(/./.test);
|
|
20
|
+
var nativeTest = /./.test;
|
|
22
21
|
|
|
23
22
|
// `RegExp.prototype.test` method
|
|
24
23
|
// https://tc39.es/ecma262/#sec-regexp.prototype.test
|
|
25
24
|
$({ target: 'RegExp', proto: true, forced: !DELEGATES_TO_EXEC }, {
|
|
26
|
-
test: function (
|
|
27
|
-
var
|
|
28
|
-
|
|
29
|
-
var
|
|
30
|
-
if (
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
25
|
+
test: function (S) {
|
|
26
|
+
var R = anObject(this);
|
|
27
|
+
var string = toString(S);
|
|
28
|
+
var exec = R.exec;
|
|
29
|
+
if (!isCallable(exec)) return call(nativeTest, R, string);
|
|
30
|
+
var result = call(exec, R, string);
|
|
31
|
+
if (result === null) return false;
|
|
32
|
+
anObject(result);
|
|
33
|
+
return true;
|
|
34
34
|
}
|
|
35
35
|
});
|
|
@@ -8,11 +8,11 @@ var getRegExpFlags = require('../internals/regexp-get-flags');
|
|
|
8
8
|
|
|
9
9
|
var TO_STRING = 'toString';
|
|
10
10
|
var RegExpPrototype = RegExp.prototype;
|
|
11
|
-
var
|
|
11
|
+
var nativeToString = RegExpPrototype[TO_STRING];
|
|
12
12
|
|
|
13
|
-
var NOT_GENERIC = fails(function () { return
|
|
13
|
+
var NOT_GENERIC = fails(function () { return nativeToString.call({ source: 'a', flags: 'b' }) != '/a/b'; });
|
|
14
14
|
// FF44- RegExp#toString has a wrong name
|
|
15
|
-
var INCORRECT_NAME = PROPER_FUNCTION_NAME &&
|
|
15
|
+
var INCORRECT_NAME = PROPER_FUNCTION_NAME && nativeToString.name != TO_STRING;
|
|
16
16
|
|
|
17
17
|
// `RegExp.prototype.toString` method
|
|
18
18
|
// https://tc39.es/ecma262/#sec-regexp.prototype.tostring
|
|
@@ -10,7 +10,7 @@ var correctIsRegExpLogic = require('../internals/correct-is-regexp-logic');
|
|
|
10
10
|
var IS_PURE = require('../internals/is-pure');
|
|
11
11
|
|
|
12
12
|
// eslint-disable-next-line es-x/no-string-prototype-endswith -- safe
|
|
13
|
-
var
|
|
13
|
+
var nativeEndsWith = uncurryThis(''.endsWith);
|
|
14
14
|
var slice = uncurryThis(''.slice);
|
|
15
15
|
var min = Math.min;
|
|
16
16
|
|
|
@@ -31,8 +31,8 @@ $({ target: 'String', proto: true, forced: !MDN_POLYFILL_BUG && !CORRECT_IS_REGE
|
|
|
31
31
|
var len = that.length;
|
|
32
32
|
var end = endPosition === undefined ? len : min(toLength(endPosition), len);
|
|
33
33
|
var search = toString(searchString);
|
|
34
|
-
return
|
|
35
|
-
?
|
|
34
|
+
return nativeEndsWith
|
|
35
|
+
? nativeEndsWith(that, search, end)
|
|
36
36
|
: slice(that, end - search.length, end) === search;
|
|
37
37
|
}
|
|
38
38
|
});
|
|
@@ -2,7 +2,8 @@
|
|
|
2
2
|
var charAt = require('../internals/string-multibyte').charAt;
|
|
3
3
|
var toString = require('../internals/to-string');
|
|
4
4
|
var InternalStateModule = require('../internals/internal-state');
|
|
5
|
-
var defineIterator = require('../internals/define
|
|
5
|
+
var defineIterator = require('../internals/iterator-define');
|
|
6
|
+
var createIterResultObject = require('../internals/create-iter-result-object');
|
|
6
7
|
|
|
7
8
|
var STRING_ITERATOR = 'String Iterator';
|
|
8
9
|
var setInternalState = InternalStateModule.set;
|
|
@@ -23,8 +24,8 @@ defineIterator(String, 'String', function (iterated) {
|
|
|
23
24
|
var string = state.string;
|
|
24
25
|
var index = state.index;
|
|
25
26
|
var point;
|
|
26
|
-
if (index >= string.length) return
|
|
27
|
+
if (index >= string.length) return createIterResultObject(undefined, true);
|
|
27
28
|
point = charAt(string, index);
|
|
28
29
|
state.index += point.length;
|
|
29
|
-
return
|
|
30
|
+
return createIterResultObject(point, false);
|
|
30
31
|
});
|
|
@@ -3,11 +3,13 @@
|
|
|
3
3
|
var $ = require('../internals/export');
|
|
4
4
|
var call = require('../internals/function-call');
|
|
5
5
|
var uncurryThis = require('../internals/function-uncurry-this');
|
|
6
|
-
var createIteratorConstructor = require('../internals/create-
|
|
6
|
+
var createIteratorConstructor = require('../internals/iterator-create-constructor');
|
|
7
|
+
var createIterResultObject = require('../internals/create-iter-result-object');
|
|
7
8
|
var requireObjectCoercible = require('../internals/require-object-coercible');
|
|
8
9
|
var toLength = require('../internals/to-length');
|
|
9
10
|
var toString = require('../internals/to-string');
|
|
10
11
|
var anObject = require('../internals/an-object');
|
|
12
|
+
var isNullOrUndefined = require('../internals/is-null-or-undefined');
|
|
11
13
|
var classof = require('../internals/classof-raw');
|
|
12
14
|
var isRegExp = require('../internals/is-regexp');
|
|
13
15
|
var getRegExpFlags = require('../internals/regexp-get-flags');
|
|
@@ -29,10 +31,10 @@ var getInternalState = InternalStateModule.getterFor(REGEXP_STRING_ITERATOR);
|
|
|
29
31
|
var RegExpPrototype = RegExp.prototype;
|
|
30
32
|
var $TypeError = TypeError;
|
|
31
33
|
var stringIndexOf = uncurryThis(''.indexOf);
|
|
32
|
-
var
|
|
34
|
+
var nativeMatchAll = uncurryThis(''.matchAll);
|
|
33
35
|
|
|
34
|
-
var WORKS_WITH_NON_GLOBAL_REGEX = !!
|
|
35
|
-
|
|
36
|
+
var WORKS_WITH_NON_GLOBAL_REGEX = !!nativeMatchAll && !fails(function () {
|
|
37
|
+
nativeMatchAll('a', /./);
|
|
36
38
|
});
|
|
37
39
|
|
|
38
40
|
var $RegExpStringIterator = createIteratorConstructor(function RegExpStringIterator(regexp, string, $global, fullUnicode) {
|
|
@@ -46,17 +48,20 @@ var $RegExpStringIterator = createIteratorConstructor(function RegExpStringItera
|
|
|
46
48
|
});
|
|
47
49
|
}, REGEXP_STRING, function next() {
|
|
48
50
|
var state = getInternalState(this);
|
|
49
|
-
if (state.done) return
|
|
51
|
+
if (state.done) return createIterResultObject(undefined, true);
|
|
50
52
|
var R = state.regexp;
|
|
51
53
|
var S = state.string;
|
|
52
54
|
var match = regExpExec(R, S);
|
|
53
|
-
if (match === null)
|
|
55
|
+
if (match === null) {
|
|
56
|
+
state.done = true;
|
|
57
|
+
return createIterResultObject(undefined, true);
|
|
58
|
+
}
|
|
54
59
|
if (state.global) {
|
|
55
60
|
if (toString(match[0]) === '') R.lastIndex = advanceStringIndex(S, toLength(R.lastIndex), state.unicode);
|
|
56
|
-
return
|
|
61
|
+
return createIterResultObject(match, false);
|
|
57
62
|
}
|
|
58
63
|
state.done = true;
|
|
59
|
-
return
|
|
64
|
+
return createIterResultObject(match, false);
|
|
60
65
|
});
|
|
61
66
|
|
|
62
67
|
var $matchAll = function (string) {
|
|
@@ -78,16 +83,16 @@ $({ target: 'String', proto: true, forced: WORKS_WITH_NON_GLOBAL_REGEX }, {
|
|
|
78
83
|
matchAll: function matchAll(regexp) {
|
|
79
84
|
var O = requireObjectCoercible(this);
|
|
80
85
|
var flags, S, matcher, rx;
|
|
81
|
-
if (regexp
|
|
86
|
+
if (!isNullOrUndefined(regexp)) {
|
|
82
87
|
if (isRegExp(regexp)) {
|
|
83
88
|
flags = toString(requireObjectCoercible(getRegExpFlags(regexp)));
|
|
84
89
|
if (!~stringIndexOf(flags, 'g')) throw $TypeError('`.matchAll` does not allow non-global regexes');
|
|
85
90
|
}
|
|
86
|
-
if (WORKS_WITH_NON_GLOBAL_REGEX) return
|
|
91
|
+
if (WORKS_WITH_NON_GLOBAL_REGEX) return nativeMatchAll(O, regexp);
|
|
87
92
|
matcher = getMethod(regexp, MATCH_ALL);
|
|
88
93
|
if (matcher === undefined && IS_PURE && classof(regexp) == 'RegExp') matcher = $matchAll;
|
|
89
94
|
if (matcher) return call(matcher, regexp, O);
|
|
90
|
-
} else if (WORKS_WITH_NON_GLOBAL_REGEX) return
|
|
95
|
+
} else if (WORKS_WITH_NON_GLOBAL_REGEX) return nativeMatchAll(O, regexp);
|
|
91
96
|
S = toString(O);
|
|
92
97
|
rx = new RegExp(regexp, 'g');
|
|
93
98
|
return IS_PURE ? call($matchAll, rx, S) : rx[MATCH_ALL](S);
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
var call = require('../internals/function-call');
|
|
3
3
|
var fixRegExpWellKnownSymbolLogic = require('../internals/fix-regexp-well-known-symbol-logic');
|
|
4
4
|
var anObject = require('../internals/an-object');
|
|
5
|
+
var isNullOrUndefined = require('../internals/is-null-or-undefined');
|
|
5
6
|
var toLength = require('../internals/to-length');
|
|
6
7
|
var toString = require('../internals/to-string');
|
|
7
8
|
var requireObjectCoercible = require('../internals/require-object-coercible');
|
|
@@ -16,7 +17,7 @@ fixRegExpWellKnownSymbolLogic('match', function (MATCH, nativeMatch, maybeCallNa
|
|
|
16
17
|
// https://tc39.es/ecma262/#sec-string.prototype.match
|
|
17
18
|
function match(regexp) {
|
|
18
19
|
var O = requireObjectCoercible(this);
|
|
19
|
-
var matcher = regexp
|
|
20
|
+
var matcher = isNullOrUndefined(regexp) ? undefined : getMethod(regexp, MATCH);
|
|
20
21
|
return matcher ? call(matcher, regexp, O) : new RegExp(regexp)[MATCH](toString(O));
|
|
21
22
|
},
|
|
22
23
|
// `RegExp.prototype[@@match]` method
|
|
@@ -4,6 +4,7 @@ var call = require('../internals/function-call');
|
|
|
4
4
|
var uncurryThis = require('../internals/function-uncurry-this');
|
|
5
5
|
var requireObjectCoercible = require('../internals/require-object-coercible');
|
|
6
6
|
var isCallable = require('../internals/is-callable');
|
|
7
|
+
var isNullOrUndefined = require('../internals/is-null-or-undefined');
|
|
7
8
|
var isRegExp = require('../internals/is-regexp');
|
|
8
9
|
var toString = require('../internals/to-string');
|
|
9
10
|
var getMethod = require('../internals/get-method');
|
|
@@ -34,7 +35,7 @@ $({ target: 'String', proto: true }, {
|
|
|
34
35
|
var position = 0;
|
|
35
36
|
var endOfLastMatch = 0;
|
|
36
37
|
var result = '';
|
|
37
|
-
if (searchValue
|
|
38
|
+
if (!isNullOrUndefined(searchValue)) {
|
|
38
39
|
IS_REG_EXP = isRegExp(searchValue);
|
|
39
40
|
if (IS_REG_EXP) {
|
|
40
41
|
flags = toString(requireObjectCoercible(getRegExpFlags(searchValue)));
|
|
@@ -6,6 +6,7 @@ var fixRegExpWellKnownSymbolLogic = require('../internals/fix-regexp-well-known-
|
|
|
6
6
|
var fails = require('../internals/fails');
|
|
7
7
|
var anObject = require('../internals/an-object');
|
|
8
8
|
var isCallable = require('../internals/is-callable');
|
|
9
|
+
var isNullOrUndefined = require('../internals/is-null-or-undefined');
|
|
9
10
|
var toIntegerOrInfinity = require('../internals/to-integer-or-infinity');
|
|
10
11
|
var toLength = require('../internals/to-length');
|
|
11
12
|
var toString = require('../internals/to-string');
|
|
@@ -63,7 +64,7 @@ fixRegExpWellKnownSymbolLogic('replace', function (_, nativeReplace, maybeCallNa
|
|
|
63
64
|
// https://tc39.es/ecma262/#sec-string.prototype.replace
|
|
64
65
|
function replace(searchValue, replaceValue) {
|
|
65
66
|
var O = requireObjectCoercible(this);
|
|
66
|
-
var replacer = searchValue
|
|
67
|
+
var replacer = isNullOrUndefined(searchValue) ? undefined : getMethod(searchValue, REPLACE);
|
|
67
68
|
return replacer
|
|
68
69
|
? call(replacer, searchValue, O, replaceValue)
|
|
69
70
|
: call(nativeReplace, toString(O), searchValue, replaceValue);
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
var call = require('../internals/function-call');
|
|
3
3
|
var fixRegExpWellKnownSymbolLogic = require('../internals/fix-regexp-well-known-symbol-logic');
|
|
4
4
|
var anObject = require('../internals/an-object');
|
|
5
|
+
var isNullOrUndefined = require('../internals/is-null-or-undefined');
|
|
5
6
|
var requireObjectCoercible = require('../internals/require-object-coercible');
|
|
6
7
|
var sameValue = require('../internals/same-value');
|
|
7
8
|
var toString = require('../internals/to-string');
|
|
@@ -15,7 +16,7 @@ fixRegExpWellKnownSymbolLogic('search', function (SEARCH, nativeSearch, maybeCal
|
|
|
15
16
|
// https://tc39.es/ecma262/#sec-string.prototype.search
|
|
16
17
|
function search(regexp) {
|
|
17
18
|
var O = requireObjectCoercible(this);
|
|
18
|
-
var searcher = regexp
|
|
19
|
+
var searcher = isNullOrUndefined(regexp) ? undefined : getMethod(regexp, SEARCH);
|
|
19
20
|
return searcher ? call(searcher, regexp, O) : new RegExp(regexp)[SEARCH](toString(O));
|
|
20
21
|
},
|
|
21
22
|
// `RegExp.prototype[@@search]` method
|
|
@@ -3,8 +3,9 @@ var apply = require('../internals/function-apply');
|
|
|
3
3
|
var call = require('../internals/function-call');
|
|
4
4
|
var uncurryThis = require('../internals/function-uncurry-this');
|
|
5
5
|
var fixRegExpWellKnownSymbolLogic = require('../internals/fix-regexp-well-known-symbol-logic');
|
|
6
|
-
var isRegExp = require('../internals/is-regexp');
|
|
7
6
|
var anObject = require('../internals/an-object');
|
|
7
|
+
var isNullOrUndefined = require('../internals/is-null-or-undefined');
|
|
8
|
+
var isRegExp = require('../internals/is-regexp');
|
|
8
9
|
var requireObjectCoercible = require('../internals/require-object-coercible');
|
|
9
10
|
var speciesConstructor = require('../internals/species-constructor');
|
|
10
11
|
var advanceStringIndex = require('../internals/advance-string-index');
|
|
@@ -96,7 +97,7 @@ fixRegExpWellKnownSymbolLogic('split', function (SPLIT, nativeSplit, maybeCallNa
|
|
|
96
97
|
// https://tc39.es/ecma262/#sec-string.prototype.split
|
|
97
98
|
function split(separator, limit) {
|
|
98
99
|
var O = requireObjectCoercible(this);
|
|
99
|
-
var splitter = separator
|
|
100
|
+
var splitter = isNullOrUndefined(separator) ? undefined : getMethod(separator, SPLIT);
|
|
100
101
|
return splitter
|
|
101
102
|
? call(splitter, separator, O, limit)
|
|
102
103
|
: call(internalSplit, toString(O), separator, limit);
|
|
@@ -10,7 +10,7 @@ var correctIsRegExpLogic = require('../internals/correct-is-regexp-logic');
|
|
|
10
10
|
var IS_PURE = require('../internals/is-pure');
|
|
11
11
|
|
|
12
12
|
// eslint-disable-next-line es-x/no-string-prototype-startswith -- safe
|
|
13
|
-
var
|
|
13
|
+
var nativeStartsWith = uncurryThis(''.startsWith);
|
|
14
14
|
var stringSlice = uncurryThis(''.slice);
|
|
15
15
|
var min = Math.min;
|
|
16
16
|
|
|
@@ -29,8 +29,8 @@ $({ target: 'String', proto: true, forced: !MDN_POLYFILL_BUG && !CORRECT_IS_REGE
|
|
|
29
29
|
notARegExp(searchString);
|
|
30
30
|
var index = toLength(min(arguments.length > 1 ? arguments[1] : undefined, that.length));
|
|
31
31
|
var search = toString(searchString);
|
|
32
|
-
return
|
|
33
|
-
?
|
|
32
|
+
return nativeStartsWith
|
|
33
|
+
? nativeStartsWith(that, search, index)
|
|
34
34
|
: stringSlice(that, index, index + search.length) === search;
|
|
35
35
|
}
|
|
36
36
|
});
|
|
@@ -5,7 +5,7 @@ var call = require('../internals/function-call');
|
|
|
5
5
|
var uncurryThis = require('../internals/function-uncurry-this');
|
|
6
6
|
var IS_PURE = require('../internals/is-pure');
|
|
7
7
|
var DESCRIPTORS = require('../internals/descriptors');
|
|
8
|
-
var NATIVE_SYMBOL = require('../internals/
|
|
8
|
+
var NATIVE_SYMBOL = require('../internals/symbol-constructor-detection');
|
|
9
9
|
var fails = require('../internals/fails');
|
|
10
10
|
var hasOwn = require('../internals/has-own-property');
|
|
11
11
|
var isPrototypeOf = require('../internals/object-is-prototype-of');
|
|
@@ -30,7 +30,7 @@ var hiddenKeys = require('../internals/hidden-keys');
|
|
|
30
30
|
var uid = require('../internals/uid');
|
|
31
31
|
var wellKnownSymbol = require('../internals/well-known-symbol');
|
|
32
32
|
var wrappedWellKnownSymbolModule = require('../internals/well-known-symbol-wrapped');
|
|
33
|
-
var defineWellKnownSymbol = require('../internals/
|
|
33
|
+
var defineWellKnownSymbol = require('../internals/well-known-symbol-define');
|
|
34
34
|
var defineSymbolToPrimitive = require('../internals/symbol-define-to-primitive');
|
|
35
35
|
var setToStringTag = require('../internals/set-to-string-tag');
|
|
36
36
|
var InternalStateModule = require('../internals/internal-state');
|
|
@@ -36,8 +36,8 @@ if (DESCRIPTORS && isCallable(NativeSymbol) && (!('description' in SymbolPrototy
|
|
|
36
36
|
SymbolPrototype.constructor = SymbolWrapper;
|
|
37
37
|
|
|
38
38
|
var NATIVE_SYMBOL = String(NativeSymbol('test')) == 'Symbol(test)';
|
|
39
|
-
var
|
|
40
|
-
var
|
|
39
|
+
var thisSymbolValue = uncurryThis(SymbolPrototype.valueOf);
|
|
40
|
+
var symbolDescriptiveString = uncurryThis(SymbolPrototype.toString);
|
|
41
41
|
var regexp = /^Symbol\((.*)\)[^)]+$/;
|
|
42
42
|
var replace = uncurryThis(''.replace);
|
|
43
43
|
var stringSlice = uncurryThis(''.slice);
|
|
@@ -45,9 +45,9 @@ if (DESCRIPTORS && isCallable(NativeSymbol) && (!('description' in SymbolPrototy
|
|
|
45
45
|
defineProperty(SymbolPrototype, 'description', {
|
|
46
46
|
configurable: true,
|
|
47
47
|
get: function description() {
|
|
48
|
-
var symbol =
|
|
49
|
-
var string = symbolToString(symbol);
|
|
48
|
+
var symbol = thisSymbolValue(this);
|
|
50
49
|
if (hasOwn(EmptyStringDescriptionStore, symbol)) return '';
|
|
50
|
+
var string = symbolDescriptiveString(symbol);
|
|
51
51
|
var desc = NATIVE_SYMBOL ? stringSlice(string, 7, -1) : replace(string, regexp, '$1');
|
|
52
52
|
return desc === '' ? undefined : desc;
|
|
53
53
|
}
|
package/modules/es.symbol.for.js
CHANGED
|
@@ -3,7 +3,7 @@ var getBuiltIn = require('../internals/get-built-in');
|
|
|
3
3
|
var hasOwn = require('../internals/has-own-property');
|
|
4
4
|
var toString = require('../internals/to-string');
|
|
5
5
|
var shared = require('../internals/shared');
|
|
6
|
-
var NATIVE_SYMBOL_REGISTRY = require('../internals/
|
|
6
|
+
var NATIVE_SYMBOL_REGISTRY = require('../internals/symbol-registry-detection');
|
|
7
7
|
|
|
8
8
|
var StringToSymbolRegistry = shared('string-to-symbol-registry');
|
|
9
9
|
var SymbolToStringRegistry = shared('symbol-to-string-registry');
|
|
@@ -3,7 +3,7 @@ var hasOwn = require('../internals/has-own-property');
|
|
|
3
3
|
var isSymbol = require('../internals/is-symbol');
|
|
4
4
|
var tryToString = require('../internals/try-to-string');
|
|
5
5
|
var shared = require('../internals/shared');
|
|
6
|
-
var NATIVE_SYMBOL_REGISTRY = require('../internals/
|
|
6
|
+
var NATIVE_SYMBOL_REGISTRY = require('../internals/symbol-registry-detection');
|
|
7
7
|
|
|
8
8
|
var SymbolToStringRegistry = shared('symbol-to-string-registry');
|
|
9
9
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
var defineWellKnownSymbol = require('../internals/
|
|
1
|
+
var defineWellKnownSymbol = require('../internals/well-known-symbol-define');
|
|
2
2
|
var defineSymbolToPrimitive = require('../internals/symbol-define-to-primitive');
|
|
3
3
|
|
|
4
4
|
// `Symbol.toPrimitive` well-known symbol
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
var getBuiltIn = require('../internals/get-built-in');
|
|
2
|
-
var defineWellKnownSymbol = require('../internals/
|
|
2
|
+
var defineWellKnownSymbol = require('../internals/well-known-symbol-define');
|
|
3
3
|
var setToStringTag = require('../internals/set-to-string-tag');
|
|
4
4
|
|
|
5
5
|
// `Symbol.toStringTag` well-known symbol
|
|
@@ -13,16 +13,16 @@ var WEBKIT = require('../internals/engine-webkit-version');
|
|
|
13
13
|
var aTypedArray = ArrayBufferViewCore.aTypedArray;
|
|
14
14
|
var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;
|
|
15
15
|
var Uint16Array = global.Uint16Array;
|
|
16
|
-
var
|
|
16
|
+
var nativeSort = Uint16Array && uncurryThis(Uint16Array.prototype.sort);
|
|
17
17
|
|
|
18
18
|
// WebKit
|
|
19
|
-
var ACCEPT_INCORRECT_ARGUMENTS = !!
|
|
20
|
-
|
|
19
|
+
var ACCEPT_INCORRECT_ARGUMENTS = !!nativeSort && !(fails(function () {
|
|
20
|
+
nativeSort(new Uint16Array(2), null);
|
|
21
21
|
}) && fails(function () {
|
|
22
|
-
|
|
22
|
+
nativeSort(new Uint16Array(2), {});
|
|
23
23
|
}));
|
|
24
24
|
|
|
25
|
-
var STABLE_SORT = !!
|
|
25
|
+
var STABLE_SORT = !!nativeSort && !fails(function () {
|
|
26
26
|
// feature detection can be too slow, so check engines versions
|
|
27
27
|
if (V8) return V8 < 74;
|
|
28
28
|
if (FF) return FF < 67;
|
|
@@ -39,7 +39,7 @@ var STABLE_SORT = !!un$Sort && !fails(function () {
|
|
|
39
39
|
expected[index] = index - 2 * mod + 3;
|
|
40
40
|
}
|
|
41
41
|
|
|
42
|
-
|
|
42
|
+
nativeSort(array, function (a, b) {
|
|
43
43
|
return (a / 4 | 0) - (b / 4 | 0);
|
|
44
44
|
});
|
|
45
45
|
|
|
@@ -64,7 +64,7 @@ var getSortCompare = function (comparefn) {
|
|
|
64
64
|
// https://tc39.es/ecma262/#sec-%typedarray%.prototype.sort
|
|
65
65
|
exportTypedArrayMethod('sort', function sort(comparefn) {
|
|
66
66
|
if (comparefn !== undefined) aCallable(comparefn);
|
|
67
|
-
if (STABLE_SORT) return
|
|
67
|
+
if (STABLE_SORT) return nativeSort(this, comparefn);
|
|
68
68
|
|
|
69
69
|
return internalSort(aTypedArray(this), getSortCompare(comparefn));
|
|
70
70
|
}, !STABLE_SORT || ACCEPT_INCORRECT_ARGUMENTS);
|
|
@@ -8,7 +8,7 @@ var collectionWeak = require('../internals/collection-weak');
|
|
|
8
8
|
var isObject = require('../internals/is-object');
|
|
9
9
|
var isExtensible = require('../internals/object-is-extensible');
|
|
10
10
|
var enforceInternalState = require('../internals/internal-state').enforce;
|
|
11
|
-
var NATIVE_WEAK_MAP = require('../internals/
|
|
11
|
+
var NATIVE_WEAK_MAP = require('../internals/weak-map-basic-detection');
|
|
12
12
|
|
|
13
13
|
var IS_IE11 = !global.ActiveXObject && 'ActiveXObject' in global;
|
|
14
14
|
var InternalWeakMap;
|
|
@@ -11,7 +11,7 @@ var isFrozenStringArray = function (array, allowUndefined) {
|
|
|
11
11
|
var element;
|
|
12
12
|
while (index < length) {
|
|
13
13
|
element = array[index++];
|
|
14
|
-
if (!(typeof element == 'string' || (allowUndefined &&
|
|
14
|
+
if (!(typeof element == 'string' || (allowUndefined && element === undefined))) {
|
|
15
15
|
return false;
|
|
16
16
|
}
|
|
17
17
|
} return length !== 0;
|
|
@@ -7,6 +7,7 @@ var getIteratorDirect = require('../internals/get-iterator-direct');
|
|
|
7
7
|
var notANaN = require('../internals/not-a-nan');
|
|
8
8
|
var toPositiveInteger = require('../internals/to-positive-integer');
|
|
9
9
|
var createAsyncIteratorProxy = require('../internals/async-iterator-create-proxy');
|
|
10
|
+
var createIterResultObject = require('../internals/create-iter-result-object');
|
|
10
11
|
|
|
11
12
|
var AsyncIteratorProxy = createAsyncIteratorProxy(function (Promise) {
|
|
12
13
|
var state = this;
|
|
@@ -23,11 +24,11 @@ var AsyncIteratorProxy = createAsyncIteratorProxy(function (Promise) {
|
|
|
23
24
|
try {
|
|
24
25
|
if (anObject(step).done) {
|
|
25
26
|
state.done = true;
|
|
26
|
-
resolve(
|
|
27
|
+
resolve(createIterResultObject(undefined, true));
|
|
27
28
|
} else if (state.remaining) {
|
|
28
29
|
state.remaining--;
|
|
29
30
|
loop();
|
|
30
|
-
} else resolve(
|
|
31
|
+
} else resolve(createIterResultObject(step.value, false));
|
|
31
32
|
} catch (err) { doneAndReject(err); }
|
|
32
33
|
}, doneAndReject);
|
|
33
34
|
} catch (error) { doneAndReject(error); }
|
|
@@ -6,6 +6,7 @@ var aCallable = require('../internals/a-callable');
|
|
|
6
6
|
var anObject = require('../internals/an-object');
|
|
7
7
|
var getIteratorDirect = require('../internals/get-iterator-direct');
|
|
8
8
|
var createAsyncIteratorProxy = require('../internals/async-iterator-create-proxy');
|
|
9
|
+
var createIterResultObject = require('../internals/create-iter-result-object');
|
|
9
10
|
var closeAsyncIteration = require('../internals/async-iterator-close');
|
|
10
11
|
|
|
11
12
|
var AsyncIteratorProxy = createAsyncIteratorProxy(function (Promise) {
|
|
@@ -29,12 +30,12 @@ var AsyncIteratorProxy = createAsyncIteratorProxy(function (Promise) {
|
|
|
29
30
|
try {
|
|
30
31
|
if (anObject(step).done) {
|
|
31
32
|
state.done = true;
|
|
32
|
-
resolve(
|
|
33
|
+
resolve(createIterResultObject(undefined, true));
|
|
33
34
|
} else {
|
|
34
35
|
var value = step.value;
|
|
35
36
|
try {
|
|
36
37
|
Promise.resolve(filterer(value)).then(function (selected) {
|
|
37
|
-
selected ? resolve(
|
|
38
|
+
selected ? resolve(createIterResultObject(value, false)) : loop();
|
|
38
39
|
}, ifAbruptCloseAsyncIterator);
|
|
39
40
|
} catch (error3) { ifAbruptCloseAsyncIterator(error3); }
|
|
40
41
|
}
|