@@ -2542,8 +2542,22 @@ then runs these steps, returning an <a>ASCII string</a>:
2542
2542
<li><p> If <var> url</var> 's <a for=url>cannot-be-a-base-URL flag</a> is set, append <var>url</var>' s
2543
2543
<a for=url>path</a> [0] to <var> output</var> .
2544
2544
2545
- <li><p> Otherwise, then <a for=list>for each</a> string in <var> url</var> 's <a for=url>path</a> ,
2546
- append U+002F (/) followed by the string to <var> output</var> .
2545
+ <li>
2546
+ <p> Otherwise:
2547
+
2548
+ <ol>
2549
+ <li><p> If <var> url</var> 's <a for=url>host</a> is null, <var>url</var>' s <a for=url>path</a> 's
2550
+ <a for=list>size</a> is greater than 1, and <var> url</var> 's <a for=url>path</a> [0] is the empty
2551
+ string, then append U+002F (/) followed by U+002E (.) to <var> output</var> .
2552
+
2553
+ <li><p> <a for=list>For each</a> <var> segment</var> of <var> url</var> 's <a for=url>path</a> :
2554
+ append U+002F (/) followed by <var> segment</var> to <var> output</var> .
2555
+ </ol>
2556
+
2557
+ <p class=note> This prevents <code> web+demo:/.//not-a-host/</code> or
2558
+ <code> web+demo:/path/..//not-a-host/</code> , when <a lt="URL parser">parsed</a> and then
2559
+ <a lt="URL serializer">serialized</a> , from ending up as <code> web+demo://not-a-host/</code> (they
2560
+ end up as <code> web+demo:/.//not-a-host/</code> ).
2547
2561
2548
2562
<li><p> If <var> url</var> 's <a for=url>query</a> is non-null, append
2549
2563
U+003F (?), followed by <var> url</var> 's <a for=url>query</a> , to
@@ -3480,8 +3494,9 @@ Valentin Gosu,
3480
3494
Vyacheslav Matva,
3481
3495
Wei Wang,
3482
3496
山岸和利 (Yamagishi Kazutoshi),
3483
- Yongsheng Zhang, and
3484
- 成瀬ゆい (Yui Naruse)
3497
+ Yongsheng Zhang,
3498
+ 成瀬ゆい (Yui Naruse), and
3499
+ zealousidealroll
3485
3500
for being awesome!
3486
3501
3487
3502
<p> This standard is written by
0 commit comments