@@ -157,13 +157,13 @@ Url.prototype.parse = function parse(url, parseQueryString, slashesDenoteHost) {
157157 // Copy chrome, IE, opera backslash-handling behavior.
158158 // Back slashes before the query string get converted to forward slashes
159159 // See: https://code.google.com/p/chromium/issues/detail?id=25916
160- var hasHash = false;
161- var start = -1;
162- var end = -1;
163- var rest = '';
164- var lastPos = 0;
165- var i = 0;
166- for (var inWs = false, split = false; i < url.length; ++i) {
160+ let hasHash = false;
161+ let start = -1;
162+ let end = -1;
163+ let rest = '';
164+ let lastPos = 0;
165+ let i = 0;
166+ for (let inWs = false, split = false; i < url.length; ++i) {
167167 const code = url.charCodeAt(i);
168168
169169 // Find first and last non-whitespace characters for trimming
@@ -292,9 +292,9 @@ Url.prototype.parse = function parse(url, parseQueryString, slashesDenoteHost) {
292292 // http://a@b@c/ => user:a@b host:c
293293 // http://a@b?@c => user:a host:b path:/?@c
294294
295- var hostEnd = -1;
296- var atSign = -1;
297- var nonHost = -1;
295+ let hostEnd = -1;
296+ let atSign = -1;
297+ let nonHost = -1;
298298 for (i = 0; i < rest.length; ++i) {
299299 switch (rest.charCodeAt(i)) {
300300 case CHAR_TAB:
@@ -356,11 +356,11 @@ Url.prototype.parse = function parse(url, parseQueryString, slashesDenoteHost) {
356356 if (typeof this.hostname !== 'string')
357357 this.hostname = '';
358358
359- var hostname = this.hostname;
359+ const hostname = this.hostname;
360360
361361 // If hostname begins with [ and ends with ]
362362 // assume that it's an IPv6 address.
363- var ipv6Hostname = hostname.charCodeAt(0) === CHAR_LEFT_SQUARE_BRACKET &&
363+ const ipv6Hostname = hostname.charCodeAt(0) === CHAR_LEFT_SQUARE_BRACKET &&
364364 hostname.charCodeAt(hostname.length - 1) === CHAR_RIGHT_SQUARE_BRACKET;
365365
366366 // validate a little.
@@ -386,8 +386,8 @@ Url.prototype.parse = function parse(url, parseQueryString, slashesDenoteHost) {
386386 this.hostname = toASCII(this.hostname, true);
387387 }
388388
389- var p = this.port ? ':' + this.port : '';
390- var h = this.hostname || '';
389+ const p = this.port ? ':' + this.port : '';
390+ const h = this.hostname || '';
391391 this.host = h + p;
392392
393393 // strip [ and ] from the hostname
@@ -409,8 +409,8 @@ Url.prototype.parse = function parse(url, parseQueryString, slashesDenoteHost) {
409409 rest = autoEscapeStr(rest);
410410 }
411411
412- var questionIdx = -1;
413- var hashIdx = -1;
412+ let questionIdx = -1;
413+ let hashIdx = -1;
414414 for (i = 0; i < rest.length; ++i) {
415415 const code = rest.charCodeAt(i);
416416 if (code === CHAR_HASH) {
@@ -467,7 +467,7 @@ Url.prototype.parse = function parse(url, parseQueryString, slashesDenoteHost) {
467467};
468468
469469function getHostname(self, rest, hostname) {
470- for (var i = 0; i < hostname.length; ++i) {
470+ for (let i = 0; i < hostname.length; ++i) {
471471 const code = hostname.charCodeAt(i);
472472 const isValid = (code >= CHAR_LOWERCASE_A && code <= CHAR_LOWERCASE_Z) ||
473473 code === CHAR_DOT ||
@@ -509,11 +509,11 @@ const escapedCodes = [
509509// Also escape single quotes in case of an XSS attack.
510510// Return the escaped string.
511511function autoEscapeStr(rest) {
512- var escaped = '';
513- var lastEscapedPos = 0;
514- for (var i = 0; i < rest.length; ++i) {
512+ let escaped = '';
513+ let lastEscapedPos = 0;
514+ for (let i = 0; i < rest.length; ++i) {
515515 // `escaped` contains substring up to the last escaped character.
516- var escapedChar = escapedCodes[rest.charCodeAt(i)];
516+ const escapedChar = escapedCodes[rest.charCodeAt(i)];
517517 if (escapedChar) {
518518 // Concat if there are ordinary characters in the middle.
519519 if (i > lastEscapedPos)
@@ -544,7 +544,7 @@ function urlFormat(urlObject, options) {
544544 throw new ERR_INVALID_ARG_TYPE('urlObject',
545545 ['Object', 'string'], urlObject);
546546 } else if (!(urlObject instanceof Url)) {
547- var format = urlObject[formatSymbol];
547+ const format = urlObject[formatSymbol];
548548 return format ?
549549 format.call(urlObject, options) :
550550 Url.prototype.format.call(urlObject);
@@ -570,17 +570,17 @@ const noEscapeAuth = [
570570];
571571
572572Url.prototype.format = function format() {
573- var auth = this.auth || '';
573+ let auth = this.auth || '';
574574 if (auth) {
575575 auth = encodeStr(auth, noEscapeAuth, hexTable);
576576 auth += '@';
577577 }
578578
579- var protocol = this.protocol || '';
580- var pathname = this.pathname || '';
581- var hash = this.hash || '';
582- var host = '';
583- var query = '';
579+ let protocol = this.protocol || '';
580+ let pathname = this.pathname || '';
581+ let hash = this.hash || '';
582+ let host = '';
583+ let query = '';
584584
585585 if (this.host) {
586586 host = auth + this.host;
@@ -600,14 +600,14 @@ Url.prototype.format = function format() {
600600 query = querystring.stringify(this.query);
601601 }
602602
603- var search = this.search || (query && ('?' + query)) || '';
603+ let search = this.search || (query && ('?' + query)) || '';
604604
605605 if (protocol && protocol.charCodeAt(protocol.length - 1) !== 58/* : */)
606606 protocol += ':';
607607
608- var newPathname = '';
609- var lastPos = 0;
610- for (var i = 0; i < pathname.length; ++i) {
608+ let newPathname = '';
609+ let lastPos = 0;
610+ for (let i = 0; i < pathname.length; ++i) {
611611 switch (pathname.charCodeAt(i)) {
612612 case CHAR_HASH:
613613 if (i - lastPos > 0)
@@ -671,15 +671,15 @@ function urlResolveObject(source, relative) {
671671
672672Url.prototype.resolveObject = function resolveObject(relative) {
673673 if (typeof relative === 'string') {
674- var rel = new Url();
674+ const rel = new Url();
675675 rel.parse(relative, false, true);
676676 relative = rel;
677677 }
678678
679679 const result = new Url();
680680 const tkeys = Object.keys(this);
681- for (var tk = 0; tk < tkeys.length; tk++) {
682- var tkey = tkeys[tk];
681+ for (let tk = 0; tk < tkeys.length; tk++) {
682+ const tkey = tkeys[tk];
683683 result[tkey] = this[tkey];
684684 }
685685
@@ -696,9 +696,9 @@ Url.prototype.resolveObject = function resolveObject(relative) {
696696 // Hrefs like //foo/bar always cut to the protocol.
697697 if (relative.slashes && !relative.protocol) {
698698 // Take everything except the protocol from relative
699- var rkeys = Object.keys(relative);
700- for (var rk = 0; rk < rkeys.length; rk++) {
701- var rkey = rkeys[rk];
699+ const rkeys = Object.keys(relative);
700+ for (let rk = 0; rk < rkeys.length; rk++) {
701+ const rkey = rkeys[rk];
702702 if (rkey !== 'protocol')
703703 result[rkey] = relative[rkey];
704704 }
@@ -723,9 +723,9 @@ Url.prototype.resolveObject = function resolveObject(relative) {
723723 // because that's known to be hostless.
724724 // anything else is assumed to be absolute.
725725 if (!slashedProtocol.has(relative.protocol)) {
726- var keys = Object.keys(relative);
727- for (var v = 0; v < keys.length; v++) {
728- var k = keys[v];
726+ const keys = Object.keys(relative);
727+ for (let v = 0; v < keys.length; v++) {
728+ const k = keys[v];
729729 result[k] = relative[k];
730730 }
731731 result.href = result.format();
@@ -754,8 +754,8 @@ Url.prototype.resolveObject = function resolveObject(relative) {
754754 result.port = relative.port;
755755 // To support http.request
756756 if (result.pathname || result.search) {
757- var p = result.pathname || '';
758- var s = result.search || '';
757+ const p = result.pathname || '';
758+ const s = result.search || '';
759759 result.path = p + s;
760760 }
761761 result.slashes = result.slashes || relative.slashes;
@@ -767,10 +767,10 @@ Url.prototype.resolveObject = function resolveObject(relative) {
767767 const isRelAbs = (
768768 relative.host || (relative.pathname && relative.pathname.charAt(0) === '/')
769769 );
770- var mustEndAbs = (isRelAbs || isSourceAbs ||
770+ let mustEndAbs = (isRelAbs || isSourceAbs ||
771771 (result.host && relative.pathname));
772772 const removeAllDots = mustEndAbs;
773- var srcPath = (result.pathname && result.pathname.split('/')) || [];
773+ let srcPath = (result.pathname && result.pathname.split('/')) || [];
774774 const relPath = (relative.pathname && relative.pathname.split('/')) || [];
775775 const noLeadingSlashes = result.protocol &&
776776 !slashedProtocol.has(result.protocol);
@@ -867,15 +867,15 @@ Url.prototype.resolveObject = function resolveObject(relative) {
867867 // If a url ENDs in . or .., then it must get a trailing slash.
868868 // however, if it ends in anything else non-slashy,
869869 // then it must NOT get a trailing slash.
870- var last = srcPath.slice(-1)[0];
870+ let last = srcPath.slice(-1)[0];
871871 const hasTrailingSlash = (
872872 ((result.host || relative.host || srcPath.length > 1) &&
873873 (last === '.' || last === '..')) || last === '');
874874
875875 // Strip single dots, resolve double dots to parent dir
876876 // if the path tries to go above the root, `up` ends up > 0
877- var up = 0;
878- for (var i = srcPath.length - 1; i >= 0; i--) {
877+ let up = 0;
878+ for (let i = srcPath.length - 1; i >= 0; i--) {
879879 last = srcPath[i];
880880 if (last === '.') {
881881 spliceOne(srcPath, i);
@@ -947,8 +947,8 @@ Url.prototype.resolveObject = function resolveObject(relative) {
947947};
948948
949949Url.prototype.parseHost = function parseHost() {
950- var host = this.host;
951- var port = portPattern.exec(host);
950+ let host = this.host;
951+ let port = portPattern.exec(host);
952952 if (port) {
953953 port = port[0];
954954 if (port !== ':') {
0 commit comments