<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head><meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>[211620] trunk/LayoutTests/imported/w3c</title>
</head>
<body>

<style type="text/css"><!--
#msg dl.meta { border: 1px #006 solid; background: #369; padding: 6px; color: #fff; }
#msg dl.meta dt { float: left; width: 6em; font-weight: bold; }
#msg dt:after { content:':';}
#msg dl, #msg dt, #msg ul, #msg li, #header, #footer, #logmsg { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt;  }
#msg dl a { font-weight: bold}
#msg dl a:link    { color:#fc3; }
#msg dl a:active  { color:#ff0; }
#msg dl a:visited { color:#cc6; }
h3 { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; font-weight: bold; }
#msg pre { overflow: auto; background: #ffc; border: 1px #fa0 solid; padding: 6px; }
#logmsg { background: #ffc; border: 1px #fa0 solid; padding: 1em 1em 0 1em; }
#logmsg p, #logmsg pre, #logmsg blockquote { margin: 0 0 1em 0; }
#logmsg p, #logmsg li, #logmsg dt, #logmsg dd { line-height: 14pt; }
#logmsg h1, #logmsg h2, #logmsg h3, #logmsg h4, #logmsg h5, #logmsg h6 { margin: .5em 0; }
#logmsg h1:first-child, #logmsg h2:first-child, #logmsg h3:first-child, #logmsg h4:first-child, #logmsg h5:first-child, #logmsg h6:first-child { margin-top: 0; }
#logmsg ul, #logmsg ol { padding: 0; list-style-position: inside; margin: 0 0 0 1em; }
#logmsg ul { text-indent: -1em; padding-left: 1em; }#logmsg ol { text-indent: -1.5em; padding-left: 1.5em; }
#logmsg > ul, #logmsg > ol { margin: 0 0 1em 0; }
#logmsg pre { background: #eee; padding: 1em; }
#logmsg blockquote { border: 1px solid #fa0; border-left-width: 10px; padding: 1em 1em 0 1em; background: white;}
#logmsg dl { margin: 0; }
#logmsg dt { font-weight: bold; }
#logmsg dd { margin: 0; padding: 0 0 0.5em 0; }
#logmsg dd:before { content:'\00bb';}
#logmsg table { border-spacing: 0px; border-collapse: collapse; border-top: 4px solid #fa0; border-bottom: 1px solid #fa0; background: #fff; }
#logmsg table th { text-align: left; font-weight: normal; padding: 0.2em 0.5em; border-top: 1px dotted #fa0; }
#logmsg table td { text-align: right; border-top: 1px dotted #fa0; padding: 0.2em 0.5em; }
#logmsg table thead th { text-align: center; border-bottom: 1px solid #fa0; }
#logmsg table th.Corner { text-align: left; }
#logmsg hr { border: none 0; border-top: 2px dashed #fa0; height: 1px; }
#header, #footer { color: #fff; background: #636; border: 1px #300 solid; padding: 6px; }
#patch { width: 100%; }
#patch h4 {font-family: verdana,arial,helvetica,sans-serif;font-size:10pt;padding:8px;background:#369;color:#fff;margin:0;}
#patch .propset h4, #patch .binary h4 {margin:0;}
#patch pre {padding:0;line-height:1.2em;margin:0;}
#patch .diff {width:100%;background:#eee;padding: 0 0 10px 0;overflow:auto;}
#patch .propset .diff, #patch .binary .diff  {padding:10px 0;}
#patch span {display:block;padding:0 10px;}
#patch .modfile, #patch .addfile, #patch .delfile, #patch .propset, #patch .binary, #patch .copfile {border:1px solid #ccc;margin:10px 0;}
#patch ins {background:#dfd;text-decoration:none;display:block;padding:0 10px;}
#patch del {background:#fdd;text-decoration:none;display:block;padding:0 10px;}
#patch .lines, .info {color:#888;background:#fff;}
--></style>
<div id="msg">
<dl class="meta">
<dt>Revision</dt> <dd><a href="http://trac.webkit.org/projects/webkit/changeset/211620">211620</a></dd>
<dt>Author</dt> <dd>achristensen@apple.com</dd>
<dt>Date</dt> <dd>2017-02-02 22:20:56 -0800 (Thu, 02 Feb 2017)</dd>
</dl>

<h3>Log Message</h3>
<pre>Update URL web platform tests
https://bugs.webkit.org/show_bug.cgi?id=167777

Reviewed by Ryosuke Niwa.

* web-platform-tests/url/a-element-expected.txt:
* web-platform-tests/url/a-element-origin-expected.txt:
* web-platform-tests/url/a-element-origin-xhtml-expected.txt:
* web-platform-tests/url/a-element-origin-xhtml.xhtml:
* web-platform-tests/url/a-element-origin.html:
* web-platform-tests/url/a-element-xhtml-expected.txt:
* web-platform-tests/url/a-element-xhtml.xhtml:
* web-platform-tests/url/a-element.html:
* web-platform-tests/url/setters_tests.json:
* web-platform-tests/url/url-constructor-expected.txt:
* web-platform-tests/url/url-origin-expected.txt:
* web-platform-tests/url/url-setters-expected.txt:
* web-platform-tests/url/urlencoded-parser-expected.txt: Added.
* web-platform-tests/url/urlencoded-parser.html: Added.
* web-platform-tests/url/urlsearchparams-constructor-expected.txt:
* web-platform-tests/url/urlsearchparams-constructor.html:
* web-platform-tests/url/urlsearchparams-sort-expected.txt:
* web-platform-tests/url/urlsearchparams-sort.html:
* web-platform-tests/url/urltestdata.json:</pre>

<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkLayoutTestsimportedw3cChangeLog">trunk/LayoutTests/imported/w3c/ChangeLog</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsurlaelementexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/url/a-element-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsurlaelementoriginexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/url/a-element-origin-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsurlaelementoriginxhtmlexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/url/a-element-origin-xhtml-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsurlaelementoriginxhtmlxhtml">trunk/LayoutTests/imported/w3c/web-platform-tests/url/a-element-origin-xhtml.xhtml</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsurlaelementoriginhtml">trunk/LayoutTests/imported/w3c/web-platform-tests/url/a-element-origin.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsurlaelementxhtmlexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/url/a-element-xhtml-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsurlaelementxhtmlxhtml">trunk/LayoutTests/imported/w3c/web-platform-tests/url/a-element-xhtml.xhtml</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsurlaelementhtml">trunk/LayoutTests/imported/w3c/web-platform-tests/url/a-element.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsurlsetters_testsjson">trunk/LayoutTests/imported/w3c/web-platform-tests/url/setters_tests.json</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsurlurlconstructorexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/url/url-constructor-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsurlurloriginexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/url/url-origin-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsurlurlsettersexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/url/url-setters-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsurlurlsearchparamsconstructorexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/url/urlsearchparams-constructor-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsurlurlsearchparamsconstructorhtml">trunk/LayoutTests/imported/w3c/web-platform-tests/url/urlsearchparams-constructor.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsurlurlsearchparamssortexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/url/urlsearchparams-sort-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsurlurlsearchparamssorthtml">trunk/LayoutTests/imported/w3c/web-platform-tests/url/urlsearchparams-sort.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsurlurltestdatajson">trunk/LayoutTests/imported/w3c/web-platform-tests/url/urltestdata.json</a></li>
</ul>

