diff --git a/baselines/dom.generated.d.ts b/baselines/dom.generated.d.ts index bef763ea0..90b15a06a 100644 --- a/baselines/dom.generated.d.ts +++ b/baselines/dom.generated.d.ts @@ -13972,7 +13972,7 @@ interface URL { search: string; readonly searchParams: URLSearchParams; username: string; - toString(): string; + toJSON(): string; } declare var URL: { @@ -13982,6 +13982,9 @@ declare var URL: { revokeObjectURL(url: string): void; }; +type webkitURL = URL; +declare var webkitURL: typeof URL; + interface URLSearchParams { /** * Appends a specified key/value pair as a new search parameter. @@ -14007,11 +14010,13 @@ interface URLSearchParams { * Sets the value associated to a given search parameter to the given value. If there were several values, delete the others. */ set(name: string, value: string): void; + sort(): void; + forEach(callbackfn: (value: string, key: string, parent: URLSearchParams) => void, thisArg?: any): void; } declare var URLSearchParams: { prototype: URLSearchParams; - new (init?: string | URLSearchParams): URLSearchParams; + new(init?: string[][] | Record | string | URLSearchParams): URLSearchParams; }; interface VRDisplay extends EventTarget { diff --git a/baselines/webworker.generated.d.ts b/baselines/webworker.generated.d.ts index aeb8267d7..78e2b5258 100644 --- a/baselines/webworker.generated.d.ts +++ b/baselines/webworker.generated.d.ts @@ -1452,7 +1452,7 @@ interface URL { search: string; readonly searchParams: URLSearchParams; username: string; - toString(): string; + toJSON(): string; } declare var URL: { @@ -1487,11 +1487,13 @@ interface URLSearchParams { * Sets the value associated to a given search parameter to the given value. If there were several values, delete the others. */ set(name: string, value: string): void; + sort(): void; + forEach(callbackfn: (value: string, key: string, parent: URLSearchParams) => void, thisArg?: any): void; } declare var URLSearchParams: { prototype: URLSearchParams; - new (init?: string | URLSearchParams): URLSearchParams; + new(init?: string[][] | Record | string | URLSearchParams): URLSearchParams; }; interface WebSocketEventMap { diff --git a/inputfiles/addedTypes.json b/inputfiles/addedTypes.json index f8ddd42cb..581e25bda 100644 --- a/inputfiles/addedTypes.json +++ b/inputfiles/addedTypes.json @@ -469,63 +469,14 @@ }, "URLSearchParams": { "name": "URLSearchParams", - "methods": { - "method": { - "append": { - "name": "append", - "override-signatures": [ - "append(name: string, value: string): void" - ] - }, - "delete": { - "name": "delete", - "override-signatures": [ - "delete(name: string): void" - ] - }, - "get": { - "name": "get", - "override-signatures": [ - "get(name: string): string | null" - ] - }, - "getAll": { - "name": "getAll", - "override-signatures": [ - "getAll(name: string): string[]" - ] - }, - "has": { - "name": "has", - "override-signatures": [ - "has(name: string): boolean" - ] - }, - "set": { - "name": "set", - "override-signatures": [ - "set(name: string, value: string): void" - ] - } - } - }, "constructor": { "override-signatures": [ - "new (init?: string | URLSearchParams): URLSearchParams" + "new(init?: string[][] | Record | string | URLSearchParams): URLSearchParams" ] } }, "URL": { "name": "URL", - "properties": { - "property": { - "searchParams": { - "name": "searchParams", - "read-only": 1, - "override-type": "URLSearchParams" - } - } - }, "methods": { "method": { "createObjectURL": { diff --git a/inputfiles/idl/URL.widl b/inputfiles/idl/URL.widl new file mode 100644 index 000000000..aefaa56cf --- /dev/null +++ b/inputfiles/idl/URL.widl @@ -0,0 +1,35 @@ +[Constructor(USVString url, optional USVString base), + Exposed=(Window,Worker), + LegacyWindowAlias=webkitURL] +interface URL { + stringifier attribute USVString href; + readonly attribute USVString origin; + attribute USVString protocol; + attribute USVString username; + attribute USVString password; + attribute USVString host; + attribute USVString hostname; + attribute USVString port; + attribute USVString pathname; + attribute USVString search; + [SameObject] readonly attribute URLSearchParams searchParams; + attribute USVString hash; + + USVString toJSON(); +}; + +[Constructor(optional (sequence> or record or USVString) init = ""), + Exposed=(Window,Worker)] +interface URLSearchParams { + void append(USVString name, USVString value); + void delete(USVString name); + USVString? get(USVString name); + sequence getAll(USVString name); + boolean has(USVString name); + void set(USVString name, USVString value); + + void sort(); + + iterable; + stringifier; +}; diff --git a/inputfiles/idlSources.json b/inputfiles/idlSources.json index 79ad3e897..93f9f2144 100644 --- a/inputfiles/idlSources.json +++ b/inputfiles/idlSources.json @@ -55,6 +55,10 @@ "url": "https://w3c.github.io/touch-events/", "title": "Touch Events" }, + { + "url": "https://url.spec.whatwg.org/", + "title": "URL" + }, { "url": "https://www.w3.org/TR/user-timing-2/", "title": "User Timing"