35#ifndef __FREEWRL_JS_UTILS_H__
36#define __FREEWRL_JS_UTILS_H__
45#define CLEANUP_JAVASCRIPT(cx) \
49#define LARGESTRING 2048
51#define SMALLSTRING 128
53#define FNAME_STUB "file"
60int findInECMATable(JSContext *context, jsval toFind);
61int findNameInECMATable(JSContext *context,
char *toFind);
62void resetNameInECMATable(JSContext *context,
char *toFind);
69int jsrrunScript(JSContext *_context, JSObject *_globalObj,
char *script, jsval *rval);
70int JS_DefineSFNodeSpecificProperties (JSContext *context, JSObject *
object,
struct X3D_Node * ptr);
72#ifdef JAVASCRIPTVERBOSE
73# define ACTUALRUNSCRIPT(a,b,c) ActualrunScript(a,b,c,__FILE__,__LINE__)
76# define ACTUALRUNSCRIPT(a,b,c) ActualrunScript(a,b,c)
81reportWarningsOn(
void);
84reportWarningsOff(
void);
87errorReporter(JSContext *cx,
89 JSErrorReport *report);
91void X3D_ECMA_TO_JS(JSContext *cx,
void *Data,
int datalen,
int dataType, jsval *ret);
92void JS_ECMA_TO_X3D(JSContext *cx,
void *Data,
unsigned datalen,
int dataType, jsval *newval);
93void X3D_MF_TO_JS_B(JSContext *cx,
union anyVrml* Data,
int dataType,
int *valueChanged, jsval *newval);
94void X3D_SF_TO_JS_BNode(JSContext *cx,
void *Data,
unsigned datalen,
int dataType,
int *valueChanged, jsval *newval);
95JSBool setSFNodeField (JSContext *cx, JS::Handle<JSObject*> hobj, JS::Handle<jsid> hiid, JSBool strict, JS::MutableHandle<JS::Value> hvp);
96void JS_SF_TO_X3D_BNode(JSContext *cx,
void *Data,
int dataType,
int *valueChanged, jsval *newval);
97JSBool JS_NewNumberValue(JSContext *cx, jsdouble d, jsval *rval);
99const char *classToString(JSClass *myClass);
100#define CHECK_CLASS(cx,obj,argv,fnString,expClass) \
102 if (!JS_InstanceOf(cx, obj, &expClass, argv)) { \
103 printf ("Javascript Instance problem in '%s' - expected a '%s', got a ", fnString, classToString(&expClass)); \
104 printJSNodeType (cx,obj); \
107int JS_SetPrivateFw(JSContext *cx, JSObject* obj,
void *data);
108JSObject* JS_NewGlobalObjectFw(JSContext *cx, JSClass *clasp);
109void * JS_GetPrivateFw(JSContext *cx,JSObject*_obj);
110JSObject* JS_GetParentFw(JSContext *cx, JSObject *me);
111JSObject * JS_ConstructObjectWithArgumentsFw(JSContext *cx, JSClass *clasp, JSObject *parent,
unsigned argc, jsval *argv);
112JSObject * JS_ConstructObjectFw(JSContext *cx, JSClass *clasp,
void *whatever, JSObject *parent);
113JSObject * JS_GetPrototypeFw(JSContext *cx, JSObject * obj);
114JSClass * JS_GetClassFw(JSContext *cx, JSObject * obj);
116#define JSSCRIPT JSScript
120#define JS_GET_PROPERTY_STUB JS_PropertyStub
123#define JS_SET_PROPERTY_STUB1 js_SetPropertyDebug1
127# define JS_SET_PROPERTY_STUB2 JS_PropertyStub
129# define JS_SET_PROPERTY_STUB2 JS_StrictPropertyStub
132#define JS_SET_PROPERTY_STUB3 js_SetPropertyDebug3
133#define JS_SET_PROPERTY_STUB4 js_SetPropertyDebug4
134#define JS_SET_PROPERTY_STUB5 js_SetPropertyDebug5
135#define JS_SET_PROPERTY_STUB6 js_SetPropertyDebug6
136#define JS_SET_PROPERTY_STUB7 js_SetPropertyDebug7
137#define JS_SET_PROPERTY_STUB8 js_SetPropertyDebug8
138#define JS_SET_PROPERTY_CHECK js_SetPropertyCheck