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
package/modules/web.url.js
CHANGED
|
@@ -5,12 +5,16 @@ var $ = require('../internals/export');
|
|
|
5
5
|
var DESCRIPTORS = require('../internals/descriptors');
|
|
6
6
|
var USE_NATIVE_URL = require('../internals/native-url');
|
|
7
7
|
var global = require('../internals/global');
|
|
8
|
+
var bind = require('../internals/function-bind-context');
|
|
9
|
+
var call = require('../internals/function-call');
|
|
10
|
+
var uncurryThis = require('../internals/function-uncurry-this');
|
|
8
11
|
var defineProperties = require('../internals/object-define-properties');
|
|
9
12
|
var redefine = require('../internals/redefine');
|
|
10
13
|
var anInstance = require('../internals/an-instance');
|
|
11
|
-
var
|
|
14
|
+
var hasOwn = require('../internals/has-own-property');
|
|
12
15
|
var assign = require('../internals/object-assign');
|
|
13
16
|
var arrayFrom = require('../internals/array-from');
|
|
17
|
+
var arraySlice = require('../internals/array-slice');
|
|
14
18
|
var codeAt = require('../internals/string-multibyte').codeAt;
|
|
15
19
|
var toASCII = require('../internals/string-punycode-to-ascii');
|
|
16
20
|
var $toString = require('../internals/to-string');
|
|
@@ -18,27 +22,42 @@ var setToStringTag = require('../internals/set-to-string-tag');
|
|
|
18
22
|
var URLSearchParamsModule = require('../modules/web.url-search-params');
|
|
19
23
|
var InternalStateModule = require('../internals/internal-state');
|
|
20
24
|
|
|
21
|
-
var NativeURL = global.URL;
|
|
22
|
-
var URLSearchParams = URLSearchParamsModule.URLSearchParams;
|
|
23
|
-
var getInternalSearchParamsState = URLSearchParamsModule.getState;
|
|
24
25
|
var setInternalState = InternalStateModule.set;
|
|
25
26
|
var getInternalURLState = InternalStateModule.getterFor('URL');
|
|
27
|
+
var URLSearchParams = URLSearchParamsModule.URLSearchParams;
|
|
28
|
+
var getInternalSearchParamsState = URLSearchParamsModule.getState;
|
|
29
|
+
|
|
30
|
+
var NativeURL = global.URL;
|
|
31
|
+
var TypeError = global.TypeError;
|
|
32
|
+
var parseInt = global.parseInt;
|
|
26
33
|
var floor = Math.floor;
|
|
27
34
|
var pow = Math.pow;
|
|
35
|
+
var charAt = uncurryThis(''.charAt);
|
|
36
|
+
var exec = uncurryThis(/./.exec);
|
|
37
|
+
var join = uncurryThis([].join);
|
|
38
|
+
var numberToString = uncurryThis(1.0.toString);
|
|
39
|
+
var pop = uncurryThis([].pop);
|
|
40
|
+
var push = uncurryThis([].push);
|
|
41
|
+
var replace = uncurryThis(''.replace);
|
|
42
|
+
var shift = uncurryThis([].shift);
|
|
43
|
+
var split = uncurryThis(''.split);
|
|
44
|
+
var stringSlice = uncurryThis(''.slice);
|
|
45
|
+
var toLowerCase = uncurryThis(''.toLowerCase);
|
|
46
|
+
var unshift = uncurryThis([].unshift);
|
|
28
47
|
|
|
29
48
|
var INVALID_AUTHORITY = 'Invalid authority';
|
|
30
49
|
var INVALID_SCHEME = 'Invalid scheme';
|
|
31
50
|
var INVALID_HOST = 'Invalid host';
|
|
32
51
|
var INVALID_PORT = 'Invalid port';
|
|
33
52
|
|
|
34
|
-
var ALPHA = /[
|
|
53
|
+
var ALPHA = /[a-z]/i;
|
|
35
54
|
// eslint-disable-next-line regexp/no-obscure-range -- safe
|
|
36
|
-
var ALPHANUMERIC = /[\d+-.
|
|
55
|
+
var ALPHANUMERIC = /[\d+-.a-z]/i;
|
|
37
56
|
var DIGIT = /\d/;
|
|
38
57
|
var HEX_START = /^0x/i;
|
|
39
58
|
var OCT = /^[0-7]+$/;
|
|
40
59
|
var DEC = /^\d+$/;
|
|
41
|
-
var HEX = /^[\
|
|
60
|
+
var HEX = /^[\da-f]+$/i;
|
|
42
61
|
/* eslint-disable regexp/no-control-character -- safe */
|
|
43
62
|
var FORBIDDEN_HOST_CODE_POINT = /[\0\t\n\r #%/:<>?@[\\\]^|]/;
|
|
44
63
|
var FORBIDDEN_HOST_CODE_POINT_EXCLUDING_PERCENT = /[\0\t\n\r #/:<>?@[\\\]^|]/;
|
|
@@ -49,14 +68,14 @@ var EOF;
|
|
|
49
68
|
|
|
50
69
|
var parseHost = function (url, input) {
|
|
51
70
|
var result, codePoints, index;
|
|
52
|
-
if (
|
|
53
|
-
if (
|
|
54
|
-
result = parseIPv6(input
|
|
71
|
+
if (charAt(input, 0) == '[') {
|
|
72
|
+
if (charAt(input, input.length - 1) != ']') return INVALID_HOST;
|
|
73
|
+
result = parseIPv6(stringSlice(input, 1, -1));
|
|
55
74
|
if (!result) return INVALID_HOST;
|
|
56
75
|
url.host = result;
|
|
57
76
|
// opaque host
|
|
58
77
|
} else if (!isSpecial(url)) {
|
|
59
|
-
if (FORBIDDEN_HOST_CODE_POINT_EXCLUDING_PERCENT
|
|
78
|
+
if (exec(FORBIDDEN_HOST_CODE_POINT_EXCLUDING_PERCENT, input)) return INVALID_HOST;
|
|
60
79
|
result = '';
|
|
61
80
|
codePoints = arrayFrom(input);
|
|
62
81
|
for (index = 0; index < codePoints.length; index++) {
|
|
@@ -65,7 +84,7 @@ var parseHost = function (url, input) {
|
|
|
65
84
|
url.host = result;
|
|
66
85
|
} else {
|
|
67
86
|
input = toASCII(input);
|
|
68
|
-
if (FORBIDDEN_HOST_CODE_POINT
|
|
87
|
+
if (exec(FORBIDDEN_HOST_CODE_POINT, input)) return INVALID_HOST;
|
|
69
88
|
result = parseIPv4(input);
|
|
70
89
|
if (result === null) return INVALID_HOST;
|
|
71
90
|
url.host = result;
|
|
@@ -73,10 +92,10 @@ var parseHost = function (url, input) {
|
|
|
73
92
|
};
|
|
74
93
|
|
|
75
94
|
var parseIPv4 = function (input) {
|
|
76
|
-
var parts =
|
|
95
|
+
var parts = split(input, '.');
|
|
77
96
|
var partsLength, numbers, index, part, radix, number, ipv4;
|
|
78
97
|
if (parts.length && parts[parts.length - 1] == '') {
|
|
79
|
-
parts.
|
|
98
|
+
parts.length--;
|
|
80
99
|
}
|
|
81
100
|
partsLength = parts.length;
|
|
82
101
|
if (partsLength > 4) return input;
|
|
@@ -85,17 +104,17 @@ var parseIPv4 = function (input) {
|
|
|
85
104
|
part = parts[index];
|
|
86
105
|
if (part == '') return input;
|
|
87
106
|
radix = 10;
|
|
88
|
-
if (part.length > 1 &&
|
|
89
|
-
radix = HEX_START
|
|
90
|
-
part = part
|
|
107
|
+
if (part.length > 1 && charAt(part, 0) == '0') {
|
|
108
|
+
radix = exec(HEX_START, part) ? 16 : 8;
|
|
109
|
+
part = stringSlice(part, radix == 8 ? 1 : 2);
|
|
91
110
|
}
|
|
92
111
|
if (part === '') {
|
|
93
112
|
number = 0;
|
|
94
113
|
} else {
|
|
95
|
-
if (!(radix == 10 ? DEC : radix == 8 ? OCT : HEX
|
|
114
|
+
if (!exec(radix == 10 ? DEC : radix == 8 ? OCT : HEX, part)) return input;
|
|
96
115
|
number = parseInt(part, radix);
|
|
97
116
|
}
|
|
98
|
-
|
|
117
|
+
push(numbers, number);
|
|
99
118
|
}
|
|
100
119
|
for (index = 0; index < partsLength; index++) {
|
|
101
120
|
number = numbers[index];
|
|
@@ -103,7 +122,7 @@ var parseIPv4 = function (input) {
|
|
|
103
122
|
if (number >= pow(256, 5 - partsLength)) return null;
|
|
104
123
|
} else if (number > 255) return null;
|
|
105
124
|
}
|
|
106
|
-
ipv4 =
|
|
125
|
+
ipv4 = pop(numbers);
|
|
107
126
|
for (index = 0; index < numbers.length; index++) {
|
|
108
127
|
ipv4 += numbers[index] * pow(256, 3 - index);
|
|
109
128
|
}
|
|
@@ -119,11 +138,11 @@ var parseIPv6 = function (input) {
|
|
|
119
138
|
var value, length, numbersSeen, ipv4Piece, number, swaps, swap;
|
|
120
139
|
|
|
121
140
|
var chr = function () {
|
|
122
|
-
return
|
|
141
|
+
return charAt(input, pointer);
|
|
123
142
|
};
|
|
124
143
|
|
|
125
144
|
if (chr() == ':') {
|
|
126
|
-
if (
|
|
145
|
+
if (charAt(input, 1) != ':') return;
|
|
127
146
|
pointer += 2;
|
|
128
147
|
pieceIndex++;
|
|
129
148
|
compress = pieceIndex;
|
|
@@ -138,7 +157,7 @@ var parseIPv6 = function (input) {
|
|
|
138
157
|
continue;
|
|
139
158
|
}
|
|
140
159
|
value = length = 0;
|
|
141
|
-
while (length < 4 && HEX
|
|
160
|
+
while (length < 4 && exec(HEX, chr())) {
|
|
142
161
|
value = value * 16 + parseInt(chr(), 16);
|
|
143
162
|
pointer++;
|
|
144
163
|
length++;
|
|
@@ -154,8 +173,8 @@ var parseIPv6 = function (input) {
|
|
|
154
173
|
if (chr() == '.' && numbersSeen < 4) pointer++;
|
|
155
174
|
else return;
|
|
156
175
|
}
|
|
157
|
-
if (!DIGIT
|
|
158
|
-
while (DIGIT
|
|
176
|
+
if (!exec(DIGIT, chr())) return;
|
|
177
|
+
while (exec(DIGIT, chr())) {
|
|
159
178
|
number = parseInt(chr(), 10);
|
|
160
179
|
if (ipv4Piece === null) ipv4Piece = number;
|
|
161
180
|
else if (ipv4Piece == 0) return;
|
|
@@ -219,9 +238,9 @@ var serializeHost = function (host) {
|
|
|
219
238
|
if (typeof host == 'number') {
|
|
220
239
|
result = [];
|
|
221
240
|
for (index = 0; index < 4; index++) {
|
|
222
|
-
|
|
241
|
+
unshift(result, host % 256);
|
|
223
242
|
host = floor(host / 256);
|
|
224
|
-
} return
|
|
243
|
+
} return join(result, '.');
|
|
225
244
|
// ipv6
|
|
226
245
|
} else if (typeof host == 'object') {
|
|
227
246
|
result = '';
|
|
@@ -233,7 +252,7 @@ var serializeHost = function (host) {
|
|
|
233
252
|
result += index ? ':' : '::';
|
|
234
253
|
ignore0 = true;
|
|
235
254
|
} else {
|
|
236
|
-
result += host[index]
|
|
255
|
+
result += numberToString(host[index], 16);
|
|
237
256
|
if (index < 7) result += ':';
|
|
238
257
|
}
|
|
239
258
|
}
|
|
@@ -254,7 +273,7 @@ var userinfoPercentEncodeSet = assign({}, pathPercentEncodeSet, {
|
|
|
254
273
|
|
|
255
274
|
var percentEncode = function (chr, set) {
|
|
256
275
|
var code = codeAt(chr, 0);
|
|
257
|
-
return code > 0x20 && code < 0x7F && !
|
|
276
|
+
return code > 0x20 && code < 0x7F && !hasOwn(set, chr) ? chr : encodeURIComponent(chr);
|
|
258
277
|
};
|
|
259
278
|
|
|
260
279
|
var specialSchemes = {
|
|
@@ -267,7 +286,7 @@ var specialSchemes = {
|
|
|
267
286
|
};
|
|
268
287
|
|
|
269
288
|
var isSpecial = function (url) {
|
|
270
|
-
return
|
|
289
|
+
return hasOwn(specialSchemes, url.scheme);
|
|
271
290
|
};
|
|
272
291
|
|
|
273
292
|
var includesCredentials = function (url) {
|
|
@@ -280,15 +299,15 @@ var cannotHaveUsernamePasswordPort = function (url) {
|
|
|
280
299
|
|
|
281
300
|
var isWindowsDriveLetter = function (string, normalized) {
|
|
282
301
|
var second;
|
|
283
|
-
return string.length == 2 && ALPHA
|
|
284
|
-
&& ((second =
|
|
302
|
+
return string.length == 2 && exec(ALPHA, charAt(string, 0))
|
|
303
|
+
&& ((second = charAt(string, 1)) == ':' || (!normalized && second == '|'));
|
|
285
304
|
};
|
|
286
305
|
|
|
287
306
|
var startsWithWindowsDriveLetter = function (string) {
|
|
288
307
|
var third;
|
|
289
|
-
return string.length > 1 && isWindowsDriveLetter(string
|
|
308
|
+
return string.length > 1 && isWindowsDriveLetter(stringSlice(string, 0, 2)) && (
|
|
290
309
|
string.length == 2 ||
|
|
291
|
-
((third =
|
|
310
|
+
((third = charAt(string, 2)) === '/' || third === '\\' || third === '?' || third === '#')
|
|
292
311
|
);
|
|
293
312
|
};
|
|
294
313
|
|
|
@@ -296,16 +315,16 @@ var shortenURLsPath = function (url) {
|
|
|
296
315
|
var path = url.path;
|
|
297
316
|
var pathSize = path.length;
|
|
298
317
|
if (pathSize && (url.scheme != 'file' || pathSize != 1 || !isWindowsDriveLetter(path[0], true))) {
|
|
299
|
-
path.
|
|
318
|
+
path.length--;
|
|
300
319
|
}
|
|
301
320
|
};
|
|
302
321
|
|
|
303
322
|
var isSingleDot = function (segment) {
|
|
304
|
-
return segment === '.' ||
|
|
323
|
+
return segment === '.' || toLowerCase(segment) === '%2e';
|
|
305
324
|
};
|
|
306
325
|
|
|
307
326
|
var isDoubleDot = function (segment) {
|
|
308
|
-
segment =
|
|
327
|
+
segment = toLowerCase(segment);
|
|
309
328
|
return segment === '..' || segment === '%2e.' || segment === '.%2e' || segment === '%2e%2e';
|
|
310
329
|
};
|
|
311
330
|
|
|
@@ -352,10 +371,10 @@ var parseURL = function (url, input, stateOverride, base) {
|
|
|
352
371
|
url.query = null;
|
|
353
372
|
url.fragment = null;
|
|
354
373
|
url.cannotBeABaseURL = false;
|
|
355
|
-
input =
|
|
374
|
+
input = replace(input, LEADING_AND_TRAILING_C0_CONTROL_OR_SPACE, '');
|
|
356
375
|
}
|
|
357
376
|
|
|
358
|
-
input =
|
|
377
|
+
input = replace(input, TAB_AND_NEW_LINE, '');
|
|
359
378
|
|
|
360
379
|
codePoints = arrayFrom(input);
|
|
361
380
|
|
|
@@ -363,8 +382,8 @@ var parseURL = function (url, input, stateOverride, base) {
|
|
|
363
382
|
chr = codePoints[pointer];
|
|
364
383
|
switch (state) {
|
|
365
384
|
case SCHEME_START:
|
|
366
|
-
if (chr && ALPHA
|
|
367
|
-
buffer +=
|
|
385
|
+
if (chr && exec(ALPHA, chr)) {
|
|
386
|
+
buffer += toLowerCase(chr);
|
|
368
387
|
state = SCHEME;
|
|
369
388
|
} else if (!stateOverride) {
|
|
370
389
|
state = NO_SCHEME;
|
|
@@ -373,11 +392,11 @@ var parseURL = function (url, input, stateOverride, base) {
|
|
|
373
392
|
break;
|
|
374
393
|
|
|
375
394
|
case SCHEME:
|
|
376
|
-
if (chr && (ALPHANUMERIC
|
|
377
|
-
buffer +=
|
|
395
|
+
if (chr && (exec(ALPHANUMERIC, chr) || chr == '+' || chr == '-' || chr == '.')) {
|
|
396
|
+
buffer += toLowerCase(chr);
|
|
378
397
|
} else if (chr == ':') {
|
|
379
398
|
if (stateOverride && (
|
|
380
|
-
(isSpecial(url) !=
|
|
399
|
+
(isSpecial(url) != hasOwn(specialSchemes, buffer)) ||
|
|
381
400
|
(buffer == 'file' && (includesCredentials(url) || url.port !== null)) ||
|
|
382
401
|
(url.scheme == 'file' && !url.host)
|
|
383
402
|
)) return;
|
|
@@ -398,7 +417,7 @@ var parseURL = function (url, input, stateOverride, base) {
|
|
|
398
417
|
pointer++;
|
|
399
418
|
} else {
|
|
400
419
|
url.cannotBeABaseURL = true;
|
|
401
|
-
url.path
|
|
420
|
+
push(url.path, '');
|
|
402
421
|
state = CANNOT_BE_A_BASE_URL_PATH;
|
|
403
422
|
}
|
|
404
423
|
} else if (!stateOverride) {
|
|
@@ -413,7 +432,7 @@ var parseURL = function (url, input, stateOverride, base) {
|
|
|
413
432
|
if (!base || (base.cannotBeABaseURL && chr != '#')) return INVALID_SCHEME;
|
|
414
433
|
if (base.cannotBeABaseURL && chr == '#') {
|
|
415
434
|
url.scheme = base.scheme;
|
|
416
|
-
url.path = base.path
|
|
435
|
+
url.path = arraySlice(base.path);
|
|
417
436
|
url.query = base.query;
|
|
418
437
|
url.fragment = '';
|
|
419
438
|
url.cannotBeABaseURL = true;
|
|
@@ -448,7 +467,7 @@ var parseURL = function (url, input, stateOverride, base) {
|
|
|
448
467
|
url.password = base.password;
|
|
449
468
|
url.host = base.host;
|
|
450
469
|
url.port = base.port;
|
|
451
|
-
url.path = base.path
|
|
470
|
+
url.path = arraySlice(base.path);
|
|
452
471
|
url.query = base.query;
|
|
453
472
|
} else if (chr == '/' || (chr == '\\' && isSpecial(url))) {
|
|
454
473
|
state = RELATIVE_SLASH;
|
|
@@ -457,7 +476,7 @@ var parseURL = function (url, input, stateOverride, base) {
|
|
|
457
476
|
url.password = base.password;
|
|
458
477
|
url.host = base.host;
|
|
459
478
|
url.port = base.port;
|
|
460
|
-
url.path = base.path
|
|
479
|
+
url.path = arraySlice(base.path);
|
|
461
480
|
url.query = '';
|
|
462
481
|
state = QUERY;
|
|
463
482
|
} else if (chr == '#') {
|
|
@@ -465,7 +484,7 @@ var parseURL = function (url, input, stateOverride, base) {
|
|
|
465
484
|
url.password = base.password;
|
|
466
485
|
url.host = base.host;
|
|
467
486
|
url.port = base.port;
|
|
468
|
-
url.path = base.path
|
|
487
|
+
url.path = arraySlice(base.path);
|
|
469
488
|
url.query = base.query;
|
|
470
489
|
url.fragment = '';
|
|
471
490
|
state = FRAGMENT;
|
|
@@ -474,8 +493,8 @@ var parseURL = function (url, input, stateOverride, base) {
|
|
|
474
493
|
url.password = base.password;
|
|
475
494
|
url.host = base.host;
|
|
476
495
|
url.port = base.port;
|
|
477
|
-
url.path = base.path
|
|
478
|
-
url.path.
|
|
496
|
+
url.path = arraySlice(base.path);
|
|
497
|
+
url.path.length--;
|
|
479
498
|
state = PATH;
|
|
480
499
|
continue;
|
|
481
500
|
} break;
|
|
@@ -496,7 +515,7 @@ var parseURL = function (url, input, stateOverride, base) {
|
|
|
496
515
|
|
|
497
516
|
case SPECIAL_AUTHORITY_SLASHES:
|
|
498
517
|
state = SPECIAL_AUTHORITY_IGNORE_SLASHES;
|
|
499
|
-
if (chr != '/' ||
|
|
518
|
+
if (chr != '/' || charAt(buffer, pointer + 1) != '/') continue;
|
|
500
519
|
pointer++;
|
|
501
520
|
break;
|
|
502
521
|
|
|
@@ -564,7 +583,7 @@ var parseURL = function (url, input, stateOverride, base) {
|
|
|
564
583
|
} break;
|
|
565
584
|
|
|
566
585
|
case PORT:
|
|
567
|
-
if (DIGIT
|
|
586
|
+
if (exec(DIGIT, chr)) {
|
|
568
587
|
buffer += chr;
|
|
569
588
|
} else if (
|
|
570
589
|
chr == EOF || chr == '/' || chr == '?' || chr == '#' ||
|
|
@@ -589,23 +608,23 @@ var parseURL = function (url, input, stateOverride, base) {
|
|
|
589
608
|
else if (base && base.scheme == 'file') {
|
|
590
609
|
if (chr == EOF) {
|
|
591
610
|
url.host = base.host;
|
|
592
|
-
url.path = base.path
|
|
611
|
+
url.path = arraySlice(base.path);
|
|
593
612
|
url.query = base.query;
|
|
594
613
|
} else if (chr == '?') {
|
|
595
614
|
url.host = base.host;
|
|
596
|
-
url.path = base.path
|
|
615
|
+
url.path = arraySlice(base.path);
|
|
597
616
|
url.query = '';
|
|
598
617
|
state = QUERY;
|
|
599
618
|
} else if (chr == '#') {
|
|
600
619
|
url.host = base.host;
|
|
601
|
-
url.path = base.path
|
|
620
|
+
url.path = arraySlice(base.path);
|
|
602
621
|
url.query = base.query;
|
|
603
622
|
url.fragment = '';
|
|
604
623
|
state = FRAGMENT;
|
|
605
624
|
} else {
|
|
606
|
-
if (!startsWithWindowsDriveLetter(codePoints
|
|
625
|
+
if (!startsWithWindowsDriveLetter(join(arraySlice(codePoints, pointer), ''))) {
|
|
607
626
|
url.host = base.host;
|
|
608
|
-
url.path = base.path
|
|
627
|
+
url.path = arraySlice(base.path);
|
|
609
628
|
shortenURLsPath(url);
|
|
610
629
|
}
|
|
611
630
|
state = PATH;
|
|
@@ -621,8 +640,8 @@ var parseURL = function (url, input, stateOverride, base) {
|
|
|
621
640
|
state = FILE_HOST;
|
|
622
641
|
break;
|
|
623
642
|
}
|
|
624
|
-
if (base && base.scheme == 'file' && !startsWithWindowsDriveLetter(codePoints
|
|
625
|
-
if (isWindowsDriveLetter(base.path[0], true)) url.path
|
|
643
|
+
if (base && base.scheme == 'file' && !startsWithWindowsDriveLetter(join(arraySlice(codePoints, pointer), ''))) {
|
|
644
|
+
if (isWindowsDriveLetter(base.path[0], true)) push(url.path, base.path[0]);
|
|
626
645
|
else url.host = base.host;
|
|
627
646
|
}
|
|
628
647
|
state = PATH;
|
|
@@ -671,23 +690,23 @@ var parseURL = function (url, input, stateOverride, base) {
|
|
|
671
690
|
if (isDoubleDot(buffer)) {
|
|
672
691
|
shortenURLsPath(url);
|
|
673
692
|
if (chr != '/' && !(chr == '\\' && isSpecial(url))) {
|
|
674
|
-
url.path
|
|
693
|
+
push(url.path, '');
|
|
675
694
|
}
|
|
676
695
|
} else if (isSingleDot(buffer)) {
|
|
677
696
|
if (chr != '/' && !(chr == '\\' && isSpecial(url))) {
|
|
678
|
-
url.path
|
|
697
|
+
push(url.path, '');
|
|
679
698
|
}
|
|
680
699
|
} else {
|
|
681
700
|
if (url.scheme == 'file' && !url.path.length && isWindowsDriveLetter(buffer)) {
|
|
682
701
|
if (url.host) url.host = '';
|
|
683
|
-
buffer =
|
|
702
|
+
buffer = charAt(buffer, 0) + ':'; // normalize windows drive letter
|
|
684
703
|
}
|
|
685
|
-
url.path
|
|
704
|
+
push(url.path, buffer);
|
|
686
705
|
}
|
|
687
706
|
buffer = '';
|
|
688
707
|
if (url.scheme == 'file' && (chr == EOF || chr == '?' || chr == '#')) {
|
|
689
708
|
while (url.path.length > 1 && url.path[0] === '') {
|
|
690
|
-
url.path
|
|
709
|
+
shift(url.path);
|
|
691
710
|
}
|
|
692
711
|
}
|
|
693
712
|
if (chr == '?') {
|
|
@@ -734,14 +753,15 @@ var parseURL = function (url, input, stateOverride, base) {
|
|
|
734
753
|
// `URL` constructor
|
|
735
754
|
// https://url.spec.whatwg.org/#url-class
|
|
736
755
|
var URLConstructor = function URL(url /* , base */) {
|
|
737
|
-
var that = anInstance(this,
|
|
756
|
+
var that = anInstance(this, URLPrototype);
|
|
738
757
|
var base = arguments.length > 1 ? arguments[1] : undefined;
|
|
739
758
|
var urlString = $toString(url);
|
|
740
759
|
var state = setInternalState(that, { type: 'URL' });
|
|
741
760
|
var baseState, failure;
|
|
742
761
|
if (base !== undefined) {
|
|
743
|
-
|
|
744
|
-
|
|
762
|
+
try {
|
|
763
|
+
baseState = getInternalURLState(base);
|
|
764
|
+
} catch (error) {
|
|
745
765
|
failure = parseURL(baseState = {}, $toString(base));
|
|
746
766
|
if (failure) throw TypeError(failure);
|
|
747
767
|
}
|
|
@@ -752,21 +772,21 @@ var URLConstructor = function URL(url /* , base */) {
|
|
|
752
772
|
var searchParamsState = getInternalSearchParamsState(searchParams);
|
|
753
773
|
searchParamsState.updateSearchParams(state.query);
|
|
754
774
|
searchParamsState.updateURL = function () {
|
|
755
|
-
state.query =
|
|
775
|
+
state.query = $toString(searchParams) || null;
|
|
756
776
|
};
|
|
757
777
|
if (!DESCRIPTORS) {
|
|
758
|
-
that.href =
|
|
759
|
-
that.origin =
|
|
760
|
-
that.protocol =
|
|
761
|
-
that.username =
|
|
762
|
-
that.password =
|
|
763
|
-
that.host =
|
|
764
|
-
that.hostname =
|
|
765
|
-
that.port =
|
|
766
|
-
that.pathname =
|
|
767
|
-
that.search =
|
|
768
|
-
that.searchParams =
|
|
769
|
-
that.hash =
|
|
778
|
+
that.href = call(serializeURL, that);
|
|
779
|
+
that.origin = call(getOrigin, that);
|
|
780
|
+
that.protocol = call(getProtocol, that);
|
|
781
|
+
that.username = call(getUsername, that);
|
|
782
|
+
that.password = call(getPassword, that);
|
|
783
|
+
that.host = call(getHost, that);
|
|
784
|
+
that.hostname = call(getHostname, that);
|
|
785
|
+
that.port = call(getPort, that);
|
|
786
|
+
that.pathname = call(getPathname, that);
|
|
787
|
+
that.search = call(getSearch, that);
|
|
788
|
+
that.searchParams = call(getSearchParams, that);
|
|
789
|
+
that.hash = call(getHash, that);
|
|
770
790
|
}
|
|
771
791
|
};
|
|
772
792
|
|
|
@@ -791,7 +811,7 @@ var serializeURL = function () {
|
|
|
791
811
|
output += serializeHost(host);
|
|
792
812
|
if (port !== null) output += ':' + port;
|
|
793
813
|
} else if (scheme == 'file') output += '//';
|
|
794
|
-
output += url.cannotBeABaseURL ? path[0] : path.length ? '/' +
|
|
814
|
+
output += url.cannotBeABaseURL ? path[0] : path.length ? '/' + join(path, '/') : '';
|
|
795
815
|
if (query !== null) output += '?' + query;
|
|
796
816
|
if (fragment !== null) output += '#' + fragment;
|
|
797
817
|
return output;
|
|
@@ -838,13 +858,13 @@ var getHostname = function () {
|
|
|
838
858
|
|
|
839
859
|
var getPort = function () {
|
|
840
860
|
var port = getInternalURLState(this).port;
|
|
841
|
-
return port === null ? '' :
|
|
861
|
+
return port === null ? '' : $toString(port);
|
|
842
862
|
};
|
|
843
863
|
|
|
844
864
|
var getPathname = function () {
|
|
845
865
|
var url = getInternalURLState(this);
|
|
846
866
|
var path = url.path;
|
|
847
|
-
return url.cannotBeABaseURL ? path[0] : path.length ? '/' +
|
|
867
|
+
return url.cannotBeABaseURL ? path[0] : path.length ? '/' + join(path, '/') : '';
|
|
848
868
|
};
|
|
849
869
|
|
|
850
870
|
var getSearch = function () {
|
|
@@ -946,7 +966,7 @@ if (DESCRIPTORS) {
|
|
|
946
966
|
if (search == '') {
|
|
947
967
|
url.query = null;
|
|
948
968
|
} else {
|
|
949
|
-
if ('?' ==
|
|
969
|
+
if ('?' == charAt(search, 0)) search = stringSlice(search, 1);
|
|
950
970
|
url.query = '';
|
|
951
971
|
parseURL(url, search, QUERY);
|
|
952
972
|
}
|
|
@@ -964,7 +984,7 @@ if (DESCRIPTORS) {
|
|
|
964
984
|
url.fragment = null;
|
|
965
985
|
return;
|
|
966
986
|
}
|
|
967
|
-
if ('#' ==
|
|
987
|
+
if ('#' == charAt(hash, 0)) hash = stringSlice(hash, 1);
|
|
968
988
|
url.fragment = '';
|
|
969
989
|
parseURL(url, hash, FRAGMENT);
|
|
970
990
|
})
|
|
@@ -974,13 +994,13 @@ if (DESCRIPTORS) {
|
|
|
974
994
|
// `URL.prototype.toJSON` method
|
|
975
995
|
// https://url.spec.whatwg.org/#dom-url-tojson
|
|
976
996
|
redefine(URLPrototype, 'toJSON', function toJSON() {
|
|
977
|
-
return
|
|
997
|
+
return call(serializeURL, this);
|
|
978
998
|
}, { enumerable: true });
|
|
979
999
|
|
|
980
1000
|
// `URL.prototype.toString` method
|
|
981
1001
|
// https://url.spec.whatwg.org/#URL-stringification-behavior
|
|
982
1002
|
redefine(URLPrototype, 'toString', function toString() {
|
|
983
|
-
return
|
|
1003
|
+
return call(serializeURL, this);
|
|
984
1004
|
}, { enumerable: true });
|
|
985
1005
|
|
|
986
1006
|
if (NativeURL) {
|
|
@@ -988,16 +1008,10 @@ if (NativeURL) {
|
|
|
988
1008
|
var nativeRevokeObjectURL = NativeURL.revokeObjectURL;
|
|
989
1009
|
// `URL.createObjectURL` method
|
|
990
1010
|
// https://developer.mozilla.org/en-US/docs/Web/API/URL/createObjectURL
|
|
991
|
-
|
|
992
|
-
if (nativeCreateObjectURL) redefine(URLConstructor, 'createObjectURL', function createObjectURL(blob) {
|
|
993
|
-
return nativeCreateObjectURL.apply(NativeURL, arguments);
|
|
994
|
-
});
|
|
1011
|
+
if (nativeCreateObjectURL) redefine(URLConstructor, 'createObjectURL', bind(nativeCreateObjectURL, NativeURL));
|
|
995
1012
|
// `URL.revokeObjectURL` method
|
|
996
1013
|
// https://developer.mozilla.org/en-US/docs/Web/API/URL/revokeObjectURL
|
|
997
|
-
|
|
998
|
-
if (nativeRevokeObjectURL) redefine(URLConstructor, 'revokeObjectURL', function revokeObjectURL(url) {
|
|
999
|
-
return nativeRevokeObjectURL.apply(NativeURL, arguments);
|
|
1000
|
-
});
|
|
1014
|
+
if (nativeRevokeObjectURL) redefine(URLConstructor, 'revokeObjectURL', bind(nativeRevokeObjectURL, NativeURL));
|
|
1001
1015
|
}
|
|
1002
1016
|
|
|
1003
1017
|
setToStringTag(URLConstructor, 'URL');
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
var $ = require('../internals/export');
|
|
3
|
+
var call = require('../internals/function-call');
|
|
3
4
|
|
|
4
5
|
// `URL.prototype.toJSON` method
|
|
5
6
|
// https://url.spec.whatwg.org/#dom-url-tojson
|
|
6
7
|
$({ target: 'URL', proto: true, enumerable: true }, {
|
|
7
8
|
toJSON: function toJSON() {
|
|
8
|
-
return URL.prototype.toString
|
|
9
|
+
return call(URL.prototype.toString, this);
|
|
9
10
|
}
|
|
10
11
|
});
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "core-js",
|
|
3
3
|
"description": "Standard library",
|
|
4
|
-
"version": "3.
|
|
4
|
+
"version": "3.19.1",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
7
7
|
"url": "https://github.com/zloirock/core-js.git"
|
|
@@ -54,5 +54,5 @@
|
|
|
54
54
|
"scripts": {
|
|
55
55
|
"postinstall": "node -e \"try{require('./postinstall')}catch(e){}\""
|
|
56
56
|
},
|
|
57
|
-
"gitHead": "
|
|
57
|
+
"gitHead": "1f16f36fa2807bbe793b9da852a110e6c6077693"
|
|
58
58
|
}
|
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
require('../../modules/web.dom-collections.iterator');
|
|
2
|
-
var entries = require('../array/virtual/entries');
|
|
3
2
|
var classof = require('../../internals/classof');
|
|
3
|
+
var hasOwn = require('../../internals/has-own-property');
|
|
4
|
+
var isPrototypeOf = require('../../internals/object-is-prototype-of');
|
|
5
|
+
var method = require('../array/virtual/entries');
|
|
6
|
+
|
|
4
7
|
var ArrayPrototype = Array.prototype;
|
|
5
8
|
|
|
6
9
|
var DOMIterables = {
|
|
@@ -10,7 +13,6 @@ var DOMIterables = {
|
|
|
10
13
|
|
|
11
14
|
module.exports = function (it) {
|
|
12
15
|
var own = it.entries;
|
|
13
|
-
return it === ArrayPrototype || (it
|
|
14
|
-
|
|
15
|
-
|| DOMIterables.hasOwnProperty(classof(it)) ? entries : own;
|
|
16
|
+
return it === ArrayPrototype || (isPrototypeOf(ArrayPrototype, it) && own === ArrayPrototype.entries)
|
|
17
|
+
|| hasOwn(DOMIterables, classof(it)) ? method : own;
|
|
16
18
|
};
|
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
require('../../modules/web.dom-collections.iterator');
|
|
2
|
-
var forEach = require('../array/virtual/for-each');
|
|
3
2
|
var classof = require('../../internals/classof');
|
|
3
|
+
var hasOwn = require('../../internals/has-own-property');
|
|
4
|
+
var isPrototypeOf = require('../../internals/object-is-prototype-of');
|
|
5
|
+
var method = require('../array/virtual/for-each');
|
|
6
|
+
|
|
4
7
|
var ArrayPrototype = Array.prototype;
|
|
5
8
|
|
|
6
9
|
var DOMIterables = {
|
|
@@ -10,7 +13,6 @@ var DOMIterables = {
|
|
|
10
13
|
|
|
11
14
|
module.exports = function (it) {
|
|
12
15
|
var own = it.forEach;
|
|
13
|
-
return it === ArrayPrototype || (it
|
|
14
|
-
|
|
15
|
-
|| DOMIterables.hasOwnProperty(classof(it)) ? forEach : own;
|
|
16
|
+
return it === ArrayPrototype || (isPrototypeOf(ArrayPrototype, it) && own === ArrayPrototype.forEach)
|
|
17
|
+
|| hasOwn(DOMIterables, classof(it)) ? method : own;
|
|
16
18
|
};
|
package/stable/instance/keys.js
CHANGED
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
require('../../modules/web.dom-collections.iterator');
|
|
2
|
-
var keys = require('../array/virtual/keys');
|
|
3
2
|
var classof = require('../../internals/classof');
|
|
3
|
+
var hasOwn = require('../../internals/has-own-property');
|
|
4
|
+
var isPrototypeOf = require('../../internals/object-is-prototype-of');
|
|
5
|
+
var method = require('../array/virtual/keys');
|
|
6
|
+
|
|
4
7
|
var ArrayPrototype = Array.prototype;
|
|
5
8
|
|
|
6
9
|
var DOMIterables = {
|
|
@@ -10,7 +13,6 @@ var DOMIterables = {
|
|
|
10
13
|
|
|
11
14
|
module.exports = function (it) {
|
|
12
15
|
var own = it.keys;
|
|
13
|
-
return it === ArrayPrototype || (it
|
|
14
|
-
|
|
15
|
-
|| DOMIterables.hasOwnProperty(classof(it)) ? keys : own;
|
|
16
|
+
return it === ArrayPrototype || (isPrototypeOf(ArrayPrototype, it) && own === ArrayPrototype.keys)
|
|
17
|
+
|| hasOwn(DOMIterables, classof(it)) ? method : own;
|
|
16
18
|
};
|
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
require('../../modules/web.dom-collections.iterator');
|
|
2
|
-
var values = require('../array/virtual/values');
|
|
3
2
|
var classof = require('../../internals/classof');
|
|
3
|
+
var hasOwn = require('../../internals/has-own-property');
|
|
4
|
+
var isPrototypeOf = require('../../internals/object-is-prototype-of');
|
|
5
|
+
var method = require('../array/virtual/values');
|
|
6
|
+
|
|
4
7
|
var ArrayPrototype = Array.prototype;
|
|
5
8
|
|
|
6
9
|
var DOMIterables = {
|
|
@@ -10,7 +13,6 @@ var DOMIterables = {
|
|
|
10
13
|
|
|
11
14
|
module.exports = function (it) {
|
|
12
15
|
var own = it.values;
|
|
13
|
-
return it === ArrayPrototype || (it
|
|
14
|
-
|
|
15
|
-
|| DOMIterables.hasOwnProperty(classof(it)) ? values : own;
|
|
16
|
+
return it === ArrayPrototype || (isPrototypeOf(ArrayPrototype, it) && own === ArrayPrototype.values)
|
|
17
|
+
|| hasOwn(DOMIterables, classof(it)) ? method : own;
|
|
16
18
|
};
|