Obsolete since JSAPI 42
This feature is obsolete. Although it may still work in some browsers, its use is discouraged since it could be removed at any time. Try to avoid using it.

Cast raw void * pointers to type jsval and vice versa.

Please use JS::PrivateValue instead in SpiderMonkey 45 or later.


PRIVATE_TO_JSVAL(void *ptr);

void *
JSVAL_TO_PRIVATE(jsval v); // Obsoleted since JSAPI 32


With PRIVATE_TO_JSVAL(), an application can store a private data pointer, p, as a jsval. This can be useful with reserved slots.

The private data pointer can point to application-defined memory of any type, but the pointer must be two-byte-aligned (that is, (int) p must be even).

Private data is managed entirely by the application. The JavaScript engine itself never uses a private data pointer. Private data is not garbage collected. It is the application's responsibility to determine when it is safe to dereference a private data pointer.

Document Tags and Contributors

 Contributors to this page: arai, fscholz, ethertank, Jorend, Dria, Nickolay, Callek
 Last updated by: arai,