<h3>Added Paths</h3>
<ul>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsurlurlencodedparserexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/url/urlencoded-parser-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsurlurlencodedparserhtml">trunk/LayoutTests/imported/w3c/web-platform-tests/url/urlencoded-parser.html</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkLayoutTestsimportedw3cChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/ChangeLog (211619 => 211620)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/ChangeLog        2017-02-03 04:50:04 UTC (rev 211619)
+++ trunk/LayoutTests/imported/w3c/ChangeLog        2017-02-03 06:20:56 UTC (rev 211620)
</span><span class="lines">@@ -1,3 +1,30 @@
</span><ins>+2017-02-02  Alex Christensen  &lt;achristensen@webkit.org&gt;
+
+        Update URL web platform tests
+        https://bugs.webkit.org/show_bug.cgi?id=167777
+
+        Reviewed by Ryosuke Niwa.
+
+        * web-platform-tests/url/a-element-expected.txt:
+        * web-platform-tests/url/a-element-origin-expected.txt:
+        * web-platform-tests/url/a-element-origin-xhtml-expected.txt:
+        * web-platform-tests/url/a-element-origin-xhtml.xhtml:
+        * web-platform-tests/url/a-element-origin.html:
+        * web-platform-tests/url/a-element-xhtml-expected.txt:
+        * web-platform-tests/url/a-element-xhtml.xhtml:
+        * web-platform-tests/url/a-element.html:
+        * web-platform-tests/url/setters_tests.json:
+        * web-platform-tests/url/url-constructor-expected.txt:
+        * web-platform-tests/url/url-origin-expected.txt:
+        * web-platform-tests/url/url-setters-expected.txt:
+        * web-platform-tests/url/urlencoded-parser-expected.txt: Added.
+        * web-platform-tests/url/urlencoded-parser.html: Added.
+        * web-platform-tests/url/urlsearchparams-constructor-expected.txt:
+        * web-platform-tests/url/urlsearchparams-constructor.html:
+        * web-platform-tests/url/urlsearchparams-sort-expected.txt:
+        * web-platform-tests/url/urlsearchparams-sort.html:
+        * web-platform-tests/url/urltestdata.json:
+
</ins><span class="cx"> 2017-02-02  Chris Dumez  &lt;cdumez@apple.com&gt;
</span><span class="cx"> 
</span><span class="cx">         {}.toString.call(crossOriginWindow) should return &quot;[object Object]&quot;
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsurlaelementexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/url/a-element-expected.txt (211619 => 211620)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/url/a-element-expected.txt        2017-02-03 04:50:04 UTC (rev 211619)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/url/a-element-expected.txt        2017-02-03 06:20:56 UTC (rev 211620)
</span><span class="lines">@@ -43,7 +43,7 @@
</span><span class="cx"> PASS Parsing: &lt;/:23&gt; against &lt;http://example.org/foo/bar&gt; 
</span><span class="cx"> PASS Parsing: &lt;::&gt; against &lt;http://example.org/foo/bar&gt; 
</span><span class="cx"> PASS Parsing: &lt;::23&gt; against &lt;http://example.org/foo/bar&gt; 
</span><del>-FAIL Parsing: &lt;foo://&gt; against &lt;http://example.org/foo/bar&gt; assert_equals: href expected &quot;foo:///&quot; but got &quot;foo://&quot;
</del><ins>+PASS Parsing: &lt;foo://&gt; against &lt;http://example.org/foo/bar&gt; 
</ins><span class="cx"> PASS Parsing: &lt;http://a:b@c:29/d&gt; against &lt;http://example.org/foo/bar&gt; 
</span><span class="cx"> PASS Parsing: &lt;http::@c:29&gt; against &lt;http://example.org/foo/bar&gt; 
</span><span class="cx"> PASS Parsing: &lt;http://&amp;a:foo(b]c@d:2/&gt; against &lt;http://example.org/foo/bar&gt; 
</span><span class="lines">@@ -261,6 +261,8 @@
</span><span class="cx"> PASS Parsing: &lt;http://www.foo。bar.com&gt; against &lt;http://other.com/&gt; 
</span><span class="cx"> PASS Parsing: &lt;http://﷐zyx.com&gt; against &lt;http://other.com/&gt; 
</span><span class="cx"> PASS Parsing: &lt;http://%ef%b7%90zyx.com&gt; against &lt;http://other.com/&gt; 
</span><ins>+PASS Parsing: &lt;https://�&gt; against &lt;about:blank&gt; 
+PASS Parsing: &lt;https://%EF%BF%BD&gt; against &lt;about:blank&gt; 
</ins><span class="cx"> PASS Parsing: &lt;http://Go.com&gt; against &lt;http://other.com/&gt; 
</span><span class="cx"> PASS Parsing: &lt;http://%41.com&gt; against &lt;http://other.com/&gt; 
</span><span class="cx"> PASS Parsing: &lt;http://%ef%bc%85%ef%bc%94%ef%bc%91.com&gt; against &lt;http://other.com/&gt; 
</span><span class="lines">@@ -323,9 +325,27 @@
</span><span class="cx"> PASS Parsing: &lt;data:/../&gt; against &lt;about:blank&gt; 
</span><span class="cx"> PASS Parsing: &lt;javascript:/../&gt; against &lt;about:blank&gt; 
</span><span class="cx"> PASS Parsing: &lt;mailto:/../&gt; against &lt;about:blank&gt; 
</span><del>-FAIL Parsing: &lt;sc://ñ.test/&gt; against &lt;about:blank&gt; assert_equals: href expected &quot;sc://xn--ida.test/&quot; but got &quot;sc://%C3%B1.test/&quot;
</del><ins>+PASS Parsing: &lt;sc://ñ.test/&gt; against &lt;about:blank&gt; 
+PASS Parsing: &lt;sc://!&quot;$&amp;'()*+,-.;&lt;=&gt;^_`{|}~/&gt; against &lt;about:blank&gt; 
+FAIL Parsing: &lt;sc://\0/&gt; against &lt;about:blank&gt; assert_unreached: Expected URL to fail parsing Reached unreachable code
+FAIL Parsing: &lt;sc:// /&gt; against &lt;about:blank&gt; assert_unreached: Expected URL to fail parsing Reached unreachable code
+FAIL Parsing: &lt;sc://%/&gt; against &lt;about:blank&gt; assert_unreached: Expected URL to fail parsing Reached unreachable code
+PASS Parsing: &lt;sc://@/&gt; against &lt;about:blank&gt; 
+PASS Parsing: &lt;sc://te@s:t@/&gt; against &lt;about:blank&gt; 
+PASS Parsing: &lt;sc://:/&gt; against &lt;about:blank&gt; 
+PASS Parsing: &lt;sc://:12/&gt; against &lt;about:blank&gt; 
+PASS Parsing: &lt;sc://[/&gt; against &lt;about:blank&gt; 
+FAIL Parsing: &lt;sc://\/&gt; against &lt;about:blank&gt; assert_unreached: Expected URL to fail parsing Reached unreachable code
+FAIL Parsing: &lt;sc://]/&gt; against &lt;about:blank&gt; assert_unreached: Expected URL to fail parsing Reached unreachable code
+PASS Parsing: &lt;x&gt; against &lt;sc://ñ&gt; 
</ins><span class="cx"> PASS Parsing: &lt;sc:\../&gt; against &lt;about:blank&gt; 
</span><span class="cx"> PASS Parsing: &lt;sc::a@example.net&gt; against &lt;about:blank&gt; 
</span><ins>+PASS Parsing: &lt;ftp://example.com%80/&gt; against &lt;about:blank&gt; 
+PASS Parsing: &lt;ftp://example.com%A0/&gt; against &lt;about:blank&gt; 
+PASS Parsing: &lt;https://example.com%80/&gt; against &lt;about:blank&gt; 
+PASS Parsing: &lt;https://example.com%A0/&gt; against &lt;about:blank&gt; 
+PASS Parsing: &lt;ftp://%e2%98%83&gt; against &lt;about:blank&gt; 
+PASS Parsing: &lt;https://%e2%98%83&gt; against &lt;about:blank&gt; 
</ins><span class="cx"> PASS Parsing: &lt;http://127.0.0.1:10100/relative_import.html&gt; against &lt;about:blank&gt; 
</span><span class="cx"> PASS Parsing: &lt;http://facebook.com/?foo=%7B%22abc%22&gt; against &lt;about:blank&gt; 
</span><span class="cx"> PASS Parsing: &lt;https://localhost:3000/jqueryui@1.2.3&gt; against &lt;about:blank&gt; 
</span><span class="lines">@@ -356,6 +376,8 @@
</span><span class="cx"> FAIL Parsing: &lt;http://0xffffffff1&gt; against &lt;http://other.com/&gt; assert_unreached: Expected URL to fail parsing Reached unreachable code
</span><span class="cx"> FAIL Parsing: &lt;http://256.256.256.256&gt; against &lt;http://other.com/&gt; assert_unreached: Expected URL to fail parsing Reached unreachable code
</span><span class="cx"> PASS Parsing: &lt;http://256.256.256.256.256&gt; against &lt;http://other.com/&gt; 
</span><ins>+PASS Parsing: &lt;file:///C%3A/&gt; against &lt;about:blank&gt; 
+PASS Parsing: &lt;file:///C%7C/&gt; against &lt;about:blank&gt; 
</ins><span class="cx"> PASS Parsing: &lt;pix/submit.gif&gt; against &lt;file:///C:/Users/Domenic/Dropbox/GitHub/tmpvar/jsdom/test/level2/html/files/anchor.html&gt; 
</span><span class="cx"> FAIL Parsing: &lt;..&gt; against &lt;file:///C:/&gt; assert_equals: href expected &quot;file:///C:/&quot; but got &quot;file:///&quot;
</span><span class="cx"> PASS Parsing: &lt;..&gt; against &lt;file:///&gt; 
</span><span class="lines">@@ -365,4 +387,28 @@
</span><span class="cx"> PASS Parsing: &lt;..&gt; against &lt;file:///ab:/&gt; 
</span><span class="cx"> PASS Parsing: &lt;..&gt; against &lt;file:///1:/&gt; 
</span><span class="cx"> PASS Parsing: &lt;http://[1:0::]&gt; against &lt;http://example.net/&gt; 
</span><ins>+FAIL Parsing: &lt;http://?&gt; against &lt;about:blank&gt; assert_unreached: Expected URL to fail parsing Reached unreachable code
+FAIL Parsing: &lt;http://#&gt; against &lt;about:blank&gt; assert_unreached: Expected URL to fail parsing Reached unreachable code
+PASS Parsing: &lt;sc://ñ&gt; against &lt;about:blank&gt; 
+PASS Parsing: &lt;sc://ñ?x&gt; against &lt;about:blank&gt; 
+PASS Parsing: &lt;sc://ñ#x&gt; against &lt;about:blank&gt; 
+PASS Parsing: &lt;#x&gt; against &lt;sc://ñ&gt; 
+PASS Parsing: &lt;?x&gt; against &lt;sc://ñ&gt; 
+PASS Parsing: &lt;sc://?&gt; against &lt;about:blank&gt; 
+PASS Parsing: &lt;sc://#&gt; against &lt;about:blank&gt; 
+FAIL Parsing: &lt;///&gt; against &lt;sc://x/&gt; assert_equals: href expected &quot;sc:///&quot; but got &quot;///&quot;
+FAIL Parsing: &lt;////&gt; against &lt;sc://x/&gt; assert_equals: href expected &quot;sc:////&quot; but got &quot;////&quot;
+FAIL Parsing: &lt;////x/&gt; against &lt;sc://x/&gt; assert_equals: href expected &quot;sc:////x/&quot; but got &quot;sc://x/&quot;
+PASS Parsing: &lt;tftp://foobar.com/someconfig;mode=netascii&gt; against &lt;about:blank&gt; 
+PASS Parsing: &lt;telnet://user:pass@foobar.com:23/&gt; against &lt;about:blank&gt; 
+PASS Parsing: &lt;ut2004://10.10.10.10:7777/Index.ut2&gt; against &lt;about:blank&gt; 
+PASS Parsing: &lt;redis://foo:bar@somehost:6379/0?baz=bam&amp;qux=baz&gt; against &lt;about:blank&gt; 
+PASS Parsing: &lt;rsync://foo@host:911/sup&gt; against &lt;about:blank&gt; 
+PASS Parsing: &lt;git://github.com/foo/bar.git&gt; against &lt;about:blank&gt; 
+PASS Parsing: &lt;irc://myserver.com:6999/channel?passwd&gt; against &lt;about:blank&gt; 
+PASS Parsing: &lt;dns://fw.example.org:9999/foo.bar.org?type=TXT&gt; against &lt;about:blank&gt; 
+PASS Parsing: &lt;ldap://localhost:389/ou=People,o=JNDITutorial&gt; against &lt;about:blank&gt; 
+PASS Parsing: &lt;git+https://github.com/foo/bar&gt; against &lt;about:blank&gt; 
+PASS Parsing: &lt;urn:ietf:rfc:2648&gt; against &lt;about:blank&gt; 
+PASS Parsing: &lt;tag:joe@example.org,2001:foo/bar&gt; against &lt;about:blank&gt; 
</ins><span class="cx"> 
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsurlaelementoriginexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/url/a-element-origin-expected.txt (211619 => 211620)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/url/a-element-origin-expected.txt        2017-02-03 04:50:04 UTC (rev 211619)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/url/a-element-origin-expected.txt        2017-02-03 06:20:56 UTC (rev 211620)
</span><span class="lines">@@ -245,8 +245,12 @@
</span><span class="cx"> PASS Parsing origin: &lt;javascript:/../&gt; against &lt;about:blank&gt; 
</span><span class="cx"> FAIL Parsing origin: &lt;mailto:/../&gt; against &lt;about:blank&gt; assert_equals: origin expected &quot;null&quot; but got &quot;mailto://&quot;
</span><span class="cx"> FAIL Parsing origin: &lt;sc://ñ.test/&gt; against &lt;about:blank&gt; assert_equals: origin expected &quot;null&quot; but got &quot;sc://%c3%b1.test&quot;
</span><ins>+FAIL Parsing origin: &lt;sc://!&quot;$&amp;'()*+,-.;&lt;=&gt;^_`{|}~/&gt; against &lt;about:blank&gt; assert_equals: origin expected &quot;null&quot; but got &quot;sc://%1f!\&quot;$&amp;'()*+,-.;&lt;=&gt;^_`{|}~&quot;
+FAIL Parsing origin: &lt;x&gt; against &lt;sc://ñ&gt; assert_equals: origin expected &quot;null&quot; but got &quot;sc://%c3%b1&quot;
</ins><span class="cx"> FAIL Parsing origin: &lt;sc:\../&gt; against &lt;about:blank&gt; assert_equals: origin expected &quot;null&quot; but got &quot;sc://&quot;
</span><span class="cx"> FAIL Parsing origin: &lt;sc::a@example.net&gt; against &lt;about:blank&gt; assert_equals: origin expected &quot;null&quot; but got &quot;sc://&quot;
</span><ins>+FAIL Parsing origin: &lt;ftp://%e2%98%83&gt; against &lt;about:blank&gt; assert_equals: origin expected &quot;ftp://☃&quot; but got &quot;ftp://xn--n3h&quot;
+FAIL Parsing origin: &lt;https://%e2%98%83&gt; against &lt;about:blank&gt; assert_equals: origin expected &quot;https://☃&quot; but got &quot;https://xn--n3h&quot;
</ins><span class="cx"> PASS Parsing origin: &lt;http://127.0.0.1:10100/relative_import.html&gt; against &lt;about:blank&gt; 
</span><span class="cx"> PASS Parsing origin: &lt;http://facebook.com/?foo=%7B%22abc%22&gt; against &lt;about:blank&gt; 
</span><span class="cx"> PASS Parsing origin: &lt;https://localhost:3000/jqueryui@1.2.3&gt; against &lt;about:blank&gt; 
</span><span class="lines">@@ -273,4 +277,21 @@
</span><span class="cx"> PASS Parsing origin: &lt;http://0xffffffff&gt; against &lt;http://other.com/&gt; 
</span><span class="cx"> PASS Parsing origin: &lt;http://256.256.256.256.256&gt; against &lt;http://other.com/&gt; 
</span><span class="cx"> PASS Parsing origin: &lt;http://[1:0::]&gt; against &lt;http://example.net/&gt; 
</span><ins>+FAIL Parsing origin: &lt;sc://ñ&gt; against &lt;about:blank&gt; assert_equals: origin expected &quot;null&quot; but got &quot;sc://%c3%b1&quot;
+FAIL Parsing origin: &lt;sc://ñ?x&gt; against &lt;about:blank&gt; assert_equals: origin expected &quot;null&quot; but got &quot;sc://%c3%b1&quot;
+FAIL Parsing origin: &lt;sc://ñ#x&gt; against &lt;about:blank&gt; assert_equals: origin expected &quot;null&quot; but got &quot;sc://%c3%b1&quot;
+FAIL Parsing origin: &lt;#x&gt; against &lt;sc://ñ&gt; assert_equals: origin expected &quot;null&quot; but got &quot;sc://%c3%b1&quot;
+FAIL Parsing origin: &lt;?x&gt; against &lt;sc://ñ&gt; assert_equals: origin expected &quot;null&quot; but got &quot;sc://%c3%b1&quot;
+FAIL Parsing origin: &lt;tftp://foobar.com/someconfig;mode=netascii&gt; against &lt;about:blank&gt; assert_equals: origin expected &quot;null&quot; but got &quot;tftp://foobar.com&quot;
+FAIL Parsing origin: &lt;telnet://user:pass@foobar.com:23/&gt; against &lt;about:blank&gt; assert_equals: origin expected &quot;null&quot; but got &quot;telnet://foobar.com:23&quot;
+FAIL Parsing origin: &lt;ut2004://10.10.10.10:7777/Index.ut2&gt; against &lt;about:blank&gt; assert_equals: origin expected &quot;null&quot; but got &quot;ut2004://10.10.10.10:7777&quot;
+FAIL Parsing origin: &lt;redis://foo:bar@somehost:6379/0?baz=bam&amp;qux=baz&gt; against &lt;about:blank&gt; assert_equals: origin expected &quot;null&quot; but got &quot;redis://somehost:6379&quot;
+FAIL Parsing origin: &lt;rsync://foo@host:911/sup&gt; against &lt;about:blank&gt; assert_equals: origin expected &quot;null&quot; but got &quot;rsync://host:911&quot;
+FAIL Parsing origin: &lt;git://github.com/foo/bar.git&gt; against &lt;about:blank&gt; assert_equals: origin expected &quot;null&quot; but got &quot;git://github.com&quot;
+FAIL Parsing origin: &lt;irc://myserver.com:6999/channel?passwd&gt; against &lt;about:blank&gt; assert_equals: origin expected &quot;null&quot; but got &quot;irc://myserver.com:6999&quot;
+FAIL Parsing origin: &lt;dns://fw.example.org:9999/foo.bar.org?type=TXT&gt; against &lt;about:blank&gt; assert_equals: origin expected &quot;null&quot; but got &quot;dns://fw.example.org:9999&quot;
+FAIL Parsing origin: &lt;ldap://localhost:389/ou=People,o=JNDITutorial&gt; against &lt;about:blank&gt; assert_equals: origin expected &quot;null&quot; but got &quot;ldap://localhost:389&quot;
+FAIL Parsing origin: &lt;git+https://github.com/foo/bar&gt; against &lt;about:blank&gt; assert_equals: origin expected &quot;null&quot; but got &quot;git+https://github.com&quot;
+FAIL Parsing origin: &lt;urn:ietf:rfc:2648&gt; against &lt;about:blank&gt; assert_equals: origin expected &quot;null&quot; but got &quot;urn://&quot;
+FAIL Parsing origin: &lt;tag:joe@example.org,2001:foo/bar&gt; against &lt;about:blank&gt; assert_equals: origin expected &quot;null&quot; but got &quot;tag://&quot;
</ins><span class="cx"> 
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsurlaelementoriginxhtmlexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/url/a-element-origin-xhtml-expected.txt (211619 => 211620)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/url/a-element-origin-xhtml-expected.txt        2017-02-03 04:50:04 UTC (rev 211619)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/url/a-element-origin-xhtml-expected.txt        2017-02-03 06:20:56 UTC (rev 211620)
</span><span class="lines">@@ -245,8 +245,12 @@
</span><span class="cx"> PASS Parsing origin: &lt;javascript:/../&gt; against &lt;about:blank&gt; 
</span><span class="cx"> FAIL Parsing origin: &lt;mailto:/../&gt; against &lt;about:blank&gt; assert_equals: origin expected &quot;null&quot; but got &quot;mailto://&quot;
</span><span class="cx"> FAIL Parsing origin: &lt;sc://ñ.test/&gt; against &lt;about:blank&gt; assert_equals: origin expected &quot;null&quot; but got &quot;sc://%c3%b1.test&quot;
</span><ins>+FAIL Parsing origin: &lt;sc://!&quot;$&amp;'()*+,-.;&lt;=&gt;^_`{|}~/&gt; against &lt;about:blank&gt; assert_equals: origin expected &quot;null&quot; but got &quot;sc://%1f!\&quot;$&amp;'()*+,-.;&lt;=&gt;^_`{|}~&quot;
+FAIL Parsing origin: &lt;x&gt; against &lt;sc://ñ&gt; assert_equals: origin expected &quot;null&quot; but got &quot;sc://%c3%b1&quot;
</ins><span class="cx"> FAIL Parsing origin: &lt;sc:\../&gt; against &lt;about:blank&gt; assert_equals: origin expected &quot;null&quot; but got &quot;sc://&quot;
</span><span class="cx"> FAIL Parsing origin: &lt;sc::a@example.net&gt; against &lt;about:blank&gt; assert_equals: origin expected &quot;null&quot; but got &quot;sc://&quot;
</span><ins>+FAIL Parsing origin: &lt;ftp://%e2%98%83&gt; against &lt;about:blank&gt; assert_equals: origin expected &quot;ftp://☃&quot; but got &quot;ftp://xn--n3h&quot;
+FAIL Parsing origin: &lt;https://%e2%98%83&gt; against &lt;about:blank&gt; assert_equals: origin expected &quot;https://☃&quot; but got &quot;https://xn--n3h&quot;
</ins><span class="cx"> PASS Parsing origin: &lt;http://127.0.0.1:10100/relative_import.html&gt; against &lt;about:blank&gt; 
</span><span class="cx"> PASS Parsing origin: &lt;http://facebook.com/?foo=%7B%22abc%22&gt; against &lt;about:blank&gt; 
</span><span class="cx"> PASS Parsing origin: &lt;https://localhost:3000/jqueryui@1.2.3&gt; against &lt;about:blank&gt; 
</span><span class="lines">@@ -273,4 +277,21 @@
</span><span class="cx"> PASS Parsing origin: &lt;http://0xffffffff&gt; against &lt;http://other.com/&gt; 
</span><span class="cx"> PASS Parsing origin: &lt;http://256.256.256.256.256&gt; against &lt;http://other.com/&gt; 
</span><span class="cx"> PASS Parsing origin: &lt;http://[1:0::]&gt; against &lt;http://example.net/&gt; 
</span><ins>+FAIL Parsing origin: &lt;sc://ñ&gt; against &lt;about:blank&gt; assert_equals: origin expected &quot;null&quot; but got &quot;sc://%c3%b1&quot;
+FAIL Parsing origin: &lt;sc://ñ?x&gt; against &lt;about:blank&gt; assert_equals: origin expected &quot;null&quot; but got &quot;sc://%c3%b1&quot;
+FAIL Parsing origin: &lt;sc://ñ#x&gt; against &lt;about:blank&gt; assert_equals: origin expected &quot;null&quot; but got &quot;sc://%c3%b1&quot;
+FAIL Parsing origin: &lt;#x&gt; against &lt;sc://ñ&gt; assert_equals: origin expected &quot;null&quot; but got &quot;sc://%c3%b1&quot;
+FAIL Parsing origin: &lt;?x&gt; against &lt;sc://ñ&gt; assert_equals: origin expected &quot;null&quot; but got &quot;sc://%c3%b1&quot;
+FAIL Parsing origin: &lt;tftp://foobar.com/someconfig;mode=netascii&gt; against &lt;about:blank&gt; assert_equals: origin expected &quot;null&quot; but got &quot;tftp://foobar.com&quot;
+FAIL Parsing origin: &lt;telnet://user:pass@foobar.com:23/&gt; against &lt;about:blank&gt; assert_equals: origin expected &quot;null&quot; but got &quot;telnet://foobar.com:23&quot;
+FAIL Parsing origin: &lt;ut2004://10.10.10.10:7777/Index.ut2&gt; against &lt;about:blank&gt; assert_equals: origin expected &quot;null&quot; but got &quot;ut2004://10.10.10.10:7777&quot;
+FAIL Parsing origin: &lt;redis://foo:bar@somehost:6379/0?baz=bam&amp;qux=baz&gt; against &lt;about:blank&gt; assert_equals: origin expected &quot;null&quot; but got &quot;redis://somehost:6379&quot;
+FAIL Parsing origin: &lt;rsync://foo@host:911/sup&gt; against &lt;about:blank&gt; assert_equals: origin expected &quot;null&quot; but got &quot;rsync://host:911&quot;
+FAIL Parsing origin: &lt;git://github.com/foo/bar.git&gt; against &lt;about:blank&gt; assert_equals: origin expected &quot;null&quot; but got &quot;git://github.com&quot;
+FAIL Parsing origin: &lt;irc://myserver.com:6999/channel?passwd&gt; against &lt;about:blank&gt; assert_equals: origin expected &quot;null&quot; but got &quot;irc://myserver.com:6999&quot;
+FAIL Parsing origin: &lt;dns://fw.example.org:9999/foo.bar.org?type=TXT&gt; against &lt;about:blank&gt; assert_equals: origin expected &quot;null&quot; but got &quot;dns://fw.example.org:9999&quot;
+FAIL Parsing origin: &lt;ldap://localhost:389/ou=People,o=JNDITutorial&gt; against &lt;about:blank&gt; assert_equals: origin expected &quot;null&quot; but got &quot;ldap://localhost:389&quot;
+FAIL Parsing origin: &lt;git+https://github.com/foo/bar&gt; against &lt;about:blank&gt; assert_equals: origin expected &quot;null&quot; but got &quot;git+https://github.com&quot;
+FAIL Parsing origin: &lt;urn:ietf:rfc:2648&gt; against &lt;about:blank&gt; assert_equals: origin expected &quot;null&quot; but got &quot;urn://&quot;
+FAIL Parsing origin: &lt;tag:joe@example.org,2001:foo/bar&gt; against &lt;about:blank&gt; assert_equals: origin expected &quot;null&quot; but got &quot;tag://&quot;
</ins><span class="cx"> 
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsurlaelementoriginxhtmlxhtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/url/a-element-origin-xhtml.xhtml (211619 => 211620)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/url/a-element-origin-xhtml.xhtml        2017-02-03 04:50:04 UTC (rev 211619)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/url/a-element-origin-xhtml.xhtml        2017-02-03 06:20:56 UTC (rev 211620)
</span><span class="lines">@@ -12,4 +12,4 @@
</span><span class="cx">     &lt;script src=&quot;a-element-origin.js&quot;&gt;&lt;/script&gt;
</span><span class="cx">   &lt;/body&gt;
</span><span class="cx"> &lt;/html&gt;
</span><del>-&lt;!--  Other dependencies: urltestdata.json  --&gt;
</del><ins>+&lt;!-- Other dependencies: urltestdata.json --&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsurlaelementoriginhtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/url/a-element-origin.html (211619 => 211620)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/url/a-element-origin.html        2017-02-03 04:50:04 UTC (rev 211619)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/url/a-element-origin.html        2017-02-03 06:20:56 UTC (rev 211620)
</span><span class="lines">@@ -5,4 +5,4 @@
</span><span class="cx"> &lt;base id=base&gt;
</span><span class="cx"> &lt;div id=log&gt;&lt;/div&gt;
</span><span class="cx"> &lt;script src=a-element-origin.js&gt;&lt;/script&gt;
</span><del>-&lt;!--  Other dependencies: urltestdata.json  --&gt;
</del><ins>+&lt;!-- Other dependencies: urltestdata.json --&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsurlaelementxhtmlexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/url/a-element-xhtml-expected.txt (211619 => 211620)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/url/a-element-xhtml-expected.txt        2017-02-03 04:50:04 UTC (rev 211619)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/url/a-element-xhtml-expected.txt        2017-02-03 06:20:56 UTC (rev 211620)
</span><span class="lines">@@ -43,7 +43,7 @@
</span><span class="cx"> PASS Parsing: &lt;/:23&gt; against &lt;http://example.org/foo/bar&gt; 
</span><span class="cx"> PASS Parsing: &lt;::&gt; against &lt;http://example.org/foo/bar&gt; 
</span><span class="cx"> PASS Parsing: &lt;::23&gt; against &lt;http://example.org/foo/bar&gt; 
</span><del>-FAIL Parsing: &lt;foo://&gt; against &lt;http://example.org/foo/bar&gt; assert_equals: href expected &quot;foo:///&quot; but got &quot;foo://&quot;
</del><ins>+PASS Parsing: &lt;foo://&gt; against &lt;http://example.org/foo/bar&gt; 
</ins><span class="cx"> PASS Parsing: &lt;http://a:b@c:29/d&gt; against &lt;http://example.org/foo/bar&gt; 
</span><span class="cx"> PASS Parsing: &lt;http::@c:29&gt; against &lt;http://example.org/foo/bar&gt; 
</span><span class="cx"> PASS Parsing: &lt;http://&amp;a:foo(b]c@d:2/&gt; against &lt;http://example.org/foo/bar&gt; 
</span><span class="lines">@@ -261,6 +261,8 @@
</span><span class="cx"> PASS Parsing: &lt;http://www.foo。bar.com&gt; against &lt;http://other.com/&gt; 
</span><span class="cx"> PASS Parsing: &lt;http://﷐zyx.com&gt; against &lt;http://other.com/&gt; 
</span><span class="cx"> PASS Parsing: &lt;http://%ef%b7%90zyx.com&gt; against &lt;http://other.com/&gt; 
</span><ins>+PASS Parsing: &lt;https://�&gt; against &lt;about:blank&gt; 
+PASS Parsing: &lt;https://%EF%BF%BD&gt; against &lt;about:blank&gt; 
</ins><span class="cx"> PASS Parsing: &lt;http://Go.com&gt; against &lt;http://other.com/&gt; 
</span><span class="cx"> PASS Parsing: &lt;http://%41.com&gt; against &lt;http://other.com/&gt; 
</span><span class="cx"> PASS Parsing: &lt;http://%ef%bc%85%ef%bc%94%ef%bc%91.com&gt; against &lt;http://other.com/&gt; 
</span><span class="lines">@@ -323,9 +325,27 @@
</span><span class="cx"> PASS Parsing: &lt;data:/../&gt; against &lt;about:blank&gt; 
</span><span class="cx"> PASS Parsing: &lt;javascript:/../&gt; against &lt;about:blank&gt; 
</span><span class="cx"> PASS Parsing: &lt;mailto:/../&gt; against &lt;about:blank&gt; 
</span><del>-FAIL Parsing: &lt;sc://ñ.test/&gt; against &lt;about:blank&gt; assert_equals: href expected &quot;sc://xn--ida.test/&quot; but got &quot;sc://%C3%B1.test/&quot;
</del><ins>+PASS Parsing: &lt;sc://ñ.test/&gt; against &lt;about:blank&gt; 
+PASS Parsing: &lt;sc://!&quot;$&amp;'()*+,-.;&lt;=&gt;^_`{|}~/&gt; against &lt;about:blank&gt; 
+FAIL Parsing: &lt;sc://\0/&gt; against &lt;about:blank&gt; assert_unreached: Expected URL to fail parsing Reached unreachable code
+FAIL Parsing: &lt;sc:// /&gt; against &lt;about:blank&gt; assert_unreached: Expected URL to fail parsing Reached unreachable code
+FAIL Parsing: &lt;sc://%/&gt; against &lt;about:blank&gt; assert_unreached: Expected URL to fail parsing Reached unreachable code
+PASS Parsing: &lt;sc://@/&gt; against &lt;about:blank&gt; 
+PASS Parsing: &lt;sc://te@s:t@/&gt; against &lt;about:blank&gt; 
+PASS Parsing: &lt;sc://:/&gt; against &lt;about:blank&gt; 
+PASS Parsing: &lt;sc://:12/&gt; against &lt;about:blank&gt; 
+PASS Parsing: &lt;sc://[/&gt; against &lt;about:blank&gt; 
+FAIL Parsing: &lt;sc://\/&gt; against &lt;about:blank&gt; assert_unreached: Expected URL to fail parsing Reached unreachable code
+FAIL Parsing: &lt;sc://]/&gt; against &lt;about:blank&gt; assert_unreached: Expected URL to fail parsing Reached unreachable code
+PASS Parsing: &lt;x&gt; against &lt;sc://ñ&gt; 
</ins><span class="cx"> PASS Parsing: &lt;sc:\../&gt; against &lt;about:blank&gt; 
</span><span class="cx"> PASS Parsing: &lt;sc::a@example.net&gt; against &lt;about:blank&gt; 
</span><ins>+PASS Parsing: &lt;ftp://example.com%80/&gt; against &lt;about:blank&gt; 
+PASS Parsing: &lt;ftp://example.com%A0/&gt; against &lt;about:blank&gt; 
+PASS Parsing: &lt;https://example.com%80/&gt; against &lt;about:blank&gt; 
+PASS Parsing: &lt;https://example.com%A0/&gt; against &lt;about:blank&gt; 
+PASS Parsing: &lt;ftp://%e2%98%83&gt; against &lt;about:blank&gt; 
+PASS Parsing: &lt;https://%e2%98%83&gt; against &lt;about:blank&gt; 
</ins><span class="cx"> PASS Parsing: &lt;http://127.0.0.1:10100/relative_import.html&gt; against &lt;about:blank&gt; 
</span><span class="cx"> PASS Parsing: &lt;http://facebook.com/?foo=%7B%22abc%22&gt; against &lt;about:blank&gt; 
</span><span class="cx"> PASS Parsing: &lt;https://localhost:3000/jqueryui@1.2.3&gt; against &lt;about:blank&gt; 
</span><span class="lines">@@ -356,6 +376,8 @@
</span><span class="cx"> FAIL Parsing: &lt;http://0xffffffff1&gt; against &lt;http://other.com/&gt; assert_unreached: Expected URL to fail parsing Reached unreachable code
</span><span class="cx"> FAIL Parsing: &lt;http://256.256.256.256&gt; against &lt;http://other.com/&gt; assert_unreached: Expected URL to fail parsing Reached unreachable code
</span><span class="cx"> PASS Parsing: &lt;http://256.256.256.256.256&gt; against &lt;http://other.com/&gt; 
</span><ins>+PASS Parsing: &lt;file:///C%3A/&gt; against &lt;about:blank&gt; 
+PASS Parsing: &lt;file:///C%7C/&gt; against &lt;about:blank&gt; 
</ins><span class="cx"> PASS Parsing: &lt;pix/submit.gif&gt; against &lt;file:///C:/Users/Domenic/Dropbox/GitHub/tmpvar/jsdom/test/level2/html/files/anchor.html&gt; 
</span><span class="cx"> FAIL Parsing: &lt;..&gt; against &lt;file:///C:/&gt; assert_equals: href expected &quot;file:///C:/&quot; but got &quot;file:///&quot;
</span><span class="cx"> PASS Parsing: &lt;..&gt; against &lt;file:///&gt; 
</span><span class="lines">@@ -365,4 +387,28 @@
</span><span class="cx"> PASS Parsing: &lt;..&gt; against &lt;file:///ab:/&gt; 
</span><span class="cx"> PASS Parsing: &lt;..&gt; against &lt;file:///1:/&gt; 
</span><span class="cx"> PASS Parsing: &lt;http://[1:0::]&gt; against &lt;http://example.net/&gt; 
</span><ins>+FAIL Parsing: &lt;http://?&gt; against &lt;about:blank&gt; assert_unreached: Expected URL to fail parsing Reached unreachable code
+FAIL Parsing: &lt;http://#&gt; against &lt;about:blank&gt; assert_unreached: Expected URL to fail parsing Reached unreachable code
+PASS Parsing: &lt;sc://ñ&gt; against &lt;about:blank&gt; 
+PASS Parsing: &lt;sc://ñ?x&gt; against &lt;about:blank&gt; 
+PASS Parsing: &lt;sc://ñ#x&gt; against &lt;about:blank&gt; 
+PASS Parsing: &lt;#x&gt; against &lt;sc://ñ&gt; 
+PASS Parsing: &lt;?x&gt; against &lt;sc://ñ&gt; 
+PASS Parsing: &lt;sc://?&gt; against &lt;about:blank&gt; 
+PASS Parsing: &lt;sc://#&gt; against &lt;about:blank&gt; 
+FAIL Parsing: &lt;///&gt; against &lt;sc://x/&gt; assert_equals: href expected &quot;sc:///&quot; but got &quot;///&quot;
+FAIL Parsing: &lt;////&gt; against &lt;sc://x/&gt; assert_equals: href expected &quot;sc:////&quot; but got &quot;////&quot;
+FAIL Parsing: &lt;////x/&gt; against &lt;sc://x/&gt; assert_equals: href expected &quot;sc:////x/&quot; but got &quot;sc://x/&quot;
+PASS Parsing: &lt;tftp://foobar.com/someconfig;mode=netascii&gt; against &lt;about:blank&gt; 
+PASS Parsing: &lt;telnet://user:pass@foobar.com:23/&gt; against &lt;about:blank&gt; 
+PASS Parsing: &lt;ut2004://10.10.10.10:7777/Index.ut2&gt; against &lt;about:blank&gt; 
+PASS Parsing: &lt;redis://foo:bar@somehost:6379/0?baz=bam&amp;qux=baz&gt; against &lt;about:blank&gt; 
+PASS Parsing: &lt;rsync://foo@host:911/sup&gt; against &lt;about:blank&gt; 
+PASS Parsing: &lt;git://github.com/foo/bar.git&gt; against &lt;about:blank&gt; 
+PASS Parsing: &lt;irc://myserver.com:6999/channel?passwd&gt; against &lt;about:blank&gt; 
+PASS Parsing: &lt;dns://fw.example.org:9999/foo.bar.org?type=TXT&gt; against &lt;about:blank&gt; 
+PASS Parsing: &lt;ldap://localhost:389/ou=People,o=JNDITutorial&gt; against &lt;about:blank&gt; 
+PASS Parsing: &lt;git+https://github.com/foo/bar&gt; against &lt;about:blank&gt; 
+PASS Parsing: &lt;urn:ietf:rfc:2648&gt; against &lt;about:blank&gt; 
+PASS Parsing: &lt;tag:joe@example.org,2001:foo/bar&gt; against &lt;about:blank&gt; 
</ins><span class="cx"> 
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsurlaelementxhtmlxhtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/url/a-element-xhtml.xhtml (211619 => 211620)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/url/a-element-xhtml.xhtml        2017-02-03 04:50:04 UTC (rev 211619)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/url/a-element-xhtml.xhtml        2017-02-03 06:20:56 UTC (rev 211620)
</span><span class="lines">@@ -12,4 +12,4 @@
</span><span class="cx">     &lt;script src=&quot;a-element.js&quot;&gt;&lt;/script&gt;
</span><span class="cx">   &lt;/body&gt;
</span><span class="cx"> &lt;/html&gt;
</span><del>-&lt;!--  Other dependencies: urltestdata.json  --&gt;
</del><ins>+&lt;!-- Other dependencies: urltestdata.json --&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsurlaelementhtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/url/a-element.html (211619 => 211620)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/url/a-element.html        2017-02-03 04:50:04 UTC (rev 211619)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/url/a-element.html        2017-02-03 06:20:56 UTC (rev 211620)
</span><span class="lines">@@ -5,4 +5,4 @@
</span><span class="cx"> &lt;base id=base&gt;
</span><span class="cx"> &lt;div id=log&gt;&lt;/div&gt;
</span><span class="cx"> &lt;script src=a-element.js&gt;&lt;/script&gt;
</span><del>-&lt;!--  Other dependencies: urltestdata.json  --&gt;
</del><ins>+&lt;!-- Other dependencies: urltestdata.json --&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsurlsetters_testsjson"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/url/setters_tests.json (211619 => 211620)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/url/setters_tests.json        2017-02-03 04:50:04 UTC (rev 211619)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/url/setters_tests.json        2017-02-03 06:20:56 UTC (rev 211620)
</span><span class="lines">@@ -27,7 +27,7 @@
</span><span class="cx">             &quot;href&quot;: &quot;a://example.net&quot;,
</span><span class="cx">             &quot;new_value&quot;: &quot;&quot;,
</span><span class="cx">             &quot;expected&quot;: {
</span><del>-                &quot;href&quot;: &quot;a://example.net/&quot;,
</del><ins>+                &quot;href&quot;: &quot;a://example.net&quot;,
</ins><span class="cx">                 &quot;protocol&quot;: &quot;a:&quot;
</span><span class="cx">             }
</span><span class="cx">         },
</span><span class="lines">@@ -35,7 +35,7 @@
</span><span class="cx">             &quot;href&quot;: &quot;a://example.net&quot;,
</span><span class="cx">             &quot;new_value&quot;: &quot;b&quot;,
</span><span class="cx">             &quot;expected&quot;: {
</span><del>-                &quot;href&quot;: &quot;b://example.net/&quot;,
</del><ins>+                &quot;href&quot;: &quot;b://example.net&quot;,
</ins><span class="cx">                 &quot;protocol&quot;: &quot;b:&quot;
</span><span class="cx">             }
</span><span class="cx">         },
</span><span class="lines">@@ -44,7 +44,7 @@
</span><span class="cx">             &quot;href&quot;: &quot;a://example.net&quot;,
</span><span class="cx">             &quot;new_value&quot;: &quot;B&quot;,
</span><span class="cx">             &quot;expected&quot;: {
</span><del>-                &quot;href&quot;: &quot;b://example.net/&quot;,
</del><ins>+                &quot;href&quot;: &quot;b://example.net&quot;,
</ins><span class="cx">                 &quot;protocol&quot;: &quot;b:&quot;
</span><span class="cx">             }
</span><span class="cx">         },
</span><span class="lines">@@ -53,7 +53,7 @@
</span><span class="cx">             &quot;href&quot;: &quot;a://example.net&quot;,
</span><span class="cx">             &quot;new_value&quot;: &quot;é&quot;,
</span><span class="cx">             &quot;expected&quot;: {
</span><del>-                &quot;href&quot;: &quot;a://example.net/&quot;,
</del><ins>+                &quot;href&quot;: &quot;a://example.net&quot;,
</ins><span class="cx">                 &quot;protocol&quot;: &quot;a:&quot;
</span><span class="cx">             }
</span><span class="cx">         },
</span><span class="lines">@@ -62,7 +62,7 @@
</span><span class="cx">             &quot;href&quot;: &quot;a://example.net&quot;,
</span><span class="cx">             &quot;new_value&quot;: &quot;0b&quot;,
</span><span class="cx">             &quot;expected&quot;: {
</span><del>-                &quot;href&quot;: &quot;a://example.net/&quot;,
</del><ins>+                &quot;href&quot;: &quot;a://example.net&quot;,
</ins><span class="cx">                 &quot;protocol&quot;: &quot;a:&quot;
</span><span class="cx">             }
</span><span class="cx">         },
</span><span class="lines">@@ -71,7 +71,7 @@
</span><span class="cx">             &quot;href&quot;: &quot;a://example.net&quot;,
</span><span class="cx">             &quot;new_value&quot;: &quot;+b&quot;,
</span><span class="cx">             &quot;expected&quot;: {
</span><del>-                &quot;href&quot;: &quot;a://example.net/&quot;,
</del><ins>+                &quot;href&quot;: &quot;a://example.net&quot;,
</ins><span class="cx">                 &quot;protocol&quot;: &quot;a:&quot;
</span><span class="cx">             }
</span><span class="cx">         },
</span><span class="lines">@@ -79,7 +79,7 @@
</span><span class="cx">             &quot;href&quot;: &quot;a://example.net&quot;,
</span><span class="cx">             &quot;new_value&quot;: &quot;bC0+-.&quot;,
</span><span class="cx">             &quot;expected&quot;: {
</span><del>-                &quot;href&quot;: &quot;bc0+-.://example.net/&quot;,
</del><ins>+                &quot;href&quot;: &quot;bc0+-.://example.net&quot;,
</ins><span class="cx">                 &quot;protocol&quot;: &quot;bc0+-.:&quot;
</span><span class="cx">             }
</span><span class="cx">         },
</span><span class="lines">@@ -88,7 +88,7 @@
</span><span class="cx">             &quot;href&quot;: &quot;a://example.net&quot;,
</span><span class="cx">             &quot;new_value&quot;: &quot;b,c&quot;,
</span><span class="cx">             &quot;expected&quot;: {
</span><del>-                &quot;href&quot;: &quot;a://example.net/&quot;,
</del><ins>+                &quot;href&quot;: &quot;a://example.net&quot;,
</ins><span class="cx">                 &quot;protocol&quot;: &quot;a:&quot;
</span><span class="cx">             }
</span><span class="cx">         },
</span><span class="lines">@@ -97,7 +97,7 @@
</span><span class="cx">             &quot;href&quot;: &quot;a://example.net&quot;,
</span><span class="cx">             &quot;new_value&quot;: &quot;bé&quot;,
</span><span class="cx">             &quot;expected&quot;: {
</span><del>-                &quot;href&quot;: &quot;a://example.net/&quot;,
</del><ins>+                &quot;href&quot;: &quot;a://example.net&quot;,
</ins><span class="cx">                 &quot;protocol&quot;: &quot;a:&quot;
</span><span class="cx">             }
</span><span class="cx">         },
</span><span class="lines">@@ -140,7 +140,7 @@
</span><span class="cx">             &quot;href&quot;: &quot;ssh://me@example.net&quot;,
</span><span class="cx">             &quot;new_value&quot;: &quot;http&quot;,
</span><span class="cx">             &quot;expected&quot;: {
</span><del>-                &quot;href&quot;: &quot;ssh://me@example.net/&quot;,
</del><ins>+                &quot;href&quot;: &quot;ssh://me@example.net&quot;,
</ins><span class="cx">                 &quot;protocol&quot;: &quot;ssh:&quot;
</span><span class="cx">             }
</span><span class="cx">         },
</span><span class="lines">@@ -148,7 +148,7 @@
</span><span class="cx">             &quot;href&quot;: &quot;ssh://me@example.net&quot;,
</span><span class="cx">             &quot;new_value&quot;: &quot;gopher&quot;,
</span><span class="cx">             &quot;expected&quot;: {
</span><del>-                &quot;href&quot;: &quot;ssh://me@example.net/&quot;,
</del><ins>+                &quot;href&quot;: &quot;ssh://me@example.net&quot;,
</ins><span class="cx">                 &quot;protocol&quot;: &quot;ssh:&quot;
</span><span class="cx">             }
</span><span class="cx">         },
</span><span class="lines">@@ -156,7 +156,7 @@
</span><span class="cx">             &quot;href&quot;: &quot;ssh://me@example.net&quot;,
</span><span class="cx">             &quot;new_value&quot;: &quot;file&quot;,
</span><span class="cx">             &quot;expected&quot;: {
</span><del>-                &quot;href&quot;: &quot;ssh://me@example.net/&quot;,
</del><ins>+                &quot;href&quot;: &quot;ssh://me@example.net&quot;,
</ins><span class="cx">                 &quot;protocol&quot;: &quot;ssh:&quot;
</span><span class="cx">             }
</span><span class="cx">         },
</span><span class="lines">@@ -347,6 +347,88 @@
</span><span class="cx">     ],
</span><span class="cx">     &quot;host&quot;: [
</span><span class="cx">         {
</span><ins>+            &quot;comment&quot;: &quot;Non-special scheme&quot;,
+            &quot;href&quot;: &quot;sc://x/&quot;,
+            &quot;new_value&quot;: &quot;\u0000&quot;,
+            &quot;expected&quot;: {
+                &quot;href&quot;: &quot;sc://x/&quot;,
+                &quot;host&quot;: &quot;x&quot;,
+                &quot;hostname&quot;: &quot;x&quot;
+            }
+        },
+        {
+            &quot;href&quot;: &quot;sc://x/&quot;,
+            &quot;new_value&quot;: &quot;\u0009&quot;,
+            &quot;expected&quot;: {
+                &quot;href&quot;: &quot;sc:///&quot;,
+                &quot;host&quot;: &quot;&quot;,
+                &quot;hostname&quot;: &quot;&quot;
+            }
+        },
+        {
+            &quot;href&quot;: &quot;sc://x/&quot;,
+            &quot;new_value&quot;: &quot;\u000A&quot;,
+            &quot;expected&quot;: {
+                &quot;href&quot;: &quot;sc:///&quot;,
+                &quot;host&quot;: &quot;&quot;,
+                &quot;hostname&quot;: &quot;&quot;
+            }
+        },
+        {
+            &quot;href&quot;: &quot;sc://x/&quot;,
+            &quot;new_value&quot;: &quot;\u000D&quot;,
+            &quot;expected&quot;: {
+                &quot;href&quot;: &quot;sc:///&quot;,
+                &quot;host&quot;: &quot;&quot;,
+                &quot;hostname&quot;: &quot;&quot;
+            }
+        },
+        {
+            &quot;href&quot;: &quot;sc://x/&quot;,
+            &quot;new_value&quot;: &quot; &quot;,
+            &quot;expected&quot;: {
+                &quot;href&quot;: &quot;sc://x/&quot;,
+                &quot;host&quot;: &quot;x&quot;,
+                &quot;hostname&quot;: &quot;x&quot;
+            }
+        },
+        {
+            &quot;href&quot;: &quot;sc://x/&quot;,
+            &quot;new_value&quot;: &quot;#&quot;,
+            &quot;expected&quot;: {
+                &quot;href&quot;: &quot;sc:///&quot;,
+                &quot;host&quot;: &quot;&quot;,
+                &quot;hostname&quot;: &quot;&quot;
+            }
+        },
+        {
+            &quot;href&quot;: &quot;sc://x/&quot;,
+            &quot;new_value&quot;: &quot;/&quot;,
+            &quot;expected&quot;: {
+                &quot;href&quot;: &quot;sc:///&quot;,
+                &quot;host&quot;: &quot;&quot;,
+                &quot;hostname&quot;: &quot;&quot;
+            }
+        },
+        {
+            &quot;href&quot;: &quot;sc://x/&quot;,
+            &quot;new_value&quot;: &quot;?&quot;,
+            &quot;expected&quot;: {
+                &quot;href&quot;: &quot;sc:///&quot;,
+                &quot;host&quot;: &quot;&quot;,
+                &quot;hostname&quot;: &quot;&quot;
+            }
+        },
+        {
+            &quot;href&quot;: &quot;sc://x/&quot;,
+            &quot;new_value&quot;: &quot;@&quot;,
+            &quot;expected&quot;: {
+                &quot;href&quot;: &quot;sc://x/&quot;,
+                &quot;host&quot;: &quot;x&quot;,
+                &quot;hostname&quot;: &quot;x&quot;
+            }
+        },
+        {
</ins><span class="cx">             &quot;comment&quot;: &quot;Cannot-be-a-base means no host&quot;,
</span><span class="cx">             &quot;href&quot;: &quot;mailto:me@example.net&quot;,
</span><span class="cx">             &quot;new_value&quot;: &quot;example.com&quot;,
</span><span class="lines">@@ -567,7 +649,7 @@
</span><span class="cx">             }
</span><span class="cx">         },
</span><span class="cx">         {
</span><del>-            &quot;comment&quot;: &quot;\\ is not a delimiter for non-special schemes, and it’s invalid in a domain&quot;,
</del><ins>+            &quot;comment&quot;: &quot;\\ is not a delimiter for non-special schemes, but still forbidden in hosts&quot;,
</ins><span class="cx">             &quot;href&quot;: &quot;view-source+http://example.net/path&quot;,
</span><span class="cx">             &quot;new_value&quot;: &quot;example.com\\stuff&quot;,
</span><span class="cx">             &quot;expected&quot;: {
</span><span class="lines">@@ -681,6 +763,88 @@
</span><span class="cx">     ],
</span><span class="cx">     &quot;hostname&quot;: [
</span><span class="cx">         {
</span><ins>+            &quot;comment&quot;: &quot;Non-special scheme&quot;,
+            &quot;href&quot;: &quot;sc://x/&quot;,
+            &quot;new_value&quot;: &quot;\u0000&quot;,
+            &quot;expected&quot;: {
+                &quot;href&quot;: &quot;sc://x/&quot;,
+                &quot;host&quot;: &quot;x&quot;,
+                &quot;hostname&quot;: &quot;x&quot;
+            }
+        },
+        {
+            &quot;href&quot;: &quot;sc://x/&quot;,
+            &quot;new_value&quot;: &quot;\u0009&quot;,
+            &quot;expected&quot;: {
+                &quot;href&quot;: &quot;sc:///&quot;,
+                &quot;host&quot;: &quot;&quot;,
+                &quot;hostname&quot;: &quot;&quot;
+            }
+        },
+        {
+            &quot;href&quot;: &quot;sc://x/&quot;,
+            &quot;new_value&quot;: &quot;\u000A&quot;,
+            &quot;expected&quot;: {
+                &quot;href&quot;: &quot;sc:///&quot;,
+                &quot;host&quot;: &quot;&quot;,
+                &quot;hostname&quot;: &quot;&quot;
+            }
+        },
+        {
+            &quot;href&quot;: &quot;sc://x/&quot;,
+            &quot;new_value&quot;: &quot;\u000D&quot;,
+            &quot;expected&quot;: {
+                &quot;href&quot;: &quot;sc:///&quot;,
+                &quot;host&quot;: &quot;&quot;,
+                &quot;hostname&quot;: &quot;&quot;
+            }
+        },
+        {
+            &quot;href&quot;: &quot;sc://x/&quot;,
+            &quot;new_value&quot;: &quot; &quot;,
+            &quot;expected&quot;: {
+                &quot;href&quot;: &quot;sc://x/&quot;,
+                &quot;host&quot;: &quot;x&quot;,
+                &quot;hostname&quot;: &quot;x&quot;
+            }
+        },
+        {
+            &quot;href&quot;: &quot;sc://x/&quot;,
+            &quot;new_value&quot;: &quot;#&quot;,
+            &quot;expected&quot;: {
+                &quot;href&quot;: &quot;sc:///&quot;,
+                &quot;host&quot;: &quot;&quot;,
+                &quot;hostname&quot;: &quot;&quot;
+            }
+        },
+        {
+            &quot;href&quot;: &quot;sc://x/&quot;,
+            &quot;new_value&quot;: &quot;/&quot;,
+            &quot;expected&quot;: {
+                &quot;href&quot;: &quot;sc:///&quot;,
+                &quot;host&quot;: &quot;&quot;,
+                &quot;hostname&quot;: &quot;&quot;
+            }
+        },
+        {
+            &quot;href&quot;: &quot;sc://x/&quot;,
+            &quot;new_value&quot;: &quot;?&quot;,
+            &quot;expected&quot;: {
+                &quot;href&quot;: &quot;sc:///&quot;,
+                &quot;host&quot;: &quot;&quot;,
+                &quot;hostname&quot;: &quot;&quot;
+            }
+        },
+        {
+            &quot;href&quot;: &quot;sc://x/&quot;,
+            &quot;new_value&quot;: &quot;@&quot;,
+            &quot;expected&quot;: {
+                &quot;href&quot;: &quot;sc://x/&quot;,
+                &quot;host&quot;: &quot;x&quot;,
+                &quot;hostname&quot;: &quot;x&quot;
+            }
+        },
+        {
</ins><span class="cx">             &quot;comment&quot;: &quot;Cannot-be-a-base means no host&quot;,
</span><span class="cx">             &quot;href&quot;: &quot;mailto:me@example.net&quot;,
</span><span class="cx">             &quot;new_value&quot;: &quot;example.com&quot;,
</span><span class="lines">@@ -824,7 +988,7 @@
</span><span class="cx">             }
</span><span class="cx">         },
</span><span class="cx">         {
</span><del>-            &quot;comment&quot;: &quot;\\ is not a delimiter for non-special schemes, and it’s invalid in a domain&quot;,
</del><ins>+            &quot;comment&quot;: &quot;\\ is not a delimiter for non-special schemes, but still forbidden in hosts&quot;,
</ins><span class="cx">             &quot;href&quot;: &quot;view-source+http://example.net/path&quot;,
</span><span class="cx">             &quot;new_value&quot;: &quot;example.com\\stuff&quot;,
</span><span class="cx">             &quot;expected&quot;: {
</span><span class="lines">@@ -1114,6 +1278,33 @@
</span><span class="cx">                 &quot;href&quot;: &quot;http://example.net/%3F&quot;,
</span><span class="cx">                 &quot;pathname&quot;: &quot;/%3F&quot;
</span><span class="cx">             }
</span><ins>+        },
+        {
+            &quot;comment&quot;: &quot;# needs to be encoded&quot;,
+            &quot;href&quot;: &quot;http://example.net&quot;,
+            &quot;new_value&quot;: &quot;#&quot;,
+            &quot;expected&quot;: {
+                &quot;href&quot;: &quot;http://example.net/%23&quot;,
+                &quot;pathname&quot;: &quot;/%23&quot;
+            }
+        },
+        {
+            &quot;comment&quot;: &quot;? needs to be encoded, non-special scheme&quot;,
+            &quot;href&quot;: &quot;sc://example.net&quot;,
+            &quot;new_value&quot;: &quot;?&quot;,
+            &quot;expected&quot;: {
+                &quot;href&quot;: &quot;sc://example.net/%3F&quot;,
+                &quot;pathname&quot;: &quot;/%3F&quot;
+            }
+        },
+        {
+            &quot;comment&quot;: &quot;# needs to be encoded, non-special scheme&quot;,
+            &quot;href&quot;: &quot;sc://example.net&quot;,
+            &quot;new_value&quot;: &quot;#&quot;,
+            &quot;expected&quot;: {
+                &quot;href&quot;: &quot;sc://example.net/%23&quot;,
+                &quot;pathname&quot;: &quot;/%23&quot;
+            }
</ins><span class="cx">         }
</span><span class="cx">     ],
</span><span class="cx">     &quot;search&quot;: [
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsurlurlconstructorexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/url/url-constructor-expected.txt (211619 => 211620)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/url/url-constructor-expected.txt        2017-02-03 04:50:04 UTC (rev 211619)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/url/url-constructor-expected.txt        2017-02-03 06:20:56 UTC (rev 211620)
</span><span class="lines">@@ -47,7 +47,7 @@
</span><span class="cx"> PASS Parsing: &lt;/:23&gt; against &lt;http://example.org/foo/bar&gt; 
</span><span class="cx"> PASS Parsing: &lt;::&gt; against &lt;http://example.org/foo/bar&gt; 
</span><span class="cx"> PASS Parsing: &lt;::23&gt; against &lt;http://example.org/foo/bar&gt; 
</span><del>-FAIL Parsing: &lt;foo://&gt; against &lt;http://example.org/foo/bar&gt; assert_equals: href expected &quot;foo:///&quot; but got &quot;foo://&quot;
</del><ins>+PASS Parsing: &lt;foo://&gt; against &lt;http://example.org/foo/bar&gt; 
</ins><span class="cx"> PASS Parsing: &lt;http://a:b@c:29/d&gt; against &lt;http://example.org/foo/bar&gt; 
</span><span class="cx"> PASS Parsing: &lt;http::@c:29&gt; against &lt;http://example.org/foo/bar&gt; 
</span><span class="cx"> PASS Parsing: &lt;http://&amp;a:foo(b]c@d:2/&gt; against &lt;http://example.org/foo/bar&gt; 
</span><span class="lines">@@ -265,6 +265,8 @@
</span><span class="cx"> PASS Parsing: &lt;http://www.foo。bar.com&gt; against &lt;http://other.com/&gt; 
</span><span class="cx"> PASS Parsing: &lt;http://﷐zyx.com&gt; against &lt;http://other.com/&gt; 
</span><span class="cx"> PASS Parsing: &lt;http://%ef%b7%90zyx.com&gt; against &lt;http://other.com/&gt; 
</span><ins>+PASS Parsing: &lt;https://�&gt; against &lt;about:blank&gt; 
+PASS Parsing: &lt;https://%EF%BF%BD&gt; against &lt;about:blank&gt; 
</ins><span class="cx"> PASS Parsing: &lt;http://Go.com&gt; against &lt;http://other.com/&gt; 
</span><span class="cx"> PASS Parsing: &lt;http://%41.com&gt; against &lt;http://other.com/&gt; 
</span><span class="cx"> PASS Parsing: &lt;http://%ef%bc%85%ef%bc%94%ef%bc%91.com&gt; against &lt;http://other.com/&gt; 
</span><span class="lines">@@ -328,9 +330,32 @@
</span><span class="cx"> PASS Parsing: &lt;data:/../&gt; against &lt;about:blank&gt; 
</span><span class="cx"> PASS Parsing: &lt;javascript:/../&gt; against &lt;about:blank&gt; 
</span><span class="cx"> PASS Parsing: &lt;mailto:/../&gt; against &lt;about:blank&gt; 
</span><del>-FAIL Parsing: &lt;sc://ñ.test/&gt; against &lt;about:blank&gt; assert_equals: href expected &quot;sc://xn--ida.test/&quot; but got &quot;sc://%C3%B1.test/&quot;
</del><ins>+PASS Parsing: &lt;sc://ñ.test/&gt; against &lt;about:blank&gt; 
+PASS Parsing: &lt;sc://!&quot;$&amp;'()*+,-.;&lt;=&gt;^_`{|}~/&gt; against &lt;about:blank&gt; 
+FAIL Parsing: &lt;sc://\0/&gt; against &lt;about:blank&gt; assert_throws: function &quot;function () {
+          bURL(expected.input, expected.bas...&quot; did not throw
+FAIL Parsing: &lt;sc:// /&gt; against &lt;about:blank&gt; assert_throws: function &quot;function () {
+          bURL(expected.input, expected.bas...&quot; did not throw
+FAIL Parsing: &lt;sc://%/&gt; against &lt;about:blank&gt; assert_throws: function &quot;function () {
+          bURL(expected.input, expected.bas...&quot; did not throw
+PASS Parsing: &lt;sc://@/&gt; against &lt;about:blank&gt; 
+PASS Parsing: &lt;sc://te@s:t@/&gt; against &lt;about:blank&gt; 
+PASS Parsing: &lt;sc://:/&gt; against &lt;about:blank&gt; 
+PASS Parsing: &lt;sc://:12/&gt; against &lt;about:blank&gt; 
+PASS Parsing: &lt;sc://[/&gt; against &lt;about:blank&gt; 
+FAIL Parsing: &lt;sc://\/&gt; against &lt;about:blank&gt; assert_throws: function &quot;function () {
+          bURL(expected.input, expected.bas...&quot; did not throw
+FAIL Parsing: &lt;sc://]/&gt; against &lt;about:blank&gt; assert_throws: function &quot;function () {
+          bURL(expected.input, expected.bas...&quot; did not throw
+PASS Parsing: &lt;x&gt; against &lt;sc://ñ&gt; 
</ins><span class="cx"> PASS Parsing: &lt;sc:\../&gt; against &lt;about:blank&gt; 
</span><span class="cx"> PASS Parsing: &lt;sc::a@example.net&gt; against &lt;about:blank&gt; 
</span><ins>+PASS Parsing: &lt;ftp://example.com%80/&gt; against &lt;about:blank&gt; 
+PASS Parsing: &lt;ftp://example.com%A0/&gt; against &lt;about:blank&gt; 
+PASS Parsing: &lt;https://example.com%80/&gt; against &lt;about:blank&gt; 
+PASS Parsing: &lt;https://example.com%A0/&gt; against &lt;about:blank&gt; 
+PASS Parsing: &lt;ftp://%e2%98%83&gt; against &lt;about:blank&gt; 
+PASS Parsing: &lt;https://%e2%98%83&gt; against &lt;about:blank&gt; 
</ins><span class="cx"> PASS Parsing: &lt;http://127.0.0.1:10100/relative_import.html&gt; against &lt;about:blank&gt; 
</span><span class="cx"> PASS Parsing: &lt;http://facebook.com/?foo=%7B%22abc%22&gt; against &lt;about:blank&gt; 
</span><span class="cx"> PASS Parsing: &lt;https://localhost:3000/jqueryui@1.2.3&gt; against &lt;about:blank&gt; 
</span><span class="lines">@@ -366,6 +391,8 @@
</span><span class="cx"> FAIL Parsing: &lt;http://256.256.256.256&gt; against &lt;http://other.com/&gt; assert_throws: function &quot;function () {
</span><span class="cx">           bURL(expected.input, expected.bas...&quot; did not throw
</span><span class="cx"> PASS Parsing: &lt;http://256.256.256.256.256&gt; against &lt;http://other.com/&gt; 
</span><ins>+PASS Parsing: &lt;file:///C%3A/&gt; against &lt;about:blank&gt; 
+PASS Parsing: &lt;file:///C%7C/&gt; against &lt;about:blank&gt; 
</ins><span class="cx"> PASS Parsing: &lt;pix/submit.gif&gt; against &lt;file:///C:/Users/Domenic/Dropbox/GitHub/tmpvar/jsdom/test/level2/html/files/anchor.html&gt; 
</span><span class="cx"> FAIL Parsing: &lt;..&gt; against &lt;file:///C:/&gt; assert_equals: href expected &quot;file:///C:/&quot; but got &quot;file:///&quot;
</span><span class="cx"> PASS Parsing: &lt;..&gt; against &lt;file:///&gt; 
</span><span class="lines">@@ -375,4 +402,30 @@
</span><span class="cx"> PASS Parsing: &lt;..&gt; against &lt;file:///ab:/&gt; 
</span><span class="cx"> PASS Parsing: &lt;..&gt; against &lt;file:///1:/&gt; 
</span><span class="cx"> PASS Parsing: &lt;http://[1:0::]&gt; against &lt;http://example.net/&gt; 
</span><ins>+FAIL Parsing: &lt;http://?&gt; against &lt;about:blank&gt; assert_throws: function &quot;function () {
+          bURL(expected.input, expected.bas...&quot; did not throw
+FAIL Parsing: &lt;http://#&gt; against &lt;about:blank&gt; assert_throws: function &quot;function () {
+          bURL(expected.input, expected.bas...&quot; did not throw
+PASS Parsing: &lt;sc://ñ&gt; against &lt;about:blank&gt; 
+PASS Parsing: &lt;sc://ñ?x&gt; against &lt;about:blank&gt; 
+PASS Parsing: &lt;sc://ñ#x&gt; against &lt;about:blank&gt; 
+PASS Parsing: &lt;#x&gt; against &lt;sc://ñ&gt; 
+PASS Parsing: &lt;?x&gt; against &lt;sc://ñ&gt; 
+PASS Parsing: &lt;sc://?&gt; against &lt;about:blank&gt; 
+PASS Parsing: &lt;sc://#&gt; against &lt;about:blank&gt; 
+FAIL Parsing: &lt;///&gt; against &lt;sc://x/&gt; Type error
+FAIL Parsing: &lt;////&gt; against &lt;sc://x/&gt; Type error
+FAIL Parsing: &lt;////x/&gt; against &lt;sc://x/&gt; assert_equals: href expected &quot;sc:////x/&quot; but got &quot;sc://x/&quot;
+PASS Parsing: &lt;tftp://foobar.com/someconfig;mode=netascii&gt; against &lt;about:blank&gt; 
+PASS Parsing: &lt;telnet://user:pass@foobar.com:23/&gt; against &lt;about:blank&gt; 
+PASS Parsing: &lt;ut2004://10.10.10.10:7777/Index.ut2&gt; against &lt;about:blank&gt; 
+PASS Parsing: &lt;redis://foo:bar@somehost:6379/0?baz=bam&amp;qux=baz&gt; against &lt;about:blank&gt; 
+PASS Parsing: &lt;rsync://foo@host:911/sup&gt; against &lt;about:blank&gt; 
+PASS Parsing: &lt;git://github.com/foo/bar.git&gt; against &lt;about:blank&gt; 
+PASS Parsing: &lt;irc://myserver.com:6999/channel?passwd&gt; against &lt;about:blank&gt; 
+PASS Parsing: &lt;dns://fw.example.org:9999/foo.bar.org?type=TXT&gt; against &lt;about:blank&gt; 
+PASS Parsing: &lt;ldap://localhost:389/ou=People,o=JNDITutorial&gt; against &lt;about:blank&gt; 
+PASS Parsing: &lt;git+https://github.com/foo/bar&gt; against &lt;about:blank&gt; 
+PASS Parsing: &lt;urn:ietf:rfc:2648&gt; against &lt;about:blank&gt; 
+PASS Parsing: &lt;tag:joe@example.org,2001:foo/bar&gt; against &lt;about:blank&gt; 
</ins><span class="cx"> 
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsurlurloriginexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/url/url-origin-expected.txt (211619 => 211620)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/url/url-origin-expected.txt        2017-02-03 04:50:04 UTC (rev 211619)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/url/url-origin-expected.txt        2017-02-03 06:20:56 UTC (rev 211620)
</span><span class="lines">@@ -245,8 +245,12 @@
</span><span class="cx"> PASS Origin parsing: &lt;javascript:/../&gt; against &lt;about:blank&gt; 
</span><span class="cx"> FAIL Origin parsing: &lt;mailto:/../&gt; against &lt;about:blank&gt; assert_equals: origin expected &quot;null&quot; but got &quot;mailto://&quot;
</span><span class="cx"> FAIL Origin parsing: &lt;sc://ñ.test/&gt; against &lt;about:blank&gt; assert_equals: origin expected &quot;null&quot; but got &quot;sc://%c3%b1.test&quot;
</span><ins>+FAIL Origin parsing: &lt;sc://!&quot;$&amp;'()*+,-.;&lt;=&gt;^_`{|}~/&gt; against &lt;about:blank&gt; assert_equals: origin expected &quot;null&quot; but got &quot;sc://%1f!\&quot;$&amp;'()*+,-.;&lt;=&gt;^_`{|}~&quot;
+FAIL Origin parsing: &lt;x&gt; against &lt;sc://ñ&gt; assert_equals: origin expected &quot;null&quot; but got &quot;sc://%c3%b1&quot;
</ins><span class="cx"> FAIL Origin parsing: &lt;sc:\../&gt; against &lt;about:blank&gt; assert_equals: origin expected &quot;null&quot; but got &quot;sc://&quot;
</span><span class="cx"> FAIL Origin parsing: &lt;sc::a@example.net&gt; against &lt;about:blank&gt; assert_equals: origin expected &quot;null&quot; but got &quot;sc://&quot;
</span><ins>+FAIL Origin parsing: &lt;ftp://%e2%98%83&gt; against &lt;about:blank&gt; assert_equals: origin expected &quot;ftp://☃&quot; but got &quot;ftp://xn--n3h&quot;
+FAIL Origin parsing: &lt;https://%e2%98%83&gt; against &lt;about:blank&gt; assert_equals: origin expected &quot;https://☃&quot; but got &quot;https://xn--n3h&quot;
</ins><span class="cx"> PASS Origin parsing: &lt;http://127.0.0.1:10100/relative_import.html&gt; against &lt;about:blank&gt; 
</span><span class="cx"> PASS Origin parsing: &lt;http://facebook.com/?foo=%7B%22abc%22&gt; against &lt;about:blank&gt; 
</span><span class="cx"> PASS Origin parsing: &lt;https://localhost:3000/jqueryui@1.2.3&gt; against &lt;about:blank&gt; 
</span><span class="lines">@@ -273,4 +277,21 @@
</span><span class="cx"> PASS Origin parsing: &lt;http://0xffffffff&gt; against &lt;http://other.com/&gt; 
</span><span class="cx"> PASS Origin parsing: &lt;http://256.256.256.256.256&gt; against &lt;http://other.com/&gt; 
</span><span class="cx"> PASS Origin parsing: &lt;http://[1:0::]&gt; against &lt;http://example.net/&gt; 
</span><ins>+FAIL Origin parsing: &lt;sc://ñ&gt; against &lt;about:blank&gt; assert_equals: origin expected &quot;null&quot; but got &quot;sc://%c3%b1&quot;
+FAIL Origin parsing: &lt;sc://ñ?x&gt; against &lt;about:blank&gt; assert_equals: origin expected &quot;null&quot; but got &quot;sc://%c3%b1&quot;
+FAIL Origin parsing: &lt;sc://ñ#x&gt; against &lt;about:blank&gt; assert_equals: origin expected &quot;null&quot; but got &quot;sc://%c3%b1&quot;
+FAIL Origin parsing: &lt;#x&gt; against &lt;sc://ñ&gt; assert_equals: origin expected &quot;null&quot; but got &quot;sc://%c3%b1&quot;
+FAIL Origin parsing: &lt;?x&gt; against &lt;sc://ñ&gt; assert_equals: origin expected &quot;null&quot; but got &quot;sc://%c3%b1&quot;
+FAIL Origin parsing: &lt;tftp://foobar.com/someconfig;mode=netascii&gt; against &lt;about:blank&gt; assert_equals: origin expected &quot;null&quot; but got &quot;tftp://foobar.com&quot;
+FAIL Origin parsing: &lt;telnet://user:pass@foobar.com:23/&gt; against &lt;about:blank&gt; assert_equals: origin expected &quot;null&quot; but got &quot;telnet://foobar.com:23&quot;
+FAIL Origin parsing: &lt;ut2004://10.10.10.10:7777/Index.ut2&gt; against &lt;about:blank&gt; assert_equals: origin expected &quot;null&quot; but got &quot;ut2004://10.10.10.10:7777&quot;
+FAIL Origin parsing: &lt;redis://foo:bar@somehost:6379/0?baz=bam&amp;qux=baz&gt; against &lt;about:blank&gt; assert_equals: origin expected &quot;null&quot; but got &quot;redis://somehost:6379&quot;
+FAIL Origin parsing: &lt;rsync://foo@host:911/sup&gt; against &lt;about:blank&gt; assert_equals: origin expected &quot;null&quot; but got &quot;rsync://host:911&quot;
+FAIL Origin parsing: &lt;git://github.com/foo/bar.git&gt; against &lt;about:blank&gt; assert_equals: origin expected &quot;null&quot; but got &quot;git://github.com&quot;
+FAIL Origin parsing: &lt;irc://myserver.com:6999/channel?passwd&gt; against &lt;about:blank&gt; assert_equals: origin expected &quot;null&quot; but got &quot;irc://myserver.com:6999&quot;
+FAIL Origin parsing: &lt;dns://fw.example.org:9999/foo.bar.org?type=TXT&gt; against &lt;about:blank&gt; assert_equals: origin expected &quot;null&quot; but got &quot;dns://fw.example.org:9999&quot;
+FAIL Origin parsing: &lt;ldap://localhost:389/ou=People,o=JNDITutorial&gt; against &lt;about:blank&gt; assert_equals: origin expected &quot;null&quot; but got &quot;ldap://localhost:389&quot;
+FAIL Origin parsing: &lt;git+https://github.com/foo/bar&gt; against &lt;about:blank&gt; assert_equals: origin expected &quot;null&quot; but got &quot;git+https://github.com&quot;
+FAIL Origin parsing: &lt;urn:ietf:rfc:2648&gt; against &lt;about:blank&gt; assert_equals: origin expected &quot;null&quot; but got &quot;urn://&quot;
+FAIL Origin parsing: &lt;tag:joe@example.org,2001:foo/bar&gt; against &lt;about:blank&gt; assert_equals: origin expected &quot;null&quot; but got &quot;tag://&quot;
</ins><span class="cx"> 
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsurlurlsettersexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/url/url-setters-expected.txt (211619 => 211620)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/url/url-setters-expected.txt        2017-02-03 04:50:04 UTC (rev 211619)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/url/url-setters-expected.txt        2017-02-03 06:20:56 UTC (rev 211620)
</span><span class="lines">@@ -1,32 +1,32 @@
</span><span class="cx"> 
</span><span class="cx"> PASS Loading data… 
</span><del>-FAIL URL: Setting &lt;a://example.net&gt;.protocol = '' The empty string is not a valid scheme. Setter leaves the URL unchanged. assert_equals: expected &quot;a://example.net/&quot; but got &quot;a://example.net&quot;
-FAIL &lt;a&gt;: Setting &lt;a://example.net&gt;.protocol = '' The empty string is not a valid scheme. Setter leaves the URL unchanged. assert_equals: expected &quot;a://example.net/&quot; but got &quot;a://example.net&quot;
-FAIL &lt;area&gt;: Setting &lt;a://example.net&gt;.protocol = '' The empty string is not a valid scheme. Setter leaves the URL unchanged. assert_equals: expected &quot;a://example.net/&quot; but got &quot;a://example.net&quot;
-FAIL URL: Setting &lt;a://example.net&gt;.protocol = 'b' assert_equals: expected &quot;b://example.net/&quot; but got &quot;b://example.net&quot;
-FAIL &lt;a&gt;: Setting &lt;a://example.net&gt;.protocol = 'b' assert_equals: expected &quot;b://example.net/&quot; but got &quot;b://example.net&quot;
-FAIL &lt;area&gt;: Setting &lt;a://example.net&gt;.protocol = 'b' assert_equals: expected &quot;b://example.net/&quot; but got &quot;b://example.net&quot;
-FAIL URL: Setting &lt;a://example.net&gt;.protocol = 'B' Upper-case ASCII is lower-cased assert_equals: expected &quot;b://example.net/&quot; but got &quot;b://example.net&quot;
-FAIL &lt;a&gt;: Setting &lt;a://example.net&gt;.protocol = 'B' Upper-case ASCII is lower-cased assert_equals: expected &quot;b://example.net/&quot; but got &quot;b://example.net&quot;
-FAIL &lt;area&gt;: Setting &lt;a://example.net&gt;.protocol = 'B' Upper-case ASCII is lower-cased assert_equals: expected &quot;b://example.net/&quot; but got &quot;b://example.net&quot;
-FAIL URL: Setting &lt;a://example.net&gt;.protocol = 'é' Non-ASCII is rejected assert_equals: expected &quot;a://example.net/&quot; but got &quot;a://example.net&quot;
-FAIL &lt;a&gt;: Setting &lt;a://example.net&gt;.protocol = 'é' Non-ASCII is rejected assert_equals: expected &quot;a://example.net/&quot; but got &quot;a://example.net&quot;
-FAIL &lt;area&gt;: Setting &lt;a://example.net&gt;.protocol = 'é' Non-ASCII is rejected assert_equals: expected &quot;a://example.net/&quot; but got &quot;a://example.net&quot;
-FAIL URL: Setting &lt;a://example.net&gt;.protocol = '0b' No leading digit assert_equals: expected &quot;a://example.net/&quot; but got &quot;a://example.net&quot;
-FAIL &lt;a&gt;: Setting &lt;a://example.net&gt;.protocol = '0b' No leading digit assert_equals: expected &quot;a://example.net/&quot; but got &quot;a://example.net&quot;
-FAIL &lt;area&gt;: Setting &lt;a://example.net&gt;.protocol = '0b' No leading digit assert_equals: expected &quot;a://example.net/&quot; but got &quot;a://example.net&quot;
-FAIL URL: Setting &lt;a://example.net&gt;.protocol = '+b' No leading punctuation assert_equals: expected &quot;a://example.net/&quot; but got &quot;a://example.net&quot;
-FAIL &lt;a&gt;: Setting &lt;a://example.net&gt;.protocol = '+b' No leading punctuation assert_equals: expected &quot;a://example.net/&quot; but got &quot;a://example.net&quot;
-FAIL &lt;area&gt;: Setting &lt;a://example.net&gt;.protocol = '+b' No leading punctuation assert_equals: expected &quot;a://example.net/&quot; but got &quot;a://example.net&quot;
-FAIL URL: Setting &lt;a://example.net&gt;.protocol = 'bC0+-.' assert_equals: expected &quot;bc0+-.://example.net/&quot; but got &quot;bc0+-.://example.net&quot;
-FAIL &lt;a&gt;: Setting &lt;a://example.net&gt;.protocol = 'bC0+-.' assert_equals: expected &quot;bc0+-.://example.net/&quot; but got &quot;bc0+-.://example.net&quot;
-FAIL &lt;area&gt;: Setting &lt;a://example.net&gt;.protocol = 'bC0+-.' assert_equals: expected &quot;bc0+-.://example.net/&quot; but got &quot;bc0+-.://example.net&quot;
-FAIL URL: Setting &lt;a://example.net&gt;.protocol = 'b,c' Only some punctuation is acceptable assert_equals: expected &quot;a://example.net/&quot; but got &quot;a://example.net&quot;
-FAIL &lt;a&gt;: Setting &lt;a://example.net&gt;.protocol = 'b,c' Only some punctuation is acceptable assert_equals: expected &quot;a://example.net/&quot; but got &quot;a://example.net&quot;
-FAIL &lt;area&gt;: Setting &lt;a://example.net&gt;.protocol = 'b,c' Only some punctuation is acceptable assert_equals: expected &quot;a://example.net/&quot; but got &quot;a://example.net&quot;
-FAIL URL: Setting &lt;a://example.net&gt;.protocol = 'bé' Non-ASCII is rejected assert_equals: expected &quot;a://example.net/&quot; but got &quot;a://example.net&quot;
-FAIL &lt;a&gt;: Setting &lt;a://example.net&gt;.protocol = 'bé' Non-ASCII is rejected assert_equals: expected &quot;a://example.net/&quot; but got &quot;a://example.net&quot;
-FAIL &lt;area&gt;: Setting &lt;a://example.net&gt;.protocol = 'bé' Non-ASCII is rejected assert_equals: expected &quot;a://example.net/&quot; but got &quot;a://example.net&quot;
</del><ins>+PASS URL: Setting &lt;a://example.net&gt;.protocol = '' The empty string is not a valid scheme. Setter leaves the URL unchanged. 
+PASS &lt;a&gt;: Setting &lt;a://example.net&gt;.protocol = '' The empty string is not a valid scheme. Setter leaves the URL unchanged. 
+PASS &lt;area&gt;: Setting &lt;a://example.net&gt;.protocol = '' The empty string is not a valid scheme. Setter leaves the URL unchanged. 
+PASS URL: Setting &lt;a://example.net&gt;.protocol = 'b' 
+PASS &lt;a&gt;: Setting &lt;a://example.net&gt;.protocol = 'b' 
+PASS &lt;area&gt;: Setting &lt;a://example.net&gt;.protocol = 'b' 
+PASS URL: Setting &lt;a://example.net&gt;.protocol = 'B' Upper-case ASCII is lower-cased 
+PASS &lt;a&gt;: Setting &lt;a://example.net&gt;.protocol = 'B' Upper-case ASCII is lower-cased 
+PASS &lt;area&gt;: Setting &lt;a://example.net&gt;.protocol = 'B' Upper-case ASCII is lower-cased 
+PASS URL: Setting &lt;a://example.net&gt;.protocol = 'é' Non-ASCII is rejected 
+PASS &lt;a&gt;: Setting &lt;a://example.net&gt;.protocol = 'é' Non-ASCII is rejected 
+PASS &lt;area&gt;: Setting &lt;a://example.net&gt;.protocol = 'é' Non-ASCII is rejected 
+PASS URL: Setting &lt;a://example.net&gt;.protocol = '0b' No leading digit 
+PASS &lt;a&gt;: Setting &lt;a://example.net&gt;.protocol = '0b' No leading digit 
+PASS &lt;area&gt;: Setting &lt;a://example.net&gt;.protocol = '0b' No leading digit 
+PASS URL: Setting &lt;a://example.net&gt;.protocol = '+b' No leading punctuation 
+PASS &lt;a&gt;: Setting &lt;a://example.net&gt;.protocol = '+b' No leading punctuation 
+PASS &lt;area&gt;: Setting &lt;a://example.net&gt;.protocol = '+b' No leading punctuation 
+PASS URL: Setting &lt;a://example.net&gt;.protocol = 'bC0+-.' 
+PASS &lt;a&gt;: Setting &lt;a://example.net&gt;.protocol = 'bC0+-.' 
+PASS &lt;area&gt;: Setting &lt;a://example.net&gt;.protocol = 'bC0+-.' 
+PASS URL: Setting &lt;a://example.net&gt;.protocol = 'b,c' Only some punctuation is acceptable 
+PASS &lt;a&gt;: Setting &lt;a://example.net&gt;.protocol = 'b,c' Only some punctuation is acceptable 
+PASS &lt;area&gt;: Setting &lt;a://example.net&gt;.protocol = 'b,c' Only some punctuation is acceptable 
+PASS URL: Setting &lt;a://example.net&gt;.protocol = 'bé' Non-ASCII is rejected 
+PASS &lt;a&gt;: Setting &lt;a://example.net&gt;.protocol = 'bé' Non-ASCII is rejected 
+PASS &lt;area&gt;: Setting &lt;a://example.net&gt;.protocol = 'bé' Non-ASCII is rejected 
</ins><span class="cx"> FAIL URL: Setting &lt;http://example.net&gt;.protocol = 'b' Can’t switch from special scheme to non-special assert_equals: expected &quot;http://example.net/&quot; but got &quot;b://example.net/&quot;
</span><span class="cx"> FAIL &lt;a&gt;: Setting &lt;http://example.net&gt;.protocol = 'b' Can’t switch from special scheme to non-special assert_equals: expected &quot;http://example.net/&quot; but got &quot;b://example.net/&quot;
</span><span class="cx"> FAIL &lt;area&gt;: Setting &lt;http://example.net&gt;.protocol = 'b' Can’t switch from special scheme to non-special assert_equals: expected &quot;http://example.net/&quot; but got &quot;b://example.net/&quot;
</span><span class="lines">@@ -39,15 +39,15 @@
</span><span class="cx"> FAIL URL: Setting &lt;mailto:me@example.net&gt;.protocol = 'http' Cannot-be-a-base URL doesn’t have a host, but URL in a special scheme must. assert_equals: expected &quot;mailto:me@example.net&quot; but got &quot;http://me@example.net/&quot;
</span><span class="cx"> FAIL &lt;a&gt;: Setting &lt;mailto:me@example.net&gt;.protocol = 'http' Cannot-be-a-base URL doesn’t have a host, but URL in a special scheme must. assert_equals: expected &quot;mailto:me@example.net&quot; but got &quot;http://me@example.net/&quot;
</span><span class="cx"> FAIL &lt;area&gt;: Setting &lt;mailto:me@example.net&gt;.protocol = 'http' Cannot-be-a-base URL doesn’t have a host, but URL in a special scheme must. assert_equals: expected &quot;mailto:me@example.net&quot; but got &quot;http://me@example.net/&quot;
</span><del>-FAIL URL: Setting &lt;ssh://me@example.net&gt;.protocol = 'http' Can’t switch from non-special scheme to special assert_equals: expected &quot;ssh://me@example.net/&quot; but got &quot;http://me@example.net/&quot;
-FAIL &lt;a&gt;: Setting &lt;ssh://me@example.net&gt;.protocol = 'http' Can’t switch from non-special scheme to special assert_equals: expected &quot;ssh://me@example.net/&quot; but got &quot;http://me@example.net/&quot;
-FAIL &lt;area&gt;: Setting &lt;ssh://me@example.net&gt;.protocol = 'http' Can’t switch from non-special scheme to special assert_equals: expected &quot;ssh://me@example.net/&quot; but got &quot;http://me@example.net/&quot;
-FAIL URL: Setting &lt;ssh://me@example.net&gt;.protocol = 'gopher' assert_equals: expected &quot;ssh://me@example.net/&quot; but got &quot;gopher://me@example.net/&quot;
-FAIL &lt;a&gt;: Setting &lt;ssh://me@example.net&gt;.protocol = 'gopher' assert_equals: expected &quot;ssh://me@example.net/&quot; but got &quot;gopher://me@example.net/&quot;
-FAIL &lt;area&gt;: Setting &lt;ssh://me@example.net&gt;.protocol = 'gopher' assert_equals: expected &quot;ssh://me@example.net/&quot; but got &quot;gopher://me@example.net/&quot;
-FAIL URL: Setting &lt;ssh://me@example.net&gt;.protocol = 'file' assert_equals: expected &quot;ssh://me@example.net/&quot; but got &quot;ssh://me@example.net&quot;
-FAIL &lt;a&gt;: Setting &lt;ssh://me@example.net&gt;.protocol = 'file' assert_equals: expected &quot;ssh://me@example.net/&quot; but got &quot;file://me@example.net&quot;
-FAIL &lt;area&gt;: Setting &lt;ssh://me@example.net&gt;.protocol = 'file' assert_equals: expected &quot;ssh://me@example.net/&quot; but got &quot;file://me@example.net&quot;
</del><ins>+FAIL URL: Setting &lt;ssh://me@example.net&gt;.protocol = 'http' Can’t switch from non-special scheme to special assert_equals: expected &quot;ssh://me@example.net&quot; but got &quot;http://me@example.net/&quot;
+FAIL &lt;a&gt;: Setting &lt;ssh://me@example.net&gt;.protocol = 'http' Can’t switch from non-special scheme to special assert_equals: expected &quot;ssh://me@example.net&quot; but got &quot;http://me@example.net/&quot;
+FAIL &lt;area&gt;: Setting &lt;ssh://me@example.net&gt;.protocol = 'http' Can’t switch from non-special scheme to special assert_equals: expected &quot;ssh://me@example.net&quot; but got &quot;http://me@example.net/&quot;
+FAIL URL: Setting &lt;ssh://me@example.net&gt;.protocol = 'gopher' assert_equals: expected &quot;ssh://me@example.net&quot; but got &quot;gopher://me@example.net/&quot;
+FAIL &lt;a&gt;: Setting &lt;ssh://me@example.net&gt;.protocol = 'gopher' assert_equals: expected &quot;ssh://me@example.net&quot; but got &quot;gopher://me@example.net/&quot;
+FAIL &lt;area&gt;: Setting &lt;ssh://me@example.net&gt;.protocol = 'gopher' assert_equals: expected &quot;ssh://me@example.net&quot; but got &quot;gopher://me@example.net/&quot;
+PASS URL: Setting &lt;ssh://me@example.net&gt;.protocol = 'file' 
+FAIL &lt;a&gt;: Setting &lt;ssh://me@example.net&gt;.protocol = 'file' assert_equals: expected &quot;ssh://me@example.net&quot; but got &quot;file://me@example.net&quot;
+FAIL &lt;area&gt;: Setting &lt;ssh://me@example.net&gt;.protocol = 'file' assert_equals: expected &quot;ssh://me@example.net&quot; but got &quot;file://me@example.net&quot;
</ins><span class="cx"> FAIL URL: Setting &lt;nonsense:///test&gt;.protocol = 'https' assert_equals: expected &quot;nonsense:///test&quot; but got &quot;https://test/&quot;
</span><span class="cx"> FAIL &lt;a&gt;: Setting &lt;nonsense:///test&gt;.protocol = 'https' assert_equals: expected &quot;nonsense:///test&quot; but got &quot;https://test/&quot;
</span><span class="cx"> FAIL &lt;area&gt;: Setting &lt;nonsense:///test&gt;.protocol = 'https' assert_equals: expected &quot;nonsense:///test&quot; but got &quot;https://test/&quot;
</span><span class="lines">@@ -117,6 +117,36 @@
</span><span class="cx"> PASS URL: Setting &lt;http://example.net&gt;.password = '%c3%89té' Bytes already percent-encoded are left as-is. 
</span><span class="cx"> PASS &lt;a&gt;: Setting &lt;http://example.net&gt;.password = '%c3%89té' Bytes already percent-encoded are left as-is. 
</span><span class="cx"> PASS &lt;area&gt;: Setting &lt;http://example.net&gt;.password = '%c3%89té' Bytes already percent-encoded are left as-is. 
</span><ins>+FAIL URL: Setting &lt;sc://x/&gt;.host = '\0' Non-special scheme assert_equals: expected &quot;sc://x/&quot; but got &quot;sc://%00/&quot;
+FAIL &lt;a&gt;: Setting &lt;sc://x/&gt;.host = '\0' Non-special scheme assert_equals: expected &quot;sc://x/&quot; but got &quot;sc://%00/&quot;
+FAIL &lt;area&gt;: Setting &lt;sc://x/&gt;.host = '\0' Non-special scheme assert_equals: expected &quot;sc://x/&quot; but got &quot;sc://%00/&quot;
+PASS URL: Setting &lt;sc://x/&gt;.host = '        ' 
+PASS &lt;a&gt;: Setting &lt;sc://x/&gt;.host = '        ' 
+PASS &lt;area&gt;: Setting &lt;sc://x/&gt;.host = '        ' 
+PASS URL: Setting &lt;sc://x/&gt;.host = '
+' 
+PASS &lt;a&gt;: Setting &lt;sc://x/&gt;.host = '
+' 
+PASS &lt;area&gt;: Setting &lt;sc://x/&gt;.host = '
+' 
+PASS URL: Setting &lt;sc://x/&gt;.host = '\r' 
+PASS &lt;a&gt;: Setting &lt;sc://x/&gt;.host = '\r' 
+PASS &lt;area&gt;: Setting &lt;sc://x/&gt;.host = '\r' 
+FAIL URL: Setting &lt;sc://x/&gt;.host = ' ' assert_equals: expected &quot;sc://x/&quot; but got &quot;sc:// /&quot;
+FAIL &lt;a&gt;: Setting &lt;sc://x/&gt;.host = ' ' assert_equals: expected &quot;sc://x/&quot; but got &quot;sc:// /&quot;
+FAIL &lt;area&gt;: Setting &lt;sc://x/&gt;.host = ' ' assert_equals: expected &quot;sc://x/&quot; but got &quot;sc:// /&quot;
+FAIL URL: Setting &lt;sc://x/&gt;.host = '#' assert_equals: expected &quot;sc:///&quot; but got &quot;sc://#/&quot;
+FAIL &lt;a&gt;: Setting &lt;sc://x/&gt;.host = '#' assert_equals: expected &quot;sc:///&quot; but got &quot;sc://#/&quot;
+FAIL &lt;area&gt;: Setting &lt;sc://x/&gt;.host = '#' assert_equals: expected &quot;sc:///&quot; but got &quot;sc://#/&quot;
+FAIL URL: Setting &lt;sc://x/&gt;.host = '/' assert_equals: expected &quot;sc:///&quot; but got &quot;sc:////&quot;
+FAIL &lt;a&gt;: Setting &lt;sc://x/&gt;.host = '/' assert_equals: expected &quot;sc:///&quot; but got &quot;sc:////&quot;
+FAIL &lt;area&gt;: Setting &lt;sc://x/&gt;.host = '/' assert_equals: expected &quot;sc:///&quot; but got &quot;sc:////&quot;
+FAIL URL: Setting &lt;sc://x/&gt;.host = '?' assert_equals: expected &quot;sc:///&quot; but got &quot;sc://?/&quot;
+FAIL &lt;a&gt;: Setting &lt;sc://x/&gt;.host = '?' assert_equals: expected &quot;sc:///&quot; but got &quot;sc://?/&quot;
+FAIL &lt;area&gt;: Setting &lt;sc://x/&gt;.host = '?' assert_equals: expected &quot;sc:///&quot; but got &quot;sc://?/&quot;
+PASS URL: Setting &lt;sc://x/&gt;.host = '@' 
+FAIL &lt;a&gt;: Setting &lt;sc://x/&gt;.host = '@' assert_equals: expected &quot;sc://x/&quot; but got &quot;sc://@/&quot;
+FAIL &lt;area&gt;: Setting &lt;sc://x/&gt;.host = '@' assert_equals: expected &quot;sc://x/&quot; but got &quot;sc://@/&quot;
</ins><span class="cx"> PASS URL: Setting &lt;mailto:me@example.net&gt;.host = 'example.com' Cannot-be-a-base means no host 
</span><span class="cx"> PASS &lt;a&gt;: Setting &lt;mailto:me@example.net&gt;.host = 'example.com' Cannot-be-a-base means no host 
</span><span class="cx"> PASS &lt;area&gt;: Setting &lt;mailto:me@example.net&gt;.host = 'example.com' Cannot-be-a-base means no host 
</span><span class="lines">@@ -180,9 +210,9 @@
</span><span class="cx"> PASS URL: Setting &lt;http://example.net/path&gt;.host = 'example.com:8080\stuff' Stuff after a \ delimiter is ignored for special schemes 
</span><span class="cx"> PASS &lt;a&gt;: Setting &lt;http://example.net/path&gt;.host = 'example.com:8080\stuff' Stuff after a \ delimiter is ignored for special schemes 
</span><span class="cx"> PASS &lt;area&gt;: Setting &lt;http://example.net/path&gt;.host = 'example.com:8080\stuff' Stuff after a \ delimiter is ignored for special schemes 
</span><del>-FAIL URL: Setting &lt;view-source+http://example.net/path&gt;.host = 'example.com\stuff' \ is not a delimiter for non-special schemes, and it’s invalid in a domain assert_equals: expected &quot;view-source+http://example.net/path&quot; but got &quot;view-source+http://example.com\\stuff/path&quot;
-FAIL &lt;a&gt;: Setting &lt;view-source+http://example.net/path&gt;.host = 'example.com\stuff' \ is not a delimiter for non-special schemes, and it’s invalid in a domain assert_equals: expected &quot;view-source+http://example.net/path&quot; but got &quot;view-source+http://example.com\\stuff/path&quot;
-FAIL &lt;area&gt;: Setting &lt;view-source+http://example.net/path&gt;.host = 'example.com\stuff' \ is not a delimiter for non-special schemes, and it’s invalid in a domain assert_equals: expected &quot;view-source+http://example.net/path&quot; but got &quot;view-source+http://example.com\\stuff/path&quot;
</del><ins>+FAIL URL: Setting &lt;view-source+http://example.net/path&gt;.host = 'example.com\stuff' \ is not a delimiter for non-special schemes, but still forbidden in hosts assert_equals: expected &quot;view-source+http://example.net/path&quot; but got &quot;view-source+http://example.com\\stuff/path&quot;
+FAIL &lt;a&gt;: Setting &lt;view-source+http://example.net/path&gt;.host = 'example.com\stuff' \ is not a delimiter for non-special schemes, but still forbidden in hosts assert_equals: expected &quot;view-source+http://example.net/path&quot; but got &quot;view-source+http://example.com\\stuff/path&quot;
+FAIL &lt;area&gt;: Setting &lt;view-source+http://example.net/path&gt;.host = 'example.com\stuff' \ is not a delimiter for non-special schemes, but still forbidden in hosts assert_equals: expected &quot;view-source+http://example.net/path&quot; but got &quot;view-source+http://example.com\\stuff/path&quot;
</ins><span class="cx"> PASS URL: Setting &lt;view-source+http://example.net/path&gt;.host = 'example.com:8080stuff2' Anything other than ASCII digit stops the port parser in a setter but is not an error 
</span><span class="cx"> PASS &lt;a&gt;: Setting &lt;view-source+http://example.net/path&gt;.host = 'example.com:8080stuff2' Anything other than ASCII digit stops the port parser in a setter but is not an error 
</span><span class="cx"> PASS &lt;area&gt;: Setting &lt;view-source+http://example.net/path&gt;.host = 'example.com:8080stuff2' Anything other than ASCII digit stops the port parser in a setter but is not an error 
</span><span class="lines">@@ -213,6 +243,36 @@
</span><span class="cx"> PASS URL: Setting &lt;http://example.net/&gt;.host = '[::1.]' 
</span><span class="cx"> FAIL &lt;a&gt;: Setting &lt;http://example.net/&gt;.host = '[::1.]' assert_equals: expected &quot;http://example.net/&quot; but got &quot;http://[:0/&quot;
</span><span class="cx"> FAIL &lt;area&gt;: Setting &lt;http://example.net/&gt;.host = '[::1.]' assert_equals: expected &quot;http://example.net/&quot; but got &quot;http://[:0/&quot;
</span><ins>+FAIL URL: Setting &lt;sc://x/&gt;.hostname = '\0' Non-special scheme assert_equals: expected &quot;sc://x/&quot; but got &quot;sc://%00/&quot;
+FAIL &lt;a&gt;: Setting &lt;sc://x/&gt;.hostname = '\0' Non-special scheme assert_equals: expected &quot;sc://x/&quot; but got &quot;sc://%00/&quot;
+FAIL &lt;area&gt;: Setting &lt;sc://x/&gt;.hostname = '\0' Non-special scheme assert_equals: expected &quot;sc://x/&quot; but got &quot;sc://%00/&quot;
+PASS URL: Setting &lt;sc://x/&gt;.hostname = '        ' 
+PASS &lt;a&gt;: Setting &lt;sc://x/&gt;.hostname = '        ' 
+PASS &lt;area&gt;: Setting &lt;sc://x/&gt;.hostname = '        ' 
+PASS URL: Setting &lt;sc://x/&gt;.hostname = '
+' 
+PASS &lt;a&gt;: Setting &lt;sc://x/&gt;.hostname = '
+' 
+PASS &lt;area&gt;: Setting &lt;sc://x/&gt;.hostname = '
+' 
+PASS URL: Setting &lt;sc://x/&gt;.hostname = '\r' 
+PASS &lt;a&gt;: Setting &lt;sc://x/&gt;.hostname = '\r' 
+PASS &lt;area&gt;: Setting &lt;sc://x/&gt;.hostname = '\r' 
+FAIL URL: Setting &lt;sc://x/&gt;.hostname = ' ' assert_equals: expected &quot;sc://x/&quot; but got &quot;sc:// /&quot;
+FAIL &lt;a&gt;: Setting &lt;sc://x/&gt;.hostname = ' ' assert_equals: expected &quot;sc://x/&quot; but got &quot;sc:// /&quot;
+FAIL &lt;area&gt;: Setting &lt;sc://x/&gt;.hostname = ' ' assert_equals: expected &quot;sc://x/&quot; but got &quot;sc:// /&quot;
+FAIL URL: Setting &lt;sc://x/&gt;.hostname = '#' assert_equals: expected &quot;sc:///&quot; but got &quot;sc://#/&quot;
+FAIL &lt;a&gt;: Setting &lt;sc://x/&gt;.hostname = '#' assert_equals: expected &quot;sc:///&quot; but got &quot;sc://#/&quot;
+FAIL &lt;area&gt;: Setting &lt;sc://x/&gt;.hostname = '#' assert_equals: expected &quot;sc:///&quot; but got &quot;sc://#/&quot;
+FAIL URL: Setting &lt;sc://x/&gt;.hostname = '/' assert_equals: expected &quot;sc:///&quot; but got &quot;sc://x/&quot;
+FAIL &lt;a&gt;: Setting &lt;sc://x/&gt;.hostname = '/' assert_equals: expected &quot;sc:///&quot; but got &quot;sc://x/&quot;
+FAIL &lt;area&gt;: Setting &lt;sc://x/&gt;.hostname = '/' assert_equals: expected &quot;sc:///&quot; but got &quot;sc://x/&quot;
+FAIL URL: Setting &lt;sc://x/&gt;.hostname = '?' assert_equals: expected &quot;sc:///&quot; but got &quot;sc://?/&quot;
+FAIL &lt;a&gt;: Setting &lt;sc://x/&gt;.hostname = '?' assert_equals: expected &quot;sc:///&quot; but got &quot;sc://?/&quot;
+FAIL &lt;area&gt;: Setting &lt;sc://x/&gt;.hostname = '?' assert_equals: expected &quot;sc:///&quot; but got &quot;sc://?/&quot;
+PASS URL: Setting &lt;sc://x/&gt;.hostname = '@' 
+FAIL &lt;a&gt;: Setting &lt;sc://x/&gt;.hostname = '@' assert_equals: expected &quot;sc://x/&quot; but got &quot;sc://@/&quot;
+FAIL &lt;area&gt;: Setting &lt;sc://x/&gt;.hostname = '@' assert_equals: expected &quot;sc://x/&quot; but got &quot;sc://@/&quot;
</ins><span class="cx"> PASS URL: Setting &lt;mailto:me@example.net&gt;.hostname = 'example.com' Cannot-be-a-base means no host 
</span><span class="cx"> PASS &lt;a&gt;: Setting &lt;mailto:me@example.net&gt;.hostname = 'example.com' Cannot-be-a-base means no host 
</span><span class="cx"> PASS &lt;area&gt;: Setting &lt;mailto:me@example.net&gt;.hostname = 'example.com' Cannot-be-a-base means no host 
</span><span class="lines">@@ -255,9 +315,9 @@
</span><span class="cx"> FAIL URL: Setting &lt;http://example.net/path&gt;.hostname = 'example.com\stuff' Stuff after a \ delimiter is ignored for special schemes assert_equals: expected &quot;http://example.com/path&quot; but got &quot;http://example.com/stuff/path&quot;
</span><span class="cx"> FAIL &lt;a&gt;: Setting &lt;http://example.net/path&gt;.hostname = 'example.com\stuff' Stuff after a \ delimiter is ignored for special schemes assert_equals: expected &quot;http://example.com/path&quot; but got &quot;http://example.com/stuff/path&quot;
</span><span class="cx"> FAIL &lt;area&gt;: Setting &lt;http://example.net/path&gt;.hostname = 'example.com\stuff' Stuff after a \ delimiter is ignored for special schemes assert_equals: expected &quot;http://example.com/path&quot; but got &quot;http://example.com/stuff/path&quot;
</span><del>-FAIL URL: Setting &lt;view-source+http://example.net/path&gt;.hostname = 'example.com\stuff' \ is not a delimiter for non-special schemes, and it’s invalid in a domain assert_equals: expected &quot;view-source+http://example.net/path&quot; but got &quot;view-source+http://example.com\\stuff/path&quot;
-FAIL &lt;a&gt;: Setting &lt;view-source+http://example.net/path&gt;.hostname = 'example.com\stuff' \ is not a delimiter for non-special schemes, and it’s invalid in a domain assert_equals: expected &quot;view-source+http://example.net/path&quot; but got &quot;view-source+http://example.com\\stuff/path&quot;
-FAIL &lt;area&gt;: Setting &lt;view-source+http://example.net/path&gt;.hostname = 'example.com\stuff' \ is not a delimiter for non-special schemes, and it’s invalid in a domain assert_equals: expected &quot;view-source+http://example.net/path&quot; but got &quot;view-source+http://example.com\\stuff/path&quot;
</del><ins>+FAIL URL: Setting &lt;view-source+http://example.net/path&gt;.hostname = 'example.com\stuff' \ is not a delimiter for non-special schemes, but still forbidden in hosts assert_equals: expected &quot;view-source+http://example.net/path&quot; but got &quot;view-source+http://example.com\\stuff/path&quot;
+FAIL &lt;a&gt;: Setting &lt;view-source+http://example.net/path&gt;.hostname = 'example.com\stuff' \ is not a delimiter for non-special schemes, but still forbidden in hosts assert_equals: expected &quot;view-source+http://example.net/path&quot; but got &quot;view-source+http://example.com\\stuff/path&quot;
+FAIL &lt;area&gt;: Setting &lt;view-source+http://example.net/path&gt;.hostname = 'example.com\stuff' \ is not a delimiter for non-special schemes, but still forbidden in hosts assert_equals: expected &quot;view-source+http://example.net/path&quot; but got &quot;view-source+http://example.com\\stuff/path&quot;
</ins><span class="cx"> PASS URL: Setting &lt;http://example.net/&gt;.hostname = '[google.com]' Broken IPv6 
</span><span class="cx"> FAIL &lt;a&gt;: Setting &lt;http://example.net/&gt;.hostname = '[google.com]' Broken IPv6 assert_equals: expected &quot;http://example.net/&quot; but got &quot;http://[google.com]/&quot;
</span><span class="cx"> FAIL &lt;area&gt;: Setting &lt;http://example.net/&gt;.hostname = '[google.com]' Broken IPv6 assert_equals: expected &quot;http://example.net/&quot; but got &quot;http://[google.com]/&quot;
</span><span class="lines">@@ -345,6 +405,15 @@
</span><span class="cx"> PASS URL: Setting &lt;http://example.net&gt;.pathname = '?' ? needs to be encoded 
</span><span class="cx"> PASS &lt;a&gt;: Setting &lt;http://example.net&gt;.pathname = '?' ? needs to be encoded 
</span><span class="cx"> PASS &lt;area&gt;: Setting &lt;http://example.net&gt;.pathname = '?' ? needs to be encoded 
</span><ins>+PASS URL: Setting &lt;http://example.net&gt;.pathname = '#' # needs to be encoded 
+PASS &lt;a&gt;: Setting &lt;http://example.net&gt;.pathname = '#' # needs to be encoded 
+PASS &lt;area&gt;: Setting &lt;http://example.net&gt;.pathname = '#' # needs to be encoded 
+PASS URL: Setting &lt;sc://example.net&gt;.pathname = '?' ? needs to be encoded, non-special scheme 
+PASS &lt;a&gt;: Setting &lt;sc://example.net&gt;.pathname = '?' ? needs to be encoded, non-special scheme 
+PASS &lt;area&gt;: Setting &lt;sc://example.net&gt;.pathname = '?' ? needs to be encoded, non-special scheme 
+PASS URL: Setting &lt;sc://example.net&gt;.pathname = '#' # needs to be encoded, non-special scheme 
+PASS &lt;a&gt;: Setting &lt;sc://example.net&gt;.pathname = '#' # needs to be encoded, non-special scheme 
+PASS &lt;area&gt;: Setting &lt;sc://example.net&gt;.pathname = '#' # needs to be encoded, non-special scheme 
</ins><span class="cx"> PASS URL: Setting &lt;https://example.net#nav&gt;.search = 'lang=fr' 
</span><span class="cx"> PASS &lt;a&gt;: Setting &lt;https://example.net#nav&gt;.search = 'lang=fr' 
</span><span class="cx"> PASS &lt;area&gt;: Setting &lt;https://example.net#nav&gt;.search = 'lang=fr' 
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsurlurlencodedparserexpectedtxt"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/web-platform-tests/url/urlencoded-parser-expected.txt (0 => 211620)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/url/urlencoded-parser-expected.txt                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/url/urlencoded-parser-expected.txt        2017-02-03 06:20:56 UTC (rev 211620)
</span><span class="lines">@@ -0,0 +1,92 @@
</span><ins>+
+PASS URLSearchParams constructed with: test 
+FAIL request.formData() with input: test undefined is not a function (near '...s-1252&quot;} }).formData()...')
+FAIL response.formData() with input: test promise_test: Unhandled rejection with value: &quot;Not implemented&quot;
+PASS URLSearchParams constructed with: test= 
+FAIL request.formData() with input: test= undefined is not a function (near '...s-1252&quot;} }).formData()...')
+FAIL response.formData() with input: test= promise_test: Unhandled rejection with value: &quot;Not implemented&quot;
+PASS URLSearchParams constructed with: %EF%BB%BFtest=%EF%BB%BF 
+FAIL request.formData() with input: %EF%BB%BFtest=%EF%BB%BF undefined is not a function (near '...s-1252&quot;} }).formData()...')
+FAIL response.formData() with input: %EF%BB%BFtest=%EF%BB%BF promise_test: Unhandled rejection with value: &quot;Not implemented&quot;
+FAIL URLSearchParams constructed with: %FE%FF assert_array_equals: property 0, expected &quot;��&quot; but got &quot;&quot;
+FAIL request.formData() with input: %FE%FF undefined is not a function (near '...s-1252&quot;} }).formData()...')
+FAIL response.formData() with input: %FE%FF promise_test: Unhandled rejection with value: &quot;Not implemented&quot;
+FAIL URLSearchParams constructed with: %FF%FE assert_array_equals: property 0, expected &quot;��&quot; but got &quot;&quot;
+FAIL request.formData() with input: %FF%FE undefined is not a function (near '...s-1252&quot;} }).formData()...')
+FAIL response.formData() with input: %FF%FE promise_test: Unhandled rejection with value: &quot;Not implemented&quot;
+PASS URLSearchParams constructed with: †&amp;†=x 
+FAIL request.formData() with input: †&amp;†=x undefined is not a function (near '...s-1252&quot;} }).formData()...')
+FAIL response.formData() with input: †&amp;†=x promise_test: Unhandled rejection with value: &quot;Not implemented&quot;
+FAIL URLSearchParams constructed with: %C2 assert_array_equals: property 0, expected &quot;�&quot; but got &quot;&quot;
+FAIL request.formData() with input: %C2 undefined is not a function (near '...s-1252&quot;} }).formData()...')
+FAIL response.formData() with input: %C2 promise_test: Unhandled rejection with value: &quot;Not implemented&quot;
+FAIL URLSearchParams constructed with: %C2x assert_array_equals: property 0, expected &quot;�x&quot; but got &quot;&quot;
+FAIL request.formData() with input: %C2x undefined is not a function (near '...s-1252&quot;} }).formData()...')
+FAIL response.formData() with input: %C2x promise_test: Unhandled rejection with value: &quot;Not implemented&quot;
+FAIL URLSearchParams constructed with: _charset_=windows-1252&amp;test=%C2x assert_array_equals: property 1, expected &quot;�x&quot; but got &quot;&quot;
+FAIL request.formData() with input: _charset_=windows-1252&amp;test=%C2x undefined is not a function (near '...s-1252&quot;} }).formData()...')
+FAIL response.formData() with input: _charset_=windows-1252&amp;test=%C2x promise_test: Unhandled rejection with value: &quot;Not implemented&quot;
+PASS URLSearchParams constructed with:  
+FAIL request.formData() with input:  undefined is not a function (near '...s-1252&quot;} }).formData()...')
+FAIL response.formData() with input:  promise_test: Unhandled rejection with value: &quot;Not implemented&quot;
+PASS URLSearchParams constructed with: a 
+FAIL request.formData() with input: a undefined is not a function (near '...s-1252&quot;} }).formData()...')
+FAIL response.formData() with input: a promise_test: Unhandled rejection with value: &quot;Not implemented&quot;
+PASS URLSearchParams constructed with: a=b 
+FAIL request.formData() with input: a=b undefined is not a function (near '...s-1252&quot;} }).formData()...')
+FAIL response.formData() with input: a=b promise_test: Unhandled rejection with value: &quot;Not implemented&quot;
+PASS URLSearchParams constructed with: a= 
+FAIL request.formData() with input: a= undefined is not a function (near '...s-1252&quot;} }).formData()...')
+FAIL response.formData() with input: a= promise_test: Unhandled rejection with value: &quot;Not implemented&quot;
+PASS URLSearchParams constructed with: =b 
+FAIL request.formData() with input: =b undefined is not a function (near '...s-1252&quot;} }).formData()...')
+FAIL response.formData() with input: =b promise_test: Unhandled rejection with value: &quot;Not implemented&quot;
+PASS URLSearchParams constructed with: &amp; 
+FAIL request.formData() with input: &amp; undefined is not a function (near '...s-1252&quot;} }).formData()...')
+FAIL response.formData() with input: &amp; promise_test: Unhandled rejection with value: &quot;Not implemented&quot;
+PASS URLSearchParams constructed with: &amp;a 
+FAIL request.formData() with input: &amp;a undefined is not a function (near '...s-1252&quot;} }).formData()...')
+FAIL response.formData() with input: &amp;a promise_test: Unhandled rejection with value: &quot;Not implemented&quot;
+PASS URLSearchParams constructed with: a&amp; 
+FAIL request.formData() with input: a&amp; undefined is not a function (near '...s-1252&quot;} }).formData()...')
+FAIL response.formData() with input: a&amp; promise_test: Unhandled rejection with value: &quot;Not implemented&quot;
+PASS URLSearchParams constructed with: a&amp;a 
+FAIL request.formData() with input: a&amp;a undefined is not a function (near '...s-1252&quot;} }).formData()...')
+FAIL response.formData() with input: a&amp;a promise_test: Unhandled rejection with value: &quot;Not implemented&quot;
+PASS URLSearchParams constructed with: a&amp;b&amp;c 
+FAIL request.formData() with input: a&amp;b&amp;c undefined is not a function (near '...s-1252&quot;} }).formData()...')
+FAIL response.formData() with input: a&amp;b&amp;c promise_test: Unhandled rejection with value: &quot;Not implemented&quot;
+PASS URLSearchParams constructed with: a=b&amp;c=d 
+FAIL request.formData() with input: a=b&amp;c=d undefined is not a function (near '...s-1252&quot;} }).formData()...')
+FAIL response.formData() with input: a=b&amp;c=d promise_test: Unhandled rejection with value: &quot;Not implemented&quot;
+PASS URLSearchParams constructed with: a=b&amp;c=d&amp; 
+FAIL request.formData() with input: a=b&amp;c=d&amp; undefined is not a function (near '...s-1252&quot;} }).formData()...')
+FAIL response.formData() with input: a=b&amp;c=d&amp; promise_test: Unhandled rejection with value: &quot;Not implemented&quot;
+PASS URLSearchParams constructed with: &amp;&amp;&amp;a=b&amp;&amp;&amp;&amp;c=d&amp; 
+FAIL request.formData() with input: &amp;&amp;&amp;a=b&amp;&amp;&amp;&amp;c=d&amp; undefined is not a function (near '...s-1252&quot;} }).formData()...')
+FAIL response.formData() with input: &amp;&amp;&amp;a=b&amp;&amp;&amp;&amp;c=d&amp; promise_test: Unhandled rejection with value: &quot;Not implemented&quot;
+PASS URLSearchParams constructed with: a=a&amp;a=b&amp;a=c 
+FAIL request.formData() with input: a=a&amp;a=b&amp;a=c undefined is not a function (near '...s-1252&quot;} }).formData()...')
+FAIL response.formData() with input: a=a&amp;a=b&amp;a=c promise_test: Unhandled rejection with value: &quot;Not implemented&quot;
+PASS URLSearchParams constructed with: a==a 
+FAIL request.formData() with input: a==a undefined is not a function (near '...s-1252&quot;} }).formData()...')
+FAIL response.formData() with input: a==a promise_test: Unhandled rejection with value: &quot;Not implemented&quot;
+PASS URLSearchParams constructed with: a=a+b+c+d 
+FAIL request.formData() with input: a=a+b+c+d undefined is not a function (near '...s-1252&quot;} }).formData()...')
+FAIL response.formData() with input: a=a+b+c+d promise_test: Unhandled rejection with value: &quot;Not implemented&quot;
+PASS URLSearchParams constructed with: %=a 
+FAIL request.formData() with input: %=a undefined is not a function (near '...s-1252&quot;} }).formData()...')
+FAIL response.formData() with input: %=a promise_test: Unhandled rejection with value: &quot;Not implemented&quot;
+PASS URLSearchParams constructed with: %a=a 
+FAIL request.formData() with input: %a=a undefined is not a function (near '...s-1252&quot;} }).formData()...')
+FAIL response.formData() with input: %a=a promise_test: Unhandled rejection with value: &quot;Not implemented&quot;
+PASS URLSearchParams constructed with: %a_=a 
+FAIL request.formData() with input: %a_=a undefined is not a function (near '...s-1252&quot;} }).formData()...')
+FAIL response.formData() with input: %a_=a promise_test: Unhandled rejection with value: &quot;Not implemented&quot;
+PASS URLSearchParams constructed with: %61=a 
+FAIL request.formData() with input: %61=a undefined is not a function (near '...s-1252&quot;} }).formData()...')
+FAIL response.formData() with input: %61=a promise_test: Unhandled rejection with value: &quot;Not implemented&quot;
+PASS URLSearchParams constructed with: %61+%4d%4D= 
+FAIL request.formData() with input: %61+%4d%4D= undefined is not a function (near '...s-1252&quot;} }).formData()...')
+FAIL response.formData() with input: %61+%4d%4D= promise_test: Unhandled rejection with value: &quot;Not implemented&quot;
+
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsurlurlencodedparserhtml"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/web-platform-tests/url/urlencoded-parser.html (0 => 211620)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/url/urlencoded-parser.html                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/url/urlencoded-parser.html        2017-02-03 06:20:56 UTC (rev 211620)
</span><span class="lines">@@ -0,0 +1,71 @@
</span><ins>+&lt;!doctype html&gt;
+&lt;meta charset=utf-8&gt;
+&lt;title&gt;application/x-www-form-urlencoded parser test&lt;/title&gt;
+&lt;script src=/resources/testharness.js&gt;&lt;/script&gt;
+&lt;script src=/resources/testharnessreport.js&gt;&lt;/script&gt;
+&lt;div id=log&gt;&lt;/div&gt;
+&lt;script&gt;
+[
+  { &quot;input&quot;: &quot;test&quot;, &quot;output&quot;: [[&quot;test&quot;, &quot;&quot;]] },
+  { &quot;input&quot;: &quot;\uFEFFtest=\uFEFF&quot;, &quot;output&quot;: [[&quot;\uFEFFtest&quot;, &quot;\uFEFF&quot;]] },
+  { &quot;input&quot;: &quot;%EF%BB%BFtest=%EF%BB%BF&quot;, &quot;output&quot;: [[&quot;\uFEFFtest&quot;, &quot;\uFEFF&quot;]] },
+  { &quot;input&quot;: &quot;%FE%FF&quot;, &quot;output&quot;: [[&quot;\uFFFD\uFFFD&quot;, &quot;&quot;]] },
+  { &quot;input&quot;: &quot;%FF%FE&quot;, &quot;output&quot;: [[&quot;\uFFFD\uFFFD&quot;, &quot;&quot;]] },
+  { &quot;input&quot;: &quot;†&amp;†=x&quot;, &quot;output&quot;: [[&quot;†&quot;, &quot;&quot;], [&quot;†&quot;, &quot;x&quot;]] },
+  { &quot;input&quot;: &quot;%C2&quot;, &quot;output&quot;: [[&quot;\uFFFD&quot;, &quot;&quot;]] },
+  { &quot;input&quot;: &quot;%C2x&quot;, &quot;output&quot;: [[&quot;\uFFFDx&quot;, &quot;&quot;]] },
+  { &quot;input&quot;: &quot;_charset_=windows-1252&amp;test=%C2x&quot;, &quot;output&quot;: [[&quot;_charset_&quot;, &quot;windows-1252&quot;], [&quot;test&quot;, &quot;\uFFFDx&quot;]] },
+  { &quot;input&quot;: '', &quot;output&quot;: [] },
+  { &quot;input&quot;: 'a', &quot;output&quot;: [['a', '']] },
+  { &quot;input&quot;: 'a=b', &quot;output&quot;: [['a', 'b']] },
+  { &quot;input&quot;: 'a=', &quot;output&quot;: [['a', '']] },
+  { &quot;input&quot;: '=b', &quot;output&quot;: [['', 'b']] },
+  { &quot;input&quot;: '&amp;', &quot;output&quot;: [] },
+  { &quot;input&quot;: '&amp;a', &quot;output&quot;: [['a', '']] },
+  { &quot;input&quot;: 'a&amp;', &quot;output&quot;: [['a', '']] },
+  { &quot;input&quot;: 'a&amp;a', &quot;output&quot;: [['a', ''], ['a', '']] },
+  { &quot;input&quot;: 'a&amp;b&amp;c', &quot;output&quot;: [['a', ''], ['b', ''], ['c', '']] },
+  { &quot;input&quot;: 'a=b&amp;c=d', &quot;output&quot;: [['a', 'b'], ['c', 'd']] },
+  { &quot;input&quot;: 'a=b&amp;c=d&amp;', &quot;output&quot;: [['a', 'b'], ['c', 'd']] },
+  { &quot;input&quot;: '&amp;&amp;&amp;a=b&amp;&amp;&amp;&amp;c=d&amp;', &quot;output&quot;: [['a', 'b'], ['c', 'd']] },
+  { &quot;input&quot;: 'a=a&amp;a=b&amp;a=c', &quot;output&quot;: [['a', 'a'], ['a', 'b'], ['a', 'c']] },
+  { &quot;input&quot;: 'a==a', &quot;output&quot;: [['a', '=a']] },
+  { &quot;input&quot;: 'a=a+b+c+d', &quot;output&quot;: [['a', 'a b c d']] },
+  { &quot;input&quot;: '%=a', &quot;output&quot;: [['%', 'a']] },
+  { &quot;input&quot;: '%a=a', &quot;output&quot;: [['%a', 'a']] },
+  { &quot;input&quot;: '%a_=a', &quot;output&quot;: [['%a_', 'a']] },
+  { &quot;input&quot;: '%61=a', &quot;output&quot;: [['a', 'a']] },
+  { &quot;input&quot;: '%61+%4d%4D=', &quot;output&quot;: [['a MM', '']] }
+].forEach((val) =&gt; {
+  test(() =&gt; {
+    let sp = new URLSearchParams(val.input),
+        i = 0
+    for (let item of sp) {
+       assert_array_equals(item, val.output[i])
+       i++
+    }
+  }, &quot;URLSearchParams constructed with: &quot; + val.input)
+
+  promise_test(() =&gt; {
+    let init = new Request(&quot;about:blank&quot;, { body: val.input, method: &quot;LADIDA&quot;, headers: {&quot;Content-Type&quot;: &quot;application/x-www-form-urlencoded;charset=windows-1252&quot;} }).formData()
+    return init.then((fd) =&gt; {
+      let i = 0
+      for (let item of fd) {
+         assert_array_equals(item, val.output[i])
+         i++
+      }
+    })
+  }, &quot;request.formData() with input: &quot; + val.input)
+
+  promise_test(() =&gt; {
+    let init = new Response(val.input, { headers: {&quot;Content-Type&quot;: &quot;application/x-www-form-urlencoded;charset=shift_jis&quot;} }).formData()
+    return init.then((fd) =&gt; {
+      let i = 0
+      for (let item of fd) {
+         assert_array_equals(item, val.output[i])
+         i++
+      }
+    })
+  }, &quot;response.formData() with input: &quot; + val.input)
+})
+&lt;/script&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsurlurlsearchparamsconstructorexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/url/urlsearchparams-constructor-expected.txt (211619 => 211620)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/url/urlsearchparams-constructor-expected.txt        2017-02-03 04:50:04 UTC (rev 211619)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/url/urlsearchparams-constructor-expected.txt        2017-02-03 06:20:56 UTC (rev 211620)
</span><span class="lines">@@ -1,7 +1,7 @@
</span><span class="cx"> 
</span><span class="cx"> PASS Basic URLSearchParams construction 
</span><span class="cx"> PASS URLSearchParams constructor, no arguments 
</span><del>-FAIL URLSearchParams constructor, DOMException.prototype as argument assert_equals: expected &quot;Error=&quot; but got &quot;INDEX_SIZE_ERR=1&amp;DOMSTRING_SIZE_ERR=2&amp;HIERARCHY_REQUEST_ERR=3&amp;WRONG_DOCUMENT_ERR=4&amp;INVALID_CHARACTER_ERR=5&amp;NO_DATA_ALLOWED_ERR=6&amp;NO_MODIFICATION_ALLOWED_ERR=7&amp;NOT_FOUND_ERR=8&amp;NOT_SUPPORTED_ERR=9&amp;INUSE_ATTRIBUTE_ERR=10&amp;INVALID_STATE_ERR=11&amp;SYNTAX_ERR=12&amp;INVALID_MODIFICATION_ERR=13&amp;NAMESPACE_ERR=14&amp;INVALID_ACCESS_ERR=15&amp;VALIDATION_ERR=16&amp;TYPE_MISMATCH_ERR=17&amp;SECURITY_ERR=18&amp;NETWORK_ERR=19&amp;ABORT_ERR=20&amp;URL_MISMATCH_ERR=21&amp;QUOTA_EXCEEDED_ERR=22&amp;TIMEOUT_ERR=23&amp;INVALID_NODE_TYPE_ERR=24&amp;DATA_CLONE_ERR=25&quot;
</del><ins>+PASS URLSearchParams constructor, DOMException.prototype as argument 
</ins><span class="cx"> PASS URLSearchParams constructor, empty string as argument 
</span><span class="cx"> PASS URLSearchParams constructor, {} as argument 
</span><span class="cx"> PASS URLSearchParams constructor, string. 
</span><span class="lines">@@ -15,7 +15,8 @@
</span><span class="cx"> PASS Parse %e2%8e%84 
</span><span class="cx"> PASS Parse 💩 
</span><span class="cx"> PASS Parse %f0%9f%92%a9 
</span><del>-FAIL Construct with object with + assert_array_equals: property 0, expected &quot; &quot; but got &quot;+&quot;
</del><ins>+PASS Constructor with sequence of sequences of strings 
+PASS Construct with object with + 
</ins><span class="cx"> PASS Construct with object with two keys 
</span><span class="cx"> PASS Construct with array with two keys 
</span><span class="cx"> PASS Custom [Symbol.iterator] 
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsurlurlsearchparamsconstructorhtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/url/urlsearchparams-constructor.html (211619 => 211620)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/url/urlsearchparams-constructor.html        2017-02-03 04:50:04 UTC (rev 211619)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/url/urlsearchparams-constructor.html        2017-02-03 06:20:56 UTC (rev 211620)
</span><span class="lines">@@ -24,7 +24,7 @@
</span><span class="cx"> 
</span><span class="cx"> test(() =&gt; {
</span><span class="cx">     params = new URLSearchParams(DOMException.prototype);
</span><del>-    assert_equals(params.toString(), &quot;Error=&quot;)
</del><ins>+    assert_equals(params.toString(), &quot;INDEX_SIZE_ERR=1&amp;DOMSTRING_SIZE_ERR=2&amp;HIERARCHY_REQUEST_ERR=3&amp;WRONG_DOCUMENT_ERR=4&amp;INVALID_CHARACTER_ERR=5&amp;NO_DATA_ALLOWED_ERR=6&amp;NO_MODIFICATION_ALLOWED_ERR=7&amp;NOT_FOUND_ERR=8&amp;NOT_SUPPORTED_ERR=9&amp;INUSE_ATTRIBUTE_ERR=10&amp;INVALID_STATE_ERR=11&amp;SYNTAX_ERR=12&amp;INVALID_MODIFICATION_ERR=13&amp;NAMESPACE_ERR=14&amp;INVALID_ACCESS_ERR=15&amp;VALIDATION_ERR=16&amp;TYPE_MISMATCH_ERR=17&amp;SECURITY_ERR=18&amp;NETWORK_ERR=19&amp;ABORT_ERR=20&amp;URL_MISMATCH_ERR=21&amp;QUOTA_EXCEEDED_ERR=22&amp;TIMEOUT_ERR=23&amp;INVALID_NODE_TYPE_ERR=24&amp;DATA_CLONE_ERR=25&quot;)
</ins><span class="cx"> }, &quot;URLSearchParams constructor, DOMException.prototype as argument&quot;)
</span><span class="cx"> 
</span><span class="cx"> test(() =&gt; {
</span><span class="lines">@@ -135,8 +135,18 @@
</span><span class="cx">     assert_equals(params.get('a\uD83D\uDCA9b'), 'c');
</span><span class="cx"> }, 'Parse %f0%9f%92%a9');  // Unicode Character 'PILE OF POO' (U+1F4A9)
</span><span class="cx"> 
</span><del>-;[
-  { &quot;input&quot;: {&quot;+&quot;: &quot;%C2&quot;}, &quot;output&quot;: [[&quot; &quot;, &quot;\uFFFD&quot;]], &quot;name&quot;: &quot;object with +&quot; },
</del><ins>+test(function() {
+    var params = new URLSearchParams([]);
+    assert_true(params != null, 'constructor returned non-null value.');
+    params = new URLSearchParams([['a', 'b'], ['c', 'd']]);
+    assert_equals(params.get(&quot;a&quot;), &quot;b&quot;);
+    assert_equals(params.get(&quot;c&quot;), &quot;d&quot;);
+    assert_throws(new TypeError(), function() { new URLSearchParams([[1]]); });
+    assert_throws(new TypeError(), function() { new URLSearchParams([[1,2,3]]); });
+}, &quot;Constructor with sequence of sequences of strings&quot;);
+
+[
+  { &quot;input&quot;: {&quot;+&quot;: &quot;%C2&quot;}, &quot;output&quot;: [[&quot;+&quot;, &quot;%C2&quot;]], &quot;name&quot;: &quot;object with +&quot; },
</ins><span class="cx">   { &quot;input&quot;: {c: &quot;x&quot;, a: &quot;?&quot;}, &quot;output&quot;: [[&quot;c&quot;, &quot;x&quot;], [&quot;a&quot;, &quot;?&quot;]], &quot;name&quot;: &quot;object with two keys&quot; },
</span><span class="cx">   { &quot;input&quot;: [[&quot;c&quot;, &quot;x&quot;], [&quot;a&quot;, &quot;?&quot;]], &quot;output&quot;: [[&quot;c&quot;, &quot;x&quot;], [&quot;a&quot;, &quot;?&quot;]], &quot;name&quot;: &quot;array with two keys&quot; }
</span><span class="cx"> ].forEach((val) =&gt; {
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsurlurlsearchparamssortexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/url/urlsearchparams-sort-expected.txt (211619 => 211620)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/url/urlsearchparams-sort-expected.txt        2017-02-03 04:50:04 UTC (rev 211619)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/url/urlsearchparams-sort-expected.txt        2017-02-03 06:20:56 UTC (rev 211620)
</span><span class="lines">@@ -7,4 +7,6 @@
</span><span class="cx"> PASS URL parse and sort: ffi&amp;🌈 
</span><span class="cx"> PASS Parse and sort: é&amp;e�&amp;é 
</span><span class="cx"> PASS URL parse and sort: é&amp;e�&amp;é 
</span><ins>+PASS Parse and sort: z=z&amp;a=a&amp;z=y&amp;a=b&amp;z=x&amp;a=c&amp;z=w&amp;a=d&amp;z=v&amp;a=e&amp;z=u&amp;a=f&amp;z=t&amp;a=g 
+PASS URL parse and sort: z=z&amp;a=a&amp;z=y&amp;a=b&amp;z=x&amp;a=c&amp;z=w&amp;a=d&amp;z=v&amp;a=e&amp;z=u&amp;a=f&amp;z=t&amp;a=g 
</ins><span class="cx"> 
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsurlurlsearchparamssorthtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/url/urlsearchparams-sort.html (211619 => 211620)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/url/urlsearchparams-sort.html        2017-02-03 04:50:04 UTC (rev 211619)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/url/urlsearchparams-sort.html        2017-02-03 06:20:56 UTC (rev 211620)
</span><span class="lines">@@ -20,6 +20,10 @@
</span><span class="cx">   {
</span><span class="cx">     &quot;input&quot;: &quot;é&amp;e\uFFFD&amp;e\u0301&quot;,
</span><span class="cx">     &quot;output&quot;: [[&quot;e\u0301&quot;, &quot;&quot;], [&quot;e\uFFFD&quot;, &quot;&quot;], [&quot;é&quot;, &quot;&quot;]]
</span><ins>+  },
+  {
+    &quot;input&quot;: &quot;z=z&amp;a=a&amp;z=y&amp;a=b&amp;z=x&amp;a=c&amp;z=w&amp;a=d&amp;z=v&amp;a=e&amp;z=u&amp;a=f&amp;z=t&amp;a=g&quot;,
+    &quot;output&quot;: [[&quot;a&quot;, &quot;a&quot;], [&quot;a&quot;, &quot;b&quot;], [&quot;a&quot;, &quot;c&quot;], [&quot;a&quot;, &quot;d&quot;], [&quot;a&quot;, &quot;e&quot;], [&quot;a&quot;, &quot;f&quot;], [&quot;a&quot;, &quot;g&quot;], [&quot;z&quot;, &quot;z&quot;], [&quot;z&quot;, &quot;y&quot;], [&quot;z&quot;, &quot;x&quot;], [&quot;z&quot;, &quot;w&quot;], [&quot;z&quot;, &quot;v&quot;], [&quot;z&quot;, &quot;u&quot;], [&quot;z&quot;, &quot;t&quot;]]
</ins><span class="cx">   }
</span><span class="cx"> ].forEach((val) =&gt; {
</span><span class="cx">   test(() =&gt; {
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsurlurltestdatajson"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/url/urltestdata.json (211619 => 211620)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/url/urltestdata.json        2017-02-03 04:50:04 UTC (rev 211619)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/url/urltestdata.json        2017-02-03 06:20:56 UTC (rev 211620)
</span><span class="lines">@@ -553,7 +553,7 @@
</span><span class="cx">   {
</span><span class="cx">     &quot;input&quot;: &quot;foo://&quot;,
</span><span class="cx">     &quot;base&quot;: &quot;http://example.org/foo/bar&quot;,
</span><del>-    &quot;href&quot;: &quot;foo:///&quot;,
</del><ins>+    &quot;href&quot;: &quot;foo://&quot;,
</ins><span class="cx">     &quot;origin&quot;: &quot;null&quot;,
</span><span class="cx">     &quot;protocol&quot;: &quot;foo:&quot;,
</span><span class="cx">     &quot;username&quot;: &quot;&quot;,
</span><span class="lines">@@ -561,7 +561,7 @@
</span><span class="cx">     &quot;host&quot;: &quot;&quot;,
</span><span class="cx">     &quot;hostname&quot;: &quot;&quot;,
</span><span class="cx">     &quot;port&quot;: &quot;&quot;,
</span><del>-    &quot;pathname&quot;: &quot;/&quot;,
</del><ins>+    &quot;pathname&quot;: &quot;&quot;,
</ins><span class="cx">     &quot;search&quot;: &quot;&quot;,
</span><span class="cx">     &quot;hash&quot;: &quot;&quot;
</span><span class="cx">   },
</span><span class="lines">@@ -3548,6 +3548,17 @@
</span><span class="cx">     &quot;base&quot;: &quot;http://other.com/&quot;,
</span><span class="cx">     &quot;failure&quot;: true
</span><span class="cx">   },
</span><ins>+  &quot;U+FFFD is disallowed&quot;,
+  {
+    &quot;input&quot;: &quot;https://\ufffd&quot;,
+    &quot;base&quot;: &quot;about:blank&quot;,
+    &quot;failure&quot;: true
+  },
+  {
+    &quot;input&quot;: &quot;https://%EF%BF%BD&quot;,
+    &quot;base&quot;: &quot;about:blank&quot;,
+    &quot;failure&quot;: true
+  },
</ins><span class="cx">   &quot;Test name prepping, fullwidth input should be converted to ASCII and NOT IDN-ized. This is 'Go' in fullwidth UTF-8/UTF-16.&quot;,
</span><span class="cx">   {
</span><span class="cx">     &quot;input&quot;: &quot;http://Go.com&quot;,
</span><span class="lines">@@ -4256,22 +4267,102 @@
</span><span class="cx">     &quot;search&quot;: &quot;&quot;,
</span><span class="cx">     &quot;hash&quot;: &quot;&quot;
</span><span class="cx">   },
</span><del>-  &quot;# unknown schemes and non-ASCII domains&quot;,
</del><ins>+  &quot;# unknown schemes and their hosts&quot;,
</ins><span class="cx">   {
</span><span class="cx">     &quot;input&quot;: &quot;sc://ñ.test/&quot;,
</span><span class="cx">     &quot;base&quot;: &quot;about:blank&quot;,
</span><del>-    &quot;href&quot;: &quot;sc://xn--ida.test/&quot;,
</del><ins>+    &quot;href&quot;: &quot;sc://%C3%B1.test/&quot;,
</ins><span class="cx">     &quot;origin&quot;: &quot;null&quot;,
</span><span class="cx">     &quot;protocol&quot;: &quot;sc:&quot;,
</span><span class="cx">     &quot;username&quot;: &quot;&quot;,
</span><span class="cx">     &quot;password&quot;: &quot;&quot;,
</span><del>-    &quot;host&quot;: &quot;xn--ida.test&quot;,
-    &quot;hostname&quot;: &quot;xn--ida.test&quot;,
</del><ins>+    &quot;host&quot;: &quot;%C3%B1.test&quot;,
+    &quot;hostname&quot;: &quot;%C3%B1.test&quot;,
</ins><span class="cx">     &quot;port&quot;: &quot;&quot;,
</span><span class="cx">     &quot;pathname&quot;: &quot;/&quot;,
</span><span class="cx">     &quot;search&quot;: &quot;&quot;,
</span><span class="cx">     &quot;hash&quot;: &quot;&quot;
</span><span class="cx">   },
</span><ins>+  {
+    &quot;input&quot;: &quot;sc://\u001F!\&quot;$&amp;'()*+,-.;&lt;=&gt;^_`{|}~/&quot;,
+    &quot;base&quot;: &quot;about:blank&quot;,
+    &quot;href&quot;: &quot;sc://%1F!\&quot;$&amp;'()*+,-.;&lt;=&gt;^_`{|}~/&quot;,
+    &quot;origin&quot;: &quot;null&quot;,
+    &quot;protocol&quot;: &quot;sc:&quot;,
+    &quot;username&quot;: &quot;&quot;,
+    &quot;password&quot;: &quot;&quot;,
+    &quot;host&quot;: &quot;%1F!\&quot;$&amp;'()*+,-.;&lt;=&gt;^_`{|}~&quot;,
+    &quot;hostname&quot;: &quot;%1F!\&quot;$&amp;'()*+,-.;&lt;=&gt;^_`{|}~&quot;,
+    &quot;port&quot;: &quot;&quot;,
+    &quot;pathname&quot;: &quot;/&quot;,
+    &quot;search&quot;: &quot;&quot;,
+    &quot;hash&quot;: &quot;&quot;
+  },
+  {
+    &quot;input&quot;: &quot;sc://\u0000/&quot;,
+    &quot;base&quot;: &quot;about:blank&quot;,
+    &quot;failure&quot;: true
+  },
+  {
+    &quot;input&quot;: &quot;sc:// /&quot;,
+    &quot;base&quot;: &quot;about:blank&quot;,
+    &quot;failure&quot;: true
+  },
+  {
+    &quot;input&quot;: &quot;sc://%/&quot;,
+    &quot;base&quot;: &quot;about:blank&quot;,
+    &quot;failure&quot;: true
+  },
+  {
+    &quot;input&quot;: &quot;sc://@/&quot;,
+    &quot;base&quot;: &quot;about:blank&quot;,
+    &quot;failure&quot;: true
+  },
+  {
+    &quot;input&quot;: &quot;sc://te@s:t@/&quot;,
+    &quot;base&quot;: &quot;about:blank&quot;,
+    &quot;failure&quot;: true
+  },
+  {
+    &quot;input&quot;: &quot;sc://:/&quot;,
+    &quot;base&quot;: &quot;about:blank&quot;,
+    &quot;failure&quot;: true
+  },
+  {
+    &quot;input&quot;: &quot;sc://:12/&quot;,
+    &quot;base&quot;: &quot;about:blank&quot;,
+    &quot;failure&quot;: true
+  },
+  {
+    &quot;input&quot;: &quot;sc://[/&quot;,
+    &quot;base&quot;: &quot;about:blank&quot;,
+    &quot;failure&quot;: true
+  },
+  {
+    &quot;input&quot;: &quot;sc://\\/&quot;,
+    &quot;base&quot;: &quot;about:blank&quot;,
+    &quot;failure&quot;: true
+  },
+  {
+    &quot;input&quot;: &quot;sc://]/&quot;,
+    &quot;base&quot;: &quot;about:blank&quot;,
+    &quot;failure&quot;: true
+  },
+  {
+    &quot;input&quot;: &quot;x&quot;,
+    &quot;base&quot;: &quot;sc://ñ&quot;,
+    &quot;href&quot;: &quot;sc://%C3%B1/x&quot;,
+    &quot;origin&quot;: &quot;null&quot;,
+    &quot;protocol&quot;: &quot;sc:&quot;,
+    &quot;username&quot;: &quot;&quot;,
+    &quot;password&quot;: &quot;&quot;,
+    &quot;host&quot;: &quot;%C3%B1&quot;,
+    &quot;hostname&quot;: &quot;%C3%B1&quot;,
+    &quot;port&quot;: &quot;&quot;,
+    &quot;pathname&quot;: &quot;/x&quot;,
+    &quot;search&quot;: &quot;&quot;,
+    &quot;hash&quot;: &quot;&quot;
+  },
</ins><span class="cx">   &quot;# unknown schemes and backslashes&quot;,
</span><span class="cx">   {
</span><span class="cx">     &quot;input&quot;: &quot;sc:\\../&quot;,
</span><span class="lines">@@ -4304,6 +4395,57 @@
</span><span class="cx">     &quot;search&quot;: &quot;&quot;,
</span><span class="cx">     &quot;hash&quot;: &quot;&quot;
</span><span class="cx">   },
</span><ins>+  &quot;# Hosts and percent-encoding&quot;,
+  {
+    &quot;input&quot;: &quot;ftp://example.com%80/&quot;,
+    &quot;base&quot;: &quot;about:blank&quot;,
+    &quot;failure&quot;: true
+  },
+  {
+    &quot;input&quot;: &quot;ftp://example.com%A0/&quot;,
+    &quot;base&quot;: &quot;about:blank&quot;,
+    &quot;failure&quot;: true
+  },
+  {
+    &quot;input&quot;: &quot;https://example.com%80/&quot;,
+    &quot;base&quot;: &quot;about:blank&quot;,
+    &quot;failure&quot;: true
+  },
+  {
+    &quot;input&quot;: &quot;https://example.com%A0/&quot;,
+    &quot;base&quot;: &quot;about:blank&quot;,
+    &quot;failure&quot;: true
+  },
+  {
+    &quot;input&quot;: &quot;ftp://%e2%98%83&quot;,
+    &quot;base&quot;: &quot;about:blank&quot;,
+    &quot;href&quot;: &quot;ftp://xn--n3h/&quot;,
+    &quot;origin&quot;: &quot;ftp://☃&quot;,
+    &quot;protocol&quot;: &quot;ftp:&quot;,
+    &quot;username&quot;: &quot;&quot;,
+    &quot;password&quot;: &quot;&quot;,
+    &quot;host&quot;: &quot;xn--n3h&quot;,
+    &quot;hostname&quot;: &quot;xn--n3h&quot;,
+    &quot;port&quot;: &quot;&quot;,
+    &quot;pathname&quot;: &quot;/&quot;,
+    &quot;search&quot;: &quot;&quot;,
+    &quot;hash&quot;: &quot;&quot;
+  },
+  {
+    &quot;input&quot;: &quot;https://%e2%98%83&quot;,
+    &quot;base&quot;: &quot;about:blank&quot;,
+    &quot;href&quot;: &quot;https://xn--n3h/&quot;,
+    &quot;origin&quot;: &quot;https://☃&quot;,
+    &quot;protocol&quot;: &quot;https:&quot;,
+    &quot;username&quot;: &quot;&quot;,
+    &quot;password&quot;: &quot;&quot;,
+    &quot;host&quot;: &quot;xn--n3h&quot;,
+    &quot;hostname&quot;: &quot;xn--n3h&quot;,
+    &quot;port&quot;: &quot;&quot;,
+    &quot;pathname&quot;: &quot;/&quot;,
+    &quot;search&quot;: &quot;&quot;,
+    &quot;hash&quot;: &quot;&quot;
+  },
</ins><span class="cx">   &quot;# tests from jsdom/whatwg-url designed for code coverage&quot;,
</span><span class="cx">   {
</span><span class="cx">     &quot;input&quot;: &quot;http://127.0.0.1:10100/relative_import.html&quot;,
</span><span class="lines">@@ -4625,6 +4767,35 @@
</span><span class="cx">     &quot;search&quot;: &quot;&quot;,
</span><span class="cx">     &quot;hash&quot;: &quot;&quot;
</span><span class="cx">   },
</span><ins>+  &quot;# file URLs containing percent-encoded Windows drive letters (shouldn't work)&quot;,
+  {
+    &quot;input&quot;: &quot;file:///C%3A/&quot;,
+    &quot;base&quot;: &quot;about:blank&quot;,
+    &quot;href&quot;: &quot;file:///C%3A/&quot;,
+    &quot;protocol&quot;: &quot;file:&quot;,
+    &quot;username&quot;: &quot;&quot;,
+    &quot;password&quot;: &quot;&quot;,
+    &quot;host&quot;: &quot;&quot;,
+    &quot;hostname&quot;: &quot;&quot;,
+    &quot;port&quot;: &quot;&quot;,
+    &quot;pathname&quot;: &quot;/C%3A/&quot;,
+    &quot;search&quot;: &quot;&quot;,
+    &quot;hash&quot;: &quot;&quot;
+  },
+  {
+    &quot;input&quot;: &quot;file:///C%7C/&quot;,
+    &quot;base&quot;: &quot;about:blank&quot;,
+    &quot;href&quot;: &quot;file:///C%7C/&quot;,
+    &quot;protocol&quot;: &quot;file:&quot;,
+    &quot;username&quot;: &quot;&quot;,
+    &quot;password&quot;: &quot;&quot;,
+    &quot;host&quot;: &quot;&quot;,
+    &quot;hostname&quot;: &quot;&quot;,
+    &quot;port&quot;: &quot;&quot;,
+    &quot;pathname&quot;: &quot;/C%7C/&quot;,
+    &quot;search&quot;: &quot;&quot;,
+    &quot;hash&quot;: &quot;&quot;
+  },
</ins><span class="cx">   &quot;# file URLs relative to other file URLs (via https://github.com/jsdom/whatwg-url/pull/60)&quot;,
</span><span class="cx">   {
</span><span class="cx">     &quot;input&quot;: &quot;pix/submit.gif&quot;,
</span><span class="lines">@@ -4754,5 +4925,342 @@
</span><span class="cx">     &quot;pathname&quot;: &quot;/&quot;,
</span><span class="cx">     &quot;search&quot;: &quot;&quot;,
</span><span class="cx">     &quot;hash&quot;: &quot;&quot;
</span><ins>+  },
+  &quot;# Empty host&quot;,
+  {
+    &quot;input&quot;: &quot;http://?&quot;,
+    &quot;base&quot;: &quot;about:blank&quot;,
+    &quot;failure&quot;: &quot;true&quot;
+  },
+  {
+    &quot;input&quot;: &quot;http://#&quot;,
+    &quot;base&quot;: &quot;about:blank&quot;,
+    &quot;failure&quot;: &quot;true&quot;
+  },
+  &quot;# Non-special-URL path tests&quot;,
+  {
+    &quot;input&quot;: &quot;sc://ñ&quot;,
+    &quot;base&quot;: &quot;about:blank&quot;,
+    &quot;href&quot;: &quot;sc://%C3%B1&quot;,
+    &quot;origin&quot;: &quot;null&quot;,
+    &quot;protocol&quot;: &quot;sc:&quot;,
+    &quot;username&quot;: &quot;&quot;,
+    &quot;password&quot;: &quot;&quot;,
+    &quot;host&quot;: &quot;%C3%B1&quot;,
+    &quot;hostname&quot;: &quot;%C3%B1&quot;,
+    &quot;port&quot;: &quot;&quot;,
+    &quot;pathname&quot;: &quot;&quot;,
+    &quot;search&quot;: &quot;&quot;,
+    &quot;hash&quot;: &quot;&quot;
+  },
+  {
+    &quot;input&quot;: &quot;sc://ñ?x&quot;,
+    &quot;base&quot;: &quot;about:blank&quot;,
+    &quot;href&quot;: &quot;sc://%C3%B1?x&quot;,
+    &quot;origin&quot;: &quot;null&quot;,
+    &quot;protocol&quot;: &quot;sc:&quot;,
+    &quot;username&quot;: &quot;&quot;,
+    &quot;password&quot;: &quot;&quot;,
+    &quot;host&quot;: &quot;%C3%B1&quot;,
+    &quot;hostname&quot;: &quot;%C3%B1&quot;,
+    &quot;port&quot;: &quot;&quot;,
+    &quot;pathname&quot;: &quot;&quot;,
+    &quot;search&quot;: &quot;?x&quot;,
+    &quot;hash&quot;: &quot;&quot;
+  },
+  {
+    &quot;input&quot;: &quot;sc://ñ#x&quot;,
+    &quot;base&quot;: &quot;about:blank&quot;,
+    &quot;href&quot;: &quot;sc://%C3%B1#x&quot;,
+    &quot;origin&quot;: &quot;null&quot;,
+    &quot;protocol&quot;: &quot;sc:&quot;,
+    &quot;username&quot;: &quot;&quot;,
+    &quot;password&quot;: &quot;&quot;,
+    &quot;host&quot;: &quot;%C3%B1&quot;,
+    &quot;hostname&quot;: &quot;%C3%B1&quot;,
+    &quot;port&quot;: &quot;&quot;,
+    &quot;pathname&quot;: &quot;&quot;,
+    &quot;search&quot;: &quot;&quot;,
+    &quot;hash&quot;: &quot;#x&quot;
+  },
+  {
+    &quot;input&quot;: &quot;#x&quot;,
+    &quot;base&quot;: &quot;sc://ñ&quot;,
+    &quot;href&quot;: &quot;sc://%C3%B1#x&quot;,
+    &quot;origin&quot;: &quot;null&quot;,
+    &quot;protocol&quot;: &quot;sc:&quot;,
+    &quot;username&quot;: &quot;&quot;,
+    &quot;password&quot;: &quot;&quot;,
+    &quot;host&quot;: &quot;%C3%B1&quot;,
+    &quot;hostname&quot;: &quot;%C3%B1&quot;,
+    &quot;port&quot;: &quot;&quot;,
+    &quot;pathname&quot;: &quot;&quot;,
+    &quot;search&quot;: &quot;&quot;,
+    &quot;hash&quot;: &quot;#x&quot;
+  },
+  {
+    &quot;input&quot;: &quot;?x&quot;,
+    &quot;base&quot;: &quot;sc://ñ&quot;,
+    &quot;href&quot;: &quot;sc://%C3%B1?x&quot;,
+    &quot;origin&quot;: &quot;null&quot;,
+    &quot;protocol&quot;: &quot;sc:&quot;,
+    &quot;username&quot;: &quot;&quot;,
+    &quot;password&quot;: &quot;&quot;,
+    &quot;host&quot;: &quot;%C3%B1&quot;,
+    &quot;hostname&quot;: &quot;%C3%B1&quot;,
+    &quot;port&quot;: &quot;&quot;,
+    &quot;pathname&quot;: &quot;&quot;,
+    &quot;search&quot;: &quot;?x&quot;,
+    &quot;hash&quot;: &quot;&quot;
+  },
+  {
+    &quot;input&quot;: &quot;sc://?&quot;,
+    &quot;base&quot;: &quot;about:blank&quot;,
+    &quot;href&quot;: &quot;sc://?&quot;,
+    &quot;protocol&quot;: &quot;sc:&quot;,
+    &quot;username&quot;: &quot;&quot;,
+    &quot;password&quot;: &quot;&quot;,
+    &quot;host&quot;: &quot;&quot;,
+    &quot;hostname&quot;: &quot;&quot;,
+    &quot;port&quot;: &quot;&quot;,
+    &quot;pathname&quot;: &quot;&quot;,
+    &quot;search&quot;: &quot;&quot;,
+    &quot;hash&quot;: &quot;&quot;
+  },
+  {
+    &quot;input&quot;: &quot;sc://#&quot;,
+    &quot;base&quot;: &quot;about:blank&quot;,
+    &quot;href&quot;: &quot;sc://#&quot;,
+    &quot;protocol&quot;: &quot;sc:&quot;,
+    &quot;username&quot;: &quot;&quot;,
+    &quot;password&quot;: &quot;&quot;,
+    &quot;host&quot;: &quot;&quot;,
+    &quot;hostname&quot;: &quot;&quot;,
+    &quot;port&quot;: &quot;&quot;,
+    &quot;pathname&quot;: &quot;&quot;,
+    &quot;search&quot;: &quot;&quot;,
+    &quot;hash&quot;: &quot;&quot;
+  },
+  {
+    &quot;input&quot;: &quot;///&quot;,
+    &quot;base&quot;: &quot;sc://x/&quot;,
+    &quot;href&quot;: &quot;sc:///&quot;,
+    &quot;protocol&quot;: &quot;sc:&quot;,
+    &quot;username&quot;: &quot;&quot;,
+    &quot;password&quot;: &quot;&quot;,
+    &quot;host&quot;: &quot;&quot;,
+    &quot;hostname&quot;: &quot;&quot;,
+    &quot;port&quot;: &quot;&quot;,
+    &quot;pathname&quot;: &quot;/&quot;,
+    &quot;search&quot;: &quot;&quot;,
+    &quot;hash&quot;: &quot;&quot;
+  },
+  {
+    &quot;input&quot;: &quot;////&quot;,
+    &quot;base&quot;: &quot;sc://x/&quot;,
+    &quot;href&quot;: &quot;sc:////&quot;,
+    &quot;protocol&quot;: &quot;sc:&quot;,
+    &quot;username&quot;: &quot;&quot;,
+    &quot;password&quot;: &quot;&quot;,
+    &quot;host&quot;: &quot;&quot;,
+    &quot;hostname&quot;: &quot;&quot;,
+    &quot;port&quot;: &quot;&quot;,
+    &quot;pathname&quot;: &quot;//&quot;,
+    &quot;search&quot;: &quot;&quot;,
+    &quot;hash&quot;: &quot;&quot;
+  },
+  {
+    &quot;input&quot;: &quot;////x/&quot;,
+    &quot;base&quot;: &quot;sc://x/&quot;,
+    &quot;href&quot;: &quot;sc:////x/&quot;,
+    &quot;protocol&quot;: &quot;sc:&quot;,
+    &quot;username&quot;: &quot;&quot;,
+    &quot;password&quot;: &quot;&quot;,
+    &quot;host&quot;: &quot;&quot;,
+    &quot;hostname&quot;: &quot;&quot;,
+    &quot;port&quot;: &quot;&quot;,
+    &quot;pathname&quot;: &quot;//x/&quot;,
+    &quot;search&quot;: &quot;&quot;,
+    &quot;hash&quot;: &quot;&quot;
+  },
+  {
+    &quot;input&quot;: &quot;tftp://foobar.com/someconfig;mode=netascii&quot;,
+    &quot;base&quot;: &quot;about:blank&quot;,
+    &quot;href&quot;: &quot;tftp://foobar.com/someconfig;mode=netascii&quot;,
+    &quot;origin&quot;: &quot;null&quot;,
+    &quot;protocol&quot;: &quot;tftp:&quot;,
+    &quot;username&quot;: &quot;&quot;,
+    &quot;password&quot;: &quot;&quot;,
+    &quot;host&quot;: &quot;foobar.com&quot;,
+    &quot;hostname&quot;: &quot;foobar.com&quot;,
+    &quot;port&quot;: &quot;&quot;,
+    &quot;pathname&quot;: &quot;/someconfig;mode=netascii&quot;,
+    &quot;search&quot;: &quot;&quot;,
+    &quot;hash&quot;: &quot;&quot;
+  },
+  {
+    &quot;input&quot;: &quot;telnet://user:pass@foobar.com:23/&quot;,
+    &quot;base&quot;: &quot;about:blank&quot;,
+    &quot;href&quot;: &quot;telnet://user:pass@foobar.com:23/&quot;,
+    &quot;origin&quot;: &quot;null&quot;,
+    &quot;protocol&quot;: &quot;telnet:&quot;,
+    &quot;username&quot;: &quot;user&quot;,
+    &quot;password&quot;: &quot;pass&quot;,
+    &quot;host&quot;: &quot;foobar.com:23&quot;,
+    &quot;hostname&quot;: &quot;foobar.com&quot;,
+    &quot;port&quot;: &quot;23&quot;,
+    &quot;pathname&quot;: &quot;/&quot;,
+    &quot;search&quot;: &quot;&quot;,
+    &quot;hash&quot;: &quot;&quot;
+  },
+  {
+    &quot;input&quot;: &quot;ut2004://10.10.10.10:7777/Index.ut2&quot;,
+    &quot;base&quot;: &quot;about:blank&quot;,
+    &quot;href&quot;: &quot;ut2004://10.10.10.10:7777/Index.ut2&quot;,
+    &quot;origin&quot;: &quot;null&quot;,
+    &quot;protocol&quot;: &quot;ut2004:&quot;,
+    &quot;username&quot;: &quot;&quot;,
+    &quot;password&quot;: &quot;&quot;,
+    &quot;host&quot;: &quot;10.10.10.10:7777&quot;,
+    &quot;hostname&quot;: &quot;10.10.10.10&quot;,
+    &quot;port&quot;: &quot;7777&quot;,
+    &quot;pathname&quot;: &quot;/Index.ut2&quot;,
+    &quot;search&quot;: &quot;&quot;,
+    &quot;hash&quot;: &quot;&quot;
+  },
+  {
+    &quot;input&quot;: &quot;redis://foo:bar@somehost:6379/0?baz=bam&amp;qux=baz&quot;,
+    &quot;base&quot;: &quot;about:blank&quot;,
+    &quot;href&quot;: &quot;redis://foo:bar@somehost:6379/0?baz=bam&amp;qux=baz&quot;,
+    &quot;origin&quot;: &quot;null&quot;,
+    &quot;protocol&quot;: &quot;redis:&quot;,
+    &quot;username&quot;: &quot;foo&quot;,
+    &quot;password&quot;: &quot;bar&quot;,
+    &quot;host&quot;: &quot;somehost:6379&quot;,
+    &quot;hostname&quot;: &quot;somehost&quot;,
+    &quot;port&quot;: &quot;6379&quot;,
+    &quot;pathname&quot;: &quot;/0&quot;,
+    &quot;search&quot;: &quot;?baz=bam&amp;qux=baz&quot;,
+    &quot;hash&quot;: &quot;&quot;
+  },
+  {
+    &quot;input&quot;: &quot;rsync://foo@host:911/sup&quot;,
+    &quot;base&quot;: &quot;about:blank&quot;,
+    &quot;href&quot;: &quot;rsync://foo@host:911/sup&quot;,
+    &quot;origin&quot;: &quot;null&quot;,
+    &quot;protocol&quot;: &quot;rsync:&quot;,
+    &quot;username&quot;: &quot;foo&quot;,
+    &quot;password&quot;: &quot;&quot;,
+    &quot;host&quot;: &quot;host:911&quot;,
+    &quot;hostname&quot;: &quot;host&quot;,
+    &quot;port&quot;: &quot;911&quot;,
+    &quot;pathname&quot;: &quot;/sup&quot;,
+    &quot;search&quot;: &quot;&quot;,
+    &quot;hash&quot;: &quot;&quot;
+  },
+  {
+    &quot;input&quot;: &quot;git://github.com/foo/bar.git&quot;,
+    &quot;base&quot;: &quot;about:blank&quot;,
+    &quot;href&quot;: &quot;git://github.com/foo/bar.git&quot;,
+    &quot;origin&quot;: &quot;null&quot;,
+    &quot;protocol&quot;: &quot;git:&quot;,
+    &quot;username&quot;: &quot;&quot;,
+    &quot;password&quot;: &quot;&quot;,
+    &quot;host&quot;: &quot;github.com&quot;,
+    &quot;hostname&quot;: &quot;github.com&quot;,
+    &quot;port&quot;: &quot;&quot;,
+    &quot;pathname&quot;: &quot;/foo/bar.git&quot;,
+    &quot;search&quot;: &quot;&quot;,
+    &quot;hash&quot;: &quot;&quot;
+  },
+  {
+    &quot;input&quot;: &quot;irc://myserver.com:6999/channel?passwd&quot;,
+    &quot;base&quot;: &quot;about:blank&quot;,
+    &quot;href&quot;: &quot;irc://myserver.com:6999/channel?passwd&quot;,
+    &quot;origin&quot;: &quot;null&quot;,
+    &quot;protocol&quot;: &quot;irc:&quot;,
+    &quot;username&quot;: &quot;&quot;,
+    &quot;password&quot;: &quot;&quot;,
+    &quot;host&quot;: &quot;myserver.com:6999&quot;,
+    &quot;hostname&quot;: &quot;myserver.com&quot;,
+    &quot;port&quot;: &quot;6999&quot;,
+    &quot;pathname&quot;: &quot;/channel&quot;,
+    &quot;search&quot;: &quot;?passwd&quot;,
+    &quot;hash&quot;: &quot;&quot;
+  },
+  {
+    &quot;input&quot;: &quot;dns://fw.example.org:9999/foo.bar.org?type=TXT&quot;,
+    &quot;base&quot;: &quot;about:blank&quot;,
+    &quot;href&quot;: &quot;dns://fw.example.org:9999/foo.bar.org?type=TXT&quot;,
+    &quot;origin&quot;: &quot;null&quot;,
+    &quot;protocol&quot;: &quot;dns:&quot;,
+    &quot;username&quot;: &quot;&quot;,
+    &quot;password&quot;: &quot;&quot;,
+    &quot;host&quot;: &quot;fw.example.org:9999&quot;,
+    &quot;hostname&quot;: &quot;fw.example.org&quot;,
+    &quot;port&quot;: &quot;9999&quot;,
+    &quot;pathname&quot;: &quot;/foo.bar.org&quot;,
+    &quot;search&quot;: &quot;?type=TXT&quot;,
+    &quot;hash&quot;: &quot;&quot;
+  },
+  {
+    &quot;input&quot;: &quot;ldap://localhost:389/ou=People,o=JNDITutorial&quot;,
+    &quot;base&quot;: &quot;about:blank&quot;,
+    &quot;href&quot;: &quot;ldap://localhost:389/ou=People,o=JNDITutorial&quot;,
+    &quot;origin&quot;: &quot;null&quot;,
+    &quot;protocol&quot;: &quot;ldap:&quot;,
+    &quot;username&quot;: &quot;&quot;,
+    &quot;password&quot;: &quot;&quot;,
+    &quot;host&quot;: &quot;localhost:389&quot;,
+    &quot;hostname&quot;: &quot;localhost&quot;,
+    &quot;port&quot;: &quot;389&quot;,
+    &quot;pathname&quot;: &quot;/ou=People,o=JNDITutorial&quot;,
+    &quot;search&quot;: &quot;&quot;,
+    &quot;hash&quot;: &quot;&quot;
+  },
+  {
+    &quot;input&quot;: &quot;git+https://github.com/foo/bar&quot;,
+    &quot;base&quot;: &quot;about:blank&quot;,
+    &quot;href&quot;: &quot;git+https://github.com/foo/bar&quot;,
+    &quot;origin&quot;: &quot;null&quot;,
+    &quot;protocol&quot;: &quot;git+https:&quot;,
+    &quot;username&quot;: &quot;&quot;,
+    &quot;password&quot;: &quot;&quot;,
+    &quot;host&quot;: &quot;github.com&quot;,
+    &quot;hostname&quot;: &quot;github.com&quot;,
+    &quot;port&quot;: &quot;&quot;,
+    &quot;pathname&quot;: &quot;/foo/bar&quot;,
+    &quot;search&quot;: &quot;&quot;,
+    &quot;hash&quot;: &quot;&quot;
+  },
+  {
+    &quot;input&quot;: &quot;urn:ietf:rfc:2648&quot;,
+    &quot;base&quot;: &quot;about:blank&quot;,
+    &quot;href&quot;: &quot;urn:ietf:rfc:2648&quot;,
+    &quot;origin&quot;: &quot;null&quot;,
+    &quot;protocol&quot;: &quot;urn:&quot;,
+    &quot;username&quot;: &quot;&quot;,
+    &quot;password&quot;: &quot;&quot;,
+    &quot;host&quot;: &quot;&quot;,
+    &quot;hostname&quot;: &quot;&quot;,
+    &quot;port&quot;: &quot;&quot;,
+    &quot;pathname&quot;: &quot;ietf:rfc:2648&quot;,
+    &quot;search&quot;: &quot;&quot;,
+    &quot;hash&quot;: &quot;&quot;
+  },
+  {
+    &quot;input&quot;: &quot;tag:joe@example.org,2001:foo/bar&quot;,
+    &quot;base&quot;: &quot;about:blank&quot;,
+    &quot;href&quot;: &quot;tag:joe@example.org,2001:foo/bar&quot;,
+    &quot;origin&quot;: &quot;null&quot;,
+    &quot;protocol&quot;: &quot;tag:&quot;,
+    &quot;username&quot;: &quot;&quot;,
+    &quot;password&quot;: &quot;&quot;,
+    &quot;host&quot;: &quot;&quot;,
+    &quot;hostname&quot;: &quot;&quot;,
+    &quot;port&quot;: &quot;&quot;,
+    &quot;pathname&quot;: &quot;joe@example.org,2001:foo/bar&quot;,
+    &quot;search&quot;: &quot;&quot;,
+    &quot;hash&quot;: &quot;&quot;
</ins><span class="cx">   }
</span><span class="cx"> ]
</span></span></pre>
</div>
</div>

</body>
</html>