core-js 3.22.2 → 3.22.5
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/internals/array-buffer-view-core.js +4 -4
- package/internals/array-buffer.js +3 -3
- package/internals/async-from-sync-iterator.js +2 -2
- package/internals/async-iterator-create-proxy.js +2 -2
- package/internals/async-iterator-prototype.js +2 -2
- package/internals/collection-strong.js +3 -3
- package/internals/collection-weak.js +3 -3
- package/internals/collection.js +3 -3
- package/internals/define-built-in-accessor.js +8 -0
- package/internals/define-built-in.js +25 -0
- package/internals/define-built-ins.js +6 -0
- package/internals/define-iterator.js +4 -4
- package/internals/export.js +2 -3
- package/internals/fix-regexp-well-known-symbol-logic.js +3 -3
- package/internals/iterator-create-proxy.js +2 -2
- package/internals/iterators-core.js +2 -2
- package/internals/make-built-in.js +47 -0
- package/internals/shared.js +2 -2
- package/internals/symbol-define-to-primitive.js +3 -3
- package/internals/typed-array-constructor.js +3 -3
- package/modules/es.aggregate-error.cause.js +1 -1
- package/modules/es.aggregate-error.constructor.js +1 -1
- package/modules/es.array-buffer.constructor.js +1 -1
- package/modules/es.array.concat.js +1 -1
- package/modules/es.array.includes.js +7 -1
- package/modules/es.data-view.constructor.js +1 -1
- package/modules/es.date.to-json.js +1 -1
- package/modules/es.date.to-primitive.js +2 -2
- package/modules/es.date.to-string.js +2 -2
- package/modules/es.error.cause.js +2 -2
- package/modules/es.error.to-string.js +2 -2
- package/modules/es.function.has-instance.js +3 -2
- package/modules/es.json.stringify.js +1 -1
- package/modules/es.math.hypot.js +1 -1
- package/modules/es.number.constructor.js +2 -2
- package/modules/es.object.assign.js +1 -1
- package/modules/es.object.to-string.js +2 -2
- package/modules/es.promise.catch.js +2 -2
- package/modules/es.promise.constructor.js +17 -21
- package/modules/es.promise.finally.js +2 -2
- package/modules/es.regexp.constructor.js +2 -2
- package/modules/es.regexp.dot-all.js +3 -3
- package/modules/es.regexp.flags.js +2 -2
- package/modules/es.regexp.sticky.js +3 -3
- package/modules/es.regexp.to-string.js +2 -2
- package/modules/es.string.from-code-point.js +1 -1
- package/modules/es.string.match-all.js +2 -2
- package/modules/es.symbol.constructor.js +5 -5
- package/modules/es.symbol.description.js +1 -1
- package/modules/es.weak-map.constructor.js +2 -2
- package/modules/esnext.array.last-index.js +2 -2
- package/modules/esnext.array.last-item.js +2 -2
- package/modules/esnext.array.to-spliced.js +1 -1
- package/modules/esnext.async-iterator.constructor.js +1 -1
- package/modules/esnext.iterator.constructor.js +1 -1
- package/modules/esnext.map.merge.js +1 -1
- package/modules/esnext.observable.constructor.js +12 -12
- package/modules/esnext.typed-array.to-spliced.js +1 -1
- package/modules/web.dom-exception.constructor.js +10 -10
- package/modules/web.dom-exception.stack.js +1 -1
- package/modules/web.structured-clone.js +21 -9
- package/modules/web.url-search-params.constructor.js +7 -7
- package/modules/web.url.constructor.js +43 -45
- package/package.json +2 -3
- package/internals/redefine-all.js +0 -6
- package/internals/redefine.js +0 -46
package/modules/es.math.hypot.js
CHANGED
|
@@ -11,7 +11,7 @@ var BUGGY = !!$hypot && $hypot(Infinity, NaN) !== Infinity;
|
|
|
11
11
|
|
|
12
12
|
// `Math.hypot` method
|
|
13
13
|
// https://tc39.es/ecma262/#sec-math.hypot
|
|
14
|
-
$({ target: 'Math', stat: true, forced: BUGGY }, {
|
|
14
|
+
$({ target: 'Math', stat: true, arity: 2, forced: BUGGY }, {
|
|
15
15
|
// eslint-disable-next-line no-unused-vars -- required for `.length`
|
|
16
16
|
hypot: function hypot(value1, value2) {
|
|
17
17
|
var sum = 0;
|
|
@@ -3,7 +3,7 @@ var DESCRIPTORS = require('../internals/descriptors');
|
|
|
3
3
|
var global = require('../internals/global');
|
|
4
4
|
var uncurryThis = require('../internals/function-uncurry-this');
|
|
5
5
|
var isForced = require('../internals/is-forced');
|
|
6
|
-
var
|
|
6
|
+
var defineBuiltIn = require('../internals/define-built-in');
|
|
7
7
|
var hasOwn = require('../internals/has-own-property');
|
|
8
8
|
var inheritIfRequired = require('../internals/inherit-if-required');
|
|
9
9
|
var isPrototypeOf = require('../internals/object-is-prototype-of');
|
|
@@ -84,5 +84,5 @@ if (isForced(NUMBER, !NativeNumber(' 0o1') || !NativeNumber('0b1') || NativeNumb
|
|
|
84
84
|
}
|
|
85
85
|
NumberWrapper.prototype = NumberPrototype;
|
|
86
86
|
NumberPrototype.constructor = NumberWrapper;
|
|
87
|
-
|
|
87
|
+
defineBuiltIn(global, NUMBER, NumberWrapper, { constructor: true });
|
|
88
88
|
}
|
|
@@ -4,6 +4,6 @@ var assign = require('../internals/object-assign');
|
|
|
4
4
|
// `Object.assign` method
|
|
5
5
|
// https://tc39.es/ecma262/#sec-object.assign
|
|
6
6
|
// eslint-disable-next-line es-x/no-object-assign -- required for testing
|
|
7
|
-
$({ target: 'Object', stat: true, forced: Object.assign !== assign }, {
|
|
7
|
+
$({ target: 'Object', stat: true, arity: 2, forced: Object.assign !== assign }, {
|
|
8
8
|
assign: assign
|
|
9
9
|
});
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
var TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');
|
|
2
|
-
var
|
|
2
|
+
var defineBuiltIn = require('../internals/define-built-in');
|
|
3
3
|
var toString = require('../internals/object-to-string');
|
|
4
4
|
|
|
5
5
|
// `Object.prototype.toString` method
|
|
6
6
|
// https://tc39.es/ecma262/#sec-object.prototype.tostring
|
|
7
7
|
if (!TO_STRING_TAG_SUPPORT) {
|
|
8
|
-
|
|
8
|
+
defineBuiltIn(Object.prototype, 'toString', toString, { unsafe: true });
|
|
9
9
|
}
|
|
@@ -5,7 +5,7 @@ var FORCED_PROMISE_CONSTRUCTOR = require('../internals/promise-constructor-detec
|
|
|
5
5
|
var NativePromiseConstructor = require('../internals/promise-native-constructor');
|
|
6
6
|
var getBuiltIn = require('../internals/get-built-in');
|
|
7
7
|
var isCallable = require('../internals/is-callable');
|
|
8
|
-
var
|
|
8
|
+
var defineBuiltIn = require('../internals/define-built-in');
|
|
9
9
|
|
|
10
10
|
var NativePromisePrototype = NativePromiseConstructor && NativePromiseConstructor.prototype;
|
|
11
11
|
|
|
@@ -21,6 +21,6 @@ $({ target: 'Promise', proto: true, forced: FORCED_PROMISE_CONSTRUCTOR, real: tr
|
|
|
21
21
|
if (!IS_PURE && isCallable(NativePromiseConstructor)) {
|
|
22
22
|
var method = getBuiltIn('Promise').prototype['catch'];
|
|
23
23
|
if (NativePromisePrototype['catch'] !== method) {
|
|
24
|
-
|
|
24
|
+
defineBuiltIn(NativePromisePrototype, 'catch', method, { unsafe: true });
|
|
25
25
|
}
|
|
26
26
|
}
|
|
@@ -4,8 +4,7 @@ var IS_PURE = require('../internals/is-pure');
|
|
|
4
4
|
var IS_NODE = require('../internals/engine-is-node');
|
|
5
5
|
var global = require('../internals/global');
|
|
6
6
|
var call = require('../internals/function-call');
|
|
7
|
-
var
|
|
8
|
-
var redefineAll = require('../internals/redefine-all');
|
|
7
|
+
var defineBuiltIn = require('../internals/define-built-in');
|
|
9
8
|
var setPrototypeOf = require('../internals/object-set-prototype-of');
|
|
10
9
|
var setToStringTag = require('../internals/set-to-string-tag');
|
|
11
10
|
var setSpecies = require('../internals/set-species');
|
|
@@ -225,23 +224,20 @@ if (FORCED_PROMISE_CONSTRUCTOR) {
|
|
|
225
224
|
});
|
|
226
225
|
};
|
|
227
226
|
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
});
|
|
243
|
-
return reaction.promise;
|
|
244
|
-
}
|
|
227
|
+
// `Promise.prototype.then` method
|
|
228
|
+
// https://tc39.es/ecma262/#sec-promise.prototype.then
|
|
229
|
+
Internal.prototype = defineBuiltIn(PromisePrototype, 'then', function then(onFulfilled, onRejected) {
|
|
230
|
+
var state = getInternalPromiseState(this);
|
|
231
|
+
var reaction = newPromiseCapability(speciesConstructor(this, PromiseConstructor));
|
|
232
|
+
state.parent = true;
|
|
233
|
+
reaction.ok = isCallable(onFulfilled) ? onFulfilled : true;
|
|
234
|
+
reaction.fail = isCallable(onRejected) && onRejected;
|
|
235
|
+
reaction.domain = IS_NODE ? process.domain : undefined;
|
|
236
|
+
if (state.state == PENDING) state.reactions.add(reaction);
|
|
237
|
+
else microtask(function () {
|
|
238
|
+
callReaction(reaction, state);
|
|
239
|
+
});
|
|
240
|
+
return reaction.promise;
|
|
245
241
|
});
|
|
246
242
|
|
|
247
243
|
OwnPromiseCapability = function () {
|
|
@@ -263,7 +259,7 @@ if (FORCED_PROMISE_CONSTRUCTOR) {
|
|
|
263
259
|
|
|
264
260
|
if (!NATIVE_PROMISE_SUBCLASSING) {
|
|
265
261
|
// make `Promise#then` return a polyfilled `Promise` for native promise-based APIs
|
|
266
|
-
|
|
262
|
+
defineBuiltIn(NativePromisePrototype, 'then', function then(onFulfilled, onRejected) {
|
|
267
263
|
var that = this;
|
|
268
264
|
return new PromiseConstructor(function (resolve, reject) {
|
|
269
265
|
call(nativeThen, that, resolve, reject);
|
|
@@ -284,7 +280,7 @@ if (FORCED_PROMISE_CONSTRUCTOR) {
|
|
|
284
280
|
}
|
|
285
281
|
}
|
|
286
282
|
|
|
287
|
-
$({ global: true, wrap: true, forced: FORCED_PROMISE_CONSTRUCTOR }, {
|
|
283
|
+
$({ global: true, constructor: true, wrap: true, forced: FORCED_PROMISE_CONSTRUCTOR }, {
|
|
288
284
|
Promise: PromiseConstructor
|
|
289
285
|
});
|
|
290
286
|
|
|
@@ -7,7 +7,7 @@ var getBuiltIn = require('../internals/get-built-in');
|
|
|
7
7
|
var isCallable = require('../internals/is-callable');
|
|
8
8
|
var speciesConstructor = require('../internals/species-constructor');
|
|
9
9
|
var promiseResolve = require('../internals/promise-resolve');
|
|
10
|
-
var
|
|
10
|
+
var defineBuiltIn = require('../internals/define-built-in');
|
|
11
11
|
|
|
12
12
|
var NativePromisePrototype = NativePromiseConstructor && NativePromiseConstructor.prototype;
|
|
13
13
|
|
|
@@ -38,6 +38,6 @@ $({ target: 'Promise', proto: true, real: true, forced: NON_GENERIC }, {
|
|
|
38
38
|
if (!IS_PURE && isCallable(NativePromiseConstructor)) {
|
|
39
39
|
var method = getBuiltIn('Promise').prototype['finally'];
|
|
40
40
|
if (NativePromisePrototype['finally'] !== method) {
|
|
41
|
-
|
|
41
|
+
defineBuiltIn(NativePromisePrototype, 'finally', method, { unsafe: true });
|
|
42
42
|
}
|
|
43
43
|
}
|
|
@@ -11,7 +11,7 @@ var toString = require('../internals/to-string');
|
|
|
11
11
|
var getRegExpFlags = require('../internals/regexp-get-flags');
|
|
12
12
|
var stickyHelpers = require('../internals/regexp-sticky-helpers');
|
|
13
13
|
var proxyAccessor = require('../internals/proxy-accessor');
|
|
14
|
-
var
|
|
14
|
+
var defineBuiltIn = require('../internals/define-built-in');
|
|
15
15
|
var fails = require('../internals/fails');
|
|
16
16
|
var hasOwn = require('../internals/has-own-property');
|
|
17
17
|
var enforceInternalState = require('../internals/internal-state').enforce;
|
|
@@ -183,7 +183,7 @@ if (isForced('RegExp', BASE_FORCED)) {
|
|
|
183
183
|
|
|
184
184
|
RegExpPrototype.constructor = RegExpWrapper;
|
|
185
185
|
RegExpWrapper.prototype = RegExpPrototype;
|
|
186
|
-
|
|
186
|
+
defineBuiltIn(global, 'RegExp', RegExpWrapper, { constructor: true });
|
|
187
187
|
}
|
|
188
188
|
|
|
189
189
|
// https://tc39.es/ecma262/#sec-get-regexp-@@species
|
|
@@ -2,7 +2,7 @@ var global = require('../internals/global');
|
|
|
2
2
|
var DESCRIPTORS = require('../internals/descriptors');
|
|
3
3
|
var UNSUPPORTED_DOT_ALL = require('../internals/regexp-unsupported-dot-all');
|
|
4
4
|
var classof = require('../internals/classof-raw');
|
|
5
|
-
var
|
|
5
|
+
var defineBuiltInAccessor = require('../internals/define-built-in-accessor');
|
|
6
6
|
var getInternalState = require('../internals/internal-state').get;
|
|
7
7
|
|
|
8
8
|
var RegExpPrototype = RegExp.prototype;
|
|
@@ -11,9 +11,9 @@ var TypeError = global.TypeError;
|
|
|
11
11
|
// `RegExp.prototype.dotAll` getter
|
|
12
12
|
// https://tc39.es/ecma262/#sec-get-regexp.prototype.dotall
|
|
13
13
|
if (DESCRIPTORS && UNSUPPORTED_DOT_ALL) {
|
|
14
|
-
|
|
14
|
+
defineBuiltInAccessor(RegExpPrototype, 'dotAll', {
|
|
15
15
|
configurable: true,
|
|
16
|
-
get: function () {
|
|
16
|
+
get: function dotAll() {
|
|
17
17
|
if (this === RegExpPrototype) return undefined;
|
|
18
18
|
// We can't use InternalStateModule.getterFor because
|
|
19
19
|
// we don't add metadata for regexps created by a literal.
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
var DESCRIPTORS = require('../internals/descriptors');
|
|
2
|
-
var
|
|
2
|
+
var defineBuiltInAccessor = require('../internals/define-built-in-accessor');
|
|
3
3
|
var regExpFlags = require('../internals/regexp-flags');
|
|
4
4
|
var fails = require('../internals/fails');
|
|
5
5
|
|
|
@@ -12,7 +12,7 @@ var FORCED = DESCRIPTORS && fails(function () {
|
|
|
12
12
|
|
|
13
13
|
// `RegExp.prototype.flags` getter
|
|
14
14
|
// https://tc39.es/ecma262/#sec-get-regexp.prototype.flags
|
|
15
|
-
if (FORCED)
|
|
15
|
+
if (FORCED) defineBuiltInAccessor(RegExpPrototype, 'flags', {
|
|
16
16
|
configurable: true,
|
|
17
17
|
get: regExpFlags
|
|
18
18
|
});
|
|
@@ -2,7 +2,7 @@ var global = require('../internals/global');
|
|
|
2
2
|
var DESCRIPTORS = require('../internals/descriptors');
|
|
3
3
|
var MISSED_STICKY = require('../internals/regexp-sticky-helpers').MISSED_STICKY;
|
|
4
4
|
var classof = require('../internals/classof-raw');
|
|
5
|
-
var
|
|
5
|
+
var defineBuiltInAccessor = require('../internals/define-built-in-accessor');
|
|
6
6
|
var getInternalState = require('../internals/internal-state').get;
|
|
7
7
|
|
|
8
8
|
var RegExpPrototype = RegExp.prototype;
|
|
@@ -11,9 +11,9 @@ var TypeError = global.TypeError;
|
|
|
11
11
|
// `RegExp.prototype.sticky` getter
|
|
12
12
|
// https://tc39.es/ecma262/#sec-get-regexp.prototype.sticky
|
|
13
13
|
if (DESCRIPTORS && MISSED_STICKY) {
|
|
14
|
-
|
|
14
|
+
defineBuiltInAccessor(RegExpPrototype, 'sticky', {
|
|
15
15
|
configurable: true,
|
|
16
|
-
get: function () {
|
|
16
|
+
get: function sticky() {
|
|
17
17
|
if (this === RegExpPrototype) return undefined;
|
|
18
18
|
// We can't use InternalStateModule.getterFor because
|
|
19
19
|
// we don't add metadata for regexps created by a literal.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
var PROPER_FUNCTION_NAME = require('../internals/function-name').PROPER;
|
|
3
|
-
var
|
|
3
|
+
var defineBuiltIn = require('../internals/define-built-in');
|
|
4
4
|
var anObject = require('../internals/an-object');
|
|
5
5
|
var $toString = require('../internals/to-string');
|
|
6
6
|
var fails = require('../internals/fails');
|
|
@@ -17,7 +17,7 @@ var INCORRECT_NAME = PROPER_FUNCTION_NAME && n$ToString.name != TO_STRING;
|
|
|
17
17
|
// `RegExp.prototype.toString` method
|
|
18
18
|
// https://tc39.es/ecma262/#sec-regexp.prototype.tostring
|
|
19
19
|
if (NOT_GENERIC || INCORRECT_NAME) {
|
|
20
|
-
|
|
20
|
+
defineBuiltIn(RegExp.prototype, TO_STRING, function toString() {
|
|
21
21
|
var R = anObject(this);
|
|
22
22
|
var pattern = $toString(R.source);
|
|
23
23
|
var flags = $toString(getRegExpFlags(R));
|
|
@@ -14,7 +14,7 @@ var INCORRECT_LENGTH = !!$fromCodePoint && $fromCodePoint.length != 1;
|
|
|
14
14
|
|
|
15
15
|
// `String.fromCodePoint` method
|
|
16
16
|
// https://tc39.es/ecma262/#sec-string.fromcodepoint
|
|
17
|
-
$({ target: 'String', stat: true, forced: INCORRECT_LENGTH }, {
|
|
17
|
+
$({ target: 'String', stat: true, arity: 1, forced: INCORRECT_LENGTH }, {
|
|
18
18
|
// eslint-disable-next-line no-unused-vars -- required for `.length`
|
|
19
19
|
fromCodePoint: function fromCodePoint(x) {
|
|
20
20
|
var elements = [];
|
|
@@ -13,7 +13,7 @@ var classof = require('../internals/classof-raw');
|
|
|
13
13
|
var isRegExp = require('../internals/is-regexp');
|
|
14
14
|
var getRegExpFlags = require('../internals/regexp-get-flags');
|
|
15
15
|
var getMethod = require('../internals/get-method');
|
|
16
|
-
var
|
|
16
|
+
var defineBuiltIn = require('../internals/define-built-in');
|
|
17
17
|
var fails = require('../internals/fails');
|
|
18
18
|
var wellKnownSymbol = require('../internals/well-known-symbol');
|
|
19
19
|
var speciesConstructor = require('../internals/species-constructor');
|
|
@@ -95,4 +95,4 @@ $({ target: 'String', proto: true, forced: WORKS_WITH_NON_GLOBAL_REGEX }, {
|
|
|
95
95
|
}
|
|
96
96
|
});
|
|
97
97
|
|
|
98
|
-
IS_PURE || MATCH_ALL in RegExpPrototype ||
|
|
98
|
+
IS_PURE || MATCH_ALL in RegExpPrototype || defineBuiltIn(RegExpPrototype, MATCH_ALL, $matchAll);
|
|
@@ -23,7 +23,7 @@ var getOwnPropertyDescriptorModule = require('../internals/object-get-own-proper
|
|
|
23
23
|
var definePropertyModule = require('../internals/object-define-property');
|
|
24
24
|
var definePropertiesModule = require('../internals/object-define-properties');
|
|
25
25
|
var propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');
|
|
26
|
-
var
|
|
26
|
+
var defineBuiltIn = require('../internals/define-built-in');
|
|
27
27
|
var shared = require('../internals/shared');
|
|
28
28
|
var sharedKey = require('../internals/shared-key');
|
|
29
29
|
var hiddenKeys = require('../internals/hidden-keys');
|
|
@@ -174,11 +174,11 @@ if (!NATIVE_SYMBOL) {
|
|
|
174
174
|
|
|
175
175
|
SymbolPrototype = $Symbol[PROTOTYPE];
|
|
176
176
|
|
|
177
|
-
|
|
177
|
+
defineBuiltIn(SymbolPrototype, 'toString', function toString() {
|
|
178
178
|
return getInternalState(this).tag;
|
|
179
179
|
});
|
|
180
180
|
|
|
181
|
-
|
|
181
|
+
defineBuiltIn($Symbol, 'withoutSetter', function (description) {
|
|
182
182
|
return wrap(uid(description), description);
|
|
183
183
|
});
|
|
184
184
|
|
|
@@ -202,12 +202,12 @@ if (!NATIVE_SYMBOL) {
|
|
|
202
202
|
}
|
|
203
203
|
});
|
|
204
204
|
if (!IS_PURE) {
|
|
205
|
-
|
|
205
|
+
defineBuiltIn(ObjectPrototype, 'propertyIsEnumerable', $propertyIsEnumerable, { unsafe: true });
|
|
206
206
|
}
|
|
207
207
|
}
|
|
208
208
|
}
|
|
209
209
|
|
|
210
|
-
$({ global: true, wrap: true, forced: !NATIVE_SYMBOL, sham: !NATIVE_SYMBOL }, {
|
|
210
|
+
$({ global: true, constructor: true, wrap: true, forced: !NATIVE_SYMBOL, sham: !NATIVE_SYMBOL }, {
|
|
211
211
|
Symbol: $Symbol
|
|
212
212
|
});
|
|
213
213
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
var global = require('../internals/global');
|
|
3
3
|
var uncurryThis = require('../internals/function-uncurry-this');
|
|
4
|
-
var
|
|
4
|
+
var defineBuiltIns = require('../internals/define-built-ins');
|
|
5
5
|
var InternalMetadataModule = require('../internals/internal-metadata');
|
|
6
6
|
var collection = require('../internals/collection');
|
|
7
7
|
var collectionWeak = require('../internals/collection-weak');
|
|
@@ -34,7 +34,7 @@ if (NATIVE_WEAK_MAP && IS_IE11) {
|
|
|
34
34
|
var nativeHas = uncurryThis(WeakMapPrototype.has);
|
|
35
35
|
var nativeGet = uncurryThis(WeakMapPrototype.get);
|
|
36
36
|
var nativeSet = uncurryThis(WeakMapPrototype.set);
|
|
37
|
-
|
|
37
|
+
defineBuiltIns(WeakMapPrototype, {
|
|
38
38
|
'delete': function (key) {
|
|
39
39
|
if (isObject(key) && !isExtensible(key)) {
|
|
40
40
|
var state = enforceInternalState(this);
|
|
@@ -4,12 +4,12 @@ var DESCRIPTORS = require('../internals/descriptors');
|
|
|
4
4
|
var addToUnscopables = require('../internals/add-to-unscopables');
|
|
5
5
|
var toObject = require('../internals/to-object');
|
|
6
6
|
var lengthOfArrayLike = require('../internals/length-of-array-like');
|
|
7
|
-
var
|
|
7
|
+
var defineBuiltInAccessor = require('../internals/define-built-in-accessor');
|
|
8
8
|
|
|
9
9
|
// `Array.prototype.lastIndex` getter
|
|
10
10
|
// https://github.com/keithamus/proposal-array-last
|
|
11
11
|
if (DESCRIPTORS) {
|
|
12
|
-
|
|
12
|
+
defineBuiltInAccessor(Array.prototype, 'lastIndex', {
|
|
13
13
|
configurable: true,
|
|
14
14
|
get: function lastIndex() {
|
|
15
15
|
var O = toObject(this);
|
|
@@ -4,12 +4,12 @@ var DESCRIPTORS = require('../internals/descriptors');
|
|
|
4
4
|
var addToUnscopables = require('../internals/add-to-unscopables');
|
|
5
5
|
var toObject = require('../internals/to-object');
|
|
6
6
|
var lengthOfArrayLike = require('../internals/length-of-array-like');
|
|
7
|
-
var
|
|
7
|
+
var defineBuiltInAccessor = require('../internals/define-built-in-accessor');
|
|
8
8
|
|
|
9
9
|
// `Array.prototype.lastIndex` accessor
|
|
10
10
|
// https://github.com/keithamus/proposal-array-last
|
|
11
11
|
if (DESCRIPTORS) {
|
|
12
|
-
|
|
12
|
+
defineBuiltInAccessor(Array.prototype, 'lastItem', {
|
|
13
13
|
configurable: true,
|
|
14
14
|
get: function lastItem() {
|
|
15
15
|
var O = toObject(this);
|
|
@@ -10,7 +10,7 @@ var Array = global.Array;
|
|
|
10
10
|
|
|
11
11
|
// `Array.prototype.toSpliced` method
|
|
12
12
|
// https://tc39.es/proposal-change-array-by-copy/#sec-array.prototype.toSpliced
|
|
13
|
-
$({ target: 'Array', proto: true }, {
|
|
13
|
+
$({ target: 'Array', proto: true, arity: 2 }, {
|
|
14
14
|
// eslint-disable-next-line no-unused-vars -- required for .length
|
|
15
15
|
toSpliced: function toSpliced(start, deleteCount /* , ...items */) {
|
|
16
16
|
return arrayToSpliced(toIndexedObject(this), Array, arraySlice(arguments));
|
|
@@ -24,6 +24,6 @@ if (IS_PURE || !hasOwn(AsyncIteratorPrototype, 'constructor') || AsyncIteratorPr
|
|
|
24
24
|
createNonEnumerableProperty(AsyncIteratorPrototype, 'constructor', AsyncIteratorConstructor);
|
|
25
25
|
}
|
|
26
26
|
|
|
27
|
-
$({ global: true, forced: IS_PURE }, {
|
|
27
|
+
$({ global: true, constructor: true, forced: IS_PURE }, {
|
|
28
28
|
AsyncIterator: AsyncIteratorConstructor
|
|
29
29
|
});
|
|
@@ -36,6 +36,6 @@ if (FORCED || !hasOwn(IteratorPrototype, 'constructor') || IteratorPrototype.con
|
|
|
36
36
|
|
|
37
37
|
IteratorConstructor.prototype = IteratorPrototype;
|
|
38
38
|
|
|
39
|
-
$({ global: true, forced: FORCED }, {
|
|
39
|
+
$({ global: true, constructor: true, forced: FORCED }, {
|
|
40
40
|
Iterator: IteratorConstructor
|
|
41
41
|
});
|
|
@@ -6,7 +6,7 @@ var iterate = require('../internals/iterate');
|
|
|
6
6
|
|
|
7
7
|
// `Map.prototype.merge` method
|
|
8
8
|
// https://github.com/tc39/proposal-collection-methods
|
|
9
|
-
$({ target: 'Map', proto: true, real: true, forced: true }, {
|
|
9
|
+
$({ target: 'Map', proto: true, real: true, arity: 1, forced: true }, {
|
|
10
10
|
// eslint-disable-next-line no-unused-vars -- required for `.length`
|
|
11
11
|
merge: function merge(iterable /* ...iterables */) {
|
|
12
12
|
var map = anObject(this);
|
|
@@ -10,9 +10,9 @@ var anObject = require('../internals/an-object');
|
|
|
10
10
|
var isObject = require('../internals/is-object');
|
|
11
11
|
var anInstance = require('../internals/an-instance');
|
|
12
12
|
var getMethod = require('../internals/get-method');
|
|
13
|
-
var
|
|
14
|
-
var
|
|
15
|
-
var
|
|
13
|
+
var defineBuiltIn = require('../internals/define-built-in');
|
|
14
|
+
var defineBuiltIns = require('../internals/define-built-ins');
|
|
15
|
+
var defineBuiltInAccessor = require('../internals/define-built-in-accessor');
|
|
16
16
|
var hostReportErrors = require('../internals/host-report-errors');
|
|
17
17
|
var wellKnownSymbol = require('../internals/well-known-symbol');
|
|
18
18
|
var InternalStateModule = require('../internals/internal-state');
|
|
@@ -83,7 +83,7 @@ var Subscription = function (observer, subscriber) {
|
|
|
83
83
|
} if (subscriptionState.isClosed()) subscriptionState.clean();
|
|
84
84
|
};
|
|
85
85
|
|
|
86
|
-
Subscription.prototype =
|
|
86
|
+
Subscription.prototype = defineBuiltIns({}, {
|
|
87
87
|
unsubscribe: function unsubscribe() {
|
|
88
88
|
var subscriptionState = getSubscriptionInternalState(this);
|
|
89
89
|
if (!subscriptionState.isClosed()) {
|
|
@@ -93,9 +93,9 @@ Subscription.prototype = redefineAll({}, {
|
|
|
93
93
|
}
|
|
94
94
|
});
|
|
95
95
|
|
|
96
|
-
if (DESCRIPTORS)
|
|
96
|
+
if (DESCRIPTORS) defineBuiltInAccessor(Subscription.prototype, 'closed', {
|
|
97
97
|
configurable: true,
|
|
98
|
-
get: function () {
|
|
98
|
+
get: function closed() {
|
|
99
99
|
return getSubscriptionInternalState(this).isClosed();
|
|
100
100
|
}
|
|
101
101
|
});
|
|
@@ -108,7 +108,7 @@ var SubscriptionObserver = function (subscriptionState) {
|
|
|
108
108
|
if (!DESCRIPTORS) this.closed = false;
|
|
109
109
|
};
|
|
110
110
|
|
|
111
|
-
SubscriptionObserver.prototype =
|
|
111
|
+
SubscriptionObserver.prototype = defineBuiltIns({}, {
|
|
112
112
|
next: function next(value) {
|
|
113
113
|
var subscriptionState = getSubscriptionObserverInternalState(this).subscriptionState;
|
|
114
114
|
if (!subscriptionState.isClosed()) {
|
|
@@ -150,9 +150,9 @@ SubscriptionObserver.prototype = redefineAll({}, {
|
|
|
150
150
|
}
|
|
151
151
|
});
|
|
152
152
|
|
|
153
|
-
if (DESCRIPTORS)
|
|
153
|
+
if (DESCRIPTORS) defineBuiltInAccessor(SubscriptionObserver.prototype, 'closed', {
|
|
154
154
|
configurable: true,
|
|
155
|
-
get: function () {
|
|
155
|
+
get: function closed() {
|
|
156
156
|
return getSubscriptionObserverInternalState(this).subscriptionState.isClosed();
|
|
157
157
|
}
|
|
158
158
|
});
|
|
@@ -167,7 +167,7 @@ var $Observable = function Observable(subscriber) {
|
|
|
167
167
|
|
|
168
168
|
var ObservablePrototype = $Observable.prototype;
|
|
169
169
|
|
|
170
|
-
|
|
170
|
+
defineBuiltIns(ObservablePrototype, {
|
|
171
171
|
subscribe: function subscribe(observer) {
|
|
172
172
|
var length = arguments.length;
|
|
173
173
|
return new Subscription(isCallable(observer) ? {
|
|
@@ -178,9 +178,9 @@ redefineAll(ObservablePrototype, {
|
|
|
178
178
|
}
|
|
179
179
|
});
|
|
180
180
|
|
|
181
|
-
|
|
181
|
+
defineBuiltIn(ObservablePrototype, $$OBSERVABLE, function () { return this; });
|
|
182
182
|
|
|
183
|
-
$({ global: true, forced: OBSERVABLE_FORCED }, {
|
|
183
|
+
$({ global: true, constructor: true, forced: OBSERVABLE_FORCED }, {
|
|
184
184
|
Observable: $Observable
|
|
185
185
|
});
|
|
186
186
|
|
|
@@ -12,4 +12,4 @@ var TYPED_ARRAY_CONSTRUCTOR = ArrayBufferViewCore.TYPED_ARRAY_CONSTRUCTOR;
|
|
|
12
12
|
// eslint-disable-next-line no-unused-vars -- required for .length
|
|
13
13
|
exportTypedArrayMethod('toSpliced', function toSpliced(start, deleteCount /* , ...items */) {
|
|
14
14
|
return arrayToSpliced(aTypedArray(this), this[TYPED_ARRAY_CONSTRUCTOR], arraySlice(arguments));
|
|
15
|
-
});
|
|
15
|
+
}, { arity: 2 });
|
|
@@ -6,8 +6,8 @@ var fails = require('../internals/fails');
|
|
|
6
6
|
var create = require('../internals/object-create');
|
|
7
7
|
var createPropertyDescriptor = require('../internals/create-property-descriptor');
|
|
8
8
|
var defineProperty = require('../internals/object-define-property').f;
|
|
9
|
-
var
|
|
10
|
-
var
|
|
9
|
+
var defineBuiltIn = require('../internals/define-built-in');
|
|
10
|
+
var defineBuiltInAccessor = require('../internals/define-built-in-accessor');
|
|
11
11
|
var hasOwn = require('../internals/has-own-property');
|
|
12
12
|
var anInstance = require('../internals/an-instance');
|
|
13
13
|
var anObject = require('../internals/an-object');
|
|
@@ -79,11 +79,11 @@ var getterFor = function (key) {
|
|
|
79
79
|
});
|
|
80
80
|
};
|
|
81
81
|
|
|
82
|
-
if (DESCRIPTORS)
|
|
83
|
-
|
|
84
|
-
message
|
|
85
|
-
|
|
86
|
-
}
|
|
82
|
+
if (DESCRIPTORS) {
|
|
83
|
+
defineBuiltInAccessor(DOMExceptionPrototype, 'code', getterFor('code'));
|
|
84
|
+
defineBuiltInAccessor(DOMExceptionPrototype, 'message', getterFor('message'));
|
|
85
|
+
defineBuiltInAccessor(DOMExceptionPrototype, 'name', getterFor('name'));
|
|
86
|
+
}
|
|
87
87
|
|
|
88
88
|
defineProperty(DOMExceptionPrototype, 'constructor', createPropertyDescriptor(1, $DOMException));
|
|
89
89
|
|
|
@@ -111,7 +111,7 @@ var FORCED_CONSTRUCTOR = IS_PURE ? INCORRECT_TO_STRING || INCORRECT_CODE || MISS
|
|
|
111
111
|
|
|
112
112
|
// `DOMException` constructor
|
|
113
113
|
// https://webidl.spec.whatwg.org/#idl-DOMException
|
|
114
|
-
$({ global: true, forced: FORCED_CONSTRUCTOR }, {
|
|
114
|
+
$({ global: true, constructor: true, forced: FORCED_CONSTRUCTOR }, {
|
|
115
115
|
DOMException: FORCED_CONSTRUCTOR ? $DOMException : NativeDOMException
|
|
116
116
|
});
|
|
117
117
|
|
|
@@ -119,11 +119,11 @@ var PolyfilledDOMException = getBuiltIn(DOM_EXCEPTION);
|
|
|
119
119
|
var PolyfilledDOMExceptionPrototype = PolyfilledDOMException.prototype;
|
|
120
120
|
|
|
121
121
|
if (INCORRECT_TO_STRING && (IS_PURE || NativeDOMException === PolyfilledDOMException)) {
|
|
122
|
-
|
|
122
|
+
defineBuiltIn(PolyfilledDOMExceptionPrototype, 'toString', errorToString);
|
|
123
123
|
}
|
|
124
124
|
|
|
125
125
|
if (INCORRECT_CODE && DESCRIPTORS && NativeDOMException === PolyfilledDOMException) {
|
|
126
|
-
|
|
126
|
+
defineBuiltInAccessor(PolyfilledDOMExceptionPrototype, 'code', createGetterDescriptor(function () {
|
|
127
127
|
return codeFor(anObject(this).name);
|
|
128
128
|
}));
|
|
129
129
|
}
|
|
@@ -36,7 +36,7 @@ var FORCED_CONSTRUCTOR = ERROR_HAS_STACK && !DOM_EXCEPTION_HAS_STACK;
|
|
|
36
36
|
|
|
37
37
|
// `DOMException` constructor patch for `.stack` where it's required
|
|
38
38
|
// https://webidl.spec.whatwg.org/#es-DOMException-specialness
|
|
39
|
-
$({ global: true, forced: IS_PURE || FORCED_CONSTRUCTOR }, { // TODO: fix export logic
|
|
39
|
+
$({ global: true, constructor: true, forced: IS_PURE || FORCED_CONSTRUCTOR }, { // TODO: fix export logic
|
|
40
40
|
DOMException: FORCED_CONSTRUCTOR ? $DOMException : NativeDOMException
|
|
41
41
|
});
|
|
42
42
|
|
|
@@ -61,30 +61,42 @@ var checkBasicSemantic = function (structuredCloneImplementation) {
|
|
|
61
61
|
}) && structuredCloneImplementation;
|
|
62
62
|
};
|
|
63
63
|
|
|
64
|
+
var checkErrorsCloning = function (structuredCloneImplementation) {
|
|
65
|
+
return !fails(function () {
|
|
66
|
+
var error = new Error();
|
|
67
|
+
var test = structuredCloneImplementation({ a: error, b: error });
|
|
68
|
+
return !(test && test.a === test.b && test.a instanceof Error);
|
|
69
|
+
});
|
|
70
|
+
};
|
|
71
|
+
|
|
64
72
|
// https://github.com/whatwg/html/pull/5749
|
|
65
|
-
var
|
|
73
|
+
var checkNewErrorsCloningSemantic = function (structuredCloneImplementation) {
|
|
66
74
|
return !fails(function () {
|
|
67
75
|
var test = structuredCloneImplementation(new global.AggregateError([1], PERFORMANCE_MARK, { cause: 3 }));
|
|
68
76
|
return test.name != 'AggregateError' || test.errors[0] != 1 || test.message != PERFORMANCE_MARK || test.cause != 3;
|
|
69
|
-
})
|
|
77
|
+
});
|
|
70
78
|
};
|
|
71
79
|
|
|
72
|
-
// FF94+, Safari
|
|
73
|
-
//
|
|
80
|
+
// FF94+, Safari 15.4+, Chrome 98+, NodeJS 17.0+, Deno 1.13+
|
|
81
|
+
// FF and Safari implementations can't clone errors
|
|
74
82
|
// https://bugzilla.mozilla.org/show_bug.cgi?id=1556604
|
|
83
|
+
// Chrome <103 returns `null` if cloned object contains multiple references to one error
|
|
84
|
+
// https://bugs.chromium.org/p/v8/issues/detail?id=12542
|
|
75
85
|
// no one of current implementations supports new (html/5749) error cloning semantic
|
|
76
86
|
var nativeStructuredClone = global.structuredClone;
|
|
77
87
|
|
|
78
|
-
var FORCED_REPLACEMENT = IS_PURE || !
|
|
88
|
+
var FORCED_REPLACEMENT = IS_PURE || !checkErrorsCloning(nativeStructuredClone) || !checkNewErrorsCloningSemantic(nativeStructuredClone);
|
|
79
89
|
|
|
80
90
|
// Chrome 82+, Safari 14.1+, Deno 1.11+
|
|
81
91
|
// Chrome 78-81 implementation swaps `.name` and `.message` of cloned `DOMException`
|
|
92
|
+
// Chrome returns `null` if cloned object contains multiple references to one error
|
|
82
93
|
// Safari 14.1 implementation doesn't clone some `RegExp` flags, so requires a workaround
|
|
83
|
-
//
|
|
94
|
+
// Safari implementation can't clone errors
|
|
84
95
|
// Deno 1.2-1.10 implementations too naive
|
|
85
|
-
// NodeJS 16.0+ does not have `PerformanceMark` constructor
|
|
86
|
-
//
|
|
87
|
-
//
|
|
96
|
+
// NodeJS 16.0+ does not have `PerformanceMark` constructor
|
|
97
|
+
// NodeJS <17.2 structured cloning implementation from `performance.mark` is too naive
|
|
98
|
+
// and can't clone, for example, `RegExp` or some boxed primitives
|
|
99
|
+
// https://github.com/nodejs/node/issues/40840
|
|
88
100
|
// no one of current implementations supports new (html/5749) error cloning semantic
|
|
89
101
|
var structuredCloneFromMark = !nativeStructuredClone && checkBasicSemantic(function (value) {
|
|
90
102
|
return new PerformanceMark(PERFORMANCE_MARK, { detail: value }).detail;
|