Ali Mohammad Pur
5c6f223f48
LibWasm: Avoid repeated shrinkage of value stack
2025-08-08 12:54:06 +02:00
Jelle Raaijmakers
ed94381209
LibWasm: Return canonical NaN for min/max/floor/ceil/truncate operations
...
Instead of returning whichever argument was NaN, return the canonical
NaN instead. The spec allows the old behavior:
"Following the recommendation that operators propagate NaN payloads
from their operands is permitted but not required."
But Chrome, Firefox and Safari do not propagate the operand payloads.
Fixes 448 WPT subtests in `wasm/core`.
Co-authored-by: Ali Mohammad Pur <ali.mpfard@gmail.com>
2025-07-27 15:35:28 +02:00
Jelle Raaijmakers
58c3a391a3
LibWeb+LibWasm: Reject module instantiation with correct error type
...
The spec tells us to reject the promise with a RuntimeError instead of a
LinkError whenever the module's start function fails during module
instantiation. Fixes 1 WPT subtest in `wasm/core`.
2025-07-25 15:13:28 +02:00
Ali Mohammad Pur
83995ada1f
LibWasm: Quit early in memory_fill if store_to_memory traps
...
We shouldn't try to run the next 'instruction' if we trap.
Unbreaks the memory-fill test in wpt.
2025-05-22 07:35:58 +01:00
Ali Mohammad Pur
bfc1ebb2d4
LibWasm: Disable spammy 'memory access oob' debug prints
2025-05-22 07:35:58 +01:00
Ali Mohammad Pur
d79d5b70a5
LibWasm: Validate indirect calls at runtime
...
This is required by the spec, and also unbreaks all of the call-indirect
wpt tests.
2025-05-22 07:35:58 +01:00
Ali Mohammad Pur
39b637a446
LibWasm+LibWeb: Throw a js stack-overflow error if wasm stack overflows
...
Follows the spec.
2025-05-22 07:35:58 +01:00
Tim Ledbetter
58ffc56c38
LibWas: Unbreak compilation with WASM_TRACE_DEBUG
enabled
CI / Lagom (arm64, Sanitizer_CI, false, macos-15, macOS, Clang) (push) Waiting to run
CI / Lagom (x86_64, Fuzzers_CI, false, ubuntu-24.04, Linux, Clang) (push) Waiting to run
CI / Lagom (x86_64, Sanitizer_CI, false, ubuntu-24.04, Linux, GNU) (push) Waiting to run
CI / Lagom (x86_64, Sanitizer_CI, true, ubuntu-24.04, Linux, Clang) (push) Waiting to run
Package the js repl as a binary artifact / build-and-package (arm64, macos-15, macOS, macOS-universal2) (push) Waiting to run
Package the js repl as a binary artifact / build-and-package (x86_64, ubuntu-24.04, Linux, Linux-x86_64) (push) Waiting to run
Run test262 and test-wasm / run_and_update_results (push) Waiting to run
Lint Code / lint (push) Waiting to run
Label PRs with merge conflicts / auto-labeler (push) Waiting to run
Push notes / build (push) Waiting to run
2025-05-19 10:20:40 +01:00
Timothy Flynn
7280ed6312
Meta: Enforce newlines around namespaces
...
This has come up several times during code review, so let's just enforce
it using a new clang-format 20 option.
2025-05-14 02:01:59 -06:00
Ali Mohammad Pur
292688e249
LibWasm: Validate tables, memories, globals, elements and data correctly
...
These sections are supposed to be validated with only the imported
globals.
2025-05-08 03:35:11 -06:00
Ali Mohammad Pur
51bab5b186
LibWasm: Make traps hold on to externally-managed data
...
...instead of specially handling JS::Completion.
This makes it possible for LibWeb/LibJS to have full control over how
these things are made, stored, and visited (whenever).
Fixes an issue where we couldn't roundtrip a JS exception through Wasm.
2025-04-22 08:43:46 -06:00
Andrew Kaster
16e764ddb6
LibWasm: Store function references' source module in RefPtr to const
2025-04-16 10:41:44 -06:00
Andreas Kling
de424d6879
LibJS: Make Completion.[[Value]] non-optional
...
Instead, just use js_undefined() whenever the [[Value]] field is unused.
This avoids a whole bunch of presence checks.
2025-04-05 11:20:26 +02:00
stasoid
44ddc4fc28
LibWasm: Port to Windows
2025-02-11 23:11:13 -07:00
Pavel Shliak
e08f6a69b2
LibWasm: Respect instance.types() bounds
2024-12-09 12:30:41 +01:00
Pavel Shliak
35764db0b7
LibWasm: Clean up #include directives
...
This change aims to improve the speed of incremental builds.
2024-11-21 14:08:33 +01:00
Timothy Flynn
93712b24bf
Everywhere: Hoist the Libraries folder to the top-level
2024-11-10 12:50:45 +01:00