---
name: "spidermonkey.h"
section: "3"
platform: "linux"
package: "libcoin80-doc"
version: "3.1.4~abc9f50-7"
release: "Debian 8 (Jessie)"
platforms: ["linux"]
url: "https://new.carta.tech/spidermonkey.h"
---

# spidermonkey.h(3)

## NAME

spidermonkey.h -

## SYNOPSIS

`#include <Inventor/C/basic.h>`\

### Macros

\#define **JS\_DLL\_CALLBACK**   /\* FIXME: set up this define properly. 20050601 mortene. \*/\
 \#define **JSVAL\_OBJECT**   0x0\
 \#define **JSVAL\_INT**   0x1\
 \#define **JSVAL\_DOUBLE**   0x2\
 \#define **JSVAL\_STRING**   0x4\
 \#define **JSVAL\_BOOLEAN**   0x6\
 \#define **JS\_BIT**(n)   ((uint32\_t)1 \<\< (n))\
 \#define **JS\_BITMASK**(n)   (JS\_BIT(n) - 1)\
 \#define **JSVAL\_TAGBITS**   3\
 \#define **JSVAL\_TAGMASK**   JS\_BITMASK(JSVAL\_TAGBITS)\
 \#define **JSVAL\_TAG**(v)   ((v) & JSVAL\_TAGMASK)\
 \#define **JSVAL\_SETTAG**(v, t)   ((v) \| (t))\
 \#define **JSVAL\_CLRTAG**(v)   ((v) & ~(jsval)JSVAL\_TAGMASK)\
 \#define **JSVAL\_IS\_PRIMITIVE**(v)   (!JSVAL\_IS\_OBJECT(v) \|\| JSVAL\_IS\_NULL(v))\
 \#define **JSVAL\_IS\_OBJECT**(v)   (JSVAL\_TAG(v) == JSVAL\_OBJECT)\
 \#define **JSVAL\_IS\_NUMBER**(v)   (JSVAL\_IS\_INT(v) \|\| JSVAL\_IS\_DOUBLE(v))\
 \#define **JSVAL\_IS\_INT**(v)   (((v) & JSVAL\_INT) && (v) != JSVAL\_VOID)\
 \#define **JSVAL\_IS\_DOUBLE**(v)   (JSVAL\_TAG(v) == JSVAL\_DOUBLE)\
 \#define **JSVAL\_IS\_STRING**(v)   (JSVAL\_TAG(v) == JSVAL\_STRING)\
 \#define **JSVAL\_IS\_BOOLEAN**(v)   (JSVAL\_TAG(v) == JSVAL\_BOOLEAN)\
 \#define **JSVAL\_IS\_NULL**(v)   ((v) == JSVAL\_NULL)\
 \#define **JSVAL\_IS\_VOID**(v)   ((v) == JSVAL\_VOID)\
 \#define **BOOLEAN\_TO\_JSVAL**(b)   JSVAL\_SETTAG((jsval)(b) \<\< JSVAL\_TAGBITS, JSVAL\_BOOLEAN)\
 \#define **JSVAL\_TO\_BOOLEAN**(v)   ((JSBool)((v) \>\> JSVAL\_TAGBITS))\
 \#define **JSVAL\_INT\_BITS**   31\
 \#define **JSVAL\_INT\_POW2**(n)   ((jsval)1 \<\< (n))\
 \#define **JSVAL\_INT\_MIN**   ((jsval)1 - JSVAL\_INT\_POW2(30))\
 \#define **JSVAL\_INT\_MAX**   (JSVAL\_INT\_POW2(30) - 1)\
 \#define **INT\_FITS\_IN\_JSVAL**(i)   ((uint32\_t)((i)+JSVAL\_INT\_MAX) \<= 2\*JSVAL\_INT\_MAX)\
 \#define **JSVAL\_TO\_INT**(v)   ((int32\_t)(v) \>\> 1)\
 \#define **INT\_TO\_JSVAL**(i)   (((jsval)(i) \<\< 1) \| JSVAL\_INT)\
 \#define **JSVAL\_TO\_GCTHING**(v)   ((void \*)JSVAL\_CLRTAG(v))\
 \#define **JSVAL\_TO\_OBJECT**(v)   ((JSObject \*)JSVAL\_TO\_GCTHING(v))\
 \#define **JSVAL\_TO\_DOUBLE**(v)   ((double \*)JSVAL\_TO\_GCTHING(v))\
 \#define **JSVAL\_TO\_STRING**(v)   ((JSString \*)JSVAL\_TO\_GCTHING(v))\
 \#define **OBJECT\_TO\_JSVAL**(obj)   ((jsval)(obj))\
 \#define **DOUBLE\_TO\_JSVAL**(dp)   JSVAL\_SETTAG((jsval)(dp), JSVAL\_DOUBLE)\
 \#define **STRING\_TO\_JSVAL**(str)   JSVAL\_SETTAG((jsval)(str), JSVAL\_STRING)\
 \#define **JSVAL\_TO\_PRIVATE**(v)   ((void \*)((v) & ~JSVAL\_INT))\
 \#define **PRIVATE\_TO\_JSVAL**(p)   ((jsval)(p) \| JSVAL\_INT)\
 \#define **JSPROP\_ENUMERATE**   0x01\
 \#define **JSPROP\_READONLY**   0x02\
 \#define **JSPROP\_PERMANENT**   0x04\
 \#define **JSPROP\_EXPORTED**   0x08\
 \#define **JSPROP\_GETTER**   0x10\
 \#define **JSPROP\_SETTER**   0x20\
 \#define **JSPROP\_SHARED**   0x40\
 \#define **JSPROP\_INDEX**   0x80\
 \#define **JS\_FALSE**   (int)0\
 \#define **JS\_TRUE**   (int)1\
 \#define **JSVAL\_VOID**   INT\_TO\_JSVAL(0 - JSVAL\_INT\_POW2(30))\
 \#define **JSVAL\_NULL**   OBJECT\_TO\_JSVAL(0)\
 \#define **JSVAL\_ZERO**   INT\_TO\_JSVAL(0)\
 \#define **JSVAL\_ONE**   INT\_TO\_JSVAL(1)\
 \#define **JSVAL\_FALSE**   BOOLEAN\_TO\_JSVAL(JS\_FALSE)\
 \#define **JSVAL\_TRUE**   BOOLEAN\_TO\_JSVAL(JS\_TRUE)\
 \#define **JSCLASS\_HAS\_PRIVATE**   (1\<\<0)\
 \#define **JSCLASS\_NEW\_ENUMERATE**   (1\<\<1)\
 \#define **JSCLASS\_NEW\_RESOLVE**   (1\<\<2)\
 \#define **JSCLASS\_PRIVATE\_IS\_NSISUPPORTS**   (1\<\<3)\
 \#define **JSCLASS\_SHARE\_ALL\_PROPERTIES**   (1\<\<4)\
 \#define **JSCLASS\_NEW\_RESOLVE\_GETS\_START**   (1\<\<5)\
 \#define **JSFUN\_BOUND\_METHOD**   0x40\
 \#define **JSOPTION\_STRICT**   JS\_BIT(0)\
 \#define **JSOPTION\_WERROR**   JS\_BIT(1)\
 \#define **JSOPTION\_VAROBJFIX**   JS\_BIT(2)\
 \#define **JSOPTION\_PRIVATE\_IS\_NSISUPPORTS**   JS\_BIT(3)\
 \#define **JSOPTION\_COMPILE\_N\_GO**   JS\_BIT(4)\

