core-js 3.20.1 → 3.21.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +1 -1
- 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 +6 -1
- package/internals/array-method-is-strict.js +2 -2
- 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 +1 -1
- 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/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 +1 -0
- package/modules/es.symbol.js +2 -0
- package/modules/es.typed-array.set.js +20 -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.group-by-to-map.js +3 -1
- package/modules/esnext.array.group-by.js +3 -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 +1 -2
- 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 +2 -1
- 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/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');
|
|
@@ -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
|
|
@@ -4,7 +4,7 @@ var fails = require('../internals/fails');
|
|
|
4
4
|
module.exports = function (METHOD_NAME, argument) {
|
|
5
5
|
var method = [][METHOD_NAME];
|
|
6
6
|
return !!method && fails(function () {
|
|
7
|
-
// eslint-disable-next-line no-useless-call
|
|
8
|
-
method.call(null, argument || function () {
|
|
7
|
+
// eslint-disable-next-line no-useless-call -- required for testing
|
|
8
|
+
method.call(null, argument || function () { return 1; }, 1);
|
|
9
9
|
});
|
|
10
10
|
};
|
|
@@ -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,7 +2,7 @@ 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
7
|
// eslint-disable-next-line es/no-object-defineproperty -- required for testing
|
|
8
8
|
return Object.defineProperty(createElement('div'), 'a', {
|
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);
|
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.1',
|
|
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.1/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
|
@@ -265,6 +265,7 @@ if (FORCED) {
|
|
|
265
265
|
Internal.prototype = redefineAll(PromisePrototype, {
|
|
266
266
|
// `Promise.prototype.then` method
|
|
267
267
|
// https://tc39.es/ecma262/#sec-promise.prototype.then
|
|
268
|
+
// eslint-disable-next-line unicorn/no-thenable -- safe
|
|
268
269
|
then: function then(onFulfilled, onRejected) {
|
|
269
270
|
var state = getInternalPromiseState(this);
|
|
270
271
|
var reaction = newPromiseCapability(speciesConstructor(this, PromiseConstructor));
|
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;
|
|
@@ -1,18 +1,32 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
var global = require('../internals/global');
|
|
3
|
+
var call = require('../internals/function-call');
|
|
3
4
|
var ArrayBufferViewCore = require('../internals/array-buffer-view-core');
|
|
4
5
|
var lengthOfArrayLike = require('../internals/length-of-array-like');
|
|
5
6
|
var toOffset = require('../internals/to-offset');
|
|
6
|
-
var
|
|
7
|
+
var toIndexedObject = require('../internals/to-object');
|
|
7
8
|
var fails = require('../internals/fails');
|
|
8
9
|
|
|
9
10
|
var RangeError = global.RangeError;
|
|
11
|
+
var Int8Array = global.Int8Array;
|
|
12
|
+
var Int8ArrayPrototype = Int8Array && Int8Array.prototype;
|
|
13
|
+
var $set = Int8ArrayPrototype && Int8ArrayPrototype.set;
|
|
10
14
|
var aTypedArray = ArrayBufferViewCore.aTypedArray;
|
|
11
15
|
var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;
|
|
12
16
|
|
|
13
|
-
var
|
|
17
|
+
var WORKS_WITH_OBJECTS_AND_GEERIC_ON_TYPED_ARRAYS = !fails(function () {
|
|
14
18
|
// eslint-disable-next-line es/no-typed-arrays -- required for testing
|
|
15
|
-
new
|
|
19
|
+
var array = new Uint8ClampedArray(2);
|
|
20
|
+
call($set, array, { length: 1, 0: 3 }, 1);
|
|
21
|
+
return array[1] !== 3;
|
|
22
|
+
});
|
|
23
|
+
|
|
24
|
+
// https://bugs.chromium.org/p/v8/issues/detail?id=11294 and other
|
|
25
|
+
var TO_OBJECT_BUG = WORKS_WITH_OBJECTS_AND_GEERIC_ON_TYPED_ARRAYS && ArrayBufferViewCore.NATIVE_ARRAY_BUFFER_VIEWS && fails(function () {
|
|
26
|
+
var array = new Int8Array(2);
|
|
27
|
+
array.set(1);
|
|
28
|
+
array.set('2', 1);
|
|
29
|
+
return array[0] !== 0 || array[1] !== 2;
|
|
16
30
|
});
|
|
17
31
|
|
|
18
32
|
// `%TypedArray%.prototype.set` method
|
|
@@ -20,10 +34,11 @@ var FORCED = fails(function () {
|
|
|
20
34
|
exportTypedArrayMethod('set', function set(arrayLike /* , offset */) {
|
|
21
35
|
aTypedArray(this);
|
|
22
36
|
var offset = toOffset(arguments.length > 1 ? arguments[1] : undefined, 1);
|
|
37
|
+
var src = toIndexedObject(arrayLike);
|
|
38
|
+
if (WORKS_WITH_OBJECTS_AND_GEERIC_ON_TYPED_ARRAYS) return call($set, this, src, offset);
|
|
23
39
|
var length = this.length;
|
|
24
|
-
var src = toObject(arrayLike);
|
|
25
40
|
var len = lengthOfArrayLike(src);
|
|
26
41
|
var index = 0;
|
|
27
42
|
if (len + offset > length) throw RangeError('Wrong length');
|
|
28
43
|
while (index < len) this[offset + index] = src[index++];
|
|
29
|
-
},
|
|
44
|
+
}, !WORKS_WITH_OBJECTS_AND_GEERIC_ON_TYPED_ARRAYS || TO_OBJECT_BUG);
|
|
@@ -6,7 +6,7 @@ var addToUnscopables = require('../internals/add-to-unscopables');
|
|
|
6
6
|
|
|
7
7
|
// `Array.prototype.filterOut` method
|
|
8
8
|
// https://github.com/tc39/proposal-array-filtering
|
|
9
|
-
$({ target: 'Array', proto: true }, {
|
|
9
|
+
$({ target: 'Array', proto: true, forced: true }, {
|
|
10
10
|
filterOut: function filterOut(callbackfn /* , thisArg */) {
|
|
11
11
|
return $filterReject(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);
|
|
12
12
|
}
|
|
@@ -5,7 +5,7 @@ var addToUnscopables = require('../internals/add-to-unscopables');
|
|
|
5
5
|
|
|
6
6
|
// `Array.prototype.filterReject` method
|
|
7
7
|
// https://github.com/tc39/proposal-array-filtering
|
|
8
|
-
$({ target: 'Array', proto: true }, {
|
|
8
|
+
$({ target: 'Array', proto: true, forced: true }, {
|
|
9
9
|
filterReject: function filterReject(callbackfn /* , thisArg */) {
|
|
10
10
|
return $filterReject(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);
|
|
11
11
|
}
|
|
@@ -6,6 +6,7 @@ var uncurryThis = require('../internals/function-uncurry-this');
|
|
|
6
6
|
var IndexedObject = require('../internals/indexed-object');
|
|
7
7
|
var toObject = require('../internals/to-object');
|
|
8
8
|
var lengthOfArrayLike = require('../internals/length-of-array-like');
|
|
9
|
+
var arrayMethodIsStrict = require('../internals/array-method-is-strict');
|
|
9
10
|
var addToUnscopables = require('../internals/add-to-unscopables');
|
|
10
11
|
|
|
11
12
|
var Map = getBuiltIn('Map');
|
|
@@ -17,7 +18,8 @@ var push = uncurryThis([].push);
|
|
|
17
18
|
|
|
18
19
|
// `Array.prototype.groupByToMap` method
|
|
19
20
|
// https://github.com/tc39/proposal-array-grouping
|
|
20
|
-
|
|
21
|
+
// https://bugs.webkit.org/show_bug.cgi?id=236541
|
|
22
|
+
$({ target: 'Array', proto: true, forced: !arrayMethodIsStrict('groupByToMap') }, {
|
|
21
23
|
groupByToMap: function groupByToMap(callbackfn /* , thisArg */) {
|
|
22
24
|
var O = toObject(this);
|
|
23
25
|
var self = IndexedObject(O);
|
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
var $ = require('../internals/export');
|
|
3
3
|
var $groupBy = require('../internals/array-group-by');
|
|
4
|
+
var arrayMethodIsStrict = require('../internals/array-method-is-strict');
|
|
4
5
|
var addToUnscopables = require('../internals/add-to-unscopables');
|
|
5
6
|
|
|
6
7
|
// `Array.prototype.groupBy` method
|
|
7
8
|
// https://github.com/tc39/proposal-array-grouping
|
|
8
|
-
|
|
9
|
+
// https://bugs.webkit.org/show_bug.cgi?id=236541
|
|
10
|
+
$({ target: 'Array', proto: true, forced: !arrayMethodIsStrict('groupBy') }, {
|
|
9
11
|
groupBy: function groupBy(callbackfn /* , thisArg */) {
|
|
10
12
|
var thisArg = arguments.length > 1 ? arguments[1] : undefined;
|
|
11
13
|
return $groupBy(this, callbackfn, thisArg);
|
|
@@ -19,7 +19,7 @@ var isFrozenStringArray = function (array, allowUndefined) {
|
|
|
19
19
|
|
|
20
20
|
// `Array.isTemplateObject` method
|
|
21
21
|
// https://github.com/tc39/proposal-array-is-template-object
|
|
22
|
-
$({ target: 'Array', stat: true }, {
|
|
22
|
+
$({ target: 'Array', stat: true, sham: true, forced: true }, {
|
|
23
23
|
isTemplateObject: function isTemplateObject(value) {
|
|
24
24
|
if (!isFrozenStringArray(value, true)) return false;
|
|
25
25
|
var raw = value.raw;
|
|
@@ -7,7 +7,7 @@ var defineProperty = require('../internals/object-define-property').f;
|
|
|
7
7
|
|
|
8
8
|
// `Array.prototype.lastIndex` getter
|
|
9
9
|
// https://github.com/keithamus/proposal-array-last
|
|
10
|
-
if (DESCRIPTORS
|
|
10
|
+
if (DESCRIPTORS) {
|
|
11
11
|
defineProperty(Array.prototype, 'lastIndex', {
|
|
12
12
|
configurable: true,
|
|
13
13
|
get: function lastIndex() {
|
|
@@ -7,7 +7,7 @@ var defineProperty = require('../internals/object-define-property').f;
|
|
|
7
7
|
|
|
8
8
|
// `Array.prototype.lastIndex` accessor
|
|
9
9
|
// https://github.com/keithamus/proposal-array-last
|
|
10
|
-
if (DESCRIPTORS
|
|
10
|
+
if (DESCRIPTORS) {
|
|
11
11
|
defineProperty(Array.prototype, 'lastItem', {
|
|
12
12
|
configurable: true,
|
|
13
13
|
get: function lastItem() {
|
|
@@ -9,7 +9,7 @@ var Array = global.Array;
|
|
|
9
9
|
|
|
10
10
|
// `Array.prototype.toReversed` method
|
|
11
11
|
// https://tc39.es/proposal-change-array-by-copy/#sec-array.prototype.toReversed
|
|
12
|
-
$({ target: 'Array', proto: true }, {
|
|
12
|
+
$({ target: 'Array', proto: true, forced: true }, {
|
|
13
13
|
toReversed: function toReversed() {
|
|
14
14
|
return arrayToReversed(toIndexedObject(this), Array);
|
|
15
15
|
}
|
|
@@ -13,7 +13,7 @@ var sort = uncurryThis(getVirtual('Array').sort);
|
|
|
13
13
|
|
|
14
14
|
// `Array.prototype.toSorted` method
|
|
15
15
|
// https://tc39.es/proposal-change-array-by-copy/#sec-array.prototype.toSorted
|
|
16
|
-
$({ target: 'Array', proto: true }, {
|
|
16
|
+
$({ target: 'Array', proto: true, forced: true }, {
|
|
17
17
|
toSorted: function toSorted(compareFn) {
|
|
18
18
|
if (compareFn !== undefined) aCallable(compareFn);
|
|
19
19
|
var O = toIndexedObject(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, forced: true }, {
|
|
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));
|
|
@@ -5,7 +5,7 @@ var uniqueBy = require('../internals/array-unique-by');
|
|
|
5
5
|
|
|
6
6
|
// `Array.prototype.uniqueBy` method
|
|
7
7
|
// https://github.com/tc39/proposal-array-unique
|
|
8
|
-
$({ target: 'Array', proto: true }, {
|
|
8
|
+
$({ target: 'Array', proto: true, forced: true }, {
|
|
9
9
|
uniqueBy: uniqueBy
|
|
10
10
|
});
|
|
11
11
|
|
|
@@ -8,7 +8,7 @@ var Array = global.Array;
|
|
|
8
8
|
|
|
9
9
|
// `Array.prototype.with` method
|
|
10
10
|
// https://tc39.es/proposal-change-array-by-copy/#sec-array.prototype.with
|
|
11
|
-
$({ target: 'Array', proto: true }, {
|
|
11
|
+
$({ target: 'Array', proto: true, forced: true }, {
|
|
12
12
|
'with': function (index, value) {
|
|
13
13
|
return arrayWith(toIndexedObject(this), Array, index, value);
|
|
14
14
|
}
|
|
@@ -18,7 +18,7 @@ var AsyncIteratorProxy = createAsyncIteratorProxy(function (Promise, args) {
|
|
|
18
18
|
});
|
|
19
19
|
});
|
|
20
20
|
|
|
21
|
-
$({ target: 'AsyncIterator', proto: true, real: true }, {
|
|
21
|
+
$({ target: 'AsyncIterator', proto: true, real: true, forced: true }, {
|
|
22
22
|
asIndexedPairs: function asIndexedPairs() {
|
|
23
23
|
return new AsyncIteratorProxy({
|
|
24
24
|
iterator: anObject(this),
|
|
@@ -32,7 +32,7 @@ var AsyncIteratorProxy = createAsyncIteratorProxy(function (Promise, args) {
|
|
|
32
32
|
});
|
|
33
33
|
});
|
|
34
34
|
|
|
35
|
-
$({ target: 'AsyncIterator', proto: true, real: true }, {
|
|
35
|
+
$({ target: 'AsyncIterator', proto: true, real: true, forced: true }, {
|
|
36
36
|
drop: function drop(limit) {
|
|
37
37
|
return new AsyncIteratorProxy({
|
|
38
38
|
iterator: anObject(this),
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
var $ = require('../internals/export');
|
|
4
4
|
var $every = require('../internals/async-iterator-iteration').every;
|
|
5
5
|
|
|
6
|
-
$({ target: 'AsyncIterator', proto: true, real: true }, {
|
|
6
|
+
$({ target: 'AsyncIterator', proto: true, real: true, forced: true }, {
|
|
7
7
|
every: function every(fn) {
|
|
8
8
|
return $every(this, fn);
|
|
9
9
|
}
|