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


#define PRIVATE_TO_JSVAL(p)  /* ... */

#define JSVAL_TO_PRIVATE(v)  /* ... */


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

 Last updated by: Jorend,