core-js-pure 3.18.2 → 3.19.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/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/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-from-async.js +1 -1
- package/internals/array-from.js +6 -2
- package/internals/array-group-by.js +6 -3
- package/internals/array-iteration-from-last.js +1 -1
- package/internals/array-iteration.js +5 -4
- package/internals/array-last-index-of.js +2 -1
- package/internals/array-reduce.js +3 -0
- package/internals/array-slice-simple.js +17 -0
- 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 +13 -9
- 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 +10 -6
- package/internals/collection.js +5 -3
- package/internals/composite-key.js +9 -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/engine-v8-version.js +10 -4
- package/internals/error-stack-installable.js +10 -0
- package/internals/export.js +6 -4
- package/internals/flatten-into-array.js +4 -1
- 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-uncurry-this.js +12 -0
- package/internals/get-async-iterator.js +2 -1
- package/internals/get-iterator.js +7 -2
- package/internals/get-substitution.js +10 -7
- package/internals/has-own-property.js +3 -2
- package/internals/host-report-errors.js +1 -1
- package/internals/ieee754.js +24 -6
- 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 +4 -7
- package/internals/internal-state.js +9 -7
- package/internals/is-callable.js +1 -1
- package/internals/is-constructor.js +6 -4
- 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 +14 -6
- package/internals/iterator-close.js +2 -1
- package/internals/iterator-create-proxy.js +4 -3
- 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 +2 -1
- package/internals/object-get-own-property-names-external.js +4 -4
- package/internals/object-get-prototype-of.js +2 -1
- package/internals/object-is-extensible.js +16 -0
- package/internals/object-is-prototype-of.js +3 -0
- package/internals/object-keys-internal.js +5 -2
- 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/reflect-metadata.js +9 -3
- package/internals/regexp-exec-abstract.js +6 -2
- package/internals/require-object-coercible.js +4 -0
- package/internals/set-global.js +4 -2
- package/internals/shared.js +1 -1
- package/internals/string-multibyte.js +13 -4
- package/internals/string-pad.js +6 -3
- package/internals/string-punycode-to-ascii.js +34 -20
- package/internals/string-repeat.js +3 -0
- package/internals/string-trim.js +4 -2
- package/internals/task.js +11 -11
- package/internals/this-number-value.js +2 -4
- package/internals/to-index.js +3 -0
- package/internals/to-object.js +3 -0
- package/internals/to-positive-integer.js +3 -0
- 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/uid.js +4 -1
- package/internals/well-known-symbol.js +5 -1
- package/modules/es.aggregate-error.js +27 -11
- package/modules/es.array.concat.js +2 -0
- 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 +4 -2
- package/modules/es.array.sort.js +7 -4
- package/modules/es.array.splice.js +2 -0
- package/modules/es.date.get-year.js +3 -2
- package/modules/es.date.now.js +6 -1
- package/modules/es.date.set-year.js +6 -4
- package/modules/es.date.to-json.js +3 -2
- package/modules/es.escape.js +12 -5
- package/modules/es.function.has-instance.js +3 -2
- package/modules/es.json.stringify.js +18 -7
- package/modules/es.map.js +1 -1
- package/modules/es.number.to-fixed.js +19 -13
- package/modules/es.number.to-precision.js +6 -5
- 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.set.js +1 -1
- package/modules/es.string.at-alternative.js +4 -1
- package/modules/es.string.ends-with.js +6 -4
- 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.raw.js +6 -6
- package/modules/es.string.replace-all.js +19 -13
- package/modules/es.string.starts-with.js +6 -4
- package/modules/es.string.substr.js +3 -2
- package/modules/es.symbol.js +34 -21
- 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.async-iterator.as-indexed-pairs.js +2 -1
- package/modules/esnext.async-iterator.constructor.js +1 -1
- 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 +1 -1
- 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 +12 -3
- 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.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 +122 -104
- package/modules/web.url.js +664 -628
- 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
|
@@ -1,25 +1,19 @@
|
|
|
1
1
|
var $ = require('../internals/export');
|
|
2
|
-
var
|
|
2
|
+
var functionApply = require('../internals/function-apply');
|
|
3
3
|
var aCallable = require('../internals/a-callable');
|
|
4
4
|
var anObject = require('../internals/an-object');
|
|
5
5
|
var fails = require('../internals/fails');
|
|
6
6
|
|
|
7
|
-
var nativeApply = getBuiltIn('Reflect', 'apply');
|
|
8
|
-
var functionApply = Function.apply;
|
|
9
|
-
|
|
10
7
|
// MS Edge argumentsList argument is optional
|
|
11
8
|
var OPTIONAL_ARGUMENTS_LIST = !fails(function () {
|
|
12
|
-
|
|
9
|
+
// eslint-disable-next-line es/no-reflect -- required for testing
|
|
10
|
+
Reflect.apply(function () { /* empty */ });
|
|
13
11
|
});
|
|
14
12
|
|
|
15
13
|
// `Reflect.apply` method
|
|
16
14
|
// https://tc39.es/ecma262/#sec-reflect.apply
|
|
17
15
|
$({ target: 'Reflect', stat: true, forced: OPTIONAL_ARGUMENTS_LIST }, {
|
|
18
16
|
apply: function apply(target, thisArgument, argumentsList) {
|
|
19
|
-
aCallable(target);
|
|
20
|
-
anObject(argumentsList);
|
|
21
|
-
return nativeApply
|
|
22
|
-
? nativeApply(target, thisArgument, argumentsList)
|
|
23
|
-
: functionApply.call(target, thisArgument, argumentsList);
|
|
17
|
+
return functionApply(aCallable(target), thisArgument, anObject(argumentsList));
|
|
24
18
|
}
|
|
25
19
|
});
|
|
@@ -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
|
|
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,10 +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
5
|
var toIntegerOrInfinity = require('../internals/to-integer-or-infinity');
|
|
5
6
|
var toString = require('../internals/to-string');
|
|
6
7
|
var fails = require('../internals/fails');
|
|
7
8
|
|
|
9
|
+
var charAt = uncurryThis(''.charAt);
|
|
10
|
+
|
|
8
11
|
var FORCED = fails(function () {
|
|
9
12
|
return '𠮷'.at(0) !== '\uD842';
|
|
10
13
|
});
|
|
@@ -17,6 +20,6 @@ $({ target: 'String', proto: true, forced: FORCED }, {
|
|
|
17
20
|
var len = S.length;
|
|
18
21
|
var relativeIndex = toIntegerOrInfinity(index);
|
|
19
22
|
var k = relativeIndex >= 0 ? relativeIndex : len + relativeIndex;
|
|
20
|
-
return (k < 0 || k >= len) ? undefined :
|
|
23
|
+
return (k < 0 || k >= len) ? undefined : charAt(S, k);
|
|
21
24
|
}
|
|
22
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');
|
|
@@ -29,8 +31,8 @@ $({ target: 'String', proto: true, forced: !MDN_POLYFILL_BUG && !CORRECT_IS_REGE
|
|
|
29
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
|
|
package/modules/es.string.raw.js
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
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
5
|
var toString = require('../internals/to-string');
|
|
5
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
|
|
@@ -18,9 +18,9 @@ $({ target: 'String', stat: true }, {
|
|
|
18
18
|
var elements = [];
|
|
19
19
|
var i = 0;
|
|
20
20
|
while (literalSegments > i) {
|
|
21
|
-
push
|
|
22
|
-
if (i === literalSegments) return join
|
|
23
|
-
if (i < argumentsLength) push
|
|
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
26
|
});
|
|
@@ -1,23 +1,31 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
var $ = require('../internals/export');
|
|
3
|
+
var global = require('../internals/global');
|
|
4
|
+
var call = require('../internals/function-call');
|
|
5
|
+
var uncurryThis = require('../internals/function-uncurry-this');
|
|
3
6
|
var requireObjectCoercible = require('../internals/require-object-coercible');
|
|
4
7
|
var isCallable = require('../internals/is-callable');
|
|
5
8
|
var isRegExp = require('../internals/is-regexp');
|
|
6
9
|
var toString = require('../internals/to-string');
|
|
7
10
|
var getMethod = require('../internals/get-method');
|
|
8
|
-
var
|
|
11
|
+
var regExpFlags = require('../internals/regexp-flags');
|
|
9
12
|
var getSubstitution = require('../internals/get-substitution');
|
|
10
13
|
var wellKnownSymbol = require('../internals/well-known-symbol');
|
|
11
14
|
var IS_PURE = require('../internals/is-pure');
|
|
12
15
|
|
|
13
16
|
var REPLACE = wellKnownSymbol('replace');
|
|
14
17
|
var RegExpPrototype = RegExp.prototype;
|
|
18
|
+
var TypeError = global.TypeError;
|
|
19
|
+
var getFlags = uncurryThis(regExpFlags);
|
|
20
|
+
var indexOf = uncurryThis(''.indexOf);
|
|
21
|
+
var replace = uncurryThis(''.replace);
|
|
22
|
+
var stringSlice = uncurryThis(''.slice);
|
|
15
23
|
var max = Math.max;
|
|
16
24
|
|
|
17
25
|
var stringIndexOf = function (string, searchValue, fromIndex) {
|
|
18
26
|
if (fromIndex > string.length) return -1;
|
|
19
27
|
if (searchValue === '') return fromIndex;
|
|
20
|
-
return
|
|
28
|
+
return indexOf(string, searchValue, fromIndex);
|
|
21
29
|
};
|
|
22
30
|
|
|
23
31
|
// `String.prototype.replaceAll` method
|
|
@@ -34,15 +42,15 @@ $({ target: 'String', proto: true }, {
|
|
|
34
42
|
if (IS_REG_EXP) {
|
|
35
43
|
flags = toString(requireObjectCoercible('flags' in RegExpPrototype
|
|
36
44
|
? searchValue.flags
|
|
37
|
-
:
|
|
45
|
+
: getFlags(searchValue)
|
|
38
46
|
));
|
|
39
|
-
if (!~
|
|
47
|
+
if (!~indexOf(flags, 'g')) throw TypeError('`.replaceAll` does not allow non-global regexes');
|
|
40
48
|
}
|
|
41
49
|
replacer = getMethod(searchValue, REPLACE);
|
|
42
50
|
if (replacer) {
|
|
43
|
-
return
|
|
51
|
+
return call(replacer, searchValue, O, replaceValue);
|
|
44
52
|
} else if (IS_PURE && IS_REG_EXP) {
|
|
45
|
-
return toString(O)
|
|
53
|
+
return replace(toString(O), searchValue, replaceValue);
|
|
46
54
|
}
|
|
47
55
|
}
|
|
48
56
|
string = toString(O);
|
|
@@ -53,17 +61,15 @@ $({ target: 'String', proto: true }, {
|
|
|
53
61
|
advanceBy = max(1, searchLength);
|
|
54
62
|
position = stringIndexOf(string, searchString, 0);
|
|
55
63
|
while (position !== -1) {
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
}
|
|
61
|
-
result += string.slice(endOfLastMatch, position) + replacement;
|
|
64
|
+
replacement = functionalReplace
|
|
65
|
+
? toString(replaceValue(searchString, position, string))
|
|
66
|
+
: getSubstitution(searchString, string, position, [], undefined, replaceValue);
|
|
67
|
+
result += stringSlice(string, endOfLastMatch, position) + replacement;
|
|
62
68
|
endOfLastMatch = position + searchLength;
|
|
63
69
|
position = stringIndexOf(string, searchString, position + advanceBy);
|
|
64
70
|
}
|
|
65
71
|
if (endOfLastMatch < string.length) {
|
|
66
|
-
result += string
|
|
72
|
+
result += stringSlice(string, endOfLastMatch);
|
|
67
73
|
}
|
|
68
74
|
return result;
|
|
69
75
|
}
|
|
@@ -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-startswith -- safe
|
|
12
|
-
var $
|
|
13
|
+
var un$StartsWith = uncurryThis(''.startsWith);
|
|
14
|
+
var stringSlice = uncurryThis(''.slice);
|
|
13
15
|
var min = Math.min;
|
|
14
16
|
|
|
15
17
|
var CORRECT_IS_REGEXP_LOGIC = correctIsRegExpLogic('startsWith');
|
|
@@ -27,8 +29,8 @@ $({ target: 'String', proto: true, forced: !MDN_POLYFILL_BUG && !CORRECT_IS_REGE
|
|
|
27
29
|
notARegExp(searchString);
|
|
28
30
|
var index = toLength(min(arguments.length > 1 ? arguments[1] : undefined, that.length));
|
|
29
31
|
var search = toString(searchString);
|
|
30
|
-
return $
|
|
31
|
-
? $
|
|
32
|
-
: that
|
|
32
|
+
return un$StartsWith
|
|
33
|
+
? un$StartsWith(that, search, index)
|
|
34
|
+
: stringSlice(that, index, index + search.length) === search;
|
|
33
35
|
}
|
|
34
36
|
});
|
|
@@ -1,10 +1,11 @@
|
|
|
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
5
|
var toIntegerOrInfinity = require('../internals/to-integer-or-infinity');
|
|
5
6
|
var toString = require('../internals/to-string');
|
|
6
7
|
|
|
7
|
-
var
|
|
8
|
+
var stringSlice = uncurryThis(''.slice);
|
|
8
9
|
var max = Math.max;
|
|
9
10
|
var min = Math.min;
|
|
10
11
|
|
|
@@ -24,6 +25,6 @@ $({ target: 'String', proto: true, forced: FORCED }, {
|
|
|
24
25
|
intLength = length === undefined ? size : toIntegerOrInfinity(length);
|
|
25
26
|
if (intLength <= 0 || intLength === Infinity) return '';
|
|
26
27
|
intEnd = min(intStart + intLength, size);
|
|
27
|
-
return intStart >= intEnd ? '' :
|
|
28
|
+
return intStart >= intEnd ? '' : stringSlice(that, intStart, intEnd);
|
|
28
29
|
}
|
|
29
30
|
});
|