typedef (USVString or URLPatternInit) URLPatternInput; // https://urlpattern.spec.whatwg.org/#urlpattern [Exposed=(Window,Worker)] interface URLPattern { constructor(URLPatternInput input, USVString baseURL, optional URLPatternOptions options = {}); constructor(optional URLPatternInput input = {}, optional URLPatternOptions options = {}); [FIXME] boolean test(optional URLPatternInput input = {}, optional USVString baseURL); URLPatternResult? exec(optional URLPatternInput input = {}, optional USVString baseURL); [FIXME] readonly attribute USVString protocol; [FIXME] readonly attribute USVString username; [FIXME] readonly attribute USVString password; [FIXME] readonly attribute USVString hostname; [FIXME] readonly attribute USVString port; [FIXME] readonly attribute USVString pathname; [FIXME] readonly attribute USVString search; [FIXME] readonly attribute USVString hash; [FIXME] readonly attribute boolean hasRegExpGroups; }; // https://urlpattern.spec.whatwg.org/#dictdef-urlpatterninit dictionary URLPatternInit { USVString protocol; USVString username; USVString password; USVString hostname; USVString port; USVString pathname; USVString search; USVString hash; USVString baseURL; }; // https://urlpattern.spec.whatwg.org/#dictdef-urlpatternoptions dictionary URLPatternOptions { boolean ignoreCase = false; }; // https://urlpattern.spec.whatwg.org/#dictdef-urlpatternresult dictionary URLPatternResult { [GenerateAsRequired] sequence inputs; [GenerateAsRequired] URLPatternComponentResult protocol; [GenerateAsRequired] URLPatternComponentResult username; [GenerateAsRequired] URLPatternComponentResult password; [GenerateAsRequired] URLPatternComponentResult hostname; [GenerateAsRequired] URLPatternComponentResult port; [GenerateAsRequired] URLPatternComponentResult pathname; [GenerateAsRequired] URLPatternComponentResult search; [GenerateAsRequired] URLPatternComponentResult hash; }; // https://urlpattern.spec.whatwg.org/#dictdef-urlpatterncomponentresult dictionary URLPatternComponentResult { [GenerateAsRequired] USVString input; [GenerateAsRequired] record groups; };