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 jsids instead of JS::Values 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.