core-js 3.17.3 → 3.18.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/es/promise/all-settled.js +2 -1
- package/es/promise/any.js +2 -1
- package/features/array/from-async.js +8 -0
- package/features/array/index.js +2 -0
- package/features/index.js +2 -0
- package/features/map/from.js +2 -1
- package/features/map/group-by.js +2 -1
- package/features/map/key-by.js +2 -1
- package/features/map/of.js +2 -1
- package/features/promise/try.js +2 -1
- package/features/set/from.js +2 -1
- package/features/set/of.js +2 -1
- package/features/typed-array/from-async.js +1 -0
- package/features/typed-array/index.js +2 -0
- package/features/weak-map/from.js +2 -1
- package/features/weak-map/of.js +2 -1
- package/features/weak-set/from.js +2 -1
- package/features/weak-set/of.js +2 -1
- package/internals/a-callable.js +8 -0
- package/internals/a-constructor.js +8 -0
- package/internals/a-possible-prototype.js +4 -5
- package/internals/an-instance.js +2 -3
- package/internals/an-object.js +4 -4
- package/internals/array-buffer-view-core.js +5 -4
- package/internals/array-buffer.js +7 -1
- package/internals/array-from-async.js +32 -0
- package/internals/array-from.js +6 -5
- package/internals/array-reduce.js +2 -2
- package/internals/array-species-constructor.js +3 -2
- package/internals/array-unique-by.js +3 -3
- package/internals/async-from-sync-iterator.js +2 -2
- package/internals/async-iterator-create-proxy.js +5 -4
- package/internals/async-iterator-iteration.js +26 -15
- package/internals/async-iterator-prototype.js +5 -4
- package/internals/classof.js +2 -1
- package/internals/collection-add-all.js +2 -2
- package/internals/collection-delete-all.js +2 -2
- package/internals/collection-from.js +4 -3
- package/internals/collection.js +2 -1
- package/internals/define-iterator.js +20 -12
- package/internals/export.js +1 -0
- package/internals/function-bind-context.js +2 -2
- package/internals/function-bind.js +2 -2
- package/internals/function-name.js +17 -0
- package/internals/get-async-iterator.js +2 -5
- package/internals/get-built-in.js +3 -2
- package/internals/get-iterator-method.js +3 -2
- package/internals/get-iterator.js +5 -5
- package/internals/get-method.js +4 -3
- package/internals/inherit-if-required.js +2 -1
- package/internals/inspect-source.js +2 -1
- package/internals/is-array.js +2 -2
- package/internals/is-callable.js +5 -0
- package/internals/is-constructor.js +41 -0
- package/internals/is-forced.js +2 -1
- package/internals/is-object.js +3 -1
- package/internals/is-symbol.js +2 -1
- package/internals/iterate.js +1 -1
- package/internals/iterator-close.js +3 -2
- package/internals/iterator-create-proxy.js +8 -7
- package/internals/iterators-core.js +4 -3
- package/internals/map-upsert.js +4 -3
- package/internals/native-weak-map.js +2 -1
- package/internals/new-promise-capability.js +3 -3
- package/internals/number-parse-float.js +6 -1
- package/internals/number-parse-int.js +6 -1
- package/internals/object-get-prototype-of.js +7 -5
- package/internals/ordinary-to-primitive.js +4 -3
- package/internals/redefine.js +12 -6
- package/internals/regexp-exec-abstract.js +8 -13
- package/internals/regexp-unsupported-dot-all.js +1 -1
- package/internals/regexp-unsupported-ncg.js +1 -1
- package/internals/shared.js +1 -1
- package/internals/species-constructor.js +2 -2
- package/internals/string-trim-forced.js +4 -1
- package/internals/task.js +3 -2
- package/internals/to-primitive.js +3 -2
- package/internals/to-string.js +2 -2
- package/internals/try-to-string.js +7 -0
- package/internals/typed-array-from.js +4 -2
- package/modules/es.array.flat-map.js +2 -2
- package/modules/es.array.of.js +2 -1
- package/modules/es.array.slice.js +3 -2
- package/modules/es.array.sort.js +2 -2
- package/modules/es.date.to-primitive.js +2 -2
- package/modules/es.function.has-instance.js +2 -1
- package/modules/es.function.name.js +2 -1
- package/modules/es.object.define-getter.js +2 -2
- package/modules/es.object.define-setter.js +2 -2
- package/modules/es.parse-float.js +3 -3
- package/modules/es.parse-int.js +3 -3
- package/modules/es.promise.all-settled.js +2 -2
- package/modules/es.promise.any.js +2 -2
- package/modules/es.promise.finally.js +3 -2
- package/modules/es.promise.js +10 -9
- package/modules/es.reflect.apply.js +2 -2
- package/modules/es.reflect.construct.js +3 -3
- package/modules/es.regexp.test.js +4 -4
- package/modules/es.regexp.to-string.js +2 -1
- package/modules/es.string.match-all.js +6 -16
- package/modules/es.string.match.js +3 -2
- package/modules/es.string.raw.js +9 -4
- package/modules/es.string.replace-all.js +5 -3
- package/modules/es.string.replace.js +5 -3
- package/modules/es.string.search.js +3 -2
- package/modules/es.string.split.js +3 -2
- package/modules/es.string.trim-end.js +1 -1
- package/modules/es.string.trim-start.js +1 -1
- package/modules/es.symbol.description.js +2 -1
- package/modules/es.symbol.js +6 -3
- package/modules/es.typed-array.iterator.js +4 -4
- package/modules/es.typed-array.sort.js +2 -2
- package/modules/esnext.aggregate-error.js +1 -1
- package/modules/esnext.array.from-async.js +8 -0
- package/modules/esnext.async-iterator.filter.js +2 -2
- package/modules/esnext.async-iterator.flat-map.js +3 -3
- package/modules/esnext.async-iterator.from.js +4 -6
- package/modules/esnext.async-iterator.map.js +2 -2
- package/modules/esnext.async-iterator.reduce.js +3 -3
- package/modules/esnext.async-iterator.to-array.js +1 -1
- package/modules/esnext.global-this.js +1 -1
- package/modules/esnext.iterator.constructor.js +2 -1
- package/modules/esnext.iterator.every.js +2 -2
- package/modules/esnext.iterator.filter.js +2 -2
- package/modules/esnext.iterator.find.js +2 -2
- package/modules/esnext.iterator.flat-map.js +4 -4
- package/modules/esnext.iterator.from.js +2 -4
- package/modules/esnext.iterator.map.js +2 -2
- package/modules/esnext.iterator.reduce.js +2 -2
- package/modules/esnext.iterator.some.js +2 -2
- package/modules/esnext.map.filter.js +2 -2
- package/modules/esnext.map.group-by.js +9 -7
- package/modules/esnext.map.key-by.js +3 -3
- package/modules/esnext.map.key-of.js +1 -1
- package/modules/esnext.map.map-keys.js +2 -2
- package/modules/esnext.map.map-values.js +2 -2
- package/modules/esnext.map.merge.js +2 -2
- package/modules/esnext.map.reduce.js +2 -2
- package/modules/esnext.map.update-or-insert.js +1 -1
- package/modules/esnext.map.update.js +3 -3
- package/modules/esnext.observable.js +16 -14
- package/modules/esnext.promise.all-settled.js +1 -1
- package/modules/esnext.promise.any.js +1 -1
- package/modules/esnext.set.difference.js +2 -2
- package/modules/esnext.set.filter.js +2 -2
- package/modules/esnext.set.intersection.js +3 -3
- package/modules/esnext.set.is-disjoint-from.js +2 -2
- package/modules/esnext.set.is-subset-of.js +4 -3
- package/modules/esnext.set.is-superset-of.js +2 -2
- package/modules/esnext.set.map.js +2 -2
- package/modules/esnext.set.reduce.js +2 -2
- package/modules/esnext.set.symmetric-difference.js +3 -3
- package/modules/esnext.set.union.js +2 -2
- package/modules/esnext.string.match-all.js +1 -1
- package/modules/esnext.string.replace-all.js +1 -1
- package/modules/esnext.typed-array.from-async.js +19 -0
- package/modules/web.timers.js +2 -1
- package/modules/web.url-search-params.js +6 -5
- package/package.json +2 -2
- package/proposals/array-from-async.js +3 -0
- package/stage/1.js +1 -0
- package/internals/a-function.js +0 -5
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
var global = require('../internals/global');
|
|
2
|
+
var isCallable = require('../internals/is-callable');
|
|
2
3
|
var inspectSource = require('../internals/inspect-source');
|
|
3
4
|
|
|
4
5
|
var WeakMap = global.WeakMap;
|
|
5
6
|
|
|
6
|
-
module.exports =
|
|
7
|
+
module.exports = isCallable(WeakMap) && /native code/.test(inspectSource(WeakMap));
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
'use strict';
|
|
2
|
-
var
|
|
2
|
+
var aCallable = require('../internals/a-callable');
|
|
3
3
|
|
|
4
4
|
var PromiseCapability = function (C) {
|
|
5
5
|
var resolve, reject;
|
|
@@ -8,8 +8,8 @@ var PromiseCapability = function (C) {
|
|
|
8
8
|
resolve = $$resolve;
|
|
9
9
|
reject = $$reject;
|
|
10
10
|
});
|
|
11
|
-
this.resolve =
|
|
12
|
-
this.reject =
|
|
11
|
+
this.resolve = aCallable(resolve);
|
|
12
|
+
this.reject = aCallable(reject);
|
|
13
13
|
};
|
|
14
14
|
|
|
15
15
|
// `NewPromiseCapability` abstract operation
|
|
@@ -1,10 +1,15 @@
|
|
|
1
1
|
var global = require('../internals/global');
|
|
2
|
+
var fails = require('../internals/fails');
|
|
2
3
|
var toString = require('../internals/to-string');
|
|
3
4
|
var trim = require('../internals/string-trim').trim;
|
|
4
5
|
var whitespaces = require('../internals/whitespaces');
|
|
5
6
|
|
|
6
7
|
var $parseFloat = global.parseFloat;
|
|
7
|
-
var
|
|
8
|
+
var Symbol = global.Symbol;
|
|
9
|
+
var ITERATOR = Symbol && Symbol.iterator;
|
|
10
|
+
var FORCED = 1 / $parseFloat(whitespaces + '-0') !== -Infinity
|
|
11
|
+
// MS Edge 18- broken with boxed symbols
|
|
12
|
+
|| (ITERATOR && !fails(function () { $parseFloat(Object(ITERATOR)); }));
|
|
8
13
|
|
|
9
14
|
// `parseFloat` method
|
|
10
15
|
// https://tc39.es/ecma262/#sec-parsefloat-string
|
|
@@ -1,11 +1,16 @@
|
|
|
1
1
|
var global = require('../internals/global');
|
|
2
|
+
var fails = require('../internals/fails');
|
|
2
3
|
var toString = require('../internals/to-string');
|
|
3
4
|
var trim = require('../internals/string-trim').trim;
|
|
4
5
|
var whitespaces = require('../internals/whitespaces');
|
|
5
6
|
|
|
6
7
|
var $parseInt = global.parseInt;
|
|
8
|
+
var Symbol = global.Symbol;
|
|
9
|
+
var ITERATOR = Symbol && Symbol.iterator;
|
|
7
10
|
var hex = /^[+-]?0[Xx]/;
|
|
8
|
-
var FORCED = $parseInt(whitespaces + '08') !== 8 || $parseInt(whitespaces + '0x16') !== 22
|
|
11
|
+
var FORCED = $parseInt(whitespaces + '08') !== 8 || $parseInt(whitespaces + '0x16') !== 22
|
|
12
|
+
// MS Edge 18- broken with boxed symbols
|
|
13
|
+
|| (ITERATOR && !fails(function () { $parseInt(Object(ITERATOR)); }));
|
|
9
14
|
|
|
10
15
|
// `parseInt` method
|
|
11
16
|
// https://tc39.es/ecma262/#sec-parseint-string-radix
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
var has = require('../internals/has');
|
|
2
|
+
var isCallable = require('../internals/is-callable');
|
|
2
3
|
var toObject = require('../internals/to-object');
|
|
3
4
|
var sharedKey = require('../internals/shared-key');
|
|
4
5
|
var CORRECT_PROTOTYPE_GETTER = require('../internals/correct-prototype-getter');
|
|
@@ -10,9 +11,10 @@ var ObjectPrototype = Object.prototype;
|
|
|
10
11
|
// https://tc39.es/ecma262/#sec-object.getprototypeof
|
|
11
12
|
// eslint-disable-next-line es/no-object-getprototypeof -- safe
|
|
12
13
|
module.exports = CORRECT_PROTOTYPE_GETTER ? Object.getPrototypeOf : function (O) {
|
|
13
|
-
|
|
14
|
-
if (has(
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
14
|
+
var object = toObject(O);
|
|
15
|
+
if (has(object, IE_PROTO)) return object[IE_PROTO];
|
|
16
|
+
var constructor = object.constructor;
|
|
17
|
+
if (isCallable(constructor) && object instanceof constructor) {
|
|
18
|
+
return constructor.prototype;
|
|
19
|
+
} return object instanceof Object ? ObjectPrototype : null;
|
|
18
20
|
};
|
|
@@ -1,11 +1,12 @@
|
|
|
1
|
+
var isCallable = require('../internals/is-callable');
|
|
1
2
|
var isObject = require('../internals/is-object');
|
|
2
3
|
|
|
3
4
|
// `OrdinaryToPrimitive` abstract operation
|
|
4
5
|
// https://tc39.es/ecma262/#sec-ordinarytoprimitive
|
|
5
6
|
module.exports = function (input, pref) {
|
|
6
7
|
var fn, val;
|
|
7
|
-
if (pref === 'string' &&
|
|
8
|
-
if (
|
|
9
|
-
if (pref !== 'string' &&
|
|
8
|
+
if (pref === 'string' && isCallable(fn = input.toString) && !isObject(val = fn.call(input))) return val;
|
|
9
|
+
if (isCallable(fn = input.valueOf) && !isObject(val = fn.call(input))) return val;
|
|
10
|
+
if (pref !== 'string' && isCallable(fn = input.toString) && !isObject(val = fn.call(input))) return val;
|
|
10
11
|
throw TypeError("Can't convert object to primitive value");
|
|
11
12
|
};
|
package/internals/redefine.js
CHANGED
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
var global = require('../internals/global');
|
|
2
|
-
var
|
|
2
|
+
var isCallable = require('../internals/is-callable');
|
|
3
3
|
var has = require('../internals/has');
|
|
4
|
+
var createNonEnumerableProperty = require('../internals/create-non-enumerable-property');
|
|
4
5
|
var setGlobal = require('../internals/set-global');
|
|
5
6
|
var inspectSource = require('../internals/inspect-source');
|
|
6
7
|
var InternalStateModule = require('../internals/internal-state');
|
|
8
|
+
var CONFIGURABLE_FUNCTION_NAME = require('../internals/function-name').CONFIGURABLE;
|
|
7
9
|
|
|
8
10
|
var getInternalState = InternalStateModule.get;
|
|
9
11
|
var enforceInternalState = InternalStateModule.enforce;
|
|
@@ -13,14 +15,18 @@ var TEMPLATE = String(String).split('String');
|
|
|
13
15
|
var unsafe = options ? !!options.unsafe : false;
|
|
14
16
|
var simple = options ? !!options.enumerable : false;
|
|
15
17
|
var noTargetGet = options ? !!options.noTargetGet : false;
|
|
18
|
+
var name = options && options.name !== undefined ? options.name : key;
|
|
16
19
|
var state;
|
|
17
|
-
if (
|
|
18
|
-
if (
|
|
19
|
-
|
|
20
|
+
if (isCallable(value)) {
|
|
21
|
+
if (String(name).slice(0, 7) === 'Symbol(') {
|
|
22
|
+
name = '[' + String(name).replace(/^Symbol\(([^)]*)\)/, '$1') + ']';
|
|
23
|
+
}
|
|
24
|
+
if (!has(value, 'name') || (CONFIGURABLE_FUNCTION_NAME && value.name !== name)) {
|
|
25
|
+
createNonEnumerableProperty(value, 'name', name);
|
|
20
26
|
}
|
|
21
27
|
state = enforceInternalState(value);
|
|
22
28
|
if (!state.source) {
|
|
23
|
-
state.source = TEMPLATE.join(typeof
|
|
29
|
+
state.source = TEMPLATE.join(typeof name == 'string' ? name : '');
|
|
24
30
|
}
|
|
25
31
|
}
|
|
26
32
|
if (O === global) {
|
|
@@ -36,5 +42,5 @@ var TEMPLATE = String(String).split('String');
|
|
|
36
42
|
else createNonEnumerableProperty(O, key, value);
|
|
37
43
|
// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative
|
|
38
44
|
})(Function.prototype, 'toString', function toString() {
|
|
39
|
-
return
|
|
45
|
+
return isCallable(this) && getInternalState(this).source || inspectSource(this);
|
|
40
46
|
});
|
|
@@ -1,22 +1,17 @@
|
|
|
1
|
-
var
|
|
2
|
-
var
|
|
1
|
+
var anObject = require('../internals/an-object');
|
|
2
|
+
var isCallable = require('../internals/is-callable');
|
|
3
|
+
var classof = require('../internals/classof-raw');
|
|
4
|
+
var regexpExec = require('../internals/regexp-exec');
|
|
3
5
|
|
|
4
6
|
// `RegExpExec` abstract operation
|
|
5
7
|
// https://tc39.es/ecma262/#sec-regexpexec
|
|
6
8
|
module.exports = function (R, S) {
|
|
7
9
|
var exec = R.exec;
|
|
8
|
-
if (
|
|
10
|
+
if (isCallable(exec)) {
|
|
9
11
|
var result = exec.call(R, S);
|
|
10
|
-
if (
|
|
11
|
-
throw TypeError('RegExp exec method returned something other than an Object or null');
|
|
12
|
-
}
|
|
12
|
+
if (result !== null) anObject(result);
|
|
13
13
|
return result;
|
|
14
14
|
}
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
throw TypeError('RegExp#exec called on incompatible receiver');
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
return regexpExec.call(R, S);
|
|
15
|
+
if (classof(R) === 'RegExp') return regexpExec.call(R, S);
|
|
16
|
+
throw TypeError('RegExp#exec called on incompatible receiver');
|
|
21
17
|
};
|
|
22
|
-
|
package/internals/shared.js
CHANGED
|
@@ -4,7 +4,7 @@ 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.18.0',
|
|
8
8
|
mode: IS_PURE ? 'pure' : 'global',
|
|
9
9
|
copyright: '© 2021 Denis Pushkarev (zloirock.ru)'
|
|
10
10
|
});
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
var anObject = require('../internals/an-object');
|
|
2
|
-
var
|
|
2
|
+
var aConstructor = require('../internals/a-constructor');
|
|
3
3
|
var wellKnownSymbol = require('../internals/well-known-symbol');
|
|
4
4
|
|
|
5
5
|
var SPECIES = wellKnownSymbol('species');
|
|
@@ -9,5 +9,5 @@ var SPECIES = wellKnownSymbol('species');
|
|
|
9
9
|
module.exports = function (O, defaultConstructor) {
|
|
10
10
|
var C = anObject(O).constructor;
|
|
11
11
|
var S;
|
|
12
|
-
return C === undefined || (S = anObject(C)[SPECIES]) == undefined ? defaultConstructor :
|
|
12
|
+
return C === undefined || (S = anObject(C)[SPECIES]) == undefined ? defaultConstructor : aConstructor(S);
|
|
13
13
|
};
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
var PROPER_FUNCTION_NAME = require('../internals/function-name').PROPER;
|
|
1
2
|
var fails = require('../internals/fails');
|
|
2
3
|
var whitespaces = require('../internals/whitespaces');
|
|
3
4
|
|
|
@@ -7,6 +8,8 @@ var non = '\u200B\u0085\u180E';
|
|
|
7
8
|
// of whitespaces and has a correct name
|
|
8
9
|
module.exports = function (METHOD_NAME) {
|
|
9
10
|
return fails(function () {
|
|
10
|
-
return !!whitespaces[METHOD_NAME]()
|
|
11
|
+
return !!whitespaces[METHOD_NAME]()
|
|
12
|
+
|| non[METHOD_NAME]() !== non
|
|
13
|
+
|| (PROPER_FUNCTION_NAME && whitespaces[METHOD_NAME].name !== METHOD_NAME);
|
|
11
14
|
});
|
|
12
15
|
};
|
package/internals/task.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
var global = require('../internals/global');
|
|
2
|
+
var isCallable = require('../internals/is-callable');
|
|
2
3
|
var fails = require('../internals/fails');
|
|
3
4
|
var bind = require('../internals/function-bind-context');
|
|
4
5
|
var html = require('../internals/html');
|
|
@@ -54,7 +55,7 @@ if (!set || !clear) {
|
|
|
54
55
|
while (argumentsLength > i) args.push(arguments[i++]);
|
|
55
56
|
queue[++counter] = function () {
|
|
56
57
|
// eslint-disable-next-line no-new-func -- spec requirement
|
|
57
|
-
(
|
|
58
|
+
(isCallable(fn) ? fn : Function(fn)).apply(undefined, args);
|
|
58
59
|
};
|
|
59
60
|
defer(counter);
|
|
60
61
|
return counter;
|
|
@@ -83,7 +84,7 @@ if (!set || !clear) {
|
|
|
83
84
|
// IE8 has postMessage, but it's sync & typeof its postMessage is 'object'
|
|
84
85
|
} else if (
|
|
85
86
|
global.addEventListener &&
|
|
86
|
-
|
|
87
|
+
isCallable(global.postMessage) &&
|
|
87
88
|
!global.importScripts &&
|
|
88
89
|
location && location.protocol !== 'file:' &&
|
|
89
90
|
!fails(post)
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
var isObject = require('../internals/is-object');
|
|
2
2
|
var isSymbol = require('../internals/is-symbol');
|
|
3
|
+
var getMethod = require('../internals/get-method');
|
|
3
4
|
var ordinaryToPrimitive = require('../internals/ordinary-to-primitive');
|
|
4
5
|
var wellKnownSymbol = require('../internals/well-known-symbol');
|
|
5
6
|
|
|
@@ -9,9 +10,9 @@ var TO_PRIMITIVE = wellKnownSymbol('toPrimitive');
|
|
|
9
10
|
// https://tc39.es/ecma262/#sec-toprimitive
|
|
10
11
|
module.exports = function (input, pref) {
|
|
11
12
|
if (!isObject(input) || isSymbol(input)) return input;
|
|
12
|
-
var exoticToPrim = input
|
|
13
|
+
var exoticToPrim = getMethod(input, TO_PRIMITIVE);
|
|
13
14
|
var result;
|
|
14
|
-
if (exoticToPrim
|
|
15
|
+
if (exoticToPrim) {
|
|
15
16
|
if (pref === undefined) pref = 'default';
|
|
16
17
|
result = exoticToPrim.call(input, pref);
|
|
17
18
|
if (!isObject(result) || isSymbol(result)) return result;
|
package/internals/to-string.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
var
|
|
1
|
+
var classof = require('../internals/classof');
|
|
2
2
|
|
|
3
3
|
module.exports = function (argument) {
|
|
4
|
-
if (
|
|
4
|
+
if (classof(argument) === 'Symbol') throw TypeError('Cannot convert a Symbol value to a string');
|
|
5
5
|
return String(argument);
|
|
6
6
|
};
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
var aConstructor = require('../internals/a-constructor');
|
|
1
2
|
var toObject = require('../internals/to-object');
|
|
2
3
|
var toLength = require('../internals/to-length');
|
|
3
4
|
var getIterator = require('../internals/get-iterator');
|
|
@@ -7,13 +8,14 @@ var bind = require('../internals/function-bind-context');
|
|
|
7
8
|
var aTypedArrayConstructor = require('../internals/array-buffer-view-core').aTypedArrayConstructor;
|
|
8
9
|
|
|
9
10
|
module.exports = function from(source /* , mapfn, thisArg */) {
|
|
11
|
+
var C = aConstructor(this);
|
|
10
12
|
var O = toObject(source);
|
|
11
13
|
var argumentsLength = arguments.length;
|
|
12
14
|
var mapfn = argumentsLength > 1 ? arguments[1] : undefined;
|
|
13
15
|
var mapping = mapfn !== undefined;
|
|
14
16
|
var iteratorMethod = getIteratorMethod(O);
|
|
15
17
|
var i, length, result, step, iterator, next;
|
|
16
|
-
if (iteratorMethod
|
|
18
|
+
if (iteratorMethod && !isArrayIteratorMethod(iteratorMethod)) {
|
|
17
19
|
iterator = getIterator(O, iteratorMethod);
|
|
18
20
|
next = iterator.next;
|
|
19
21
|
O = [];
|
|
@@ -25,7 +27,7 @@ module.exports = function from(source /* , mapfn, thisArg */) {
|
|
|
25
27
|
mapfn = bind(mapfn, arguments[2], 2);
|
|
26
28
|
}
|
|
27
29
|
length = toLength(O.length);
|
|
28
|
-
result = new (aTypedArrayConstructor(
|
|
30
|
+
result = new (aTypedArrayConstructor(C))(length);
|
|
29
31
|
for (i = 0; length > i; i++) {
|
|
30
32
|
result[i] = mapping ? mapfn(O[i], i) : O[i];
|
|
31
33
|
}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
var $ = require('../internals/export');
|
|
3
3
|
var flattenIntoArray = require('../internals/flatten-into-array');
|
|
4
|
+
var aCallable = require('../internals/a-callable');
|
|
4
5
|
var toObject = require('../internals/to-object');
|
|
5
6
|
var toLength = require('../internals/to-length');
|
|
6
|
-
var aFunction = require('../internals/a-function');
|
|
7
7
|
var arraySpeciesCreate = require('../internals/array-species-create');
|
|
8
8
|
|
|
9
9
|
// `Array.prototype.flatMap` method
|
|
@@ -13,7 +13,7 @@ $({ target: 'Array', proto: true }, {
|
|
|
13
13
|
var O = toObject(this);
|
|
14
14
|
var sourceLen = toLength(O.length);
|
|
15
15
|
var A;
|
|
16
|
-
|
|
16
|
+
aCallable(callbackfn);
|
|
17
17
|
A = arraySpeciesCreate(O, 0);
|
|
18
18
|
A.length = flattenIntoArray(A, O, O, sourceLen, 0, 1, callbackfn, arguments.length > 1 ? arguments[1] : undefined);
|
|
19
19
|
return A;
|
package/modules/es.array.of.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
var $ = require('../internals/export');
|
|
3
3
|
var fails = require('../internals/fails');
|
|
4
|
+
var isConstructor = require('../internals/is-constructor');
|
|
4
5
|
var createProperty = require('../internals/create-property');
|
|
5
6
|
|
|
6
7
|
var ISNT_GENERIC = fails(function () {
|
|
@@ -16,7 +17,7 @@ $({ target: 'Array', stat: true, forced: ISNT_GENERIC }, {
|
|
|
16
17
|
of: function of(/* ...args */) {
|
|
17
18
|
var index = 0;
|
|
18
19
|
var argumentsLength = arguments.length;
|
|
19
|
-
var result = new (
|
|
20
|
+
var result = new (isConstructor(this) ? this : Array)(argumentsLength);
|
|
20
21
|
while (argumentsLength > index) createProperty(result, index, arguments[index++]);
|
|
21
22
|
result.length = argumentsLength;
|
|
22
23
|
return result;
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
var $ = require('../internals/export');
|
|
3
|
-
var isObject = require('../internals/is-object');
|
|
4
3
|
var isArray = require('../internals/is-array');
|
|
4
|
+
var isConstructor = require('../internals/is-constructor');
|
|
5
|
+
var isObject = require('../internals/is-object');
|
|
5
6
|
var toAbsoluteIndex = require('../internals/to-absolute-index');
|
|
6
7
|
var toLength = require('../internals/to-length');
|
|
7
8
|
var toIndexedObject = require('../internals/to-indexed-object');
|
|
@@ -29,7 +30,7 @@ $({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, {
|
|
|
29
30
|
if (isArray(O)) {
|
|
30
31
|
Constructor = O.constructor;
|
|
31
32
|
// cross-realm fallback
|
|
32
|
-
if (
|
|
33
|
+
if (isConstructor(Constructor) && (Constructor === Array || isArray(Constructor.prototype))) {
|
|
33
34
|
Constructor = undefined;
|
|
34
35
|
} else if (isObject(Constructor)) {
|
|
35
36
|
Constructor = Constructor[SPECIES];
|
package/modules/es.array.sort.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
var $ = require('../internals/export');
|
|
3
|
-
var
|
|
3
|
+
var aCallable = require('../internals/a-callable');
|
|
4
4
|
var toObject = require('../internals/to-object');
|
|
5
5
|
var toLength = require('../internals/to-length');
|
|
6
6
|
var toString = require('../internals/to-string');
|
|
@@ -76,7 +76,7 @@ var getSortCompare = function (comparefn) {
|
|
|
76
76
|
// https://tc39.es/ecma262/#sec-array.prototype.sort
|
|
77
77
|
$({ target: 'Array', proto: true, forced: FORCED }, {
|
|
78
78
|
sort: function sort(comparefn) {
|
|
79
|
-
if (comparefn !== undefined)
|
|
79
|
+
if (comparefn !== undefined) aCallable(comparefn);
|
|
80
80
|
|
|
81
81
|
var array = toObject(this);
|
|
82
82
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
var
|
|
1
|
+
var redefine = require('../internals/redefine');
|
|
2
2
|
var dateToPrimitive = require('../internals/date-to-primitive');
|
|
3
3
|
var wellKnownSymbol = require('../internals/well-known-symbol');
|
|
4
4
|
|
|
@@ -8,5 +8,5 @@ var DatePrototype = Date.prototype;
|
|
|
8
8
|
// `Date.prototype[@@toPrimitive]` method
|
|
9
9
|
// https://tc39.es/ecma262/#sec-date.prototype-@@toprimitive
|
|
10
10
|
if (!(TO_PRIMITIVE in DatePrototype)) {
|
|
11
|
-
|
|
11
|
+
redefine(DatePrototype, TO_PRIMITIVE, dateToPrimitive);
|
|
12
12
|
}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
'use strict';
|
|
2
|
+
var isCallable = require('../internals/is-callable');
|
|
2
3
|
var isObject = require('../internals/is-object');
|
|
3
4
|
var definePropertyModule = require('../internals/object-define-property');
|
|
4
5
|
var getPrototypeOf = require('../internals/object-get-prototype-of');
|
|
@@ -11,7 +12,7 @@ var FunctionPrototype = Function.prototype;
|
|
|
11
12
|
// https://tc39.es/ecma262/#sec-function.prototype-@@hasinstance
|
|
12
13
|
if (!(HAS_INSTANCE in FunctionPrototype)) {
|
|
13
14
|
definePropertyModule.f(FunctionPrototype, HAS_INSTANCE, { value: function (O) {
|
|
14
|
-
if (
|
|
15
|
+
if (!isCallable(this) || !isObject(O)) return false;
|
|
15
16
|
if (!isObject(this.prototype)) return O instanceof this;
|
|
16
17
|
// for environment w/o native `@@hasInstance` logic enough `instanceof`, but add this:
|
|
17
18
|
while (O = getPrototypeOf(O)) if (this.prototype === O) return true;
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
var DESCRIPTORS = require('../internals/descriptors');
|
|
2
|
+
var FUNCTION_NAME_EXISTS = require('../internals/function-name').EXISTS;
|
|
2
3
|
var defineProperty = require('../internals/object-define-property').f;
|
|
3
4
|
|
|
4
5
|
var FunctionPrototype = Function.prototype;
|
|
@@ -8,7 +9,7 @@ var NAME = 'name';
|
|
|
8
9
|
|
|
9
10
|
// Function instances `.name` property
|
|
10
11
|
// https://tc39.es/ecma262/#sec-function-instances-name
|
|
11
|
-
if (DESCRIPTORS && !
|
|
12
|
+
if (DESCRIPTORS && !FUNCTION_NAME_EXISTS) {
|
|
12
13
|
defineProperty(FunctionPrototype, NAME, {
|
|
13
14
|
configurable: true,
|
|
14
15
|
get: function () {
|
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
var $ = require('../internals/export');
|
|
3
3
|
var DESCRIPTORS = require('../internals/descriptors');
|
|
4
4
|
var FORCED = require('../internals/object-prototype-accessors-forced');
|
|
5
|
+
var aCallable = require('../internals/a-callable');
|
|
5
6
|
var toObject = require('../internals/to-object');
|
|
6
|
-
var aFunction = require('../internals/a-function');
|
|
7
7
|
var definePropertyModule = require('../internals/object-define-property');
|
|
8
8
|
|
|
9
9
|
// `Object.prototype.__defineGetter__` method
|
|
@@ -11,7 +11,7 @@ var definePropertyModule = require('../internals/object-define-property');
|
|
|
11
11
|
if (DESCRIPTORS) {
|
|
12
12
|
$({ target: 'Object', proto: true, forced: FORCED }, {
|
|
13
13
|
__defineGetter__: function __defineGetter__(P, getter) {
|
|
14
|
-
definePropertyModule.f(toObject(this), P, { get:
|
|
14
|
+
definePropertyModule.f(toObject(this), P, { get: aCallable(getter), enumerable: true, configurable: true });
|
|
15
15
|
}
|
|
16
16
|
});
|
|
17
17
|
}
|
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
var $ = require('../internals/export');
|
|
3
3
|
var DESCRIPTORS = require('../internals/descriptors');
|
|
4
4
|
var FORCED = require('../internals/object-prototype-accessors-forced');
|
|
5
|
+
var aCallable = require('../internals/a-callable');
|
|
5
6
|
var toObject = require('../internals/to-object');
|
|
6
|
-
var aFunction = require('../internals/a-function');
|
|
7
7
|
var definePropertyModule = require('../internals/object-define-property');
|
|
8
8
|
|
|
9
9
|
// `Object.prototype.__defineSetter__` method
|
|
@@ -11,7 +11,7 @@ var definePropertyModule = require('../internals/object-define-property');
|
|
|
11
11
|
if (DESCRIPTORS) {
|
|
12
12
|
$({ target: 'Object', proto: true, forced: FORCED }, {
|
|
13
13
|
__defineSetter__: function __defineSetter__(P, setter) {
|
|
14
|
-
definePropertyModule.f(toObject(this), P, { set:
|
|
14
|
+
definePropertyModule.f(toObject(this), P, { set: aCallable(setter), enumerable: true, configurable: true });
|
|
15
15
|
}
|
|
16
16
|
});
|
|
17
17
|
}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
var $ = require('../internals/export');
|
|
2
|
-
var
|
|
2
|
+
var $parseFloat = require('../internals/number-parse-float');
|
|
3
3
|
|
|
4
4
|
// `parseFloat` method
|
|
5
5
|
// https://tc39.es/ecma262/#sec-parsefloat-string
|
|
6
|
-
$({ global: true, forced: parseFloat !=
|
|
7
|
-
parseFloat:
|
|
6
|
+
$({ global: true, forced: parseFloat != $parseFloat }, {
|
|
7
|
+
parseFloat: $parseFloat
|
|
8
8
|
});
|
package/modules/es.parse-int.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
var $ = require('../internals/export');
|
|
2
|
-
var
|
|
2
|
+
var $parseInt = require('../internals/number-parse-int');
|
|
3
3
|
|
|
4
4
|
// `parseInt` method
|
|
5
5
|
// https://tc39.es/ecma262/#sec-parseint-string-radix
|
|
6
|
-
$({ global: true, forced: parseInt !=
|
|
7
|
-
parseInt:
|
|
6
|
+
$({ global: true, forced: parseInt != $parseInt }, {
|
|
7
|
+
parseInt: $parseInt
|
|
8
8
|
});
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
var $ = require('../internals/export');
|
|
3
|
-
var
|
|
3
|
+
var aCallable = require('../internals/a-callable');
|
|
4
4
|
var newPromiseCapabilityModule = require('../internals/new-promise-capability');
|
|
5
5
|
var perform = require('../internals/perform');
|
|
6
6
|
var iterate = require('../internals/iterate');
|
|
@@ -14,7 +14,7 @@ $({ target: 'Promise', stat: true }, {
|
|
|
14
14
|
var resolve = capability.resolve;
|
|
15
15
|
var reject = capability.reject;
|
|
16
16
|
var result = perform(function () {
|
|
17
|
-
var promiseResolve =
|
|
17
|
+
var promiseResolve = aCallable(C.resolve);
|
|
18
18
|
var values = [];
|
|
19
19
|
var counter = 0;
|
|
20
20
|
var remaining = 1;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
var $ = require('../internals/export');
|
|
3
|
-
var
|
|
3
|
+
var aCallable = require('../internals/a-callable');
|
|
4
4
|
var getBuiltIn = require('../internals/get-built-in');
|
|
5
5
|
var newPromiseCapabilityModule = require('../internals/new-promise-capability');
|
|
6
6
|
var perform = require('../internals/perform');
|
|
@@ -17,7 +17,7 @@ $({ target: 'Promise', stat: true }, {
|
|
|
17
17
|
var resolve = capability.resolve;
|
|
18
18
|
var reject = capability.reject;
|
|
19
19
|
var result = perform(function () {
|
|
20
|
-
var promiseResolve =
|
|
20
|
+
var promiseResolve = aCallable(C.resolve);
|
|
21
21
|
var errors = [];
|
|
22
22
|
var counter = 0;
|
|
23
23
|
var remaining = 1;
|
|
@@ -4,6 +4,7 @@ var IS_PURE = require('../internals/is-pure');
|
|
|
4
4
|
var NativePromise = require('../internals/native-promise-constructor');
|
|
5
5
|
var fails = require('../internals/fails');
|
|
6
6
|
var getBuiltIn = require('../internals/get-built-in');
|
|
7
|
+
var isCallable = require('../internals/is-callable');
|
|
7
8
|
var speciesConstructor = require('../internals/species-constructor');
|
|
8
9
|
var promiseResolve = require('../internals/promise-resolve');
|
|
9
10
|
var redefine = require('../internals/redefine');
|
|
@@ -18,7 +19,7 @@ var NON_GENERIC = !!NativePromise && fails(function () {
|
|
|
18
19
|
$({ target: 'Promise', proto: true, real: true, forced: NON_GENERIC }, {
|
|
19
20
|
'finally': function (onFinally) {
|
|
20
21
|
var C = speciesConstructor(this, getBuiltIn('Promise'));
|
|
21
|
-
var isFunction =
|
|
22
|
+
var isFunction = isCallable(onFinally);
|
|
22
23
|
return this.then(
|
|
23
24
|
isFunction ? function (x) {
|
|
24
25
|
return promiseResolve(C, onFinally()).then(function () { return x; });
|
|
@@ -31,7 +32,7 @@ $({ target: 'Promise', proto: true, real: true, forced: NON_GENERIC }, {
|
|
|
31
32
|
});
|
|
32
33
|
|
|
33
34
|
// makes sure that native promise-based APIs `Promise#finally` properly works with patched `Promise#then`
|
|
34
|
-
if (!IS_PURE &&
|
|
35
|
+
if (!IS_PURE && isCallable(NativePromise)) {
|
|
35
36
|
var method = getBuiltIn('Promise').prototype['finally'];
|
|
36
37
|
if (NativePromise.prototype['finally'] !== method) {
|
|
37
38
|
redefine(NativePromise.prototype, 'finally', method, { unsafe: true });
|