mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-22 01:35:35 +00:00
Bug 1415291 - Baldr: factor out ToTableIndex() (r=bbouvier)
MozReview-Commit-ID: 9T8pJS5ajgT
This commit is contained in:
parent
5c61ce035d
commit
d33cebae08
@ -1729,6 +1729,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 (!EnforceRangeU32(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)
|
||||
{
|
||||
@ -1736,7 +1750,7 @@ WasmTableObject::getImpl(JSContext* cx, const CallArgs& args)
|
||||
const Table& table = tableObj->table();
|
||||
|
||||
uint32_t index;
|
||||
if (!EnforceRangeU32(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];
|
||||
@ -1775,7 +1789,7 @@ WasmTableObject::setImpl(JSContext* cx, const CallArgs& args)
|
||||
return false;
|
||||
|
||||
uint32_t index;
|
||||
if (!EnforceRangeU32(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…
Reference in New Issue
Block a user