### Typedefs

typedef int **JSBool**\
 typedef long **jsword**\
 typedef jsword **jsval**\
 typedef jsword **jsid**\
 typedef int **intN**\
 typedef unsigned int **uintN**\
 typedef uint16\_t **jschar**\
 typedef int32\_t **jsrefcount**\
 typedef uint8\_t **jsbytecode**\
 typedef uint32\_t **JSHashNumber**\
 typedef uint32\_t **jsatomid**\
 typedef enum JSType **JSType**\
 typedef enum JSAccessMode **JSAccessMode**\
 typedef enum JSGCStatus **JSGCStatus**\
 typedef void **JSRuntime**\
 typedef void **JSContext**\
 typedef void **JSObject**\
 typedef void **JSObjectOps**\
 typedef void **JSXDRState**\
 typedef void **JSString**\
 typedef struct JSClass **JSClass**\
 typedef struct JSPropertySpec **JSPropertySpec**\
 typedef int **JSVersion**\
 typedef void **JSFunction**\
 typedef struct JSFunctionSpec **JSFunctionSpec**\
 typedef struct JSErrorReport **JSErrorReport**\
 typedef void **JSScript**\
 typedef JSBool(\* **JSPropertyOp** )(JSContext \*, JSObject \*, jsval, jsval \*)\
 typedef JSBool(\* **JSEnumerateOp** )(JSContext \*, JSObject \*)\
 typedef JSBool(\* **JSResolveOp** )(JSContext \*, JSObject \*, jsval)\
 typedef JSBool(\* **JSConvertOp** )(JSContext \*, JSObject \*, JSType, jsval \*)\
 typedef void(\* **JSFinalizeOp** )(JSContext \*, JSObject \*)\
 typedef JSObjectOps \*(\* **JSGetObjectOps** )(JSContext \*, JSClass \*)\
 typedef JSBool(\* **JSCheckAccessOp** )(JSContext \*, JSObject \*, jsval, JSAccessMode, jsval \*)\
 typedef JSBool(\* **JSNative** )(JSContext \*, JSObject \*, uintN, jsval \*, jsval \*)\
 typedef JSBool(\* **JSXDRObjectOp** )(JSXDRState \*, JSObject \*\*)\
 typedef JSBool(\* **JSHasInstanceOp** )(JSContext \*, JSObject \*, jsval, JSBool \*)\
 typedef uint32\_t(\* **JSMarkOp** )(JSContext \*, JSObject \*, void \*)\
 typedef void(\* **JSErrorReporter** )(JSContext \*, const char \*, JSErrorReport \*)\
 typedef JSBool(\* **JSGCCallback** )(JSContext \*, JSGCStatus)\
 typedef JSBool(\* **JS\_EvaluateScript\_t** )(JSContext \*, JSObject \*, const char \*, uintN, const char \*, uintN, jsval \*)\
 typedef JSString \*(\* **JS\_ValueToString\_t** )(JSContext \*, jsval)\
 typedef char \*(\* **JS\_GetStringBytes\_t** )(JSString \*)\
 typedef JSBool(\* **JS\_SetProperty\_t** )(JSContext \*, JSObject \*, const char \*, jsval \*)\
 typedef JSBool(\* **JS\_GetProperty\_t** )(JSContext \*, JSObject \*, const char \*, jsval \*)\
 typedef JSBool(\* **JS\_CallFunctionName\_t** )(JSContext \*, JSObject \*, const char \*, uintN, jsval \*, jsval \*)\
 typedef JSBool(\* **JS\_CallFunctionValue\_t** )(JSContext \*, JSObject \*, jsval, uintN, jsval \*, jsval \*)\
 typedef JSObject \*(\* **JS\_ConstructObjectWithArguments\_t** )(JSContext \*, JSClass \*, JSObject \*, JSObject \*, uintN, jsval \*)\
 typedef JSRuntime \*(\* **JS\_NewRuntime\_t** )(uint32\_t)\
 typedef void(\* **JS\_DestroyRuntime\_t** )(JSRuntime \*)\
 typedef JSContext \*(\* **JS\_NewContext\_t** )(JSRuntime \*, size\_t)\
 typedef void(\* **JS\_DestroyContext\_t** )(JSContext \*)\
 typedef void(\* **JS\_ShutDown\_t** )(void)\
 typedef JSObject \*(\* **JS\_NewObject\_t** )(JSContext \*, JSClass \*, JSObject \*, JSObject \*)\
 typedef JSBool(\* **JS\_InitStandardClasses\_t** )(JSContext \*, JSObject \*)\
 typedef JSErrorReporter(\* **JS\_SetErrorReporter\_t** )(JSContext \*, JSErrorReporter)\
 typedef JSBool(\* **JS\_PropertyStub\_t** )(JSContext \*, JSObject \*, jsval, jsval \*)\
 typedef JSBool(\* **JS\_EnumerateStub\_t** )(JSContext \*, JSObject \*)\
 typedef JSBool(\* **JS\_ResolveStub\_t** )(JSContext \*, JSObject \*, jsval)\
 typedef JSBool(\* **JS\_ConvertStub\_t** )(JSContext \*, JSObject \*, JSType, jsval \*)\
 typedef void(\* **JS\_FinalizeStub\_t** )(JSContext \*, JSObject \*)\
 typedef const char \*(\* **JS\_GetImplementationVersion\_t** )(void)\
 typedef void \*(\* **JS\_GetPrivate\_t** )(JSContext \*, JSObject \*)\
 typedef JSBool(\* **JS\_SetPrivate\_t** )(JSContext \*, JSObject \*, void \*)\
 typedef JSFunction \*(\* **JS\_NewFunction\_t** )(JSContext \*, JSNative, uintN, uintN flags, JSObject \*, const char \*)\
 typedef JSObject \*(\* **JS\_GetFunctionObject\_t** )(JSFunction \*)\
 typedef JSObject \*(\* **JS\_DefineObject\_t** )(JSContext \*, JSObject \*, const char \*, JSClass \*, JSObject \*, uintN)\
 typedef JSBool(\* **JS\_DefineProperties\_t** )(JSContext \*, JSObject \*, JSPropertySpec \*)\
 typedef JSObject \*(\* **JS\_GetParent\_t** )(JSContext \*, JSObject \*)\
 typedef JSBool(\* **JS\_SetParent\_t** )(JSContext \*, JSObject \*, JSObject \*)\
 typedef JSBool(\* **JS\_DefineFunctions\_t** )(JSContext \*, JSObject \*, JSFunctionSpec \*)\
 typedef JSString \*(\* **JS\_NewStringCopyZ\_t** )(JSContext \*, const char \*)\
 typedef JSType(\* **JS\_TypeOfValue\_t** )(JSContext \*, jsval)\
 typedef const char \*(\* **JS\_GetTypeName\_t** )(JSContext \*, JSType)\
 typedef JSBool(\* **JS\_InstanceOf\_t** )(JSContext \*, JSObject \*, JSClass \*, jsval \*)\
 typedef JSObject \*(\* **JS\_InitClass\_t** )(JSContext \*, JSObject \*, JSObject \*, JSClass \*, JSNative, uintN, JSPropertySpec \*, JSFunctionSpec \*, JSPropertySpec \*, JSFunctionSpec \*)\
 typedef JSBool(\* **JS\_NewDoubleValue\_t** )(JSContext \*, double, jsval \*)\
 typedef void \*(\* **JS\_GetContextPrivate\_t** )(JSContext \*)\
 typedef void(\* **JS\_SetContextPrivate\_t** )(JSContext \*, void \*)\
 typedef JSBool(\* **JS\_ValueToBoolean\_t** )(JSContext \*, jsval, JSBool \*)\
 typedef JSBool(\* **JS\_ValueToNumber\_t** )(JSContext \*, jsval, double \*)\
 typedef JSObject \*(\* **JS\_NewArrayObject\_t** )(JSContext \*, int32\_t, jsval \*)\
 typedef JSBool(\* **JS\_GetArrayLength\_t** )(JSContext \*, JSObject \*, uint32\_t \*)\
 typedef JSBool(\* **JS\_SetArrayLength\_t** )(JSContext \*, JSObject \*, uint32\_t)\
 typedef JSBool(\* **JS\_HasArrayLength\_t** )(JSContext \*, JSObject \*, uint32\_t \*)\
 typedef JSBool(\* **JS\_GetElement\_t** )(JSContext \*, JSObject \*, int32\_t, jsval \*)\
 typedef JSBool(\* **JS\_SetElement\_t** )(JSContext \*, JSObject \*, int32\_t, jsval \*)\
 typedef JSBool(\* **JS\_AddRoot\_t** )(JSContext \*, void \*)\
 typedef JSBool(\* **JS\_RemoveRoot\_t** )(JSContext \*, void \*)\
 typedef size\_t(\* **JS\_GetStringLength\_t** )(JSString \*)\
 typedef JSBool(\* **JS\_LookupProperty\_t** )(JSContext \*, JSObject \*, const char \*, jsval \*)\
 typedef JSBool(\* **JS\_DefineProperty\_t** )(JSContext \*, JSObject \*, const char \*, jsval, JSPropertyOp, JSPropertyOp, uintN)\
 typedef JSScript \*(\* **JS\_CompileFile\_t** )(JSContext \*, JSObject \*, const char \*)\
 typedef JSBool(\* **JS\_ValueToObject\_t** )(JSContext \*, jsval, JSObject \*\*)\
 typedef JSBool(\* **JS\_ExecuteScript\_t** )(JSContext \*, JSObject \*, JSScript \*, jsval \*)\
 typedef JSBool(\* **JS\_IsExceptionPending\_t** )(JSContext \*)\
 typedef JSBool(\* **JS\_GetPendingException\_t** )(JSContext \*, jsval \*)\
 typedef void(\* **JS\_SetPendingException\_t** )(JSContext \*, jsval)\
 typedef void(\* **JS\_ClearPendingException\_t** )(JSContext \*)\
 typedef double \*(\* **JS\_NewDouble\_t** )(JSContext \*, double)\
 typedef JSBool(\* **JS\_CallFunction\_t** )(JSContext \*, JSObject \*, JSFunction \*, uintN, jsval \*, jsval \*)\
 typedef JSFunction \*(\* **JS\_ValueToFunction\_t** )(JSContext \*, jsval)\
 typedef void(\* **JS\_ReportError\_t** )(JSContext \*, const char \*,...)\
 typedef JSBool(\* **JS\_IsArrayObject\_t** )(JSContext \*, JSObject \*)\
 typedef JSBool(\* **JS\_ObjectIsFunction\_t** )(JSContext \*, JSObject \*)\
 typedef JSBool(\* **JS\_ValueToECMAInt32\_t** )(JSContext \*, jsval, int32\_t \*)\
 typedef JSFunction \*(\* **JS\_DefineFunction\_t** )(JSContext \*, JSObject \*, const char \*, JSNative, uintN, uintN)\
 typedef JSObject \*(\* **JS\_GetGlobalObject\_t** )(JSContext \*)\
 typedef JSGCCallback(\* **JS\_SetGCCallback\_t** )(JSContext \*, JSGCCallback)\
 typedef void(\* **JS\_GC\_t** )(JSContext \*)\
 typedef void(\* **JS\_MaybeGC\_t** )(JSContext \*)\
 typedef JSBool(\* **JS\_IsRunning\_t** )(JSContext \*)\
 typedef JSBool(\* **JS\_DeleteProperty\_t** )(JSContext \*, JSObject \*, const char \*)\
 typedef JSScript \*(\* **JS\_CompileScript\_t** )(JSContext \*, JSObject \*, const char \*, size\_t, const char \*, uintN)\
 typedef jsval(\* **JS\_GetNaNValue\_t** )(JSContext \*)\
 typedef jsval(\* **JS\_GetNegativeInfinityValue\_t** )(JSContext \*)\
 typedef jsval(\* **JS\_GetPositiveInfinityValue\_t** )(JSContext \*)\
 typedef jsval(\* **JS\_GetEmptyStringValue\_t** )(JSContext \*)\
 typedef JSBool(\* **JS\_SetPropertyAttributes\_t** )(JSContext \*, JSObject \*, const char \*, uintN, JSBool \*)\
 typedef JSBool(\* **JS\_GetPropertyAttributes\_t** )(JSContext \*, JSObject \*, const char \*, uintN \*, JSBool \*)\
 typedef JSClass \*(\* **JS\_GetClass\_t** )(JSObject \*)\
 typedef JSObject \*(\* **JS\_GetPrototype\_t** )(JSContext \*, JSObject \*)\
 typedef JSObject \*(\* **JS\_SetPrototype\_t** )(JSContext \*, JSObject \*, JSObject \*)\
 typedef intN(\* **JS\_CompareStrings\_t** )(JSString \*, JSString \*)\
 typedef uint32\_t(\* **JS\_GetOptions\_t** )(JSContext \*)\
 typedef uint32\_t(\* **JS\_SetOptions\_t** )(JSContext \*, uint32\_t)\
 typedef uint32\_t(\* **JS\_ToggleOptions\_t** )(JSContext \*, uint32\_t)\
 typedef struct JSIdArray \*(\* **JS\_Enumerate\_t** )(JSContext \*, JSObject \*)\
 typedef JSBool(\* **JS\_IdToValue\_t** )(JSContext \*, jsid, jsval \*)\
 typedef const char \*(\* **JS\_GetFunctionName\_t** )(JSFunction \*)\
 typedef JSObject \*(\* **JS\_GetConstructor\_t** )(JSContext \*, JSObject \*)\
 typedef void(\* **JS\_DestroyIdArray\_t** )(JSContext \*, struct JSIdArray \*)\

### Enumerations

enum **JSType** { **JSTYPE\_VOID**, **JSTYPE\_OBJECT**, **JSTYPE\_FUNCTION**, **JSTYPE\_STRING**, **JSTYPE\_NUMBER**, **JSTYPE\_BOOLEAN**, **JSTYPE\_LIMIT** }\
 enum **JSAccessMode** { **JSACC\_PROTO** = 0, **JSACC\_PARENT** = 1, **JSACC\_IMPORT** = 2, **JSACC\_WATCH** = 3, **JSACC\_READ** = 4, **JSACC\_WRITE** = 8, **JSACC\_LIMIT** }\
 enum **JSGCStatus** { **JSGC\_BEGIN**, **JSGC\_END**, **JSGC\_MARK\_END**, **JSGC\_FINALIZE\_END** }\

### Functions

const SpiderMonkey\_t \* **spidermonkey** (void)\

## Author

Generated automatically by Doxygen for Coin from the source code.
