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
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
Timothy Flynn
64d290447c
LibCore+LibJS+LibWasm: Always use a real format string
...
It's generally considered a security issue to use non-format string
literals. We would likely just crash in practice, but let's avoid the
issue altogether.
2025-04-08 20:00:18 -04: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
Jonne Ransijn
d7a721951e
LibWasm: Fix UB in LibWasm
...
Now that `Optional<T&>` are trivially copyable/movable, it is
triggering Undefined Behaviour checks on GCC. We can resolve those
by using an union.
2024-12-04 01:58:22 +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
Shannon Booth
f87041bf3a
LibGC+Everywhere: Factor out a LibGC from LibJS
...
Resulting in a massive rename across almost everywhere! Alongside the
namespace change, we now have the following names:
* JS::NonnullGCPtr -> GC::Ref
* JS::GCPtr -> GC::Ptr
* JS::HeapFunction -> GC::Function
* JS::CellImpl -> GC::Cell
* JS::Handle -> GC::Root
2024-11-15 14:49:20 +01:00
Timothy Flynn
93712b24bf
Everywhere: Hoist the Libraries folder to the top-level
2024-11-10 12:50:45 +01:00