Coin Logo Coin3D is Free Software,
published under the BSD 3-clause license.
https://bitbucket.org/Coin3D/
http://www.kongsberg.com/kogt/
spidermonkey.h File Reference
#include <Inventor/C/basic.h>

Go to the source code of this file.

Classes

struct  JSIdArray
 
struct  JSClass
 
struct  JSPropertySpec
 
struct  JSFunctionSpec
 
struct  JSErrorReport
 
struct  SpiderMonkey_t
 

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_tspidermonkey (void)