core-js 3.48.0 → 3.50.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/README.md +2 -2
- package/actual/iterator/chunks.js +8 -0
- package/actual/iterator/concat.js +4 -0
- package/actual/iterator/from.js +4 -0
- package/actual/iterator/includes.js +8 -0
- package/actual/iterator/index.js +4 -1
- package/actual/iterator/join.js +8 -0
- package/actual/iterator/windows.js +8 -0
- package/actual/iterator/zip-keyed.js +6 -21
- package/actual/iterator/zip.js +6 -19
- package/actual/promise/all-keyed.js +16 -0
- package/actual/promise/all-settled-keyed.js +16 -0
- package/actual/promise/index.js +4 -0
- package/configurator.js +1 -1
- package/es/index.js +2 -0
- package/es/iterator/index.js +4 -0
- package/es/iterator/zip-keyed.js +24 -0
- package/es/iterator/zip.js +22 -0
- package/es/object/define-properties.js +2 -2
- package/es/object/define-property.js +2 -2
- package/es/object/get-own-property-descriptor.js +2 -2
- package/es/promise/try.js +2 -2
- package/features/iterator/includes.js +2 -0
- package/features/iterator/join.js +2 -0
- package/features/promise/all-keyed.js +2 -0
- package/features/promise/all-settled-keyed.js +2 -0
- package/full/index.js +6 -0
- package/full/iterator/chunks.js +2 -6
- package/full/iterator/concat.js +0 -2
- package/full/iterator/from.js +0 -2
- package/full/iterator/includes.js +4 -0
- package/full/iterator/index.js +0 -2
- package/full/iterator/join.js +4 -0
- package/full/iterator/range.js +3 -1
- package/full/iterator/windows.js +2 -6
- package/full/iterator/zip-keyed.js +0 -2
- package/full/iterator/zip.js +0 -2
- package/full/promise/all-keyed.js +4 -0
- package/full/promise/all-settled-keyed.js +4 -0
- package/internals/add-disposable-resource.js +1 -1
- package/internals/advance-string-index.js +1 -1
- package/internals/array-buffer-transfer.js +4 -1
- package/internals/array-buffer-view-core.js +1 -1
- package/internals/array-buffer.js +1 -2
- package/internals/array-fill.js +2 -1
- package/internals/array-from-async.js +7 -9
- package/internals/array-from.js +15 -4
- package/internals/async-from-sync-iterator.js +28 -4
- package/internals/async-iterator-close.js +11 -3
- package/internals/async-iterator-create-proxy.js +61 -22
- package/internals/async-iterator-iteration.js +7 -4
- package/internals/async-iterator-map.js +20 -18
- package/internals/does-not-exceed-safe-integer.js +1 -1
- package/internals/environment-is-ios.js +1 -2
- package/internals/error-stack-clear.js +1 -1
- package/internals/function-bind-native.js +1 -1
- package/internals/function-name.js +1 -1
- package/internals/get-async-iterator-flattenable.js +1 -1
- package/internals/get-async-iterator.js +1 -1
- package/internals/get-internal-iterator.js +1 -0
- package/internals/get-iterator-flattenable.js +1 -1
- package/internals/get-iterator-internal.js +14 -0
- package/internals/get-iterator-method-internal.js +14 -0
- package/internals/get-iterator-method.js +4 -7
- package/internals/get-iterator-record.js +1 -1
- package/internals/get-iterator.js +4 -5
- package/internals/is-iterable.js +4 -10
- package/internals/iterate.js +10 -5
- package/internals/iterator-chunk-size-validation.js +17 -0
- package/internals/iterator-cleanup-state.js +6 -0
- package/internals/iterator-create-proxy.js +14 -5
- package/internals/iterator-window.js +4 -6
- package/internals/iterator-zip.js +4 -3
- package/internals/iterators.js +1 -1
- package/internals/math-log1p.js +3 -1
- package/internals/numeric-range-iterator.js +9 -4
- package/internals/regexp-exec.js +20 -13
- package/internals/set-difference.js +1 -1
- package/internals/set-is-disjoint-from.js +1 -1
- package/internals/set-is-superset-of.js +1 -1
- package/internals/shared-store.js +2 -2
- package/internals/shared.js +3 -1
- package/internals/string-pad.js +2 -1
- package/internals/string-parse.js +1 -1
- package/internals/string-repeat.js +2 -1
- package/internals/to-uint8-clamped.js +11 -3
- package/internals/typed-array-constructor.js +1 -2
- package/internals/typed-array-from.js +5 -3
- package/internals/uint8-from-base64.js +4 -2
- package/internals/uint8-from-hex.js +10 -10
- package/internals/url-percent-coding.js +171 -0
- package/modules/es.array.flat.js +2 -1
- package/modules/es.array.from-async.js +1 -1
- package/modules/es.array.includes.js +7 -1
- package/modules/es.array.sort.js +3 -1
- package/modules/es.data-view.get-float16.js +1 -1
- package/modules/es.data-view.set-float16.js +2 -1
- package/modules/es.date.set-year.js +4 -1
- package/modules/es.date.to-json.js +1 -1
- package/modules/es.error.is-error.js +1 -1
- package/modules/es.escape.js +10 -8
- package/modules/es.iterator.concat.js +5 -4
- package/modules/es.iterator.drop.js +16 -1
- package/modules/es.iterator.flat-map.js +12 -14
- package/modules/es.iterator.take.js +22 -2
- package/modules/es.iterator.zip-keyed.js +70 -0
- package/modules/es.iterator.zip.js +92 -0
- package/modules/es.json.parse.js +14 -2
- package/modules/es.json.stringify.js +157 -38
- package/modules/es.map.get-or-insert-computed.js +3 -4
- package/modules/es.map.get-or-insert.js +2 -3
- package/modules/es.map.group-by.js +2 -0
- package/modules/es.math.asinh.js +6 -1
- package/modules/es.math.atanh.js +2 -2
- package/modules/es.math.cbrt.js +3 -1
- package/modules/es.math.sum-precise.js +3 -3
- package/modules/es.number.to-exponential.js +15 -6
- package/modules/es.object.group-by.js +2 -0
- package/modules/es.object.proto.js +2 -1
- package/modules/es.promise.try.js +16 -8
- package/modules/es.reflect.construct.js +1 -1
- package/modules/es.reflect.define-property.js +10 -0
- package/modules/es.reflect.delete-property.js +5 -2
- package/modules/es.reflect.get.js +9 -7
- package/modules/es.reflect.set.js +14 -9
- package/modules/es.regexp.constructor.js +16 -5
- package/modules/es.string.ends-with.js +1 -1
- package/modules/es.string.from-code-point.js +2 -2
- package/modules/es.string.match-all.js +1 -1
- package/modules/es.string.match.js +5 -3
- package/modules/es.string.replace.js +9 -8
- package/modules/es.string.search.js +3 -1
- package/modules/es.string.split.js +7 -5
- package/modules/es.string.starts-with.js +1 -1
- package/modules/es.string.substr.js +5 -7
- package/modules/es.symbol.constructor.js +3 -2
- package/modules/es.symbol.description.js +9 -0
- package/modules/es.typed-array.sort.js +3 -3
- package/modules/es.uint8-array.from-base64.js +1 -1
- package/modules/es.uint8-array.from-hex.js +1 -1
- package/modules/es.uint8-array.set-from-base64.js +1 -1
- package/modules/es.uint8-array.set-from-hex.js +1 -1
- package/modules/es.uint8-array.to-base64.js +23 -6
- package/modules/es.uint8-array.to-hex.js +6 -4
- package/modules/es.weak-map.get-or-insert-computed.js +2 -2
- package/modules/es.weak-map.get-or-insert.js +2 -3
- package/modules/esnext.array.is-template-object.js +1 -1
- package/modules/esnext.async-iterator.reduce.js +2 -2
- package/modules/esnext.async-iterator.take.js +4 -2
- package/modules/esnext.bigint.range.js +1 -1
- package/modules/esnext.iterator.chunks.js +6 -8
- package/modules/esnext.iterator.includes.js +44 -0
- package/modules/esnext.iterator.join.js +31 -0
- package/modules/esnext.iterator.range.js +1 -1
- package/modules/esnext.iterator.windows.js +2 -1
- package/modules/esnext.iterator.zip-keyed.js +2 -70
- package/modules/esnext.iterator.zip.js +2 -90
- package/modules/esnext.number.from-string.js +30 -3
- package/modules/esnext.number.range.js +1 -1
- package/modules/esnext.observable.from.js +6 -3
- package/modules/esnext.promise.all-keyed.js +57 -0
- package/modules/esnext.promise.all-settled-keyed.js +60 -0
- package/modules/esnext.string.dedent.js +1 -1
- package/modules/web.atob.js +15 -6
- package/modules/web.btoa.js +10 -3
- package/modules/web.structured-clone.js +2 -2
- package/modules/web.url-search-params.constructor.js +13 -130
- package/modules/web.url-search-params.delete.js +6 -9
- package/modules/web.url.constructor.js +154 -39
- package/modules/web.url.parse.js +1 -1
- package/modules/web.url.to-json.js +4 -1
- package/package.json +8 -1
- package/proposals/await-dictionary.js +4 -0
- package/proposals/iterator-includes.js +3 -0
- package/proposals/iterator-join.js +3 -0
- package/stable/index.js +2 -0
- package/stable/iterator/zip-keyed.js +5 -0
- package/stable/iterator/zip.js +5 -0
- package/stage/3.js +4 -0
|
@@ -9,32 +9,35 @@ var definePropertyModule = require('../internals/object-define-property');
|
|
|
9
9
|
var getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');
|
|
10
10
|
var getPrototypeOf = require('../internals/object-get-prototype-of');
|
|
11
11
|
var createPropertyDescriptor = require('../internals/create-property-descriptor');
|
|
12
|
+
var toPropertyKey = require('../internals/to-property-key');
|
|
12
13
|
|
|
13
14
|
// `Reflect.set` method
|
|
14
15
|
// https://tc39.es/ecma262/#sec-reflect.set
|
|
15
|
-
function
|
|
16
|
-
var receiver = arguments.length < 4 ? target : arguments[3];
|
|
16
|
+
var $set = function (target, propertyKey, V, receiver) {
|
|
17
17
|
var ownDescriptor = getOwnPropertyDescriptorModule.f(anObject(target), propertyKey);
|
|
18
18
|
var existingDescriptor, prototype, setter;
|
|
19
19
|
if (!ownDescriptor) {
|
|
20
20
|
if (isObject(prototype = getPrototypeOf(target))) {
|
|
21
|
-
return set(prototype, propertyKey, V, receiver);
|
|
21
|
+
return $set(prototype, propertyKey, V, receiver);
|
|
22
22
|
}
|
|
23
23
|
ownDescriptor = createPropertyDescriptor(0);
|
|
24
24
|
}
|
|
25
25
|
if (isDataDescriptor(ownDescriptor)) {
|
|
26
26
|
if (ownDescriptor.writable === false || !isObject(receiver)) return false;
|
|
27
27
|
if (existingDescriptor = getOwnPropertyDescriptorModule.f(receiver, propertyKey)) {
|
|
28
|
-
if (existingDescriptor
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
28
|
+
if (!isDataDescriptor(existingDescriptor) || existingDescriptor.writable === false) return false;
|
|
29
|
+
definePropertyModule.f(receiver, propertyKey, { value: V });
|
|
30
|
+
} else try {
|
|
31
|
+
definePropertyModule.f(receiver, propertyKey, createPropertyDescriptor(0, V));
|
|
32
|
+
} catch (error) {
|
|
33
|
+
return false;
|
|
34
|
+
}
|
|
32
35
|
} else {
|
|
33
36
|
setter = ownDescriptor.set;
|
|
34
37
|
if (setter === undefined) return false;
|
|
35
38
|
call(setter, receiver, V);
|
|
36
39
|
} return true;
|
|
37
|
-
}
|
|
40
|
+
};
|
|
38
41
|
|
|
39
42
|
// MS Edge 17-18 Reflect.set allows setting the property to object
|
|
40
43
|
// with non-writable property on the prototype
|
|
@@ -46,5 +49,7 @@ var MS_EDGE_BUG = fails(function () {
|
|
|
46
49
|
});
|
|
47
50
|
|
|
48
51
|
$({ target: 'Reflect', stat: true, forced: MS_EDGE_BUG }, {
|
|
49
|
-
set: set
|
|
52
|
+
set: function set(target, propertyKey, V /* , receiver */) {
|
|
53
|
+
return $set(anObject(target), toPropertyKey(propertyKey), V, arguments.length < 4 ? target : arguments[3]);
|
|
54
|
+
}
|
|
50
55
|
});
|
|
@@ -89,6 +89,11 @@ var handleNCG = function (string) {
|
|
|
89
89
|
chr = charAt(string, index);
|
|
90
90
|
if (chr === '\\') {
|
|
91
91
|
chr += charAt(string, ++index);
|
|
92
|
+
// use `\x5c` for escaped backslash to avoid corruption by `\k<name>` to `\N` replacement below
|
|
93
|
+
if (!ncg && charAt(chr, 1) === '\\') {
|
|
94
|
+
result += '\\x5c';
|
|
95
|
+
continue;
|
|
96
|
+
}
|
|
92
97
|
} else if (chr === ']') {
|
|
93
98
|
brackets = false;
|
|
94
99
|
} else if (!brackets) switch (true) {
|
|
@@ -97,15 +102,13 @@ var handleNCG = function (string) {
|
|
|
97
102
|
break;
|
|
98
103
|
case chr === '(':
|
|
99
104
|
result += chr;
|
|
100
|
-
// ignore non-capturing groups
|
|
101
|
-
if (stringSlice(string, index + 1, index + 3) === '?:') {
|
|
102
|
-
continue;
|
|
103
|
-
}
|
|
104
105
|
if (exec(IS_NCG, stringSlice(string, index + 1))) {
|
|
105
106
|
index += 2;
|
|
106
107
|
ncg = true;
|
|
108
|
+
groupid++;
|
|
109
|
+
} else if (charAt(string, index + 1) !== '?') {
|
|
110
|
+
groupid++;
|
|
107
111
|
}
|
|
108
|
-
groupid++;
|
|
109
112
|
continue;
|
|
110
113
|
case chr === '>' && ncg:
|
|
111
114
|
if (groupname === '' || hasOwn(names, groupname)) {
|
|
@@ -119,6 +122,14 @@ var handleNCG = function (string) {
|
|
|
119
122
|
}
|
|
120
123
|
if (ncg) groupname += chr;
|
|
121
124
|
else result += chr;
|
|
125
|
+
}
|
|
126
|
+
// convert `\k<name>` backreferences to numbered backreferences
|
|
127
|
+
for (var ni = 0; ni < named.length; ni++) {
|
|
128
|
+
var backref = '\\k<' + named[ni][0] + '>';
|
|
129
|
+
var numRef = '\\' + named[ni][1];
|
|
130
|
+
while (stringIndexOf(result, backref) > -1) {
|
|
131
|
+
result = replace(result, backref, numRef);
|
|
132
|
+
}
|
|
122
133
|
} return [result, named];
|
|
123
134
|
};
|
|
124
135
|
|
|
@@ -25,10 +25,10 @@ $({ target: 'String', proto: true, forced: !MDN_POLYFILL_BUG && !CORRECT_IS_REGE
|
|
|
25
25
|
endsWith: function endsWith(searchString /* , endPosition = @length */) {
|
|
26
26
|
var that = toString(requireObjectCoercible(this));
|
|
27
27
|
notARegExp(searchString);
|
|
28
|
+
var search = toString(searchString);
|
|
28
29
|
var endPosition = arguments.length > 1 ? arguments[1] : undefined;
|
|
29
30
|
var len = that.length;
|
|
30
31
|
var end = endPosition === undefined ? len : min(toLength(endPosition), len);
|
|
31
|
-
var search = toString(searchString);
|
|
32
32
|
return slice(that, end - search.length, end) === search;
|
|
33
33
|
}
|
|
34
34
|
});
|
|
@@ -22,9 +22,9 @@ $({ target: 'String', stat: true, arity: 1, forced: INCORRECT_LENGTH }, {
|
|
|
22
22
|
var i = 0;
|
|
23
23
|
var code;
|
|
24
24
|
while (length > i) {
|
|
25
|
-
code = +arguments[i
|
|
25
|
+
code = +arguments[i];
|
|
26
26
|
if (toAbsoluteIndex(code, 0x10FFFF) !== code) throw new $RangeError(code + ' is not a valid code point');
|
|
27
|
-
elements[i] = code < 0x10000
|
|
27
|
+
elements[i++] = code < 0x10000
|
|
28
28
|
? fromCharCode(code)
|
|
29
29
|
: fromCharCode(((code -= 0x10000) >> 10) + 0xD800, code % 0x400 + 0xDC00);
|
|
30
30
|
} return join(elements, '');
|
|
@@ -72,7 +72,7 @@ var $matchAll = function (string) {
|
|
|
72
72
|
var matcher, $global, fullUnicode;
|
|
73
73
|
matcher = new C(C === RegExp ? R.source : R, flags);
|
|
74
74
|
$global = !!~stringIndexOf(flags, 'g');
|
|
75
|
-
fullUnicode = !!~stringIndexOf(flags, 'u');
|
|
75
|
+
fullUnicode = !!~stringIndexOf(flags, 'u') || !!~stringIndexOf(flags, 'v');
|
|
76
76
|
matcher.lastIndex = toLength(R.lastIndex);
|
|
77
77
|
return new $RegExpStringIterator(matcher, S, $global, fullUnicode);
|
|
78
78
|
};
|
|
@@ -22,7 +22,9 @@ fixRegExpWellKnownSymbolLogic('match', function (MATCH, nativeMatch, maybeCallNa
|
|
|
22
22
|
function match(regexp) {
|
|
23
23
|
var O = requireObjectCoercible(this);
|
|
24
24
|
var matcher = isObject(regexp) ? getMethod(regexp, MATCH) : undefined;
|
|
25
|
-
|
|
25
|
+
if (matcher) return call(matcher, regexp, O);
|
|
26
|
+
var S = toString(O);
|
|
27
|
+
return new RegExp(regexp)[MATCH](S);
|
|
26
28
|
},
|
|
27
29
|
// `RegExp.prototype[@@match]` method
|
|
28
30
|
// https://tc39.es/ecma262/#sec-regexp.prototype-@@match
|
|
@@ -35,9 +37,9 @@ fixRegExpWellKnownSymbolLogic('match', function (MATCH, nativeMatch, maybeCallNa
|
|
|
35
37
|
|
|
36
38
|
var flags = toString(getRegExpFlags(rx));
|
|
37
39
|
|
|
38
|
-
if (stringIndexOf(flags, 'g')
|
|
40
|
+
if (!~stringIndexOf(flags, 'g')) return regExpExec(rx, S);
|
|
39
41
|
|
|
40
|
-
var fullUnicode = stringIndexOf(flags, 'u')
|
|
42
|
+
var fullUnicode = !!~stringIndexOf(flags, 'u') || !!~stringIndexOf(flags, 'v');
|
|
41
43
|
rx.lastIndex = 0;
|
|
42
44
|
var A = [];
|
|
43
45
|
var n = 0;
|
|
@@ -76,23 +76,24 @@ fixRegExpWellKnownSymbolLogic('replace', function (_, nativeReplace, maybeCallNa
|
|
|
76
76
|
var rx = anObject(this);
|
|
77
77
|
var S = toString(string);
|
|
78
78
|
|
|
79
|
+
var functionalReplace = isCallable(replaceValue);
|
|
80
|
+
if (!functionalReplace) replaceValue = toString(replaceValue);
|
|
81
|
+
var flags = toString(getRegExpFlags(rx));
|
|
82
|
+
|
|
79
83
|
if (
|
|
80
84
|
typeof replaceValue == 'string' &&
|
|
81
|
-
stringIndexOf(replaceValue, UNSAFE_SUBSTITUTE)
|
|
82
|
-
stringIndexOf(replaceValue, '$<')
|
|
85
|
+
!~stringIndexOf(replaceValue, UNSAFE_SUBSTITUTE) &&
|
|
86
|
+
!~stringIndexOf(replaceValue, '$<') &&
|
|
87
|
+
!~stringIndexOf(flags, 'y')
|
|
83
88
|
) {
|
|
84
89
|
var res = maybeCallNative(nativeReplace, rx, S, replaceValue);
|
|
85
90
|
if (res.done) return res.value;
|
|
86
91
|
}
|
|
87
92
|
|
|
88
|
-
var
|
|
89
|
-
if (!functionalReplace) replaceValue = toString(replaceValue);
|
|
90
|
-
|
|
91
|
-
var flags = toString(getRegExpFlags(rx));
|
|
92
|
-
var global = stringIndexOf(flags, 'g') !== -1;
|
|
93
|
+
var global = !!~stringIndexOf(flags, 'g');
|
|
93
94
|
var fullUnicode;
|
|
94
95
|
if (global) {
|
|
95
|
-
fullUnicode = stringIndexOf(flags, 'u')
|
|
96
|
+
fullUnicode = !!~stringIndexOf(flags, 'u') || !!~stringIndexOf(flags, 'v');
|
|
96
97
|
rx.lastIndex = 0;
|
|
97
98
|
}
|
|
98
99
|
|
|
@@ -17,7 +17,9 @@ fixRegExpWellKnownSymbolLogic('search', function (SEARCH, nativeSearch, maybeCal
|
|
|
17
17
|
function search(regexp) {
|
|
18
18
|
var O = requireObjectCoercible(this);
|
|
19
19
|
var searcher = isObject(regexp) ? getMethod(regexp, SEARCH) : undefined;
|
|
20
|
-
|
|
20
|
+
if (searcher) return call(searcher, regexp, O);
|
|
21
|
+
var S = toString(O);
|
|
22
|
+
return new RegExp(regexp)[SEARCH](S);
|
|
21
23
|
},
|
|
22
24
|
// `RegExp.prototype[@@search]` method
|
|
23
25
|
// https://tc39.es/ecma262/#sec-regexp.prototype-@@search
|
|
@@ -10,6 +10,7 @@ var advanceStringIndex = require('../internals/advance-string-index');
|
|
|
10
10
|
var toLength = require('../internals/to-length');
|
|
11
11
|
var toString = require('../internals/to-string');
|
|
12
12
|
var getMethod = require('../internals/get-method');
|
|
13
|
+
var getRegExpFlags = require('../internals/regexp-get-flags');
|
|
13
14
|
var regExpExec = require('../internals/regexp-exec-abstract');
|
|
14
15
|
var stickyHelpers = require('../internals/regexp-sticky-helpers');
|
|
15
16
|
var fails = require('../internals/fails');
|
|
@@ -19,6 +20,7 @@ var MAX_UINT32 = 0xFFFFFFFF;
|
|
|
19
20
|
var min = Math.min;
|
|
20
21
|
var push = uncurryThis([].push);
|
|
21
22
|
var stringSlice = uncurryThis(''.slice);
|
|
23
|
+
var stringIndexOf = uncurryThis(''.indexOf);
|
|
22
24
|
|
|
23
25
|
// Chrome 51 has a buggy "split" implementation when RegExp#exec !== nativeExec
|
|
24
26
|
// Weex JS has frozen built-in prototypes, so use try / catch wrapper
|
|
@@ -71,11 +73,11 @@ fixRegExpWellKnownSymbolLogic('split', function (SPLIT, nativeSplit, maybeCallNa
|
|
|
71
73
|
}
|
|
72
74
|
|
|
73
75
|
var C = speciesConstructor(rx, RegExp);
|
|
74
|
-
var
|
|
75
|
-
var
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
76
|
+
var flags = toString(getRegExpFlags(rx));
|
|
77
|
+
var unicodeMatching = !!~stringIndexOf(flags, 'u') || !!~stringIndexOf(flags, 'v');
|
|
78
|
+
if (UNSUPPORTED_Y) {
|
|
79
|
+
if (!~stringIndexOf(flags, 'g')) flags += 'g';
|
|
80
|
+
} else if (!~stringIndexOf(flags, 'y')) flags += 'y';
|
|
79
81
|
// ^(? + rx + ) is needed, in combination with some S slicing, to
|
|
80
82
|
// simulate the 'y' flag.
|
|
81
83
|
var splitter = new C(UNSUPPORTED_Y ? '^(?:' + rx.source + ')' : rx, flags);
|
|
@@ -25,8 +25,8 @@ $({ target: 'String', proto: true, forced: !MDN_POLYFILL_BUG && !CORRECT_IS_REGE
|
|
|
25
25
|
startsWith: function startsWith(searchString /* , position = 0 */) {
|
|
26
26
|
var that = toString(requireObjectCoercible(this));
|
|
27
27
|
notARegExp(searchString);
|
|
28
|
-
var index = toLength(min(arguments.length > 1 ? arguments[1] : undefined, that.length));
|
|
29
28
|
var search = toString(searchString);
|
|
29
|
+
var index = toLength(min(arguments.length > 1 ? arguments[1] : undefined, that.length));
|
|
30
30
|
return stringSlice(that, index, index + search.length) === search;
|
|
31
31
|
}
|
|
32
32
|
});
|
|
@@ -19,12 +19,10 @@ $({ target: 'String', proto: true, forced: FORCED }, {
|
|
|
19
19
|
var that = toString(requireObjectCoercible(this));
|
|
20
20
|
var size = that.length;
|
|
21
21
|
var intStart = toIntegerOrInfinity(start);
|
|
22
|
-
var
|
|
23
|
-
|
|
24
|
-
if (
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
intEnd = min(intStart + intLength, size);
|
|
28
|
-
return intStart >= intEnd ? '' : stringSlice(that, intStart, intEnd);
|
|
22
|
+
var finalStart = intStart < 0 ? max(size + intStart, 0) : min(intStart, size);
|
|
23
|
+
var intLength = length === undefined ? size : toIntegerOrInfinity(length);
|
|
24
|
+
if (intLength <= 0) return '';
|
|
25
|
+
var intEnd = min(finalStart + intLength, size);
|
|
26
|
+
return finalStart >= intEnd ? '' : stringSlice(that, finalStart, intEnd);
|
|
29
27
|
}
|
|
30
28
|
});
|
|
@@ -70,7 +70,7 @@ var fallbackDefineProperty = function (O, P, Attributes) {
|
|
|
70
70
|
nativeDefineProperty(O, P, Attributes);
|
|
71
71
|
if (ObjectPrototypeDescriptor && O !== ObjectPrototype) {
|
|
72
72
|
nativeDefineProperty(ObjectPrototype, P, ObjectPrototypeDescriptor);
|
|
73
|
-
}
|
|
73
|
+
} return O;
|
|
74
74
|
};
|
|
75
75
|
|
|
76
76
|
var setSymbolDescriptor = DESCRIPTORS && fails(function () {
|
|
@@ -96,7 +96,8 @@ var $defineProperty = function defineProperty(O, P, Attributes) {
|
|
|
96
96
|
var key = toPropertyKey(P);
|
|
97
97
|
anObject(Attributes);
|
|
98
98
|
if (hasOwn(AllSymbols, key)) {
|
|
99
|
-
|
|
99
|
+
// first definition - default non-enumerable; redefinition - preserve existing state
|
|
100
|
+
if (!('enumerable' in Attributes) ? !hasOwn(O, key) || (hasOwn(O, HIDDEN) && O[HIDDEN][key]) : !Attributes.enumerable) {
|
|
100
101
|
if (!hasOwn(O, HIDDEN)) nativeDefineProperty(O, HIDDEN, createPropertyDescriptor(1, nativeObjectCreate(null)));
|
|
101
102
|
O[HIDDEN][key] = true;
|
|
102
103
|
} else {
|
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
var $ = require('../internals/export');
|
|
5
5
|
var DESCRIPTORS = require('../internals/descriptors');
|
|
6
6
|
var globalThis = require('../internals/global-this');
|
|
7
|
+
var call = require('../internals/function-call');
|
|
7
8
|
var uncurryThis = require('../internals/function-uncurry-this');
|
|
8
9
|
var hasOwn = require('../internals/has-own-property');
|
|
9
10
|
var isCallable = require('../internals/is-callable');
|
|
@@ -33,6 +34,14 @@ if (DESCRIPTORS && isCallable(NativeSymbol) && (!('description' in SymbolPrototy
|
|
|
33
34
|
};
|
|
34
35
|
|
|
35
36
|
copyConstructorProperties(SymbolWrapper, NativeSymbol);
|
|
37
|
+
// wrap Symbol.for for correct handling of empty string descriptions
|
|
38
|
+
var nativeFor = SymbolWrapper['for'];
|
|
39
|
+
SymbolWrapper['for'] = { 'for': function (key) {
|
|
40
|
+
var stringKey = toString(key);
|
|
41
|
+
var symbol = call(nativeFor, this, stringKey);
|
|
42
|
+
if (stringKey === '') EmptyStringDescriptionStore[symbol] = true;
|
|
43
|
+
return symbol;
|
|
44
|
+
} }['for'];
|
|
36
45
|
SymbolWrapper.prototype = SymbolPrototype;
|
|
37
46
|
SymbolPrototype.constructor = SymbolWrapper;
|
|
38
47
|
|
|
@@ -52,11 +52,11 @@ var getSortCompare = function (comparefn) {
|
|
|
52
52
|
return function (x, y) {
|
|
53
53
|
if (comparefn !== undefined) return +comparefn(x, y) || 0;
|
|
54
54
|
// eslint-disable-next-line no-self-compare -- NaN check
|
|
55
|
-
if (y !== y) return -1;
|
|
55
|
+
if (y !== y) return x !== x ? 0 : -1;
|
|
56
56
|
// eslint-disable-next-line no-self-compare -- NaN check
|
|
57
57
|
if (x !== x) return 1;
|
|
58
|
-
if (x === 0 && y === 0) return 1 / x > 0
|
|
59
|
-
return x > y;
|
|
58
|
+
if (x === 0 && y === 0) return 1 / x > 0 ? (1 / y > 0 ? 0 : 1) : (1 / y > 0 ? -1 : 0);
|
|
59
|
+
return x > y ? 1 : x < y ? -1 : 0;
|
|
60
60
|
};
|
|
61
61
|
};
|
|
62
62
|
|
|
@@ -20,7 +20,7 @@ var INCORRECT_BEHAVIOR_OR_DOESNT_EXISTS = !Uint8Array || !Uint8Array.fromBase64
|
|
|
20
20
|
}();
|
|
21
21
|
|
|
22
22
|
// `Uint8Array.fromBase64` method
|
|
23
|
-
// https://
|
|
23
|
+
// https://tc39.es/ecma262/#sec-uint8array.frombase64
|
|
24
24
|
if (Uint8Array) $({ target: 'Uint8Array', stat: true, forced: INCORRECT_BEHAVIOR_OR_DOESNT_EXISTS }, {
|
|
25
25
|
fromBase64: function fromBase64(string /* , options */) {
|
|
26
26
|
var result = $fromBase64(string, arguments.length > 1 ? arguments[1] : undefined, null, 0x1FFFFFFFFFFFFF);
|
|
@@ -5,7 +5,7 @@ var aString = require('../internals/a-string');
|
|
|
5
5
|
var $fromHex = require('../internals/uint8-from-hex');
|
|
6
6
|
|
|
7
7
|
// `Uint8Array.fromHex` method
|
|
8
|
-
// https://
|
|
8
|
+
// https://tc39.es/ecma262/#sec-uint8array.fromhex
|
|
9
9
|
if (globalThis.Uint8Array) $({ target: 'Uint8Array', stat: true }, {
|
|
10
10
|
fromHex: function fromHex(string) {
|
|
11
11
|
return $fromHex(aString(string)).bytes;
|
|
@@ -25,7 +25,7 @@ var INCORRECT_BEHAVIOR_OR_DOESNT_EXISTS = !Uint8Array || !Uint8Array.prototype.s
|
|
|
25
25
|
}();
|
|
26
26
|
|
|
27
27
|
// `Uint8Array.prototype.setFromBase64` method
|
|
28
|
-
// https://
|
|
28
|
+
// https://tc39.es/ecma262/#sec-uint8array.prototype.setfrombase64
|
|
29
29
|
if (Uint8Array) $({ target: 'Uint8Array', proto: true, forced: INCORRECT_BEHAVIOR_OR_DOESNT_EXISTS }, {
|
|
30
30
|
setFromBase64: function setFromBase64(string /* , options */) {
|
|
31
31
|
anUint8Array(this);
|
|
@@ -20,7 +20,7 @@ function throwsOnLengthTrackingView() {
|
|
|
20
20
|
}
|
|
21
21
|
|
|
22
22
|
// `Uint8Array.prototype.setFromHex` method
|
|
23
|
-
// https://
|
|
23
|
+
// https://tc39.es/ecma262/#sec-uint8array.prototype.setfromhex
|
|
24
24
|
if (globalThis.Uint8Array) $({ target: 'Uint8Array', proto: true, forced: throwsOnLengthTrackingView() }, {
|
|
25
25
|
setFromHex: function setFromHex(string) {
|
|
26
26
|
anUint8Array(this);
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
'use strict';
|
|
2
|
+
/* eslint-disable no-useless-assignment -- false positive for [index++] syntax */
|
|
2
3
|
var $ = require('../internals/export');
|
|
3
4
|
var globalThis = require('../internals/global-this');
|
|
4
5
|
var uncurryThis = require('../internals/function-uncurry-this');
|
|
@@ -10,10 +11,14 @@ var getAlphabetOption = require('../internals/get-alphabet-option');
|
|
|
10
11
|
|
|
11
12
|
var base64Alphabet = base64Map.i2c;
|
|
12
13
|
var base64UrlAlphabet = base64Map.i2cUrl;
|
|
14
|
+
var $floor = Math.floor;
|
|
15
|
+
var $ceil = Math.ceil;
|
|
13
16
|
|
|
14
17
|
var charAt = uncurryThis(''.charAt);
|
|
15
18
|
|
|
16
19
|
var Uint8Array = globalThis.Uint8Array;
|
|
20
|
+
var $Array = globalThis.Array;
|
|
21
|
+
var join = uncurryThis([].join);
|
|
17
22
|
|
|
18
23
|
var INCORRECT_BEHAVIOR_OR_DOESNT_EXISTS = !Uint8Array || !Uint8Array.prototype.toBase64 || !function () {
|
|
19
24
|
try {
|
|
@@ -25,7 +30,7 @@ var INCORRECT_BEHAVIOR_OR_DOESNT_EXISTS = !Uint8Array || !Uint8Array.prototype.t
|
|
|
25
30
|
}();
|
|
26
31
|
|
|
27
32
|
// `Uint8Array.prototype.toBase64` method
|
|
28
|
-
// https://
|
|
33
|
+
// https://tc39.es/ecma262/#sec-uint8array.prototype.tobase64
|
|
29
34
|
if (Uint8Array) $({ target: 'Uint8Array', proto: true, forced: INCORRECT_BEHAVIOR_OR_DOESNT_EXISTS }, {
|
|
30
35
|
toBase64: function toBase64(/* options */) {
|
|
31
36
|
var array = anUint8Array(this);
|
|
@@ -34,9 +39,10 @@ if (Uint8Array) $({ target: 'Uint8Array', proto: true, forced: INCORRECT_BEHAVIO
|
|
|
34
39
|
var omitPadding = !!options && !!options.omitPadding;
|
|
35
40
|
notDetached(this.buffer);
|
|
36
41
|
|
|
37
|
-
var result = '';
|
|
38
42
|
var i = 0;
|
|
39
43
|
var length = array.length;
|
|
44
|
+
var result = $Array(omitPadding ? $floor(length / 3) * 4 + (length % 3 ? length % 3 + 1 : 0) : $ceil(length / 3) * 4);
|
|
45
|
+
var written = 0;
|
|
40
46
|
var triplet;
|
|
41
47
|
|
|
42
48
|
var at = function (shift) {
|
|
@@ -45,16 +51,27 @@ if (Uint8Array) $({ target: 'Uint8Array', proto: true, forced: INCORRECT_BEHAVIO
|
|
|
45
51
|
|
|
46
52
|
for (; i + 2 < length; i += 3) {
|
|
47
53
|
triplet = (array[i] << 16) + (array[i + 1] << 8) + array[i + 2];
|
|
48
|
-
result
|
|
54
|
+
result[written++] = at(3);
|
|
55
|
+
result[written++] = at(2);
|
|
56
|
+
result[written++] = at(1);
|
|
57
|
+
result[written++] = at(0);
|
|
49
58
|
}
|
|
50
59
|
if (i + 2 === length) {
|
|
51
60
|
triplet = (array[i] << 16) + (array[i + 1] << 8);
|
|
52
|
-
result
|
|
61
|
+
result[written++] = at(3);
|
|
62
|
+
result[written++] = at(2);
|
|
63
|
+
result[written++] = at(1);
|
|
64
|
+
if (!omitPadding) result[written++] = '=';
|
|
53
65
|
} else if (i + 1 === length) {
|
|
54
66
|
triplet = array[i] << 16;
|
|
55
|
-
result
|
|
67
|
+
result[written++] = at(3);
|
|
68
|
+
result[written++] = at(2);
|
|
69
|
+
if (!omitPadding) {
|
|
70
|
+
result[written++] = '=';
|
|
71
|
+
result[written++] = '=';
|
|
72
|
+
}
|
|
56
73
|
}
|
|
57
74
|
|
|
58
|
-
return result;
|
|
75
|
+
return join(result, '');
|
|
59
76
|
}
|
|
60
77
|
});
|
|
@@ -6,6 +6,8 @@ var anUint8Array = require('../internals/an-uint8-array');
|
|
|
6
6
|
var notDetached = require('../internals/array-buffer-not-detached');
|
|
7
7
|
|
|
8
8
|
var numberToString = uncurryThis(1.1.toString);
|
|
9
|
+
var join = uncurryThis([].join);
|
|
10
|
+
var $Array = Array;
|
|
9
11
|
|
|
10
12
|
var Uint8Array = globalThis.Uint8Array;
|
|
11
13
|
|
|
@@ -19,16 +21,16 @@ var INCORRECT_BEHAVIOR_OR_DOESNT_EXISTS = !Uint8Array || !Uint8Array.prototype.t
|
|
|
19
21
|
})();
|
|
20
22
|
|
|
21
23
|
// `Uint8Array.prototype.toHex` method
|
|
22
|
-
// https://
|
|
24
|
+
// https://tc39.es/ecma262/#sec-uint8array.prototype.tohex
|
|
23
25
|
if (Uint8Array) $({ target: 'Uint8Array', proto: true, forced: INCORRECT_BEHAVIOR_OR_DOESNT_EXISTS }, {
|
|
24
26
|
toHex: function toHex() {
|
|
25
27
|
anUint8Array(this);
|
|
26
28
|
notDetached(this.buffer);
|
|
27
|
-
var result =
|
|
29
|
+
var result = $Array(this.length);
|
|
28
30
|
for (var i = 0, length = this.length; i < length; i++) {
|
|
29
31
|
var hex = numberToString(this[i], 16);
|
|
30
|
-
result
|
|
32
|
+
result[i] = hex.length === 1 ? '0' + hex : hex;
|
|
31
33
|
}
|
|
32
|
-
return result;
|
|
34
|
+
return join(result, '');
|
|
33
35
|
}
|
|
34
36
|
});
|
|
@@ -22,10 +22,10 @@ var FORCED = IS_PURE || !function () {
|
|
|
22
22
|
}();
|
|
23
23
|
|
|
24
24
|
// `WeakMap.prototype.getOrInsertComputed` method
|
|
25
|
-
// https://
|
|
25
|
+
// https://tc39.es/ecma262/#sec-weakmap.prototype.getorinsertcomputed
|
|
26
26
|
$({ target: 'WeakMap', proto: true, real: true, forced: FORCED }, {
|
|
27
27
|
getOrInsertComputed: function getOrInsertComputed(key, callbackfn) {
|
|
28
|
-
aWeakMap(this);
|
|
28
|
+
if (!IS_PURE) aWeakMap(this);
|
|
29
29
|
aWeakKey(key);
|
|
30
30
|
aCallable(callbackfn);
|
|
31
31
|
if (has(this, key)) return get(this, key);
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
var $ = require('../internals/export');
|
|
3
|
-
var aWeakMap = require('../internals/a-weak-map');
|
|
4
3
|
var WeakMapHelpers = require('../internals/weak-map-helpers');
|
|
5
4
|
var IS_PURE = require('../internals/is-pure');
|
|
6
5
|
|
|
@@ -9,10 +8,10 @@ var has = WeakMapHelpers.has;
|
|
|
9
8
|
var set = WeakMapHelpers.set;
|
|
10
9
|
|
|
11
10
|
// `WeakMap.prototype.getOrInsert` method
|
|
12
|
-
// https://
|
|
11
|
+
// https://tc39.es/ecma262/#sec-weakmap.prototype.getorinsert
|
|
13
12
|
$({ target: 'WeakMap', proto: true, real: true, forced: IS_PURE }, {
|
|
14
13
|
getOrInsert: function getOrInsert(key, value) {
|
|
15
|
-
if (has(
|
|
14
|
+
if (has(this, key)) return get(this, key);
|
|
16
15
|
set(this, key, value);
|
|
17
16
|
return value;
|
|
18
17
|
}
|
|
@@ -24,6 +24,6 @@ $({ target: 'Array', stat: true, sham: true, forced: true }, {
|
|
|
24
24
|
isTemplateObject: function isTemplateObject(value) {
|
|
25
25
|
if (!isFrozenStringArray(value, true)) return false;
|
|
26
26
|
var raw = value.raw;
|
|
27
|
-
return raw.length === value.length
|
|
27
|
+
return isFrozenStringArray(raw, false) && raw.length === value.length;
|
|
28
28
|
}
|
|
29
29
|
});
|
|
@@ -40,9 +40,10 @@ $({ target: 'AsyncIterator', proto: true, real: true, forced: true }, {
|
|
|
40
40
|
if (noInitial) {
|
|
41
41
|
noInitial = false;
|
|
42
42
|
accumulator = value;
|
|
43
|
+
counter++;
|
|
43
44
|
loop();
|
|
44
45
|
} else try {
|
|
45
|
-
var result = reducer(accumulator, value, counter);
|
|
46
|
+
var result = reducer(accumulator, value, counter++);
|
|
46
47
|
|
|
47
48
|
var handler = function ($result) {
|
|
48
49
|
accumulator = $result;
|
|
@@ -53,7 +54,6 @@ $({ target: 'AsyncIterator', proto: true, real: true, forced: true }, {
|
|
|
53
54
|
else handler(result);
|
|
54
55
|
} catch (error3) { ifAbruptCloseAsyncIterator(error3); }
|
|
55
56
|
}
|
|
56
|
-
counter++;
|
|
57
57
|
} catch (error2) { reject(error2); }
|
|
58
58
|
}, reject);
|
|
59
59
|
} catch (error) { reject(error); }
|
|
@@ -3,6 +3,7 @@ var $ = require('../internals/export');
|
|
|
3
3
|
var call = require('../internals/function-call');
|
|
4
4
|
var anObject = require('../internals/an-object');
|
|
5
5
|
var getIteratorDirect = require('../internals/get-iterator-direct');
|
|
6
|
+
var getMethod = require('../internals/get-method');
|
|
6
7
|
var notANaN = require('../internals/not-a-nan');
|
|
7
8
|
var toPositiveInteger = require('../internals/to-positive-integer');
|
|
8
9
|
var createAsyncIteratorProxy = require('../internals/async-iterator-create-proxy');
|
|
@@ -16,9 +17,10 @@ var AsyncIteratorProxy = createAsyncIteratorProxy(function (Promise) {
|
|
|
16
17
|
if (!state.remaining--) {
|
|
17
18
|
var resultDone = createIterResultObject(undefined, true);
|
|
18
19
|
state.done = true;
|
|
19
|
-
returnMethod = iterator
|
|
20
|
+
returnMethod = getMethod(iterator, 'return');
|
|
20
21
|
if (returnMethod !== undefined) {
|
|
21
|
-
return Promise.resolve(call(returnMethod, iterator
|
|
22
|
+
return Promise.resolve(call(returnMethod, iterator)).then(function (result) {
|
|
23
|
+
anObject(result);
|
|
22
24
|
return resultDone;
|
|
23
25
|
});
|
|
24
26
|
}
|
|
@@ -4,7 +4,7 @@ var $ = require('../internals/export');
|
|
|
4
4
|
var NumericRangeIterator = require('../internals/numeric-range-iterator');
|
|
5
5
|
|
|
6
6
|
// `BigInt.range` method
|
|
7
|
-
// https://github.com/tc39/proposal-
|
|
7
|
+
// https://github.com/tc39/proposal-iterator.range
|
|
8
8
|
// TODO: Remove from `core-js@4`
|
|
9
9
|
if (typeof BigInt == 'function') {
|
|
10
10
|
$({ target: 'BigInt', stat: true, forced: true }, {
|
|
@@ -4,10 +4,10 @@ var anObject = require('../internals/an-object');
|
|
|
4
4
|
var call = require('../internals/function-call');
|
|
5
5
|
var createIteratorProxy = require('../internals/iterator-create-proxy');
|
|
6
6
|
var getIteratorDirect = require('../internals/get-iterator-direct');
|
|
7
|
-
var
|
|
7
|
+
var chunkSizeValidation = require('../internals/iterator-chunk-size-validation');
|
|
8
8
|
var uncurryThis = require('../internals/function-uncurry-this');
|
|
9
|
+
var IS_PURE = require('../internals/is-pure');
|
|
9
10
|
|
|
10
|
-
var $RangeError = RangeError;
|
|
11
11
|
var push = uncurryThis([].push);
|
|
12
12
|
|
|
13
13
|
var IteratorProxy = createIteratorProxy(function () {
|
|
@@ -31,13 +31,11 @@ var IteratorProxy = createIteratorProxy(function () {
|
|
|
31
31
|
|
|
32
32
|
// `Iterator.prototype.chunks` method
|
|
33
33
|
// https://github.com/tc39/proposal-iterator-chunking
|
|
34
|
-
$({ target: 'Iterator', proto: true, real: true, forced:
|
|
34
|
+
$({ target: 'Iterator', proto: true, real: true, forced: IS_PURE }, {
|
|
35
35
|
chunks: function chunks(chunkSize) {
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
}
|
|
40
|
-
return new IteratorProxy(getIteratorDirect(O), {
|
|
36
|
+
anObject(this);
|
|
37
|
+
chunkSizeValidation(chunkSize, this);
|
|
38
|
+
return new IteratorProxy(getIteratorDirect(this), {
|
|
41
39
|
chunkSize: chunkSize
|
|
42
40
|
});
|
|
43
41
|
}
|