core-js-pure 3.4.8 → 3.6.2
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/es/index.js +2 -0
- package/es/regexp/index.js +2 -0
- package/es/regexp/sticky.js +5 -0
- package/es/regexp/test.js +6 -0
- package/es/string/index.js +1 -0
- package/es/string/match.js +1 -0
- package/es/string/replace.js +1 -0
- package/es/string/search.js +1 -0
- package/es/string/split.js +1 -0
- package/es/symbol/async-iterator.js +1 -1
- package/es/symbol/has-instance.js +1 -1
- package/es/symbol/is-concat-spreadable.js +1 -1
- package/es/symbol/iterator.js +1 -1
- package/es/symbol/match-all.js +1 -1
- package/es/symbol/match.js +1 -1
- package/es/symbol/replace.js +1 -1
- package/es/symbol/search.js +1 -1
- package/es/symbol/species.js +1 -1
- package/es/symbol/split.js +1 -1
- package/es/symbol/to-primitive.js +1 -1
- package/es/symbol/to-string-tag.js +1 -1
- package/es/symbol/unscopables.js +1 -1
- package/features/instance/match-all.js +3 -0
- package/features/object/index.js +3 -0
- package/features/object/iterate-entries.js +4 -0
- package/features/object/iterate-keys.js +4 -0
- package/features/object/iterate-values.js +4 -0
- package/features/regexp/sticky.js +3 -0
- package/features/regexp/test.js +3 -0
- package/features/symbol/async-dispose.js +1 -1
- package/features/symbol/dispose.js +1 -1
- package/features/symbol/observable.js +1 -1
- package/features/symbol/pattern-match.js +1 -1
- package/features/symbol/replace-all.js +1 -1
- package/internals/array-buffer-native.js +1 -0
- package/internals/array-for-each.js +6 -2
- package/internals/array-from.js +7 -8
- package/internals/array-iteration.js +1 -1
- package/internals/array-last-index-of.js +6 -3
- package/internals/array-method-has-species-support.js +1 -1
- package/internals/{sloppy-array-method.js → array-method-is-strict.js} +1 -1
- package/internals/array-method-uses-to-length.js +30 -0
- package/internals/{create-async-iterator-proxy.js → async-iterator-create-proxy.js} +0 -0
- package/internals/collection-from.js +1 -1
- package/internals/collection-strong.js +1 -1
- package/internals/define-well-known-symbol.js +1 -1
- package/internals/descriptors.js +1 -1
- package/internals/{is-ios.js → engine-is-ios.js} +1 -1
- package/internals/{user-agent.js → engine-user-agent.js} +0 -0
- package/internals/{v8-version.js → engine-v8-version.js} +1 -1
- package/internals/export.js +1 -1
- package/internals/flatten-into-array.js +1 -1
- package/internals/{bind-context.js → function-bind-context.js} +0 -0
- package/internals/iterate.js +1 -1
- package/internals/{create-iterator-proxy.js → iterator-create-proxy.js} +0 -0
- package/internals/microtask.js +1 -1
- package/internals/{parse-float.js → number-parse-float.js} +4 -4
- package/internals/{parse-int.js → number-parse-int.js} +4 -4
- package/internals/object-create.js +48 -19
- package/internals/object-iterator.js +37 -0
- package/internals/{forced-object-prototype-accessors-methods.js → object-prototype-accessors-forced.js} +0 -0
- package/internals/regexp-sticky-helpers.js +1 -0
- package/internals/shared.js +2 -2
- package/internals/{forced-string-html-method.js → string-html-forced.js} +0 -0
- package/internals/{webkit-string-pad-bug.js → string-pad-webkit-bug.js} +1 -1
- package/internals/{punycode-to-ascii.js → string-punycode-to-ascii.js} +0 -0
- package/internals/{forced-string-trim-method.js → string-trim-forced.js} +0 -0
- package/internals/task.js +2 -2
- package/internals/{typed-arrays-constructors-requires-wrappers.js → typed-array-constructors-require-wrappers.js} +0 -0
- package/internals/use-symbol-as-uid.js +1 -1
- package/internals/{wrapped-well-known-symbol.js → well-known-symbol-wrapped.js} +0 -0
- package/internals/well-known-symbol.js +1 -1
- package/modules/es.array.concat.js +1 -1
- package/modules/es.array.every.js +6 -2
- package/modules/es.array.filter.js +2 -4
- package/modules/es.array.find-index.js +4 -1
- package/modules/es.array.find.js +4 -1
- package/modules/es.array.includes.js +4 -1
- package/modules/es.array.index-of.js +5 -3
- package/modules/es.array.join.js +3 -3
- package/modules/es.array.map.js +2 -4
- package/modules/es.array.reduce-right.js +6 -2
- package/modules/es.array.reduce.js +6 -2
- package/modules/es.array.slice.js +6 -2
- package/modules/es.array.some.js +6 -2
- package/modules/es.array.sort.js +3 -3
- package/modules/es.array.splice.js +5 -1
- package/modules/es.number.parse-float.js +1 -1
- package/modules/es.number.parse-int.js +1 -1
- package/modules/es.object.define-getter.js +1 -1
- package/modules/es.object.define-setter.js +1 -1
- package/modules/es.object.lookup-getter.js +1 -1
- package/modules/es.object.lookup-setter.js +1 -1
- package/modules/es.parse-float.js +1 -1
- package/modules/es.parse-int.js +1 -1
- package/modules/es.promise.js +1 -1
- package/modules/es.regexp.sticky.js +1 -0
- package/modules/es.regexp.test.js +1 -0
- package/modules/es.string.anchor.js +1 -1
- package/modules/es.string.big.js +1 -1
- package/modules/es.string.blink.js +1 -1
- package/modules/es.string.bold.js +1 -1
- package/modules/es.string.fixed.js +1 -1
- package/modules/es.string.fontcolor.js +1 -1
- package/modules/es.string.fontsize.js +1 -1
- package/modules/es.string.italics.js +1 -1
- package/modules/es.string.link.js +1 -1
- package/modules/es.string.pad-end.js +1 -1
- package/modules/es.string.pad-start.js +1 -1
- package/modules/es.string.small.js +1 -1
- package/modules/es.string.strike.js +1 -1
- package/modules/es.string.sub.js +1 -1
- package/modules/es.string.sup.js +1 -1
- package/modules/es.string.trim-end.js +1 -1
- package/modules/es.string.trim-start.js +1 -1
- package/modules/es.string.trim.js +1 -1
- package/modules/es.symbol.js +10 -8
- 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.filter.js +1 -1
- package/modules/esnext.async-iterator.flat-map.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.take.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.filter.js +1 -1
- package/modules/esnext.iterator.flat-map.js +1 -1
- package/modules/esnext.iterator.from.js +1 -1
- package/modules/esnext.iterator.map.js +1 -1
- package/modules/esnext.iterator.take.js +1 -1
- package/modules/esnext.map.every.js +1 -1
- package/modules/esnext.map.filter.js +1 -1
- package/modules/esnext.map.find-key.js +1 -1
- package/modules/esnext.map.find.js +1 -1
- package/modules/esnext.map.map-keys.js +1 -1
- package/modules/esnext.map.map-values.js +1 -1
- package/modules/esnext.map.some.js +1 -1
- package/modules/esnext.number.from-string.js +1 -1
- package/modules/esnext.object.iterate-entries.js +11 -0
- package/modules/esnext.object.iterate-keys.js +11 -0
- package/modules/esnext.object.iterate-values.js +11 -0
- package/modules/esnext.set.every.js +1 -1
- package/modules/esnext.set.filter.js +1 -1
- package/modules/esnext.set.find.js +1 -1
- package/modules/esnext.set.map.js +1 -1
- package/modules/esnext.set.some.js +1 -1
- package/modules/web.dom-collections.iterator.js +2 -1
- package/modules/web.timers.js +1 -1
- package/modules/web.url-search-params.js +1 -1
- package/modules/web.url.js +1 -1
- package/package.json +1 -1
- package/proposals/object-iteration.js +3 -0
- package/stable/regexp/sticky.js +3 -0
- package/stable/regexp/test.js +3 -0
- package/stage/1.js +1 -0
|
@@ -5,45 +5,74 @@ var hiddenKeys = require('../internals/hidden-keys');
|
|
|
5
5
|
var html = require('../internals/html');
|
|
6
6
|
var documentCreateElement = require('../internals/document-create-element');
|
|
7
7
|
var sharedKey = require('../internals/shared-key');
|
|
8
|
-
var IE_PROTO = sharedKey('IE_PROTO');
|
|
9
8
|
|
|
9
|
+
var GT = '>';
|
|
10
|
+
var LT = '<';
|
|
10
11
|
var PROTOTYPE = 'prototype';
|
|
11
|
-
var
|
|
12
|
+
var SCRIPT = 'script';
|
|
13
|
+
var IE_PROTO = sharedKey('IE_PROTO');
|
|
14
|
+
|
|
15
|
+
var EmptyConstructor = function () { /* empty */ };
|
|
16
|
+
|
|
17
|
+
var scriptTag = function (content) {
|
|
18
|
+
return LT + SCRIPT + GT + content + LT + '/' + SCRIPT + GT;
|
|
19
|
+
};
|
|
20
|
+
|
|
21
|
+
// Create object with fake `null` prototype: use ActiveX Object with cleared prototype
|
|
22
|
+
var NullProtoObjectViaActiveX = function (activeXDocument) {
|
|
23
|
+
activeXDocument.write(scriptTag(''));
|
|
24
|
+
activeXDocument.close();
|
|
25
|
+
var temp = activeXDocument.parentWindow.Object;
|
|
26
|
+
activeXDocument = null; // avoid memory leak
|
|
27
|
+
return temp;
|
|
28
|
+
};
|
|
12
29
|
|
|
13
30
|
// Create object with fake `null` prototype: use iframe Object with cleared prototype
|
|
14
|
-
var
|
|
31
|
+
var NullProtoObjectViaIFrame = function () {
|
|
15
32
|
// Thrash, waste and sodomy: IE GC bug
|
|
16
33
|
var iframe = documentCreateElement('iframe');
|
|
17
|
-
var
|
|
18
|
-
var lt = '<';
|
|
19
|
-
var script = 'script';
|
|
20
|
-
var gt = '>';
|
|
21
|
-
var js = 'java' + script + ':';
|
|
34
|
+
var JS = 'java' + SCRIPT + ':';
|
|
22
35
|
var iframeDocument;
|
|
23
36
|
iframe.style.display = 'none';
|
|
24
37
|
html.appendChild(iframe);
|
|
25
|
-
|
|
38
|
+
// https://github.com/zloirock/core-js/issues/475
|
|
39
|
+
iframe.src = String(JS);
|
|
26
40
|
iframeDocument = iframe.contentWindow.document;
|
|
27
41
|
iframeDocument.open();
|
|
28
|
-
iframeDocument.write(
|
|
42
|
+
iframeDocument.write(scriptTag('document.F=Object'));
|
|
29
43
|
iframeDocument.close();
|
|
30
|
-
|
|
31
|
-
while (length--) delete createDict[PROTOTYPE][enumBugKeys[length]];
|
|
32
|
-
return createDict();
|
|
44
|
+
return iframeDocument.F;
|
|
33
45
|
};
|
|
34
46
|
|
|
47
|
+
// Check for document.domain and active x support
|
|
48
|
+
// No need to use active x approach when document.domain is not set
|
|
49
|
+
// see https://github.com/es-shims/es5-shim/issues/150
|
|
50
|
+
// variation of https://github.com/kitcambridge/es5-shim/commit/4f738ac066346
|
|
51
|
+
// avoid IE GC bug
|
|
52
|
+
var activeXDocument;
|
|
53
|
+
var NullProtoObject = function () {
|
|
54
|
+
try {
|
|
55
|
+
/* global ActiveXObject */
|
|
56
|
+
activeXDocument = document.domain && new ActiveXObject('htmlfile');
|
|
57
|
+
} catch (error) { /* ignore */ }
|
|
58
|
+
NullProtoObject = activeXDocument ? NullProtoObjectViaActiveX(activeXDocument) : NullProtoObjectViaIFrame();
|
|
59
|
+
var length = enumBugKeys.length;
|
|
60
|
+
while (length--) delete NullProtoObject[PROTOTYPE][enumBugKeys[length]];
|
|
61
|
+
return NullProtoObject();
|
|
62
|
+
};
|
|
63
|
+
|
|
64
|
+
hiddenKeys[IE_PROTO] = true;
|
|
65
|
+
|
|
35
66
|
// `Object.create` method
|
|
36
67
|
// https://tc39.github.io/ecma262/#sec-object.create
|
|
37
68
|
module.exports = Object.create || function create(O, Properties) {
|
|
38
69
|
var result;
|
|
39
70
|
if (O !== null) {
|
|
40
|
-
|
|
41
|
-
result = new
|
|
42
|
-
|
|
71
|
+
EmptyConstructor[PROTOTYPE] = anObject(O);
|
|
72
|
+
result = new EmptyConstructor();
|
|
73
|
+
EmptyConstructor[PROTOTYPE] = null;
|
|
43
74
|
// add "__proto__" for Object.getPrototypeOf polyfill
|
|
44
75
|
result[IE_PROTO] = O;
|
|
45
|
-
} else result =
|
|
76
|
+
} else result = NullProtoObject();
|
|
46
77
|
return Properties === undefined ? result : defineProperties(result, Properties);
|
|
47
78
|
};
|
|
48
|
-
|
|
49
|
-
hiddenKeys[IE_PROTO] = true;
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
var InternalStateModule = require('../internals/internal-state');
|
|
3
|
+
var createIteratorConstructor = require('../internals/create-iterator-constructor');
|
|
4
|
+
var has = require('../internals/has');
|
|
5
|
+
var objectKeys = require('../internals/object-keys');
|
|
6
|
+
var toObject = require('../internals/to-object');
|
|
7
|
+
|
|
8
|
+
var OBJECT_ITERATOR = 'Object Iterator';
|
|
9
|
+
var setInternalState = InternalStateModule.set;
|
|
10
|
+
var getInternalState = InternalStateModule.getterFor(OBJECT_ITERATOR);
|
|
11
|
+
|
|
12
|
+
module.exports = createIteratorConstructor(function ObjectIterator(source, mode) {
|
|
13
|
+
var object = toObject(source);
|
|
14
|
+
setInternalState(this, {
|
|
15
|
+
type: OBJECT_ITERATOR,
|
|
16
|
+
mode: mode,
|
|
17
|
+
object: object,
|
|
18
|
+
keys: objectKeys(object),
|
|
19
|
+
index: 0
|
|
20
|
+
});
|
|
21
|
+
}, 'Object', function next() {
|
|
22
|
+
var state = getInternalState(this);
|
|
23
|
+
var keys = state.keys;
|
|
24
|
+
while (true) {
|
|
25
|
+
if (keys === null || state.index >= keys.length) {
|
|
26
|
+
state.object = state.keys = null;
|
|
27
|
+
return { value: undefined, done: true };
|
|
28
|
+
}
|
|
29
|
+
var key = keys[state.index++];
|
|
30
|
+
var object = state.object;
|
|
31
|
+
if (!has(object, key)) continue;
|
|
32
|
+
switch (state.mode) {
|
|
33
|
+
case 'keys': return { value: key, done: false };
|
|
34
|
+
case 'values': return { value: object[key], done: false };
|
|
35
|
+
} /* entries */ return { value: [key, object[key]], done: false };
|
|
36
|
+
}
|
|
37
|
+
});
|
|
File without changes
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
// empty
|
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.6.2',
|
|
8
8
|
mode: IS_PURE ? 'pure' : 'global',
|
|
9
|
-
copyright: '©
|
|
9
|
+
copyright: '© 2020 Denis Pushkarev (zloirock.ru)'
|
|
10
10
|
});
|
|
File without changes
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// https://github.com/zloirock/core-js/issues/280
|
|
2
|
-
var userAgent = require('../internals/user-agent');
|
|
2
|
+
var userAgent = require('../internals/engine-user-agent');
|
|
3
3
|
|
|
4
4
|
// eslint-disable-next-line unicorn/no-unsafe-regex
|
|
5
5
|
module.exports = /Version\/10\.\d+(\.\d+)?( Mobile\/\w+)? Safari\//.test(userAgent);
|
|
File without changes
|
|
File without changes
|
package/internals/task.js
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
var global = require('../internals/global');
|
|
2
2
|
var fails = require('../internals/fails');
|
|
3
3
|
var classof = require('../internals/classof-raw');
|
|
4
|
-
var bind = require('../internals/bind-context');
|
|
4
|
+
var bind = require('../internals/function-bind-context');
|
|
5
5
|
var html = require('../internals/html');
|
|
6
6
|
var createElement = require('../internals/document-create-element');
|
|
7
|
-
var IS_IOS = require('../internals/is-ios');
|
|
7
|
+
var IS_IOS = require('../internals/engine-is-ios');
|
|
8
8
|
|
|
9
9
|
var location = global.location;
|
|
10
10
|
var set = global.setImmediate;
|
|
File without changes
|
|
File without changes
|
|
@@ -7,7 +7,7 @@ var USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');
|
|
|
7
7
|
|
|
8
8
|
var WellKnownSymbolsStore = shared('wks');
|
|
9
9
|
var Symbol = global.Symbol;
|
|
10
|
-
var createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol : uid;
|
|
10
|
+
var createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol : Symbol && Symbol.withoutSetter || uid;
|
|
11
11
|
|
|
12
12
|
module.exports = function (name) {
|
|
13
13
|
if (!has(WellKnownSymbolsStore, name)) {
|
|
@@ -9,7 +9,7 @@ var createProperty = require('../internals/create-property');
|
|
|
9
9
|
var arraySpeciesCreate = require('../internals/array-species-create');
|
|
10
10
|
var arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');
|
|
11
11
|
var wellKnownSymbol = require('../internals/well-known-symbol');
|
|
12
|
-
var V8_VERSION = require('../internals/v8-version');
|
|
12
|
+
var V8_VERSION = require('../internals/engine-v8-version');
|
|
13
13
|
|
|
14
14
|
var IS_CONCAT_SPREADABLE = wellKnownSymbol('isConcatSpreadable');
|
|
15
15
|
var MAX_SAFE_INTEGER = 0x1FFFFFFFFFFFFF;
|
|
@@ -1,11 +1,15 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
var $ = require('../internals/export');
|
|
3
3
|
var $every = require('../internals/array-iteration').every;
|
|
4
|
-
var
|
|
4
|
+
var arrayMethodIsStrict = require('../internals/array-method-is-strict');
|
|
5
|
+
var arrayMethodUsesToLength = require('../internals/array-method-uses-to-length');
|
|
6
|
+
|
|
7
|
+
var STRICT_METHOD = arrayMethodIsStrict('every');
|
|
8
|
+
var USES_TO_LENGTH = arrayMethodUsesToLength('every');
|
|
5
9
|
|
|
6
10
|
// `Array.prototype.every` method
|
|
7
11
|
// https://tc39.github.io/ecma262/#sec-array.prototype.every
|
|
8
|
-
$({ target: 'Array', proto: true, forced:
|
|
12
|
+
$({ target: 'Array', proto: true, forced: !STRICT_METHOD || !USES_TO_LENGTH }, {
|
|
9
13
|
every: function every(callbackfn /* , thisArg */) {
|
|
10
14
|
return $every(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);
|
|
11
15
|
}
|
|
@@ -1,14 +1,12 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
var $ = require('../internals/export');
|
|
3
3
|
var $filter = require('../internals/array-iteration').filter;
|
|
4
|
-
var fails = require('../internals/fails');
|
|
5
4
|
var arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');
|
|
5
|
+
var arrayMethodUsesToLength = require('../internals/array-method-uses-to-length');
|
|
6
6
|
|
|
7
7
|
var HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('filter');
|
|
8
8
|
// Edge 14- issue
|
|
9
|
-
var USES_TO_LENGTH =
|
|
10
|
-
[].filter.call({ length: -1, 0: 1 }, function (it) { throw it; });
|
|
11
|
-
});
|
|
9
|
+
var USES_TO_LENGTH = arrayMethodUsesToLength('filter');
|
|
12
10
|
|
|
13
11
|
// `Array.prototype.filter` method
|
|
14
12
|
// https://tc39.github.io/ecma262/#sec-array.prototype.filter
|
|
@@ -2,16 +2,19 @@
|
|
|
2
2
|
var $ = require('../internals/export');
|
|
3
3
|
var $findIndex = require('../internals/array-iteration').findIndex;
|
|
4
4
|
var addToUnscopables = require('../internals/add-to-unscopables');
|
|
5
|
+
var arrayMethodUsesToLength = require('../internals/array-method-uses-to-length');
|
|
5
6
|
|
|
6
7
|
var FIND_INDEX = 'findIndex';
|
|
7
8
|
var SKIPS_HOLES = true;
|
|
8
9
|
|
|
10
|
+
var USES_TO_LENGTH = arrayMethodUsesToLength(FIND_INDEX);
|
|
11
|
+
|
|
9
12
|
// Shouldn't skip holes
|
|
10
13
|
if (FIND_INDEX in []) Array(1)[FIND_INDEX](function () { SKIPS_HOLES = false; });
|
|
11
14
|
|
|
12
15
|
// `Array.prototype.findIndex` method
|
|
13
16
|
// https://tc39.github.io/ecma262/#sec-array.prototype.findindex
|
|
14
|
-
$({ target: 'Array', proto: true, forced: SKIPS_HOLES }, {
|
|
17
|
+
$({ target: 'Array', proto: true, forced: SKIPS_HOLES || !USES_TO_LENGTH }, {
|
|
15
18
|
findIndex: function findIndex(callbackfn /* , that = undefined */) {
|
|
16
19
|
return $findIndex(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);
|
|
17
20
|
}
|
package/modules/es.array.find.js
CHANGED
|
@@ -2,16 +2,19 @@
|
|
|
2
2
|
var $ = require('../internals/export');
|
|
3
3
|
var $find = require('../internals/array-iteration').find;
|
|
4
4
|
var addToUnscopables = require('../internals/add-to-unscopables');
|
|
5
|
+
var arrayMethodUsesToLength = require('../internals/array-method-uses-to-length');
|
|
5
6
|
|
|
6
7
|
var FIND = 'find';
|
|
7
8
|
var SKIPS_HOLES = true;
|
|
8
9
|
|
|
10
|
+
var USES_TO_LENGTH = arrayMethodUsesToLength(FIND);
|
|
11
|
+
|
|
9
12
|
// Shouldn't skip holes
|
|
10
13
|
if (FIND in []) Array(1)[FIND](function () { SKIPS_HOLES = false; });
|
|
11
14
|
|
|
12
15
|
// `Array.prototype.find` method
|
|
13
16
|
// https://tc39.github.io/ecma262/#sec-array.prototype.find
|
|
14
|
-
$({ target: 'Array', proto: true, forced: SKIPS_HOLES }, {
|
|
17
|
+
$({ target: 'Array', proto: true, forced: SKIPS_HOLES || !USES_TO_LENGTH }, {
|
|
15
18
|
find: function find(callbackfn /* , that = undefined */) {
|
|
16
19
|
return $find(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);
|
|
17
20
|
}
|
|
@@ -2,10 +2,13 @@
|
|
|
2
2
|
var $ = require('../internals/export');
|
|
3
3
|
var $includes = require('../internals/array-includes').includes;
|
|
4
4
|
var addToUnscopables = require('../internals/add-to-unscopables');
|
|
5
|
+
var arrayMethodUsesToLength = require('../internals/array-method-uses-to-length');
|
|
6
|
+
|
|
7
|
+
var USES_TO_LENGTH = arrayMethodUsesToLength('indexOf', { ACCESSORS: true, 1: 0 });
|
|
5
8
|
|
|
6
9
|
// `Array.prototype.includes` method
|
|
7
10
|
// https://tc39.github.io/ecma262/#sec-array.prototype.includes
|
|
8
|
-
$({ target: 'Array', proto: true }, {
|
|
11
|
+
$({ target: 'Array', proto: true, forced: !USES_TO_LENGTH }, {
|
|
9
12
|
includes: function includes(el /* , fromIndex = 0 */) {
|
|
10
13
|
return $includes(this, el, arguments.length > 1 ? arguments[1] : undefined);
|
|
11
14
|
}
|
|
@@ -1,16 +1,18 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
var $ = require('../internals/export');
|
|
3
3
|
var $indexOf = require('../internals/array-includes').indexOf;
|
|
4
|
-
var
|
|
4
|
+
var arrayMethodIsStrict = require('../internals/array-method-is-strict');
|
|
5
|
+
var arrayMethodUsesToLength = require('../internals/array-method-uses-to-length');
|
|
5
6
|
|
|
6
7
|
var nativeIndexOf = [].indexOf;
|
|
7
8
|
|
|
8
9
|
var NEGATIVE_ZERO = !!nativeIndexOf && 1 / [1].indexOf(1, -0) < 0;
|
|
9
|
-
var
|
|
10
|
+
var STRICT_METHOD = arrayMethodIsStrict('indexOf');
|
|
11
|
+
var USES_TO_LENGTH = arrayMethodUsesToLength('indexOf', { ACCESSORS: true, 1: 0 });
|
|
10
12
|
|
|
11
13
|
// `Array.prototype.indexOf` method
|
|
12
14
|
// https://tc39.github.io/ecma262/#sec-array.prototype.indexof
|
|
13
|
-
$({ target: 'Array', proto: true, forced: NEGATIVE_ZERO ||
|
|
15
|
+
$({ target: 'Array', proto: true, forced: NEGATIVE_ZERO || !STRICT_METHOD || !USES_TO_LENGTH }, {
|
|
14
16
|
indexOf: function indexOf(searchElement /* , fromIndex = 0 */) {
|
|
15
17
|
return NEGATIVE_ZERO
|
|
16
18
|
// convert -0 to +0
|
package/modules/es.array.join.js
CHANGED
|
@@ -2,16 +2,16 @@
|
|
|
2
2
|
var $ = require('../internals/export');
|
|
3
3
|
var IndexedObject = require('../internals/indexed-object');
|
|
4
4
|
var toIndexedObject = require('../internals/to-indexed-object');
|
|
5
|
-
var
|
|
5
|
+
var arrayMethodIsStrict = require('../internals/array-method-is-strict');
|
|
6
6
|
|
|
7
7
|
var nativeJoin = [].join;
|
|
8
8
|
|
|
9
9
|
var ES3_STRINGS = IndexedObject != Object;
|
|
10
|
-
var
|
|
10
|
+
var STRICT_METHOD = arrayMethodIsStrict('join', ',');
|
|
11
11
|
|
|
12
12
|
// `Array.prototype.join` method
|
|
13
13
|
// https://tc39.github.io/ecma262/#sec-array.prototype.join
|
|
14
|
-
$({ target: 'Array', proto: true, forced: ES3_STRINGS ||
|
|
14
|
+
$({ target: 'Array', proto: true, forced: ES3_STRINGS || !STRICT_METHOD }, {
|
|
15
15
|
join: function join(separator) {
|
|
16
16
|
return nativeJoin.call(toIndexedObject(this), separator === undefined ? ',' : separator);
|
|
17
17
|
}
|
package/modules/es.array.map.js
CHANGED
|
@@ -1,14 +1,12 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
var $ = require('../internals/export');
|
|
3
3
|
var $map = require('../internals/array-iteration').map;
|
|
4
|
-
var fails = require('../internals/fails');
|
|
5
4
|
var arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');
|
|
5
|
+
var arrayMethodUsesToLength = require('../internals/array-method-uses-to-length');
|
|
6
6
|
|
|
7
7
|
var HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('map');
|
|
8
8
|
// FF49- issue
|
|
9
|
-
var USES_TO_LENGTH =
|
|
10
|
-
[].map.call({ length: -1, 0: 1 }, function (it) { throw it; });
|
|
11
|
-
});
|
|
9
|
+
var USES_TO_LENGTH = arrayMethodUsesToLength('map');
|
|
12
10
|
|
|
13
11
|
// `Array.prototype.map` method
|
|
14
12
|
// https://tc39.github.io/ecma262/#sec-array.prototype.map
|
|
@@ -1,11 +1,15 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
var $ = require('../internals/export');
|
|
3
3
|
var $reduceRight = require('../internals/array-reduce').right;
|
|
4
|
-
var
|
|
4
|
+
var arrayMethodIsStrict = require('../internals/array-method-is-strict');
|
|
5
|
+
var arrayMethodUsesToLength = require('../internals/array-method-uses-to-length');
|
|
6
|
+
|
|
7
|
+
var STRICT_METHOD = arrayMethodIsStrict('reduceRight');
|
|
8
|
+
var USES_TO_LENGTH = arrayMethodUsesToLength('reduceRight', { 1: 0 });
|
|
5
9
|
|
|
6
10
|
// `Array.prototype.reduceRight` method
|
|
7
11
|
// https://tc39.github.io/ecma262/#sec-array.prototype.reduceright
|
|
8
|
-
$({ target: 'Array', proto: true, forced:
|
|
12
|
+
$({ target: 'Array', proto: true, forced: !STRICT_METHOD || !USES_TO_LENGTH }, {
|
|
9
13
|
reduceRight: function reduceRight(callbackfn /* , initialValue */) {
|
|
10
14
|
return $reduceRight(this, callbackfn, arguments.length, arguments.length > 1 ? arguments[1] : undefined);
|
|
11
15
|
}
|
|
@@ -1,11 +1,15 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
var $ = require('../internals/export');
|
|
3
3
|
var $reduce = require('../internals/array-reduce').left;
|
|
4
|
-
var
|
|
4
|
+
var arrayMethodIsStrict = require('../internals/array-method-is-strict');
|
|
5
|
+
var arrayMethodUsesToLength = require('../internals/array-method-uses-to-length');
|
|
6
|
+
|
|
7
|
+
var STRICT_METHOD = arrayMethodIsStrict('reduce');
|
|
8
|
+
var USES_TO_LENGTH = arrayMethodUsesToLength('reduce', { 1: 0 });
|
|
5
9
|
|
|
6
10
|
// `Array.prototype.reduce` method
|
|
7
11
|
// https://tc39.github.io/ecma262/#sec-array.prototype.reduce
|
|
8
|
-
$({ target: 'Array', proto: true, forced:
|
|
12
|
+
$({ target: 'Array', proto: true, forced: !STRICT_METHOD || !USES_TO_LENGTH }, {
|
|
9
13
|
reduce: function reduce(callbackfn /* , initialValue */) {
|
|
10
14
|
return $reduce(this, callbackfn, arguments.length, arguments.length > 1 ? arguments[1] : undefined);
|
|
11
15
|
}
|
|
@@ -6,8 +6,12 @@ var toAbsoluteIndex = require('../internals/to-absolute-index');
|
|
|
6
6
|
var toLength = require('../internals/to-length');
|
|
7
7
|
var toIndexedObject = require('../internals/to-indexed-object');
|
|
8
8
|
var createProperty = require('../internals/create-property');
|
|
9
|
-
var arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');
|
|
10
9
|
var wellKnownSymbol = require('../internals/well-known-symbol');
|
|
10
|
+
var arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');
|
|
11
|
+
var arrayMethodUsesToLength = require('../internals/array-method-uses-to-length');
|
|
12
|
+
|
|
13
|
+
var HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('slice');
|
|
14
|
+
var USES_TO_LENGTH = arrayMethodUsesToLength('slice', { ACCESSORS: true, 0: 0, 1: 2 });
|
|
11
15
|
|
|
12
16
|
var SPECIES = wellKnownSymbol('species');
|
|
13
17
|
var nativeSlice = [].slice;
|
|
@@ -16,7 +20,7 @@ var max = Math.max;
|
|
|
16
20
|
// `Array.prototype.slice` method
|
|
17
21
|
// https://tc39.github.io/ecma262/#sec-array.prototype.slice
|
|
18
22
|
// fallback for not array-like ES3 strings and DOM objects
|
|
19
|
-
$({ target: 'Array', proto: true, forced: !
|
|
23
|
+
$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT || !USES_TO_LENGTH }, {
|
|
20
24
|
slice: function slice(start, end) {
|
|
21
25
|
var O = toIndexedObject(this);
|
|
22
26
|
var length = toLength(O.length);
|
package/modules/es.array.some.js
CHANGED
|
@@ -1,11 +1,15 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
var $ = require('../internals/export');
|
|
3
3
|
var $some = require('../internals/array-iteration').some;
|
|
4
|
-
var
|
|
4
|
+
var arrayMethodIsStrict = require('../internals/array-method-is-strict');
|
|
5
|
+
var arrayMethodUsesToLength = require('../internals/array-method-uses-to-length');
|
|
6
|
+
|
|
7
|
+
var STRICT_METHOD = arrayMethodIsStrict('some');
|
|
8
|
+
var USES_TO_LENGTH = arrayMethodUsesToLength('some');
|
|
5
9
|
|
|
6
10
|
// `Array.prototype.some` method
|
|
7
11
|
// https://tc39.github.io/ecma262/#sec-array.prototype.some
|
|
8
|
-
$({ target: 'Array', proto: true, forced:
|
|
12
|
+
$({ target: 'Array', proto: true, forced: !STRICT_METHOD || !USES_TO_LENGTH }, {
|
|
9
13
|
some: function some(callbackfn /* , thisArg */) {
|
|
10
14
|
return $some(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);
|
|
11
15
|
}
|
package/modules/es.array.sort.js
CHANGED
|
@@ -3,7 +3,7 @@ var $ = require('../internals/export');
|
|
|
3
3
|
var aFunction = require('../internals/a-function');
|
|
4
4
|
var toObject = require('../internals/to-object');
|
|
5
5
|
var fails = require('../internals/fails');
|
|
6
|
-
var
|
|
6
|
+
var arrayMethodIsStrict = require('../internals/array-method-is-strict');
|
|
7
7
|
|
|
8
8
|
var test = [];
|
|
9
9
|
var nativeSort = test.sort;
|
|
@@ -17,9 +17,9 @@ var FAILS_ON_NULL = fails(function () {
|
|
|
17
17
|
test.sort(null);
|
|
18
18
|
});
|
|
19
19
|
// Old WebKit
|
|
20
|
-
var
|
|
20
|
+
var STRICT_METHOD = arrayMethodIsStrict('sort');
|
|
21
21
|
|
|
22
|
-
var FORCED = FAILS_ON_UNDEFINED || !FAILS_ON_NULL ||
|
|
22
|
+
var FORCED = FAILS_ON_UNDEFINED || !FAILS_ON_NULL || !STRICT_METHOD;
|
|
23
23
|
|
|
24
24
|
// `Array.prototype.sort` method
|
|
25
25
|
// https://tc39.github.io/ecma262/#sec-array.prototype.sort
|
|
@@ -7,6 +7,10 @@ var toObject = require('../internals/to-object');
|
|
|
7
7
|
var arraySpeciesCreate = require('../internals/array-species-create');
|
|
8
8
|
var createProperty = require('../internals/create-property');
|
|
9
9
|
var arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');
|
|
10
|
+
var arrayMethodUsesToLength = require('../internals/array-method-uses-to-length');
|
|
11
|
+
|
|
12
|
+
var HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('splice');
|
|
13
|
+
var USES_TO_LENGTH = arrayMethodUsesToLength('splice', { ACCESSORS: true, 0: 0, 1: 2 });
|
|
10
14
|
|
|
11
15
|
var max = Math.max;
|
|
12
16
|
var min = Math.min;
|
|
@@ -16,7 +20,7 @@ var MAXIMUM_ALLOWED_LENGTH_EXCEEDED = 'Maximum allowed length exceeded';
|
|
|
16
20
|
// `Array.prototype.splice` method
|
|
17
21
|
// https://tc39.github.io/ecma262/#sec-array.prototype.splice
|
|
18
22
|
// with adding support of @@species
|
|
19
|
-
$({ target: 'Array', proto: true, forced: !
|
|
23
|
+
$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT || !USES_TO_LENGTH }, {
|
|
20
24
|
splice: function splice(start, deleteCount /* , ...items */) {
|
|
21
25
|
var O = toObject(this);
|
|
22
26
|
var len = toLength(O.length);
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
var $ = require('../internals/export');
|
|
3
3
|
var DESCRIPTORS = require('../internals/descriptors');
|
|
4
|
-
var FORCED = require('../internals/
|
|
4
|
+
var FORCED = require('../internals/object-prototype-accessors-forced');
|
|
5
5
|
var toObject = require('../internals/to-object');
|
|
6
6
|
var aFunction = require('../internals/a-function');
|
|
7
7
|
var definePropertyModule = require('../internals/object-define-property');
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
var $ = require('../internals/export');
|
|
3
3
|
var DESCRIPTORS = require('../internals/descriptors');
|
|
4
|
-
var FORCED = require('../internals/
|
|
4
|
+
var FORCED = require('../internals/object-prototype-accessors-forced');
|
|
5
5
|
var toObject = require('../internals/to-object');
|
|
6
6
|
var aFunction = require('../internals/a-function');
|
|
7
7
|
var definePropertyModule = require('../internals/object-define-property');
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
var $ = require('../internals/export');
|
|
3
3
|
var DESCRIPTORS = require('../internals/descriptors');
|
|
4
|
-
var FORCED = require('../internals/
|
|
4
|
+
var FORCED = require('../internals/object-prototype-accessors-forced');
|
|
5
5
|
var toObject = require('../internals/to-object');
|
|
6
6
|
var toPrimitive = require('../internals/to-primitive');
|
|
7
7
|
var getPrototypeOf = require('../internals/object-get-prototype-of');
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
var $ = require('../internals/export');
|
|
3
3
|
var DESCRIPTORS = require('../internals/descriptors');
|
|
4
|
-
var FORCED = require('../internals/
|
|
4
|
+
var FORCED = require('../internals/object-prototype-accessors-forced');
|
|
5
5
|
var toObject = require('../internals/to-object');
|
|
6
6
|
var toPrimitive = require('../internals/to-primitive');
|
|
7
7
|
var getPrototypeOf = require('../internals/object-get-prototype-of');
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
var $ = require('../internals/export');
|
|
2
|
-
var parseFloatImplementation = require('../internals/parse-float');
|
|
2
|
+
var parseFloatImplementation = require('../internals/number-parse-float');
|
|
3
3
|
|
|
4
4
|
// `parseFloat` method
|
|
5
5
|
// https://tc39.github.io/ecma262/#sec-parsefloat-string
|
package/modules/es.parse-int.js
CHANGED
package/modules/es.promise.js
CHANGED
|
@@ -25,7 +25,7 @@ var perform = require('../internals/perform');
|
|
|
25
25
|
var InternalStateModule = require('../internals/internal-state');
|
|
26
26
|
var isForced = require('../internals/is-forced');
|
|
27
27
|
var wellKnownSymbol = require('../internals/well-known-symbol');
|
|
28
|
-
var V8_VERSION = require('../internals/v8-version');
|
|
28
|
+
var V8_VERSION = require('../internals/engine-v8-version');
|
|
29
29
|
|
|
30
30
|
var SPECIES = wellKnownSymbol('species');
|
|
31
31
|
var PROMISE = 'Promise';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
// empty
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
// empty
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
var $ = require('../internals/export');
|
|
3
3
|
var createHTML = require('../internals/create-html');
|
|
4
|
-
var forcedStringHTMLMethod = require('../internals/
|
|
4
|
+
var forcedStringHTMLMethod = require('../internals/string-html-forced');
|
|
5
5
|
|
|
6
6
|
// `String.prototype.anchor` method
|
|
7
7
|
// https://tc39.github.io/ecma262/#sec-string.prototype.anchor
|
package/modules/es.string.big.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
var $ = require('../internals/export');
|
|
3
3
|
var createHTML = require('../internals/create-html');
|
|
4
|
-
var forcedStringHTMLMethod = require('../internals/
|
|
4
|
+
var forcedStringHTMLMethod = require('../internals/string-html-forced');
|
|
5
5
|
|
|
6
6
|
// `String.prototype.big` method
|
|
7
7
|
// https://tc39.github.io/ecma262/#sec-string.prototype.big
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
var $ = require('../internals/export');
|
|
3
3
|
var createHTML = require('../internals/create-html');
|
|
4
|
-
var forcedStringHTMLMethod = require('../internals/
|
|
4
|
+
var forcedStringHTMLMethod = require('../internals/string-html-forced');
|
|
5
5
|
|
|
6
6
|
// `String.prototype.blink` method
|
|
7
7
|
// https://tc39.github.io/ecma262/#sec-string.prototype.blink
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
var $ = require('../internals/export');
|
|
3
3
|
var createHTML = require('../internals/create-html');
|
|
4
|
-
var forcedStringHTMLMethod = require('../internals/
|
|
4
|
+
var forcedStringHTMLMethod = require('../internals/string-html-forced');
|
|
5
5
|
|
|
6
6
|
// `String.prototype.bold` method
|
|
7
7
|
// https://tc39.github.io/ecma262/#sec-string.prototype.bold
|