Commit Graph

14 Commits

Author SHA1 Message Date
me-it-is
62fe795c9b LibWeb: Throw range error when initial is greater than maximum
When constructing WebAssembly.Memory if initial is greater than maximum
a range error will be thrown.

Fixes "Initial value exceeds maximum" in
https://wpt.fyi/results/wasm/jsapi/memory/constructor.any.worker.html?product=ladybird
2025-09-10 05:23:07 +02:00
CountBleck
7575beafcb LibWeb: Import tests for resizable/growable ArrayBuffer Wasm memories
We pass to-fixed-length-buffer.any.html and to-resizable-buffer.any.html
but not to-resizable-buffer-shared.any.html, because LibJS doesn't have
growable SharedArrayBuffers implemented...
2025-08-23 08:26:23 +02:00
CountBleck
a2dc6c4bbb LibJS: Keep the lengths of ArrayBuffers with unowned ByteBuffers fixed
The relevant type of ArrayBuffer DataBlock is now a struct containing
both a ByteBuffer* and a size_t size, and not just a ByteBuffer*, with
the size being that of the ByteBuffer. This type of DataBlock is only
used for WebAssembly.Memory (see commit 4fd43a8f96), meaning this
change won't affect any other code. This change is required to pass one
WPT subtest in wasm/jsapi/memory/grow.any.html, since old fixed-length
SharedArrayBuffers after a WebAssembly.Memory growth should keep their
length, while the new buffer after the growth will have the updated
length.
2025-08-23 08:26:23 +02:00
Jelle Raaijmakers
acc7c2f7f3 LibWeb: Do not use namespace in interface names
Gives us 20 additional WPT subtest passes in `wasm/jsapi`.
2025-07-25 16:50:45 +02:00
Timothy Flynn
27d139e817 LibWeb: Define Wasm native errors correctly
1. Fix typos in some macro invocations of these error types. We now use
   a single xmacro to instantiate error definitions to prevent such
   errors in the future.

2. Use the "WebAssembly." prefix as needed.

3. Allocate the error constructors and prototypes with `realm.create`
   rather than `heap.allocate`. The latter does not invoke `initialize`
   methods. This exposed the next issue:

4. Use the correct intrinsic prototype in the error constructor. We were
   using the base native error prototype. We unfortunately cannot invoke
   OrdinaryCreateFromConstructor from LibJS directly with the correct
   prototype, so an implementation was added here.

5. Use intrinsic accessors to create the constructors. I don't think
   this one was actually a fix, but it makes the setup look more like
   other built-ins.
2025-07-19 16:48:01 -04:00
Timothy Flynn
6b3f796e5b LibWeb: Propagate errors from module instantiation 2025-07-19 16:48:01 -04:00
Timothy Flynn
a458a7d35b LibWeb: Do not coerce object IDL types to JS objects
We should bail with a TypeError if the provided value is not a JS object
already.
2025-07-19 16:48:01 -04:00
Timothy Flynn
7b14da14d8 Tests/LibWeb: Import tests for incorrect Wasm instantiations 2025-07-19 16:48:01 -04:00
Tim Ledbetter
cd0cadc5e1 LibWasm: Use correct null check when getting iterator method 2025-07-13 11:28:19 +02:00
Tim Ledbetter
dede92aa78 Tests: Update WPT testharness.js to the most recent version
This ensures that our test output looks the same as that shown in the
WPT runner.
2025-06-21 14:58:02 +02:00
Ali Mohammad Pur
1bcbd008d6 Tests/LibWeb: Rebaseline some no-longer-failing wasm tests 2025-05-08 03:35:11 -06:00
Andrew Kaster
86c756a589 LibWeb: Import WebAssembly jsapi cross-realm torture tests from WPT
The failures here are due to us not actually implementing the
error types yet.
2025-04-23 14:09:09 +02:00
Andrew Kaster
b11bdd4022 LibWeb: Import WPT tests for WebAssembly.Global
There's one failing due to the constructor object not having the name
"Global" vs "WebAssembly.Global". This also doesn't include the
tentative test for the type property.
2024-12-24 15:20:28 +01:00
Konstantin Konstantin
b03138cbff LibWeb: Support creation of shared memory in WebAssembly API
Add support for shared memory creation in WebAssembly memory API.
This API is needed for WPT tests that use shared array buffers.

Import related WPT tests.
2024-12-08 22:10:45 +01:00