Skip to content

Commit 73f17d8

Browse files
authored
Add Worker.postMessage override (#703)
* Add Worker.postMessage override Matches MessagePort, ServiceWorker and DedicatedWorkerGlobalScope * fix compiler error
1 parent a8420b8 commit 73f17d8

File tree

5 files changed

+9
-5
lines changed

5 files changed

+9
-5
lines changed

baselines/dom.generated.d.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17484,7 +17484,8 @@ interface WorkerEventMap extends AbstractWorkerEventMap {
1748417484
/** An interface of the Web Workers API represents a background task that can be easily created and can send messages back to its creator. Creating a worker is as simple as calling the Worker() constructor and specifying a script to be run in the worker thread. */
1748517485
interface Worker extends EventTarget, AbstractWorker {
1748617486
onmessage: ((this: Worker, ev: MessageEvent) => any) | null;
17487-
postMessage(message: any, transfer?: Transferable[]): void;
17487+
postMessage(message: any, transfer: Transferable[]): void;
17488+
postMessage(message: any, options?: PostMessageOptions): void;
1748817489
terminate(): void;
1748917490
addEventListener<K extends keyof WorkerEventMap>(type: K, listener: (this: Worker, ev: WorkerEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
1749017491
addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;

baselines/webworker.generated.d.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4299,7 +4299,8 @@ interface WorkerEventMap extends AbstractWorkerEventMap {
42994299
/** An interface of the Web Workers API represents a background task that can be easily created and can send messages back to its creator. Creating a worker is as simple as calling the Worker() constructor and specifying a script to be run in the worker thread. */
43004300
interface Worker extends EventTarget, AbstractWorker {
43014301
onmessage: ((this: Worker, ev: MessageEvent) => any) | null;
4302-
postMessage(message: any, transfer?: Transferable[]): void;
4302+
postMessage(message: any, transfer: Transferable[]): void;
4303+
postMessage(message: any, options?: PostMessageOptions): void;
43034304
terminate(): void;
43044305
addEventListener<K extends keyof WorkerEventMap>(type: K, listener: (this: Worker, ev: WorkerEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
43054306
addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;

inputfiles/overridingTypes.json

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2312,8 +2312,10 @@
23122312
"method": {
23132313
"postMessage": {
23142314
"deprecated": 0,
2315+
"name": "postMessage",
23152316
"override-signatures": [
2316-
"postMessage(message: any, transfer?: Transferable[]): void"
2317+
"postMessage(message: any, transfer: Transferable[]): void",
2318+
"postMessage(message: any, options?: PostMessageOptions): void"
23172319
]
23182320
}
23192321
}

src/emitter.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -689,7 +689,7 @@ export function emitWebIdl(webidl: Browser.WebIdl, flavor: Flavor) {
689689

690690
/// Emit the properties and methods of a given interface
691691
function emitMembers(prefix: string, emitScope: EmitScope, i: Browser.Interface) {
692-
const conflictedMembers = extendConflictsBaseTypes[i.name] ? extendConflictsBaseTypes[i.name].memberNames : new Set();
692+
const conflictedMembers = extendConflictsBaseTypes[i.name] ? extendConflictsBaseTypes[i.name].memberNames : new Set<string>();
693693
emitProperties(prefix, emitScope, i);
694694
const methodPrefix = prefix.startsWith("declare var") ? "declare function " : "";
695695
emitMethods(methodPrefix, emitScope, i, conflictedMembers);

src/widlprocess.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -197,7 +197,7 @@ function convertOperation(operation: webidl2.OperationMemberType, inheritedExpos
197197
throw new Error("Unexpected anonymous operation");
198198
}
199199
return {
200-
name: operation.name,
200+
name: operation.name || undefined,
201201
signature: [{
202202
...convertIdlType(operation.idlType),
203203
param: operation.arguments.map(convertArgument)

0 commit comments

Comments
 (0)