LibWeb: Always return a rejected Promise for functions which throw

We were previously throwing an exception if the generated code was
throwing an exception before it hit the implementation of the interface.
Instead, we are meant to catch any exception, and wrap that in a
rejected promise.

For example, this was impacting the fixed test in this commit as an
exception was being thrown when invoking WebIDL::convert_to_int<T>
as the given number was out of range, and the [EnforceRange]
extended attribute decorates that attribute.

This same type of case is seen for a few tests in WPT.
This commit is contained in:
Shannon Booth 2024-11-17 04:52:45 +13:00 committed by Andreas Kling
commit 98dadb0ce6
Notes: github-actions[bot] 2024-11-16 17:34:49 +00:00
2 changed files with 30 additions and 3 deletions

View file

@ -6,11 +6,10 @@ Rerun
Found 24 tests
23 Pass
1 Fail
24 Pass
Details
Result Test Name MessagePass ReadableStream with byte source: read({ min }) rejects if min is 0
Fail ReadableStream with byte source: read({ min }) rejects if min is negative
Pass ReadableStream with byte source: read({ min }) rejects if min is negative
Pass ReadableStream with byte source: read({ min }) rejects if min is larger than view's length (Uint8Array)
Pass ReadableStream with byte source: read({ min }) rejects if min is larger than view's length (Uint16Array)
Pass ReadableStream with byte source: read({ min }) rejects if min is larger than view's length (DataView)