A jsid
is a JavaScript identifier for a property or method of an object.
jsid
is either a 31-bit signed integer, interned string or object.
A few JSAPI functions use jsid
s instead of JS::Value
s for property names: JS_NextProperty
, JS_Enumerate
, and all functions with names ending in ById
.
Also, there is an additional jsid
value, JSID_VOID
, which does not occur in JS scripts but may be used to indicate the absence of a valid jsid
. A void jsid
is not a valid id and only arises as an exceptional API return value, such as in JS_NextProperty
. Embeddings must not pass JSID_VOID
into JSAPI entry points expecting a jsid
and do not need to handle JSID_VOID
in hooks receiving a jsid
except when explicitly noted in the API contract.
A jsid
is not implicitly convertible to or from a jsval
; JS_ValueToId
or JS_IdToValue
must be used instead.