.TH "spidermonkey.h" 3 "Sat Oct 12 2013" "Version 4.0.0a" "Coin" \" -*- nroff -*- .ad l .nh .SH NAME spidermonkey.h \- .SH SYNOPSIS .br .PP \fC#include \fP .br .SS "Macros" .in +1c .ti -1c .RI "#define \fBJS_DLL_CALLBACK\fP /* FIXME: set up this define properly\&. 20050601 mortene\&. */" .br .ti -1c .RI "#define \fBJSVAL_OBJECT\fP 0x0" .br .ti -1c .RI "#define \fBJSVAL_INT\fP 0x1" .br .ti -1c .RI "#define \fBJSVAL_DOUBLE\fP 0x2" .br .ti -1c .RI "#define \fBJSVAL_STRING\fP 0x4" .br .ti -1c .RI "#define \fBJSVAL_BOOLEAN\fP 0x6" .br .ti -1c .RI "#define \fBJS_BIT\fP(n) ((uint32_t)1 << (n))" .br .ti -1c .RI "#define \fBJS_BITMASK\fP(n) (JS_BIT(n) - 1)" .br .ti -1c .RI "#define \fBJSVAL_TAGBITS\fP 3" .br .ti -1c .RI "#define \fBJSVAL_TAGMASK\fP JS_BITMASK(JSVAL_TAGBITS)" .br .ti -1c .RI "#define \fBJSVAL_TAG\fP(v) ((v) & JSVAL_TAGMASK)" .br .ti -1c .RI "#define \fBJSVAL_SETTAG\fP(v, t) ((v) | (t))" .br .ti -1c .RI "#define \fBJSVAL_CLRTAG\fP(v) ((v) & ~(jsval)JSVAL_TAGMASK)" .br .ti -1c .RI "#define \fBJSVAL_IS_PRIMITIVE\fP(v) (!JSVAL_IS_OBJECT(v) || JSVAL_IS_NULL(v))" .br .ti -1c .RI "#define \fBJSVAL_IS_OBJECT\fP(v) (JSVAL_TAG(v) == JSVAL_OBJECT)" .br .ti -1c .RI "#define \fBJSVAL_IS_NUMBER\fP(v) (JSVAL_IS_INT(v) || JSVAL_IS_DOUBLE(v))" .br .ti -1c .RI "#define \fBJSVAL_IS_INT\fP(v) (((v) & JSVAL_INT) && (v) != JSVAL_VOID)" .br .ti -1c .RI "#define \fBJSVAL_IS_DOUBLE\fP(v) (JSVAL_TAG(v) == JSVAL_DOUBLE)" .br .ti -1c .RI "#define \fBJSVAL_IS_STRING\fP(v) (JSVAL_TAG(v) == JSVAL_STRING)" .br .ti -1c .RI "#define \fBJSVAL_IS_BOOLEAN\fP(v) (JSVAL_TAG(v) == JSVAL_BOOLEAN)" .br .ti -1c .RI "#define \fBJSVAL_IS_NULL\fP(v) ((v) == JSVAL_NULL)" .br .ti -1c .RI "#define \fBJSVAL_IS_VOID\fP(v) ((v) == JSVAL_VOID)" .br .ti -1c .RI "#define \fBBOOLEAN_TO_JSVAL\fP(b) JSVAL_SETTAG((jsval)(b) << JSVAL_TAGBITS, JSVAL_BOOLEAN)" .br .ti -1c .RI "#define \fBJSVAL_TO_BOOLEAN\fP(v) ((JSBool)((v) >> JSVAL_TAGBITS))" .br .ti -1c .RI "#define \fBJSVAL_INT_BITS\fP 31" .br .ti -1c .RI "#define \fBJSVAL_INT_POW2\fP(n) ((jsval)1 << (n))" .br .ti -1c .RI "#define \fBJSVAL_INT_MIN\fP ((jsval)1 - JSVAL_INT_POW2(30))" .br .ti -1c .RI "#define \fBJSVAL_INT_MAX\fP (JSVAL_INT_POW2(30) - 1)" .br .ti -1c .RI "#define \fBINT_FITS_IN_JSVAL\fP(i) ((uint32_t)((i)+JSVAL_INT_MAX) <= 2*JSVAL_INT_MAX)" .br .ti -1c .RI "#define \fBJSVAL_TO_INT\fP(v) ((int32_t)(v) >> 1)" .br .ti -1c .RI "#define \fBINT_TO_JSVAL\fP(i) (((jsval)(i) << 1) | JSVAL_INT)" .br .ti -1c .RI "#define \fBJSVAL_TO_GCTHING\fP(v) ((void *)JSVAL_CLRTAG(v))" .br .ti -1c .RI "#define \fBJSVAL_TO_OBJECT\fP(v) ((JSObject *)JSVAL_TO_GCTHING(v))" .br .ti -1c .RI "#define \fBJSVAL_TO_DOUBLE\fP(v) ((double *)JSVAL_TO_GCTHING(v))" .br .ti -1c .RI "#define \fBJSVAL_TO_STRING\fP(v) ((JSString *)JSVAL_TO_GCTHING(v))" .br .ti -1c .RI "#define \fBOBJECT_TO_JSVAL\fP(obj) ((jsval)(obj))" .br .ti -1c .RI "#define \fBDOUBLE_TO_JSVAL\fP(dp) JSVAL_SETTAG((jsval)(dp), JSVAL_DOUBLE)" .br .ti -1c .RI "#define \fBSTRING_TO_JSVAL\fP(str) JSVAL_SETTAG((jsval)(str), JSVAL_STRING)" .br .ti -1c .RI "#define \fBJSVAL_TO_PRIVATE\fP(v) ((void *)((v) & ~JSVAL_INT))" .br .ti -1c .RI "#define \fBPRIVATE_TO_JSVAL\fP(p) ((jsval)(p) | JSVAL_INT)" .br .ti -1c .RI "#define \fBJSPROP_ENUMERATE\fP 0x01" .br .ti -1c .RI "#define \fBJSPROP_READONLY\fP 0x02" .br .ti -1c .RI "#define \fBJSPROP_PERMANENT\fP 0x04" .br .ti -1c .RI "#define \fBJSPROP_EXPORTED\fP 0x08" .br .ti -1c .RI "#define \fBJSPROP_GETTER\fP 0x10" .br .ti -1c .RI "#define \fBJSPROP_SETTER\fP 0x20" .br .ti -1c .RI "#define \fBJSPROP_SHARED\fP 0x40" .br .ti -1c .RI "#define \fBJSPROP_INDEX\fP 0x80" .br .ti -1c .RI "#define \fBJS_FALSE\fP (int)0" .br .ti -1c .RI "#define \fBJS_TRUE\fP (int)1" .br .ti -1c .RI "#define \fBJSVAL_VOID\fP INT_TO_JSVAL(0 - JSVAL_INT_POW2(30))" .br .ti -1c .RI "#define \fBJSVAL_NULL\fP OBJECT_TO_JSVAL(0)" .br .ti -1c .RI "#define \fBJSVAL_ZERO\fP INT_TO_JSVAL(0)" .br .ti -1c .RI "#define \fBJSVAL_ONE\fP INT_TO_JSVAL(1)" .br .ti -1c .RI "#define \fBJSVAL_FALSE\fP BOOLEAN_TO_JSVAL(JS_FALSE)" .br .ti -1c .RI "#define \fBJSVAL_TRUE\fP BOOLEAN_TO_JSVAL(JS_TRUE)" .br .ti -1c .RI "#define \fBJSCLASS_HAS_PRIVATE\fP (1<<0)" .br .ti -1c .RI "#define \fBJSCLASS_NEW_ENUMERATE\fP (1<<1)" .br .ti -1c .RI "#define \fBJSCLASS_NEW_RESOLVE\fP (1<<2)" .br .ti -1c .RI "#define \fBJSCLASS_PRIVATE_IS_NSISUPPORTS\fP (1<<3)" .br .ti -1c .RI "#define \fBJSCLASS_SHARE_ALL_PROPERTIES\fP (1<<4)" .br .ti -1c .RI "#define \fBJSCLASS_NEW_RESOLVE_GETS_START\fP (1<<5)" .br .ti -1c .RI "#define \fBJSFUN_BOUND_METHOD\fP 0x40" .br .ti -1c .RI "#define \fBJSOPTION_STRICT\fP JS_BIT(0)" .br .ti -1c .RI "#define \fBJSOPTION_WERROR\fP JS_BIT(1)" .br .ti -1c .RI "#define \fBJSOPTION_VAROBJFIX\fP JS_BIT(2)" .br .ti -1c .RI "#define \fBJSOPTION_PRIVATE_IS_NSISUPPORTS\fP JS_BIT(3)" .br .ti -1c .RI "#define \fBJSOPTION_COMPILE_N_GO\fP JS_BIT(4)" .br .in -1c .SS "Typedefs" .in +1c .ti -1c .RI "typedef int \fBJSBool\fP" .br .ti -1c .RI "typedef long \fBjsword\fP" .br .ti -1c .RI "typedef jsword \fBjsval\fP" .br .ti -1c .RI "typedef jsword \fBjsid\fP" .br .ti -1c .RI "typedef int \fBintN\fP" .br .ti -1c .RI "typedef unsigned int \fBuintN\fP" .br .ti -1c .RI "typedef uint16_t \fBjschar\fP" .br .ti -1c .RI "typedef int32_t \fBjsrefcount\fP" .br .ti -1c .RI "typedef uint8_t \fBjsbytecode\fP" .br .ti -1c .RI "typedef uint32_t \fBJSHashNumber\fP" .br .ti -1c .RI "typedef uint32_t \fBjsatomid\fP" .br .ti -1c .RI "typedef enum JSType \fBJSType\fP" .br .ti -1c .RI "typedef enum JSAccessMode \fBJSAccessMode\fP" .br .ti -1c .RI "typedef enum JSGCStatus \fBJSGCStatus\fP" .br .ti -1c .RI "typedef void \fBJSRuntime\fP" .br .ti -1c .RI "typedef void \fBJSContext\fP" .br .ti -1c .RI "typedef void \fBJSObject\fP" .br .ti -1c .RI "typedef void \fBJSObjectOps\fP" .br .ti -1c .RI "typedef void \fBJSXDRState\fP" .br .ti -1c .RI "typedef void \fBJSString\fP" .br .ti -1c .RI "typedef struct JSClass \fBJSClass\fP" .br .ti -1c .RI "typedef struct JSPropertySpec \fBJSPropertySpec\fP" .br .ti -1c .RI "typedef int \fBJSVersion\fP" .br .ti -1c .RI "typedef void \fBJSFunction\fP" .br .ti -1c .RI "typedef struct JSFunctionSpec \fBJSFunctionSpec\fP" .br .ti -1c .RI "typedef struct JSErrorReport \fBJSErrorReport\fP" .br .ti -1c .RI "typedef void \fBJSScript\fP" .br .ti -1c .RI "typedef JSBool(* \fBJSPropertyOp\fP )(JSContext *, JSObject *, jsval, jsval *)" .br .ti -1c .RI "typedef JSBool(* \fBJSEnumerateOp\fP )(JSContext *, JSObject *)" .br .ti -1c .RI "typedef JSBool(* \fBJSResolveOp\fP )(JSContext *, JSObject *, jsval)" .br .ti -1c .RI "typedef JSBool(* \fBJSConvertOp\fP )(JSContext *, JSObject *, JSType, jsval *)" .br .ti -1c .RI "typedef void(* \fBJSFinalizeOp\fP )(JSContext *, JSObject *)" .br .ti -1c .RI "typedef JSObjectOps *(* \fBJSGetObjectOps\fP )(JSContext *, JSClass *)" .br .ti -1c .RI "typedef JSBool(* \fBJSCheckAccessOp\fP )(JSContext *, JSObject *, jsval, JSAccessMode, jsval *)" .br .ti -1c .RI "typedef JSBool(* \fBJSNative\fP )(JSContext *, JSObject *, uintN, jsval *, jsval *)" .br .ti -1c .RI "typedef JSBool(* \fBJSXDRObjectOp\fP )(JSXDRState *, JSObject **)" .br .ti -1c .RI "typedef JSBool(* \fBJSHasInstanceOp\fP )(JSContext *, JSObject *, jsval, JSBool *)" .br .ti -1c .RI "typedef uint32_t(* \fBJSMarkOp\fP )(JSContext *, JSObject *, void *)" .br .ti -1c .RI "typedef void(* \fBJSErrorReporter\fP )(JSContext *, const char *, JSErrorReport *)" .br .ti -1c .RI "typedef JSBool(* \fBJSGCCallback\fP )(JSContext *, JSGCStatus)" .br .ti -1c .RI "typedef JSBool(* \fBJS_EvaluateScript_t\fP )(JSContext *, JSObject *, const char *, uintN, const char *, uintN, jsval *)" .br .ti -1c .RI "typedef JSString *(* \fBJS_ValueToString_t\fP )(JSContext *, jsval)" .br .ti -1c .RI "typedef char *(* \fBJS_GetStringBytes_t\fP )(JSString *)" .br .ti -1c .RI "typedef JSBool(* \fBJS_SetProperty_t\fP )(JSContext *, JSObject *, const char *, jsval *)" .br .ti -1c .RI "typedef JSBool(* \fBJS_GetProperty_t\fP )(JSContext *, JSObject *, const char *, jsval *)" .br .ti -1c .RI "typedef JSBool(* \fBJS_CallFunctionName_t\fP )(JSContext *, JSObject *, const char *, uintN, jsval *, jsval *)" .br .ti -1c .RI "typedef JSBool(* \fBJS_CallFunctionValue_t\fP )(JSContext *, JSObject *, jsval, uintN, jsval *, jsval *)" .br .ti -1c .RI "typedef JSObject *(* \fBJS_ConstructObjectWithArguments_t\fP )(JSContext *, JSClass *, JSObject *, JSObject *, uintN, jsval *)" .br .ti -1c .RI "typedef JSRuntime *(* \fBJS_NewRuntime_t\fP )(uint32_t)" .br .ti -1c .RI "typedef void(* \fBJS_DestroyRuntime_t\fP )(JSRuntime *)" .br .ti -1c .RI "typedef JSContext *(* \fBJS_NewContext_t\fP )(JSRuntime *, size_t)" .br .ti -1c .RI "typedef void(* \fBJS_DestroyContext_t\fP )(JSContext *)" .br .ti -1c .RI "typedef void(* \fBJS_ShutDown_t\fP )(void)" .br .ti -1c .RI "typedef JSObject *(* \fBJS_NewObject_t\fP )(JSContext *, JSClass *, JSObject *, JSObject *)" .br .ti -1c .RI "typedef JSBool(* \fBJS_InitStandardClasses_t\fP )(JSContext *, JSObject *)" .br .ti -1c .RI "typedef JSErrorReporter(* \fBJS_SetErrorReporter_t\fP )(JSContext *, JSErrorReporter)" .br .ti -1c .RI "typedef JSBool(* \fBJS_PropertyStub_t\fP )(JSContext *, JSObject *, jsval, jsval *)" .br .ti -1c .RI "typedef JSBool(* \fBJS_EnumerateStub_t\fP )(JSContext *, JSObject *)" .br .ti -1c .RI "typedef JSBool(* \fBJS_ResolveStub_t\fP )(JSContext *, JSObject *, jsval)" .br .ti -1c .RI "typedef JSBool(* \fBJS_ConvertStub_t\fP )(JSContext *, JSObject *, JSType, jsval *)" .br .ti -1c .RI "typedef void(* \fBJS_FinalizeStub_t\fP )(JSContext *, JSObject *)" .br .ti -1c .RI "typedef const char *(* \fBJS_GetImplementationVersion_t\fP )(void)" .br .ti -1c .RI "typedef void *(* \fBJS_GetPrivate_t\fP )(JSContext *, JSObject *)" .br .ti -1c .RI "typedef JSBool(* \fBJS_SetPrivate_t\fP )(JSContext *, JSObject *, void *)" .br .ti -1c .RI "typedef JSFunction *(* \fBJS_NewFunction_t\fP )(JSContext *, JSNative, uintN, uintN flags, JSObject *, const char *)" .br .ti -1c .RI "typedef JSObject *(* \fBJS_GetFunctionObject_t\fP )(JSFunction *)" .br .ti -1c .RI "typedef JSObject *(* \fBJS_DefineObject_t\fP )(JSContext *, JSObject *, const char *, JSClass *, JSObject *, uintN)" .br .ti -1c .RI "typedef JSBool(* \fBJS_DefineProperties_t\fP )(JSContext *, JSObject *, JSPropertySpec *)" .br .ti -1c .RI "typedef JSObject *(* \fBJS_GetParent_t\fP )(JSContext *, JSObject *)" .br .ti -1c .RI "typedef JSBool(* \fBJS_SetParent_t\fP )(JSContext *, JSObject *, JSObject *)" .br .ti -1c .RI "typedef JSBool(* \fBJS_DefineFunctions_t\fP )(JSContext *, JSObject *, JSFunctionSpec *)" .br .ti -1c .RI "typedef JSString *(* \fBJS_NewStringCopyZ_t\fP )(JSContext *, const char *)" .br .ti -1c .RI "typedef JSType(* \fBJS_TypeOfValue_t\fP )(JSContext *, jsval)" .br .ti -1c .RI "typedef const char *(* \fBJS_GetTypeName_t\fP )(JSContext *, JSType)" .br .ti -1c .RI "typedef JSBool(* \fBJS_InstanceOf_t\fP )(JSContext *, JSObject *, JSClass *, jsval *)" .br .ti -1c .RI "typedef JSObject *(* \fBJS_InitClass_t\fP )(JSContext *, JSObject *, JSObject *, JSClass *, JSNative, uintN, JSPropertySpec *, JSFunctionSpec *, JSPropertySpec *, JSFunctionSpec *)" .br .ti -1c .RI "typedef JSBool(* \fBJS_NewDoubleValue_t\fP )(JSContext *, double, jsval *)" .br .ti -1c .RI "typedef void *(* \fBJS_GetContextPrivate_t\fP )(JSContext *)" .br .ti -1c .RI "typedef void(* \fBJS_SetContextPrivate_t\fP )(JSContext *, void *)" .br .ti -1c .RI "typedef JSBool(* \fBJS_ValueToBoolean_t\fP )(JSContext *, jsval, JSBool *)" .br .ti -1c .RI "typedef JSBool(* \fBJS_ValueToNumber_t\fP )(JSContext *, jsval, double *)" .br .ti -1c .RI "typedef JSObject *(* \fBJS_NewArrayObject_t\fP )(JSContext *, int32_t, jsval *)" .br .ti -1c .RI "typedef JSBool(* \fBJS_GetArrayLength_t\fP )(JSContext *, JSObject *, uint32_t *)" .br .ti -1c .RI "typedef JSBool(* \fBJS_SetArrayLength_t\fP )(JSContext *, JSObject *, uint32_t)" .br .ti -1c .RI "typedef JSBool(* \fBJS_HasArrayLength_t\fP )(JSContext *, JSObject *, uint32_t *)" .br .ti -1c .RI "typedef JSBool(* \fBJS_GetElement_t\fP )(JSContext *, JSObject *, int32_t, jsval *)" .br .ti -1c .RI "typedef JSBool(* \fBJS_SetElement_t\fP )(JSContext *, JSObject *, int32_t, jsval *)" .br .ti -1c .RI "typedef JSBool(* \fBJS_AddRoot_t\fP )(JSContext *, void *)" .br .ti -1c .RI "typedef JSBool(* \fBJS_RemoveRoot_t\fP )(JSContext *, void *)" .br .ti -1c .RI "typedef size_t(* \fBJS_GetStringLength_t\fP )(JSString *)" .br .ti -1c .RI "typedef JSBool(* \fBJS_LookupProperty_t\fP )(JSContext *, JSObject *, const char *, jsval *)" .br .ti -1c .RI "typedef JSBool(* \fBJS_DefineProperty_t\fP )(JSContext *, JSObject *, const char *, jsval, JSPropertyOp, JSPropertyOp, uintN)" .br .ti -1c .RI "typedef JSScript *(* \fBJS_CompileFile_t\fP )(JSContext *, JSObject *, const char *)" .br .ti -1c .RI "typedef JSBool(* \fBJS_ValueToObject_t\fP )(JSContext *, jsval, JSObject **)" .br .ti -1c .RI "typedef JSBool(* \fBJS_ExecuteScript_t\fP )(JSContext *, JSObject *, JSScript *, jsval *)" .br .ti -1c .RI "typedef JSBool(* \fBJS_IsExceptionPending_t\fP )(JSContext *)" .br .ti -1c .RI "typedef JSBool(* \fBJS_GetPendingException_t\fP )(JSContext *, jsval *)" .br .ti -1c .RI "typedef void(* \fBJS_SetPendingException_t\fP )(JSContext *, jsval)" .br .ti -1c .RI "typedef void(* \fBJS_ClearPendingException_t\fP )(JSContext *)" .br .ti -1c .RI "typedef double *(* \fBJS_NewDouble_t\fP )(JSContext *, double)" .br .ti -1c .RI "typedef JSBool(* \fBJS_CallFunction_t\fP )(JSContext *, JSObject *, JSFunction *, uintN, jsval *, jsval *)" .br .ti -1c .RI "typedef JSFunction *(* \fBJS_ValueToFunction_t\fP )(JSContext *, jsval)" .br .ti -1c .RI "typedef void(* \fBJS_ReportError_t\fP )(JSContext *, const char *,\&.\&.\&.)" .br .ti -1c .RI "typedef JSBool(* \fBJS_IsArrayObject_t\fP )(JSContext *, JSObject *)" .br .ti -1c .RI "typedef JSBool(* \fBJS_ObjectIsFunction_t\fP )(JSContext *, JSObject *)" .br .ti -1c .RI "typedef JSBool(* \fBJS_ValueToECMAInt32_t\fP )(JSContext *, jsval, int32_t *)" .br .ti -1c .RI "typedef JSFunction *(* \fBJS_DefineFunction_t\fP )(JSContext *, JSObject *, const char *, JSNative, uintN, uintN)" .br .ti -1c .RI "typedef JSObject *(* \fBJS_GetGlobalObject_t\fP )(JSContext *)" .br .ti -1c .RI "typedef JSGCCallback(* \fBJS_SetGCCallback_t\fP )(JSContext *, JSGCCallback)" .br .ti -1c .RI "typedef void(* \fBJS_GC_t\fP )(JSContext *)" .br .ti -1c .RI "typedef void(* \fBJS_MaybeGC_t\fP )(JSContext *)" .br .ti -1c .RI "typedef JSBool(* \fBJS_IsRunning_t\fP )(JSContext *)" .br .ti -1c .RI "typedef JSBool(* \fBJS_DeleteProperty_t\fP )(JSContext *, JSObject *, const char *)" .br .ti -1c .RI "typedef JSScript *(* \fBJS_CompileScript_t\fP )(JSContext *, JSObject *, const char *, size_t, const char *, uintN)" .br .ti -1c .RI "typedef jsval(* \fBJS_GetNaNValue_t\fP )(JSContext *)" .br .ti -1c .RI "typedef jsval(* \fBJS_GetNegativeInfinityValue_t\fP )(JSContext *)" .br .ti -1c .RI "typedef jsval(* \fBJS_GetPositiveInfinityValue_t\fP )(JSContext *)" .br .ti -1c .RI "typedef jsval(* \fBJS_GetEmptyStringValue_t\fP )(JSContext *)" .br .ti -1c .RI "typedef JSBool(* \fBJS_SetPropertyAttributes_t\fP )(JSContext *, JSObject *, const char *, uintN, JSBool *)" .br .ti -1c .RI "typedef JSBool(* \fBJS_GetPropertyAttributes_t\fP )(JSContext *, JSObject *, const char *, uintN *, JSBool *)" .br .ti -1c .RI "typedef JSClass *(* \fBJS_GetClass_t\fP )(JSObject *)" .br .ti -1c .RI "typedef JSObject *(* \fBJS_GetPrototype_t\fP )(JSContext *, JSObject *)" .br .ti -1c .RI "typedef JSObject *(* \fBJS_SetPrototype_t\fP )(JSContext *, JSObject *, JSObject *)" .br .ti -1c .RI "typedef intN(* \fBJS_CompareStrings_t\fP )(JSString *, JSString *)" .br .ti -1c .RI "typedef uint32_t(* \fBJS_GetOptions_t\fP )(JSContext *)" .br .ti -1c .RI "typedef uint32_t(* \fBJS_SetOptions_t\fP )(JSContext *, uint32_t)" .br .ti -1c .RI "typedef uint32_t(* \fBJS_ToggleOptions_t\fP )(JSContext *, uint32_t)" .br .ti -1c .RI "typedef struct JSIdArray *(* \fBJS_Enumerate_t\fP )(JSContext *, JSObject *)" .br .ti -1c .RI "typedef JSBool(* \fBJS_IdToValue_t\fP )(JSContext *, jsid, jsval *)" .br .ti -1c .RI "typedef const char *(* \fBJS_GetFunctionName_t\fP )(JSFunction *)" .br .ti -1c .RI "typedef JSObject *(* \fBJS_GetConstructor_t\fP )(JSContext *, JSObject *)" .br .ti -1c .RI "typedef void(* \fBJS_DestroyIdArray_t\fP )(JSContext *, struct JSIdArray *)" .br .in -1c .SS "Enumerations" .in +1c .ti -1c .RI "enum \fBJSType\fP { \fBJSTYPE_VOID\fP, \fBJSTYPE_OBJECT\fP, \fBJSTYPE_FUNCTION\fP, \fBJSTYPE_STRING\fP, \fBJSTYPE_NUMBER\fP, \fBJSTYPE_BOOLEAN\fP, \fBJSTYPE_LIMIT\fP }" .br .ti -1c .RI "enum \fBJSAccessMode\fP { \fBJSACC_PROTO\fP = 0, \fBJSACC_PARENT\fP = 1, \fBJSACC_IMPORT\fP = 2, \fBJSACC_WATCH\fP = 3, \fBJSACC_READ\fP = 4, \fBJSACC_WRITE\fP = 8, \fBJSACC_LIMIT\fP }" .br .ti -1c .RI "enum \fBJSGCStatus\fP { \fBJSGC_BEGIN\fP, \fBJSGC_END\fP, \fBJSGC_MARK_END\fP, \fBJSGC_FINALIZE_END\fP }" .br .in -1c .SS "Functions" .in +1c .ti -1c .RI "const SpiderMonkey_t * \fBspidermonkey\fP (void)" .br .in -1c .SH "Detailed Description" .PP .SH "Author" .PP Generated automatically by Doxygen for Coin from the source code\&.