mirror of
https://repo.dactyloidae.xyz/Dactyloidae/UXP.git
synced 2026-09-07 00:08:39 +09:00
WASM: Separate out ToTableIndex()
This commit is contained in:
parent
60036bd843
commit
99a0478445
1 changed files with 16 additions and 2 deletions
|
|
@ -1484,6 +1484,20 @@ const JSPropertySpec WasmTableObject::properties[] =
|
|||
JS_PS_END
|
||||
};
|
||||
|
||||
static bool
|
||||
ToTableIndex(JSContext* cx, HandleValue v, const Table& table, const char* noun, uint32_t* index)
|
||||
{
|
||||
if (!ToNonWrappingUint32(cx, v, UINT32_MAX, "Table", noun, index))
|
||||
return false;
|
||||
|
||||
if (*index >= table.length()) {
|
||||
JS_ReportErrorNumberASCII(cx, GetErrorMessage, nullptr, JSMSG_WASM_BAD_UINT32, "Table", noun);
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
/* static */ bool
|
||||
WasmTableObject::getImpl(JSContext* cx, const CallArgs& args)
|
||||
{
|
||||
|
|
@ -1491,7 +1505,7 @@ WasmTableObject::getImpl(JSContext* cx, const CallArgs& args)
|
|||
const Table& table = tableObj->table();
|
||||
|
||||
uint32_t index;
|
||||
if (!ToNonWrappingUint32(cx, args.get(0), table.length() - 1, "Table", "get index", &index))
|
||||
if (!ToTableIndex(cx, args.get(0), table, "get index", &index))
|
||||
return false;
|
||||
|
||||
ExternalTableElem& elem = table.externalArray()[index];
|
||||
|
|
@ -1530,7 +1544,7 @@ WasmTableObject::setImpl(JSContext* cx, const CallArgs& args)
|
|||
return false;
|
||||
|
||||
uint32_t index;
|
||||
if (!ToNonWrappingUint32(cx, args.get(0), table.length() - 1, "Table", "set index", &index))
|
||||
if (!ToTableIndex(cx, args.get(0), table, "set index", &index))
|
||||
return false;
|
||||
|
||||
RootedFunction value(cx);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue