core-js 3.20.0 → 3.21.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/LICENSE +1 -1
- package/README.md +2 -2
- package/actual/array/group-by-to-map.js +1 -0
- package/actual/array/index.js +1 -0
- package/actual/array/virtual/group-by-to-map.js +1 -0
- package/actual/array/virtual/index.js +1 -0
- package/actual/atob.js +3 -0
- package/actual/btoa.js +3 -0
- package/features/atob.js +3 -0
- package/features/btoa.js +3 -0
- package/features/index.js +2 -0
- package/internals/array-buffer-view-core.js +9 -4
- package/internals/base64-map.js +9 -0
- package/internals/function-apply.js +3 -2
- package/internals/function-bind-context.js +2 -1
- package/internals/function-bind-native.js +7 -0
- package/internals/function-bind.js +2 -1
- package/internals/function-call.js +3 -1
- package/internals/function-uncurry-this.js +5 -3
- package/internals/ie8-dom-define.js +2 -2
- package/internals/native-url.js +1 -0
- package/internals/numeric-range-iterator.js +1 -1
- package/internals/object-create.js +2 -2
- package/internals/object-define-properties.js +2 -1
- package/internals/object-define-property.js +22 -1
- package/internals/queue.js +23 -0
- package/internals/shared.js +4 -2
- package/internals/task.js +5 -2
- package/internals/v8-prototype-define-bug.js +12 -0
- package/internals/validate-arguments-length.js +8 -0
- package/modules/es.function.bind.js +1 -1
- package/modules/es.object.define-properties.js +3 -2
- package/modules/es.object.define-property.js +4 -3
- package/modules/es.promise.finally.js +1 -0
- package/modules/es.promise.js +47 -43
- package/modules/es.symbol.js +2 -0
- package/modules/es.typed-array.set.js +20 -5
- package/modules/es.weak-map.js +5 -5
- package/modules/esnext.array.filter-out.js +1 -1
- package/modules/esnext.array.filter-reject.js +1 -1
- package/modules/esnext.array.from-async.js +1 -1
- package/modules/esnext.array.is-template-object.js +1 -1
- package/modules/esnext.array.last-index.js +1 -1
- package/modules/esnext.array.last-item.js +1 -1
- package/modules/esnext.array.to-reversed.js +1 -1
- package/modules/esnext.array.to-sorted.js +1 -1
- package/modules/esnext.array.to-spliced.js +1 -1
- package/modules/esnext.array.unique-by.js +1 -1
- package/modules/esnext.array.with.js +1 -1
- package/modules/esnext.async-iterator.as-indexed-pairs.js +1 -1
- package/modules/esnext.async-iterator.drop.js +1 -1
- package/modules/esnext.async-iterator.every.js +1 -1
- package/modules/esnext.async-iterator.filter.js +1 -1
- package/modules/esnext.async-iterator.find.js +1 -1
- package/modules/esnext.async-iterator.flat-map.js +1 -1
- package/modules/esnext.async-iterator.for-each.js +1 -1
- package/modules/esnext.async-iterator.from.js +1 -1
- package/modules/esnext.async-iterator.map.js +1 -1
- package/modules/esnext.async-iterator.reduce.js +1 -1
- package/modules/esnext.async-iterator.some.js +1 -1
- package/modules/esnext.async-iterator.take.js +1 -1
- package/modules/esnext.async-iterator.to-array.js +1 -1
- package/modules/esnext.bigint.range.js +1 -1
- package/modules/esnext.composite-key.js +1 -1
- package/modules/esnext.composite-symbol.js +1 -1
- package/modules/esnext.function.is-callable.js +1 -1
- package/modules/esnext.function.is-constructor.js +1 -1
- package/modules/esnext.function.un-this.js +1 -1
- package/modules/esnext.iterator.as-indexed-pairs.js +1 -1
- package/modules/esnext.iterator.drop.js +1 -1
- package/modules/esnext.iterator.every.js +1 -1
- package/modules/esnext.iterator.filter.js +1 -1
- package/modules/esnext.iterator.find.js +1 -1
- package/modules/esnext.iterator.flat-map.js +1 -1
- package/modules/esnext.iterator.for-each.js +1 -1
- package/modules/esnext.iterator.from.js +1 -1
- package/modules/esnext.iterator.map.js +1 -1
- package/modules/esnext.iterator.reduce.js +1 -1
- package/modules/esnext.iterator.some.js +1 -1
- package/modules/esnext.iterator.take.js +1 -1
- package/modules/esnext.iterator.to-array.js +1 -1
- package/modules/esnext.iterator.to-async.js +1 -1
- package/modules/esnext.map.delete-all.js +1 -2
- package/modules/esnext.map.emplace.js +1 -2
- package/modules/esnext.map.every.js +1 -2
- package/modules/esnext.map.filter.js +1 -2
- package/modules/esnext.map.find-key.js +1 -2
- package/modules/esnext.map.find.js +1 -2
- package/modules/esnext.map.from.js +1 -1
- package/modules/esnext.map.group-by.js +1 -1
- package/modules/esnext.map.includes.js +1 -2
- package/modules/esnext.map.key-by.js +1 -1
- package/modules/esnext.map.key-of.js +1 -2
- package/modules/esnext.map.map-keys.js +1 -2
- package/modules/esnext.map.map-values.js +1 -2
- package/modules/esnext.map.merge.js +2 -3
- package/modules/esnext.map.of.js +1 -1
- package/modules/esnext.map.reduce.js +1 -2
- package/modules/esnext.map.some.js +1 -2
- package/modules/esnext.map.update-or-insert.js +1 -2
- package/modules/esnext.map.update.js +1 -2
- package/modules/esnext.map.upsert.js +1 -2
- package/modules/esnext.math.clamp.js +1 -1
- package/modules/esnext.math.deg-per-rad.js +1 -1
- package/modules/esnext.math.degrees.js +1 -1
- package/modules/esnext.math.fscale.js +1 -1
- package/modules/esnext.math.iaddh.js +1 -1
- package/modules/esnext.math.imulh.js +1 -1
- package/modules/esnext.math.isubh.js +1 -1
- package/modules/esnext.math.rad-per-deg.js +1 -1
- package/modules/esnext.math.radians.js +1 -1
- package/modules/esnext.math.scale.js +1 -1
- package/modules/esnext.math.signbit.js +1 -1
- package/modules/esnext.math.umulh.js +1 -1
- package/modules/esnext.number.from-string.js +1 -1
- package/modules/esnext.number.range.js +1 -1
- package/modules/esnext.object.iterate-entries.js +1 -1
- package/modules/esnext.object.iterate-keys.js +1 -1
- package/modules/esnext.object.iterate-values.js +1 -1
- package/modules/esnext.observable.js +9 -1
- package/modules/esnext.promise.try.js +1 -1
- package/modules/esnext.set.add-all.js +1 -2
- package/modules/esnext.set.delete-all.js +1 -2
- package/modules/esnext.set.difference.js +1 -2
- package/modules/esnext.set.every.js +1 -2
- package/modules/esnext.set.filter.js +1 -2
- package/modules/esnext.set.find.js +1 -2
- package/modules/esnext.set.from.js +1 -1
- package/modules/esnext.set.intersection.js +1 -2
- package/modules/esnext.set.is-disjoint-from.js +1 -2
- package/modules/esnext.set.is-subset-of.js +1 -2
- package/modules/esnext.set.is-superset-of.js +1 -2
- package/modules/esnext.set.join.js +1 -2
- package/modules/esnext.set.map.js +1 -2
- package/modules/esnext.set.of.js +1 -1
- package/modules/esnext.set.reduce.js +1 -2
- package/modules/esnext.set.some.js +1 -2
- package/modules/esnext.set.symmetric-difference.js +1 -2
- package/modules/esnext.set.union.js +1 -2
- package/modules/esnext.string.at.js +1 -6
- package/modules/esnext.string.code-points.js +1 -1
- package/modules/esnext.string.cooked.js +1 -1
- package/modules/esnext.typed-array.filter-out.js +1 -1
- package/modules/esnext.typed-array.filter-reject.js +1 -1
- package/modules/esnext.typed-array.from-async.js +1 -2
- package/modules/esnext.typed-array.group-by.js +1 -1
- package/modules/esnext.typed-array.to-reversed.js +1 -1
- package/modules/esnext.typed-array.to-sorted.js +1 -1
- package/modules/esnext.typed-array.to-spliced.js +1 -1
- package/modules/esnext.typed-array.unique-by.js +1 -1
- package/modules/esnext.typed-array.with.js +1 -1
- package/modules/esnext.weak-map.delete-all.js +1 -2
- package/modules/esnext.weak-map.emplace.js +1 -2
- package/modules/esnext.weak-map.from.js +1 -1
- package/modules/esnext.weak-map.of.js +1 -1
- package/modules/esnext.weak-map.upsert.js +1 -2
- package/modules/esnext.weak-set.add-all.js +1 -2
- package/modules/esnext.weak-set.delete-all.js +1 -2
- package/modules/esnext.weak-set.from.js +1 -1
- package/modules/esnext.weak-set.of.js +1 -1
- package/modules/web.atob.js +52 -0
- package/modules/web.btoa.js +37 -0
- package/modules/web.dom-exception.constructor.js +1 -1
- package/modules/web.queue-microtask.js +4 -0
- package/modules/web.structured-clone.js +5 -4
- package/modules/web.timers.js +5 -3
- package/modules/web.url-search-params.js +1 -4
- package/modules/web.url.js +3 -2
- package/package.json +2 -2
- package/postinstall.js +1 -1
- package/stable/atob.js +9 -0
- package/stable/btoa.js +9 -0
- package/stable/index.js +2 -0
- package/web/index.js +2 -0
package/LICENSE
CHANGED
package/README.md
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-

