core-js 3.24.1 → 3.25.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 +1 -1
- 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 +2 -2
- package/internals/async-iterator-create-proxy.js +19 -11
- package/internals/async-iterator-indexed.js +2 -2
- package/internals/collection-from.js +2 -1
- package/internals/collection-strong.js +3 -2
- package/internals/collection-weak.js +3 -2
- package/internals/collection.js +2 -1
- package/internals/date-to-iso-string.js +7 -6
- 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 +8 -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 +8 -7
- package/internals/object-iterator.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/{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 +1 -1
- 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.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 +1 -1
- package/modules/es.string.match-all.js +8 -7
- 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 +2 -2
- package/modules/esnext.async-iterator.filter.js +2 -2
- package/modules/esnext.async-iterator.flat-map.js +2 -2
- package/modules/esnext.async-iterator.map.js +2 -2
- package/modules/esnext.async-iterator.take.js +3 -3
- package/modules/esnext.math.seeded-prng.js +1 -1
- package/modules/esnext.observable.constructor.js +4 -3
- package/modules/esnext.string.code-points.js +1 -1
- 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/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
|
File without changes
|
|
File without changes
|
|
@@ -2,7 +2,7 @@ var global = require('../internals/global');
|
|
|
2
2
|
var shared = require('../internals/shared');
|
|
3
3
|
var hasOwn = require('../internals/has-own-property');
|
|
4
4
|
var uid = require('../internals/uid');
|
|
5
|
-
var NATIVE_SYMBOL = require('../internals/
|
|
5
|
+
var NATIVE_SYMBOL = require('../internals/symbol-constructor-detection');
|
|
6
6
|
var USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');
|
|
7
7
|
|
|
8
8
|
var WellKnownSymbolsStore = shared('wks');
|
|
@@ -9,7 +9,7 @@ var proxyAccessor = require('../internals/proxy-accessor');
|
|
|
9
9
|
var inheritIfRequired = require('../internals/inherit-if-required');
|
|
10
10
|
var normalizeStringArgument = require('../internals/normalize-string-argument');
|
|
11
11
|
var installErrorCause = require('../internals/install-error-cause');
|
|
12
|
-
var clearErrorStack = require('../internals/
|
|
12
|
+
var clearErrorStack = require('../internals/error-stack-clear');
|
|
13
13
|
var ERROR_STACK_INSTALLABLE = require('../internals/error-stack-installable');
|
|
14
14
|
var DESCRIPTORS = require('../internals/descriptors');
|
|
15
15
|
var IS_PURE = require('../internals/is-pure');
|
|
@@ -6,6 +6,7 @@ var wrapErrorConstructorWithCause = require('../internals/wrap-error-constructor
|
|
|
6
6
|
|
|
7
7
|
var AGGREGATE_ERROR = 'AggregateError';
|
|
8
8
|
var $AggregateError = getBuiltIn(AGGREGATE_ERROR);
|
|
9
|
+
|
|
9
10
|
var FORCED = !fails(function () {
|
|
10
11
|
return $AggregateError([1]).errors[0] !== 1;
|
|
11
12
|
}) && fails(function () {
|
|
@@ -7,7 +7,7 @@ var copyConstructorProperties = require('../internals/copy-constructor-propertie
|
|
|
7
7
|
var create = require('../internals/object-create');
|
|
8
8
|
var createNonEnumerableProperty = require('../internals/create-non-enumerable-property');
|
|
9
9
|
var createPropertyDescriptor = require('../internals/create-property-descriptor');
|
|
10
|
-
var clearErrorStack = require('../internals/
|
|
10
|
+
var clearErrorStack = require('../internals/error-stack-clear');
|
|
11
11
|
var installErrorCause = require('../internals/install-error-cause');
|
|
12
12
|
var iterate = require('../internals/iterate');
|
|
13
13
|
var normalizeStringArgument = require('../internals/normalize-string-argument');
|
|
@@ -23,7 +23,7 @@ var $AggregateError = function AggregateError(errors, message /* , options */) {
|
|
|
23
23
|
var isInstance = isPrototypeOf(AggregateErrorPrototype, this);
|
|
24
24
|
var that;
|
|
25
25
|
if (setPrototypeOf) {
|
|
26
|
-
that = setPrototypeOf(
|
|
26
|
+
that = setPrototypeOf($Error(), isInstance ? getPrototypeOf(this) : AggregateErrorPrototype);
|
|
27
27
|
} else {
|
|
28
28
|
that = isInstance ? this : create(AggregateErrorPrototype);
|
|
29
29
|
createNonEnumerableProperty(that, TO_STRING_TAG, 'Error');
|
|
@@ -11,7 +11,7 @@ var speciesConstructor = require('../internals/species-constructor');
|
|
|
11
11
|
var ArrayBuffer = ArrayBufferModule.ArrayBuffer;
|
|
12
12
|
var DataView = ArrayBufferModule.DataView;
|
|
13
13
|
var DataViewPrototype = DataView.prototype;
|
|
14
|
-
var
|
|
14
|
+
var nativeArrayBufferSlice = uncurryThis(ArrayBuffer.prototype.slice);
|
|
15
15
|
var getUint8 = uncurryThis(DataViewPrototype.getUint8);
|
|
16
16
|
var setUint8 = uncurryThis(DataViewPrototype.setUint8);
|
|
17
17
|
|
|
@@ -23,8 +23,8 @@ var INCORRECT_SLICE = fails(function () {
|
|
|
23
23
|
// https://tc39.es/ecma262/#sec-arraybuffer.prototype.slice
|
|
24
24
|
$({ target: 'ArrayBuffer', proto: true, unsafe: true, forced: INCORRECT_SLICE }, {
|
|
25
25
|
slice: function slice(start, end) {
|
|
26
|
-
if (
|
|
27
|
-
return
|
|
26
|
+
if (nativeArrayBufferSlice && end === undefined) {
|
|
27
|
+
return nativeArrayBufferSlice(anObject(this), start); // FF fix
|
|
28
28
|
}
|
|
29
29
|
var length = anObject(this).byteLength;
|
|
30
30
|
var first = toAbsoluteIndex(start, length);
|
|
@@ -2,12 +2,12 @@
|
|
|
2
2
|
/* eslint-disable es-x/no-array-prototype-indexof -- required for testing */
|
|
3
3
|
var $ = require('../internals/export');
|
|
4
4
|
var uncurryThis = require('../internals/function-uncurry-this');
|
|
5
|
-
var $
|
|
5
|
+
var $indexOf = require('../internals/array-includes').indexOf;
|
|
6
6
|
var arrayMethodIsStrict = require('../internals/array-method-is-strict');
|
|
7
7
|
|
|
8
|
-
var
|
|
8
|
+
var nativeIndexOf = uncurryThis([].indexOf);
|
|
9
9
|
|
|
10
|
-
var NEGATIVE_ZERO = !!
|
|
10
|
+
var NEGATIVE_ZERO = !!nativeIndexOf && 1 / nativeIndexOf([1], 1, -0) < 0;
|
|
11
11
|
var STRICT_METHOD = arrayMethodIsStrict('indexOf');
|
|
12
12
|
|
|
13
13
|
// `Array.prototype.indexOf` method
|
|
@@ -17,7 +17,7 @@ $({ target: 'Array', proto: true, forced: NEGATIVE_ZERO || !STRICT_METHOD }, {
|
|
|
17
17
|
var fromIndex = arguments.length > 1 ? arguments[1] : undefined;
|
|
18
18
|
return NEGATIVE_ZERO
|
|
19
19
|
// convert -0 to +0
|
|
20
|
-
?
|
|
21
|
-
: $
|
|
20
|
+
? nativeIndexOf(this, searchElement, fromIndex) || 0
|
|
21
|
+
: $indexOf(this, searchElement, fromIndex);
|
|
22
22
|
}
|
|
23
23
|
});
|
|
@@ -4,7 +4,7 @@ var addToUnscopables = require('../internals/add-to-unscopables');
|
|
|
4
4
|
var Iterators = require('../internals/iterators');
|
|
5
5
|
var InternalStateModule = require('../internals/internal-state');
|
|
6
6
|
var defineProperty = require('../internals/object-define-property').f;
|
|
7
|
-
var defineIterator = require('../internals/define
|
|
7
|
+
var defineIterator = require('../internals/iterator-define');
|
|
8
8
|
var IS_PURE = require('../internals/is-pure');
|
|
9
9
|
var DESCRIPTORS = require('../internals/descriptors');
|
|
10
10
|
|
package/modules/es.array.join.js
CHANGED
|
@@ -5,7 +5,7 @@ var IndexedObject = require('../internals/indexed-object');
|
|
|
5
5
|
var toIndexedObject = require('../internals/to-indexed-object');
|
|
6
6
|
var arrayMethodIsStrict = require('../internals/array-method-is-strict');
|
|
7
7
|
|
|
8
|
-
var
|
|
8
|
+
var nativeJoin = uncurryThis([].join);
|
|
9
9
|
|
|
10
10
|
var ES3_STRINGS = IndexedObject != Object;
|
|
11
11
|
var STRICT_METHOD = arrayMethodIsStrict('join', ',');
|
|
@@ -14,6 +14,6 @@ var STRICT_METHOD = arrayMethodIsStrict('join', ',');
|
|
|
14
14
|
// https://tc39.es/ecma262/#sec-array.prototype.join
|
|
15
15
|
$({ target: 'Array', proto: true, forced: ES3_STRINGS || !STRICT_METHOD }, {
|
|
16
16
|
join: function join(separator) {
|
|
17
|
-
return
|
|
17
|
+
return nativeJoin(toIndexedObject(this), separator === undefined ? ',' : separator);
|
|
18
18
|
}
|
|
19
19
|
});
|
package/modules/es.array.push.js
CHANGED
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
var $ = require('../internals/export');
|
|
3
3
|
var toObject = require('../internals/to-object');
|
|
4
4
|
var lengthOfArrayLike = require('../internals/length-of-array-like');
|
|
5
|
+
var setArrayLength = require('../internals/array-set-length');
|
|
5
6
|
var doesNotExceedSafeInteger = require('../internals/does-not-exceed-safe-integer');
|
|
6
7
|
var fails = require('../internals/fails');
|
|
7
8
|
|
|
@@ -33,7 +34,7 @@ $({ target: 'Array', proto: true, arity: 1, forced: INCORRECT_TO_LENGTH || SILEN
|
|
|
33
34
|
O[len] = arguments[i];
|
|
34
35
|
len++;
|
|
35
36
|
}
|
|
36
|
-
O
|
|
37
|
+
setArrayLength(O, len);
|
|
37
38
|
return len;
|
|
38
39
|
}
|
|
39
40
|
});
|
|
@@ -3,7 +3,7 @@ var $ = require('../internals/export');
|
|
|
3
3
|
var uncurryThis = require('../internals/function-uncurry-this');
|
|
4
4
|
var isArray = require('../internals/is-array');
|
|
5
5
|
|
|
6
|
-
var
|
|
6
|
+
var nativeReverse = uncurryThis([].reverse);
|
|
7
7
|
var test = [1, 2];
|
|
8
8
|
|
|
9
9
|
// `Array.prototype.reverse` method
|
|
@@ -14,6 +14,6 @@ $({ target: 'Array', proto: true, forced: String(test) === String(test.reverse()
|
|
|
14
14
|
reverse: function reverse() {
|
|
15
15
|
// eslint-disable-next-line no-self-assign -- dirty hack
|
|
16
16
|
if (isArray(this)) this.length = this.length;
|
|
17
|
-
return
|
|
17
|
+
return nativeReverse(this);
|
|
18
18
|
}
|
|
19
19
|
});
|
|
@@ -9,7 +9,7 @@ var toIndexedObject = require('../internals/to-indexed-object');
|
|
|
9
9
|
var createProperty = require('../internals/create-property');
|
|
10
10
|
var wellKnownSymbol = require('../internals/well-known-symbol');
|
|
11
11
|
var arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');
|
|
12
|
-
var
|
|
12
|
+
var nativeSlice = require('../internals/array-slice');
|
|
13
13
|
|
|
14
14
|
var HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('slice');
|
|
15
15
|
|
|
@@ -38,7 +38,7 @@ $({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, {
|
|
|
38
38
|
if (Constructor === null) Constructor = undefined;
|
|
39
39
|
}
|
|
40
40
|
if (Constructor === $Array || Constructor === undefined) {
|
|
41
|
-
return
|
|
41
|
+
return nativeSlice(O, k, fin);
|
|
42
42
|
}
|
|
43
43
|
}
|
|
44
44
|
result = new (Constructor === undefined ? $Array : Constructor)(max(fin - k, 0));
|
package/modules/es.array.sort.js
CHANGED
|
@@ -15,7 +15,7 @@ var V8 = require('../internals/engine-v8-version');
|
|
|
15
15
|
var WEBKIT = require('../internals/engine-webkit-version');
|
|
16
16
|
|
|
17
17
|
var test = [];
|
|
18
|
-
var
|
|
18
|
+
var nativeSort = uncurryThis(test.sort);
|
|
19
19
|
var push = uncurryThis(test.push);
|
|
20
20
|
|
|
21
21
|
// IE8-
|
|
@@ -83,7 +83,7 @@ $({ target: 'Array', proto: true, forced: FORCED }, {
|
|
|
83
83
|
|
|
84
84
|
var array = toObject(this);
|
|
85
85
|
|
|
86
|
-
if (STABLE_SORT) return comparefn === undefined ?
|
|
86
|
+
if (STABLE_SORT) return comparefn === undefined ? nativeSort(array) : nativeSort(array, comparefn);
|
|
87
87
|
|
|
88
88
|
var items = [];
|
|
89
89
|
var arrayLength = lengthOfArrayLike(array);
|
|
@@ -95,7 +95,7 @@ $({ target: 'Array', proto: true, forced: FORCED }, {
|
|
|
95
95
|
|
|
96
96
|
internalSort(items, getSortCompare(comparefn));
|
|
97
97
|
|
|
98
|
-
itemsLength = items
|
|
98
|
+
itemsLength = lengthOfArrayLike(items);
|
|
99
99
|
index = 0;
|
|
100
100
|
|
|
101
101
|
while (index < itemsLength) array[index] = items[index++];
|
|
@@ -4,6 +4,7 @@ var toObject = require('../internals/to-object');
|
|
|
4
4
|
var toAbsoluteIndex = require('../internals/to-absolute-index');
|
|
5
5
|
var toIntegerOrInfinity = require('../internals/to-integer-or-infinity');
|
|
6
6
|
var lengthOfArrayLike = require('../internals/length-of-array-like');
|
|
7
|
+
var setArrayLength = require('../internals/array-set-length');
|
|
7
8
|
var doesNotExceedSafeInteger = require('../internals/does-not-exceed-safe-integer');
|
|
8
9
|
var arraySpeciesCreate = require('../internals/array-species-create');
|
|
9
10
|
var createProperty = require('../internals/create-property');
|
|
@@ -60,7 +61,7 @@ $({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, {
|
|
|
60
61
|
for (k = 0; k < insertCount; k++) {
|
|
61
62
|
O[k + actualStart] = arguments[k + 2];
|
|
62
63
|
}
|
|
63
|
-
O
|
|
64
|
+
setArrayLength(O, len - actualDeleteCount + insertCount);
|
|
64
65
|
return A;
|
|
65
66
|
}
|
|
66
67
|
});
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
var $ = require('../internals/export');
|
|
3
3
|
var toObject = require('../internals/to-object');
|
|
4
4
|
var lengthOfArrayLike = require('../internals/length-of-array-like');
|
|
5
|
+
var setArrayLength = require('../internals/array-set-length');
|
|
5
6
|
var deletePropertyOrThrow = require('../internals/delete-property-or-throw');
|
|
6
7
|
var doesNotExceedSafeInteger = require('../internals/does-not-exceed-safe-integer');
|
|
7
8
|
|
|
@@ -37,6 +38,6 @@ $({ target: 'Array', proto: true, arity: 1, forced: INCORRECT_RESULT || SILENT_O
|
|
|
37
38
|
for (var j = 0; j < argCount; j++) {
|
|
38
39
|
O[j] = arguments[j];
|
|
39
40
|
}
|
|
40
|
-
} return O
|
|
41
|
+
} return setArrayLength(O, len + argCount);
|
|
41
42
|
}
|
|
42
43
|
});
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
var $ = require('../internals/export');
|
|
2
2
|
var ArrayBufferModule = require('../internals/array-buffer');
|
|
3
|
-
var NATIVE_ARRAY_BUFFER = require('../internals/array-buffer-
|
|
3
|
+
var NATIVE_ARRAY_BUFFER = require('../internals/array-buffer-basic-detection');
|
|
4
4
|
|
|
5
5
|
// `DataView` constructor
|
|
6
6
|
// https://tc39.es/ecma262/#sec-dataview-constructor
|
package/modules/es.date.now.js
CHANGED
|
@@ -3,12 +3,12 @@ var $ = require('../internals/export');
|
|
|
3
3
|
var uncurryThis = require('../internals/function-uncurry-this');
|
|
4
4
|
|
|
5
5
|
var $Date = Date;
|
|
6
|
-
var
|
|
6
|
+
var thisTimeValue = uncurryThis($Date.prototype.getTime);
|
|
7
7
|
|
|
8
8
|
// `Date.now` method
|
|
9
9
|
// https://tc39.es/ecma262/#sec-date.now
|
|
10
10
|
$({ target: 'Date', stat: true }, {
|
|
11
11
|
now: function now() {
|
|
12
|
-
return
|
|
12
|
+
return thisTimeValue(new $Date());
|
|
13
13
|
}
|
|
14
14
|
});
|
|
@@ -4,7 +4,7 @@ var uncurryThis = require('../internals/function-uncurry-this');
|
|
|
4
4
|
var toIntegerOrInfinity = require('../internals/to-integer-or-infinity');
|
|
5
5
|
|
|
6
6
|
var DatePrototype = Date.prototype;
|
|
7
|
-
var
|
|
7
|
+
var thisTimeValue = uncurryThis(DatePrototype.getTime);
|
|
8
8
|
var setFullYear = uncurryThis(DatePrototype.setFullYear);
|
|
9
9
|
|
|
10
10
|
// `Date.prototype.setYear` method
|
|
@@ -12,7 +12,7 @@ var setFullYear = uncurryThis(DatePrototype.setFullYear);
|
|
|
12
12
|
$({ target: 'Date', proto: true }, {
|
|
13
13
|
setYear: function setYear(year) {
|
|
14
14
|
// validate
|
|
15
|
-
|
|
15
|
+
thisTimeValue(this);
|
|
16
16
|
var yi = toIntegerOrInfinity(year);
|
|
17
17
|
var yyyy = 0 <= yi && yi <= 99 ? yi + 1900 : yi;
|
|
18
18
|
return setFullYear(this, yyyy);
|
|
@@ -5,15 +5,15 @@ var defineBuiltIn = require('../internals/define-built-in');
|
|
|
5
5
|
var DatePrototype = Date.prototype;
|
|
6
6
|
var INVALID_DATE = 'Invalid Date';
|
|
7
7
|
var TO_STRING = 'toString';
|
|
8
|
-
var
|
|
9
|
-
var
|
|
8
|
+
var nativeDateToString = uncurryThis(DatePrototype[TO_STRING]);
|
|
9
|
+
var thisTimeValue = uncurryThis(DatePrototype.getTime);
|
|
10
10
|
|
|
11
11
|
// `Date.prototype.toString` method
|
|
12
12
|
// https://tc39.es/ecma262/#sec-date.prototype.tostring
|
|
13
13
|
if (String(new Date(NaN)) != INVALID_DATE) {
|
|
14
14
|
defineBuiltIn(DatePrototype, TO_STRING, function toString() {
|
|
15
|
-
var value =
|
|
15
|
+
var value = thisTimeValue(this);
|
|
16
16
|
// eslint-disable-next-line no-self-compare -- NaN check
|
|
17
|
-
return value === value ?
|
|
17
|
+
return value === value ? nativeDateToString(this) : INVALID_DATE;
|
|
18
18
|
});
|
|
19
19
|
}
|
|
@@ -9,7 +9,7 @@ var isCallable = require('../internals/is-callable');
|
|
|
9
9
|
var isObject = require('../internals/is-object');
|
|
10
10
|
var isSymbol = require('../internals/is-symbol');
|
|
11
11
|
var arraySlice = require('../internals/array-slice');
|
|
12
|
-
var NATIVE_SYMBOL = require('../internals/
|
|
12
|
+
var NATIVE_SYMBOL = require('../internals/symbol-constructor-detection');
|
|
13
13
|
|
|
14
14
|
var $stringify = getBuiltIn('JSON', 'stringify');
|
|
15
15
|
var exec = uncurryThis(/./.exec);
|
|
@@ -14,31 +14,31 @@ var abs = Math.abs;
|
|
|
14
14
|
var floor = Math.floor;
|
|
15
15
|
var pow = Math.pow;
|
|
16
16
|
var round = Math.round;
|
|
17
|
-
var
|
|
17
|
+
var nativeToExponential = uncurryThis(1.0.toExponential);
|
|
18
18
|
var repeat = uncurryThis($repeat);
|
|
19
19
|
var stringSlice = uncurryThis(''.slice);
|
|
20
20
|
|
|
21
21
|
// Edge 17-
|
|
22
|
-
var ROUNDS_PROPERLY =
|
|
22
|
+
var ROUNDS_PROPERLY = nativeToExponential(-6.9e-11, 4) === '-6.9000e-11'
|
|
23
23
|
// IE11- && Edge 14-
|
|
24
|
-
&&
|
|
24
|
+
&& nativeToExponential(1.255, 2) === '1.25e+0'
|
|
25
25
|
// FF86-, V8 ~ Chrome 49-50
|
|
26
|
-
&&
|
|
26
|
+
&& nativeToExponential(12345, 3) === '1.235e+4'
|
|
27
27
|
// FF86-, V8 ~ Chrome 49-50
|
|
28
|
-
&&
|
|
28
|
+
&& nativeToExponential(25, 0) === '3e+1';
|
|
29
29
|
|
|
30
30
|
// IE8-
|
|
31
31
|
var THROWS_ON_INFINITY_FRACTION = fails(function () {
|
|
32
|
-
|
|
32
|
+
nativeToExponential(1, Infinity);
|
|
33
33
|
}) && fails(function () {
|
|
34
|
-
|
|
34
|
+
nativeToExponential(1, -Infinity);
|
|
35
35
|
});
|
|
36
36
|
|
|
37
37
|
// Safari <11 && FF <50
|
|
38
38
|
var PROPER_NON_FINITE_THIS_CHECK = !fails(function () {
|
|
39
|
-
|
|
39
|
+
nativeToExponential(Infinity, Infinity);
|
|
40
40
|
}) && !fails(function () {
|
|
41
|
-
|
|
41
|
+
nativeToExponential(NaN, Infinity);
|
|
42
42
|
});
|
|
43
43
|
|
|
44
44
|
var FORCED = !ROUNDS_PROPERLY || !THROWS_ON_INFINITY_FRACTION || !PROPER_NON_FINITE_THIS_CHECK;
|
|
@@ -48,12 +48,12 @@ var FORCED = !ROUNDS_PROPERLY || !THROWS_ON_INFINITY_FRACTION || !PROPER_NON_FIN
|
|
|
48
48
|
$({ target: 'Number', proto: true, forced: FORCED }, {
|
|
49
49
|
toExponential: function toExponential(fractionDigits) {
|
|
50
50
|
var x = thisNumberValue(this);
|
|
51
|
-
if (fractionDigits === undefined) return
|
|
51
|
+
if (fractionDigits === undefined) return nativeToExponential(x);
|
|
52
52
|
var f = toIntegerOrInfinity(fractionDigits);
|
|
53
53
|
if (!$isFinite(x)) return String(x);
|
|
54
54
|
// TODO: ES2018 increased the maximum number of fraction digits to 100, need to improve the implementation
|
|
55
55
|
if (f < 0 || f > 20) throw $RangeError('Incorrect fraction digits');
|
|
56
|
-
if (ROUNDS_PROPERLY) return
|
|
56
|
+
if (ROUNDS_PROPERLY) return nativeToExponential(x, f);
|
|
57
57
|
var s = '';
|
|
58
58
|
var m = '';
|
|
59
59
|
var e = 0;
|
|
@@ -11,7 +11,7 @@ var $String = String;
|
|
|
11
11
|
var floor = Math.floor;
|
|
12
12
|
var repeat = uncurryThis($repeat);
|
|
13
13
|
var stringSlice = uncurryThis(''.slice);
|
|
14
|
-
var
|
|
14
|
+
var nativeToFixed = uncurryThis(1.0.toFixed);
|
|
15
15
|
|
|
16
16
|
var pow = function (x, n, acc) {
|
|
17
17
|
return n === 0 ? acc : n % 2 === 1 ? pow(x, n - 1, acc * x) : pow(x * x, n / 2, acc);
|
|
@@ -62,13 +62,13 @@ var dataToString = function (data) {
|
|
|
62
62
|
};
|
|
63
63
|
|
|
64
64
|
var FORCED = fails(function () {
|
|
65
|
-
return
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
65
|
+
return nativeToFixed(0.00008, 3) !== '0.000' ||
|
|
66
|
+
nativeToFixed(0.9, 0) !== '1' ||
|
|
67
|
+
nativeToFixed(1.255, 2) !== '1.25' ||
|
|
68
|
+
nativeToFixed(1000000000000000128.0, 0) !== '1000000000000000128';
|
|
69
69
|
}) || !fails(function () {
|
|
70
70
|
// V8 ~ Android 4.3-
|
|
71
|
-
|
|
71
|
+
nativeToFixed({});
|
|
72
72
|
});
|
|
73
73
|
|
|
74
74
|
// `Number.prototype.toFixed` method
|
|
@@ -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,7 @@
|
|
|
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
6
|
|
|
7
7
|
var STRING_ITERATOR = 'String Iterator';
|
|
8
8
|
var setInternalState = InternalStateModule.set;
|
|
@@ -3,11 +3,12 @@
|
|
|
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
7
|
var requireObjectCoercible = require('../internals/require-object-coercible');
|
|
8
8
|
var toLength = require('../internals/to-length');
|
|
9
9
|
var toString = require('../internals/to-string');
|
|
10
10
|
var anObject = require('../internals/an-object');
|
|
11
|
+
var isNullOrUndefined = require('../internals/is-null-or-undefined');
|
|
11
12
|
var classof = require('../internals/classof-raw');
|
|
12
13
|
var isRegExp = require('../internals/is-regexp');
|
|
13
14
|
var getRegExpFlags = require('../internals/regexp-get-flags');
|
|
@@ -29,10 +30,10 @@ var getInternalState = InternalStateModule.getterFor(REGEXP_STRING_ITERATOR);
|
|
|
29
30
|
var RegExpPrototype = RegExp.prototype;
|
|
30
31
|
var $TypeError = TypeError;
|
|
31
32
|
var stringIndexOf = uncurryThis(''.indexOf);
|
|
32
|
-
var
|
|
33
|
+
var nativeMatchAll = uncurryThis(''.matchAll);
|
|
33
34
|
|
|
34
|
-
var WORKS_WITH_NON_GLOBAL_REGEX = !!
|
|
35
|
-
|
|
35
|
+
var WORKS_WITH_NON_GLOBAL_REGEX = !!nativeMatchAll && !fails(function () {
|
|
36
|
+
nativeMatchAll('a', /./);
|
|
36
37
|
});
|
|
37
38
|
|
|
38
39
|
var $RegExpStringIterator = createIteratorConstructor(function RegExpStringIterator(regexp, string, $global, fullUnicode) {
|
|
@@ -78,16 +79,16 @@ $({ target: 'String', proto: true, forced: WORKS_WITH_NON_GLOBAL_REGEX }, {
|
|
|
78
79
|
matchAll: function matchAll(regexp) {
|
|
79
80
|
var O = requireObjectCoercible(this);
|
|
80
81
|
var flags, S, matcher, rx;
|
|
81
|
-
if (regexp
|
|
82
|
+
if (!isNullOrUndefined(regexp)) {
|
|
82
83
|
if (isRegExp(regexp)) {
|
|
83
84
|
flags = toString(requireObjectCoercible(getRegExpFlags(regexp)));
|
|
84
85
|
if (!~stringIndexOf(flags, 'g')) throw $TypeError('`.matchAll` does not allow non-global regexes');
|
|
85
86
|
}
|
|
86
|
-
if (WORKS_WITH_NON_GLOBAL_REGEX) return
|
|
87
|
+
if (WORKS_WITH_NON_GLOBAL_REGEX) return nativeMatchAll(O, regexp);
|
|
87
88
|
matcher = getMethod(regexp, MATCH_ALL);
|
|
88
89
|
if (matcher === undefined && IS_PURE && classof(regexp) == 'RegExp') matcher = $matchAll;
|
|
89
90
|
if (matcher) return call(matcher, regexp, O);
|
|
90
|
-
} else if (WORKS_WITH_NON_GLOBAL_REGEX) return
|
|
91
|
+
} else if (WORKS_WITH_NON_GLOBAL_REGEX) return nativeMatchAll(O, regexp);
|
|
91
92
|
S = toString(O);
|
|
92
93
|
rx = new RegExp(regexp, 'g');
|
|
93
94
|
return IS_PURE ? call($matchAll, rx, S) : rx[MATCH_ALL](S);
|