Linux ubuntu22 5.15.0-133-generic #144-Ubuntu SMP Fri Feb 7 20:47:38 UTC 2025 x86_64
nginx/1.18.0
: 128.199.27.159 | : 216.73.216.1
Cant Read [ /etc/named.conf ]
8.1.31
www-data
www.github.com/MadExploits
Terminal
AUTO ROOT
Adminer
Backdoor Destroyer
Linux Exploit
Lock Shell
Lock File
Create User
CREATE RDP
PHP Mailer
BACKCONNECT
UNLOCK SHELL
HASH IDENTIFIER
CPANEL RESET
CREATE WP USER
README
+ Create Folder
+ Create File
/
var /
www /
html /
quiz1 /
node_modules /
core-js /
modules /
[ HOME SHELL ]
Name
Size
Permission
Action
README.md
164
B
-rw-rw-rw-
es.aggregate-error.cause.js
976
B
-rw-rw-rw-
es.aggregate-error.constructor...
2.32
KB
-rw-rw-rw-
es.aggregate-error.js
149
B
-rw-rw-rw-
es.array-buffer.constructor.js
588
B
-rw-rw-rw-
es.array-buffer.detached.js
596
B
-rw-rw-rw-
es.array-buffer.is-view.js
411
B
-rw-rw-rw-
es.array-buffer.slice.js
1.59
KB
-rw-rw-rw-
es.array-buffer.transfer-to-fi...
479
B
-rw-rw-rw-
es.array-buffer.transfer.js
426
B
-rw-rw-rw-
es.array.at.js
733
B
-rw-rw-rw-
es.array.concat.js
2.25
KB
-rw-rw-rw-
es.array.copy-within.js
442
B
-rw-rw-rw-
es.array.every.js
538
B
-rw-rw-rw-
es.array.fill.js
399
B
-rw-rw-rw-
es.array.filter.js
622
B
-rw-rw-rw-
es.array.find-index.js
840
B
-rw-rw-rw-
es.array.find-last-index.js
567
B
-rw-rw-rw-
es.array.find-last.js
527
B
-rw-rw-rw-
es.array.find.js
771
B
-rw-rw-rw-
es.array.flat-map.js
837
B
-rw-rw-rw-
es.array.flat.js
865
B
-rw-rw-rw-
es.array.for-each.js
360
B
-rw-rw-rw-
es.array.from.js
518
B
-rw-rw-rw-
es.array.includes.js
794
B
-rw-rw-rw-
es.array.index-of.js
973
B
-rw-rw-rw-
es.array.is-array.js
235
B
-rw-rw-rw-
es.array.iterator.js
2.55
KB
-rw-rw-rw-
es.array.join.js
739
B
-rw-rw-rw-
es.array.last-index-of.js
413
B
-rw-rw-rw-
es.array.map.js
598
B
-rw-rw-rw-
es.array.of.js
893
B
-rw-rw-rw-
es.array.push.js
1.44
KB
-rw-rw-rw-
es.array.reduce-right.js
901
B
-rw-rw-rw-
es.array.reduce.js
880
B
-rw-rw-rw-
es.array.reverse.js
672
B
-rw-rw-rw-
es.array.slice.js
2.06
KB
-rw-rw-rw-
es.array.some.js
530
B
-rw-rw-rw-
es.array.sort.js
3.22
KB
-rw-rw-rw-
es.array.species.js
171
B
-rw-rw-rw-
es.array.splice.js
2.73
KB
-rw-rw-rw-
es.array.to-reversed.js
547
B
-rw-rw-rw-
es.array.to-sorted.js
958
B
-rw-rw-rw-
es.array.to-spliced.js
1.64
KB
-rw-rw-rw-
es.array.unscopables.flat-map....
292
B
-rw-rw-rw-
es.array.unscopables.flat.js
289
B
-rw-rw-rw-
es.array.unshift.js
1.54
KB
-rw-rw-rw-
es.array.with.js
428
B
-rw-rw-rw-
es.data-view.constructor.js
390
B
-rw-rw-rw-
es.data-view.js
143
B
-rw-rw-rw-
es.date.get-year.js
631
B
-rw-rw-rw-
es.date.now.js
399
B
-rw-rw-rw-
es.date.set-year.js
686
B
-rw-rw-rw-
es.date.to-gmt-string.js
236
B
-rw-rw-rw-
es.date.to-iso-string.js
390
B
-rw-rw-rw-
es.date.to-json.js
774
B
-rw-rw-rw-
es.date.to-primitive.js
561
B
-rw-rw-rw-
es.date.to-string.js
772
B
-rw-rw-rw-
es.error.cause.js
2.56
KB
-rw-rw-rw-
es.error.to-string.js
385
B
-rw-rw-rw-
es.escape.js
1.13
KB
-rw-rw-rw-
es.function.bind.js
391
B
-rw-rw-rw-
es.function.has-instance.js
905
B
-rw-rw-rw-
es.function.name.js
914
B
-rw-rw-rw-
es.global-this.js
272
B
-rw-rw-rw-
es.iterator.constructor.js
2.47
KB
-rw-rw-rw-
es.iterator.drop.js
1.21
KB
-rw-rw-rw-
es.iterator.every.js
738
B
-rw-rw-rw-
es.iterator.filter.js
1.24
KB
-rw-rw-rw-
es.iterator.find.js
736
B
-rw-rw-rw-
es.iterator.flat-map.js
1.51
KB
-rw-rw-rw-
es.iterator.for-each.js
664
B
-rw-rw-rw-
es.iterator.from.js
1013
B
-rw-rw-rw-
es.iterator.map.js
325
B
-rw-rw-rw-
es.iterator.reduce.js
1.06
KB
-rw-rw-rw-
es.iterator.some.js
732
B
-rw-rw-rw-
es.iterator.take.js
1.19
KB
-rw-rw-rw-
es.iterator.to-array.js
562
B
-rw-rw-rw-
es.json.stringify.js
2.98
KB
-rw-rw-rw-
es.json.to-string-tag.js
263
B
-rw-rw-rw-
es.map.constructor.js
350
B
-rw-rw-rw-
es.map.group-by.js
1.21
KB
-rw-rw-rw-
es.map.js
137
B
-rw-rw-rw-
es.math.acosh.js
771
B
-rw-rw-rw-
es.math.asinh.js
538
B
-rw-rw-rw-
es.math.atanh.js
481
B
-rw-rw-rw-
es.math.cbrt.js
334
B
-rw-rw-rw-
es.math.clz32.js
338
B
-rw-rw-rw-
es.math.cosh.js
510
B
-rw-rw-rw-
es.math.expm1.js
321
B
-rw-rw-rw-
es.math.fround.js
228
B
-rw-rw-rw-
es.math.hypot.js
1009
B
-rw-rw-rw-
es.math.imul.js
716
B
-rw-rw-rw-
es.math.log10.js
224
B
-rw-rw-rw-
es.math.log1p.js
222
B
-rw-rw-rw-
es.math.log2.js
256
B
-rw-rw-rw-
es.math.sign.js
218
B
-rw-rw-rw-
es.math.sinh.js
669
B
-rw-rw-rw-
es.math.tanh.js
404
B
-rw-rw-rw-
es.math.to-string-tag.js
198
B
-rw-rw-rw-
es.math.trunc.js
224
B
-rw-rw-rw-
es.number.constructor.js
4.52
KB
-rw-rw-rw-
es.number.epsilon.js
243
B
-rw-rw-rw-
es.number.is-finite.js
261
B
-rw-rw-rw-
es.number.is-integer.js
272
B
-rw-rw-rw-
es.number.is-nan.js
296
B
-rw-rw-rw-
es.number.is-safe-integer.js
397
B
-rw-rw-rw-
es.number.max-safe-integer.js
270
B
-rw-rw-rw-
es.number.min-safe-integer.js
271
B
-rw-rw-rw-
es.number.parse-float.js
381
B
-rw-rw-rw-
es.number.parse-int.js
363
B
-rw-rw-rw-
es.number.to-exponential.js
2.93
KB
-rw-rw-rw-
es.number.to-fixed.js
3.63
KB
-rw-rw-rw-
es.number.to-precision.js
815
B
-rw-rw-rw-
es.object.assign.js
354
B
-rw-rw-rw-
es.object.create.js
346
B
-rw-rw-rw-
es.object.define-getter.js
737
B
-rw-rw-rw-
es.object.define-properties.js
496
B
-rw-rw-rw-
es.object.define-property.js
478
B
-rw-rw-rw-
es.object.define-setter.js
737
B
-rw-rw-rw-
es.object.entries.js
296
B
-rw-rw-rw-
es.object.freeze.js
673
B
-rw-rw-rw-
es.object.from-entries.js
477
B
-rw-rw-rw-
es.object.get-own-property-des...
738
B
-rw-rw-rw-
es.object.get-own-property-des...
1.01
KB
-rw-rw-rw-
es.object.get-own-property-nam...
577
B
-rw-rw-rw-
es.object.get-own-property-sym...
904
B
-rw-rw-rw-
es.object.get-prototype-of.js
673
B
-rw-rw-rw-
es.object.group-by.js
1.43
KB
-rw-rw-rw-
es.object.has-own.js
241
B
-rw-rw-rw-
es.object.is-extensible.js
386
B
-rw-rw-rw-
es.object.is-frozen.js
800
B
-rw-rw-rw-
es.object.is-sealed.js
800
B
-rw-rw-rw-
es.object.is.js
215
B
-rw-rw-rw-
es.object.keys.js
476
B
-rw-rw-rw-
es.object.lookup-getter.js
911
B
-rw-rw-rw-
es.object.lookup-setter.js
911
B
-rw-rw-rw-
es.object.prevent-extensions.j...
783
B
-rw-rw-rw-
es.object.proto.js
1.22
KB
-rw-rw-rw-
es.object.seal.js
653
B
-rw-rw-rw-
es.object.set-prototype-of.js
288
B
-rw-rw-rw-
es.object.to-string.js
411
B
-rw-rw-rw-
es.object.values.js
289
B
-rw-rw-rw-
es.parse-float.js
278
B
-rw-rw-rw-
es.parse-int.js
268
B
-rw-rw-rw-
es.promise.all-settled.js
1.64
KB
-rw-rw-rw-
es.promise.all.js
1.39
KB
-rw-rw-rw-
es.promise.any.js
1.82
KB
-rw-rw-rw-
es.promise.catch.js
1.14
KB
-rw-rw-rw-
es.promise.constructor.js
9.66
KB
-rw-rw-rw-
es.promise.finally.js
1.87
KB
-rw-rw-rw-
es.promise.js
346
B
-rw-rw-rw-
es.promise.race.js
1.02
KB
-rw-rw-rw-
es.promise.reject.js
583
B
-rw-rw-rw-
es.promise.resolve.js
838
B
-rw-rw-rw-
es.promise.try.js
1.28
KB
-rw-rw-rw-
es.promise.with-resolvers.js
522
B
-rw-rw-rw-
es.reflect.apply.js
775
B
-rw-rw-rw-
es.reflect.construct.js
2.25
KB
-rw-rw-rw-
es.reflect.define-property.js
1.09
KB
-rw-rw-rw-
es.reflect.delete-property.js
566
B
-rw-rw-rw-
es.reflect.get-own-property-de...
595
B
-rw-rw-rw-
es.reflect.get-prototype-of.js
535
B
-rw-rw-rw-
es.reflect.get.js
1.07
KB
-rw-rw-rw-
es.reflect.has.js
247
B
-rw-rw-rw-
es.reflect.is-extensible.js
408
B
-rw-rw-rw-
es.reflect.own-keys.js
241
B
-rw-rw-rw-
es.reflect.prevent-extensions....
673
B
-rw-rw-rw-
es.reflect.set-prototype-of.js
647
B
-rw-rw-rw-
es.reflect.set.js
2.27
KB
-rw-rw-rw-
es.reflect.to-string-tag.js
354
B
-rw-rw-rw-
es.regexp.constructor.js
6.69
KB
-rw-rw-rw-
es.regexp.dot-all.js
1006
B
-rw-rw-rw-
es.regexp.exec.js
274
B
-rw-rw-rw-
es.regexp.flags.js
1.56
KB
-rw-rw-rw-
es.regexp.sticky.js
1003
B
-rw-rw-rw-
es.regexp.test.js
1.05
KB
-rw-rw-rw-
es.regexp.to-string.js
1.06
KB
-rw-rw-rw-
es.set.constructor.js
350
B
-rw-rw-rw-
es.set.difference.v2.js
411
B
-rw-rw-rw-
es.set.intersection.v2.js
680
B
-rw-rw-rw-
es.set.is-disjoint-from.v2.js
441
B
-rw-rw-rw-
es.set.is-subset-of.v2.js
413
B
-rw-rw-rw-
es.set.is-superset-of.v2.js
427
B
-rw-rw-rw-
es.set.js
137
B
-rw-rw-rw-
es.set.symmetric-difference.v2...
475
B
-rw-rw-rw-
es.set.union.v2.js
376
B
-rw-rw-rw-
es.string.anchor.js
445
B
-rw-rw-rw-
es.string.at-alternative.js
974
B
-rw-rw-rw-
es.string.big.js
422
B
-rw-rw-rw-
es.string.blink.js
434
B
-rw-rw-rw-
es.string.bold.js
425
B
-rw-rw-rw-
es.string.code-point-at.js
339
B
-rw-rw-rw-
es.string.ends-with.js
1.55
KB
-rw-rw-rw-
es.string.fixed.js
431
B
-rw-rw-rw-
es.string.fontcolor.js
466
B
-rw-rw-rw-
es.string.fontsize.js
458
B
-rw-rw-rw-
es.string.from-code-point.js
1.21
KB
-rw-rw-rw-
es.string.includes.js
857
B
-rw-rw-rw-
es.string.is-well-formed.js
880
B
-rw-rw-rw-
es.string.italics.js
440
B
-rw-rw-rw-
es.string.iterator.js
1.16
KB
-rw-rw-rw-
es.string.link.js
433
B
-rw-rw-rw-
es.string.match-all.js
4.3
KB
-rw-rw-rw-
es.string.match.js
1.81
KB
-rw-rw-rw-
es.string.pad-end.js
482
B
-rw-rw-rw-
es.string.pad-start.js
496
B
-rw-rw-rw-
es.string.raw.js
1012
B
-rw-rw-rw-
es.string.repeat.js
259
B
-rw-rw-rw-
es.string.replace-all.js
2.75
KB
-rw-rw-rw-
es.string.replace.js
5.53
KB
-rw-rw-rw-
es.string.search.js
1.6
KB
-rw-rw-rw-
es.string.small.js
434
B
-rw-rw-rw-
es.string.split.js
4.54
KB
-rw-rw-rw-
es.string.starts-with.js
1.49
KB
-rw-rw-rw-
es.string.strike.js
440
B
-rw-rw-rw-
es.string.sub.js
422
B
-rw-rw-rw-
es.string.substr.js
1.22
KB
-rw-rw-rw-
es.string.sup.js
422
B
-rw-rw-rw-
es.string.to-well-formed.js
1.61
KB
-rw-rw-rw-
es.string.trim-end.js
479
B
-rw-rw-rw-
es.string.trim-left.js
407
B
-rw-rw-rw-
es.string.trim-right.js
399
B
-rw-rw-rw-
es.string.trim-start.js
496
B
-rw-rw-rw-
es.string.trim.js
407
B
-rw-rw-rw-
es.symbol.async-iterator.js
230
B
-rw-rw-rw-
es.symbol.constructor.js
10.77
KB
-rw-rw-rw-
es.symbol.description.js
2.63
KB
-rw-rw-rw-
es.symbol.for.js
919
B
-rw-rw-rw-
es.symbol.has-instance.js
224
B
-rw-rw-rw-
es.symbol.is-concat-spreadable...
245
B
-rw-rw-rw-
es.symbol.iterator.js
215
B
-rw-rw-rw-
es.symbol.js
322
B
-rw-rw-rw-
es.symbol.key-for.js
758
B
-rw-rw-rw-
es.symbol.match-all.js
215
B
-rw-rw-rw-
es.symbol.match.js
206
B
-rw-rw-rw-
es.symbol.replace.js
212
B
-rw-rw-rw-
es.symbol.search.js
209
B
-rw-rw-rw-
es.symbol.species.js
212
B
-rw-rw-rw-
es.symbol.split.js
206
B
-rw-rw-rw-
es.symbol.to-primitive.js
441
B
-rw-rw-rw-
es.symbol.to-string-tag.js
501
B
-rw-rw-rw-
es.symbol.unscopables.js
224
B
-rw-rw-rw-
es.typed-array.at.js
738
B
-rw-rw-rw-
es.typed-array.copy-within.js
713
B
-rw-rw-rw-
es.typed-array.every.js
554
B
-rw-rw-rw-
es.typed-array.fill.js
1.24
KB
-rw-rw-rw-
es.typed-array.filter.js
694
B
-rw-rw-rw-
es.typed-array.find-index.js
580
B
-rw-rw-rw-
es.typed-array.find-last-index...
618
B
-rw-rw-rw-
es.typed-array.find-last.js
583
B
-rw-rw-rw-
es.typed-array.find.js
545
B
-rw-rw-rw-
es.typed-array.float32-array.j...
353
B
-rw-rw-rw-
es.typed-array.float64-array.j...
353
B
-rw-rw-rw-
es.typed-array.for-each.js
561
B
-rw-rw-rw-
es.typed-array.from.js
486
B
-rw-rw-rw-
es.typed-array.includes.js
582
B
-rw-rw-rw-
es.typed-array.index-of.js
575
B
-rw-rw-rw-
es.typed-array.int16-array.js
347
B
-rw-rw-rw-
es.typed-array.int32-array.js
347
B
-rw-rw-rw-
es.typed-array.int8-array.js
344
B
-rw-rw-rw-
es.typed-array.iterator.js
1.97
KB
-rw-rw-rw-
es.typed-array.join.js
521
B
-rw-rw-rw-
es.typed-array.last-index-of.j...
686
B
-rw-rw-rw-
es.typed-array.map.js
689
B
-rw-rw-rw-
es.typed-array.of.js
742
B
-rw-rw-rw-
es.typed-array.reduce-right.js
623
B
-rw-rw-rw-
es.typed-array.reduce.js
592
B
-rw-rw-rw-
es.typed-array.reverse.js
658
B
-rw-rw-rw-
es.typed-array.set.js
1.95
KB
-rw-rw-rw-
es.typed-array.slice.js
948
B
-rw-rw-rw-
es.typed-array.some.js
547
B
-rw-rw-rw-
es.typed-array.sort.js
2.43
KB
-rw-rw-rw-
es.typed-array.subarray.js
904
B
-rw-rw-rw-
es.typed-array.to-locale-strin...
1.15
KB
-rw-rw-rw-
es.typed-array.to-reversed.js
610
B
-rw-rw-rw-
es.typed-array.to-sorted.js
929
B
-rw-rw-rw-
es.typed-array.to-string.js
832
B
-rw-rw-rw-
es.typed-array.uint16-array.js
350
B
-rw-rw-rw-
es.typed-array.uint32-array.js
350
B
-rw-rw-rw-
es.typed-array.uint8-array.js
347
B
-rw-rw-rw-
es.typed-array.uint8-clamped-a...
367
B
-rw-rw-rw-
es.typed-array.with.js
1.36
KB
-rw-rw-rw-
es.unescape.js
1.22
KB
-rw-rw-rw-
es.weak-map.constructor.js
4.12
KB
-rw-rw-rw-
es.weak-map.js
142
B
-rw-rw-rw-
es.weak-set.constructor.js
364
B
-rw-rw-rw-
es.weak-set.js
142
B
-rw-rw-rw-
esnext.aggregate-error.js
89
B
-rw-rw-rw-
esnext.array-buffer.detached.j...
95
B
-rw-rw-rw-
esnext.array-buffer.transfer-t...
111
B
-rw-rw-rw-
esnext.array-buffer.transfer.j...
95
B
-rw-rw-rw-
esnext.array.at.js
82
B
-rw-rw-rw-
esnext.array.filter-out.js
566
B
-rw-rw-rw-
esnext.array.filter-reject.js
545
B
-rw-rw-rw-
esnext.array.find-last-index.j...
95
B
-rw-rw-rw-
esnext.array.find-last.js
89
B
-rw-rw-rw-
esnext.array.from-async.js
631
B
-rw-rw-rw-
esnext.array.group-by-to-map.j...
662
B
-rw-rw-rw-
esnext.array.group-by.js
704
B
-rw-rw-rw-
esnext.array.group-to-map.js
439
B
-rw-rw-rw-
esnext.array.group.js
498
B
-rw-rw-rw-
esnext.array.is-template-objec...
963
B
-rw-rw-rw-
esnext.array.last-index.js
743
B
-rw-rw-rw-
esnext.array.last-item.js
913
B
-rw-rw-rw-
esnext.array.to-reversed.js
91
B
-rw-rw-rw-
esnext.array.to-sorted.js
89
B
-rw-rw-rw-
esnext.array.to-spliced.js
90
B
-rw-rw-rw-
esnext.array.unique-by.js
372
B
-rw-rw-rw-
esnext.array.with.js
84
B
-rw-rw-rw-
esnext.async-disposable-stack....
4.59
KB
-rw-rw-rw-
esnext.async-iterator.as-index...
373
B
-rw-rw-rw-
esnext.async-iterator.async-di...
1012
B
-rw-rw-rw-
esnext.async-iterator.construc...
1.42
KB
-rw-rw-rw-
esnext.async-iterator.drop.js
1.74
KB
-rw-rw-rw-
esnext.async-iterator.every.js
364
B
-rw-rw-rw-
esnext.async-iterator.filter.j...
2.33
KB
-rw-rw-rw-
esnext.async-iterator.find.js
358
B
-rw-rw-rw-
esnext.async-iterator.flat-map...
3.13
KB
-rw-rw-rw-
esnext.async-iterator.for-each...
362
B
-rw-rw-rw-
esnext.async-iterator.from.js
892
B
-rw-rw-rw-
esnext.async-iterator.indexed....
342
B
-rw-rw-rw-
esnext.async-iterator.map.js
346
B
-rw-rw-rw-
esnext.async-iterator.reduce.j...
2.31
KB
-rw-rw-rw-
esnext.async-iterator.some.js
358
B
-rw-rw-rw-
esnext.async-iterator.take.js
1.72
KB
-rw-rw-rw-
esnext.async-iterator.to-array...
371
B
-rw-rw-rw-
esnext.bigint.range.js
521
B
-rw-rw-rw-
esnext.composite-key.js
685
B
-rw-rw-rw-
esnext.composite-symbol.js
601
B
-rw-rw-rw-
esnext.data-view.get-float16.j...
662
B
-rw-rw-rw-
esnext.data-view.get-uint8-cla...
506
B
-rw-rw-rw-
esnext.data-view.set-float16.j...
881
B
-rw-rw-rw-
esnext.data-view.set-uint8-cla...
755
B
-rw-rw-rw-
esnext.disposable-stack.constr...
3.92
KB
-rw-rw-rw-
esnext.function.demethodize.js
308
B
-rw-rw-rw-
esnext.function.is-callable.js
1.3
KB
-rw-rw-rw-
esnext.function.is-constructor...
334
B
-rw-rw-rw-
esnext.function.metadata.js
450
B
-rw-rw-rw-
esnext.function.un-this.js
352
B
-rw-rw-rw-
esnext.global-this.js
85
B
-rw-rw-rw-
esnext.iterator.as-indexed-pai...
357
B
-rw-rw-rw-
esnext.iterator.concat.js
1.62
KB
-rw-rw-rw-
esnext.iterator.constructor.js
94
B
-rw-rw-rw-
esnext.iterator.dispose.js
680
B
-rw-rw-rw-
esnext.iterator.drop.js
87
B
-rw-rw-rw-
esnext.iterator.every.js
88
B
-rw-rw-rw-
esnext.iterator.filter.js
89
B
-rw-rw-rw-
esnext.iterator.find.js
87
B
-rw-rw-rw-
esnext.iterator.flat-map.js
91
B
-rw-rw-rw-
esnext.iterator.for-each.js
91
B
-rw-rw-rw-
esnext.iterator.from.js
87
B
-rw-rw-rw-
esnext.iterator.indexed.js
326
B
-rw-rw-rw-
esnext.iterator.map.js
86
B
-rw-rw-rw-
esnext.iterator.range.js
671
B
-rw-rw-rw-
esnext.iterator.reduce.js
89
B
-rw-rw-rw-
esnext.iterator.some.js
87
B
-rw-rw-rw-
esnext.iterator.take.js
87
B
-rw-rw-rw-
esnext.iterator.to-array.js
91
B
-rw-rw-rw-
esnext.iterator.to-async.js
691
B
-rw-rw-rw-
esnext.json.is-raw-json.js
413
B
-rw-rw-rw-
esnext.json.parse.js
8.26
KB
-rw-rw-rw-
esnext.json.raw-json.js
3.22
KB
-rw-rw-rw-
esnext.map.delete-all.js
633
B
-rw-rw-rw-
esnext.map.emplace.js
757
B
-rw-rw-rw-
esnext.map.every.js
663
B
-rw-rw-rw-
esnext.map.filter.js
807
B
-rw-rw-rw-
esnext.map.find-key.js
704
B
-rw-rw-rw-
esnext.map.find.js
701
B
-rw-rw-rw-
esnext.map.from.js
381
B
-rw-rw-rw-
esnext.map.get-or-insert-compu...
771
B
-rw-rw-rw-
esnext.map.get-or-insert.js
529
B
-rw-rw-rw-
esnext.map.group-by.js
86
B
-rw-rw-rw-
esnext.map.includes.js
549
B
-rw-rw-rw-
esnext.map.key-by.js
764
B
-rw-rw-rw-
esnext.map.key-of.js
510
B
-rw-rw-rw-
esnext.map.map-keys.js
801
B
-rw-rw-rw-
esnext.map.map-values.js
805
B
-rw-rw-rw-
esnext.map.merge.js
745
B
-rw-rw-rw-
esnext.map.of.js
369
B
-rw-rw-rw-
esnext.map.reduce.js
928
B
-rw-rw-rw-
esnext.map.some.js
657
B
-rw-rw-rw-
esnext.map.update-or-insert.js
372
B
-rw-rw-rw-
esnext.map.update.js
922
B
-rw-rw-rw-
esnext.map.upsert.js
340
B
-rw-rw-rw-
esnext.math.clamp.js
314
B
-rw-rw-rw-
esnext.math.deg-per-rad.js
253
B
-rw-rw-rw-
esnext.math.degrees.js
301
B
-rw-rw-rw-
esnext.math.f16round.js
243
B
-rw-rw-rw-
esnext.math.fscale.js
416
B
-rw-rw-rw-
esnext.math.iaddh.js
434
B
-rw-rw-rw-
esnext.math.imulh.js
539
B
-rw-rw-rw-
esnext.math.isubh.js
433
B
-rw-rw-rw-
esnext.math.rad-per-deg.js
253
B
-rw-rw-rw-
esnext.math.radians.js
301
B
-rw-rw-rw-
esnext.math.scale.js
251
B
-rw-rw-rw-
esnext.math.seeded-prng.js
1.57
KB
-rw-rw-rw-
esnext.math.signbit.js
358
B
-rw-rw-rw-
esnext.math.sum-precise.js
4.59
KB
-rw-rw-rw-
esnext.math.umulh.js
543
B
-rw-rw-rw-
esnext.number.from-string.js
1.7
KB
-rw-rw-rw-
esnext.number.range.js
416
B
-rw-rw-rw-
esnext.object.group-by.js
89
B
-rw-rw-rw-
esnext.object.has-own.js
88
B
-rw-rw-rw-
esnext.object.iterate-entries....
399
B
-rw-rw-rw-
esnext.object.iterate-keys.js
387
B
-rw-rw-rw-
esnext.object.iterate-values.j...
395
B
-rw-rw-rw-
esnext.observable.constructor....
6.2
KB
-rw-rw-rw-
esnext.observable.from.js
1.32
KB
-rw-rw-rw-
esnext.observable.js
243
B
-rw-rw-rw-
esnext.observable.of.js
764
B
-rw-rw-rw-
esnext.promise.all-settled.js
96
B
-rw-rw-rw-
esnext.promise.any.js
85
B
-rw-rw-rw-
esnext.promise.try.js
88
B
-rw-rw-rw-
esnext.promise.with-resolvers....
96
B
-rw-rw-rw-
esnext.reflect.define-metadata...
717
B
-rw-rw-rw-
esnext.reflect.delete-metadata...
977
B
-rw-rw-rw-
esnext.reflect.get-metadata-ke...
1.22
KB
-rw-rw-rw-
esnext.reflect.get-metadata.js
1.08
KB
-rw-rw-rw-
esnext.reflect.get-own-metadat...
677
B
-rw-rw-rw-
esnext.reflect.get-own-metadat...
688
B
-rw-rw-rw-
esnext.reflect.has-metadata.js
1006
B
-rw-rw-rw-
esnext.reflect.has-own-metadat...
688
B
-rw-rw-rw-
esnext.reflect.metadata.js
619
B
-rw-rw-rw-
esnext.regexp.escape.js
2.3
KB
-rw-rw-rw-
esnext.set.add-all.js
487
B
-rw-rw-rw-
esnext.set.delete-all.js
633
B
-rw-rw-rw-
esnext.set.difference.js
519
B
-rw-rw-rw-
esnext.set.difference.v2.js
91
B
-rw-rw-rw-
esnext.set.every.js
660
B
-rw-rw-rw-
esnext.set.filter.js
799
B
-rw-rw-rw-
esnext.set.find.js
698
B
-rw-rw-rw-
esnext.set.from.js
382
B
-rw-rw-rw-
esnext.set.intersection.js
531
B
-rw-rw-rw-
esnext.set.intersection.v2.js
93
B
-rw-rw-rw-
esnext.set.is-disjoint-from.js
545
B
-rw-rw-rw-
esnext.set.is-disjoint-from.v2...
97
B
-rw-rw-rw-
esnext.set.is-subset-of.js
521
B
-rw-rw-rw-
esnext.set.is-subset-of.v2.js
93
B
-rw-rw-rw-
esnext.set.is-superset-of.js
533
B
-rw-rw-rw-
esnext.set.is-superset-of.v2.j...
95
B
-rw-rw-rw-
esnext.set.join.js
743
B
-rw-rw-rw-
esnext.set.map.js
779
B
-rw-rw-rw-
esnext.set.of.js
370
B
-rw-rw-rw-
esnext.set.reduce.js
925
B
-rw-rw-rw-
esnext.set.some.js
654
B
-rw-rw-rw-
esnext.set.symmetric-differenc...
574
B
-rw-rw-rw-
esnext.set.symmetric-differenc...
101
B
-rw-rw-rw-
esnext.set.union.js
489
B
-rw-rw-rw-
esnext.set.union.v2.js
86
B
-rw-rw-rw-
esnext.string.at-alternative.j...
95
B
-rw-rw-rw-
esnext.string.at.js
786
B
-rw-rw-rw-
esnext.string.code-points.js
1.56
KB
-rw-rw-rw-
esnext.string.cooked.js
256
B
-rw-rw-rw-
esnext.string.dedent.js
5.02
KB
-rw-rw-rw-
esnext.string.is-well-formed.j...
95
B
-rw-rw-rw-
esnext.string.match-all.js
90
B
-rw-rw-rw-
esnext.string.replace-all.js
92
B
-rw-rw-rw-
esnext.string.to-well-formed.j...
95
B
-rw-rw-rw-
esnext.suppressed-error.constr...
2.93
KB
-rw-rw-rw-
esnext.symbol.async-dispose.js
955
B
-rw-rw-rw-
esnext.symbol.custom-matcher.j...
230
B
-rw-rw-rw-
esnext.symbol.dispose.js
929
B
-rw-rw-rw-
esnext.symbol.is-registered-sy...
324
B
-rw-rw-rw-
esnext.symbol.is-registered.js
360
B
-rw-rw-rw-
esnext.symbol.is-well-known-sy...
451
B
-rw-rw-rw-
esnext.symbol.is-well-known.js
486
B
-rw-rw-rw-
esnext.symbol.matcher.js
218
B
-rw-rw-rw-
esnext.symbol.metadata-key.js
261
B
-rw-rw-rw-
esnext.symbol.metadata.js
214
B
-rw-rw-rw-
esnext.symbol.observable.js
218
B
-rw-rw-rw-
esnext.symbol.pattern-match.js
261
B
-rw-rw-rw-
esnext.symbol.replace-all.js
163
B
-rw-rw-rw-
esnext.typed-array.at.js
88
B
-rw-rw-rw-
esnext.typed-array.filter-out....
750
B
-rw-rw-rw-
esnext.typed-array.filter-reje...
726
B
-rw-rw-rw-
esnext.typed-array.find-last-i...
101
B
-rw-rw-rw-
esnext.typed-array.find-last.j...
95
B
-rw-rw-rw-
esnext.typed-array.from-async....
1.17
KB
-rw-rw-rw-
esnext.typed-array.group-by.js
707
B
-rw-rw-rw-
esnext.typed-array.to-reversed...
97
B
-rw-rw-rw-
esnext.typed-array.to-sorted.j...
95
B
-rw-rw-rw-
esnext.typed-array.to-spliced....
2.59
KB
-rw-rw-rw-
esnext.typed-array.unique-by.j...
848
B
-rw-rw-rw-
esnext.typed-array.with.js
90
B
-rw-rw-rw-
esnext.uint8-array.from-base64...
694
B
-rw-rw-rw-
esnext.uint8-array.from-hex.js
457
B
-rw-rw-rw-
esnext.uint8-array.set-from-ba...
696
B
-rw-rw-rw-
esnext.uint8-array.set-from-he...
726
B
-rw-rw-rw-
esnext.uint8-array.to-base64.j...
1.75
KB
-rw-rw-rw-
esnext.uint8-array.to-hex.js
809
B
-rw-rw-rw-
esnext.weak-map.delete-all.js
659
B
-rw-rw-rw-
esnext.weak-map.emplace.js
799
B
-rw-rw-rw-
esnext.weak-map.from.js
414
B
-rw-rw-rw-
esnext.weak-map.get-or-insert-...
760
B
-rw-rw-rw-
esnext.weak-map.get-or-insert....
571
B
-rw-rw-rw-
esnext.weak-map.of.js
402
B
-rw-rw-rw-
esnext.weak-map.upsert.js
346
B
-rw-rw-rw-
esnext.weak-set.add-all.js
513
B
-rw-rw-rw-
esnext.weak-set.delete-all.js
659
B
-rw-rw-rw-
esnext.weak-set.from.js
415
B
-rw-rw-rw-
esnext.weak-set.of.js
403
B
-rw-rw-rw-
web.atob.js
2.26
KB
-rw-rw-rw-
web.btoa.js
1.86
KB
-rw-rw-rw-
web.clear-immediate.js
392
B
-rw-rw-rw-
web.dom-collections.for-each.j...
918
B
-rw-rw-rw-
web.dom-collections.iterator.j...
1.69
KB
-rw-rw-rw-
web.dom-exception.constructor....
5.95
KB
-rw-rw-rw-
web.dom-exception.stack.js
3.18
KB
-rw-rw-rw-
web.dom-exception.to-string-ta...
281
B
-rw-rw-rw-
web.immediate.js
184
B
-rw-rw-rw-
web.queue-microtask.js
1.07
KB
-rw-rw-rw-
web.self.js
1.49
KB
-rw-rw-rw-
web.set-immediate.js
564
B
-rw-rw-rw-
web.set-interval.js
485
B
-rw-rw-rw-
web.set-timeout.js
477
B
-rw-rw-rw-
web.structured-clone.js
18.9
KB
-rw-rw-rw-
web.timers.js
179
B
-rw-rw-rw-
web.url-search-params.construc...
16.75
KB
-rw-rw-rw-
web.url-search-params.delete.j...
1.79
KB
-rw-rw-rw-
web.url-search-params.has.js
1.2
KB
-rw-rw-rw-
web.url-search-params.js
152
B
-rw-rw-rw-
web.url-search-params.size.js
713
B
-rw-rw-rw-
web.url.can-parse.js
1.19
KB
-rw-rw-rw-
web.url.constructor.js
35.05
KB
-rw-rw-rw-
web.url.js
138
B
-rw-rw-rw-
web.url.parse.js
801
B
-rw-rw-rw-
web.url.to-json.js
324
B
-rw-rw-rw-
Delete
Unzip
Zip
${this.title}
Close
Code Editor : web.url.constructor.js
'use strict'; // TODO: in core-js@4, move /modules/ dependencies to public entries for better optimization by tools like `preset-env` require('../modules/es.string.iterator'); var $ = require('../internals/export'); var DESCRIPTORS = require('../internals/descriptors'); var USE_NATIVE_URL = require('../internals/url-constructor-detection'); var globalThis = require('../internals/global-this'); var bind = require('../internals/function-bind-context'); var uncurryThis = require('../internals/function-uncurry-this'); var defineBuiltIn = require('../internals/define-built-in'); var defineBuiltInAccessor = require('../internals/define-built-in-accessor'); var anInstance = require('../internals/an-instance'); var hasOwn = require('../internals/has-own-property'); var assign = require('../internals/object-assign'); var arrayFrom = require('../internals/array-from'); var arraySlice = require('../internals/array-slice'); var codeAt = require('../internals/string-multibyte').codeAt; var toASCII = require('../internals/string-punycode-to-ascii'); var $toString = require('../internals/to-string'); var setToStringTag = require('../internals/set-to-string-tag'); var validateArgumentsLength = require('../internals/validate-arguments-length'); var URLSearchParamsModule = require('../modules/web.url-search-params.constructor'); var InternalStateModule = require('../internals/internal-state'); var setInternalState = InternalStateModule.set; var getInternalURLState = InternalStateModule.getterFor('URL'); var URLSearchParams = URLSearchParamsModule.URLSearchParams; var getInternalSearchParamsState = URLSearchParamsModule.getState; var NativeURL = globalThis.URL; var TypeError = globalThis.TypeError; var parseInt = globalThis.parseInt; var floor = Math.floor; var pow = Math.pow; var charAt = uncurryThis(''.charAt); var exec = uncurryThis(/./.exec); var join = uncurryThis([].join); var numberToString = uncurryThis(1.0.toString); var pop = uncurryThis([].pop); var push = uncurryThis([].push); var replace = uncurryThis(''.replace); var shift = uncurryThis([].shift); var split = uncurryThis(''.split); var stringSlice = uncurryThis(''.slice); var toLowerCase = uncurryThis(''.toLowerCase); var unshift = uncurryThis([].unshift); var INVALID_AUTHORITY = 'Invalid authority'; var INVALID_SCHEME = 'Invalid scheme'; var INVALID_HOST = 'Invalid host'; var INVALID_PORT = 'Invalid port'; var ALPHA = /[a-z]/i; // eslint-disable-next-line regexp/no-obscure-range -- safe var ALPHANUMERIC = /[\d+-.a-z]/i; var DIGIT = /\d/; var HEX_START = /^0x/i; var OCT = /^[0-7]+$/; var DEC = /^\d+$/; var HEX = /^[\da-f]+$/i; /* eslint-disable regexp/no-control-character -- safe */ var FORBIDDEN_HOST_CODE_POINT = /[\0\t\n\r #%/:<>?@[\\\]^|]/; var FORBIDDEN_HOST_CODE_POINT_EXCLUDING_PERCENT = /[\0\t\n\r #/:<>?@[\\\]^|]/; var LEADING_C0_CONTROL_OR_SPACE = /^[\u0000-\u0020]+/; var TRAILING_C0_CONTROL_OR_SPACE = /(^|[^\u0000-\u0020])[\u0000-\u0020]+$/; var TAB_AND_NEW_LINE = /[\t\n\r]/g; /* eslint-enable regexp/no-control-character -- safe */ var EOF; // https://url.spec.whatwg.org/#ipv4-number-parser var parseIPv4 = function (input) { var parts = split(input, '.'); var partsLength, numbers, index, part, radix, number, ipv4; if (parts.length && parts[parts.length - 1] === '') { parts.length--; } partsLength = parts.length; if (partsLength > 4) return input; numbers = []; for (index = 0; index < partsLength; index++) { part = parts[index]; if (part === '') return input; radix = 10; if (part.length > 1 && charAt(part, 0) === '0') { radix = exec(HEX_START, part) ? 16 : 8; part = stringSlice(part, radix === 8 ? 1 : 2); } if (part === '') { number = 0; } else { if (!exec(radix === 10 ? DEC : radix === 8 ? OCT : HEX, part)) return input; number = parseInt(part, radix); } push(numbers, number); } for (index = 0; index < partsLength; index++) { number = numbers[index]; if (index === partsLength - 1) { if (number >= pow(256, 5 - partsLength)) return null; } else if (number > 255) return null; } ipv4 = pop(numbers); for (index = 0; index < numbers.length; index++) { ipv4 += numbers[index] * pow(256, 3 - index); } return ipv4; }; // https://url.spec.whatwg.org/#concept-ipv6-parser // eslint-disable-next-line max-statements -- TODO var parseIPv6 = function (input) { var address = [0, 0, 0, 0, 0, 0, 0, 0]; var pieceIndex = 0; var compress = null; var pointer = 0; var value, length, numbersSeen, ipv4Piece, number, swaps, swap; var chr = function () { return charAt(input, pointer); }; if (chr() === ':') { if (charAt(input, 1) !== ':') return; pointer += 2; pieceIndex++; compress = pieceIndex; } while (chr()) { if (pieceIndex === 8) return; if (chr() === ':') { if (compress !== null) return; pointer++; pieceIndex++; compress = pieceIndex; continue; } value = length = 0; while (length < 4 && exec(HEX, chr())) { value = value * 16 + parseInt(chr(), 16); pointer++; length++; } if (chr() === '.') { if (length === 0) return; pointer -= length; if (pieceIndex > 6) return; numbersSeen = 0; while (chr()) { ipv4Piece = null; if (numbersSeen > 0) { if (chr() === '.' && numbersSeen < 4) pointer++; else return; } if (!exec(DIGIT, chr())) return; while (exec(DIGIT, chr())) { number = parseInt(chr(), 10); if (ipv4Piece === null) ipv4Piece = number; else if (ipv4Piece === 0) return; else ipv4Piece = ipv4Piece * 10 + number; if (ipv4Piece > 255) return; pointer++; } address[pieceIndex] = address[pieceIndex] * 256 + ipv4Piece; numbersSeen++; if (numbersSeen === 2 || numbersSeen === 4) pieceIndex++; } if (numbersSeen !== 4) return; break; } else if (chr() === ':') { pointer++; if (!chr()) return; } else if (chr()) return; address[pieceIndex++] = value; } if (compress !== null) { swaps = pieceIndex - compress; pieceIndex = 7; while (pieceIndex !== 0 && swaps > 0) { swap = address[pieceIndex]; address[pieceIndex--] = address[compress + swaps - 1]; address[compress + --swaps] = swap; } } else if (pieceIndex !== 8) return; return address; }; var findLongestZeroSequence = function (ipv6) { var maxIndex = null; var maxLength = 1; var currStart = null; var currLength = 0; var index = 0; for (; index < 8; index++) { if (ipv6[index] !== 0) { if (currLength > maxLength) { maxIndex = currStart; maxLength = currLength; } currStart = null; currLength = 0; } else { if (currStart === null) currStart = index; ++currLength; } } return currLength > maxLength ? currStart : maxIndex; }; // https://url.spec.whatwg.org/#host-serializing var serializeHost = function (host) { var result, index, compress, ignore0; // ipv4 if (typeof host == 'number') { result = []; for (index = 0; index < 4; index++) { unshift(result, host % 256); host = floor(host / 256); } return join(result, '.'); } // ipv6 if (typeof host == 'object') { result = ''; compress = findLongestZeroSequence(host); for (index = 0; index < 8; index++) { if (ignore0 && host[index] === 0) continue; if (ignore0) ignore0 = false; if (compress === index) { result += index ? ':' : '::'; ignore0 = true; } else { result += numberToString(host[index], 16); if (index < 7) result += ':'; } } return '[' + result + ']'; } return host; }; var C0ControlPercentEncodeSet = {}; var fragmentPercentEncodeSet = assign({}, C0ControlPercentEncodeSet, { ' ': 1, '"': 1, '<': 1, '>': 1, '`': 1 }); var pathPercentEncodeSet = assign({}, fragmentPercentEncodeSet, { '#': 1, '?': 1, '{': 1, '}': 1 }); var userinfoPercentEncodeSet = assign({}, pathPercentEncodeSet, { '/': 1, ':': 1, ';': 1, '=': 1, '@': 1, '[': 1, '\\': 1, ']': 1, '^': 1, '|': 1 }); var percentEncode = function (chr, set) { var code = codeAt(chr, 0); return code > 0x20 && code < 0x7F && !hasOwn(set, chr) ? chr : encodeURIComponent(chr); }; // https://url.spec.whatwg.org/#special-scheme var specialSchemes = { ftp: 21, file: null, http: 80, https: 443, ws: 80, wss: 443 }; // https://url.spec.whatwg.org/#windows-drive-letter var isWindowsDriveLetter = function (string, normalized) { var second; return string.length === 2 && exec(ALPHA, charAt(string, 0)) && ((second = charAt(string, 1)) === ':' || (!normalized && second === '|')); }; // https://url.spec.whatwg.org/#start-with-a-windows-drive-letter var startsWithWindowsDriveLetter = function (string) { var third; return string.length > 1 && isWindowsDriveLetter(stringSlice(string, 0, 2)) && ( string.length === 2 || ((third = charAt(string, 2)) === '/' || third === '\\' || third === '?' || third === '#') ); }; // https://url.spec.whatwg.org/#single-dot-path-segment var isSingleDot = function (segment) { return segment === '.' || toLowerCase(segment) === '%2e'; }; // https://url.spec.whatwg.org/#double-dot-path-segment var isDoubleDot = function (segment) { segment = toLowerCase(segment); return segment === '..' || segment === '%2e.' || segment === '.%2e' || segment === '%2e%2e'; }; // States: var SCHEME_START = {}; var SCHEME = {}; var NO_SCHEME = {}; var SPECIAL_RELATIVE_OR_AUTHORITY = {}; var PATH_OR_AUTHORITY = {}; var RELATIVE = {}; var RELATIVE_SLASH = {}; var SPECIAL_AUTHORITY_SLASHES = {}; var SPECIAL_AUTHORITY_IGNORE_SLASHES = {}; var AUTHORITY = {}; var HOST = {}; var HOSTNAME = {}; var PORT = {}; var FILE = {}; var FILE_SLASH = {}; var FILE_HOST = {}; var PATH_START = {}; var PATH = {}; var CANNOT_BE_A_BASE_URL_PATH = {}; var QUERY = {}; var FRAGMENT = {}; var URLState = function (url, isBase, base) { var urlString = $toString(url); var baseState, failure, searchParams; if (isBase) { failure = this.parse(urlString); if (failure) throw new TypeError(failure); this.searchParams = null; } else { if (base !== undefined) baseState = new URLState(base, true); failure = this.parse(urlString, null, baseState); if (failure) throw new TypeError(failure); searchParams = getInternalSearchParamsState(new URLSearchParams()); searchParams.bindURL(this); this.searchParams = searchParams; } }; URLState.prototype = { type: 'URL', // https://url.spec.whatwg.org/#url-parsing // eslint-disable-next-line max-statements -- TODO parse: function (input, stateOverride, base) { var url = this; var state = stateOverride || SCHEME_START; var pointer = 0; var buffer = ''; var seenAt = false; var seenBracket = false; var seenPasswordToken = false; var codePoints, chr, bufferCodePoints, failure; input = $toString(input); if (!stateOverride) { url.scheme = ''; url.username = ''; url.password = ''; url.host = null; url.port = null; url.path = []; url.query = null; url.fragment = null; url.cannotBeABaseURL = false; input = replace(input, LEADING_C0_CONTROL_OR_SPACE, ''); input = replace(input, TRAILING_C0_CONTROL_OR_SPACE, '$1'); } input = replace(input, TAB_AND_NEW_LINE, ''); codePoints = arrayFrom(input); while (pointer <= codePoints.length) { chr = codePoints[pointer]; switch (state) { case SCHEME_START: if (chr && exec(ALPHA, chr)) { buffer += toLowerCase(chr); state = SCHEME; } else if (!stateOverride) { state = NO_SCHEME; continue; } else return INVALID_SCHEME; break; case SCHEME: if (chr && (exec(ALPHANUMERIC, chr) || chr === '+' || chr === '-' || chr === '.')) { buffer += toLowerCase(chr); } else if (chr === ':') { if (stateOverride && ( (url.isSpecial() !== hasOwn(specialSchemes, buffer)) || (buffer === 'file' && (url.includesCredentials() || url.port !== null)) || (url.scheme === 'file' && !url.host) )) return; url.scheme = buffer; if (stateOverride) { if (url.isSpecial() && specialSchemes[url.scheme] === url.port) url.port = null; return; } buffer = ''; if (url.scheme === 'file') { state = FILE; } else if (url.isSpecial() && base && base.scheme === url.scheme) { state = SPECIAL_RELATIVE_OR_AUTHORITY; } else if (url.isSpecial()) { state = SPECIAL_AUTHORITY_SLASHES; } else if (codePoints[pointer + 1] === '/') { state = PATH_OR_AUTHORITY; pointer++; } else { url.cannotBeABaseURL = true; push(url.path, ''); state = CANNOT_BE_A_BASE_URL_PATH; } } else if (!stateOverride) { buffer = ''; state = NO_SCHEME; pointer = 0; continue; } else return INVALID_SCHEME; break; case NO_SCHEME: if (!base || (base.cannotBeABaseURL && chr !== '#')) return INVALID_SCHEME; if (base.cannotBeABaseURL && chr === '#') { url.scheme = base.scheme; url.path = arraySlice(base.path); url.query = base.query; url.fragment = ''; url.cannotBeABaseURL = true; state = FRAGMENT; break; } state = base.scheme === 'file' ? FILE : RELATIVE; continue; case SPECIAL_RELATIVE_OR_AUTHORITY: if (chr === '/' && codePoints[pointer + 1] === '/') { state = SPECIAL_AUTHORITY_IGNORE_SLASHES; pointer++; } else { state = RELATIVE; continue; } break; case PATH_OR_AUTHORITY: if (chr === '/') { state = AUTHORITY; break; } else { state = PATH; continue; } case RELATIVE: url.scheme = base.scheme; if (chr === EOF) { url.username = base.username; url.password = base.password; url.host = base.host; url.port = base.port; url.path = arraySlice(base.path); url.query = base.query; } else if (chr === '/' || (chr === '\\' && url.isSpecial())) { state = RELATIVE_SLASH; } else if (chr === '?') { url.username = base.username; url.password = base.password; url.host = base.host; url.port = base.port; url.path = arraySlice(base.path); url.query = ''; state = QUERY; } else if (chr === '#') { url.username = base.username; url.password = base.password; url.host = base.host; url.port = base.port; url.path = arraySlice(base.path); url.query = base.query; url.fragment = ''; state = FRAGMENT; } else { url.username = base.username; url.password = base.password; url.host = base.host; url.port = base.port; url.path = arraySlice(base.path); url.path.length--; state = PATH; continue; } break; case RELATIVE_SLASH: if (url.isSpecial() && (chr === '/' || chr === '\\')) { state = SPECIAL_AUTHORITY_IGNORE_SLASHES; } else if (chr === '/') { state = AUTHORITY; } else { url.username = base.username; url.password = base.password; url.host = base.host; url.port = base.port; state = PATH; continue; } break; case SPECIAL_AUTHORITY_SLASHES: state = SPECIAL_AUTHORITY_IGNORE_SLASHES; if (chr !== '/' || charAt(buffer, pointer + 1) !== '/') continue; pointer++; break; case SPECIAL_AUTHORITY_IGNORE_SLASHES: if (chr !== '/' && chr !== '\\') { state = AUTHORITY; continue; } break; case AUTHORITY: if (chr === '@') { if (seenAt) buffer = '%40' + buffer; seenAt = true; bufferCodePoints = arrayFrom(buffer); for (var i = 0; i < bufferCodePoints.length; i++) { var codePoint = bufferCodePoints[i]; if (codePoint === ':' && !seenPasswordToken) { seenPasswordToken = true; continue; } var encodedCodePoints = percentEncode(codePoint, userinfoPercentEncodeSet); if (seenPasswordToken) url.password += encodedCodePoints; else url.username += encodedCodePoints; } buffer = ''; } else if ( chr === EOF || chr === '/' || chr === '?' || chr === '#' || (chr === '\\' && url.isSpecial()) ) { if (seenAt && buffer === '') return INVALID_AUTHORITY; pointer -= arrayFrom(buffer).length + 1; buffer = ''; state = HOST; } else buffer += chr; break; case HOST: case HOSTNAME: if (stateOverride && url.scheme === 'file') { state = FILE_HOST; continue; } else if (chr === ':' && !seenBracket) { if (buffer === '') return INVALID_HOST; failure = url.parseHost(buffer); if (failure) return failure; buffer = ''; state = PORT; if (stateOverride === HOSTNAME) return; } else if ( chr === EOF || chr === '/' || chr === '?' || chr === '#' || (chr === '\\' && url.isSpecial()) ) { if (url.isSpecial() && buffer === '') return INVALID_HOST; if (stateOverride && buffer === '' && (url.includesCredentials() || url.port !== null)) return; failure = url.parseHost(buffer); if (failure) return failure; buffer = ''; state = PATH_START; if (stateOverride) return; continue; } else { if (chr === '[') seenBracket = true; else if (chr === ']') seenBracket = false; buffer += chr; } break; case PORT: if (exec(DIGIT, chr)) { buffer += chr; } else if ( chr === EOF || chr === '/' || chr === '?' || chr === '#' || (chr === '\\' && url.isSpecial()) || stateOverride ) { if (buffer !== '') { var port = parseInt(buffer, 10); if (port > 0xFFFF) return INVALID_PORT; url.port = (url.isSpecial() && port === specialSchemes[url.scheme]) ? null : port; buffer = ''; } if (stateOverride) return; state = PATH_START; continue; } else return INVALID_PORT; break; case FILE: url.scheme = 'file'; if (chr === '/' || chr === '\\') state = FILE_SLASH; else if (base && base.scheme === 'file') { switch (chr) { case EOF: url.host = base.host; url.path = arraySlice(base.path); url.query = base.query; break; case '?': url.host = base.host; url.path = arraySlice(base.path); url.query = ''; state = QUERY; break; case '#': url.host = base.host; url.path = arraySlice(base.path); url.query = base.query; url.fragment = ''; state = FRAGMENT; break; default: if (!startsWithWindowsDriveLetter(join(arraySlice(codePoints, pointer), ''))) { url.host = base.host; url.path = arraySlice(base.path); url.shortenPath(); } state = PATH; continue; } } else { state = PATH; continue; } break; case FILE_SLASH: if (chr === '/' || chr === '\\') { state = FILE_HOST; break; } if (base && base.scheme === 'file' && !startsWithWindowsDriveLetter(join(arraySlice(codePoints, pointer), ''))) { if (isWindowsDriveLetter(base.path[0], true)) push(url.path, base.path[0]); else url.host = base.host; } state = PATH; continue; case FILE_HOST: if (chr === EOF || chr === '/' || chr === '\\' || chr === '?' || chr === '#') { if (!stateOverride && isWindowsDriveLetter(buffer)) { state = PATH; } else if (buffer === '') { url.host = ''; if (stateOverride) return; state = PATH_START; } else { failure = url.parseHost(buffer); if (failure) return failure; if (url.host === 'localhost') url.host = ''; if (stateOverride) return; buffer = ''; state = PATH_START; } continue; } else buffer += chr; break; case PATH_START: if (url.isSpecial()) { state = PATH; if (chr !== '/' && chr !== '\\') continue; } else if (!stateOverride && chr === '?') { url.query = ''; state = QUERY; } else if (!stateOverride && chr === '#') { url.fragment = ''; state = FRAGMENT; } else if (chr !== EOF) { state = PATH; if (chr !== '/') continue; } break; case PATH: if ( chr === EOF || chr === '/' || (chr === '\\' && url.isSpecial()) || (!stateOverride && (chr === '?' || chr === '#')) ) { if (isDoubleDot(buffer)) { url.shortenPath(); if (chr !== '/' && !(chr === '\\' && url.isSpecial())) { push(url.path, ''); } } else if (isSingleDot(buffer)) { if (chr !== '/' && !(chr === '\\' && url.isSpecial())) { push(url.path, ''); } } else { if (url.scheme === 'file' && !url.path.length && isWindowsDriveLetter(buffer)) { if (url.host) url.host = ''; buffer = charAt(buffer, 0) + ':'; // normalize windows drive letter } push(url.path, buffer); } buffer = ''; if (url.scheme === 'file' && (chr === EOF || chr === '?' || chr === '#')) { while (url.path.length > 1 && url.path[0] === '') { shift(url.path); } } if (chr === '?') { url.query = ''; state = QUERY; } else if (chr === '#') { url.fragment = ''; state = FRAGMENT; } } else { buffer += percentEncode(chr, pathPercentEncodeSet); } break; case CANNOT_BE_A_BASE_URL_PATH: if (chr === '?') { url.query = ''; state = QUERY; } else if (chr === '#') { url.fragment = ''; state = FRAGMENT; } else if (chr !== EOF) { url.path[0] += percentEncode(chr, C0ControlPercentEncodeSet); } break; case QUERY: if (!stateOverride && chr === '#') { url.fragment = ''; state = FRAGMENT; } else if (chr !== EOF) { if (chr === "'" && url.isSpecial()) url.query += '%27'; else if (chr === '#') url.query += '%23'; else url.query += percentEncode(chr, C0ControlPercentEncodeSet); } break; case FRAGMENT: if (chr !== EOF) url.fragment += percentEncode(chr, fragmentPercentEncodeSet); break; } pointer++; } }, // https://url.spec.whatwg.org/#host-parsing parseHost: function (input) { var result, codePoints, index; if (charAt(input, 0) === '[') { if (charAt(input, input.length - 1) !== ']') return INVALID_HOST; result = parseIPv6(stringSlice(input, 1, -1)); if (!result) return INVALID_HOST; this.host = result; // opaque host } else if (!this.isSpecial()) { if (exec(FORBIDDEN_HOST_CODE_POINT_EXCLUDING_PERCENT, input)) return INVALID_HOST; result = ''; codePoints = arrayFrom(input); for (index = 0; index < codePoints.length; index++) { result += percentEncode(codePoints[index], C0ControlPercentEncodeSet); } this.host = result; } else { input = toASCII(input); if (exec(FORBIDDEN_HOST_CODE_POINT, input)) return INVALID_HOST; result = parseIPv4(input); if (result === null) return INVALID_HOST; this.host = result; } }, // https://url.spec.whatwg.org/#cannot-have-a-username-password-port cannotHaveUsernamePasswordPort: function () { return !this.host || this.cannotBeABaseURL || this.scheme === 'file'; }, // https://url.spec.whatwg.org/#include-credentials includesCredentials: function () { return this.username !== '' || this.password !== ''; }, // https://url.spec.whatwg.org/#is-special isSpecial: function () { return hasOwn(specialSchemes, this.scheme); }, // https://url.spec.whatwg.org/#shorten-a-urls-path shortenPath: function () { var path = this.path; var pathSize = path.length; if (pathSize && (this.scheme !== 'file' || pathSize !== 1 || !isWindowsDriveLetter(path[0], true))) { path.length--; } }, // https://url.spec.whatwg.org/#concept-url-serializer serialize: function () { var url = this; var scheme = url.scheme; var username = url.username; var password = url.password; var host = url.host; var port = url.port; var path = url.path; var query = url.query; var fragment = url.fragment; var output = scheme + ':'; if (host !== null) { output += '//'; if (url.includesCredentials()) { output += username + (password ? ':' + password : '') + '@'; } output += serializeHost(host); if (port !== null) output += ':' + port; } else if (scheme === 'file') output += '//'; output += url.cannotBeABaseURL ? path[0] : path.length ? '/' + join(path, '/') : ''; if (query !== null) output += '?' + query; if (fragment !== null) output += '#' + fragment; return output; }, // https://url.spec.whatwg.org/#dom-url-href setHref: function (href) { var failure = this.parse(href); if (failure) throw new TypeError(failure); this.searchParams.update(); }, // https://url.spec.whatwg.org/#dom-url-origin getOrigin: function () { var scheme = this.scheme; var port = this.port; if (scheme === 'blob') try { return new URLConstructor(scheme.path[0]).origin; } catch (error) { return 'null'; } if (scheme === 'file' || !this.isSpecial()) return 'null'; return scheme + '://' + serializeHost(this.host) + (port !== null ? ':' + port : ''); }, // https://url.spec.whatwg.org/#dom-url-protocol getProtocol: function () { return this.scheme + ':'; }, setProtocol: function (protocol) { this.parse($toString(protocol) + ':', SCHEME_START); }, // https://url.spec.whatwg.org/#dom-url-username getUsername: function () { return this.username; }, setUsername: function (username) { var codePoints = arrayFrom($toString(username)); if (this.cannotHaveUsernamePasswordPort()) return; this.username = ''; for (var i = 0; i < codePoints.length; i++) { this.username += percentEncode(codePoints[i], userinfoPercentEncodeSet); } }, // https://url.spec.whatwg.org/#dom-url-password getPassword: function () { return this.password; }, setPassword: function (password) { var codePoints = arrayFrom($toString(password)); if (this.cannotHaveUsernamePasswordPort()) return; this.password = ''; for (var i = 0; i < codePoints.length; i++) { this.password += percentEncode(codePoints[i], userinfoPercentEncodeSet); } }, // https://url.spec.whatwg.org/#dom-url-host getHost: function () { var host = this.host; var port = this.port; return host === null ? '' : port === null ? serializeHost(host) : serializeHost(host) + ':' + port; }, setHost: function (host) { if (this.cannotBeABaseURL) return; this.parse(host, HOST); }, // https://url.spec.whatwg.org/#dom-url-hostname getHostname: function () { var host = this.host; return host === null ? '' : serializeHost(host); }, setHostname: function (hostname) { if (this.cannotBeABaseURL) return; this.parse(hostname, HOSTNAME); }, // https://url.spec.whatwg.org/#dom-url-port getPort: function () { var port = this.port; return port === null ? '' : $toString(port); }, setPort: function (port) { if (this.cannotHaveUsernamePasswordPort()) return; port = $toString(port); if (port === '') this.port = null; else this.parse(port, PORT); }, // https://url.spec.whatwg.org/#dom-url-pathname getPathname: function () { var path = this.path; return this.cannotBeABaseURL ? path[0] : path.length ? '/' + join(path, '/') : ''; }, setPathname: function (pathname) { if (this.cannotBeABaseURL) return; this.path = []; this.parse(pathname, PATH_START); }, // https://url.spec.whatwg.org/#dom-url-search getSearch: function () { var query = this.query; return query ? '?' + query : ''; }, setSearch: function (search) { search = $toString(search); if (search === '') { this.query = null; } else { if (charAt(search, 0) === '?') search = stringSlice(search, 1); this.query = ''; this.parse(search, QUERY); } this.searchParams.update(); }, // https://url.spec.whatwg.org/#dom-url-searchparams getSearchParams: function () { return this.searchParams.facade; }, // https://url.spec.whatwg.org/#dom-url-hash getHash: function () { var fragment = this.fragment; return fragment ? '#' + fragment : ''; }, setHash: function (hash) { hash = $toString(hash); if (hash === '') { this.fragment = null; return; } if (charAt(hash, 0) === '#') hash = stringSlice(hash, 1); this.fragment = ''; this.parse(hash, FRAGMENT); }, update: function () { this.query = this.searchParams.serialize() || null; } }; // `URL` constructor // https://url.spec.whatwg.org/#url-class var URLConstructor = function URL(url /* , base */) { var that = anInstance(this, URLPrototype); var base = validateArgumentsLength(arguments.length, 1) > 1 ? arguments[1] : undefined; var state = setInternalState(that, new URLState(url, false, base)); if (!DESCRIPTORS) { that.href = state.serialize(); that.origin = state.getOrigin(); that.protocol = state.getProtocol(); that.username = state.getUsername(); that.password = state.getPassword(); that.host = state.getHost(); that.hostname = state.getHostname(); that.port = state.getPort(); that.pathname = state.getPathname(); that.search = state.getSearch(); that.searchParams = state.getSearchParams(); that.hash = state.getHash(); } }; var URLPrototype = URLConstructor.prototype; var accessorDescriptor = function (getter, setter) { return { get: function () { return getInternalURLState(this)[getter](); }, set: setter && function (value) { return getInternalURLState(this)[setter](value); }, configurable: true, enumerable: true }; }; if (DESCRIPTORS) { // `URL.prototype.href` accessors pair // https://url.spec.whatwg.org/#dom-url-href defineBuiltInAccessor(URLPrototype, 'href', accessorDescriptor('serialize', 'setHref')); // `URL.prototype.origin` getter // https://url.spec.whatwg.org/#dom-url-origin defineBuiltInAccessor(URLPrototype, 'origin', accessorDescriptor('getOrigin')); // `URL.prototype.protocol` accessors pair // https://url.spec.whatwg.org/#dom-url-protocol defineBuiltInAccessor(URLPrototype, 'protocol', accessorDescriptor('getProtocol', 'setProtocol')); // `URL.prototype.username` accessors pair // https://url.spec.whatwg.org/#dom-url-username defineBuiltInAccessor(URLPrototype, 'username', accessorDescriptor('getUsername', 'setUsername')); // `URL.prototype.password` accessors pair // https://url.spec.whatwg.org/#dom-url-password defineBuiltInAccessor(URLPrototype, 'password', accessorDescriptor('getPassword', 'setPassword')); // `URL.prototype.host` accessors pair // https://url.spec.whatwg.org/#dom-url-host defineBuiltInAccessor(URLPrototype, 'host', accessorDescriptor('getHost', 'setHost')); // `URL.prototype.hostname` accessors pair // https://url.spec.whatwg.org/#dom-url-hostname defineBuiltInAccessor(URLPrototype, 'hostname', accessorDescriptor('getHostname', 'setHostname')); // `URL.prototype.port` accessors pair // https://url.spec.whatwg.org/#dom-url-port defineBuiltInAccessor(URLPrototype, 'port', accessorDescriptor('getPort', 'setPort')); // `URL.prototype.pathname` accessors pair // https://url.spec.whatwg.org/#dom-url-pathname defineBuiltInAccessor(URLPrototype, 'pathname', accessorDescriptor('getPathname', 'setPathname')); // `URL.prototype.search` accessors pair // https://url.spec.whatwg.org/#dom-url-search defineBuiltInAccessor(URLPrototype, 'search', accessorDescriptor('getSearch', 'setSearch')); // `URL.prototype.searchParams` getter // https://url.spec.whatwg.org/#dom-url-searchparams defineBuiltInAccessor(URLPrototype, 'searchParams', accessorDescriptor('getSearchParams')); // `URL.prototype.hash` accessors pair // https://url.spec.whatwg.org/#dom-url-hash defineBuiltInAccessor(URLPrototype, 'hash', accessorDescriptor('getHash', 'setHash')); } // `URL.prototype.toJSON` method // https://url.spec.whatwg.org/#dom-url-tojson defineBuiltIn(URLPrototype, 'toJSON', function toJSON() { return getInternalURLState(this).serialize(); }, { enumerable: true }); // `URL.prototype.toString` method // https://url.spec.whatwg.org/#URL-stringification-behavior defineBuiltIn(URLPrototype, 'toString', function toString() { return getInternalURLState(this).serialize(); }, { enumerable: true }); if (NativeURL) { var nativeCreateObjectURL = NativeURL.createObjectURL; var nativeRevokeObjectURL = NativeURL.revokeObjectURL; // `URL.createObjectURL` method // https://developer.mozilla.org/en-US/docs/Web/API/URL/createObjectURL if (nativeCreateObjectURL) defineBuiltIn(URLConstructor, 'createObjectURL', bind(nativeCreateObjectURL, NativeURL)); // `URL.revokeObjectURL` method // https://developer.mozilla.org/en-US/docs/Web/API/URL/revokeObjectURL if (nativeRevokeObjectURL) defineBuiltIn(URLConstructor, 'revokeObjectURL', bind(nativeRevokeObjectURL, NativeURL)); } setToStringTag(URLConstructor, 'URL'); $({ global: true, constructor: true, forced: !USE_NATIVE_URL, sham: !DESCRIPTORS }, { URL: URLConstructor });
Close