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); [FIXME] 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 { sequence inputs; URLPatternComponentResult protocol; URLPatternComponentResult username; URLPatternComponentResult password; URLPatternComponentResult hostname; URLPatternComponentResult port; URLPatternComponentResult pathname; URLPatternComponentResult search; URLPatternComponentResult hash; }; // https://urlpattern.spec.whatwg.org/#dictdef-urlpatterncomponentresult dictionary URLPatternComponentResult { USVString input; record groups; };