core-js 3.18.1 → 3.19.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/configurator.js +7 -3
- package/es/date/to-primitive.js +2 -3
- package/es/date/to-string.js +2 -4
- package/es/instance/at.js +6 -5
- package/es/instance/bind.js +3 -2
- package/es/instance/code-point-at.js +4 -3
- package/es/instance/concat.js +3 -2
- package/es/instance/copy-within.js +3 -2
- package/es/instance/ends-with.js +4 -3
- package/es/instance/entries.js +3 -2
- package/es/instance/every.js +3 -2
- package/es/instance/fill.js +3 -2
- package/es/instance/filter.js +3 -2
- package/es/instance/find-index.js +3 -2
- package/es/instance/find.js +3 -2
- package/es/instance/flags.js +2 -1
- package/es/instance/flat-map.js +3 -2
- package/es/instance/flat.js +3 -2
- package/es/instance/for-each.js +3 -2
- package/es/instance/includes.js +6 -5
- package/es/instance/index-of.js +3 -2
- package/es/instance/keys.js +3 -2
- package/es/instance/last-index-of.js +3 -2
- package/es/instance/map.js +3 -2
- package/es/instance/match-all.js +4 -3
- package/es/instance/pad-end.js +4 -3
- package/es/instance/pad-start.js +4 -3
- package/es/instance/reduce-right.js +3 -2
- package/es/instance/reduce.js +3 -2
- package/es/instance/repeat.js +4 -3
- package/es/instance/replace-all.js +4 -3
- package/es/instance/reverse.js +3 -2
- package/es/instance/slice.js +3 -2
- package/es/instance/some.js +3 -2
- package/es/instance/sort.js +3 -2
- package/es/instance/splice.js +3 -2
- package/es/instance/starts-with.js +4 -3
- package/es/instance/trim-end.js +4 -3
- package/es/instance/trim-left.js +4 -3
- package/es/instance/trim-right.js +4 -3
- package/es/instance/trim-start.js +4 -3
- package/es/instance/trim.js +4 -3
- package/es/instance/values.js +3 -2
- package/es/json/stringify.js +4 -3
- package/es/promise/all-settled.js +2 -1
- package/es/promise/any.js +2 -1
- package/es/regexp/flags.js +3 -4
- package/es/regexp/match.js +2 -1
- package/es/regexp/replace.js +2 -1
- package/es/regexp/search.js +2 -1
- package/es/regexp/split.js +2 -1
- package/es/regexp/test.js +2 -3
- package/es/regexp/to-string.js +2 -3
- package/es/string/iterator.js +2 -5
- package/features/instance/at.js +6 -5
- package/features/instance/code-points.js +4 -3
- package/features/instance/filter-out.js +3 -2
- package/features/instance/filter-reject.js +3 -2
- package/features/instance/find-last-index.js +3 -2
- package/features/instance/find-last.js +3 -2
- package/features/instance/group-by.js +3 -2
- package/features/instance/unique-by.js +3 -2
- package/features/map/from.js +3 -2
- package/features/map/group-by.js +2 -1
- package/features/map/key-by.js +2 -1
- package/features/map/of.js +3 -2
- package/features/promise/try.js +2 -1
- package/features/set/from.js +3 -2
- package/features/set/of.js +3 -2
- package/features/typed-array/methods.js +2 -0
- package/features/weak-map/from.js +3 -2
- package/features/weak-map/of.js +3 -2
- package/features/weak-set/from.js +3 -2
- package/features/weak-set/of.js +3 -2
- package/internals/a-callable.js +3 -0
- package/internals/a-constructor.js +3 -0
- package/internals/a-possible-prototype.js +5 -1
- package/internals/an-instance.js +8 -3
- package/internals/an-object.js +4 -0
- package/internals/array-buffer-native.js +1 -1
- package/internals/array-buffer-non-extensible.js +10 -0
- package/internals/array-buffer-view-core.js +11 -10
- package/internals/array-buffer.js +31 -18
- package/internals/array-copy-within.js +2 -2
- package/internals/array-fill.js +2 -2
- package/internals/array-from-async.js +14 -9
- package/internals/array-from.js +8 -4
- package/internals/array-group-by.js +8 -5
- package/internals/array-includes.js +2 -2
- package/internals/array-iteration-from-last.js +3 -3
- package/internals/array-iteration.js +7 -6
- package/internals/array-last-index-of.js +6 -5
- package/internals/array-reduce.js +5 -2
- package/internals/array-slice.js +3 -0
- package/internals/array-sort.js +10 -11
- package/internals/array-species-constructor.js +2 -0
- package/internals/array-unique-by.js +15 -11
- package/internals/async-from-sync-iterator.js +4 -3
- package/internals/async-iterator-create-proxy.js +4 -3
- package/internals/async-iterator-iteration.js +5 -2
- package/internals/classof-raw.js +5 -2
- package/internals/classof.js +3 -0
- package/internals/clear-error-stack.js +20 -0
- package/internals/collection-add-all.js +3 -2
- package/internals/collection-delete-all.js +3 -2
- package/internals/collection-from.js +7 -4
- package/internals/collection-of.js +3 -4
- package/internals/collection-strong.js +11 -9
- package/internals/collection-weak.js +13 -9
- package/internals/collection.js +8 -7
- package/internals/composite-key.js +9 -2
- package/internals/copy-constructor-properties.js +2 -2
- package/internals/create-html.js +3 -1
- package/internals/date-to-iso-string.js +23 -13
- package/internals/date-to-primitive.js +3 -0
- package/internals/define-iterator.js +2 -1
- package/internals/define-well-known-symbol.js +2 -2
- package/internals/engine-v8-version.js +10 -4
- package/internals/entry-unbind.js +3 -5
- package/internals/error-stack-installable.js +10 -0
- package/internals/export.js +1 -1
- package/internals/fix-regexp-well-known-symbol-logic.js +5 -3
- package/internals/flatten-into-array.js +8 -4
- package/internals/function-apply.js +9 -0
- package/internals/function-bind-context.js +5 -17
- package/internals/function-bind.js +15 -9
- package/internals/function-call.js +5 -0
- package/internals/function-name.js +2 -2
- package/internals/function-uncurry-this.js +12 -0
- package/internals/get-async-iterator.js +2 -1
- package/internals/get-iterator.js +7 -2
- package/internals/get-map-iterator.js +3 -1
- package/internals/get-set-iterator.js +3 -1
- package/internals/get-substitution.js +10 -7
- package/internals/has-own-property.js +10 -0
- package/internals/host-report-errors.js +1 -1
- package/internals/ieee754.js +4 -1
- package/internals/indexed-object.js +5 -2
- package/internals/inspect-source.js +3 -2
- package/internals/install-error-cause.js +1 -1
- package/internals/internal-metadata.js +8 -11
- package/internals/internal-state.js +13 -11
- package/internals/is-callable.js +1 -1
- package/internals/is-constructor.js +6 -4
- package/internals/is-data-descriptor.js +2 -2
- package/internals/is-integral-number.js +10 -0
- package/internals/is-iterable.js +4 -2
- package/internals/is-object.js +1 -1
- package/internals/is-symbol.js +6 -2
- package/internals/iterate.js +16 -8
- package/internals/iterator-close.js +2 -1
- package/internals/iterator-create-proxy.js +4 -3
- package/internals/length-of-array-like.js +7 -0
- package/internals/map-emplace.js +8 -3
- package/internals/map-upsert.js +12 -4
- package/internals/math-scale.js +9 -12
- package/internals/microtask.js +6 -4
- package/internals/normalize-string-argument.js +5 -0
- package/internals/not-a-regexp.js +3 -0
- package/internals/number-parse-float.js +8 -6
- package/internals/number-parse-int.js +4 -2
- package/internals/numeric-range-iterator.js +4 -0
- package/internals/object-assign.js +5 -2
- package/internals/object-define-properties.js +3 -1
- package/internals/object-define-property.js +2 -0
- package/internals/object-get-own-property-descriptor.js +3 -2
- package/internals/object-get-own-property-names-external.js +4 -4
- package/internals/object-get-prototype-of.js +4 -3
- package/internals/object-is-extensible.js +16 -0
- package/internals/object-is-prototype-of.js +3 -0
- package/internals/object-iterator.js +2 -2
- package/internals/object-keys-internal.js +7 -4
- package/internals/object-set-prototype-of.js +4 -3
- package/internals/object-to-array.js +7 -3
- package/internals/ordinary-to-primitive.js +7 -3
- package/internals/own-keys.js +4 -1
- package/internals/redefine.js +2 -2
- package/internals/reflect-metadata.js +9 -3
- package/internals/regexp-exec-abstract.js +6 -2
- package/internals/regexp-exec.js +19 -14
- package/internals/require-object-coercible.js +4 -0
- package/internals/set-global.js +4 -2
- package/internals/set-to-string-tag.js +2 -2
- package/internals/shared.js +1 -1
- package/internals/string-multibyte.js +15 -7
- package/internals/string-pad.js +7 -4
- package/internals/string-punycode-to-ascii.js +26 -14
- package/internals/string-repeat.js +5 -2
- package/internals/string-trim.js +4 -2
- package/internals/task.js +11 -11
- package/internals/this-number-value.js +2 -4
- package/internals/to-absolute-index.js +2 -2
- package/internals/to-index.js +5 -2
- package/internals/to-integer-or-infinity.js +10 -0
- package/internals/to-length.js +2 -2
- package/internals/to-object.js +3 -0
- package/internals/to-offset.js +3 -0
- package/internals/to-positive-integer.js +5 -2
- package/internals/to-primitive.js +4 -1
- package/internals/to-property-key.js +1 -1
- package/internals/to-string.js +3 -0
- package/internals/try-to-string.js +4 -0
- package/internals/typed-array-constructor.js +18 -14
- package/internals/typed-array-from.js +6 -5
- package/internals/uid.js +4 -1
- package/internals/well-known-symbol.js +8 -4
- package/modules/es.aggregate-error.js +29 -12
- package/modules/es.array-buffer.slice.js +8 -4
- package/modules/es.array.at.js +4 -4
- package/modules/es.array.concat.js +4 -2
- package/modules/es.array.flat-map.js +2 -2
- package/modules/es.array.flat.js +4 -4
- package/modules/es.array.index-of.js +7 -5
- package/modules/es.array.join.js +3 -2
- package/modules/es.array.of.js +3 -1
- package/modules/es.array.reduce.js +2 -1
- package/modules/es.array.reverse.js +3 -2
- package/modules/es.array.slice.js +6 -4
- package/modules/es.array.sort.js +9 -6
- package/modules/es.array.splice.js +6 -4
- package/modules/es.date.get-year.js +3 -2
- package/modules/es.date.now.js +6 -1
- package/modules/es.date.set-year.js +8 -6
- package/modules/es.date.to-primitive.js +2 -1
- package/modules/es.date.to-string.js +5 -4
- package/modules/es.escape.js +12 -5
- package/modules/es.function.has-instance.js +3 -2
- package/modules/es.function.name.js +4 -2
- package/modules/es.json.stringify.js +18 -7
- package/modules/es.map.js +1 -1
- package/modules/es.number.constructor.js +25 -19
- package/modules/es.number.is-integer.js +2 -2
- package/modules/es.number.is-safe-integer.js +2 -2
- package/modules/es.number.to-fixed.js +21 -15
- package/modules/es.number.to-precision.js +6 -5
- package/modules/es.object.has-own.js +1 -1
- package/modules/es.object.is-extensible.js +4 -10
- package/modules/es.object.is-frozen.js +6 -2
- package/modules/es.object.is-sealed.js +6 -2
- package/modules/es.promise.all-settled.js +2 -2
- package/modules/es.promise.any.js +5 -4
- package/modules/es.promise.js +22 -18
- package/modules/es.reflect.apply.js +4 -10
- package/modules/es.reflect.construct.js +10 -5
- package/modules/es.reflect.get.js +2 -1
- package/modules/es.reflect.is-extensible.js +2 -4
- package/modules/es.reflect.set.js +2 -1
- package/modules/es.regexp.constructor.js +25 -16
- package/modules/es.regexp.dot-all.js +5 -1
- package/modules/es.regexp.flags.js +4 -2
- package/modules/es.regexp.sticky.js +5 -1
- package/modules/es.regexp.test.js +7 -3
- package/modules/es.regexp.to-string.js +8 -5
- package/modules/es.set.js +1 -1
- package/modules/es.string.at-alternative.js +7 -5
- package/modules/es.string.ends-with.js +7 -5
- package/modules/es.string.from-code-point.js +7 -4
- package/modules/es.string.includes.js +8 -2
- package/modules/es.string.match-all.js +25 -19
- package/modules/es.string.match.js +2 -1
- package/modules/es.string.raw.js +9 -8
- package/modules/es.string.replace-all.js +19 -13
- package/modules/es.string.replace.js +21 -14
- package/modules/es.string.search.js +2 -1
- package/modules/es.string.split.js +23 -16
- package/modules/es.string.starts-with.js +6 -4
- package/modules/es.string.substr.js +6 -5
- package/modules/es.symbol.description.js +22 -14
- package/modules/es.symbol.js +47 -33
- package/modules/es.typed-array.at.js +4 -4
- package/modules/es.typed-array.copy-within.js +4 -2
- package/modules/es.typed-array.fill.js +9 -2
- package/modules/es.typed-array.iterator.js +7 -6
- package/modules/es.typed-array.join.js +3 -3
- package/modules/es.typed-array.last-index-of.js +3 -2
- package/modules/es.typed-array.reduce-right.js +2 -1
- package/modules/es.typed-array.reduce.js +2 -1
- package/modules/es.typed-array.set.js +4 -2
- package/modules/es.typed-array.slice.js +2 -2
- package/modules/es.typed-array.sort.js +13 -28
- package/modules/es.typed-array.to-locale-string.js +7 -2
- package/modules/es.typed-array.to-string.js +3 -2
- package/modules/es.unescape.js +14 -9
- package/modules/es.weak-map.js +15 -15
- package/modules/esnext.array.is-template-object.js +1 -1
- package/modules/esnext.array.last-index.js +2 -2
- package/modules/esnext.array.last-item.js +3 -3
- package/modules/esnext.async-iterator.as-indexed-pairs.js +2 -1
- package/modules/esnext.async-iterator.constructor.js +4 -4
- package/modules/esnext.async-iterator.drop.js +2 -1
- package/modules/esnext.async-iterator.filter.js +2 -1
- package/modules/esnext.async-iterator.flat-map.js +3 -2
- package/modules/esnext.async-iterator.from.js +4 -4
- package/modules/esnext.async-iterator.map.js +2 -1
- package/modules/esnext.async-iterator.reduce.js +4 -1
- package/modules/esnext.async-iterator.take.js +4 -2
- package/modules/esnext.composite-key.js +5 -1
- package/modules/esnext.composite-symbol.js +3 -2
- package/modules/esnext.iterator.as-indexed-pairs.js +2 -1
- package/modules/esnext.iterator.constructor.js +4 -4
- package/modules/esnext.iterator.drop.js +4 -2
- package/modules/esnext.iterator.filter.js +2 -1
- package/modules/esnext.iterator.flat-map.js +7 -3
- package/modules/esnext.iterator.from.js +4 -4
- package/modules/esnext.iterator.map.js +2 -1
- package/modules/esnext.iterator.reduce.js +3 -0
- package/modules/esnext.iterator.take.js +2 -1
- package/modules/esnext.map.delete-all.js +2 -4
- package/modules/esnext.map.emplace.js +2 -2
- package/modules/esnext.map.every.js +1 -1
- package/modules/esnext.map.filter.js +5 -4
- package/modules/esnext.map.find-key.js +1 -1
- package/modules/esnext.map.find.js +1 -1
- package/modules/esnext.map.group-by.js +6 -2
- package/modules/esnext.map.includes.js +1 -1
- package/modules/esnext.map.key-by.js +2 -1
- package/modules/esnext.map.map-keys.js +5 -4
- package/modules/esnext.map.map-values.js +5 -4
- package/modules/esnext.map.reduce.js +3 -0
- package/modules/esnext.map.some.js +1 -1
- package/modules/esnext.map.update-or-insert.js +2 -2
- package/modules/esnext.map.update.js +11 -4
- package/modules/esnext.map.upsert.js +2 -2
- package/modules/esnext.math.seeded-prng.js +3 -1
- package/modules/esnext.number.from-string.js +14 -5
- package/modules/esnext.observable.js +14 -9
- package/modules/esnext.reflect.get-metadata-keys.js +5 -10
- package/modules/esnext.set.add-all.js +2 -4
- package/modules/esnext.set.delete-all.js +2 -4
- package/modules/esnext.set.difference.js +3 -2
- package/modules/esnext.set.every.js +1 -1
- package/modules/esnext.set.filter.js +4 -3
- package/modules/esnext.set.find.js +1 -1
- package/modules/esnext.set.intersection.js +3 -2
- package/modules/esnext.set.is-disjoint-from.js +3 -2
- package/modules/esnext.set.is-subset-of.js +3 -2
- package/modules/esnext.set.is-superset-of.js +3 -2
- package/modules/esnext.set.join.js +9 -4
- package/modules/esnext.set.map.js +5 -4
- package/modules/esnext.set.reduce.js +3 -0
- package/modules/esnext.set.some.js +1 -1
- package/modules/esnext.set.symmetric-difference.js +3 -2
- package/modules/esnext.typed-array.from-async.js +9 -3
- package/modules/esnext.typed-array.unique-by.js +4 -2
- package/modules/esnext.weak-map.delete-all.js +2 -4
- package/modules/esnext.weak-map.emplace.js +2 -2
- package/modules/esnext.weak-map.upsert.js +2 -2
- package/modules/esnext.weak-set.add-all.js +2 -4
- package/modules/esnext.weak-set.delete-all.js +2 -4
- package/modules/web.timers.js +5 -4
- package/modules/web.url-search-params.js +63 -54
- package/modules/web.url.js +110 -96
- package/modules/web.url.to-json.js +2 -1
- package/package.json +2 -2
- package/stable/instance/entries.js +6 -4
- package/stable/instance/for-each.js +6 -4
- package/stable/instance/keys.js +6 -4
- package/stable/instance/values.js +6 -4
- package/internals/has.js +0 -7
- package/internals/is-integer.js +0 -9
- package/internals/to-integer.js +0 -8
|
@@ -1,13 +1,16 @@
|
|
|
1
1
|
var $ = require('../internals/export');
|
|
2
2
|
var getBuiltIn = require('../internals/get-built-in');
|
|
3
|
+
var apply = require('../internals/function-apply');
|
|
4
|
+
var bind = require('../internals/function-bind');
|
|
3
5
|
var aConstructor = require('../internals/a-constructor');
|
|
4
6
|
var anObject = require('../internals/an-object');
|
|
5
7
|
var isObject = require('../internals/is-object');
|
|
6
8
|
var create = require('../internals/object-create');
|
|
7
|
-
var bind = require('../internals/function-bind');
|
|
8
9
|
var fails = require('../internals/fails');
|
|
9
10
|
|
|
10
11
|
var nativeConstruct = getBuiltIn('Reflect', 'construct');
|
|
12
|
+
var ObjectPrototype = Object.prototype;
|
|
13
|
+
var push = [].push;
|
|
11
14
|
|
|
12
15
|
// `Reflect.construct` method
|
|
13
16
|
// https://tc39.es/ecma262/#sec-reflect.construct
|
|
@@ -17,9 +20,11 @@ var NEW_TARGET_BUG = fails(function () {
|
|
|
17
20
|
function F() { /* empty */ }
|
|
18
21
|
return !(nativeConstruct(function () { /* empty */ }, [], F) instanceof F);
|
|
19
22
|
});
|
|
23
|
+
|
|
20
24
|
var ARGS_BUG = !fails(function () {
|
|
21
25
|
nativeConstruct(function () { /* empty */ });
|
|
22
26
|
});
|
|
27
|
+
|
|
23
28
|
var FORCED = NEW_TARGET_BUG || ARGS_BUG;
|
|
24
29
|
|
|
25
30
|
$({ target: 'Reflect', stat: true, forced: FORCED, sham: FORCED }, {
|
|
@@ -39,13 +44,13 @@ $({ target: 'Reflect', stat: true, forced: FORCED, sham: FORCED }, {
|
|
|
39
44
|
}
|
|
40
45
|
// w/o altered newTarget, lot of arguments case
|
|
41
46
|
var $args = [null];
|
|
42
|
-
|
|
43
|
-
return new (
|
|
47
|
+
apply(push, $args, args);
|
|
48
|
+
return new (apply(bind, Target, $args))();
|
|
44
49
|
}
|
|
45
50
|
// with altered newTarget, not support built-in constructors
|
|
46
51
|
var proto = newTarget.prototype;
|
|
47
|
-
var instance = create(isObject(proto) ? proto :
|
|
48
|
-
var result =
|
|
52
|
+
var instance = create(isObject(proto) ? proto : ObjectPrototype);
|
|
53
|
+
var result = apply(Target, instance, args);
|
|
49
54
|
return isObject(result) ? result : instance;
|
|
50
55
|
}
|
|
51
56
|
});
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
var $ = require('../internals/export');
|
|
2
|
+
var call = require('../internals/function-call');
|
|
2
3
|
var isObject = require('../internals/is-object');
|
|
3
4
|
var anObject = require('../internals/an-object');
|
|
4
5
|
var isDataDescriptor = require('../internals/is-data-descriptor');
|
|
@@ -14,7 +15,7 @@ function get(target, propertyKey /* , receiver */) {
|
|
|
14
15
|
descriptor = getOwnPropertyDescriptorModule.f(target, propertyKey);
|
|
15
16
|
if (descriptor) return isDataDescriptor(descriptor)
|
|
16
17
|
? descriptor.value
|
|
17
|
-
: descriptor.get === undefined ? undefined : descriptor.get
|
|
18
|
+
: descriptor.get === undefined ? undefined : call(descriptor.get, receiver);
|
|
18
19
|
if (isObject(prototype = getPrototypeOf(target))) return get(prototype, propertyKey, receiver);
|
|
19
20
|
}
|
|
20
21
|
|
|
@@ -1,14 +1,12 @@
|
|
|
1
1
|
var $ = require('../internals/export');
|
|
2
2
|
var anObject = require('../internals/an-object');
|
|
3
|
-
|
|
4
|
-
// eslint-disable-next-line es/no-object-isextensible -- safe
|
|
5
|
-
var objectIsExtensible = Object.isExtensible;
|
|
3
|
+
var $isExtensible = require('../internals/object-is-extensible');
|
|
6
4
|
|
|
7
5
|
// `Reflect.isExtensible` method
|
|
8
6
|
// https://tc39.es/ecma262/#sec-reflect.isextensible
|
|
9
7
|
$({ target: 'Reflect', stat: true }, {
|
|
10
8
|
isExtensible: function isExtensible(target) {
|
|
11
9
|
anObject(target);
|
|
12
|
-
return
|
|
10
|
+
return $isExtensible(target);
|
|
13
11
|
}
|
|
14
12
|
});
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
var $ = require('../internals/export');
|
|
2
|
+
var call = require('../internals/function-call');
|
|
2
3
|
var anObject = require('../internals/an-object');
|
|
3
4
|
var isObject = require('../internals/is-object');
|
|
4
5
|
var isDataDescriptor = require('../internals/is-data-descriptor');
|
|
@@ -30,7 +31,7 @@ function set(target, propertyKey, V /* , receiver */) {
|
|
|
30
31
|
} else {
|
|
31
32
|
setter = ownDescriptor.set;
|
|
32
33
|
if (setter === undefined) return false;
|
|
33
|
-
|
|
34
|
+
call(setter, receiver, V);
|
|
34
35
|
} return true;
|
|
35
36
|
}
|
|
36
37
|
|
|
@@ -1,17 +1,19 @@
|
|
|
1
1
|
var DESCRIPTORS = require('../internals/descriptors');
|
|
2
2
|
var global = require('../internals/global');
|
|
3
|
+
var uncurryThis = require('../internals/function-uncurry-this');
|
|
3
4
|
var isForced = require('../internals/is-forced');
|
|
4
5
|
var inheritIfRequired = require('../internals/inherit-if-required');
|
|
5
6
|
var createNonEnumerableProperty = require('../internals/create-non-enumerable-property');
|
|
6
7
|
var defineProperty = require('../internals/object-define-property').f;
|
|
7
8
|
var getOwnPropertyNames = require('../internals/object-get-own-property-names').f;
|
|
9
|
+
var isPrototypeOf = require('../internals/object-is-prototype-of');
|
|
8
10
|
var isRegExp = require('../internals/is-regexp');
|
|
9
11
|
var toString = require('../internals/to-string');
|
|
10
|
-
var
|
|
12
|
+
var regExpFlags = require('../internals/regexp-flags');
|
|
11
13
|
var stickyHelpers = require('../internals/regexp-sticky-helpers');
|
|
12
14
|
var redefine = require('../internals/redefine');
|
|
13
15
|
var fails = require('../internals/fails');
|
|
14
|
-
var
|
|
16
|
+
var hasOwn = require('../internals/has-own-property');
|
|
15
17
|
var enforceInternalState = require('../internals/internal-state').enforce;
|
|
16
18
|
var setSpecies = require('../internals/set-species');
|
|
17
19
|
var wellKnownSymbol = require('../internals/well-known-symbol');
|
|
@@ -21,6 +23,13 @@ var UNSUPPORTED_NCG = require('../internals/regexp-unsupported-ncg');
|
|
|
21
23
|
var MATCH = wellKnownSymbol('match');
|
|
22
24
|
var NativeRegExp = global.RegExp;
|
|
23
25
|
var RegExpPrototype = NativeRegExp.prototype;
|
|
26
|
+
var SyntaxError = global.SyntaxError;
|
|
27
|
+
var getFlags = uncurryThis(regExpFlags);
|
|
28
|
+
var exec = uncurryThis(RegExpPrototype.exec);
|
|
29
|
+
var charAt = uncurryThis(''.charAt);
|
|
30
|
+
var replace = uncurryThis(''.replace);
|
|
31
|
+
var stringIndexOf = uncurryThis(''.indexOf);
|
|
32
|
+
var stringSlice = uncurryThis(''.slice);
|
|
24
33
|
// TODO: Use only propper RegExpIdentifierName
|
|
25
34
|
var IS_NCG = /^\?<[^\s\d!#%&*+<=>@^][^\s!#%&*+<=>@^]*>/;
|
|
26
35
|
var re1 = /a/g;
|
|
@@ -45,9 +54,9 @@ var handleDotAll = function (string) {
|
|
|
45
54
|
var brackets = false;
|
|
46
55
|
var chr;
|
|
47
56
|
for (; index <= length; index++) {
|
|
48
|
-
chr =
|
|
57
|
+
chr = charAt(string, index);
|
|
49
58
|
if (chr === '\\') {
|
|
50
|
-
result += chr +
|
|
59
|
+
result += chr + charAt(string, ++index);
|
|
51
60
|
continue;
|
|
52
61
|
}
|
|
53
62
|
if (!brackets && chr === '.') {
|
|
@@ -74,9 +83,9 @@ var handleNCG = function (string) {
|
|
|
74
83
|
var groupname = '';
|
|
75
84
|
var chr;
|
|
76
85
|
for (; index <= length; index++) {
|
|
77
|
-
chr =
|
|
86
|
+
chr = charAt(string, index);
|
|
78
87
|
if (chr === '\\') {
|
|
79
|
-
chr = chr +
|
|
88
|
+
chr = chr + charAt(string, ++index);
|
|
80
89
|
} else if (chr === ']') {
|
|
81
90
|
brackets = false;
|
|
82
91
|
} else if (!brackets) switch (true) {
|
|
@@ -84,7 +93,7 @@ var handleNCG = function (string) {
|
|
|
84
93
|
brackets = true;
|
|
85
94
|
break;
|
|
86
95
|
case chr === '(':
|
|
87
|
-
if (IS_NCG
|
|
96
|
+
if (exec(IS_NCG, stringSlice(string, index + 1))) {
|
|
88
97
|
index += 2;
|
|
89
98
|
ncg = true;
|
|
90
99
|
}
|
|
@@ -92,11 +101,11 @@ var handleNCG = function (string) {
|
|
|
92
101
|
groupid++;
|
|
93
102
|
continue;
|
|
94
103
|
case chr === '>' && ncg:
|
|
95
|
-
if (groupname === '' ||
|
|
104
|
+
if (groupname === '' || hasOwn(names, groupname)) {
|
|
96
105
|
throw new SyntaxError('Invalid capture group name');
|
|
97
106
|
}
|
|
98
107
|
names[groupname] = true;
|
|
99
|
-
named.
|
|
108
|
+
named[named.length] = [groupname, groupid];
|
|
100
109
|
ncg = false;
|
|
101
110
|
groupname = '';
|
|
102
111
|
continue;
|
|
@@ -110,7 +119,7 @@ var handleNCG = function (string) {
|
|
|
110
119
|
// https://tc39.es/ecma262/#sec-regexp-constructor
|
|
111
120
|
if (isForced('RegExp', BASE_FORCED)) {
|
|
112
121
|
var RegExpWrapper = function RegExp(pattern, flags) {
|
|
113
|
-
var thisIsRegExp = this
|
|
122
|
+
var thisIsRegExp = isPrototypeOf(RegExpPrototype, this);
|
|
114
123
|
var patternIsRegExp = isRegExp(pattern);
|
|
115
124
|
var flagsAreUndefined = flags === undefined;
|
|
116
125
|
var groups = [];
|
|
@@ -121,9 +130,9 @@ if (isForced('RegExp', BASE_FORCED)) {
|
|
|
121
130
|
return pattern;
|
|
122
131
|
}
|
|
123
132
|
|
|
124
|
-
if (patternIsRegExp || pattern
|
|
133
|
+
if (patternIsRegExp || isPrototypeOf(RegExpPrototype, pattern)) {
|
|
125
134
|
pattern = pattern.source;
|
|
126
|
-
if (flagsAreUndefined) flags = 'flags' in rawPattern ? rawPattern.flags : getFlags
|
|
135
|
+
if (flagsAreUndefined) flags = 'flags' in rawPattern ? rawPattern.flags : getFlags(rawPattern);
|
|
127
136
|
}
|
|
128
137
|
|
|
129
138
|
pattern = pattern === undefined ? '' : toString(pattern);
|
|
@@ -131,15 +140,15 @@ if (isForced('RegExp', BASE_FORCED)) {
|
|
|
131
140
|
rawPattern = pattern;
|
|
132
141
|
|
|
133
142
|
if (UNSUPPORTED_DOT_ALL && 'dotAll' in re1) {
|
|
134
|
-
dotAll = !!flags && flags
|
|
135
|
-
if (dotAll) flags =
|
|
143
|
+
dotAll = !!flags && stringIndexOf(flags, 's') > -1;
|
|
144
|
+
if (dotAll) flags = replace(flags, /s/g, '');
|
|
136
145
|
}
|
|
137
146
|
|
|
138
147
|
rawFlags = flags;
|
|
139
148
|
|
|
140
149
|
if (UNSUPPORTED_Y && 'sticky' in re1) {
|
|
141
|
-
sticky = !!flags && flags
|
|
142
|
-
if (sticky) flags =
|
|
150
|
+
sticky = !!flags && stringIndexOf(flags, 'y') > -1;
|
|
151
|
+
if (sticky) flags = replace(flags, /y/g, '');
|
|
143
152
|
}
|
|
144
153
|
|
|
145
154
|
if (UNSUPPORTED_NCG) {
|
|
@@ -1,8 +1,12 @@
|
|
|
1
|
+
var global = require('../internals/global');
|
|
1
2
|
var DESCRIPTORS = require('../internals/descriptors');
|
|
2
3
|
var UNSUPPORTED_DOT_ALL = require('../internals/regexp-unsupported-dot-all');
|
|
4
|
+
var classof = require('../internals/classof-raw');
|
|
3
5
|
var defineProperty = require('../internals/object-define-property').f;
|
|
4
6
|
var getInternalState = require('../internals/internal-state').get;
|
|
7
|
+
|
|
5
8
|
var RegExpPrototype = RegExp.prototype;
|
|
9
|
+
var TypeError = global.TypeError;
|
|
6
10
|
|
|
7
11
|
// `RegExp.prototype.dotAll` getter
|
|
8
12
|
// https://tc39.es/ecma262/#sec-get-regexp.prototype.dotall
|
|
@@ -13,7 +17,7 @@ if (DESCRIPTORS && UNSUPPORTED_DOT_ALL) {
|
|
|
13
17
|
if (this === RegExpPrototype) return undefined;
|
|
14
18
|
// We can't use InternalStateModule.getterFor because
|
|
15
19
|
// we don't add metadata for regexps created by a literal.
|
|
16
|
-
if (this
|
|
20
|
+
if (classof(this) === 'RegExp') {
|
|
17
21
|
return !!getInternalState(this).dotAll;
|
|
18
22
|
}
|
|
19
23
|
throw TypeError('Incompatible receiver, RegExp required');
|
|
@@ -3,14 +3,16 @@ var objectDefinePropertyModule = require('../internals/object-define-property');
|
|
|
3
3
|
var regExpFlags = require('../internals/regexp-flags');
|
|
4
4
|
var fails = require('../internals/fails');
|
|
5
5
|
|
|
6
|
+
var RegExpPrototype = RegExp.prototype;
|
|
7
|
+
|
|
6
8
|
var FORCED = DESCRIPTORS && fails(function () {
|
|
7
9
|
// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe
|
|
8
|
-
return Object.getOwnPropertyDescriptor(
|
|
10
|
+
return Object.getOwnPropertyDescriptor(RegExpPrototype, 'flags').get.call({ dotAll: true, sticky: true }) !== 'sy';
|
|
9
11
|
});
|
|
10
12
|
|
|
11
13
|
// `RegExp.prototype.flags` getter
|
|
12
14
|
// https://tc39.es/ecma262/#sec-get-regexp.prototype.flags
|
|
13
|
-
if (FORCED) objectDefinePropertyModule.f(
|
|
15
|
+
if (FORCED) objectDefinePropertyModule.f(RegExpPrototype, 'flags', {
|
|
14
16
|
configurable: true,
|
|
15
17
|
get: regExpFlags
|
|
16
18
|
});
|
|
@@ -1,8 +1,12 @@
|
|
|
1
|
+
var global = require('../internals/global');
|
|
1
2
|
var DESCRIPTORS = require('../internals/descriptors');
|
|
2
3
|
var UNSUPPORTED_Y = require('../internals/regexp-sticky-helpers').UNSUPPORTED_Y;
|
|
4
|
+
var classof = require('../internals/classof-raw');
|
|
3
5
|
var defineProperty = require('../internals/object-define-property').f;
|
|
4
6
|
var getInternalState = require('../internals/internal-state').get;
|
|
7
|
+
|
|
5
8
|
var RegExpPrototype = RegExp.prototype;
|
|
9
|
+
var TypeError = global.TypeError;
|
|
6
10
|
|
|
7
11
|
// `RegExp.prototype.sticky` getter
|
|
8
12
|
// https://tc39.es/ecma262/#sec-get-regexp.prototype.sticky
|
|
@@ -13,7 +17,7 @@ if (DESCRIPTORS && UNSUPPORTED_Y) {
|
|
|
13
17
|
if (this === RegExpPrototype) return undefined;
|
|
14
18
|
// We can't use InternalStateModule.getterFor because
|
|
15
19
|
// we don't add metadata for regexps created by a literal.
|
|
16
|
-
if (this
|
|
20
|
+
if (classof(this) === 'RegExp') {
|
|
17
21
|
return !!getInternalState(this).sticky;
|
|
18
22
|
}
|
|
19
23
|
throw TypeError('Incompatible receiver, RegExp required');
|
|
@@ -2,6 +2,9 @@
|
|
|
2
2
|
// TODO: Remove from `core-js@4` since it's moved to entry points
|
|
3
3
|
require('../modules/es.regexp.exec');
|
|
4
4
|
var $ = require('../internals/export');
|
|
5
|
+
var global = require('../internals/global');
|
|
6
|
+
var call = require('../internals/function-call');
|
|
7
|
+
var uncurryThis = require('../internals/function-uncurry-this');
|
|
5
8
|
var isCallable = require('../internals/is-callable');
|
|
6
9
|
var isObject = require('../internals/is-object');
|
|
7
10
|
|
|
@@ -15,15 +18,16 @@ var DELEGATES_TO_EXEC = function () {
|
|
|
15
18
|
return re.test('abc') === true && execCalled;
|
|
16
19
|
}();
|
|
17
20
|
|
|
18
|
-
var
|
|
21
|
+
var Error = global.Error;
|
|
22
|
+
var un$Test = uncurryThis(/./.test);
|
|
19
23
|
|
|
20
24
|
// `RegExp.prototype.test` method
|
|
21
25
|
// https://tc39.es/ecma262/#sec-regexp.prototype.test
|
|
22
26
|
$({ target: 'RegExp', proto: true, forced: !DELEGATES_TO_EXEC }, {
|
|
23
27
|
test: function (str) {
|
|
24
28
|
var exec = this.exec;
|
|
25
|
-
if (!isCallable(exec)) return
|
|
26
|
-
var result =
|
|
29
|
+
if (!isCallable(exec)) return un$Test(this, str);
|
|
30
|
+
var result = call(exec, this, str);
|
|
27
31
|
if (result !== null && !isObject(result)) {
|
|
28
32
|
throw new Error('RegExp exec method returned something other than an Object or null');
|
|
29
33
|
}
|
|
@@ -1,18 +1,21 @@
|
|
|
1
1
|
'use strict';
|
|
2
|
+
var uncurryThis = require('../internals/function-uncurry-this');
|
|
2
3
|
var PROPER_FUNCTION_NAME = require('../internals/function-name').PROPER;
|
|
3
4
|
var redefine = require('../internals/redefine');
|
|
4
5
|
var anObject = require('../internals/an-object');
|
|
6
|
+
var isPrototypeOf = require('../internals/object-is-prototype-of');
|
|
5
7
|
var $toString = require('../internals/to-string');
|
|
6
8
|
var fails = require('../internals/fails');
|
|
7
|
-
var
|
|
9
|
+
var regExpFlags = require('../internals/regexp-flags');
|
|
8
10
|
|
|
9
11
|
var TO_STRING = 'toString';
|
|
10
12
|
var RegExpPrototype = RegExp.prototype;
|
|
11
|
-
var
|
|
13
|
+
var n$ToString = RegExpPrototype[TO_STRING];
|
|
14
|
+
var getFlags = uncurryThis(regExpFlags);
|
|
12
15
|
|
|
13
|
-
var NOT_GENERIC = fails(function () { return
|
|
16
|
+
var NOT_GENERIC = fails(function () { return n$ToString.call({ source: 'a', flags: 'b' }) != '/a/b'; });
|
|
14
17
|
// FF44- RegExp#toString has a wrong name
|
|
15
|
-
var INCORRECT_NAME = PROPER_FUNCTION_NAME &&
|
|
18
|
+
var INCORRECT_NAME = PROPER_FUNCTION_NAME && n$ToString.name != TO_STRING;
|
|
16
19
|
|
|
17
20
|
// `RegExp.prototype.toString` method
|
|
18
21
|
// https://tc39.es/ecma262/#sec-regexp.prototype.tostring
|
|
@@ -21,7 +24,7 @@ if (NOT_GENERIC || INCORRECT_NAME) {
|
|
|
21
24
|
var R = anObject(this);
|
|
22
25
|
var p = $toString(R.source);
|
|
23
26
|
var rf = R.flags;
|
|
24
|
-
var f = $toString(rf === undefined && R
|
|
27
|
+
var f = $toString(rf === undefined && isPrototypeOf(RegExpPrototype, R) && !('flags' in RegExpPrototype) ? getFlags(R) : rf);
|
|
25
28
|
return '/' + p + '/' + f;
|
|
26
29
|
}, { unsafe: true });
|
|
27
30
|
}
|
package/modules/es.set.js
CHANGED
|
@@ -4,6 +4,6 @@ var collectionStrong = require('../internals/collection-strong');
|
|
|
4
4
|
|
|
5
5
|
// `Set` constructor
|
|
6
6
|
// https://tc39.es/ecma262/#sec-set-objects
|
|
7
|
-
|
|
7
|
+
collection('Set', function (init) {
|
|
8
8
|
return function Set() { return init(this, arguments.length ? arguments[0] : undefined); };
|
|
9
9
|
}, collectionStrong);
|
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
var $ = require('../internals/export');
|
|
3
|
+
var uncurryThis = require('../internals/function-uncurry-this');
|
|
3
4
|
var requireObjectCoercible = require('../internals/require-object-coercible');
|
|
4
|
-
var
|
|
5
|
-
var toLength = require('../internals/to-length');
|
|
5
|
+
var toIntegerOrInfinity = require('../internals/to-integer-or-infinity');
|
|
6
6
|
var toString = require('../internals/to-string');
|
|
7
7
|
var fails = require('../internals/fails');
|
|
8
8
|
|
|
9
|
+
var charAt = uncurryThis(''.charAt);
|
|
10
|
+
|
|
9
11
|
var FORCED = fails(function () {
|
|
10
12
|
return '𠮷'.at(0) !== '\uD842';
|
|
11
13
|
});
|
|
@@ -15,9 +17,9 @@ var FORCED = fails(function () {
|
|
|
15
17
|
$({ target: 'String', proto: true, forced: FORCED }, {
|
|
16
18
|
at: function at(index) {
|
|
17
19
|
var S = toString(requireObjectCoercible(this));
|
|
18
|
-
var len =
|
|
19
|
-
var relativeIndex =
|
|
20
|
+
var len = S.length;
|
|
21
|
+
var relativeIndex = toIntegerOrInfinity(index);
|
|
20
22
|
var k = relativeIndex >= 0 ? relativeIndex : len + relativeIndex;
|
|
21
|
-
return (k < 0 || k >= len) ? undefined :
|
|
23
|
+
return (k < 0 || k >= len) ? undefined : charAt(S, k);
|
|
22
24
|
}
|
|
23
25
|
});
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
var $ = require('../internals/export');
|
|
3
|
+
var uncurryThis = require('../internals/function-uncurry-this');
|
|
3
4
|
var getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;
|
|
4
5
|
var toLength = require('../internals/to-length');
|
|
5
6
|
var toString = require('../internals/to-string');
|
|
@@ -9,7 +10,8 @@ var correctIsRegExpLogic = require('../internals/correct-is-regexp-logic');
|
|
|
9
10
|
var IS_PURE = require('../internals/is-pure');
|
|
10
11
|
|
|
11
12
|
// eslint-disable-next-line es/no-string-prototype-endswith -- safe
|
|
12
|
-
var $
|
|
13
|
+
var un$EndsWith = uncurryThis(''.endsWith);
|
|
14
|
+
var slice = uncurryThis(''.slice);
|
|
13
15
|
var min = Math.min;
|
|
14
16
|
|
|
15
17
|
var CORRECT_IS_REGEXP_LOGIC = correctIsRegExpLogic('endsWith');
|
|
@@ -26,11 +28,11 @@ $({ target: 'String', proto: true, forced: !MDN_POLYFILL_BUG && !CORRECT_IS_REGE
|
|
|
26
28
|
var that = toString(requireObjectCoercible(this));
|
|
27
29
|
notARegExp(searchString);
|
|
28
30
|
var endPosition = arguments.length > 1 ? arguments[1] : undefined;
|
|
29
|
-
var len =
|
|
31
|
+
var len = that.length;
|
|
30
32
|
var end = endPosition === undefined ? len : min(toLength(endPosition), len);
|
|
31
33
|
var search = toString(searchString);
|
|
32
|
-
return $
|
|
33
|
-
? $
|
|
34
|
-
:
|
|
34
|
+
return un$EndsWith
|
|
35
|
+
? un$EndsWith(that, search, end)
|
|
36
|
+
: slice(that, end - search.length, end) === search;
|
|
35
37
|
}
|
|
36
38
|
});
|
|
@@ -1,9 +1,13 @@
|
|
|
1
1
|
var $ = require('../internals/export');
|
|
2
|
+
var global = require('../internals/global');
|
|
3
|
+
var uncurryThis = require('../internals/function-uncurry-this');
|
|
2
4
|
var toAbsoluteIndex = require('../internals/to-absolute-index');
|
|
3
5
|
|
|
6
|
+
var RangeError = global.RangeError;
|
|
4
7
|
var fromCharCode = String.fromCharCode;
|
|
5
8
|
// eslint-disable-next-line es/no-string-fromcodepoint -- required for testing
|
|
6
9
|
var $fromCodePoint = String.fromCodePoint;
|
|
10
|
+
var join = uncurryThis([].join);
|
|
7
11
|
|
|
8
12
|
// length should be 1, old FF problem
|
|
9
13
|
var INCORRECT_LENGTH = !!$fromCodePoint && $fromCodePoint.length != 1;
|
|
@@ -20,10 +24,9 @@ $({ target: 'String', stat: true, forced: INCORRECT_LENGTH }, {
|
|
|
20
24
|
while (length > i) {
|
|
21
25
|
code = +arguments[i++];
|
|
22
26
|
if (toAbsoluteIndex(code, 0x10FFFF) !== code) throw RangeError(code + ' is not a valid code point');
|
|
23
|
-
elements
|
|
27
|
+
elements[i] = code < 0x10000
|
|
24
28
|
? fromCharCode(code)
|
|
25
|
-
: fromCharCode(((code -= 0x10000) >> 10) + 0xD800, code % 0x400 + 0xDC00)
|
|
26
|
-
|
|
27
|
-
} return elements.join('');
|
|
29
|
+
: fromCharCode(((code -= 0x10000) >> 10) + 0xD800, code % 0x400 + 0xDC00);
|
|
30
|
+
} return join(elements, '');
|
|
28
31
|
}
|
|
29
32
|
});
|
|
@@ -1,15 +1,21 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
var $ = require('../internals/export');
|
|
3
|
+
var uncurryThis = require('../internals/function-uncurry-this');
|
|
3
4
|
var notARegExp = require('../internals/not-a-regexp');
|
|
4
5
|
var requireObjectCoercible = require('../internals/require-object-coercible');
|
|
5
6
|
var toString = require('../internals/to-string');
|
|
6
7
|
var correctIsRegExpLogic = require('../internals/correct-is-regexp-logic');
|
|
7
8
|
|
|
9
|
+
var stringIndexOf = uncurryThis(''.indexOf);
|
|
10
|
+
|
|
8
11
|
// `String.prototype.includes` method
|
|
9
12
|
// https://tc39.es/ecma262/#sec-string.prototype.includes
|
|
10
13
|
$({ target: 'String', proto: true, forced: !correctIsRegExpLogic('includes') }, {
|
|
11
14
|
includes: function includes(searchString /* , position = 0 */) {
|
|
12
|
-
return !!~
|
|
13
|
-
|
|
15
|
+
return !!~stringIndexOf(
|
|
16
|
+
toString(requireObjectCoercible(this)),
|
|
17
|
+
toString(notARegExp(searchString)),
|
|
18
|
+
arguments.length > 1 ? arguments[1] : undefined
|
|
19
|
+
);
|
|
14
20
|
}
|
|
15
21
|
});
|
|
@@ -1,14 +1,18 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
/* eslint-disable es/no-string-prototype-matchall -- safe */
|
|
3
3
|
var $ = require('../internals/export');
|
|
4
|
+
var global = require('../internals/global');
|
|
5
|
+
var call = require('../internals/function-call');
|
|
6
|
+
var uncurryThis = require('../internals/function-uncurry-this');
|
|
4
7
|
var createIteratorConstructor = require('../internals/create-iterator-constructor');
|
|
5
8
|
var requireObjectCoercible = require('../internals/require-object-coercible');
|
|
6
9
|
var toLength = require('../internals/to-length');
|
|
7
10
|
var toString = require('../internals/to-string');
|
|
8
11
|
var anObject = require('../internals/an-object');
|
|
9
12
|
var classof = require('../internals/classof-raw');
|
|
13
|
+
var isPrototypeOf = require('../internals/object-is-prototype-of');
|
|
10
14
|
var isRegExp = require('../internals/is-regexp');
|
|
11
|
-
var
|
|
15
|
+
var regExpFlags = require('../internals/regexp-flags');
|
|
12
16
|
var getMethod = require('../internals/get-method');
|
|
13
17
|
var redefine = require('../internals/redefine');
|
|
14
18
|
var fails = require('../internals/fails');
|
|
@@ -25,19 +29,21 @@ var REGEXP_STRING_ITERATOR = REGEXP_STRING + ' Iterator';
|
|
|
25
29
|
var setInternalState = InternalStateModule.set;
|
|
26
30
|
var getInternalState = InternalStateModule.getterFor(REGEXP_STRING_ITERATOR);
|
|
27
31
|
var RegExpPrototype = RegExp.prototype;
|
|
28
|
-
var
|
|
32
|
+
var TypeError = global.TypeError;
|
|
33
|
+
var getFlags = uncurryThis(regExpFlags);
|
|
34
|
+
var stringIndexOf = uncurryThis(''.indexOf);
|
|
35
|
+
var un$MatchAll = uncurryThis(''.matchAll);
|
|
29
36
|
|
|
30
|
-
var WORKS_WITH_NON_GLOBAL_REGEX = !!
|
|
31
|
-
'a'
|
|
37
|
+
var WORKS_WITH_NON_GLOBAL_REGEX = !!un$MatchAll && !fails(function () {
|
|
38
|
+
un$MatchAll('a', /./);
|
|
32
39
|
});
|
|
33
40
|
|
|
34
|
-
|
|
35
|
-
var $RegExpStringIterator = createIteratorConstructor(function RegExpStringIterator(regexp, string, global, fullUnicode) {
|
|
41
|
+
var $RegExpStringIterator = createIteratorConstructor(function RegExpStringIterator(regexp, string, $global, fullUnicode) {
|
|
36
42
|
setInternalState(this, {
|
|
37
43
|
type: REGEXP_STRING_ITERATOR,
|
|
38
44
|
regexp: regexp,
|
|
39
45
|
string: string,
|
|
40
|
-
global: global,
|
|
46
|
+
global: $global,
|
|
41
47
|
unicode: fullUnicode,
|
|
42
48
|
done: false
|
|
43
49
|
});
|
|
@@ -59,18 +65,18 @@ var $RegExpStringIterator = createIteratorConstructor(function RegExpStringItera
|
|
|
59
65
|
var $matchAll = function (string) {
|
|
60
66
|
var R = anObject(this);
|
|
61
67
|
var S = toString(string);
|
|
62
|
-
var C, flagsValue, flags, matcher, global, fullUnicode;
|
|
68
|
+
var C, flagsValue, flags, matcher, $global, fullUnicode;
|
|
63
69
|
C = speciesConstructor(R, RegExp);
|
|
64
70
|
flagsValue = R.flags;
|
|
65
|
-
if (flagsValue === undefined && R
|
|
66
|
-
flagsValue =
|
|
71
|
+
if (flagsValue === undefined && isPrototypeOf(RegExpPrototype, R) && !('flags' in RegExpPrototype)) {
|
|
72
|
+
flagsValue = getFlags(R);
|
|
67
73
|
}
|
|
68
74
|
flags = flagsValue === undefined ? '' : toString(flagsValue);
|
|
69
75
|
matcher = new C(C === RegExp ? R.source : R, flags);
|
|
70
|
-
global = !!~flags
|
|
71
|
-
fullUnicode = !!~flags
|
|
76
|
+
$global = !!~stringIndexOf(flags, 'g');
|
|
77
|
+
fullUnicode = !!~stringIndexOf(flags, 'u');
|
|
72
78
|
matcher.lastIndex = toLength(R.lastIndex);
|
|
73
|
-
return new $RegExpStringIterator(matcher, S, global, fullUnicode);
|
|
79
|
+
return new $RegExpStringIterator(matcher, S, $global, fullUnicode);
|
|
74
80
|
};
|
|
75
81
|
|
|
76
82
|
// `String.prototype.matchAll` method
|
|
@@ -83,18 +89,18 @@ $({ target: 'String', proto: true, forced: WORKS_WITH_NON_GLOBAL_REGEX }, {
|
|
|
83
89
|
if (isRegExp(regexp)) {
|
|
84
90
|
flags = toString(requireObjectCoercible('flags' in RegExpPrototype
|
|
85
91
|
? regexp.flags
|
|
86
|
-
:
|
|
92
|
+
: getFlags(regexp)
|
|
87
93
|
));
|
|
88
|
-
if (!~flags
|
|
94
|
+
if (!~stringIndexOf(flags, 'g')) throw TypeError('`.matchAll` does not allow non-global regexes');
|
|
89
95
|
}
|
|
90
|
-
if (WORKS_WITH_NON_GLOBAL_REGEX) return
|
|
96
|
+
if (WORKS_WITH_NON_GLOBAL_REGEX) return un$MatchAll(O, regexp);
|
|
91
97
|
matcher = getMethod(regexp, MATCH_ALL);
|
|
92
98
|
if (matcher === undefined && IS_PURE && classof(regexp) == 'RegExp') matcher = $matchAll;
|
|
93
|
-
if (matcher) return
|
|
94
|
-
} else if (WORKS_WITH_NON_GLOBAL_REGEX) return
|
|
99
|
+
if (matcher) return call(matcher, regexp, O);
|
|
100
|
+
} else if (WORKS_WITH_NON_GLOBAL_REGEX) return un$MatchAll(O, regexp);
|
|
95
101
|
S = toString(O);
|
|
96
102
|
rx = new RegExp(regexp, 'g');
|
|
97
|
-
return IS_PURE ? $matchAll
|
|
103
|
+
return IS_PURE ? call($matchAll, rx, S) : rx[MATCH_ALL](S);
|
|
98
104
|
}
|
|
99
105
|
});
|
|
100
106
|
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
'use strict';
|
|
2
|
+
var call = require('../internals/function-call');
|
|
2
3
|
var fixRegExpWellKnownSymbolLogic = require('../internals/fix-regexp-well-known-symbol-logic');
|
|
3
4
|
var anObject = require('../internals/an-object');
|
|
4
5
|
var toLength = require('../internals/to-length');
|
|
@@ -16,7 +17,7 @@ fixRegExpWellKnownSymbolLogic('match', function (MATCH, nativeMatch, maybeCallNa
|
|
|
16
17
|
function match(regexp) {
|
|
17
18
|
var O = requireObjectCoercible(this);
|
|
18
19
|
var matcher = regexp == undefined ? undefined : getMethod(regexp, MATCH);
|
|
19
|
-
return matcher ?
|
|
20
|
+
return matcher ? call(matcher, regexp, O) : new RegExp(regexp)[MATCH](toString(O));
|
|
20
21
|
},
|
|
21
22
|
// `RegExp.prototype[@@match]` method
|
|
22
23
|
// https://tc39.es/ecma262/#sec-regexp.prototype-@@match
|
package/modules/es.string.raw.js
CHANGED
|
@@ -1,25 +1,26 @@
|
|
|
1
1
|
var $ = require('../internals/export');
|
|
2
|
+
var uncurryThis = require('../internals/function-uncurry-this');
|
|
2
3
|
var toIndexedObject = require('../internals/to-indexed-object');
|
|
3
4
|
var toObject = require('../internals/to-object');
|
|
4
|
-
var toLength = require('../internals/to-length');
|
|
5
5
|
var toString = require('../internals/to-string');
|
|
6
|
+
var lengthOfArrayLike = require('../internals/length-of-array-like');
|
|
6
7
|
|
|
7
|
-
var
|
|
8
|
-
var
|
|
9
|
-
var join = ArrayPrototype.join;
|
|
8
|
+
var push = uncurryThis([].push);
|
|
9
|
+
var join = uncurryThis([].join);
|
|
10
10
|
|
|
11
11
|
// `String.raw` method
|
|
12
12
|
// https://tc39.es/ecma262/#sec-string.raw
|
|
13
13
|
$({ target: 'String', stat: true }, {
|
|
14
14
|
raw: function raw(template) {
|
|
15
15
|
var rawTemplate = toIndexedObject(toObject(template).raw);
|
|
16
|
-
var literalSegments =
|
|
16
|
+
var literalSegments = lengthOfArrayLike(rawTemplate);
|
|
17
17
|
var argumentsLength = arguments.length;
|
|
18
18
|
var elements = [];
|
|
19
19
|
var i = 0;
|
|
20
20
|
while (literalSegments > i) {
|
|
21
|
-
push
|
|
22
|
-
if (i
|
|
23
|
-
|
|
21
|
+
push(elements, toString(rawTemplate[i++]));
|
|
22
|
+
if (i === literalSegments) return join(elements, '');
|
|
23
|
+
if (i < argumentsLength) push(elements, toString(arguments[i]));
|
|
24
|
+
}
|
|
24
25
|
}
|
|
25
26
|
});
|