mirror of
https://github.com/SerenityOS/serenity
synced 2026-05-13 02:16:39 +02:00
Tests/LibWasm: Don't ignore the result of BigInt::export_data()
Prior to this commit, the test runner was ignoring the result, which meant that values that fit in less than 128 bits were shifted to remove the zero words (which is obviously incorrect). (cherry picked from commit 55e1ab88ad428db20554ae6a04465f20880a06ea)
This commit is contained in:
committed by
Ali Mohammad Pur
parent
0520de42f1
commit
1c19d3cfc4
@@ -285,10 +285,13 @@ JS_DEFINE_NATIVE_FUNCTION(WebAssemblyModule::wasm_invoke)
|
||||
}
|
||||
|
||||
u128 bits = 0;
|
||||
(void)argument.as_bigint().big_integer().unsigned_value().export_data({ bit_cast<u8*>(&bits), sizeof(bits) });
|
||||
auto bytes = argument.as_bigint().big_integer().unsigned_value().export_data({ bit_cast<u8*>(&bits), sizeof(bits) });
|
||||
VERIFY(!argument.as_bigint().big_integer().is_negative());
|
||||
|
||||
arguments.append(Wasm::Value(bits));
|
||||
if constexpr (AK::HostIsLittleEndian)
|
||||
arguments.append(Wasm::Value(bits << (128 - bytes * 8)));
|
||||
else
|
||||
arguments.append(Wasm::Value(bits >> (128 - bytes * 8)));
|
||||
break;
|
||||
}
|
||||
case Wasm::ValueType::Kind::FunctionReference:
|
||||
|
||||
Reference in New Issue
Block a user