From a0dd1fbdbf1fbbd20fc32cd48cfac6c0ef4877d1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebastian=20Kr=C3=BCger?= <2pi_r2@gmx.de> Date: Tue, 22 Mar 2022 20:25:55 +0100 Subject: [PATCH 1/5] fix worklet registerProcessor --- baselines/audioworklet.generated.d.ts | 2 +- inputfiles/overridingTypes.jsonc | 5 +++++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/baselines/audioworklet.generated.d.ts b/baselines/audioworklet.generated.d.ts index 0f0d7039f..7e07e0ac6 100644 --- a/baselines/audioworklet.generated.d.ts +++ b/baselines/audioworklet.generated.d.ts @@ -890,7 +890,7 @@ declare namespace WebAssembly { } interface AudioWorkletProcessorConstructor { - (options: any): AudioWorkletProcessor; + new (options: any): AudioWorkletProcessor; } interface PerformanceObserverCallback { diff --git a/inputfiles/overridingTypes.jsonc b/inputfiles/overridingTypes.jsonc index 813198265..e1a2286e5 100644 --- a/inputfiles/overridingTypes.jsonc +++ b/inputfiles/overridingTypes.jsonc @@ -366,6 +366,11 @@ "overrideSignatures": [ "new (...params: any[]): HTMLElement" ] + }, + "AudioWorkletProcessorConstructor": { + "overrideSignatures": [ + "new (options: any): AudioWorkletProcessor" + ] } } }, From 7529b9b3f27acc7c091c3843d7861b93d52393bf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebastian=20Kr=C3=BCger?= <2pi_r2@gmx.de> Date: Wed, 23 Mar 2022 14:38:57 +0100 Subject: [PATCH 2/5] use AudioWorkletProcessorImpl --- baselines/audioworklet.generated.d.ts | 11 ++++++++++- inputfiles/addedTypes.jsonc | 15 +++++++++++++++ inputfiles/overridingTypes.jsonc | 2 +- unittests/files/audioworklet/tsconfig.json | 17 +++++++++++++++++ unittests/files/audioworklet/usage.ts | 8 ++++++++ unittests/index.js | 8 ++++++++ 6 files changed, 59 insertions(+), 2 deletions(-) create mode 100644 unittests/files/audioworklet/tsconfig.json create mode 100644 unittests/files/audioworklet/usage.ts diff --git a/baselines/audioworklet.generated.d.ts b/baselines/audioworklet.generated.d.ts index 7e07e0ac6..b8e622378 100644 --- a/baselines/audioworklet.generated.d.ts +++ b/baselines/audioworklet.generated.d.ts @@ -216,6 +216,15 @@ declare var AudioWorkletProcessor: { new(): AudioWorkletProcessor; }; +interface AudioWorkletProcessorImpl extends AudioWorkletProcessor { + process(inputs: Float32Array[][], outputs: Float32Array[][], parameters: {[name: string]: Float32Array}): boolean; +} + +declare var AudioWorkletProcessorImpl: { + prototype: AudioWorkletProcessorImpl; + new(): AudioWorkletProcessorImpl; +}; + /** This Streams API interface providesĀ a built-in byte length queuing strategy that can be used when constructing streams. */ interface ByteLengthQueuingStrategy extends QueuingStrategy { readonly highWaterMark: number; @@ -890,7 +899,7 @@ declare namespace WebAssembly { } interface AudioWorkletProcessorConstructor { - new (options: any): AudioWorkletProcessor; + new (options: any): AudioWorkletProcessorImpl; } interface PerformanceObserverCallback { diff --git a/inputfiles/addedTypes.jsonc b/inputfiles/addedTypes.jsonc index 612082a20..09a0dc6ac 100644 --- a/inputfiles/addedTypes.jsonc +++ b/inputfiles/addedTypes.jsonc @@ -338,6 +338,21 @@ }, "interfaces": { "interface": { + "AudioWorkletProcessorImpl": { + "name": "AudioWorkletProcessorImpl", + "extends": "AudioWorkletProcessor", + "methods": { + "method": { + "process": { + "name": "process", + "overrideSignatures": [ + "process(inputs: Float32Array[][], outputs: Float32Array[][], parameters: {[name: string]: Float32Array}): boolean" + ] + } + } + }, + "exposed": "AudioWorklet" + }, "BroadcastChannel": { "events": { "event": [ diff --git a/inputfiles/overridingTypes.jsonc b/inputfiles/overridingTypes.jsonc index e1a2286e5..b38abcaa0 100644 --- a/inputfiles/overridingTypes.jsonc +++ b/inputfiles/overridingTypes.jsonc @@ -369,7 +369,7 @@ }, "AudioWorkletProcessorConstructor": { "overrideSignatures": [ - "new (options: any): AudioWorkletProcessor" + "new (options: any): AudioWorkletProcessorImpl" ] } } diff --git a/unittests/files/audioworklet/tsconfig.json b/unittests/files/audioworklet/tsconfig.json new file mode 100644 index 000000000..80491e7bc --- /dev/null +++ b/unittests/files/audioworklet/tsconfig.json @@ -0,0 +1,17 @@ +{ + "compilerOptions": { + "target": "es2020", + "lib": ["es2020"], + "module": "esnext", + "moduleResolution": "node", + "strict": true, + "esModuleInterop": true, + "sourceMap": true, + "noUnusedLocals": true, + "noUnusedParameters": true + }, + "include": [ + "../../../baselines/audioworklet*", + "**/*" + ] +} diff --git a/unittests/files/audioworklet/usage.ts b/unittests/files/audioworklet/usage.ts new file mode 100644 index 000000000..c89b48da4 --- /dev/null +++ b/unittests/files/audioworklet/usage.ts @@ -0,0 +1,8 @@ +self.registerProcessor( + "test", + class extends AudioWorkletProcessor { + process(input: Float32Array[][], output: Float32Array[][], params: { [key: string]: Float32Array }) { + return true; + } + } +); diff --git a/unittests/index.js b/unittests/index.js index f3c9cfdcf..1e1d6dd8d 100644 --- a/unittests/index.js +++ b/unittests/index.js @@ -8,3 +8,11 @@ for (const filename of await readdir(new URL("files/", import.meta.url))) { }); } } + +for (const filename of await readdir(new URL("files/audioworklet", import.meta.url))) { + if (filename.endsWith(".ts")) { + execSync(`npx tsc generated/audioworklet.generated.d.ts unittests/files/audioworklet/${filename} --target es2020 --lib es2020 --types --noEmit`, { + stdio: "inherit" + }); + } +} From a39f4fe744a5c8d3eea7b6548e80c5d9b69a0328 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebastian=20Kr=C3=BCger?= <2pi_r2@gmx.de> Date: Wed, 23 Mar 2022 14:47:28 +0100 Subject: [PATCH 3/5] fix test --- unittests/files/audioworklet/usage.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/unittests/files/audioworklet/usage.ts b/unittests/files/audioworklet/usage.ts index c89b48da4..3641b6e8e 100644 --- a/unittests/files/audioworklet/usage.ts +++ b/unittests/files/audioworklet/usage.ts @@ -1,4 +1,4 @@ -self.registerProcessor( +registerProcessor( "test", class extends AudioWorkletProcessor { process(input: Float32Array[][], output: Float32Array[][], params: { [key: string]: Float32Array }) { From 4a9e77112ac421232605419774cb1bfd423315ec Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebastian=20Kr=C3=BCger?= <2pi_r2@gmx.de> Date: Wed, 23 Mar 2022 15:08:02 +0100 Subject: [PATCH 4/5] use Record --- baselines/audioworklet.generated.d.ts | 2 +- inputfiles/addedTypes.jsonc | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/baselines/audioworklet.generated.d.ts b/baselines/audioworklet.generated.d.ts index b8e622378..b41f0cebb 100644 --- a/baselines/audioworklet.generated.d.ts +++ b/baselines/audioworklet.generated.d.ts @@ -217,7 +217,7 @@ declare var AudioWorkletProcessor: { }; interface AudioWorkletProcessorImpl extends AudioWorkletProcessor { - process(inputs: Float32Array[][], outputs: Float32Array[][], parameters: {[name: string]: Float32Array}): boolean; + process(inputs: Float32Array[][], outputs: Float32Array[][], parameters: Record): boolean; } declare var AudioWorkletProcessorImpl: { diff --git a/inputfiles/addedTypes.jsonc b/inputfiles/addedTypes.jsonc index 09a0dc6ac..046f0c2de 100644 --- a/inputfiles/addedTypes.jsonc +++ b/inputfiles/addedTypes.jsonc @@ -346,7 +346,7 @@ "process": { "name": "process", "overrideSignatures": [ - "process(inputs: Float32Array[][], outputs: Float32Array[][], parameters: {[name: string]: Float32Array}): boolean" + "process(inputs: Float32Array[][], outputs: Float32Array[][], parameters: Record): boolean" ] } } From 4cb1cdbe412d9625df77dd4c51199eba92f330a7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebastian=20Kr=C3=BCger?= <2pi_r2@gmx.de> Date: Wed, 23 Mar 2022 15:45:36 +0100 Subject: [PATCH 5/5] fix var AudioWorkletProcessorImpl --- baselines/audioworklet.generated.d.ts | 5 ----- inputfiles/addedTypes.jsonc | 3 ++- 2 files changed, 2 insertions(+), 6 deletions(-) diff --git a/baselines/audioworklet.generated.d.ts b/baselines/audioworklet.generated.d.ts index b41f0cebb..b3dd6996c 100644 --- a/baselines/audioworklet.generated.d.ts +++ b/baselines/audioworklet.generated.d.ts @@ -220,11 +220,6 @@ interface AudioWorkletProcessorImpl extends AudioWorkletProcessor { process(inputs: Float32Array[][], outputs: Float32Array[][], parameters: Record): boolean; } -declare var AudioWorkletProcessorImpl: { - prototype: AudioWorkletProcessorImpl; - new(): AudioWorkletProcessorImpl; -}; - /** This Streams API interface providesĀ a built-in byte length queuing strategy that can be used when constructing streams. */ interface ByteLengthQueuingStrategy extends QueuingStrategy { readonly highWaterMark: number; diff --git a/inputfiles/addedTypes.jsonc b/inputfiles/addedTypes.jsonc index 046f0c2de..6c58ca603 100644 --- a/inputfiles/addedTypes.jsonc +++ b/inputfiles/addedTypes.jsonc @@ -351,7 +351,8 @@ } } }, - "exposed": "AudioWorklet" + "exposed": "AudioWorklet", + "noInterfaceObject": true }, "BroadcastChannel": { "events": {