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
|
@@ -2,7 +2,10 @@
|
|
|
2
2
|
// TODO: in core-js@4, move /modules/ dependencies to public entries for better optimization by tools like `preset-env`
|
|
3
3
|
require('../modules/es.array.iterator');
|
|
4
4
|
var $ = require('../internals/export');
|
|
5
|
+
var global = require('../internals/global');
|
|
5
6
|
var getBuiltIn = require('../internals/get-built-in');
|
|
7
|
+
var call = require('../internals/function-call');
|
|
8
|
+
var uncurryThis = require('../internals/function-uncurry-this');
|
|
6
9
|
var USE_NATIVE_URL = require('../internals/native-url');
|
|
7
10
|
var redefine = require('../internals/redefine');
|
|
8
11
|
var redefineAll = require('../internals/redefine-all');
|
|
@@ -11,7 +14,7 @@ var createIteratorConstructor = require('../internals/create-iterator-constructo
|
|
|
11
14
|
var InternalStateModule = require('../internals/internal-state');
|
|
12
15
|
var anInstance = require('../internals/an-instance');
|
|
13
16
|
var isCallable = require('../internals/is-callable');
|
|
14
|
-
var hasOwn = require('../internals/has');
|
|
17
|
+
var hasOwn = require('../internals/has-own-property');
|
|
15
18
|
var bind = require('../internals/function-bind-context');
|
|
16
19
|
var classof = require('../internals/classof');
|
|
17
20
|
var anObject = require('../internals/an-object');
|
|
@@ -22,11 +25,8 @@ var createPropertyDescriptor = require('../internals/create-property-descriptor'
|
|
|
22
25
|
var getIterator = require('../internals/get-iterator');
|
|
23
26
|
var getIteratorMethod = require('../internals/get-iterator-method');
|
|
24
27
|
var wellKnownSymbol = require('../internals/well-known-symbol');
|
|
28
|
+
var arraySort = require('../internals/array-sort');
|
|
25
29
|
|
|
26
|
-
var nativeFetch = getBuiltIn('fetch');
|
|
27
|
-
var NativeRequest = getBuiltIn('Request');
|
|
28
|
-
var RequestPrototype = NativeRequest && NativeRequest.prototype;
|
|
29
|
-
var Headers = getBuiltIn('Headers');
|
|
30
30
|
var ITERATOR = wellKnownSymbol('iterator');
|
|
31
31
|
var URL_SEARCH_PARAMS = 'URLSearchParams';
|
|
32
32
|
var URL_SEARCH_PARAMS_ITERATOR = URL_SEARCH_PARAMS + 'Iterator';
|
|
@@ -34,6 +34,24 @@ var setInternalState = InternalStateModule.set;
|
|
|
34
34
|
var getInternalParamsState = InternalStateModule.getterFor(URL_SEARCH_PARAMS);
|
|
35
35
|
var getInternalIteratorState = InternalStateModule.getterFor(URL_SEARCH_PARAMS_ITERATOR);
|
|
36
36
|
|
|
37
|
+
var n$Fetch = getBuiltIn('fetch');
|
|
38
|
+
var N$Request = getBuiltIn('Request');
|
|
39
|
+
var Headers = getBuiltIn('Headers');
|
|
40
|
+
var RequestPrototype = N$Request && N$Request.prototype;
|
|
41
|
+
var HeadersPrototype = Headers && Headers.prototype;
|
|
42
|
+
var RegExp = global.RegExp;
|
|
43
|
+
var TypeError = global.TypeError;
|
|
44
|
+
var decodeURIComponent = global.decodeURIComponent;
|
|
45
|
+
var encodeURIComponent = global.encodeURIComponent;
|
|
46
|
+
var charAt = uncurryThis(''.charAt);
|
|
47
|
+
var join = uncurryThis([].join);
|
|
48
|
+
var push = uncurryThis([].push);
|
|
49
|
+
var replace = uncurryThis(''.replace);
|
|
50
|
+
var shift = uncurryThis([].shift);
|
|
51
|
+
var splice = uncurryThis([].splice);
|
|
52
|
+
var split = uncurryThis(''.split);
|
|
53
|
+
var stringSlice = uncurryThis(''.slice);
|
|
54
|
+
|
|
37
55
|
var plus = /\+/g;
|
|
38
56
|
var sequences = Array(4);
|
|
39
57
|
|
|
@@ -50,13 +68,13 @@ var percentDecode = function (sequence) {
|
|
|
50
68
|
};
|
|
51
69
|
|
|
52
70
|
var deserialize = function (it) {
|
|
53
|
-
var result =
|
|
71
|
+
var result = replace(it, plus, ' ');
|
|
54
72
|
var bytes = 4;
|
|
55
73
|
try {
|
|
56
74
|
return decodeURIComponent(result);
|
|
57
75
|
} catch (error) {
|
|
58
76
|
while (bytes) {
|
|
59
|
-
result =
|
|
77
|
+
result = replace(result, percentSequence(bytes--), percentDecode);
|
|
60
78
|
}
|
|
61
79
|
return result;
|
|
62
80
|
}
|
|
@@ -64,7 +82,7 @@ var deserialize = function (it) {
|
|
|
64
82
|
|
|
65
83
|
var find = /[!'()~]|%20/g;
|
|
66
84
|
|
|
67
|
-
var
|
|
85
|
+
var replacements = {
|
|
68
86
|
'!': '%21',
|
|
69
87
|
"'": '%27',
|
|
70
88
|
'(': '%28',
|
|
@@ -74,25 +92,25 @@ var replace = {
|
|
|
74
92
|
};
|
|
75
93
|
|
|
76
94
|
var replacer = function (match) {
|
|
77
|
-
return
|
|
95
|
+
return replacements[match];
|
|
78
96
|
};
|
|
79
97
|
|
|
80
98
|
var serialize = function (it) {
|
|
81
|
-
return encodeURIComponent(it)
|
|
99
|
+
return replace(encodeURIComponent(it), find, replacer);
|
|
82
100
|
};
|
|
83
101
|
|
|
84
102
|
var parseSearchParams = function (result, query) {
|
|
85
103
|
if (query) {
|
|
86
|
-
var attributes =
|
|
104
|
+
var attributes = split(query, '&');
|
|
87
105
|
var index = 0;
|
|
88
106
|
var attribute, entry;
|
|
89
107
|
while (index < attributes.length) {
|
|
90
108
|
attribute = attributes[index++];
|
|
91
109
|
if (attribute.length) {
|
|
92
|
-
entry =
|
|
93
|
-
|
|
94
|
-
key: deserialize(
|
|
95
|
-
value: deserialize(
|
|
110
|
+
entry = split(attribute, '=');
|
|
111
|
+
push(result, {
|
|
112
|
+
key: deserialize(shift(entry)),
|
|
113
|
+
value: deserialize(join(entry, '='))
|
|
96
114
|
});
|
|
97
115
|
}
|
|
98
116
|
}
|
|
@@ -127,7 +145,7 @@ var URLSearchParamsIterator = createIteratorConstructor(function Iterator(params
|
|
|
127
145
|
// `URLSearchParams` constructor
|
|
128
146
|
// https://url.spec.whatwg.org/#interface-urlsearchparams
|
|
129
147
|
var URLSearchParamsConstructor = function URLSearchParams(/* init */) {
|
|
130
|
-
anInstance(this,
|
|
148
|
+
anInstance(this, URLSearchParamsPrototype);
|
|
131
149
|
var init = arguments.length > 0 ? arguments[0] : undefined;
|
|
132
150
|
var that = this;
|
|
133
151
|
var entries = [];
|
|
@@ -146,21 +164,21 @@ var URLSearchParamsConstructor = function URLSearchParams(/* init */) {
|
|
|
146
164
|
if (iteratorMethod) {
|
|
147
165
|
iterator = getIterator(init, iteratorMethod);
|
|
148
166
|
next = iterator.next;
|
|
149
|
-
while (!(step =
|
|
167
|
+
while (!(step = call(next, iterator)).done) {
|
|
150
168
|
entryIterator = getIterator(anObject(step.value));
|
|
151
169
|
entryNext = entryIterator.next;
|
|
152
170
|
if (
|
|
153
|
-
(first =
|
|
154
|
-
(second =
|
|
155
|
-
!
|
|
171
|
+
(first = call(entryNext, entryIterator)).done ||
|
|
172
|
+
(second = call(entryNext, entryIterator)).done ||
|
|
173
|
+
!call(entryNext, entryIterator).done
|
|
156
174
|
) throw TypeError('Expected sequence with length 2');
|
|
157
|
-
|
|
175
|
+
push(entries, { key: $toString(first.value), value: $toString(second.value) });
|
|
158
176
|
}
|
|
159
|
-
} else for (key in init) if (hasOwn(init, key))
|
|
177
|
+
} else for (key in init) if (hasOwn(init, key)) push(entries, { key: key, value: $toString(init[key]) });
|
|
160
178
|
} else {
|
|
161
179
|
parseSearchParams(
|
|
162
180
|
entries,
|
|
163
|
-
typeof init
|
|
181
|
+
typeof init == 'string' ? charAt(init, 0) === '?' ? stringSlice(init, 1) : init : $toString(init)
|
|
164
182
|
);
|
|
165
183
|
}
|
|
166
184
|
}
|
|
@@ -174,7 +192,7 @@ redefineAll(URLSearchParamsPrototype, {
|
|
|
174
192
|
append: function append(name, value) {
|
|
175
193
|
validateArgumentsLength(arguments.length, 2);
|
|
176
194
|
var state = getInternalParamsState(this);
|
|
177
|
-
state.entries
|
|
195
|
+
push(state.entries, { key: $toString(name), value: $toString(value) });
|
|
178
196
|
state.updateURL();
|
|
179
197
|
},
|
|
180
198
|
// `URLSearchParams.prototype.delete` method
|
|
@@ -186,7 +204,7 @@ redefineAll(URLSearchParamsPrototype, {
|
|
|
186
204
|
var key = $toString(name);
|
|
187
205
|
var index = 0;
|
|
188
206
|
while (index < entries.length) {
|
|
189
|
-
if (entries[index].key === key)
|
|
207
|
+
if (entries[index].key === key) splice(entries, index, 1);
|
|
190
208
|
else index++;
|
|
191
209
|
}
|
|
192
210
|
state.updateURL();
|
|
@@ -212,7 +230,7 @@ redefineAll(URLSearchParamsPrototype, {
|
|
|
212
230
|
var result = [];
|
|
213
231
|
var index = 0;
|
|
214
232
|
for (; index < entries.length; index++) {
|
|
215
|
-
if (entries[index].key === key)
|
|
233
|
+
if (entries[index].key === key) push(result, entries[index].value);
|
|
216
234
|
}
|
|
217
235
|
return result;
|
|
218
236
|
},
|
|
@@ -242,41 +260,29 @@ redefineAll(URLSearchParamsPrototype, {
|
|
|
242
260
|
for (; index < entries.length; index++) {
|
|
243
261
|
entry = entries[index];
|
|
244
262
|
if (entry.key === key) {
|
|
245
|
-
if (found)
|
|
263
|
+
if (found) splice(entries, index--, 1);
|
|
246
264
|
else {
|
|
247
265
|
found = true;
|
|
248
266
|
entry.value = val;
|
|
249
267
|
}
|
|
250
268
|
}
|
|
251
269
|
}
|
|
252
|
-
if (!found)
|
|
270
|
+
if (!found) push(entries, { key: key, value: val });
|
|
253
271
|
state.updateURL();
|
|
254
272
|
},
|
|
255
273
|
// `URLSearchParams.prototype.sort` method
|
|
256
274
|
// https://url.spec.whatwg.org/#dom-urlsearchparams-sort
|
|
257
275
|
sort: function sort() {
|
|
258
276
|
var state = getInternalParamsState(this);
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
var entry, entriesIndex, sliceIndex;
|
|
263
|
-
entries.length = 0;
|
|
264
|
-
for (sliceIndex = 0; sliceIndex < slice.length; sliceIndex++) {
|
|
265
|
-
entry = slice[sliceIndex];
|
|
266
|
-
for (entriesIndex = 0; entriesIndex < sliceIndex; entriesIndex++) {
|
|
267
|
-
if (entries[entriesIndex].key > entry.key) {
|
|
268
|
-
entries.splice(entriesIndex, 0, entry);
|
|
269
|
-
break;
|
|
270
|
-
}
|
|
271
|
-
}
|
|
272
|
-
if (entriesIndex === sliceIndex) entries.push(entry);
|
|
273
|
-
}
|
|
277
|
+
arraySort(state.entries, function (a, b) {
|
|
278
|
+
return a.key > b.key ? 1 : -1;
|
|
279
|
+
});
|
|
274
280
|
state.updateURL();
|
|
275
281
|
},
|
|
276
282
|
// `URLSearchParams.prototype.forEach` method
|
|
277
283
|
forEach: function forEach(callback /* , thisArg */) {
|
|
278
284
|
var entries = getInternalParamsState(this).entries;
|
|
279
|
-
var boundFunction = bind(callback, arguments.length > 1 ? arguments[1] : undefined
|
|
285
|
+
var boundFunction = bind(callback, arguments.length > 1 ? arguments[1] : undefined);
|
|
280
286
|
var index = 0;
|
|
281
287
|
var entry;
|
|
282
288
|
while (index < entries.length) {
|
|
@@ -310,8 +316,8 @@ redefine(URLSearchParamsPrototype, 'toString', function toString() {
|
|
|
310
316
|
var entry;
|
|
311
317
|
while (index < entries.length) {
|
|
312
318
|
entry = entries[index++];
|
|
313
|
-
|
|
314
|
-
} return
|
|
319
|
+
push(result, serialize(entry.key) + '=' + serialize(entry.value));
|
|
320
|
+
} return join(result, '&');
|
|
315
321
|
}, { enumerable: true });
|
|
316
322
|
|
|
317
323
|
setToStringTag(URLSearchParamsConstructor, URL_SEARCH_PARAMS);
|
|
@@ -322,35 +328,38 @@ $({ global: true, forced: !USE_NATIVE_URL }, {
|
|
|
322
328
|
|
|
323
329
|
// Wrap `fetch` and `Request` for correct work with polyfilled `URLSearchParams`
|
|
324
330
|
if (!USE_NATIVE_URL && isCallable(Headers)) {
|
|
331
|
+
var headersHas = uncurryThis(HeadersPrototype.has);
|
|
332
|
+
var headersSet = uncurryThis(HeadersPrototype.set);
|
|
333
|
+
|
|
325
334
|
var wrapRequestOptions = function (init) {
|
|
326
335
|
if (isObject(init)) {
|
|
327
336
|
var body = init.body;
|
|
328
337
|
var headers;
|
|
329
338
|
if (classof(body) === URL_SEARCH_PARAMS) {
|
|
330
339
|
headers = init.headers ? new Headers(init.headers) : new Headers();
|
|
331
|
-
if (!headers
|
|
332
|
-
headers
|
|
340
|
+
if (!headersHas(headers, 'content-type')) {
|
|
341
|
+
headersSet(headers, 'content-type', 'application/x-www-form-urlencoded;charset=UTF-8');
|
|
333
342
|
}
|
|
334
343
|
return create(init, {
|
|
335
|
-
body: createPropertyDescriptor(0,
|
|
344
|
+
body: createPropertyDescriptor(0, $toString(body)),
|
|
336
345
|
headers: createPropertyDescriptor(0, headers)
|
|
337
346
|
});
|
|
338
347
|
}
|
|
339
348
|
} return init;
|
|
340
349
|
};
|
|
341
350
|
|
|
342
|
-
if (isCallable(
|
|
351
|
+
if (isCallable(n$Fetch)) {
|
|
343
352
|
$({ global: true, enumerable: true, forced: true }, {
|
|
344
353
|
fetch: function fetch(input /* , init */) {
|
|
345
|
-
return
|
|
354
|
+
return n$Fetch(input, arguments.length > 1 ? wrapRequestOptions(arguments[1]) : {});
|
|
346
355
|
}
|
|
347
356
|
});
|
|
348
357
|
}
|
|
349
358
|
|
|
350
|
-
if (isCallable(
|
|
359
|
+
if (isCallable(N$Request)) {
|
|
351
360
|
var RequestConstructor = function Request(input /* , init */) {
|
|
352
|
-
anInstance(this,
|
|
353
|
-
return new
|
|
361
|
+
anInstance(this, RequestPrototype);
|
|
362
|
+
return new N$Request(input, arguments.length > 1 ? wrapRequestOptions(arguments[1]) : {});
|
|
354
363
|
};
|
|
355
364
|
|
|
356
365
|
RequestPrototype.constructor = RequestConstructor;
|