mirror of
https://repo.dactyloidae.xyz/Dactyloidae/UXP.git
synced 2026-10-29 18:47:31 +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
|
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
|
/* static */ bool
|
||||||
WasmTableObject::getImpl(JSContext* cx, const CallArgs& args)
|
WasmTableObject::getImpl(JSContext* cx, const CallArgs& args)
|
||||||
{
|
{
|
||||||
|
|
@ -1491,7 +1505,7 @@ WasmTableObject::getImpl(JSContext* cx, const CallArgs& args)
|
||||||
const Table& table = tableObj->table();
|
const Table& table = tableObj->table();
|
||||||
|
|
||||||
uint32_t index;
|
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;
|
return false;
|
||||||
|
|
||||||
ExternalTableElem& elem = table.externalArray()[index];
|
ExternalTableElem& elem = table.externalArray()[index];
|
||||||
|
|
@ -1530,7 +1544,7 @@ WasmTableObject::setImpl(JSContext* cx, const CallArgs& args)
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
uint32_t index;
|
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;
|
return false;
|
||||||
|
|
||||||
RootedFunction value(cx);
|
RootedFunction value(cx);
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue