- From: Marcos Cáceres <notifications@github.com>
- Date: Wed, 19 Oct 2022 14:47:38 -0700
- To: whatwg/webidl <webidl@noreply.github.com>
- Cc: Subscribed <subscribed@noreply.github.com>
- Message-ID: <whatwg/webidl/issues/1223/1284608389@github.com>
I'm not sure how unique this is in the platform, but this seems to layer two problems: 1. a potential error at the call site (`compileShader()`). 2. a compilation error at the GPU level as **the cause** of the exception. Expressed a bit differently: ```JS const shaderProgram = ` fn bar(foo: Foo) { let baz = foo * 7; // Structs can't be multiplied by 7; this is a compile error } `; try { await compileShader(shaderProgram); } catch (err) { // err is maybe TypeError or some new GPUError, as the type of input was bad. // err.cause as SyntaxError in shaderProgram at some line, column. } ``` If a `TypeError` or some new `GPUError` would depend on the various different ways `compileShader()` can fail. The rationale being that the `.cause` would contain the "structured data" represented as a `SyntaxError` for the column/line number of `shaderProgram`. Similarly, the `TypeError` or `GPUError` would give you the stack for where `.compileShader()` was called from. I'm imagining that then developer tools could show more clearly where the error was in `shaderProgram` by linking everything together (same way that dev tools does today when running code in console). Please let me know if I'm overcomplicating this. -- Reply to this email directly or view it on GitHub: https://github.com/whatwg/webidl/issues/1223#issuecomment-1284608389 You are receiving this because you are subscribed to this thread. Message ID: <whatwg/webidl/issues/1223/1284608389@github.com>
Received on Wednesday, 19 October 2022 21:47:52 UTC