ladybird/Tests/LibJS
Daniel Bertalan 2b69af2dfe AK+LibJS: Handle NaN-boxing pointers on AArch64
JS::Value stores 48 bit pointers to separately allocated objects in its
payload. On x86-64, canonical addresses have their top 16 bits set to
the same value as bit 47, effectively meaning that the value has to be
sign-extended to get the pointer. AArch64, however, expects the topmost
bits to be all zeros.

This commit gates sign extension behind `#if ARCH(X86_64)`, and adds an
`#error` for unsupported architectures, so that we do not forget to
think about pointer handling when porting to a new architecture.

Fixes #15290
Fixes SerenityOS/ladybird#56
2022-09-21 11:55:57 +02:00
..
CMakeLists.txt LibJS: Add the test-test262 utility 2022-09-11 20:25:51 +01:00
test262-runner.cpp Everywhere: Fix a variety of typos 2022-09-14 04:46:49 +00:00
test-bytecode-js.cpp LibJS: Remove {Bytecode::,}Interpreter::global_object() 2022-08-23 13:58:30 +01:00
test-invalid-unicode-js.cpp Everywhere: Add sv suffix to strings relying on StringView(char const*) 2022-07-12 23:11:35 +02:00
test-js.cpp LibJS: Replace GlobalObject with VM in ArrayBuffer AOs [Part 11/19] 2022-08-23 13:58:30 +01:00
test-test262.cpp LibJS: Add the test-test262 utility 2022-09-11 20:25:51 +01:00
test-value-js.cpp AK+LibJS: Handle NaN-boxing pointers on AArch64 2022-09-21 11:55:57 +02:00