jsid is either a 31-bit signed integer, interned string or object.
Also, there is an additional
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.