On 10/29/2014 09:14 PM, Sam Ruby wrote:
On 10/29/14 5:55 PM, Valentin Gosu wrote:
On 30 October 2014 02:47, Sam Ruby <[email protected]
<mailto:[email protected]>> wrote:

    My assertion is that the steps I have provided cover these exact
    same corner cases and parsing peculiarities, and I have running code
    and published test results to back up my assertion.  Can you
    identify a single corner case that isn't covered (other than the
    encoding changes that I already have noted as todos in the document)?

One I can think of is
var url = new URL("http://localhost/";);
url.host = "example.com:1234#hello <http://example.com:1234#hello>"
//hostname = example.com <http://example.com>, port = 1234
or even
url.host = "example.com:abcd" // hostname = example.com
<http://example.com>, port = -1

The intertwingly implementation doesn't explicitly cover this case from
what I can tell (althought the end result might be the same).

Todo added:

https://github.com/rubys/url/commit/484bdec6a51ed7c7956f225ba5e8e28151ac1129

I've finally gotten around to implementing setters. Early results are available here:

http://intertwingly.net/projects/pegurl/url.html#setter-rules

I'm surprised that some setters accept trailing garbage, some percent encode it, and some truncate it. I hope that the proposed spec text makes this clearer.

I have an initial set of test cases:

https://github.com/rubys/url/blob/peg.js/reference-implementation/test/urlsettest.yml

Feel free to suggest more.

I've also produced a demo of a reference implementation that shows the rules defined by this spec in action, and compares it to what the browser does:

http://intertwingly.net/projects/pegurl/liveview3.html

Future plans are to compare browser results against the spec and against each other.

- Sam Ruby

Reply via email to