@@ -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 ) {
167167const 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 ;
298298for ( i = 0 ; i < rest . length ; ++ i ) {
299299switch ( rest . charCodeAt ( i ) ) {
300300case CHAR_TAB :
@@ -356,11 +356,11 @@ Url.prototype.parse = function parse(url, parseQueryString, slashesDenoteHost) {
356356if ( typeof this . hostname !== 'string' )
357357this . 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 &&
364364hostname . 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) {
386386this . 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 || '' ;
391391this . host = h + p ;
392392
393393// strip [ and ] from the hostname
@@ -409,8 +409,8 @@ Url.prototype.parse = function parse(url, parseQueryString, slashesDenoteHost) {
409409rest = autoEscapeStr ( rest ) ;
410410}
411411
412- var questionIdx = - 1 ;
413- var hashIdx = - 1 ;
412+ let questionIdx = - 1 ;
413+ let hashIdx = - 1 ;
414414for ( i = 0 ; i < rest . length ; ++ i ) {
415415const code = rest . charCodeAt ( i ) ;
416416if ( 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 ) {
471471const code = hostname . charCodeAt ( i ) ;
472472const isValid = ( code >= CHAR_LOWERCASE_A && code <= CHAR_LOWERCASE_Z ) ||
473473code === 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 ) ] ;
517517if ( escapedChar ) {
518518// Concat if there are ordinary characters in the middle.
519519if ( i > lastEscapedPos )
@@ -544,7 +544,7 @@ function urlFormat(urlObject, options) {
544544throw 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 ] ;
548548return format ?
549549format . call ( urlObject , options ) :
550550Url . 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 || '' ;
574574if ( auth ) {
575575auth = encodeStr ( auth , noEscapeAuth , hexTable ) ;
576576auth += '@' ;
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
585585if ( this . host ) {
586586host = auth + this . host ;
@@ -600,14 +600,14 @@ Url.prototype.format = function format() {
600600query = querystring . stringify ( this . query ) ;
601601}
602602
603- var search = this . search || ( query && ( '?' + query ) ) || '' ;
603+ let search = this . search || ( query && ( '?' + query ) ) || '' ;
604604
605605if ( protocol && protocol . charCodeAt ( protocol . length - 1 ) !== 58 /* : */ )
606606protocol += ':' ;
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 ) {
611611switch ( pathname . charCodeAt ( i ) ) {
612612case CHAR_HASH :
613613if ( i - lastPos > 0 )
@@ -671,15 +671,15 @@ function urlResolveObject(source, relative) {
671671
672672Url . prototype . resolveObject = function resolveObject ( relative ) {
673673if ( typeof relative === 'string' ) {
674- var rel = new Url ( ) ;
674+ const rel = new Url ( ) ;
675675rel . parse ( relative , false , true ) ;
676676relative = rel ;
677677}
678678
679679const result = new Url ( ) ;
680680const 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 ] ;
683683result [ 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.
697697if ( 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 ] ;
702702if ( rkey !== 'protocol' )
703703result [ 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.
725725if ( ! 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 ] ;
729729result [ k ] = relative [ k ] ;
730730}
731731result . href = result . format ( ) ;
@@ -754,8 +754,8 @@ Url.prototype.resolveObject = function resolveObject(relative) {
754754result . port = relative . port ;
755755// To support http.request
756756if ( result . pathname || result . search ) {
757- var p = result . pathname || '' ;
758- var s = result . search || '' ;
757+ const p = result . pathname || '' ;
758+ const s = result . search || '' ;
759759result . path = p + s ;
760760}
761761result . slashes = result . slashes || relative . slashes ;
@@ -767,10 +767,10 @@ Url.prototype.resolveObject = function resolveObject(relative) {
767767const isRelAbs = (
768768relative . host || ( relative . pathname && relative . pathname . charAt ( 0 ) === '/' )
769769) ;
770- var mustEndAbs = ( isRelAbs || isSourceAbs ||
770+ let mustEndAbs = ( isRelAbs || isSourceAbs ||
771771( result . host && relative . pathname ) ) ;
772772const removeAllDots = mustEndAbs ;
773- var srcPath = ( result . pathname && result . pathname . split ( '/' ) ) || [ ] ;
773+ let srcPath = ( result . pathname && result . pathname . split ( '/' ) ) || [ ] ;
774774const relPath = ( relative . pathname && relative . pathname . split ( '/' ) ) || [ ] ;
775775const 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 ] ;
871871const 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 -- ) {
879879last = srcPath [ i ] ;
880880if ( last === '.' ) {
881881spliceOne ( 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 ) ;
952952if ( port ) {
953953port = port [ 0 ] ;
954954if ( port !== ':' ) {
0 commit comments