mirror of
https://github.com/LadybirdBrowser/ladybird
synced 2026-04-25 17:25:08 +02:00
Add `ECMAScriptRegex`, LibRegex's C++ facade for ECMAScript regexes. The facade owns compilation, execution, captures, named groups, and error translation for the Rust backend, which lets callers stop depending on the legacy parser and matcher types directly. Use it in the remaining non-LibJS callers: URLPattern, HTML input pattern handling, and the places in LibHTTP that only needed token validation. Where a full regex engine was unnecessary, replace those call sites with direct character checks. Also update focused LibURL, LibHTTP, and WPT coverage for the migrated callers and corrected surrogate handling.
408 lines
27 KiB
Plaintext
408 lines
27 KiB
Plaintext
Harness status: OK
|
||
|
||
Found 394 tests
|
||
|
||
394 Pass
|
||
Pass Loading data…
|
||
Pass Parsing origin: <http://example .
|
||
org> against <http://example.org/foo/bar>
|
||
Pass Parsing origin: <http://user:pass@foo:21/bar;par?b#c> against <http://example.org/foo/bar>
|
||
Pass Parsing origin: <https://test:@test> against <about:blank>
|
||
Pass Parsing origin: <https://:@test> against <about:blank>
|
||
Pass Parsing origin: <non-special://test:@test/x> against <about:blank>
|
||
Pass Parsing origin: <non-special://:@test/x> against <about:blank>
|
||
Pass Parsing origin: <http:foo.com> against <http://example.org/foo/bar>
|
||
Pass Parsing origin: < :foo.com
|
||
> against <http://example.org/foo/bar>
|
||
Pass Parsing origin: < foo.com > against <http://example.org/foo/bar>
|
||
Pass Parsing origin: <a: foo.com> against <http://example.org/foo/bar>
|
||
Pass Parsing origin: <http://f:21/ b ? d # e > against <http://example.org/foo/bar>
|
||
Pass Parsing origin: <http://f:/c> against <http://example.org/foo/bar>
|
||
Pass Parsing origin: <http://f:0/c> against <http://example.org/foo/bar>
|
||
Pass Parsing origin: <http://f:00000000000000/c> against <http://example.org/foo/bar>
|
||
Pass Parsing origin: <http://f:00000000000000000000080/c> against <http://example.org/foo/bar>
|
||
Pass Parsing origin: <http://f:
|
||
/c> against <http://example.org/foo/bar>
|
||
Pass Parsing origin: <> against <http://example.org/foo/bar>
|
||
Pass Parsing origin: < > against <http://example.org/foo/bar>
|
||
Pass Parsing origin: <:foo.com/> against <http://example.org/foo/bar>
|
||
Pass Parsing origin: <:foo.com\> against <http://example.org/foo/bar>
|
||
Pass Parsing origin: <:> against <http://example.org/foo/bar>
|
||
Pass Parsing origin: <:a> against <http://example.org/foo/bar>
|
||
Pass Parsing origin: <:/> against <http://example.org/foo/bar>
|
||
Pass Parsing origin: <:\> against <http://example.org/foo/bar>
|
||
Pass Parsing origin: <:#> against <http://example.org/foo/bar>
|
||
Pass Parsing origin: <#> against <http://example.org/foo/bar>
|
||
Pass Parsing origin: <#/> against <http://example.org/foo/bar>
|
||
Pass Parsing origin: <#\> against <http://example.org/foo/bar>
|
||
Pass Parsing origin: <#;?> against <http://example.org/foo/bar>
|
||
Pass Parsing origin: <?> against <http://example.org/foo/bar>
|
||
Pass Parsing origin: </> against <http://example.org/foo/bar>
|
||
Pass Parsing origin: <:23> against <http://example.org/foo/bar>
|
||
Pass Parsing origin: </:23> against <http://example.org/foo/bar>
|
||
Pass Parsing origin: <\x> against <http://example.org/foo/bar>
|
||
Pass Parsing origin: <\\x\hello> against <http://example.org/foo/bar>
|
||
Pass Parsing origin: <::> against <http://example.org/foo/bar>
|
||
Pass Parsing origin: <::23> against <http://example.org/foo/bar>
|
||
Pass Parsing origin: <foo://> against <http://example.org/foo/bar>
|
||
Pass Parsing origin: <http://a:b@c:29/d> against <http://example.org/foo/bar>
|
||
Pass Parsing origin: <http::@c:29> against <http://example.org/foo/bar>
|
||
Pass Parsing origin: <http://&a:foo(b]c@d:2/> against <http://example.org/foo/bar>
|
||
Pass Parsing origin: <http://::@c@d:2> against <http://example.org/foo/bar>
|
||
Pass Parsing origin: <http://foo.com:b@d/> against <http://example.org/foo/bar>
|
||
Pass Parsing origin: <http://foo.com/\@> against <http://example.org/foo/bar>
|
||
Pass Parsing origin: <http:\\foo.com\> against <http://example.org/foo/bar>
|
||
Pass Parsing origin: <http:\\a\b:c\d@foo.com\> against <http://example.org/foo/bar>
|
||
Pass Parsing origin: <http://a:b@c\> against <about:blank>
|
||
Pass Parsing origin: <ws://a@b\c> against <about:blank>
|
||
Pass Parsing origin: <foo:/> against <http://example.org/foo/bar>
|
||
Pass Parsing origin: <foo:/bar.com/> against <http://example.org/foo/bar>
|
||
Pass Parsing origin: <foo://///////> against <http://example.org/foo/bar>
|
||
Pass Parsing origin: <foo://///////bar.com/> against <http://example.org/foo/bar>
|
||
Pass Parsing origin: <foo:////://///> against <http://example.org/foo/bar>
|
||
Pass Parsing origin: <c:/foo> against <http://example.org/foo/bar>
|
||
Pass Parsing origin: <//foo/bar> against <http://example.org/foo/bar>
|
||
Pass Parsing origin: <http://foo/path;a??e#f#g> against <http://example.org/foo/bar>
|
||
Pass Parsing origin: <http://foo/abcd?efgh?ijkl> against <http://example.org/foo/bar>
|
||
Pass Parsing origin: <http://foo/abcd#foo?bar> against <http://example.org/foo/bar>
|
||
Pass Parsing origin: <[61:24:74]:98> against <http://example.org/foo/bar>
|
||
Pass Parsing origin: <http:[61:27]/:foo> against <http://example.org/foo/bar>
|
||
Pass Parsing origin: <http://[2001::1]> against <http://example.org/foo/bar>
|
||
Pass Parsing origin: <http://[::127.0.0.1]> against <http://example.org/foo/bar>
|
||
Pass Parsing origin: <http://[0:0:0:0:0:0:13.1.68.3]> against <http://example.org/foo/bar>
|
||
Pass Parsing origin: <http://[2001::1]:80> against <http://example.org/foo/bar>
|
||
Pass Parsing origin: <http:/example.com/> against <http://example.org/foo/bar>
|
||
Pass Parsing origin: <ftp:/example.com/> against <http://example.org/foo/bar>
|
||
Pass Parsing origin: <https:/example.com/> against <http://example.org/foo/bar>
|
||
Pass Parsing origin: <madeupscheme:/example.com/> against <http://example.org/foo/bar>
|
||
Pass Parsing origin: <ftps:/example.com/> against <http://example.org/foo/bar>
|
||
Pass Parsing origin: <gopher:/example.com/> against <http://example.org/foo/bar>
|
||
Pass Parsing origin: <ws:/example.com/> against <http://example.org/foo/bar>
|
||
Pass Parsing origin: <wss:/example.com/> against <http://example.org/foo/bar>
|
||
Pass Parsing origin: <data:/example.com/> against <http://example.org/foo/bar>
|
||
Pass Parsing origin: <javascript:/example.com/> against <http://example.org/foo/bar>
|
||
Pass Parsing origin: <mailto:/example.com/> against <http://example.org/foo/bar>
|
||
Pass Parsing origin: <http:example.com/> against <http://example.org/foo/bar>
|
||
Pass Parsing origin: <ftp:example.com/> against <http://example.org/foo/bar>
|
||
Pass Parsing origin: <https:example.com/> against <http://example.org/foo/bar>
|
||
Pass Parsing origin: <madeupscheme:example.com/> against <http://example.org/foo/bar>
|
||
Pass Parsing origin: <ftps:example.com/> against <http://example.org/foo/bar>
|
||
Pass Parsing origin: <gopher:example.com/> against <http://example.org/foo/bar>
|
||
Pass Parsing origin: <ws:example.com/> against <http://example.org/foo/bar>
|
||
Pass Parsing origin: <wss:example.com/> against <http://example.org/foo/bar>
|
||
Pass Parsing origin: <data:example.com/> against <http://example.org/foo/bar>
|
||
Pass Parsing origin: <javascript:example.com/> against <http://example.org/foo/bar>
|
||
Pass Parsing origin: <mailto:example.com/> against <http://example.org/foo/bar>
|
||
Pass Parsing origin: </a/b/c> against <http://example.org/foo/bar>
|
||
Pass Parsing origin: </a/ /c> against <http://example.org/foo/bar>
|
||
Pass Parsing origin: </a%2fc> against <http://example.org/foo/bar>
|
||
Pass Parsing origin: </a/%2f/c> against <http://example.org/foo/bar>
|
||
Pass Parsing origin: <#β> against <http://example.org/foo/bar>
|
||
Pass Parsing origin: <data:text/html,test#test> against <http://example.org/foo/bar>
|
||
Pass Parsing origin: <tel:1234567890> against <http://example.org/foo/bar>
|
||
Pass Parsing origin: <ssh://example.com/foo/bar.git> against <http://example.org/>
|
||
Pass Parsing origin: <http://example.com/././foo> against <about:blank>
|
||
Pass Parsing origin: <http://example.com/./.foo> against <about:blank>
|
||
Pass Parsing origin: <http://example.com/foo/.> against <about:blank>
|
||
Pass Parsing origin: <http://example.com/foo/./> against <about:blank>
|
||
Pass Parsing origin: <http://example.com/foo/bar/..> against <about:blank>
|
||
Pass Parsing origin: <http://example.com/foo/bar/../> against <about:blank>
|
||
Pass Parsing origin: <http://example.com/foo/..bar> against <about:blank>
|
||
Pass Parsing origin: <http://example.com/foo/bar/../ton> against <about:blank>
|
||
Pass Parsing origin: <http://example.com/foo/bar/../ton/../../a> against <about:blank>
|
||
Pass Parsing origin: <http://example.com/foo/../../..> against <about:blank>
|
||
Pass Parsing origin: <http://example.com/foo/../../../ton> against <about:blank>
|
||
Pass Parsing origin: <http://example.com/foo/%2e> against <about:blank>
|
||
Pass Parsing origin: <http://example.com/foo/%2e%2> against <about:blank>
|
||
Pass Parsing origin: <http://example.com/foo/%2e./%2e%2e/.%2e/%2e.bar> against <about:blank>
|
||
Pass Parsing origin: <http://example.com////../..> against <about:blank>
|
||
Pass Parsing origin: <http://example.com/foo/bar//../..> against <about:blank>
|
||
Pass Parsing origin: <http://example.com/foo/bar//..> against <about:blank>
|
||
Pass Parsing origin: <http://example.com/foo> against <about:blank>
|
||
Pass Parsing origin: <http://example.com/%20foo> against <about:blank>
|
||
Pass Parsing origin: <http://example.com/foo%> against <about:blank>
|
||
Pass Parsing origin: <http://example.com/foo%2> against <about:blank>
|
||
Pass Parsing origin: <http://example.com/foo%2zbar> against <about:blank>
|
||
Pass Parsing origin: <http://example.com/foo%2©zbar> against <about:blank>
|
||
Pass Parsing origin: <http://example.com/foo%41%7a> against <about:blank>
|
||
Pass Parsing origin: <http://example.com/foo %91> against <about:blank>
|
||
Pass Parsing origin: <http://example.com/foo%00%51> against <about:blank>
|
||
Pass Parsing origin: <http://example.com/(%28:%3A%29)> against <about:blank>
|
||
Pass Parsing origin: <http://example.com/%3A%3a%3C%3c> against <about:blank>
|
||
Pass Parsing origin: <http://example.com/foo bar> against <about:blank>
|
||
Pass Parsing origin: <http://example.com\\foo\\bar> against <about:blank>
|
||
Pass Parsing origin: <http://example.com/%7Ffp3%3Eju%3Dduvgw%3Dd> against <about:blank>
|
||
Pass Parsing origin: <http://example.com/@asdf%40> against <about:blank>
|
||
Pass Parsing origin: <http://example.com/你好你好> against <about:blank>
|
||
Pass Parsing origin: <http://example.com/‥/foo> against <about:blank>
|
||
Pass Parsing origin: <http://example.com//foo> against <about:blank>
|
||
Pass Parsing origin: <http://example.com//foo//bar> against <about:blank>
|
||
Pass Parsing origin: <http://www.google.com/foo?bar=baz#> against <about:blank>
|
||
Pass Parsing origin: <http://www.google.com/foo?bar=baz# »> against <about:blank>
|
||
Pass Parsing origin: <data:test# »> against <about:blank>
|
||
Pass Parsing origin: <http://www.google.com> against <about:blank>
|
||
Pass Parsing origin: <http://192.0x00A80001> against <about:blank>
|
||
Pass Parsing origin: <http://www/foo%2Ehtml> against <about:blank>
|
||
Pass Parsing origin: <http://www/foo/%2E/html> against <about:blank>
|
||
Pass Parsing origin: <http://%25DOMAIN:foobar@foodomain.com/> against <about:blank>
|
||
Pass Parsing origin: <http:\\www.google.com\foo> against <about:blank>
|
||
Pass Parsing origin: <http://foo:80/> against <about:blank>
|
||
Pass Parsing origin: <http://foo:81/> against <about:blank>
|
||
Pass Parsing origin: <httpa://foo:80/> against <about:blank>
|
||
Pass Parsing origin: <https://foo:443/> against <about:blank>
|
||
Pass Parsing origin: <https://foo:80/> against <about:blank>
|
||
Pass Parsing origin: <ftp://foo:21/> against <about:blank>
|
||
Pass Parsing origin: <ftp://foo:80/> against <about:blank>
|
||
Pass Parsing origin: <gopher://foo:70/> against <about:blank>
|
||
Pass Parsing origin: <gopher://foo:443/> against <about:blank>
|
||
Pass Parsing origin: <ws://foo:80/> against <about:blank>
|
||
Pass Parsing origin: <ws://foo:81/> against <about:blank>
|
||
Pass Parsing origin: <ws://foo:443/> against <about:blank>
|
||
Pass Parsing origin: <ws://foo:815/> against <about:blank>
|
||
Pass Parsing origin: <wss://foo:80/> against <about:blank>
|
||
Pass Parsing origin: <wss://foo:81/> against <about:blank>
|
||
Pass Parsing origin: <wss://foo:443/> against <about:blank>
|
||
Pass Parsing origin: <wss://foo:815/> against <about:blank>
|
||
Pass Parsing origin: <http:/example.com/> against <about:blank>
|
||
Pass Parsing origin: <ftp:/example.com/> against <about:blank>
|
||
Pass Parsing origin: <https:/example.com/> against <about:blank>
|
||
Pass Parsing origin: <madeupscheme:/example.com/> against <about:blank>
|
||
Pass Parsing origin: <ftps:/example.com/> against <about:blank>
|
||
Pass Parsing origin: <gopher:/example.com/> against <about:blank>
|
||
Pass Parsing origin: <ws:/example.com/> against <about:blank>
|
||
Pass Parsing origin: <wss:/example.com/> against <about:blank>
|
||
Pass Parsing origin: <data:/example.com/> against <about:blank>
|
||
Pass Parsing origin: <javascript:/example.com/> against <about:blank>
|
||
Pass Parsing origin: <mailto:/example.com/> against <about:blank>
|
||
Pass Parsing origin: <http:example.com/> against <about:blank>
|
||
Pass Parsing origin: <ftp:example.com/> against <about:blank>
|
||
Pass Parsing origin: <https:example.com/> against <about:blank>
|
||
Pass Parsing origin: <madeupscheme:example.com/> against <about:blank>
|
||
Pass Parsing origin: <ftps:example.com/> against <about:blank>
|
||
Pass Parsing origin: <gopher:example.com/> against <about:blank>
|
||
Pass Parsing origin: <ws:example.com/> against <about:blank>
|
||
Pass Parsing origin: <wss:example.com/> against <about:blank>
|
||
Pass Parsing origin: <data:example.com/> against <about:blank>
|
||
Pass Parsing origin: <javascript:example.com/> against <about:blank>
|
||
Pass Parsing origin: <mailto:example.com/> against <about:blank>
|
||
Pass Parsing origin: <https://example.com/aaa/bbb/%2e%2e?query> against <about:blank>
|
||
Pass Parsing origin: <http:@www.example.com> against <about:blank>
|
||
Pass Parsing origin: <http:/@www.example.com> against <about:blank>
|
||
Pass Parsing origin: <http://@www.example.com> against <about:blank>
|
||
Pass Parsing origin: <http:a:b@www.example.com> against <about:blank>
|
||
Pass Parsing origin: <http:/a:b@www.example.com> against <about:blank>
|
||
Pass Parsing origin: <http://a:b@www.example.com> against <about:blank>
|
||
Pass Parsing origin: <http://@pple.com> against <about:blank>
|
||
Pass Parsing origin: <http::b@www.example.com> against <about:blank>
|
||
Pass Parsing origin: <http:/:b@www.example.com> against <about:blank>
|
||
Pass Parsing origin: <http://:b@www.example.com> against <about:blank>
|
||
Pass Parsing origin: <http:a:@www.example.com> against <about:blank>
|
||
Pass Parsing origin: <http:/a:@www.example.com> against <about:blank>
|
||
Pass Parsing origin: <http://a:@www.example.com> against <about:blank>
|
||
Pass Parsing origin: <http://www.@pple.com> against <about:blank>
|
||
Pass Parsing origin: <http://:@www.example.com> against <about:blank>
|
||
Pass Parsing origin: </> against <http://www.example.com/test>
|
||
Pass Parsing origin: </test.txt> against <http://www.example.com/test>
|
||
Pass Parsing origin: <.> against <http://www.example.com/test>
|
||
Pass Parsing origin: <..> against <http://www.example.com/test>
|
||
Pass Parsing origin: <test.txt> against <http://www.example.com/test>
|
||
Pass Parsing origin: <./test.txt> against <http://www.example.com/test>
|
||
Pass Parsing origin: <../test.txt> against <http://www.example.com/test>
|
||
Pass Parsing origin: <../aaa/test.txt> against <http://www.example.com/test>
|
||
Pass Parsing origin: <../../test.txt> against <http://www.example.com/test>
|
||
Pass Parsing origin: <中/test.txt> against <http://www.example.com/test>
|
||
Pass Parsing origin: <http://www.example2.com> against <http://www.example.com/test>
|
||
Pass Parsing origin: <//www.example2.com> against <http://www.example.com/test>
|
||
Pass Parsing origin: <http://ExAmPlE.CoM> against <http://other.com/>
|
||
Pass Parsing origin: <http://GOOgoo.com> against <http://other.com/>
|
||
Pass Parsing origin: < |