core-js 3.1.3 → 3.1.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/internals/a-possible-prototype.js +7 -0
- package/internals/advance-string-index.js +2 -2
- package/internals/array-buffer-view-core.js +1 -1
- package/internals/array-buffer.js +12 -12
- package/internals/array-copy-within.js +3 -1
- package/internals/array-for-each.js +3 -6
- package/internals/array-from.js +1 -1
- package/internals/array-includes.js +12 -7
- package/internals/{array-methods.js → array-iteration.js} +30 -18
- package/internals/array-last-index-of.js +3 -2
- package/internals/array-reduce.js +30 -21
- package/internals/collection-from.js +3 -2
- package/internals/collection-weak.js +5 -5
- package/internals/collection.js +3 -3
- package/internals/composite-key.js +1 -0
- package/internals/date-to-iso-string.js +12 -14
- package/internals/document-create-element.js +2 -2
- package/internals/function-bind.js +3 -3
- package/internals/html.js +2 -4
- package/internals/indexed-object.js +1 -1
- package/internals/inherit-if-required.js +13 -6
- package/internals/iterate.js +18 -10
- package/internals/math-expm1.js +2 -1
- package/internals/math-fround.js +2 -1
- package/internals/math-log1p.js +3 -1
- package/internals/not-a-regexp.js +7 -0
- package/internals/object-assign.js +2 -1
- package/internals/object-create.js +2 -1
- package/internals/object-define-properties.js +4 -2
- package/internals/object-define-property.js +2 -0
- package/internals/object-get-own-property-descriptor.js +2 -0
- package/internals/object-get-own-property-names.js +2 -1
- package/internals/object-get-prototype-of.js +2 -1
- package/internals/object-keys-internal.js +2 -4
- package/internals/object-keys.js +2 -1
- package/internals/object-property-is-enumerable.js +2 -0
- package/internals/object-set-prototype-of.js +9 -5
- package/internals/object-to-array.js +25 -15
- package/internals/own-keys.js +2 -4
- package/internals/parse-float.js +7 -5
- package/internals/parse-int.js +6 -4
- package/internals/punycode-to-ascii.js +2 -4
- package/internals/reflect-metadata.js +1 -0
- package/internals/regexp-flags.js +1 -0
- package/internals/set-species.js +8 -5
- package/internals/string-multibyte.js +27 -0
- package/internals/string-pad.js +25 -11
- package/internals/string-trim.js +20 -8
- package/internals/to-primitive.js +7 -6
- package/internals/typed-array-constructor.js +5 -5
- package/internals/uid.js +1 -1
- package/internals/user-agent.js +2 -4
- package/modules/es.array.every.js +3 -6
- package/modules/es.array.fill.js +3 -1
- package/modules/es.array.filter.js +3 -6
- package/modules/es.array.find-index.js +2 -3
- package/modules/es.array.find.js +2 -3
- package/modules/es.array.flat-map.js +1 -1
- package/modules/es.array.flat.js +1 -1
- package/modules/es.array.includes.js +2 -4
- package/modules/es.array.index-of.js +2 -3
- package/modules/es.array.is-array.js +3 -1
- package/modules/es.array.map.js +3 -6
- package/modules/es.array.reduce-right.js +3 -4
- package/modules/es.array.reduce.js +3 -5
- package/modules/es.array.slice.js +1 -3
- package/modules/es.array.some.js +3 -6
- package/modules/es.array.splice.js +1 -3
- package/modules/es.map.js +1 -1
- package/modules/es.number.constructor.js +9 -10
- package/modules/es.number.to-fixed.js +57 -53
- package/modules/es.object.entries.js +2 -2
- package/modules/es.object.get-own-property-descriptors.js +3 -3
- package/modules/es.object.get-prototype-of.js +1 -0
- package/modules/es.object.values.js +2 -2
- package/modules/es.promise.js +6 -5
- package/modules/es.reflect.apply.js +2 -2
- package/modules/es.reflect.construct.js +4 -4
- package/modules/es.reflect.define-property.js +5 -5
- package/modules/es.reflect.delete-property.js +1 -1
- package/modules/es.reflect.get-own-property-descriptor.js +2 -2
- package/modules/es.reflect.get-prototype-of.js +1 -1
- package/modules/es.reflect.get.js +3 -3
- package/modules/es.reflect.set-prototype-of.js +4 -2
- package/modules/es.reflect.set.js +3 -3
- package/modules/es.regexp.constructor.js +3 -3
- package/modules/es.regexp.to-string.js +1 -1
- package/modules/es.set.js +1 -1
- package/modules/es.string.code-point-at.js +2 -2
- package/modules/es.string.ends-with.js +6 -5
- package/modules/es.string.includes.js +4 -3
- package/modules/es.string.iterator.js +2 -2
- package/modules/es.string.pad-end.js +2 -2
- package/modules/es.string.pad-start.js +2 -2
- package/modules/es.string.starts-with.js +8 -6
- package/modules/es.string.trim-end.js +2 -2
- package/modules/es.string.trim-start.js +2 -2
- package/modules/es.string.trim.js +3 -5
- package/modules/es.symbol.js +93 -85
- package/modules/es.typed-array.copy-within.js +2 -2
- package/modules/es.typed-array.every.js +2 -3
- package/modules/es.typed-array.fill.js +2 -2
- package/modules/es.typed-array.filter.js +3 -4
- package/modules/es.typed-array.find-index.js +2 -3
- package/modules/es.typed-array.find.js +2 -3
- package/modules/es.typed-array.for-each.js +2 -3
- package/modules/es.typed-array.includes.js +2 -3
- package/modules/es.typed-array.index-of.js +2 -3
- package/modules/es.typed-array.iterator.js +1 -1
- package/modules/es.typed-array.join.js +2 -2
- package/modules/es.typed-array.last-index-of.js +2 -2
- package/modules/es.typed-array.map.js +5 -7
- package/modules/es.typed-array.of.js +1 -1
- package/modules/es.typed-array.reduce-right.js +2 -2
- package/modules/es.typed-array.reduce.js +2 -2
- package/modules/es.typed-array.reverse.js +2 -1
- package/modules/es.typed-array.set.js +2 -2
- package/modules/es.typed-array.slice.js +3 -3
- package/modules/es.typed-array.some.js +2 -3
- package/modules/es.typed-array.sort.js +2 -2
- package/modules/es.typed-array.subarray.js +1 -1
- package/modules/es.typed-array.to-locale-string.js +7 -6
- package/modules/es.weak-map.js +1 -1
- package/modules/es.weak-set.js +1 -1
- package/modules/esnext.global-this.js +3 -1
- package/modules/esnext.map.every.js +4 -5
- package/modules/esnext.map.filter.js +4 -5
- package/modules/esnext.map.find-key.js +4 -5
- package/modules/esnext.map.find.js +4 -5
- package/modules/esnext.map.includes.js +4 -7
- package/modules/esnext.map.key-of.js +4 -7
- package/modules/esnext.map.map-keys.js +4 -5
- package/modules/esnext.map.map-values.js +4 -5
- package/modules/esnext.map.reduce.js +5 -5
- package/modules/esnext.map.some.js +4 -5
- package/modules/esnext.map.update.js +3 -2
- package/modules/esnext.observable.js +25 -24
- package/modules/esnext.reflect.get-metadata-keys.js +1 -0
- package/modules/esnext.set.every.js +4 -4
- package/modules/esnext.set.filter.js +4 -4
- package/modules/esnext.set.find.js +4 -4
- package/modules/esnext.set.is-disjoint-from.js +3 -5
- package/modules/esnext.set.is-subset-of.js +3 -5
- package/modules/esnext.set.is-superset-of.js +3 -5
- package/modules/esnext.set.join.js +2 -2
- package/modules/esnext.set.map.js +4 -4
- package/modules/esnext.set.reduce.js +5 -4
- package/modules/esnext.set.some.js +4 -4
- package/modules/esnext.string.at.js +2 -2
- package/modules/esnext.string.code-points.js +5 -3
- package/modules/esnext.string.replace-all.js +4 -4
- package/modules/web.immediate.js +5 -0
- package/modules/web.timers.js +12 -7
- package/modules/web.url-search-params.js +45 -36
- package/modules/web.url.js +45 -43
- package/package.json +1 -1
- package/internals/enum-keys.js +0 -16
- package/internals/string-at.js +0 -17
- package/internals/validate-set-prototype-of-arguments.js +0 -9
- package/internals/validate-string-method-arguments.js +0 -9
|
@@ -32,7 +32,8 @@ var createDict = function () {
|
|
|
32
32
|
return createDict();
|
|
33
33
|
};
|
|
34
34
|
|
|
35
|
-
//
|
|
35
|
+
// `Object.create` method
|
|
36
|
+
// https://tc39.github.io/ecma262/#sec-object.create
|
|
36
37
|
module.exports = Object.create || function create(O, Properties) {
|
|
37
38
|
var result;
|
|
38
39
|
if (O !== null) {
|
|
@@ -3,12 +3,14 @@ var definePropertyModule = require('../internals/object-define-property');
|
|
|
3
3
|
var anObject = require('../internals/an-object');
|
|
4
4
|
var objectKeys = require('../internals/object-keys');
|
|
5
5
|
|
|
6
|
+
// `Object.defineProperties` method
|
|
7
|
+
// https://tc39.github.io/ecma262/#sec-object.defineproperties
|
|
6
8
|
module.exports = DESCRIPTORS ? Object.defineProperties : function defineProperties(O, Properties) {
|
|
7
9
|
anObject(O);
|
|
8
10
|
var keys = objectKeys(Properties);
|
|
9
11
|
var length = keys.length;
|
|
10
|
-
var
|
|
12
|
+
var index = 0;
|
|
11
13
|
var key;
|
|
12
|
-
while (length >
|
|
14
|
+
while (length > index) definePropertyModule.f(O, key = keys[index++], Properties[key]);
|
|
13
15
|
return O;
|
|
14
16
|
};
|
|
@@ -5,6 +5,8 @@ var toPrimitive = require('../internals/to-primitive');
|
|
|
5
5
|
|
|
6
6
|
var nativeDefineProperty = Object.defineProperty;
|
|
7
7
|
|
|
8
|
+
// `Object.defineProperty` method
|
|
9
|
+
// https://tc39.github.io/ecma262/#sec-object.defineproperty
|
|
8
10
|
exports.f = DESCRIPTORS ? nativeDefineProperty : function defineProperty(O, P, Attributes) {
|
|
9
11
|
anObject(O);
|
|
10
12
|
P = toPrimitive(P, true);
|
|
@@ -8,6 +8,8 @@ var IE8_DOM_DEFINE = require('../internals/ie8-dom-define');
|
|
|
8
8
|
|
|
9
9
|
var nativeGetOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;
|
|
10
10
|
|
|
11
|
+
// `Object.getOwnPropertyDescriptor` method
|
|
12
|
+
// https://tc39.github.io/ecma262/#sec-object.getownpropertydescriptor
|
|
11
13
|
exports.f = DESCRIPTORS ? nativeGetOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) {
|
|
12
14
|
O = toIndexedObject(O);
|
|
13
15
|
P = toPrimitive(P, true);
|
|
@@ -1,9 +1,10 @@
|
|
|
1
|
-
// 19.1.2.7 / 15.2.3.4 Object.getOwnPropertyNames(O)
|
|
2
1
|
var internalObjectKeys = require('../internals/object-keys-internal');
|
|
3
2
|
var enumBugKeys = require('../internals/enum-bug-keys');
|
|
4
3
|
|
|
5
4
|
var hiddenKeys = enumBugKeys.concat('length', 'prototype');
|
|
6
5
|
|
|
6
|
+
// `Object.getOwnPropertyNames` method
|
|
7
|
+
// https://tc39.github.io/ecma262/#sec-object.getownpropertynames
|
|
7
8
|
exports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {
|
|
8
9
|
return internalObjectKeys(O, hiddenKeys);
|
|
9
10
|
};
|
|
@@ -6,7 +6,8 @@ var CORRECT_PROTOTYPE_GETTER = require('../internals/correct-prototype-getter');
|
|
|
6
6
|
var IE_PROTO = sharedKey('IE_PROTO');
|
|
7
7
|
var ObjectPrototype = Object.prototype;
|
|
8
8
|
|
|
9
|
-
//
|
|
9
|
+
// `Object.getPrototypeOf` method
|
|
10
|
+
// https://tc39.github.io/ecma262/#sec-object.getprototypeof
|
|
10
11
|
module.exports = CORRECT_PROTOTYPE_GETTER ? Object.getPrototypeOf : function (O) {
|
|
11
12
|
O = toObject(O);
|
|
12
13
|
if (has(O, IE_PROTO)) return O[IE_PROTO];
|
|
@@ -1,10 +1,8 @@
|
|
|
1
1
|
var has = require('../internals/has');
|
|
2
2
|
var toIndexedObject = require('../internals/to-indexed-object');
|
|
3
|
-
var
|
|
3
|
+
var indexOf = require('../internals/array-includes').indexOf;
|
|
4
4
|
var hiddenKeys = require('../internals/hidden-keys');
|
|
5
5
|
|
|
6
|
-
var arrayIndexOf = arrayIncludes(false);
|
|
7
|
-
|
|
8
6
|
module.exports = function (object, names) {
|
|
9
7
|
var O = toIndexedObject(object);
|
|
10
8
|
var i = 0;
|
|
@@ -13,7 +11,7 @@ module.exports = function (object, names) {
|
|
|
13
11
|
for (key in O) !has(hiddenKeys, key) && has(O, key) && result.push(key);
|
|
14
12
|
// Don't enum bug & hidden keys
|
|
15
13
|
while (names.length > i) if (has(O, key = names[i++])) {
|
|
16
|
-
~
|
|
14
|
+
~indexOf(result, key) || result.push(key);
|
|
17
15
|
}
|
|
18
16
|
return result;
|
|
19
17
|
};
|
package/internals/object-keys.js
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
var internalObjectKeys = require('../internals/object-keys-internal');
|
|
2
2
|
var enumBugKeys = require('../internals/enum-bug-keys');
|
|
3
3
|
|
|
4
|
-
//
|
|
4
|
+
// `Object.keys` method
|
|
5
|
+
// https://tc39.github.io/ecma262/#sec-object.keys
|
|
5
6
|
module.exports = Object.keys || function keys(O) {
|
|
6
7
|
return internalObjectKeys(O, enumBugKeys);
|
|
7
8
|
};
|
|
@@ -5,6 +5,8 @@ var getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;
|
|
|
5
5
|
// Nashorn ~ JDK8 bug
|
|
6
6
|
var NASHORN_BUG = getOwnPropertyDescriptor && !nativePropertyIsEnumerable.call({ 1: 2 }, 1);
|
|
7
7
|
|
|
8
|
+
// `Object.prototype.propertyIsEnumerable` method implementation
|
|
9
|
+
// https://tc39.github.io/ecma262/#sec-object.prototype.propertyisenumerable
|
|
8
10
|
exports.f = NASHORN_BUG ? function propertyIsEnumerable(V) {
|
|
9
11
|
var descriptor = getOwnPropertyDescriptor(this, V);
|
|
10
12
|
return !!descriptor && descriptor.enumerable;
|
|
@@ -1,19 +1,23 @@
|
|
|
1
|
-
var
|
|
1
|
+
var anObject = require('../internals/an-object');
|
|
2
|
+
var aPossiblePrototype = require('../internals/a-possible-prototype');
|
|
2
3
|
|
|
4
|
+
// `Object.setPrototypeOf` method
|
|
5
|
+
// https://tc39.github.io/ecma262/#sec-object.setprototypeof
|
|
3
6
|
// Works with __proto__ only. Old v8 can't work with null proto objects.
|
|
4
7
|
/* eslint-disable no-proto */
|
|
5
8
|
module.exports = Object.setPrototypeOf || ('__proto__' in {} ? function () {
|
|
6
|
-
var
|
|
9
|
+
var CORRECT_SETTER = false;
|
|
7
10
|
var test = {};
|
|
8
11
|
var setter;
|
|
9
12
|
try {
|
|
10
13
|
setter = Object.getOwnPropertyDescriptor(Object.prototype, '__proto__').set;
|
|
11
14
|
setter.call(test, []);
|
|
12
|
-
|
|
15
|
+
CORRECT_SETTER = test instanceof Array;
|
|
13
16
|
} catch (error) { /* empty */ }
|
|
14
17
|
return function setPrototypeOf(O, proto) {
|
|
15
|
-
|
|
16
|
-
|
|
18
|
+
anObject(O);
|
|
19
|
+
aPossiblePrototype(proto);
|
|
20
|
+
if (CORRECT_SETTER) setter.call(O, proto);
|
|
17
21
|
else O.__proto__ = proto;
|
|
18
22
|
return O;
|
|
19
23
|
};
|
|
@@ -3,20 +3,30 @@ var objectKeys = require('../internals/object-keys');
|
|
|
3
3
|
var toIndexedObject = require('../internals/to-indexed-object');
|
|
4
4
|
var propertyIsEnumerable = require('../internals/object-property-is-enumerable').f;
|
|
5
5
|
|
|
6
|
-
//
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
6
|
+
// `Object.{ entries, values }` methods implementation
|
|
7
|
+
var createMethod = function (TO_ENTRIES) {
|
|
8
|
+
return function (it) {
|
|
9
|
+
var O = toIndexedObject(it);
|
|
10
|
+
var keys = objectKeys(O);
|
|
11
|
+
var length = keys.length;
|
|
12
|
+
var i = 0;
|
|
13
|
+
var result = [];
|
|
14
|
+
var key;
|
|
15
|
+
while (length > i) {
|
|
16
|
+
key = keys[i++];
|
|
17
|
+
if (!DESCRIPTORS || propertyIsEnumerable.call(O, key)) {
|
|
18
|
+
result.push(TO_ENTRIES ? [key, O[key]] : O[key]);
|
|
19
|
+
}
|
|
19
20
|
}
|
|
20
|
-
|
|
21
|
-
|
|
21
|
+
return result;
|
|
22
|
+
};
|
|
23
|
+
};
|
|
24
|
+
|
|
25
|
+
module.exports = {
|
|
26
|
+
// `Object.entries` method
|
|
27
|
+
// https://tc39.github.io/ecma262/#sec-object.entries
|
|
28
|
+
entries: createMethod(true),
|
|
29
|
+
// `Object.values` method
|
|
30
|
+
// https://tc39.github.io/ecma262/#sec-object.values
|
|
31
|
+
values: createMethod(false)
|
|
22
32
|
};
|
package/internals/own-keys.js
CHANGED
|
@@ -1,12 +1,10 @@
|
|
|
1
|
-
var
|
|
1
|
+
var getBuiltIn = require('../internals/get-built-in');
|
|
2
2
|
var getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');
|
|
3
3
|
var getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');
|
|
4
4
|
var anObject = require('../internals/an-object');
|
|
5
5
|
|
|
6
|
-
var Reflect = global.Reflect;
|
|
7
|
-
|
|
8
6
|
// all object keys, includes non-enumerable and symbols
|
|
9
|
-
module.exports = Reflect
|
|
7
|
+
module.exports = getBuiltIn('Reflect', 'ownKeys') || function ownKeys(it) {
|
|
10
8
|
var keys = getOwnPropertyNamesModule.f(anObject(it));
|
|
11
9
|
var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;
|
|
12
10
|
return getOwnPropertySymbols ? keys.concat(getOwnPropertySymbols(it)) : keys;
|
package/internals/parse-float.js
CHANGED
|
@@ -1,12 +1,14 @@
|
|
|
1
1
|
var global = require('../internals/global');
|
|
2
|
-
var
|
|
2
|
+
var trim = require('../internals/string-trim').trim;
|
|
3
3
|
var whitespaces = require('../internals/whitespaces');
|
|
4
4
|
|
|
5
5
|
var nativeParseFloat = global.parseFloat;
|
|
6
6
|
var FORCED = 1 / nativeParseFloat(whitespaces + '-0') !== -Infinity;
|
|
7
7
|
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
8
|
+
// `parseFloat` method
|
|
9
|
+
// https://tc39.github.io/ecma262/#sec-parsefloat-string
|
|
10
|
+
module.exports = FORCED ? function parseFloat(string) {
|
|
11
|
+
var trimmedString = trim(String(string));
|
|
12
|
+
var result = nativeParseFloat(trimmedString);
|
|
13
|
+
return result === 0 && trimmedString.charAt(0) == '-' ? -0 : result;
|
|
12
14
|
} : nativeParseFloat;
|
package/internals/parse-int.js
CHANGED
|
@@ -1,12 +1,14 @@
|
|
|
1
1
|
var global = require('../internals/global');
|
|
2
|
-
var
|
|
2
|
+
var trim = require('../internals/string-trim').trim;
|
|
3
3
|
var whitespaces = require('../internals/whitespaces');
|
|
4
4
|
|
|
5
5
|
var nativeParseInt = global.parseInt;
|
|
6
6
|
var hex = /^[+-]?0[Xx]/;
|
|
7
7
|
var FORCED = nativeParseInt(whitespaces + '08') !== 8 || nativeParseInt(whitespaces + '0x16') !== 22;
|
|
8
8
|
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
9
|
+
// `parseInt` method
|
|
10
|
+
// https://tc39.github.io/ecma262/#sec-parseint-string-radix
|
|
11
|
+
module.exports = FORCED ? function parseInt(string, radix) {
|
|
12
|
+
var S = trim(String(string));
|
|
13
|
+
return nativeParseInt(S, (radix >>> 0) || (hex.test(S) ? 16 : 10));
|
|
12
14
|
} : nativeParseInt;
|
|
@@ -64,7 +64,7 @@ var adapt = function (delta, numPoints, firstTime) {
|
|
|
64
64
|
var k = 0;
|
|
65
65
|
delta = firstTime ? floor(delta / damp) : delta >> 1;
|
|
66
66
|
delta += floor(delta / numPoints);
|
|
67
|
-
for (
|
|
67
|
+
for (; delta > baseMinusTMin * tMax >> 1; k += base) {
|
|
68
68
|
delta = floor(delta / baseMinusTMin);
|
|
69
69
|
}
|
|
70
70
|
return floor(k + (baseMinusTMin + 1) * delta / (delta + skew));
|
|
@@ -136,9 +136,7 @@ var encode = function (input) {
|
|
|
136
136
|
var q = delta;
|
|
137
137
|
for (var k = base; /* no condition */; k += base) {
|
|
138
138
|
var t = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);
|
|
139
|
-
if (q < t)
|
|
140
|
-
break;
|
|
141
|
-
}
|
|
139
|
+
if (q < t) break;
|
|
142
140
|
var qMinusT = q - t;
|
|
143
141
|
var baseMinusT = base - t;
|
|
144
142
|
output.push(stringFromCharCode(digitToBasic(t + qMinusT % baseMinusT)));
|
|
@@ -9,6 +9,7 @@ module.exports = function () {
|
|
|
9
9
|
if (that.global) result += 'g';
|
|
10
10
|
if (that.ignoreCase) result += 'i';
|
|
11
11
|
if (that.multiline) result += 'm';
|
|
12
|
+
if (that.dotAll) result += 's';
|
|
12
13
|
if (that.unicode) result += 'u';
|
|
13
14
|
if (that.sticky) result += 'y';
|
|
14
15
|
return result;
|
package/internals/set-species.js
CHANGED
|
@@ -7,10 +7,13 @@ var DESCRIPTORS = require('../internals/descriptors');
|
|
|
7
7
|
var SPECIES = wellKnownSymbol('species');
|
|
8
8
|
|
|
9
9
|
module.exports = function (CONSTRUCTOR_NAME) {
|
|
10
|
-
var
|
|
10
|
+
var Constructor = getBuiltIn(CONSTRUCTOR_NAME);
|
|
11
11
|
var defineProperty = definePropertyModule.f;
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
12
|
+
|
|
13
|
+
if (DESCRIPTORS && Constructor && !Constructor[SPECIES]) {
|
|
14
|
+
defineProperty(Constructor, SPECIES, {
|
|
15
|
+
configurable: true,
|
|
16
|
+
get: function () { return this; }
|
|
17
|
+
});
|
|
18
|
+
}
|
|
16
19
|
};
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
var toInteger = require('../internals/to-integer');
|
|
2
|
+
var requireObjectCoercible = require('../internals/require-object-coercible');
|
|
3
|
+
|
|
4
|
+
// `String.prototype.{ codePointAt, at }` methods implementation
|
|
5
|
+
var createMethod = function (CONVERT_TO_STRING) {
|
|
6
|
+
return function ($this, pos) {
|
|
7
|
+
var S = String(requireObjectCoercible($this));
|
|
8
|
+
var position = toInteger(pos);
|
|
9
|
+
var size = S.length;
|
|
10
|
+
var first, second;
|
|
11
|
+
if (position < 0 || position >= size) return CONVERT_TO_STRING ? '' : undefined;
|
|
12
|
+
first = S.charCodeAt(position);
|
|
13
|
+
return first < 0xD800 || first > 0xDBFF || position + 1 === size
|
|
14
|
+
|| (second = S.charCodeAt(position + 1)) < 0xDC00 || second > 0xDFFF
|
|
15
|
+
? CONVERT_TO_STRING ? S.charAt(position) : first
|
|
16
|
+
: CONVERT_TO_STRING ? S.slice(position, position + 2) : (first - 0xD800 << 10) + (second - 0xDC00) + 0x10000;
|
|
17
|
+
};
|
|
18
|
+
};
|
|
19
|
+
|
|
20
|
+
module.exports = {
|
|
21
|
+
// `String.prototype.codePointAt` method
|
|
22
|
+
// https://tc39.github.io/ecma262/#sec-string.prototype.codepointat
|
|
23
|
+
codeAt: createMethod(false),
|
|
24
|
+
// `String.prototype.at` method
|
|
25
|
+
// https://github.com/mathiasbynens/String.prototype.at
|
|
26
|
+
charAt: createMethod(true)
|
|
27
|
+
};
|
package/internals/string-pad.js
CHANGED
|
@@ -3,15 +3,29 @@ var toLength = require('../internals/to-length');
|
|
|
3
3
|
var repeat = require('../internals/string-repeat');
|
|
4
4
|
var requireObjectCoercible = require('../internals/require-object-coercible');
|
|
5
5
|
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
6
|
+
var ceil = Math.ceil;
|
|
7
|
+
|
|
8
|
+
// `String.prototype.{ padStart, padEnd }` methods implementation
|
|
9
|
+
var createMethod = function (IS_END) {
|
|
10
|
+
return function ($this, maxLength, fillString) {
|
|
11
|
+
var S = String(requireObjectCoercible($this));
|
|
12
|
+
var stringLength = S.length;
|
|
13
|
+
var fillStr = fillString === undefined ? ' ' : String(fillString);
|
|
14
|
+
var intMaxLength = toLength(maxLength);
|
|
15
|
+
var fillLen, stringFiller;
|
|
16
|
+
if (intMaxLength <= stringLength || fillStr == '') return S;
|
|
17
|
+
fillLen = intMaxLength - stringLength;
|
|
18
|
+
stringFiller = repeat.call(fillStr, ceil(fillLen / fillStr.length));
|
|
19
|
+
if (stringFiller.length > fillLen) stringFiller = stringFiller.slice(0, fillLen);
|
|
20
|
+
return IS_END ? S + stringFiller : stringFiller + S;
|
|
21
|
+
};
|
|
22
|
+
};
|
|
23
|
+
|
|
24
|
+
module.exports = {
|
|
25
|
+
// `String.prototype.padStart` method
|
|
26
|
+
// https://tc39.github.io/ecma262/#sec-string.prototype.padstart
|
|
27
|
+
start: createMethod(false),
|
|
28
|
+
// `String.prototype.padEnd` method
|
|
29
|
+
// https://tc39.github.io/ecma262/#sec-string.prototype.padend
|
|
30
|
+
end: createMethod(true)
|
|
17
31
|
};
|
package/internals/string-trim.js
CHANGED
|
@@ -5,12 +5,24 @@ var whitespace = '[' + whitespaces + ']';
|
|
|
5
5
|
var ltrim = RegExp('^' + whitespace + whitespace + '*');
|
|
6
6
|
var rtrim = RegExp(whitespace + whitespace + '*$');
|
|
7
7
|
|
|
8
|
-
//
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
8
|
+
// `String.prototype.{ trim, trimStart, trimEnd, trimLeft, trimRight }` methods implementation
|
|
9
|
+
var createMethod = function (TYPE) {
|
|
10
|
+
return function ($this) {
|
|
11
|
+
var string = String(requireObjectCoercible($this));
|
|
12
|
+
if (TYPE & 1) string = string.replace(ltrim, '');
|
|
13
|
+
if (TYPE & 2) string = string.replace(rtrim, '');
|
|
14
|
+
return string;
|
|
15
|
+
};
|
|
16
|
+
};
|
|
17
|
+
|
|
18
|
+
module.exports = {
|
|
19
|
+
// `String.prototype.{ trimLeft, trimStart }` methods
|
|
20
|
+
// https://tc39.github.io/ecma262/#sec-string.prototype.trimstart
|
|
21
|
+
start: createMethod(1),
|
|
22
|
+
// `String.prototype.{ trimRight, trimEnd }` methods
|
|
23
|
+
// https://tc39.github.io/ecma262/#sec-string.prototype.trimend
|
|
24
|
+
end: createMethod(2),
|
|
25
|
+
// `String.prototype.trim` method
|
|
26
|
+
// https://tc39.github.io/ecma262/#sec-string.prototype.trim
|
|
27
|
+
trim: createMethod(3)
|
|
16
28
|
};
|
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
var isObject = require('../internals/is-object');
|
|
2
2
|
|
|
3
|
-
//
|
|
3
|
+
// `ToPrimitive` abstract operation
|
|
4
|
+
// https://tc39.github.io/ecma262/#sec-toprimitive
|
|
4
5
|
// instead of the ES6 spec version, we didn't implement @@toPrimitive case
|
|
5
6
|
// and the second argument - flag - preferred type is a string
|
|
6
|
-
module.exports = function (
|
|
7
|
-
if (!isObject(
|
|
7
|
+
module.exports = function (input, PREFERRED_STRING) {
|
|
8
|
+
if (!isObject(input)) return input;
|
|
8
9
|
var fn, val;
|
|
9
|
-
if (
|
|
10
|
-
if (typeof (fn =
|
|
11
|
-
if (!
|
|
10
|
+
if (PREFERRED_STRING && typeof (fn = input.toString) == 'function' && !isObject(val = fn.call(input))) return val;
|
|
11
|
+
if (typeof (fn = input.valueOf) == 'function' && !isObject(val = fn.call(input))) return val;
|
|
12
|
+
if (!PREFERRED_STRING && typeof (fn = input.toString) == 'function' && !isObject(val = fn.call(input))) return val;
|
|
12
13
|
throw TypeError("Can't convert object to primitive value");
|
|
13
14
|
};
|
|
@@ -19,7 +19,7 @@ var create = require('../internals/object-create');
|
|
|
19
19
|
var setPrototypeOf = require('../internals/object-set-prototype-of');
|
|
20
20
|
var getOwnPropertyNames = require('../internals/object-get-own-property-names').f;
|
|
21
21
|
var typedArrayFrom = require('../internals/typed-array-from');
|
|
22
|
-
var
|
|
22
|
+
var forEach = require('../internals/array-iteration').forEach;
|
|
23
23
|
var setSpecies = require('../internals/set-species');
|
|
24
24
|
var definePropertyModule = require('../internals/object-define-property');
|
|
25
25
|
var getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');
|
|
@@ -29,7 +29,7 @@ var getInternalState = InternalStateModule.get;
|
|
|
29
29
|
var setInternalState = InternalStateModule.set;
|
|
30
30
|
var nativeDefineProperty = definePropertyModule.f;
|
|
31
31
|
var nativeGetOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;
|
|
32
|
-
var
|
|
32
|
+
var round = Math.round;
|
|
33
33
|
var RangeError = global.RangeError;
|
|
34
34
|
var ArrayBuffer = ArrayBufferModule.ArrayBuffer;
|
|
35
35
|
var DataView = ArrayBufferModule.DataView;
|
|
@@ -122,7 +122,7 @@ if (DESCRIPTORS) {
|
|
|
122
122
|
|
|
123
123
|
var setter = function (that, index, value) {
|
|
124
124
|
var data = getInternalState(that);
|
|
125
|
-
if (CLAMPED) value = (value =
|
|
125
|
+
if (CLAMPED) value = (value = round(value)) < 0 ? 0 : value > 0xFF ? 0xFF : value & 0xFF;
|
|
126
126
|
data.view[SETTER](index * BYTES + data.byteOffset, value, true);
|
|
127
127
|
};
|
|
128
128
|
|
|
@@ -179,8 +179,8 @@ if (DESCRIPTORS) {
|
|
|
179
179
|
if (setPrototypeOf) setPrototypeOf(TypedArrayConstructor, TypedArray);
|
|
180
180
|
TypedArrayConstructorPrototype = TypedArrayConstructor.prototype = create(TypedArrayPrototype);
|
|
181
181
|
} else if (TYPED_ARRAYS_CONSTRUCTORS_REQUIRES_WRAPPERS) {
|
|
182
|
-
TypedArrayConstructor = wrapper(function (
|
|
183
|
-
anInstance(
|
|
182
|
+
TypedArrayConstructor = wrapper(function (dummy, data, typedArrayOffset, $length) {
|
|
183
|
+
anInstance(dummy, TypedArrayConstructor, CONSTRUCTOR_NAME);
|
|
184
184
|
if (!isObject(data)) return new NativeTypedArrayConstructor(toIndex(data));
|
|
185
185
|
if (isArrayBuffer(data)) return $length !== undefined
|
|
186
186
|
? new NativeTypedArrayConstructor(data, toOffset(typedArrayOffset, BYTES), $length)
|
package/internals/uid.js
CHANGED
|
@@ -2,5 +2,5 @@ var id = 0;
|
|
|
2
2
|
var postfix = Math.random();
|
|
3
3
|
|
|
4
4
|
module.exports = function (key) {
|
|
5
|
-
return 'Symbol('
|
|
5
|
+
return 'Symbol(' + String(key === undefined ? '' : key) + ')_' + (++id + postfix).toString(36);
|
|
6
6
|
};
|
package/internals/user-agent.js
CHANGED
|
@@ -1,15 +1,12 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
var $ = require('../internals/export');
|
|
3
|
-
var
|
|
3
|
+
var $every = require('../internals/array-iteration').every;
|
|
4
4
|
var sloppyArrayMethod = require('../internals/sloppy-array-method');
|
|
5
5
|
|
|
6
|
-
var internalEvery = arrayMethods(4);
|
|
7
|
-
var SLOPPY_METHOD = sloppyArrayMethod('every');
|
|
8
|
-
|
|
9
6
|
// `Array.prototype.every` method
|
|
10
7
|
// https://tc39.github.io/ecma262/#sec-array.prototype.every
|
|
11
|
-
$({ target: 'Array', proto: true, forced:
|
|
8
|
+
$({ target: 'Array', proto: true, forced: sloppyArrayMethod('every') }, {
|
|
12
9
|
every: function every(callbackfn /* , thisArg */) {
|
|
13
|
-
return
|
|
10
|
+
return $every(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);
|
|
14
11
|
}
|
|
15
12
|
});
|
package/modules/es.array.fill.js
CHANGED
|
@@ -4,7 +4,9 @@ var addToUnscopables = require('../internals/add-to-unscopables');
|
|
|
4
4
|
|
|
5
5
|
// `Array.prototype.fill` method
|
|
6
6
|
// https://tc39.github.io/ecma262/#sec-array.prototype.fill
|
|
7
|
-
$({ target: 'Array', proto: true }, {
|
|
7
|
+
$({ target: 'Array', proto: true }, {
|
|
8
|
+
fill: fill
|
|
9
|
+
});
|
|
8
10
|
|
|
9
11
|
// https://tc39.github.io/ecma262/#sec-array.prototype-@@unscopables
|
|
10
12
|
addToUnscopables('fill');
|
|
@@ -1,16 +1,13 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
var $ = require('../internals/export');
|
|
3
|
-
var
|
|
3
|
+
var $filter = require('../internals/array-iteration').filter;
|
|
4
4
|
var arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');
|
|
5
5
|
|
|
6
|
-
var internalFilter = arrayMethods(2);
|
|
7
|
-
var SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('filter');
|
|
8
|
-
|
|
9
6
|
// `Array.prototype.filter` method
|
|
10
7
|
// https://tc39.github.io/ecma262/#sec-array.prototype.filter
|
|
11
8
|
// with adding support of @@species
|
|
12
|
-
$({ target: 'Array', proto: true, forced: !
|
|
9
|
+
$({ target: 'Array', proto: true, forced: !arrayMethodHasSpeciesSupport('filter') }, {
|
|
13
10
|
filter: function filter(callbackfn /* , thisArg */) {
|
|
14
|
-
return
|
|
11
|
+
return $filter(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);
|
|
15
12
|
}
|
|
16
13
|
});
|
|
@@ -1,9 +1,8 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
var $ = require('../internals/export');
|
|
3
|
-
var
|
|
3
|
+
var $findIndex = require('../internals/array-iteration').findIndex;
|
|
4
4
|
var addToUnscopables = require('../internals/add-to-unscopables');
|
|
5
5
|
|
|
6
|
-
var internalFindIndex = arrayMethods(6);
|
|
7
6
|
var FIND_INDEX = 'findIndex';
|
|
8
7
|
var SKIPS_HOLES = true;
|
|
9
8
|
|
|
@@ -14,7 +13,7 @@ if (FIND_INDEX in []) Array(1)[FIND_INDEX](function () { SKIPS_HOLES = false; })
|
|
|
14
13
|
// https://tc39.github.io/ecma262/#sec-array.prototype.findindex
|
|
15
14
|
$({ target: 'Array', proto: true, forced: SKIPS_HOLES }, {
|
|
16
15
|
findIndex: function findIndex(callbackfn /* , that = undefined */) {
|
|
17
|
-
return
|
|
16
|
+
return $findIndex(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);
|
|
18
17
|
}
|
|
19
18
|
});
|
|
20
19
|
|
package/modules/es.array.find.js
CHANGED
|
@@ -1,9 +1,8 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
var $ = require('../internals/export');
|
|
3
|
-
var
|
|
3
|
+
var $find = require('../internals/array-iteration').find;
|
|
4
4
|
var addToUnscopables = require('../internals/add-to-unscopables');
|
|
5
5
|
|
|
6
|
-
var internalFind = arrayMethods(5);
|
|
7
6
|
var FIND = 'find';
|
|
8
7
|
var SKIPS_HOLES = true;
|
|
9
8
|
|
|
@@ -14,7 +13,7 @@ if (FIND in []) Array(1)[FIND](function () { SKIPS_HOLES = false; });
|
|
|
14
13
|
// https://tc39.github.io/ecma262/#sec-array.prototype.find
|
|
15
14
|
$({ target: 'Array', proto: true, forced: SKIPS_HOLES }, {
|
|
16
15
|
find: function find(callbackfn /* , that = undefined */) {
|
|
17
|
-
return
|
|
16
|
+
return $find(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);
|
|
18
17
|
}
|
|
19
18
|
});
|
|
20
19
|
|
|
@@ -15,7 +15,7 @@ $({ target: 'Array', proto: true }, {
|
|
|
15
15
|
var A;
|
|
16
16
|
aFunction(callbackfn);
|
|
17
17
|
A = arraySpeciesCreate(O, 0);
|
|
18
|
-
A.length = flattenIntoArray(A, O, O, sourceLen, 0, 1, callbackfn, arguments[1]);
|
|
18
|
+
A.length = flattenIntoArray(A, O, O, sourceLen, 0, 1, callbackfn, arguments.length > 1 ? arguments[1] : undefined);
|
|
19
19
|
return A;
|
|
20
20
|
}
|
|
21
21
|
});
|
package/modules/es.array.flat.js
CHANGED
|
@@ -10,7 +10,7 @@ var arraySpeciesCreate = require('../internals/array-species-create');
|
|
|
10
10
|
// https://github.com/tc39/proposal-flatMap
|
|
11
11
|
$({ target: 'Array', proto: true }, {
|
|
12
12
|
flat: function flat(/* depthArg = 1 */) {
|
|
13
|
-
var depthArg = arguments[0];
|
|
13
|
+
var depthArg = arguments.length ? arguments[0] : undefined;
|
|
14
14
|
var O = toObject(this);
|
|
15
15
|
var sourceLen = toLength(O.length);
|
|
16
16
|
var A = arraySpeciesCreate(O, 0);
|
|
@@ -1,15 +1,13 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
var $ = require('../internals/export');
|
|
3
|
-
var
|
|
3
|
+
var $includes = require('../internals/array-includes').includes;
|
|
4
4
|
var addToUnscopables = require('../internals/add-to-unscopables');
|
|
5
5
|
|
|
6
|
-
var internalIncludes = arrayIncludes(true);
|
|
7
|
-
|
|
8
6
|
// `Array.prototype.includes` method
|
|
9
7
|
// https://tc39.github.io/ecma262/#sec-array.prototype.includes
|
|
10
8
|
$({ target: 'Array', proto: true }, {
|
|
11
9
|
includes: function includes(el /* , fromIndex = 0 */) {
|
|
12
|
-
return
|
|
10
|
+
return $includes(this, el, arguments.length > 1 ? arguments[1] : undefined);
|
|
13
11
|
}
|
|
14
12
|
});
|
|
15
13
|
|