|
|
2
2
|
|
|
3
3
|
[](https://opencollective.com/core-js) [](https://www.npmjs.com/package/core-js) [](https://npm-stat.com/charts.html?package=core-js&package=core-js-pure&package=core-js-compat&from=2014-11-18) [](https://npm-stat.com/charts.html?package=core-js&package=core-js-pure&package=core-js-compat&from=2014-11-18) [](https://github.com/zloirock/core-js/actions) [](https://github.com/zloirock/core-js/actions)
|
|
4
4
|
|
|
@@ -24,7 +24,7 @@
|
|
|
24
24
|
|
|
25
25
|
[*Example of usage*](https://is.gd/XD4mRe):
|
|
26
26
|
```js
|
|
27
|
-
import 'core-js'; // <- at the top of your entry point
|
|
27
|
+
import 'core-js/actual'; // <- at the top of your entry point
|
|
28
28
|
|
|
29
29
|
Array.from(new Set([1, 2, 3, 2, 1])); // => [1, 2, 3]
|
|
30
30
|
[1, 2, 3, 4, 5].groupBy(it => it % 2); // => { 1: [1, 3, 5], 0: [2, 4] }
|
package/actual/array/index.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
var parent = require('../../stable/array');
|
|
2
2
|
require('../../modules/es.map');
|
|
3
|
+
require('../../modules/es.object.to-string');
|
|
3
4
|
require('../../modules/esnext.array.find-last');
|
|
4
5
|
require('../../modules/esnext.array.find-last-index');
|
|
5
6
|
require('../../modules/esnext.array.group-by');
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
var parent = require('../../../stable/array/virtual');
|
|
2
2
|
require('../../../modules/es.map');
|
|
3
|
+
require('../../../modules/es.object.to-string');
|
|
3
4
|
require('../../../modules/esnext.array.find-last');
|
|
4
5
|
require('../../../modules/esnext.array.find-last-index');
|
|
5
6
|
require('../../../modules/esnext.array.group-by');
|
package/actual/atob.js
ADDED
package/actual/btoa.js
ADDED
package/features/atob.js
ADDED
package/features/btoa.js
ADDED
package/features/index.js
CHANGED
|
@@ -380,6 +380,8 @@ require('../modules/esnext.weak-set.add-all');
|
|
|
380
380
|
require('../modules/esnext.weak-set.delete-all');
|
|
381
381
|
require('../modules/esnext.weak-set.from');
|
|
382
382
|
require('../modules/esnext.weak-set.of');
|
|
383
|
+
require('../modules/web.atob');
|
|
384
|
+
require('../modules/web.btoa');
|
|
383
385
|
require('../modules/web.dom-collections.for-each');
|
|
384
386
|
require('../modules/web.dom-collections.iterator');
|
|
385
387
|
require('../modules/web.dom-exception.constructor');
|
|
@@ -30,7 +30,7 @@ var TYPED_ARRAY_TAG = uid('TYPED_ARRAY_TAG');
|
|
|
30
30
|
var TYPED_ARRAY_CONSTRUCTOR = uid('TYPED_ARRAY_CONSTRUCTOR');
|
|
31
31
|
// Fixing native typed arrays in Opera Presto crashes the browser, see #595
|
|
32
32
|
var NATIVE_ARRAY_BUFFER_VIEWS = NATIVE_ARRAY_BUFFER && !!setPrototypeOf && classof(global.opera) !== 'Opera';
|
|
33
|
-
var
|
|
33
|
+
var TYPED_ARRAY_TAG_REQUIRED = false;
|
|
34
34
|
var NAME, Constructor, Prototype;
|
|
35
35
|
|
|
36
36
|
var TypedArrayConstructorsList = {
|
|
@@ -81,7 +81,12 @@ var exportTypedArrayMethod = function (KEY, property, forced, options) {
|
|
|
81
81
|
var TypedArrayConstructor = global[ARRAY];
|
|
82
82
|
if (TypedArrayConstructor && hasOwn(TypedArrayConstructor.prototype, KEY)) try {
|
|
83
83
|
delete TypedArrayConstructor.prototype[KEY];
|
|
84
|
-
} catch (error) {
|
|
84
|
+
} catch (error) {
|
|
85
|
+
// old WebKit bug - some methods are non-configurable
|
|
86
|
+
try {
|
|
87
|
+
TypedArrayConstructor.prototype[KEY] = property;
|
|
88
|
+
} catch (error2) { /* empty */ }
|
|
89
|
+
}
|
|
85
90
|
}
|
|
86
91
|
if (!TypedArrayPrototype[KEY] || forced) {
|
|
87
92
|
redefine(TypedArrayPrototype, KEY, forced ? property
|
|
@@ -151,7 +156,7 @@ if (NATIVE_ARRAY_BUFFER_VIEWS && getPrototypeOf(Uint8ClampedArrayPrototype) !==
|
|
|
151
156
|
}
|
|
152
157
|
|
|
153
158
|
if (DESCRIPTORS && !hasOwn(TypedArrayPrototype, TO_STRING_TAG)) {
|
|
154
|
-
|
|
159
|
+
TYPED_ARRAY_TAG_REQUIRED = true;
|
|
155
160
|
defineProperty(TypedArrayPrototype, TO_STRING_TAG, { get: function () {
|
|
156
161
|
return isObject(this) ? this[TYPED_ARRAY_TAG] : undefined;
|
|
157
162
|
} });
|
|
@@ -163,7 +168,7 @@ if (DESCRIPTORS && !hasOwn(TypedArrayPrototype, TO_STRING_TAG)) {
|
|
|
163
168
|
module.exports = {
|
|
164
169
|
NATIVE_ARRAY_BUFFER_VIEWS: NATIVE_ARRAY_BUFFER_VIEWS,
|
|
165
170
|
TYPED_ARRAY_CONSTRUCTOR: TYPED_ARRAY_CONSTRUCTOR,
|
|
166
|
-
TYPED_ARRAY_TAG:
|
|
171
|
+
TYPED_ARRAY_TAG: TYPED_ARRAY_TAG_REQUIRED && TYPED_ARRAY_TAG,
|
|
167
172
|
aTypedArray: aTypedArray,
|
|
168
173
|
aTypedArrayConstructor: aTypedArrayConstructor,
|
|
169
174
|
exportTypedArrayMethod: exportTypedArrayMethod,
|
|
@@ -1,9 +1,10 @@
|
|
|
1
|
+
var NATIVE_BIND = require('../internals/function-bind-native');
|
|
2
|
+
|
|
1
3
|
var FunctionPrototype = Function.prototype;
|
|
2
4
|
var apply = FunctionPrototype.apply;
|
|
3
|
-
var bind = FunctionPrototype.bind;
|
|
4
5
|
var call = FunctionPrototype.call;
|
|
5
6
|
|
|
6
7
|
// eslint-disable-next-line es/no-reflect -- safe
|
|
7
|
-
module.exports = typeof Reflect == 'object' && Reflect.apply || (
|
|
8
|
+
module.exports = typeof Reflect == 'object' && Reflect.apply || (NATIVE_BIND ? call.bind(apply) : function () {
|
|
8
9
|
return call.apply(apply, arguments);
|
|
9
10
|
});
|
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
var uncurryThis = require('../internals/function-uncurry-this');
|
|
2
2
|
var aCallable = require('../internals/a-callable');
|
|
3
|
+
var NATIVE_BIND = require('../internals/function-bind-native');
|
|
3
4
|
|
|
4
5
|
var bind = uncurryThis(uncurryThis.bind);
|
|
5
6
|
|
|
6
7
|
// optional / simple context binding
|
|
7
8
|
module.exports = function (fn, that) {
|
|
8
9
|
aCallable(fn);
|
|
9
|
-
return that === undefined ? fn :
|
|
10
|
+
return that === undefined ? fn : NATIVE_BIND ? bind(fn, that) : function (/* ...args */) {
|
|
10
11
|
return fn.apply(that, arguments);
|
|
11
12
|
};
|
|
12
13
|
};
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
var fails = require('../internals/fails');
|
|
2
|
+
|
|
3
|
+
module.exports = !fails(function () {
|
|
4
|
+
var test = (function () { /* empty */ }).bind();
|
|
5
|
+
// eslint-disable-next-line no-prototype-builtins -- safe
|
|
6
|
+
return typeof test != 'function' || test.hasOwnProperty('prototype');
|
|
7
|
+
});
|
|
@@ -5,6 +5,7 @@ var aCallable = require('../internals/a-callable');
|
|
|
5
5
|
var isObject = require('../internals/is-object');
|
|
6
6
|
var hasOwn = require('../internals/has-own-property');
|
|
7
7
|
var arraySlice = require('../internals/array-slice');
|
|
8
|
+
var NATIVE_BIND = require('../internals/function-bind-native');
|
|
8
9
|
|
|
9
10
|
var Function = global.Function;
|
|
10
11
|
var concat = uncurryThis([].concat);
|
|
@@ -20,7 +21,7 @@ var construct = function (C, argsLength, args) {
|
|
|
20
21
|
|
|
21
22
|
// `Function.prototype.bind` method implementation
|
|
22
23
|
// https://tc39.es/ecma262/#sec-function.prototype.bind
|
|
23
|
-
module.exports = Function.bind
|
|
24
|
+
module.exports = NATIVE_BIND ? Function.bind : function bind(that /* , ...args */) {
|
|
24
25
|
var F = aCallable(this);
|
|
25
26
|
var Prototype = F.prototype;
|
|
26
27
|
var partArgs = arraySlice(arguments, 1);
|
|
@@ -1,5 +1,7 @@
|
|
|
1
|
+
var NATIVE_BIND = require('../internals/function-bind-native');
|
|
2
|
+
|
|
1
3
|
var call = Function.prototype.call;
|
|
2
4
|
|
|
3
|
-
module.exports =
|
|
5
|
+
module.exports = NATIVE_BIND ? call.bind(call) : function () {
|
|
4
6
|
return call.apply(call, arguments);
|
|
5
7
|
};
|
|
@@ -1,10 +1,12 @@
|
|
|
1
|
+
var NATIVE_BIND = require('../internals/function-bind-native');
|
|
2
|
+
|
|
1
3
|
var FunctionPrototype = Function.prototype;
|
|
2
4
|
var bind = FunctionPrototype.bind;
|
|
3
5
|
var call = FunctionPrototype.call;
|
|
4
|
-
var
|
|
6
|
+
var uncurryThis = NATIVE_BIND && bind.bind(call, call);
|
|
5
7
|
|
|
6
|
-
module.exports =
|
|
7
|
-
return fn &&
|
|
8
|
+
module.exports = NATIVE_BIND ? function (fn) {
|
|
9
|
+
return fn && uncurryThis(fn);
|
|
8
10
|
} : function (fn) {
|
|
9
11
|
return fn && function () {
|
|
10
12
|
return call.apply(fn, arguments);
|
|
@@ -2,9 +2,9 @@ var DESCRIPTORS = require('../internals/descriptors');
|
|
|
2
2
|
var fails = require('../internals/fails');
|
|
3
3
|
var createElement = require('../internals/document-create-element');
|
|
4
4
|
|
|
5
|
-
//
|
|
5
|
+
// Thanks to IE8 for its funny defineProperty
|
|
6
6
|
module.exports = !DESCRIPTORS && !fails(function () {
|
|
7
|
-
// eslint-disable-next-line es/no-object-defineproperty --
|
|
7
|
+
// eslint-disable-next-line es/no-object-defineproperty -- required for testing
|
|
8
8
|
return Object.defineProperty(createElement('div'), 'a', {
|
|
9
9
|
get: function () { return 7; }
|
|
10
10
|
}).a != 7;
|
package/internals/native-url.js
CHANGED
|
@@ -5,6 +5,7 @@ var IS_PURE = require('../internals/is-pure');
|
|
|
5
5
|
var ITERATOR = wellKnownSymbol('iterator');
|
|
6
6
|
|
|
7
7
|
module.exports = !fails(function () {
|
|
8
|
+
// eslint-disable-next-line unicorn/relative-url-style -- required for testing
|
|
8
9
|
var url = new URL('b?a=1&b=2&c=3', 'http://a');
|
|
9
10
|
var searchParams = url.searchParams;
|
|
10
11
|
var result = '';
|
|
@@ -3,7 +3,7 @@ var global = require('../internals/global');
|
|
|
3
3
|
var InternalStateModule = require('../internals/internal-state');
|
|
4
4
|
var createIteratorConstructor = require('../internals/create-iterator-constructor');
|
|
5
5
|
var isObject = require('../internals/is-object');
|
|
6
|
-
var defineProperties = require('../internals/object-define-properties');
|
|
6
|
+
var defineProperties = require('../internals/object-define-properties').f;
|
|
7
7
|
var DESCRIPTORS = require('../internals/descriptors');
|
|
8
8
|
|
|
9
9
|
var INCORRECT_RANGE = 'Incorrect Number.range arguments';
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/* global ActiveXObject -- old IE, WSH */
|
|
2
2
|
var anObject = require('../internals/an-object');
|
|
3
|
-
var
|
|
3
|
+
var definePropertiesModule = require('../internals/object-define-properties');
|
|
4
4
|
var enumBugKeys = require('../internals/enum-bug-keys');
|
|
5
5
|
var hiddenKeys = require('../internals/hidden-keys');
|
|
6
6
|
var html = require('../internals/html');
|
|
@@ -78,5 +78,5 @@ module.exports = Object.create || function create(O, Properties) {
|
|
|
78
78
|
// add "__proto__" for Object.getPrototypeOf polyfill
|
|
79
79
|
result[IE_PROTO] = O;
|
|
80
80
|
} else result = NullProtoObject();
|
|
81
|
-
return Properties === undefined ? result :
|
|
81
|
+
return Properties === undefined ? result : definePropertiesModule.f(result, Properties);
|
|
82
82
|
};
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
var DESCRIPTORS = require('../internals/descriptors');
|
|
2
|
+
var V8_PROTOTYPE_DEFINE_BUG = require('../internals/v8-prototype-define-bug');
|
|
2
3
|
var definePropertyModule = require('../internals/object-define-property');
|
|
3
4
|
var anObject = require('../internals/an-object');
|
|
4
5
|
var toIndexedObject = require('../internals/to-indexed-object');
|
|
@@ -7,7 +8,7 @@ var objectKeys = require('../internals/object-keys');
|
|
|
7
8
|
// `Object.defineProperties` method
|
|
8
9
|
// https://tc39.es/ecma262/#sec-object.defineproperties
|
|
9
10
|
// eslint-disable-next-line es/no-object-defineproperties -- safe
|
|
10
|
-
|
|
11
|
+
exports.f = DESCRIPTORS && !V8_PROTOTYPE_DEFINE_BUG ? Object.defineProperties : function defineProperties(O, Properties) {
|
|
11
12
|
anObject(O);
|
|
12
13
|
var props = toIndexedObject(Properties);
|
|
13
14
|
var keys = objectKeys(Properties);
|
|
@@ -1,16 +1,37 @@
|
|
|
1
1
|
var global = require('../internals/global');
|
|
2
2
|
var DESCRIPTORS = require('../internals/descriptors');
|
|
3
3
|
var IE8_DOM_DEFINE = require('../internals/ie8-dom-define');
|
|
4
|
+
var V8_PROTOTYPE_DEFINE_BUG = require('../internals/v8-prototype-define-bug');
|
|
4
5
|
var anObject = require('../internals/an-object');
|
|
5
6
|
var toPropertyKey = require('../internals/to-property-key');
|
|
6
7
|
|
|
7
8
|
var TypeError = global.TypeError;
|
|
8
9
|
// eslint-disable-next-line es/no-object-defineproperty -- safe
|
|
9
10
|
var $defineProperty = Object.defineProperty;
|
|
11
|
+
// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe
|
|
12
|
+
var $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;
|
|
13
|
+
var ENUMERABLE = 'enumerable';
|
|
14
|
+
var CONFIGURABLE = 'configurable';
|
|
15
|
+
var WRITABLE = 'writable';
|
|
10
16
|
|
|
11
17
|
// `Object.defineProperty` method
|
|
12
18
|
// https://tc39.es/ecma262/#sec-object.defineproperty
|
|
13
|
-
exports.f = DESCRIPTORS ?
|
|
19
|
+
exports.f = DESCRIPTORS ? V8_PROTOTYPE_DEFINE_BUG ? function defineProperty(O, P, Attributes) {
|
|
20
|
+
anObject(O);
|
|
21
|
+
P = toPropertyKey(P);
|
|
22
|
+
anObject(Attributes);
|
|
23
|
+
if (typeof O === 'function' && P === 'prototype' && 'value' in Attributes && WRITABLE in Attributes && !Attributes[WRITABLE]) {
|
|
24
|
+
var current = $getOwnPropertyDescriptor(O, P);
|
|
25
|
+
if (current && current[WRITABLE]) {
|
|
26
|
+
O[P] = Attributes.value;
|
|
27
|
+
Attributes = {
|
|
28
|
+
configurable: CONFIGURABLE in Attributes ? Attributes[CONFIGURABLE] : current[CONFIGURABLE],
|
|
29
|
+
enumerable: ENUMERABLE in Attributes ? Attributes[ENUMERABLE] : current[ENUMERABLE],
|
|
30
|
+
writable: false
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
} return $defineProperty(O, P, Attributes);
|
|
34
|
+
} : $defineProperty : function defineProperty(O, P, Attributes) {
|
|
14
35
|
anObject(O);
|
|
15
36
|
P = toPropertyKey(P);
|
|
16
37
|
anObject(Attributes);
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
var Queue = function () {
|
|
2
|
+
this.head = null;
|
|
3
|
+
this.tail = null;
|
|
4
|
+
};
|
|
5
|
+
|
|
6
|
+
Queue.prototype = {
|
|
7
|
+
add: function (item) {
|
|
8
|
+
var entry = { item: item, next: null };
|
|
9
|
+
if (this.head) this.tail.next = entry;
|
|
10
|
+
else this.head = entry;
|
|
11
|
+
this.tail = entry;
|
|
12
|
+
},
|
|
13
|
+
get: function () {
|
|
14
|
+
var entry = this.head;
|
|
15
|
+
if (entry) {
|
|
16
|
+
this.head = entry.next;
|
|
17
|
+
if (this.tail === entry) this.tail = null;
|
|
18
|
+
return entry.item;
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
};
|
|
22
|
+
|
|
23
|
+
module.exports = Queue;
|
package/internals/shared.js
CHANGED
|
@@ -4,7 +4,9 @@ var store = require('../internals/shared-store');
|
|
|
4
4
|
(module.exports = function (key, value) {
|
|
5
5
|
return store[key] || (store[key] = value !== undefined ? value : {});
|
|
6
6
|
})('versions', []).push({
|
|
7
|
-
version: '3.
|
|
7
|
+
version: '3.21.0',
|
|
8
8
|
mode: IS_PURE ? 'pure' : 'global',
|
|
9
|
-
copyright: '©
|
|
9
|
+
copyright: '© 2014-2022 Denis Pushkarev (zloirock.ru)',
|
|
10
|
+
license: 'https://github.com/zloirock/core-js/blob/v3.21.0/LICENSE',
|
|
11
|
+
source: 'https://github.com/zloirock/core-js'
|
|
10
12
|
});
|
package/internals/task.js
CHANGED
|
@@ -7,6 +7,7 @@ var fails = require('../internals/fails');
|
|
|
7
7
|
var html = require('../internals/html');
|
|
8
8
|
var arraySlice = require('../internals/array-slice');
|
|
9
9
|
var createElement = require('../internals/document-create-element');
|
|
10
|
+
var validateArgumentsLength = require('../internals/validate-arguments-length');
|
|
10
11
|
var IS_IOS = require('../internals/engine-is-ios');
|
|
11
12
|
var IS_NODE = require('../internals/engine-is-node');
|
|
12
13
|
|
|
@@ -52,10 +53,12 @@ var post = function (id) {
|
|
|
52
53
|
|
|
53
54
|
// Node.js 0.9+ & IE10+ has setImmediate, otherwise:
|
|
54
55
|
if (!set || !clear) {
|
|
55
|
-
set = function setImmediate(
|
|
56
|
+
set = function setImmediate(handler) {
|
|
57
|
+
validateArgumentsLength(arguments.length, 1);
|
|
58
|
+
var fn = isCallable(handler) ? handler : Function(handler);
|
|
56
59
|
var args = arraySlice(arguments, 1);
|
|
57
60
|
queue[++counter] = function () {
|
|
58
|
-
apply(
|
|
61
|
+
apply(fn, undefined, args);
|
|
59
62
|
};
|
|
60
63
|
defer(counter);
|
|
61
64
|
return counter;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
var DESCRIPTORS = require('../internals/descriptors');
|
|
2
|
+
var fails = require('../internals/fails');
|
|
3
|
+
|
|
4
|
+
// V8 ~ Chrome 36-
|
|
5
|
+
// https://bugs.chromium.org/p/v8/issues/detail?id=3334
|
|
6
|
+
module.exports = DESCRIPTORS && fails(function () {
|
|
7
|
+
// eslint-disable-next-line es/no-object-defineproperty -- required for testing
|
|
8
|
+
return Object.defineProperty(function () { /* empty */ }, 'prototype', {
|
|
9
|
+
value: 42,
|
|
10
|
+
writable: false
|
|
11
|
+
}).prototype != 42;
|
|
12
|
+
});
|
|
@@ -3,6 +3,6 @@ var bind = require('../internals/function-bind');
|
|
|
3
3
|
|
|
4
4
|
// `Function.prototype.bind` method
|
|
5
5
|
// https://tc39.es/ecma262/#sec-function.prototype.bind
|
|
6
|
-
$({ target: 'Function', proto: true }, {
|
|
6
|
+
$({ target: 'Function', proto: true, forced: Function.bind !== bind }, {
|
|
7
7
|
bind: bind
|
|
8
8
|
});
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
var $ = require('../internals/export');
|
|
2
2
|
var DESCRIPTORS = require('../internals/descriptors');
|
|
3
|
-
var defineProperties = require('../internals/object-define-properties');
|
|
3
|
+
var defineProperties = require('../internals/object-define-properties').f;
|
|
4
4
|
|
|
5
5
|
// `Object.defineProperties` method
|
|
6
6
|
// https://tc39.es/ecma262/#sec-object.defineproperties
|
|
7
|
-
|
|
7
|
+
// eslint-disable-next-line es/no-object-defineproperties -- safe
|
|
8
|
+
$({ target: 'Object', stat: true, forced: Object.defineProperties !== defineProperties, sham: !DESCRIPTORS }, {
|
|
8
9
|
defineProperties: defineProperties
|
|
9
10
|
});
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
var $ = require('../internals/export');
|
|
2
2
|
var DESCRIPTORS = require('../internals/descriptors');
|
|
3
|
-
var
|
|
3
|
+
var defineProperty = require('../internals/object-define-property').f;
|
|
4
4
|
|
|
5
5
|
// `Object.defineProperty` method
|
|
6
6
|
// https://tc39.es/ecma262/#sec-object.defineproperty
|
|
7
|
-
|
|
8
|
-
|
|
7
|
+
// eslint-disable-next-line es/no-object-defineproperty -- safe
|
|
8
|
+
$({ target: 'Object', stat: true, forced: Object.defineProperty !== defineProperty, sham: !DESCRIPTORS }, {
|
|
9
|
+
defineProperty: defineProperty
|
|
9
10
|
});
|
|
@@ -11,6 +11,7 @@ var redefine = require('../internals/redefine');
|
|
|
11
11
|
|
|
12
12
|
// Safari bug https://bugs.webkit.org/show_bug.cgi?id=200829
|
|
13
13
|
var NON_GENERIC = !!NativePromise && fails(function () {
|
|
14
|
+
// eslint-disable-next-line unicorn/no-thenable -- required for testing
|
|
14
15
|
NativePromise.prototype['finally'].call({ then: function () { /* empty */ } }, function () { /* empty */ });
|
|
15
16
|
});
|
|
16
17
|
|
package/modules/es.promise.js
CHANGED
|
@@ -24,6 +24,7 @@ var promiseResolve = require('../internals/promise-resolve');
|
|
|
24
24
|
var hostReportErrors = require('../internals/host-report-errors');
|
|
25
25
|
var newPromiseCapabilityModule = require('../internals/new-promise-capability');
|
|
26
26
|
var perform = require('../internals/perform');
|
|
27
|
+
var Queue = require('../internals/queue');
|
|
27
28
|
var InternalStateModule = require('../internals/internal-state');
|
|
28
29
|
var isForced = require('../internals/is-forced');
|
|
29
30
|
var wellKnownSymbol = require('../internals/well-known-symbol');
|
|
@@ -95,49 +96,50 @@ var isThenable = function (it) {
|
|
|
95
96
|
return isObject(it) && isCallable(then = it.then) ? then : false;
|
|
96
97
|
};
|
|
97
98
|
|
|
99
|
+
var callReaction = function (reaction, state) {
|
|
100
|
+
var value = state.value;
|
|
101
|
+
var ok = state.state == FULFILLED;
|
|
102
|
+
var handler = ok ? reaction.ok : reaction.fail;
|
|
103
|
+
var resolve = reaction.resolve;
|
|
104
|
+
var reject = reaction.reject;
|
|
105
|
+
var domain = reaction.domain;
|
|
106
|
+
var result, then, exited;
|
|
107
|
+
try {
|
|
108
|
+
if (handler) {
|
|
109
|
+
if (!ok) {
|
|
110
|
+
if (state.rejection === UNHANDLED) onHandleUnhandled(state);
|
|
111
|
+
state.rejection = HANDLED;
|
|
112
|
+
}
|
|
113
|
+
if (handler === true) result = value;
|
|
114
|
+
else {
|
|
115
|
+
if (domain) domain.enter();
|
|
116
|
+
result = handler(value); // can throw
|
|
117
|
+
if (domain) {
|
|
118
|
+
domain.exit();
|
|
119
|
+
exited = true;
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
if (result === reaction.promise) {
|
|
123
|
+
reject(TypeError('Promise-chain cycle'));
|
|
124
|
+
} else if (then = isThenable(result)) {
|
|
125
|
+
call(then, result, resolve, reject);
|
|
126
|
+
} else resolve(result);
|
|
127
|
+
} else reject(value);
|
|
128
|
+
} catch (error) {
|
|
129
|
+
if (domain && !exited) domain.exit();
|
|
130
|
+
reject(error);
|
|
131
|
+
}
|
|
132
|
+
};
|
|
133
|
+
|
|
98
134
|
var notify = function (state, isReject) {
|
|
99
135
|
if (state.notified) return;
|
|
100
136
|
state.notified = true;
|
|
101
|
-
var chain = state.reactions;
|
|
102
137
|
microtask(function () {
|
|
103
|
-
var
|
|
104
|
-
var
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
while (chain.length > index) {
|
|
108
|
-
var reaction = chain[index++];
|
|
109
|
-
var handler = ok ? reaction.ok : reaction.fail;
|
|
110
|
-
var resolve = reaction.resolve;
|
|
111
|
-
var reject = reaction.reject;
|
|
112
|
-
var domain = reaction.domain;
|
|
113
|
-
var result, then, exited;
|
|
114
|
-
try {
|
|
115
|
-
if (handler) {
|
|
116
|
-
if (!ok) {
|
|
117
|
-
if (state.rejection === UNHANDLED) onHandleUnhandled(state);
|
|
118
|
-
state.rejection = HANDLED;
|
|
119
|
-
}
|
|
120
|
-
if (handler === true) result = value;
|
|
121
|
-
else {
|
|
122
|
-
if (domain) domain.enter();
|
|
123
|
-
result = handler(value); // can throw
|
|
124
|
-
if (domain) {
|
|
125
|
-
domain.exit();
|
|
126
|
-
exited = true;
|
|
127
|
-
}
|
|
128
|
-
}
|
|
129
|
-
if (result === reaction.promise) {
|
|
130
|
-
reject(TypeError('Promise-chain cycle'));
|
|
131
|
-
} else if (then = isThenable(result)) {
|
|
132
|
-
call(then, result, resolve, reject);
|
|
133
|
-
} else resolve(result);
|
|
134
|
-
} else reject(value);
|
|
135
|
-
} catch (error) {
|
|
136
|
-
if (domain && !exited) domain.exit();
|
|
137
|
-
reject(error);
|
|
138
|
-
}
|
|
138
|
+
var reactions = state.reactions;
|
|
139
|
+
var reaction;
|
|
140
|
+
while (reaction = reactions.get()) {
|
|
141
|
+
callReaction(reaction, state);
|
|
139
142
|
}
|
|
140
|
-
state.reactions = [];
|
|
141
143
|
state.notified = false;
|
|
142
144
|
if (isReject && !state.rejection) onUnhandled(state);
|
|
143
145
|
});
|
|
@@ -254,7 +256,7 @@ if (FORCED) {
|
|
|
254
256
|
done: false,
|
|
255
257
|
notified: false,
|
|
256
258
|
parent: false,
|
|
257
|
-
reactions:
|
|
259
|
+
reactions: new Queue(),
|
|
258
260
|
rejection: false,
|
|
259
261
|
state: PENDING,
|
|
260
262
|
value: undefined
|
|
@@ -263,16 +265,18 @@ if (FORCED) {
|
|
|
263
265
|
Internal.prototype = redefineAll(PromisePrototype, {
|
|
264
266
|
// `Promise.prototype.then` method
|
|
265
267
|
// https://tc39.es/ecma262/#sec-promise.prototype.then
|
|
268
|
+
// eslint-disable-next-line unicorn/no-thenable -- safe
|
|
266
269
|
then: function then(onFulfilled, onRejected) {
|
|
267
270
|
var state = getInternalPromiseState(this);
|
|
268
|
-
var reactions = state.reactions;
|
|
269
271
|
var reaction = newPromiseCapability(speciesConstructor(this, PromiseConstructor));
|
|
272
|
+
state.parent = true;
|
|
270
273
|
reaction.ok = isCallable(onFulfilled) ? onFulfilled : true;
|
|
271
274
|
reaction.fail = isCallable(onRejected) && onRejected;
|
|
272
275
|
reaction.domain = IS_NODE ? process.domain : undefined;
|
|
273
|
-
state.
|
|
274
|
-
|
|
275
|
-
|
|
276
|
+
if (state.state == PENDING) state.reactions.add(reaction);
|
|
277
|
+
else microtask(function () {
|
|
278
|
+
callReaction(reaction, state);
|
|
279
|
+
});
|
|
276
280
|
return reaction.promise;
|
|
277
281
|
},
|
|
278
282
|
// `Promise.prototype.catch` method
|
package/modules/es.symbol.js
CHANGED
|
@@ -28,6 +28,7 @@ var getOwnPropertyNamesExternal = require('../internals/object-get-own-property-
|
|
|
28
28
|
var getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');
|
|
29
29
|
var getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');
|
|
30
30
|
var definePropertyModule = require('../internals/object-define-property');
|
|
31
|
+
var definePropertiesModule = require('../internals/object-define-properties');
|
|
31
32
|
var propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');
|
|
32
33
|
var arraySlice = require('../internals/array-slice');
|
|
33
34
|
var redefine = require('../internals/redefine');
|
|
@@ -194,6 +195,7 @@ if (!NATIVE_SYMBOL) {
|
|
|
194
195
|
|
|
195
196
|
propertyIsEnumerableModule.f = $propertyIsEnumerable;
|
|
196
197
|
definePropertyModule.f = $defineProperty;
|
|
198
|
+
definePropertiesModule.f = $defineProperties;
|
|
197
199
|
getOwnPropertyDescriptorModule.f = $getOwnPropertyDescriptor;
|
|
198
200
|
getOwnPropertyNamesModule.f = getOwnPropertyNamesExternal.f = $getOwnPropertyNames;
|
|
199
201
|
getOwnPropertySymbolsModule.f = $getOwnPropertySymbols;
|