core-js 3.18.0 → 3.19.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/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-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 -10
- 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 +6 -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 +10 -0
- package/internals/internal-metadata.js +7 -6
- package/internals/internal-state.js +13 -11
- package/internals/is-callable.js +2 -2
- 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-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-webkit-bug.js +0 -1
- 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 +24 -11
- 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.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.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 +10 -6
- 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 +14 -13
- 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.dom-collections.for-each.js +3 -1
- package/modules/web.timers.js +5 -4
- package/modules/web.url-search-params.js +63 -54
- package/modules/web.url.js +112 -98
- package/modules/web.url.to-json.js +2 -1
- package/package.json +2 -2
- package/postinstall.js +1 -1
- 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
package/internals/map-upsert.js
CHANGED
|
@@ -1,24 +1,32 @@
|
|
|
1
1
|
'use strict';
|
|
2
|
+
var global = require('../internals/global');
|
|
3
|
+
var call = require('../internals/function-call');
|
|
4
|
+
var aCallable = require('../internals/a-callable');
|
|
2
5
|
var isCallable = require('../internals/is-callable');
|
|
3
6
|
var anObject = require('../internals/an-object');
|
|
4
7
|
|
|
8
|
+
var TypeError = global.TypeError;
|
|
9
|
+
|
|
5
10
|
// `Map.prototype.upsert` method
|
|
6
11
|
// https://github.com/thumbsupep/proposal-upsert
|
|
7
12
|
module.exports = function upsert(key, updateFn /* , insertFn */) {
|
|
8
13
|
var map = anObject(this);
|
|
14
|
+
var get = aCallable(map.get);
|
|
15
|
+
var has = aCallable(map.has);
|
|
16
|
+
var set = aCallable(map.set);
|
|
9
17
|
var insertFn = arguments.length > 2 ? arguments[2] : undefined;
|
|
10
18
|
var value;
|
|
11
19
|
if (!isCallable(updateFn) && !isCallable(insertFn)) {
|
|
12
20
|
throw TypeError('At least one callback required');
|
|
13
21
|
}
|
|
14
|
-
if (map
|
|
15
|
-
value = map
|
|
22
|
+
if (call(has, map, key)) {
|
|
23
|
+
value = call(get, map, key);
|
|
16
24
|
if (isCallable(updateFn)) {
|
|
17
25
|
value = updateFn(value);
|
|
18
|
-
map
|
|
26
|
+
call(set, map, key, value);
|
|
19
27
|
}
|
|
20
28
|
} else if (isCallable(insertFn)) {
|
|
21
29
|
value = insertFn();
|
|
22
|
-
map
|
|
30
|
+
call(set, map, key, value);
|
|
23
31
|
} return value;
|
|
24
32
|
};
|
package/internals/math-scale.js
CHANGED
|
@@ -1,16 +1,13 @@
|
|
|
1
1
|
// `Math.scale` method implementation
|
|
2
2
|
// https://rwaldron.github.io/proposal-math-extensions/
|
|
3
3
|
module.exports = Math.scale || function scale(x, inLow, inHigh, outLow, outHigh) {
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
) return NaN;
|
|
14
|
-
if (x === Infinity || x === -Infinity) return x;
|
|
15
|
-
return (x - inLow) * (outHigh - outLow) / (inHigh - inLow) + outLow;
|
|
4
|
+
var nx = +x;
|
|
5
|
+
var nInLow = +inLow;
|
|
6
|
+
var nInHigh = +inHigh;
|
|
7
|
+
var nOutLow = +outLow;
|
|
8
|
+
var nOutHigh = +outHigh;
|
|
9
|
+
// eslint-disable-next-line no-self-compare -- NaN check
|
|
10
|
+
if (nx != nx || nInLow != nInLow || nInHigh != nInHigh || nOutLow != nOutLow || nOutHigh != nOutHigh) return NaN;
|
|
11
|
+
if (nx === Infinity || nx === -Infinity) return nx;
|
|
12
|
+
return (nx - nInLow) * (nOutHigh - nOutLow) / (nInHigh - nInLow) + nOutLow;
|
|
16
13
|
};
|
package/internals/microtask.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
var global = require('../internals/global');
|
|
2
|
+
var bind = require('../internals/function-bind-context');
|
|
2
3
|
var getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;
|
|
3
4
|
var macrotask = require('../internals/task').set;
|
|
4
5
|
var IS_IOS = require('../internals/engine-is-ios');
|
|
@@ -50,9 +51,9 @@ if (!queueMicrotask) {
|
|
|
50
51
|
promise = Promise.resolve(undefined);
|
|
51
52
|
// workaround of WebKit ~ iOS Safari 10.1 bug
|
|
52
53
|
promise.constructor = Promise;
|
|
53
|
-
then = promise.then;
|
|
54
|
+
then = bind(promise.then, promise);
|
|
54
55
|
notify = function () {
|
|
55
|
-
then
|
|
56
|
+
then(flush);
|
|
56
57
|
};
|
|
57
58
|
// Node.js without promises
|
|
58
59
|
} else if (IS_NODE) {
|
|
@@ -66,9 +67,10 @@ if (!queueMicrotask) {
|
|
|
66
67
|
// - onreadystatechange
|
|
67
68
|
// - setTimeout
|
|
68
69
|
} else {
|
|
70
|
+
// strange IE + webpack dev server bug - use .bind(global)
|
|
71
|
+
macrotask = bind(macrotask, global);
|
|
69
72
|
notify = function () {
|
|
70
|
-
|
|
71
|
-
macrotask.call(global, flush);
|
|
73
|
+
macrotask(flush);
|
|
72
74
|
};
|
|
73
75
|
}
|
|
74
76
|
}
|
|
@@ -1,20 +1,22 @@
|
|
|
1
1
|
var global = require('../internals/global');
|
|
2
2
|
var fails = require('../internals/fails');
|
|
3
|
+
var uncurryThis = require('../internals/function-uncurry-this');
|
|
3
4
|
var toString = require('../internals/to-string');
|
|
4
5
|
var trim = require('../internals/string-trim').trim;
|
|
5
6
|
var whitespaces = require('../internals/whitespaces');
|
|
6
7
|
|
|
7
|
-
var
|
|
8
|
+
var charAt = uncurryThis(''.charAt);
|
|
9
|
+
var n$ParseFloat = global.parseFloat;
|
|
8
10
|
var Symbol = global.Symbol;
|
|
9
11
|
var ITERATOR = Symbol && Symbol.iterator;
|
|
10
|
-
var FORCED = 1 / $
|
|
12
|
+
var FORCED = 1 / n$ParseFloat(whitespaces + '-0') !== -Infinity
|
|
11
13
|
// MS Edge 18- broken with boxed symbols
|
|
12
|
-
|| (ITERATOR && !fails(function () { $
|
|
14
|
+
|| (ITERATOR && !fails(function () { n$ParseFloat(Object(ITERATOR)); }));
|
|
13
15
|
|
|
14
16
|
// `parseFloat` method
|
|
15
17
|
// https://tc39.es/ecma262/#sec-parsefloat-string
|
|
16
18
|
module.exports = FORCED ? function parseFloat(string) {
|
|
17
19
|
var trimmedString = trim(toString(string));
|
|
18
|
-
var result = $
|
|
19
|
-
return result === 0 &&
|
|
20
|
-
} : $
|
|
20
|
+
var result = n$ParseFloat(trimmedString);
|
|
21
|
+
return result === 0 && charAt(trimmedString, 0) == '-' ? -0 : result;
|
|
22
|
+
} : n$ParseFloat;
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
var global = require('../internals/global');
|
|
2
2
|
var fails = require('../internals/fails');
|
|
3
|
+
var uncurryThis = require('../internals/function-uncurry-this');
|
|
3
4
|
var toString = require('../internals/to-string');
|
|
4
5
|
var trim = require('../internals/string-trim').trim;
|
|
5
6
|
var whitespaces = require('../internals/whitespaces');
|
|
@@ -7,7 +8,8 @@ var whitespaces = require('../internals/whitespaces');
|
|
|
7
8
|
var $parseInt = global.parseInt;
|
|
8
9
|
var Symbol = global.Symbol;
|
|
9
10
|
var ITERATOR = Symbol && Symbol.iterator;
|
|
10
|
-
var hex = /^[+-]?
|
|
11
|
+
var hex = /^[+-]?0x/i;
|
|
12
|
+
var exec = uncurryThis(hex.exec);
|
|
11
13
|
var FORCED = $parseInt(whitespaces + '08') !== 8 || $parseInt(whitespaces + '0x16') !== 22
|
|
12
14
|
// MS Edge 18- broken with boxed symbols
|
|
13
15
|
|| (ITERATOR && !fails(function () { $parseInt(Object(ITERATOR)); }));
|
|
@@ -16,5 +18,5 @@ var FORCED = $parseInt(whitespaces + '08') !== 8 || $parseInt(whitespaces + '0x1
|
|
|
16
18
|
// https://tc39.es/ecma262/#sec-parseint-string-radix
|
|
17
19
|
module.exports = FORCED ? function parseInt(string, radix) {
|
|
18
20
|
var S = trim(toString(string));
|
|
19
|
-
return $parseInt(S, (radix >>> 0) || (hex
|
|
21
|
+
return $parseInt(S, (radix >>> 0) || (exec(hex, S) ? 16 : 10));
|
|
20
22
|
} : $parseInt;
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
'use strict';
|
|
2
|
+
var global = require('../internals/global');
|
|
2
3
|
var InternalStateModule = require('../internals/internal-state');
|
|
3
4
|
var createIteratorConstructor = require('../internals/create-iterator-constructor');
|
|
4
5
|
var isObject = require('../internals/is-object');
|
|
@@ -11,6 +12,9 @@ var NUMERIC_RANGE_ITERATOR = 'NumericRangeIterator';
|
|
|
11
12
|
var setInternalState = InternalStateModule.set;
|
|
12
13
|
var getInternalState = InternalStateModule.getterFor(NUMERIC_RANGE_ITERATOR);
|
|
13
14
|
|
|
15
|
+
var RangeError = global.RangeError;
|
|
16
|
+
var TypeError = global.TypeError;
|
|
17
|
+
|
|
14
18
|
var $RangeIterator = createIteratorConstructor(function NumericRangeIterator(start, end, option, type, zero, one) {
|
|
15
19
|
if (typeof start != type || (end !== Infinity && end !== -Infinity && typeof end != type)) {
|
|
16
20
|
throw new TypeError(INCORRECT_RANGE);
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
var DESCRIPTORS = require('../internals/descriptors');
|
|
3
|
+
var uncurryThis = require('../internals/function-uncurry-this');
|
|
4
|
+
var call = require('../internals/function-call');
|
|
3
5
|
var fails = require('../internals/fails');
|
|
4
6
|
var objectKeys = require('../internals/object-keys');
|
|
5
7
|
var getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');
|
|
@@ -11,6 +13,7 @@ var IndexedObject = require('../internals/indexed-object');
|
|
|
11
13
|
var $assign = Object.assign;
|
|
12
14
|
// eslint-disable-next-line es/no-object-defineproperty -- required for testing
|
|
13
15
|
var defineProperty = Object.defineProperty;
|
|
16
|
+
var concat = uncurryThis([].concat);
|
|
14
17
|
|
|
15
18
|
// `Object.assign` method
|
|
16
19
|
// https://tc39.es/ecma262/#sec-object.assign
|
|
@@ -42,13 +45,13 @@ module.exports = !$assign || fails(function () {
|
|
|
42
45
|
var propertyIsEnumerable = propertyIsEnumerableModule.f;
|
|
43
46
|
while (argumentsLength > index) {
|
|
44
47
|
var S = IndexedObject(arguments[index++]);
|
|
45
|
-
var keys = getOwnPropertySymbols ? objectKeys(S)
|
|
48
|
+
var keys = getOwnPropertySymbols ? concat(objectKeys(S), getOwnPropertySymbols(S)) : objectKeys(S);
|
|
46
49
|
var length = keys.length;
|
|
47
50
|
var j = 0;
|
|
48
51
|
var key;
|
|
49
52
|
while (length > j) {
|
|
50
53
|
key = keys[j++];
|
|
51
|
-
if (!DESCRIPTORS ||
|
|
54
|
+
if (!DESCRIPTORS || call(propertyIsEnumerable, S, key)) T[key] = S[key];
|
|
52
55
|
}
|
|
53
56
|
} return T;
|
|
54
57
|
} : $assign;
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
var DESCRIPTORS = require('../internals/descriptors');
|
|
2
2
|
var definePropertyModule = require('../internals/object-define-property');
|
|
3
3
|
var anObject = require('../internals/an-object');
|
|
4
|
+
var toIndexedObject = require('../internals/to-indexed-object');
|
|
4
5
|
var objectKeys = require('../internals/object-keys');
|
|
5
6
|
|
|
6
7
|
// `Object.defineProperties` method
|
|
@@ -8,10 +9,11 @@ var objectKeys = require('../internals/object-keys');
|
|
|
8
9
|
// eslint-disable-next-line es/no-object-defineproperties -- safe
|
|
9
10
|
module.exports = DESCRIPTORS ? Object.defineProperties : function defineProperties(O, Properties) {
|
|
10
11
|
anObject(O);
|
|
12
|
+
var props = toIndexedObject(Properties);
|
|
11
13
|
var keys = objectKeys(Properties);
|
|
12
14
|
var length = keys.length;
|
|
13
15
|
var index = 0;
|
|
14
16
|
var key;
|
|
15
|
-
while (length > index) definePropertyModule.f(O, key = keys[index++],
|
|
17
|
+
while (length > index) definePropertyModule.f(O, key = keys[index++], props[key]);
|
|
16
18
|
return O;
|
|
17
19
|
};
|
|
@@ -1,8 +1,10 @@
|
|
|
1
|
+
var global = require('../internals/global');
|
|
1
2
|
var DESCRIPTORS = require('../internals/descriptors');
|
|
2
3
|
var IE8_DOM_DEFINE = require('../internals/ie8-dom-define');
|
|
3
4
|
var anObject = require('../internals/an-object');
|
|
4
5
|
var toPropertyKey = require('../internals/to-property-key');
|
|
5
6
|
|
|
7
|
+
var TypeError = global.TypeError;
|
|
6
8
|
// eslint-disable-next-line es/no-object-defineproperty -- safe
|
|
7
9
|
var $defineProperty = Object.defineProperty;
|
|
8
10
|
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
var DESCRIPTORS = require('../internals/descriptors');
|
|
2
|
+
var call = require('../internals/function-call');
|
|
2
3
|
var propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');
|
|
3
4
|
var createPropertyDescriptor = require('../internals/create-property-descriptor');
|
|
4
5
|
var toIndexedObject = require('../internals/to-indexed-object');
|
|
5
6
|
var toPropertyKey = require('../internals/to-property-key');
|
|
6
|
-
var
|
|
7
|
+
var hasOwn = require('../internals/has-own-property');
|
|
7
8
|
var IE8_DOM_DEFINE = require('../internals/ie8-dom-define');
|
|
8
9
|
|
|
9
10
|
// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe
|
|
@@ -17,5 +18,5 @@ exports.f = DESCRIPTORS ? $getOwnPropertyDescriptor : function getOwnPropertyDes
|
|
|
17
18
|
if (IE8_DOM_DEFINE) try {
|
|
18
19
|
return $getOwnPropertyDescriptor(O, P);
|
|
19
20
|
} catch (error) { /* empty */ }
|
|
20
|
-
if (
|
|
21
|
+
if (hasOwn(O, P)) return createPropertyDescriptor(!call(propertyIsEnumerableModule.f, O, P), O[P]);
|
|
21
22
|
};
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
/* eslint-disable es/no-object-getownpropertynames -- safe */
|
|
2
|
+
var classof = require('../internals/classof-raw');
|
|
2
3
|
var toIndexedObject = require('../internals/to-indexed-object');
|
|
3
4
|
var $getOwnPropertyNames = require('../internals/object-get-own-property-names').f;
|
|
4
|
-
|
|
5
|
-
var toString = {}.toString;
|
|
5
|
+
var arraySlice = require('../internals/array-slice');
|
|
6
6
|
|
|
7
7
|
var windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames
|
|
8
8
|
? Object.getOwnPropertyNames(window) : [];
|
|
@@ -11,13 +11,13 @@ var getWindowNames = function (it) {
|
|
|
11
11
|
try {
|
|
12
12
|
return $getOwnPropertyNames(it);
|
|
13
13
|
} catch (error) {
|
|
14
|
-
return windowNames
|
|
14
|
+
return arraySlice(windowNames);
|
|
15
15
|
}
|
|
16
16
|
};
|
|
17
17
|
|
|
18
18
|
// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window
|
|
19
19
|
module.exports.f = function getOwnPropertyNames(it) {
|
|
20
|
-
return windowNames &&
|
|
20
|
+
return windowNames && classof(it) == 'Window'
|
|
21
21
|
? getWindowNames(it)
|
|
22
22
|
: $getOwnPropertyNames(toIndexedObject(it));
|
|
23
23
|
};
|
|
@@ -1,18 +1,19 @@
|
|
|
1
|
-
var
|
|
1
|
+
var global = require('../internals/global');
|
|
2
|
+
var hasOwn = require('../internals/has-own-property');
|
|
2
3
|
var isCallable = require('../internals/is-callable');
|
|
3
4
|
var toObject = require('../internals/to-object');
|
|
4
5
|
var sharedKey = require('../internals/shared-key');
|
|
5
6
|
var CORRECT_PROTOTYPE_GETTER = require('../internals/correct-prototype-getter');
|
|
6
7
|
|
|
7
8
|
var IE_PROTO = sharedKey('IE_PROTO');
|
|
9
|
+
var Object = global.Object;
|
|
8
10
|
var ObjectPrototype = Object.prototype;
|
|
9
11
|
|
|
10
12
|
// `Object.getPrototypeOf` method
|
|
11
13
|
// https://tc39.es/ecma262/#sec-object.getprototypeof
|
|
12
|
-
// eslint-disable-next-line es/no-object-getprototypeof -- safe
|
|
13
14
|
module.exports = CORRECT_PROTOTYPE_GETTER ? Object.getPrototypeOf : function (O) {
|
|
14
15
|
var object = toObject(O);
|
|
15
|
-
if (
|
|
16
|
+
if (hasOwn(object, IE_PROTO)) return object[IE_PROTO];
|
|
16
17
|
var constructor = object.constructor;
|
|
17
18
|
if (isCallable(constructor) && object instanceof constructor) {
|
|
18
19
|
return constructor.prototype;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
var InternalStateModule = require('../internals/internal-state');
|
|
3
3
|
var createIteratorConstructor = require('../internals/create-iterator-constructor');
|
|
4
|
-
var
|
|
4
|
+
var hasOwn = require('../internals/has-own-property');
|
|
5
5
|
var objectKeys = require('../internals/object-keys');
|
|
6
6
|
var toObject = require('../internals/to-object');
|
|
7
7
|
|
|
@@ -28,7 +28,7 @@ module.exports = createIteratorConstructor(function ObjectIterator(source, mode)
|
|
|
28
28
|
}
|
|
29
29
|
var key = keys[state.index++];
|
|
30
30
|
var object = state.object;
|
|
31
|
-
if (!
|
|
31
|
+
if (!hasOwn(object, key)) continue;
|
|
32
32
|
switch (state.mode) {
|
|
33
33
|
case 'keys': return { value: key, done: false };
|
|
34
34
|
case 'values': return { value: object[key], done: false };
|
|
@@ -1,17 +1,20 @@
|
|
|
1
|
-
var
|
|
1
|
+
var uncurryThis = require('../internals/function-uncurry-this');
|
|
2
|
+
var hasOwn = require('../internals/has-own-property');
|
|
2
3
|
var toIndexedObject = require('../internals/to-indexed-object');
|
|
3
4
|
var indexOf = require('../internals/array-includes').indexOf;
|
|
4
5
|
var hiddenKeys = require('../internals/hidden-keys');
|
|
5
6
|
|
|
7
|
+
var push = uncurryThis([].push);
|
|
8
|
+
|
|
6
9
|
module.exports = function (object, names) {
|
|
7
10
|
var O = toIndexedObject(object);
|
|
8
11
|
var i = 0;
|
|
9
12
|
var result = [];
|
|
10
13
|
var key;
|
|
11
|
-
for (key in O) !
|
|
14
|
+
for (key in O) !hasOwn(hiddenKeys, key) && hasOwn(O, key) && push(result, key);
|
|
12
15
|
// Don't enum bug & hidden keys
|
|
13
|
-
while (names.length > i) if (
|
|
14
|
-
~indexOf(result, key) ||
|
|
16
|
+
while (names.length > i) if (hasOwn(O, key = names[i++])) {
|
|
17
|
+
~indexOf(result, key) || push(result, key);
|
|
15
18
|
}
|
|
16
19
|
return result;
|
|
17
20
|
};
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
/* eslint-disable no-proto -- safe */
|
|
2
|
+
var uncurryThis = require('../internals/function-uncurry-this');
|
|
2
3
|
var anObject = require('../internals/an-object');
|
|
3
4
|
var aPossiblePrototype = require('../internals/a-possible-prototype');
|
|
4
5
|
|
|
@@ -12,14 +13,14 @@ module.exports = Object.setPrototypeOf || ('__proto__' in {} ? function () {
|
|
|
12
13
|
var setter;
|
|
13
14
|
try {
|
|
14
15
|
// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe
|
|
15
|
-
setter = Object.getOwnPropertyDescriptor(Object.prototype, '__proto__').set;
|
|
16
|
-
setter
|
|
16
|
+
setter = uncurryThis(Object.getOwnPropertyDescriptor(Object.prototype, '__proto__').set);
|
|
17
|
+
setter(test, []);
|
|
17
18
|
CORRECT_SETTER = test instanceof Array;
|
|
18
19
|
} catch (error) { /* empty */ }
|
|
19
20
|
return function setPrototypeOf(O, proto) {
|
|
20
21
|
anObject(O);
|
|
21
22
|
aPossiblePrototype(proto);
|
|
22
|
-
if (CORRECT_SETTER) setter
|
|
23
|
+
if (CORRECT_SETTER) setter(O, proto);
|
|
23
24
|
else O.__proto__ = proto;
|
|
24
25
|
return O;
|
|
25
26
|
};
|
|
@@ -1,7 +1,11 @@
|
|
|
1
1
|
var DESCRIPTORS = require('../internals/descriptors');
|
|
2
|
+
var uncurryThis = require('../internals/function-uncurry-this');
|
|
2
3
|
var objectKeys = require('../internals/object-keys');
|
|
3
4
|
var toIndexedObject = require('../internals/to-indexed-object');
|
|
4
|
-
var propertyIsEnumerable = require('../internals/object-property-is-enumerable').f;
|
|
5
|
+
var $propertyIsEnumerable = require('../internals/object-property-is-enumerable').f;
|
|
6
|
+
|
|
7
|
+
var propertyIsEnumerable = uncurryThis($propertyIsEnumerable);
|
|
8
|
+
var push = uncurryThis([].push);
|
|
5
9
|
|
|
6
10
|
// `Object.{ entries, values }` methods implementation
|
|
7
11
|
var createMethod = function (TO_ENTRIES) {
|
|
@@ -14,8 +18,8 @@ var createMethod = function (TO_ENTRIES) {
|
|
|
14
18
|
var key;
|
|
15
19
|
while (length > i) {
|
|
16
20
|
key = keys[i++];
|
|
17
|
-
if (!DESCRIPTORS || propertyIsEnumerable
|
|
18
|
-
|
|
21
|
+
if (!DESCRIPTORS || propertyIsEnumerable(O, key)) {
|
|
22
|
+
push(result, TO_ENTRIES ? [key, O[key]] : O[key]);
|
|
19
23
|
}
|
|
20
24
|
}
|
|
21
25
|
return result;
|
|
@@ -1,12 +1,16 @@
|
|
|
1
|
+
var global = require('../internals/global');
|
|
2
|
+
var call = require('../internals/function-call');
|
|
1
3
|
var isCallable = require('../internals/is-callable');
|
|
2
4
|
var isObject = require('../internals/is-object');
|
|
3
5
|
|
|
6
|
+
var TypeError = global.TypeError;
|
|
7
|
+
|
|
4
8
|
// `OrdinaryToPrimitive` abstract operation
|
|
5
9
|
// https://tc39.es/ecma262/#sec-ordinarytoprimitive
|
|
6
10
|
module.exports = function (input, pref) {
|
|
7
11
|
var fn, val;
|
|
8
|
-
if (pref === 'string' && isCallable(fn = input.toString) && !isObject(val =
|
|
9
|
-
if (isCallable(fn = input.valueOf) && !isObject(val =
|
|
10
|
-
if (pref !== 'string' && isCallable(fn = input.toString) && !isObject(val =
|
|
12
|
+
if (pref === 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val;
|
|
13
|
+
if (isCallable(fn = input.valueOf) && !isObject(val = call(fn, input))) return val;
|
|
14
|
+
if (pref !== 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val;
|
|
11
15
|
throw TypeError("Can't convert object to primitive value");
|
|
12
16
|
};
|
package/internals/own-keys.js
CHANGED
|
@@ -1,11 +1,14 @@
|
|
|
1
1
|
var getBuiltIn = require('../internals/get-built-in');
|
|
2
|
+
var uncurryThis = require('../internals/function-uncurry-this');
|
|
2
3
|
var getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');
|
|
3
4
|
var getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');
|
|
4
5
|
var anObject = require('../internals/an-object');
|
|
5
6
|
|
|
7
|
+
var concat = uncurryThis([].concat);
|
|
8
|
+
|
|
6
9
|
// all object keys, includes non-enumerable and symbols
|
|
7
10
|
module.exports = getBuiltIn('Reflect', 'ownKeys') || function ownKeys(it) {
|
|
8
11
|
var keys = getOwnPropertyNamesModule.f(anObject(it));
|
|
9
12
|
var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;
|
|
10
|
-
return getOwnPropertySymbols ?
|
|
13
|
+
return getOwnPropertySymbols ? concat(keys, getOwnPropertySymbols(it)) : keys;
|
|
11
14
|
};
|
package/internals/redefine.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
var global = require('../internals/global');
|
|
2
2
|
var isCallable = require('../internals/is-callable');
|
|
3
|
-
var
|
|
3
|
+
var hasOwn = require('../internals/has-own-property');
|
|
4
4
|
var createNonEnumerableProperty = require('../internals/create-non-enumerable-property');
|
|
5
5
|
var setGlobal = require('../internals/set-global');
|
|
6
6
|
var inspectSource = require('../internals/inspect-source');
|
|
@@ -21,7 +21,7 @@ var TEMPLATE = String(String).split('String');
|
|
|
21
21
|
if (String(name).slice(0, 7) === 'Symbol(') {
|
|
22
22
|
name = '[' + String(name).replace(/^Symbol\(([^)]*)\)/, '$1') + ']';
|
|
23
23
|
}
|
|
24
|
-
if (!
|
|
24
|
+
if (!hasOwn(value, 'name') || (CONFIGURABLE_FUNCTION_NAME && value.name !== name)) {
|
|
25
25
|
createNonEnumerableProperty(value, 'name', name);
|
|
26
26
|
}
|
|
27
27
|
state = enforceInternalState(value);
|
|
@@ -1,8 +1,14 @@
|
|
|
1
1
|
// TODO: in core-js@4, move /modules/ dependencies to public entries for better optimization by tools like `preset-env`
|
|
2
|
-
|
|
3
|
-
|
|
2
|
+
require('../modules/es.map');
|
|
3
|
+
require('../modules/es.weak-map');
|
|
4
|
+
var getBuiltIn = require('../internals/get-built-in');
|
|
5
|
+
var uncurryThis = require('../internals/function-uncurry-this');
|
|
4
6
|
var shared = require('../internals/shared');
|
|
5
7
|
|
|
8
|
+
var Map = getBuiltIn('Map');
|
|
9
|
+
var WeakMap = getBuiltIn('WeakMap');
|
|
10
|
+
var push = uncurryThis([].push);
|
|
11
|
+
|
|
6
12
|
var metadata = shared('metadata');
|
|
7
13
|
var store = metadata.store || (metadata.store = new WeakMap());
|
|
8
14
|
|
|
@@ -36,7 +42,7 @@ var ordinaryDefineOwnMetadata = function (MetadataKey, MetadataValue, O, P) {
|
|
|
36
42
|
var ordinaryOwnMetadataKeys = function (target, targetKey) {
|
|
37
43
|
var metadataMap = getOrCreateMetadataMap(target, targetKey, false);
|
|
38
44
|
var keys = [];
|
|
39
|
-
if (metadataMap) metadataMap.forEach(function (_, key) {
|
|
45
|
+
if (metadataMap) metadataMap.forEach(function (_, key) { push(keys, key); });
|
|
40
46
|
return keys;
|
|
41
47
|
};
|
|
42
48
|
|
|
@@ -1,17 +1,21 @@
|
|
|
1
|
+
var global = require('../internals/global');
|
|
2
|
+
var call = require('../internals/function-call');
|
|
1
3
|
var anObject = require('../internals/an-object');
|
|
2
4
|
var isCallable = require('../internals/is-callable');
|
|
3
5
|
var classof = require('../internals/classof-raw');
|
|
4
6
|
var regexpExec = require('../internals/regexp-exec');
|
|
5
7
|
|
|
8
|
+
var TypeError = global.TypeError;
|
|
9
|
+
|
|
6
10
|
// `RegExpExec` abstract operation
|
|
7
11
|
// https://tc39.es/ecma262/#sec-regexpexec
|
|
8
12
|
module.exports = function (R, S) {
|
|
9
13
|
var exec = R.exec;
|
|
10
14
|
if (isCallable(exec)) {
|
|
11
|
-
var result =
|
|
15
|
+
var result = call(exec, R, S);
|
|
12
16
|
if (result !== null) anObject(result);
|
|
13
17
|
return result;
|
|
14
18
|
}
|
|
15
|
-
if (classof(R) === 'RegExp') return
|
|
19
|
+
if (classof(R) === 'RegExp') return call(regexpExec, R, S);
|
|
16
20
|
throw TypeError('RegExp#exec called on incompatible receiver');
|
|
17
21
|
};
|
package/internals/regexp-exec.js
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
/* eslint-disable regexp/no-empty-capturing-group, regexp/no-empty-group, regexp/no-lazy-ends -- testing */
|
|
3
3
|
/* eslint-disable regexp/no-useless-quantifier -- testing */
|
|
4
|
+
var call = require('../internals/function-call');
|
|
5
|
+
var uncurryThis = require('../internals/function-uncurry-this');
|
|
4
6
|
var toString = require('../internals/to-string');
|
|
5
7
|
var regexpFlags = require('../internals/regexp-flags');
|
|
6
8
|
var stickyHelpers = require('../internals/regexp-sticky-helpers');
|
|
@@ -10,16 +12,19 @@ var getInternalState = require('../internals/internal-state').get;
|
|
|
10
12
|
var UNSUPPORTED_DOT_ALL = require('../internals/regexp-unsupported-dot-all');
|
|
11
13
|
var UNSUPPORTED_NCG = require('../internals/regexp-unsupported-ncg');
|
|
12
14
|
|
|
13
|
-
var nativeExec = RegExp.prototype.exec;
|
|
14
15
|
var nativeReplace = shared('native-string-replace', String.prototype.replace);
|
|
15
|
-
|
|
16
|
+
var nativeExec = RegExp.prototype.exec;
|
|
16
17
|
var patchedExec = nativeExec;
|
|
18
|
+
var charAt = uncurryThis(''.charAt);
|
|
19
|
+
var indexOf = uncurryThis(''.indexOf);
|
|
20
|
+
var replace = uncurryThis(''.replace);
|
|
21
|
+
var stringSlice = uncurryThis(''.slice);
|
|
17
22
|
|
|
18
23
|
var UPDATES_LAST_INDEX_WRONG = (function () {
|
|
19
24
|
var re1 = /a/;
|
|
20
25
|
var re2 = /b*/g;
|
|
21
|
-
|
|
22
|
-
|
|
26
|
+
call(nativeExec, re1, 'a');
|
|
27
|
+
call(nativeExec, re2, 'a');
|
|
23
28
|
return re1.lastIndex !== 0 || re2.lastIndex !== 0;
|
|
24
29
|
})();
|
|
25
30
|
|
|
@@ -41,27 +46,27 @@ if (PATCH) {
|
|
|
41
46
|
|
|
42
47
|
if (raw) {
|
|
43
48
|
raw.lastIndex = re.lastIndex;
|
|
44
|
-
result =
|
|
49
|
+
result = call(patchedExec, raw, str);
|
|
45
50
|
re.lastIndex = raw.lastIndex;
|
|
46
51
|
return result;
|
|
47
52
|
}
|
|
48
53
|
|
|
49
54
|
var groups = state.groups;
|
|
50
55
|
var sticky = UNSUPPORTED_Y && re.sticky;
|
|
51
|
-
var flags =
|
|
56
|
+
var flags = call(regexpFlags, re);
|
|
52
57
|
var source = re.source;
|
|
53
58
|
var charsAdded = 0;
|
|
54
59
|
var strCopy = str;
|
|
55
60
|
|
|
56
61
|
if (sticky) {
|
|
57
|
-
flags =
|
|
58
|
-
if (
|
|
62
|
+
flags = replace(flags, 'y', '');
|
|
63
|
+
if (indexOf(flags, 'g') === -1) {
|
|
59
64
|
flags += 'g';
|
|
60
65
|
}
|
|
61
66
|
|
|
62
|
-
strCopy = str
|
|
67
|
+
strCopy = stringSlice(str, re.lastIndex);
|
|
63
68
|
// Support anchored sticky behavior.
|
|
64
|
-
if (re.lastIndex > 0 && (!re.multiline || re.multiline &&
|
|
69
|
+
if (re.lastIndex > 0 && (!re.multiline || re.multiline && charAt(str, re.lastIndex - 1) !== '\n')) {
|
|
65
70
|
source = '(?: ' + source + ')';
|
|
66
71
|
strCopy = ' ' + strCopy;
|
|
67
72
|
charsAdded++;
|
|
@@ -76,12 +81,12 @@ if (PATCH) {
|
|
|
76
81
|
}
|
|
77
82
|
if (UPDATES_LAST_INDEX_WRONG) lastIndex = re.lastIndex;
|
|
78
83
|
|
|
79
|
-
match =
|
|
84
|
+
match = call(nativeExec, sticky ? reCopy : re, strCopy);
|
|
80
85
|
|
|
81
86
|
if (sticky) {
|
|
82
87
|
if (match) {
|
|
83
|
-
match.input = match.input
|
|
84
|
-
match[0] = match[0]
|
|
88
|
+
match.input = stringSlice(match.input, charsAdded);
|
|
89
|
+
match[0] = stringSlice(match[0], charsAdded);
|
|
85
90
|
match.index = re.lastIndex;
|
|
86
91
|
re.lastIndex += match[0].length;
|
|
87
92
|
} else re.lastIndex = 0;
|
|
@@ -91,7 +96,7 @@ if (PATCH) {
|
|
|
91
96
|
if (NPCG_INCLUDED && match && match.length > 1) {
|
|
92
97
|
// Fix browsers whose `exec` methods don't consistently return `undefined`
|
|
93
98
|
// for NPCG, like IE8. NOTE: This doesn' work for /(.?)?/
|
|
94
|
-
|
|
99
|
+
call(nativeReplace, match[0], reCopy, function () {
|
|
95
100
|
for (i = 1; i < arguments.length - 2; i++) {
|
|
96
101
|
if (arguments[i] === undefined) match[i] = undefined;
|
|
97
102
|
}
|
package/internals/set-global.js
CHANGED
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
var global = require('../internals/global');
|
|
2
2
|
|
|
3
|
+
// eslint-disable-next-line es/no-object-defineproperty -- safe
|
|
4
|
+
var defineProperty = Object.defineProperty;
|
|
5
|
+
|
|
3
6
|
module.exports = function (key, value) {
|
|
4
7
|
try {
|
|
5
|
-
|
|
6
|
-
Object.defineProperty(global, key, { value: value, configurable: true, writable: true });
|
|
8
|
+
defineProperty(global, key, { value: value, configurable: true, writable: true });
|
|
7
9
|
} catch (error) {
|
|
8
10
|
global[key] = value;
|
|
9
11
|
} return value;
|