core-js 3.14.0 → 3.16.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/README.md +2 -3
- package/es/aggregate-error.js +1 -1
- package/es/array/entries.js +1 -0
- package/es/array/index.js +2 -1
- package/es/array/iterator.js +1 -0
- package/es/array/keys.js +1 -0
- package/es/array/values.js +1 -0
- package/es/array/virtual/entries.js +1 -0
- package/es/array/virtual/index.js +1 -0
- package/es/array/virtual/iterator.js +1 -0
- package/es/array/virtual/keys.js +1 -0
- package/es/array/virtual/values.js +1 -0
- package/es/date/get-year.js +4 -0
- package/es/date/index.js +4 -1
- package/es/date/set-year.js +4 -0
- package/es/date/to-gmt-string.js +4 -0
- package/es/escape.js +4 -0
- package/es/index.js +7 -0
- package/es/map/index.js +1 -1
- package/es/promise/all-settled.js +2 -1
- package/es/promise/any.js +2 -1
- package/es/promise/finally.js +1 -0
- package/es/promise/index.js +1 -1
- package/es/reflect/index.js +1 -0
- package/es/reflect/to-string-tag.js +1 -0
- package/es/regexp/constructor.js +3 -0
- package/es/regexp/dot-all.js +7 -0
- package/es/regexp/index.js +1 -0
- package/es/regexp/match.js +1 -0
- package/es/regexp/replace.js +1 -0
- package/es/regexp/search.js +1 -0
- package/es/regexp/split.js +1 -0
- package/es/regexp/sticky.js +2 -0
- package/es/set/index.js +2 -2
- package/es/string/index.js +2 -0
- package/es/string/iterator.js +1 -0
- package/es/string/match-all.js +2 -0
- package/es/string/replace-all.js +2 -0
- package/es/string/substr.js +4 -0
- package/es/string/virtual/index.js +3 -0
- package/es/string/virtual/iterator.js +1 -0
- package/es/string/virtual/match-all.js +2 -0
- package/es/string/virtual/replace-all.js +2 -0
- package/es/string/virtual/substr.js +4 -0
- package/es/symbol/is-concat-spreadable.js +1 -1
- package/es/symbol/iterator.js +3 -2
- package/es/symbol/match-all.js +2 -0
- package/es/symbol/match.js +1 -0
- package/es/symbol/replace.js +1 -0
- package/es/symbol/search.js +1 -0
- package/es/symbol/split.js +1 -0
- package/es/symbol/to-primitive.js +1 -0
- package/es/symbol/to-string-tag.js +2 -2
- package/es/typed-array/entries.js +1 -0
- package/es/typed-array/iterator.js +1 -0
- package/es/typed-array/keys.js +1 -0
- package/es/typed-array/methods.js +2 -1
- package/es/typed-array/values.js +1 -0
- package/es/unescape.js +4 -0
- package/es/weak-map/index.js +1 -1
- package/es/weak-set/index.js +1 -1
- package/features/array/filter-out.js +1 -0
- package/features/array/filter-reject.js +4 -0
- package/features/array/group-by.js +4 -0
- package/features/array/index.js +3 -0
- package/features/array/virtual/filter-out.js +1 -0
- package/features/array/virtual/filter-reject.js +4 -0
- package/features/array/virtual/group-by.js +4 -0
- package/features/array/virtual/index.js +3 -0
- package/features/async-iterator/as-indexed-pairs.js +0 -2
- package/features/async-iterator/drop.js +0 -2
- package/features/async-iterator/every.js +0 -2
- package/features/async-iterator/filter.js +0 -2
- package/features/async-iterator/find.js +0 -2
- package/features/async-iterator/flat-map.js +0 -2
- package/features/async-iterator/for-each.js +0 -2
- package/features/async-iterator/from.js +1 -0
- package/features/async-iterator/index.js +1 -0
- package/features/async-iterator/map.js +0 -2
- package/features/async-iterator/reduce.js +0 -2
- package/features/async-iterator/some.js +0 -2
- package/features/async-iterator/take.js +0 -2
- package/features/async-iterator/to-array.js +0 -2
- package/features/date/get-year.js +3 -0
- package/features/date/set-year.js +3 -0
- package/features/date/to-gmt-string.js +3 -0
- package/features/escape.js +3 -0
- package/features/get-iterator-method.js +2 -1
- package/features/get-iterator.js +2 -1
- package/features/index.js +11 -0
- package/features/instance/filter-out.js +1 -0
- package/features/instance/filter-reject.js +8 -0
- package/features/instance/group-by.js +8 -0
- package/features/is-iterable.js +2 -1
- package/features/iterator/as-indexed-pairs.js +0 -2
- package/features/iterator/drop.js +0 -2
- package/features/iterator/every.js +0 -2
- package/features/iterator/filter.js +0 -2
- package/features/iterator/find.js +0 -2
- package/features/iterator/flat-map.js +0 -2
- package/features/iterator/for-each.js +0 -2
- package/features/iterator/from.js +1 -0
- package/features/iterator/index.js +1 -0
- package/features/iterator/map.js +0 -2
- package/features/iterator/reduce.js +0 -2
- package/features/iterator/some.js +0 -2
- package/features/iterator/take.js +0 -2
- package/features/iterator/to-array.js +0 -2
- package/features/map/from.js +1 -0
- package/features/map/of.js +1 -2
- package/features/number/range.js +1 -0
- package/features/regexp/dot-all.js +3 -0
- package/features/set/difference.js +1 -0
- package/features/set/from.js +1 -0
- package/features/set/intersection.js +3 -0
- package/features/set/is-disjoint-from.js +3 -0
- package/features/set/is-subset-of.js +1 -0
- package/features/set/is-superset-of.js +3 -0
- package/features/set/of.js +1 -2
- package/features/set/symmetric-difference.js +1 -0
- package/features/set/union.js +1 -0
- package/features/string/code-points.js +1 -0
- package/features/string/substr.js +3 -0
- package/features/string/virtual/code-points.js +1 -0
- package/features/string/virtual/substr.js +3 -0
- package/features/typed-array/copy-within.js +3 -1
- package/features/typed-array/entries.js +3 -1
- package/features/typed-array/every.js +3 -1
- package/features/typed-array/fill.js +3 -1
- package/features/typed-array/filter-out.js +1 -0
- package/features/typed-array/filter-reject.js +1 -0
- package/features/typed-array/filter.js +3 -1
- package/features/typed-array/find-index.js +3 -1
- package/features/typed-array/find.js +3 -1
- package/features/typed-array/float32-array.js +1 -1
- package/features/typed-array/float64-array.js +1 -1
- package/features/typed-array/for-each.js +3 -1
- package/features/typed-array/from.js +3 -1
- package/features/typed-array/group-by.js +1 -0
- package/features/typed-array/includes.js +3 -1
- package/features/typed-array/index-of.js +3 -1
- package/features/typed-array/index.js +4 -1
- package/features/typed-array/int16-array.js +1 -1
- package/features/typed-array/int32-array.js +1 -1
- package/features/typed-array/int8-array.js +1 -1
- package/features/typed-array/iterator.js +3 -1
- package/features/typed-array/join.js +3 -1
- package/features/typed-array/keys.js +3 -1
- package/features/typed-array/last-index-of.js +3 -1
- package/features/typed-array/map.js +3 -1
- package/features/typed-array/of.js +3 -1
- package/features/typed-array/reduce-right.js +3 -1
- package/features/typed-array/reduce.js +3 -1
- package/features/typed-array/reverse.js +3 -1
- package/features/typed-array/set.js +3 -1
- package/features/typed-array/slice.js +3 -1
- package/features/typed-array/some.js +3 -1
- package/features/typed-array/sort.js +3 -1
- package/features/typed-array/subarray.js +3 -1
- package/features/typed-array/to-locale-string.js +3 -1
- package/features/typed-array/to-string.js +3 -1
- package/features/typed-array/uint16-array.js +1 -1
- package/features/typed-array/uint32-array.js +1 -1
- package/features/typed-array/uint8-array.js +1 -1
- package/features/typed-array/uint8-clamped-array.js +1 -1
- package/features/typed-array/values.js +3 -1
- package/features/unescape.js +3 -0
- package/features/weak-map/from.js +1 -0
- package/features/weak-map/index.js +1 -0
- package/features/weak-map/of.js +1 -2
- package/features/weak-set/from.js +1 -0
- package/features/weak-set/index.js +1 -0
- package/features/weak-set/of.js +1 -2
- package/internals/array-buffer-view-core.js +16 -10
- package/internals/array-from-constructor-and-list.js +7 -0
- package/internals/array-group-by.js +33 -0
- package/internals/array-iteration-from-last.js +6 -6
- package/internals/array-iteration.js +6 -6
- package/internals/array-species-constructor.js +20 -0
- package/internals/array-species-create.js +2 -15
- package/internals/collection.js +1 -1
- package/internals/create-html.js +3 -2
- package/internals/create-property.js +2 -2
- package/internals/date-to-primitive.js +5 -4
- package/internals/engine-v8-version.js +2 -1
- package/internals/fix-regexp-well-known-symbol-logic.js +5 -62
- package/internals/get-built-in.js +1 -3
- package/internals/get-map-iterator.js +1 -4
- package/internals/get-set-iterator.js +1 -4
- package/internals/internal-metadata.js +33 -3
- package/internals/is-symbol.js +9 -0
- package/internals/number-parse-float.js +2 -1
- package/internals/number-parse-int.js +2 -1
- package/internals/object-create.js +17 -12
- package/internals/object-define-property.js +2 -2
- package/internals/object-get-own-property-descriptor.js +2 -2
- package/internals/ordinary-to-primitive.js +11 -0
- package/internals/regexp-exec.js +34 -8
- package/internals/regexp-sticky-helpers.js +3 -7
- package/internals/regexp-unsupported-dot-all.js +7 -0
- package/internals/regexp-unsupported-ncg.js +8 -0
- package/internals/set-global.js +2 -2
- package/internals/shared.js +1 -1
- package/internals/string-multibyte.js +3 -2
- package/internals/string-pad.js +3 -2
- package/internals/string-repeat.js +2 -1
- package/internals/string-trim.js +2 -1
- package/internals/task.js +9 -4
- package/internals/to-primitive.js +17 -9
- package/internals/to-property-key.js +9 -0
- package/internals/to-string.js +6 -0
- package/internals/typed-array-constructor.js +13 -5
- package/internals/typed-array-from-species-and-list.js +3 -8
- package/internals/typed-array-species-constructor.js +11 -0
- package/modules/es.aggregate-error.js +2 -1
- package/modules/es.array.sort.js +2 -1
- package/modules/es.date.get-year.js +17 -0
- package/modules/es.date.set-year.js +18 -0
- package/modules/es.date.to-gmt-string.js +7 -0
- package/modules/es.date.to-json.js +1 -1
- package/modules/es.date.to-string.js +1 -1
- package/modules/es.escape.js +36 -0
- package/modules/es.number.constructor.js +3 -1
- package/modules/es.object.lookup-getter.js +2 -2
- package/modules/es.object.lookup-setter.js +2 -2
- package/modules/es.promise.js +3 -2
- package/modules/es.reflect.define-property.js +2 -2
- package/modules/es.regexp.constructor.js +126 -24
- package/modules/es.regexp.dot-all.js +22 -0
- package/modules/es.regexp.flags.js +10 -8
- package/modules/es.regexp.sticky.js +1 -1
- package/modules/es.regexp.to-string.js +3 -2
- package/modules/es.string.ends-with.js +3 -2
- package/modules/es.string.includes.js +3 -2
- package/modules/es.string.iterator.js +2 -1
- package/modules/es.string.match-all.js +6 -5
- package/modules/es.string.match.js +9 -8
- package/modules/es.string.raw.js +3 -2
- package/modules/es.string.replace-all.js +7 -6
- package/modules/es.string.replace.js +45 -17
- package/modules/es.string.search.js +8 -7
- package/modules/es.string.split.js +22 -8
- package/modules/es.string.starts-with.js +3 -2
- package/modules/es.string.substr.js +26 -0
- package/modules/es.symbol.js +8 -13
- package/modules/es.typed-array.map.js +2 -3
- package/modules/es.typed-array.slice.js +3 -4
- package/modules/es.typed-array.subarray.js +3 -2
- package/modules/es.unescape.js +40 -0
- package/modules/es.weak-map.js +1 -1
- package/modules/esnext.array.filter-out.js +3 -2
- package/modules/esnext.array.filter-reject.js +14 -0
- package/modules/esnext.array.group-by.js +16 -0
- package/modules/esnext.map.merge.js +2 -1
- package/modules/esnext.string.at-alternative.js +3 -2
- package/modules/esnext.string.code-points.js +2 -1
- package/modules/esnext.typed-array.filter-out.js +3 -2
- package/modules/esnext.typed-array.filter-reject.js +14 -0
- package/modules/esnext.typed-array.group-by.js +14 -0
- package/modules/web.url-search-params.js +56 -36
- package/modules/web.url.js +17 -16
- package/package.json +3 -4
- package/postinstall.js +4 -2
- package/proposals/array-filtering.js +4 -0
- package/proposals/array-grouping.js +3 -0
- package/stable/aggregate-error.js +1 -0
- package/stable/date/get-year.js +3 -0
- package/stable/date/set-year.js +3 -0
- package/stable/date/to-gmt-string.js +3 -0
- package/stable/dom-collections/index.js +1 -0
- package/stable/dom-collections/iterator.js +1 -0
- package/stable/escape.js +3 -0
- package/stable/index.js +7 -0
- package/stable/map/index.js +1 -0
- package/stable/object/from-entries.js +1 -0
- package/stable/object/index.js +1 -0
- package/stable/promise/all-settled.js +1 -0
- package/stable/promise/any.js +1 -0
- package/stable/promise/index.js +1 -0
- package/stable/regexp/dot-all.js +3 -0
- package/stable/set/index.js +1 -0
- package/stable/string/substr.js +3 -0
- package/stable/string/virtual/substr.js +3 -0
- package/stable/symbol/index.js +1 -0
- package/stable/symbol/iterator.js +1 -0
- package/stable/typed-array/copy-within.js +3 -1
- package/stable/typed-array/entries.js +3 -1
- package/stable/typed-array/every.js +3 -1
- package/stable/typed-array/fill.js +3 -1
- package/stable/typed-array/filter.js +3 -1
- package/stable/typed-array/find-index.js +3 -1
- package/stable/typed-array/find.js +3 -1
- package/stable/typed-array/for-each.js +3 -1
- package/stable/typed-array/from.js +3 -1
- package/stable/typed-array/includes.js +3 -1
- package/stable/typed-array/index-of.js +3 -1
- package/stable/typed-array/iterator.js +3 -1
- package/stable/typed-array/join.js +3 -1
- package/stable/typed-array/keys.js +3 -1
- package/stable/typed-array/last-index-of.js +3 -1
- package/stable/typed-array/map.js +3 -1
- package/stable/typed-array/of.js +3 -1
- package/stable/typed-array/reduce-right.js +3 -1
- package/stable/typed-array/reduce.js +3 -1
- package/stable/typed-array/reverse.js +3 -1
- package/stable/typed-array/set.js +3 -1
- package/stable/typed-array/slice.js +3 -1
- package/stable/typed-array/some.js +3 -1
- package/stable/typed-array/sort.js +3 -1
- package/stable/typed-array/subarray.js +3 -1
- package/stable/typed-array/to-locale-string.js +3 -1
- package/stable/typed-array/to-string.js +3 -1
- package/stable/typed-array/values.js +3 -1
- package/stable/unescape.js +3 -0
- package/stable/url-search-params/index.js +1 -0
- package/stable/weak-map/index.js +1 -0
- package/stable/weak-set/index.js +1 -0
- package/stage/1.js +1 -0
- package/stage/2.js +0 -1
- package/stage/3.js +1 -0
- package/es/array/virtual/filter-out.js +0 -4
|
@@ -0,0 +1 @@
|
|
|
1
|
+
require('../../modules/esnext.typed-array.group-by');
|
|
@@ -1,9 +1,12 @@
|
|
|
1
|
-
var parent = require('../../
|
|
1
|
+
var parent = require('../../stable/typed-array');
|
|
2
2
|
require('../../modules/es.map');
|
|
3
3
|
require('../../modules/esnext.typed-array.at');
|
|
4
|
+
// TODO: Remove from `core-js@4`
|
|
4
5
|
require('../../modules/esnext.typed-array.filter-out');
|
|
6
|
+
require('../../modules/esnext.typed-array.filter-reject');
|
|
5
7
|
require('../../modules/esnext.typed-array.find-last');
|
|
6
8
|
require('../../modules/esnext.typed-array.find-last-index');
|
|
9
|
+
require('../../modules/esnext.typed-array.group-by');
|
|
7
10
|
require('../../modules/esnext.typed-array.unique-by');
|
|
8
11
|
|
|
9
12
|
module.exports = parent;
|
package/features/weak-map/of.js
CHANGED
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
'use strict';
|
|
2
|
-
require('../../modules/es.
|
|
2
|
+
require('../../modules/es.array.iterator');
|
|
3
3
|
require('../../modules/es.weak-map');
|
|
4
4
|
require('../../modules/esnext.weak-map.of');
|
|
5
|
-
require('../../modules/web.dom-collections.iterator');
|
|
6
5
|
var path = require('../../internals/path');
|
|
7
6
|
|
|
8
7
|
var WeakMap = path.WeakMap;
|
package/features/weak-set/of.js
CHANGED
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
'use strict';
|
|
2
|
-
require('../../modules/es.
|
|
2
|
+
require('../../modules/es.array.iterator');
|
|
3
3
|
require('../../modules/es.weak-set');
|
|
4
4
|
require('../../modules/esnext.weak-set.of');
|
|
5
|
-
require('../../modules/web.dom-collections.iterator');
|
|
6
5
|
var path = require('../../internals/path');
|
|
7
6
|
|
|
8
7
|
var WeakSet = path.WeakSet;
|
|
@@ -24,10 +24,11 @@ var isPrototypeOf = ObjectPrototype.isPrototypeOf;
|
|
|
24
24
|
|
|
25
25
|
var TO_STRING_TAG = wellKnownSymbol('toStringTag');
|
|
26
26
|
var TYPED_ARRAY_TAG = uid('TYPED_ARRAY_TAG');
|
|
27
|
+
var TYPED_ARRAY_CONSTRUCTOR = uid('TYPED_ARRAY_CONSTRUCTOR');
|
|
27
28
|
// Fixing native typed arrays in Opera Presto crashes the browser, see #595
|
|
28
29
|
var NATIVE_ARRAY_BUFFER_VIEWS = NATIVE_ARRAY_BUFFER && !!setPrototypeOf && classof(global.opera) !== 'Opera';
|
|
29
30
|
var TYPED_ARRAY_TAG_REQIRED = false;
|
|
30
|
-
var NAME;
|
|
31
|
+
var NAME, Constructor, Prototype;
|
|
31
32
|
|
|
32
33
|
var TypedArrayConstructorsList = {
|
|
33
34
|
Int8Array: 1,
|
|
@@ -67,14 +68,9 @@ var aTypedArray = function (it) {
|
|
|
67
68
|
};
|
|
68
69
|
|
|
69
70
|
var aTypedArrayConstructor = function (C) {
|
|
70
|
-
if (setPrototypeOf) {
|
|
71
|
-
|
|
72
|
-
}
|
|
73
|
-
var TypedArrayConstructor = global[ARRAY];
|
|
74
|
-
if (TypedArrayConstructor && (C === TypedArrayConstructor || isPrototypeOf.call(TypedArrayConstructor, C))) {
|
|
75
|
-
return C;
|
|
76
|
-
}
|
|
77
|
-
} throw TypeError('Target is not a typed array constructor');
|
|
71
|
+
if (setPrototypeOf && !isPrototypeOf.call(TypedArray, C)) {
|
|
72
|
+
throw TypeError('Target is not a typed array constructor');
|
|
73
|
+
} return C;
|
|
78
74
|
};
|
|
79
75
|
|
|
80
76
|
var exportTypedArrayMethod = function (KEY, property, forced) {
|
|
@@ -117,7 +113,16 @@ var exportTypedArrayStaticMethod = function (KEY, property, forced) {
|
|
|
117
113
|
};
|
|
118
114
|
|
|
119
115
|
for (NAME in TypedArrayConstructorsList) {
|
|
120
|
-
|
|
116
|
+
Constructor = global[NAME];
|
|
117
|
+
Prototype = Constructor && Constructor.prototype;
|
|
118
|
+
if (Prototype) createNonEnumerableProperty(Prototype, TYPED_ARRAY_CONSTRUCTOR, Constructor);
|
|
119
|
+
else NATIVE_ARRAY_BUFFER_VIEWS = false;
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
for (NAME in BigIntArrayConstructorsList) {
|
|
123
|
+
Constructor = global[NAME];
|
|
124
|
+
Prototype = Constructor && Constructor.prototype;
|
|
125
|
+
if (Prototype) createNonEnumerableProperty(Prototype, TYPED_ARRAY_CONSTRUCTOR, Constructor);
|
|
121
126
|
}
|
|
122
127
|
|
|
123
128
|
// WebKit bug - typed arrays constructors prototype is Object.prototype
|
|
@@ -155,6 +160,7 @@ if (DESCRIPTORS && !has(TypedArrayPrototype, TO_STRING_TAG)) {
|
|
|
155
160
|
|
|
156
161
|
module.exports = {
|
|
157
162
|
NATIVE_ARRAY_BUFFER_VIEWS: NATIVE_ARRAY_BUFFER_VIEWS,
|
|
163
|
+
TYPED_ARRAY_CONSTRUCTOR: TYPED_ARRAY_CONSTRUCTOR,
|
|
158
164
|
TYPED_ARRAY_TAG: TYPED_ARRAY_TAG_REQIRED && TYPED_ARRAY_TAG,
|
|
159
165
|
aTypedArray: aTypedArray,
|
|
160
166
|
aTypedArrayConstructor: aTypedArrayConstructor,
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
var bind = require('../internals/function-bind-context');
|
|
2
|
+
var IndexedObject = require('../internals/indexed-object');
|
|
3
|
+
var toObject = require('../internals/to-object');
|
|
4
|
+
var toLength = require('../internals/to-length');
|
|
5
|
+
var toPropertyKey = require('../internals/to-property-key');
|
|
6
|
+
var objectCreate = require('../internals/object-create');
|
|
7
|
+
var arrayFromConstructorAndList = require('../internals/array-from-constructor-and-list');
|
|
8
|
+
|
|
9
|
+
var push = [].push;
|
|
10
|
+
|
|
11
|
+
module.exports = function ($this, callbackfn, that, specificConstructor) {
|
|
12
|
+
var O = toObject($this);
|
|
13
|
+
var self = IndexedObject(O);
|
|
14
|
+
var boundFunction = bind(callbackfn, that, 3);
|
|
15
|
+
var target = objectCreate(null);
|
|
16
|
+
var length = toLength(self.length);
|
|
17
|
+
var index = 0;
|
|
18
|
+
var Constructor, key, value;
|
|
19
|
+
for (;length > index; index++) {
|
|
20
|
+
value = self[index];
|
|
21
|
+
key = toPropertyKey(boundFunction(value, index, O));
|
|
22
|
+
// in some IE10 builds, `hasOwnProperty` returns incorrect result on integer keys
|
|
23
|
+
// but since it's a `null` prototype object, we can safely use `in`
|
|
24
|
+
if (key in target) push.call(target[key], value);
|
|
25
|
+
else target[key] = [value];
|
|
26
|
+
}
|
|
27
|
+
if (specificConstructor) {
|
|
28
|
+
Constructor = specificConstructor(O);
|
|
29
|
+
if (Constructor !== Array) {
|
|
30
|
+
for (key in target) target[key] = arrayFromConstructorAndList(Constructor, target[key]);
|
|
31
|
+
}
|
|
32
|
+
} return target;
|
|
33
|
+
};
|
|
@@ -5,7 +5,7 @@ var toLength = require('../internals/to-length');
|
|
|
5
5
|
|
|
6
6
|
// `Array.prototype.{ findLast, findLastIndex }` methods implementation
|
|
7
7
|
var createMethod = function (TYPE) {
|
|
8
|
-
var
|
|
8
|
+
var IS_FIND_LAST_INDEX = TYPE == 1;
|
|
9
9
|
return function ($this, callbackfn, that) {
|
|
10
10
|
var O = toObject($this);
|
|
11
11
|
var self = IndexedObject(O);
|
|
@@ -16,19 +16,19 @@ var createMethod = function (TYPE) {
|
|
|
16
16
|
value = self[index];
|
|
17
17
|
result = boundFunction(value, index, O);
|
|
18
18
|
if (result) switch (TYPE) {
|
|
19
|
-
case
|
|
20
|
-
case
|
|
19
|
+
case 0: return value; // findLast
|
|
20
|
+
case 1: return index; // findLastIndex
|
|
21
21
|
}
|
|
22
22
|
}
|
|
23
|
-
return
|
|
23
|
+
return IS_FIND_LAST_INDEX ? -1 : undefined;
|
|
24
24
|
};
|
|
25
25
|
};
|
|
26
26
|
|
|
27
27
|
module.exports = {
|
|
28
28
|
// `Array.prototype.findLast` method
|
|
29
29
|
// https://github.com/tc39/proposal-array-find-from-last
|
|
30
|
-
findLast: createMethod(
|
|
30
|
+
findLast: createMethod(0),
|
|
31
31
|
// `Array.prototype.findLastIndex` method
|
|
32
32
|
// https://github.com/tc39/proposal-array-find-from-last
|
|
33
|
-
findLastIndex: createMethod(
|
|
33
|
+
findLastIndex: createMethod(1)
|
|
34
34
|
};
|
|
@@ -6,14 +6,14 @@ var arraySpeciesCreate = require('../internals/array-species-create');
|
|
|
6
6
|
|
|
7
7
|
var push = [].push;
|
|
8
8
|
|
|
9
|
-
// `Array.prototype.{ forEach, map, filter, some, every, find, findIndex,
|
|
9
|
+
// `Array.prototype.{ forEach, map, filter, some, every, find, findIndex, filterReject }` methods implementation
|
|
10
10
|
var createMethod = function (TYPE) {
|
|
11
11
|
var IS_MAP = TYPE == 1;
|
|
12
12
|
var IS_FILTER = TYPE == 2;
|
|
13
13
|
var IS_SOME = TYPE == 3;
|
|
14
14
|
var IS_EVERY = TYPE == 4;
|
|
15
15
|
var IS_FIND_INDEX = TYPE == 6;
|
|
16
|
-
var
|
|
16
|
+
var IS_FILTER_REJECT = TYPE == 7;
|
|
17
17
|
var NO_HOLES = TYPE == 5 || IS_FIND_INDEX;
|
|
18
18
|
return function ($this, callbackfn, that, specificCreate) {
|
|
19
19
|
var O = toObject($this);
|
|
@@ -22,7 +22,7 @@ var createMethod = function (TYPE) {
|
|
|
22
22
|
var length = toLength(self.length);
|
|
23
23
|
var index = 0;
|
|
24
24
|
var create = specificCreate || arraySpeciesCreate;
|
|
25
|
-
var target = IS_MAP ? create($this, length) : IS_FILTER ||
|
|
25
|
+
var target = IS_MAP ? create($this, length) : IS_FILTER || IS_FILTER_REJECT ? create($this, 0) : undefined;
|
|
26
26
|
var value, result;
|
|
27
27
|
for (;length > index; index++) if (NO_HOLES || index in self) {
|
|
28
28
|
value = self[index];
|
|
@@ -36,7 +36,7 @@ var createMethod = function (TYPE) {
|
|
|
36
36
|
case 2: push.call(target, value); // filter
|
|
37
37
|
} else switch (TYPE) {
|
|
38
38
|
case 4: return false; // every
|
|
39
|
-
case 7: push.call(target, value); //
|
|
39
|
+
case 7: push.call(target, value); // filterReject
|
|
40
40
|
}
|
|
41
41
|
}
|
|
42
42
|
}
|
|
@@ -66,7 +66,7 @@ module.exports = {
|
|
|
66
66
|
// `Array.prototype.findIndex` method
|
|
67
67
|
// https://tc39.es/ecma262/#sec-array.prototype.findIndex
|
|
68
68
|
findIndex: createMethod(6),
|
|
69
|
-
// `Array.prototype.
|
|
69
|
+
// `Array.prototype.filterReject` method
|
|
70
70
|
// https://github.com/tc39/proposal-array-filtering
|
|
71
|
-
|
|
71
|
+
filterReject: createMethod(7)
|
|
72
72
|
};
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
var isObject = require('../internals/is-object');
|
|
2
|
+
var isArray = require('../internals/is-array');
|
|
3
|
+
var wellKnownSymbol = require('../internals/well-known-symbol');
|
|
4
|
+
|
|
5
|
+
var SPECIES = wellKnownSymbol('species');
|
|
6
|
+
|
|
7
|
+
// a part of `ArraySpeciesCreate` abstract operation
|
|
8
|
+
// https://tc39.es/ecma262/#sec-arrayspeciescreate
|
|
9
|
+
module.exports = function (originalArray) {
|
|
10
|
+
var C;
|
|
11
|
+
if (isArray(originalArray)) {
|
|
12
|
+
C = originalArray.constructor;
|
|
13
|
+
// cross-realm fallback
|
|
14
|
+
if (typeof C == 'function' && (C === Array || isArray(C.prototype))) C = undefined;
|
|
15
|
+
else if (isObject(C)) {
|
|
16
|
+
C = C[SPECIES];
|
|
17
|
+
if (C === null) C = undefined;
|
|
18
|
+
}
|
|
19
|
+
} return C === undefined ? Array : C;
|
|
20
|
+
};
|
|
@@ -1,20 +1,7 @@
|
|
|
1
|
-
var
|
|
2
|
-
var isArray = require('../internals/is-array');
|
|
3
|
-
var wellKnownSymbol = require('../internals/well-known-symbol');
|
|
4
|
-
|
|
5
|
-
var SPECIES = wellKnownSymbol('species');
|
|
1
|
+
var arraySpeciesConstructor = require('../internals/array-species-constructor');
|
|
6
2
|
|
|
7
3
|
// `ArraySpeciesCreate` abstract operation
|
|
8
4
|
// https://tc39.es/ecma262/#sec-arrayspeciescreate
|
|
9
5
|
module.exports = function (originalArray, length) {
|
|
10
|
-
|
|
11
|
-
if (isArray(originalArray)) {
|
|
12
|
-
C = originalArray.constructor;
|
|
13
|
-
// cross-realm fallback
|
|
14
|
-
if (typeof C == 'function' && (C === Array || isArray(C.prototype))) C = undefined;
|
|
15
|
-
else if (isObject(C)) {
|
|
16
|
-
C = C[SPECIES];
|
|
17
|
-
if (C === null) C = undefined;
|
|
18
|
-
}
|
|
19
|
-
} return new (C === undefined ? Array : C)(length === 0 ? 0 : length);
|
|
6
|
+
return new (arraySpeciesConstructor(originalArray))(length === 0 ? 0 : length);
|
|
20
7
|
};
|
package/internals/collection.js
CHANGED
|
@@ -50,7 +50,7 @@ module.exports = function (CONSTRUCTOR_NAME, wrapper, common) {
|
|
|
50
50
|
if (REPLACE) {
|
|
51
51
|
// create collection constructor
|
|
52
52
|
Constructor = common.getConstructor(wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER);
|
|
53
|
-
InternalMetadataModule.
|
|
53
|
+
InternalMetadataModule.enable();
|
|
54
54
|
} else if (isForced(CONSTRUCTOR_NAME, true)) {
|
|
55
55
|
var instance = new Constructor();
|
|
56
56
|
// early implementations not supports chaining
|
package/internals/create-html.js
CHANGED
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
var requireObjectCoercible = require('../internals/require-object-coercible');
|
|
2
|
+
var toString = require('../internals/to-string');
|
|
2
3
|
|
|
3
4
|
var quot = /"/g;
|
|
4
5
|
|
|
5
6
|
// `CreateHTML` abstract operation
|
|
6
7
|
// https://tc39.es/ecma262/#sec-createhtml
|
|
7
8
|
module.exports = function (string, tag, attribute, value) {
|
|
8
|
-
var S =
|
|
9
|
+
var S = toString(requireObjectCoercible(string));
|
|
9
10
|
var p1 = '<' + tag;
|
|
10
|
-
if (attribute !== '') p1 += ' ' + attribute + '="' +
|
|
11
|
+
if (attribute !== '') p1 += ' ' + attribute + '="' + toString(value).replace(quot, '"') + '"';
|
|
11
12
|
return p1 + '>' + S + '</' + tag + '>';
|
|
12
13
|
};
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
'use strict';
|
|
2
|
-
var
|
|
2
|
+
var toPropertyKey = require('../internals/to-property-key');
|
|
3
3
|
var definePropertyModule = require('../internals/object-define-property');
|
|
4
4
|
var createPropertyDescriptor = require('../internals/create-property-descriptor');
|
|
5
5
|
|
|
6
6
|
module.exports = function (object, key, value) {
|
|
7
|
-
var propertyKey =
|
|
7
|
+
var propertyKey = toPropertyKey(key);
|
|
8
8
|
if (propertyKey in object) definePropertyModule.f(object, propertyKey, createPropertyDescriptor(0, value));
|
|
9
9
|
else object[propertyKey] = value;
|
|
10
10
|
};
|
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
var anObject = require('../internals/an-object');
|
|
3
|
-
var
|
|
3
|
+
var ordinaryToPrimitive = require('../internals/ordinary-to-primitive');
|
|
4
4
|
|
|
5
5
|
// `Date.prototype[@@toPrimitive](hint)` method implementation
|
|
6
6
|
// https://tc39.es/ecma262/#sec-date.prototype-@@toprimitive
|
|
7
7
|
module.exports = function (hint) {
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
8
|
+
anObject(this);
|
|
9
|
+
if (hint === 'string' || hint === 'default') hint = 'string';
|
|
10
|
+
else if (hint !== 'number') throw TypeError('Incorrect hint');
|
|
11
|
+
return ordinaryToPrimitive(this, hint);
|
|
11
12
|
};
|
|
@@ -2,7 +2,8 @@ var global = require('../internals/global');
|
|
|
2
2
|
var userAgent = require('../internals/engine-user-agent');
|
|
3
3
|
|
|
4
4
|
var process = global.process;
|
|
5
|
-
var
|
|
5
|
+
var Deno = global.Deno;
|
|
6
|
+
var versions = process && process.versions || Deno && Deno.version;
|
|
6
7
|
var v8 = versions && versions.v8;
|
|
7
8
|
var match, version;
|
|
8
9
|
|
|
@@ -10,47 +10,7 @@ var createNonEnumerableProperty = require('../internals/create-non-enumerable-pr
|
|
|
10
10
|
var SPECIES = wellKnownSymbol('species');
|
|
11
11
|
var RegExpPrototype = RegExp.prototype;
|
|
12
12
|
|
|
13
|
-
|
|
14
|
-
// #replace needs built-in support for named groups.
|
|
15
|
-
// #match works fine because it just return the exec results, even if it has
|
|
16
|
-
// a "grops" property.
|
|
17
|
-
var re = /./;
|
|
18
|
-
re.exec = function () {
|
|
19
|
-
var result = [];
|
|
20
|
-
result.groups = { a: '7' };
|
|
21
|
-
return result;
|
|
22
|
-
};
|
|
23
|
-
return ''.replace(re, '$<a>') !== '7';
|
|
24
|
-
});
|
|
25
|
-
|
|
26
|
-
// IE <= 11 replaces $0 with the whole match, as if it was $&
|
|
27
|
-
// https://stackoverflow.com/questions/6024666/getting-ie-to-replace-a-regex-with-the-literal-string-0
|
|
28
|
-
var REPLACE_KEEPS_$0 = (function () {
|
|
29
|
-
// eslint-disable-next-line regexp/prefer-escape-replacement-dollar-char -- required for testing
|
|
30
|
-
return 'a'.replace(/./, '$0') === '$0';
|
|
31
|
-
})();
|
|
32
|
-
|
|
33
|
-
var REPLACE = wellKnownSymbol('replace');
|
|
34
|
-
// Safari <= 13.0.3(?) substitutes nth capture where n>m with an empty string
|
|
35
|
-
var REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE = (function () {
|
|
36
|
-
if (/./[REPLACE]) {
|
|
37
|
-
return /./[REPLACE]('a', '$0') === '';
|
|
38
|
-
}
|
|
39
|
-
return false;
|
|
40
|
-
})();
|
|
41
|
-
|
|
42
|
-
// Chrome 51 has a buggy "split" implementation when RegExp#exec !== nativeExec
|
|
43
|
-
// Weex JS has frozen built-in prototypes, so use try / catch wrapper
|
|
44
|
-
var SPLIT_WORKS_WITH_OVERWRITTEN_EXEC = !fails(function () {
|
|
45
|
-
// eslint-disable-next-line regexp/no-empty-group -- required for testing
|
|
46
|
-
var re = /(?:)/;
|
|
47
|
-
var originalExec = re.exec;
|
|
48
|
-
re.exec = function () { return originalExec.apply(this, arguments); };
|
|
49
|
-
var result = 'ab'.split(re);
|
|
50
|
-
return result.length !== 2 || result[0] !== 'a' || result[1] !== 'b';
|
|
51
|
-
});
|
|
52
|
-
|
|
53
|
-
module.exports = function (KEY, length, exec, sham) {
|
|
13
|
+
module.exports = function (KEY, exec, FORCED, SHAM) {
|
|
54
14
|
var SYMBOL = wellKnownSymbol(KEY);
|
|
55
15
|
|
|
56
16
|
var DELEGATES_TO_SYMBOL = !fails(function () {
|
|
@@ -87,12 +47,7 @@ module.exports = function (KEY, length, exec, sham) {
|
|
|
87
47
|
if (
|
|
88
48
|
!DELEGATES_TO_SYMBOL ||
|
|
89
49
|
!DELEGATES_TO_EXEC ||
|
|
90
|
-
|
|
91
|
-
REPLACE_SUPPORTS_NAMED_GROUPS &&
|
|
92
|
-
REPLACE_KEEPS_$0 &&
|
|
93
|
-
!REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE
|
|
94
|
-
)) ||
|
|
95
|
-
(KEY === 'split' && !SPLIT_WORKS_WITH_OVERWRITTEN_EXEC)
|
|
50
|
+
FORCED
|
|
96
51
|
) {
|
|
97
52
|
var nativeRegExpMethod = /./[SYMBOL];
|
|
98
53
|
var methods = exec(SYMBOL, ''[KEY], function (nativeMethod, regexp, str, arg2, forceStringMethod) {
|
|
@@ -107,23 +62,11 @@ module.exports = function (KEY, length, exec, sham) {
|
|
|
107
62
|
return { done: true, value: nativeMethod.call(str, regexp, arg2) };
|
|
108
63
|
}
|
|
109
64
|
return { done: false };
|
|
110
|
-
}, {
|
|
111
|
-
REPLACE_KEEPS_$0: REPLACE_KEEPS_$0,
|
|
112
|
-
REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE: REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE
|
|
113
65
|
});
|
|
114
|
-
var stringMethod = methods[0];
|
|
115
|
-
var regexMethod = methods[1];
|
|
116
66
|
|
|
117
|
-
redefine(String.prototype, KEY,
|
|
118
|
-
redefine(RegExpPrototype, SYMBOL,
|
|
119
|
-
// 21.2.5.8 RegExp.prototype[@@replace](string, replaceValue)
|
|
120
|
-
// 21.2.5.11 RegExp.prototype[@@split](string, limit)
|
|
121
|
-
? function (string, arg) { return regexMethod.call(string, this, arg); }
|
|
122
|
-
// 21.2.5.6 RegExp.prototype[@@match](string)
|
|
123
|
-
// 21.2.5.9 RegExp.prototype[@@search](string)
|
|
124
|
-
: function (string) { return regexMethod.call(string, this); }
|
|
125
|
-
);
|
|
67
|
+
redefine(String.prototype, KEY, methods[0]);
|
|
68
|
+
redefine(RegExpPrototype, SYMBOL, methods[1]);
|
|
126
69
|
}
|
|
127
70
|
|
|
128
|
-
if (
|
|
71
|
+
if (SHAM) createNonEnumerableProperty(RegExpPrototype[SYMBOL], 'sham', true);
|
|
129
72
|
};
|