From 7096690c4e051aa7b1fc3b85472561dd393ef170 Mon Sep 17 00:00:00 2001 From: Nathan Shively-Sanders <293473+sandersn@users.noreply.github.com> Date: Wed, 22 May 2019 10:58:15 -0700 Subject: [PATCH 1/2] Add Worker.postMessage override Matches MessagePort, ServiceWorker and DedicatedWorkerGlobalScope --- baselines/dom.generated.d.ts | 3 ++- baselines/webworker.generated.d.ts | 3 ++- inputfiles/overridingTypes.json | 4 +++- 3 files changed, 7 insertions(+), 3 deletions(-) diff --git a/baselines/dom.generated.d.ts b/baselines/dom.generated.d.ts index a689cbbd5..fd9674fd5 100644 --- a/baselines/dom.generated.d.ts +++ b/baselines/dom.generated.d.ts @@ -17484,7 +17484,8 @@ interface WorkerEventMap extends AbstractWorkerEventMap { /** 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. */ interface Worker extends EventTarget, AbstractWorker { onmessage: ((this: Worker, ev: MessageEvent) => any) | null; - postMessage(message: any, transfer?: Transferable[]): void; + postMessage(message: any, transfer: Transferable[]): void; + postMessage(message: any, options?: PostMessageOptions): void; terminate(): void; addEventListener(type: K, listener: (this: Worker, ev: WorkerEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void; addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void; diff --git a/baselines/webworker.generated.d.ts b/baselines/webworker.generated.d.ts index 5416485fa..1e2c9452b 100644 --- a/baselines/webworker.generated.d.ts +++ b/baselines/webworker.generated.d.ts @@ -4299,7 +4299,8 @@ interface WorkerEventMap extends AbstractWorkerEventMap { /** 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. */ interface Worker extends EventTarget, AbstractWorker { onmessage: ((this: Worker, ev: MessageEvent) => any) | null; - postMessage(message: any, transfer?: Transferable[]): void; + postMessage(message: any, transfer: Transferable[]): void; + postMessage(message: any, options?: PostMessageOptions): void; terminate(): void; addEventListener(type: K, listener: (this: Worker, ev: WorkerEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void; addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void; diff --git a/inputfiles/overridingTypes.json b/inputfiles/overridingTypes.json index 7d58a9e03..fc5bfe508 100644 --- a/inputfiles/overridingTypes.json +++ b/inputfiles/overridingTypes.json @@ -2312,8 +2312,10 @@ "method": { "postMessage": { "deprecated": 0, + "name": "postMessage", "override-signatures": [ - "postMessage(message: any, transfer?: Transferable[]): void" + "postMessage(message: any, transfer: Transferable[]): void", + "postMessage(message: any, options?: PostMessageOptions): void" ] } } From 6cc469e0dcea4bbfc64fd59fbe10281b9a690b42 Mon Sep 17 00:00:00 2001 From: Kagami Sascha Rosylight Date: Sun, 28 Apr 2019 17:30:53 +0900 Subject: [PATCH 2/2] fix compiler error --- src/emitter.ts | 2 +- src/widlprocess.ts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/emitter.ts b/src/emitter.ts index cc321cfa3..de8846eec 100644 --- a/src/emitter.ts +++ b/src/emitter.ts @@ -689,7 +689,7 @@ export function emitWebIdl(webidl: Browser.WebIdl, flavor: Flavor) { /// Emit the properties and methods of a given interface function emitMembers(prefix: string, emitScope: EmitScope, i: Browser.Interface) { - const conflictedMembers = extendConflictsBaseTypes[i.name] ? extendConflictsBaseTypes[i.name].memberNames : new Set(); + const conflictedMembers = extendConflictsBaseTypes[i.name] ? extendConflictsBaseTypes[i.name].memberNames : new Set(); emitProperties(prefix, emitScope, i); const methodPrefix = prefix.startsWith("declare var") ? "declare function " : ""; emitMethods(methodPrefix, emitScope, i, conflictedMembers); diff --git a/src/widlprocess.ts b/src/widlprocess.ts index 2f7b7f3f7..dda75c7af 100644 --- a/src/widlprocess.ts +++ b/src/widlprocess.ts @@ -197,7 +197,7 @@ function convertOperation(operation: webidl2.OperationMemberType, inheritedExpos throw new Error("Unexpected anonymous operation"); } return { - name: operation.name, + name: operation.name || undefined, signature: [{ ...convertIdlType(operation.idlType), param: operation.arguments.map(convertArgument)