summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVincent Sanders <vince@netsurf-browser.org>2012-06-16 12:06:47 +0000
committerVincent Sanders <vince@netsurf-browser.org>2012-06-16 12:06:47 +0000
commit9dc376bdec204f1cbaf669808fd2e22c79857f27 (patch)
tree818b08e9de162cab252f4002e332caff8b0500ca
parenta5f2a8cfba8b0c9cd30998d714c5ce09d2f46c34 (diff)
downloadnetsurf-9dc376bdec204f1cbaf669808fd2e22c79857f27.tar.gz
netsurf-9dc376bdec204f1cbaf669808fd2e22c79857f27.tar.bz2
use the correct version macro
svn path=/trunk/netsurf/; revision=13966
-rw-r--r--javascript/js.c34
1 files changed, 25 insertions, 9 deletions
diff --git a/javascript/js.c b/javascript/js.c
index 81dc96be6..833e01785 100644
--- a/javascript/js.c
+++ b/javascript/js.c
@@ -29,6 +29,11 @@ static JSRuntime *rt; /* global runtime */
void js_initialise(void)
{
/* Create a JS runtime. */
+
+#if JS_VERSION >= 180
+ JS_SetCStringsAreUTF8(); /* we prefer our runtime to be utf-8 */
+#endif
+
rt = JS_NewRuntime(8L * 1024L * 1024L);
LOG(("New runtime handle %p", rt));
}
@@ -85,13 +90,23 @@ void js_destroycontext(jscontext *ctx)
/* The class of the global object. */
static JSClass global_class = {
- "global", JSCLASS_GLOBAL_FLAGS,
- JS_PropertyStub, JS_PropertyStub, JS_PropertyStub, JS_PropertyStub,
- JS_EnumerateStub, JS_ResolveStub, JS_ConvertStub, JS_FinalizeStub,
- JSCLASS_NO_OPTIONAL_MEMBERS
+ "global",
+ JSCLASS_GLOBAL_FLAGS,
+ JS_PropertyStub,
+ JS_PropertyStub,
+ JS_PropertyStub,
+#if JS_VERSION <= 180
+ JS_PropertyStub,
+#else
+ JS_StrictPropertyStub,
+#endif
+ JS_EnumerateStub,
+ JS_ResolveStub,
+ JS_ConvertStub,
+ JS_FinalizeStub,
+ JSCLASS_NO_OPTIONAL_MEMBERS
};
-
jsobject *js_newcompartment(jscontext *ctx, struct content* c)
{
JSContext *cx = (JSContext *)ctx;
@@ -100,17 +115,18 @@ jsobject *js_newcompartment(jscontext *ctx, struct content* c)
if (cx == NULL) {
return NULL;
}
-#ifdef SPIDERMONKEY_400
- global = JS_NewCompartmentAndGlobalObject(cx, &global_class, NULL);
+
+#if JS_VERSION <= 180
+ global = JS_NewObject(cx, &global_class, NULL, NULL);
if (global == NULL) {
return NULL;
}
+ JS_SetGlobalObject(cx, global);
#else
- global = JS_NewObject(cx, &global_class, NULL, NULL);
+ global = JS_NewCompartmentAndGlobalObject(cx, &global_class, NULL);
if (global == NULL) {
return NULL;
}
- JS_SetGlobalObject(cx, global);
#endif
JS_SetContextPrivate(cx, c); /* private pointer to content */