You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@couchdb.apache.org by da...@apache.org on 2011/10/18 23:21:22 UTC

[2/2] git commit: Minor fixes to link agianst SpiderMonkey trunk

Minor fixes to link agianst SpiderMonkey trunk

This patch allows couchjs to link against the SpiderMonkey as it existed
in the mercurial hash 59c1e6bdb11 from [1]. This does *not* ensure
compatibility with CouchDB as there are other things that will also need
to be fixed. Specifically, the anonymous function issue for builtin JS
functions.

[1] http://hg.mozilla.org/mozilla-central/


Project: http://git-wip-us.apache.org/repos/asf/couchdb/repo
Commit: http://git-wip-us.apache.org/repos/asf/couchdb/commit/7c989eca
Tree: http://git-wip-us.apache.org/repos/asf/couchdb/tree/7c989eca
Diff: http://git-wip-us.apache.org/repos/asf/couchdb/diff/7c989eca

Branch: refs/heads/master
Commit: 7c989eca403080cac9917ba6701594ace9c24803
Parents: 9ffc1df
Author: Paul Joseph Davis <da...@apache.org>
Authored: Tue Oct 18 16:19:51 2011 -0500
Committer: Paul Joseph Davis <da...@apache.org>
Committed: Tue Oct 18 16:20:51 2011 -0500

----------------------------------------------------------------------
 configure.ac                      |    8 ++++++++
 src/couchdb/priv/couch_js/http.c  |   12 ++++++------
 src/couchdb/priv/couch_js/sm185.c |    2 +-
 3 files changed, 15 insertions(+), 7 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/couchdb/blob/7c989eca/configure.ac
----------------------------------------------------------------------
diff --git a/configure.ac b/configure.ac
index c7b9930..f7cf955 100644
--- a/configure.ac
+++ b/configure.ac
@@ -293,6 +293,14 @@ If you wish to ignore this error pass --enable-js-trunk to ./configure.])],
     [[#include <jsapi.h>]])
 fi
 
+# Deal with JSScript -> JSObject -> JSScript switcheroo
+
+AC_CHECK_TYPE([JSScript*],
+    [AC_DEFINE([JSSCRIPT_TYPE], [JSScript*], [Use JSObject* for scripts])],
+    [AC_DEFINE([JSSCRIPT_TYPE], [JSObject*], [Use JSScript* for scripts])],
+    [[#include <jsapi.h>]]
+)
+
 CPPFLAGS="$OLD_CPPFLAGS"
 
 

http://git-wip-us.apache.org/repos/asf/couchdb/blob/7c989eca/src/couchdb/priv/couch_js/http.c
----------------------------------------------------------------------
diff --git a/src/couchdb/priv/couch_js/http.c b/src/couchdb/priv/couch_js/http.c
index 7e1e20b..67ba8a1 100644
--- a/src/couchdb/priv/couch_js/http.c
+++ b/src/couchdb/priv/couch_js/http.c
@@ -181,7 +181,7 @@ http_open(JSContext* cx, JSObject* req, jsval mth, jsval url, jsval snc)
         goto done;
     }
 
-    if(mth == JSVAL_VOID) {
+    if(JSVAL_IS_VOID(mth)) {
         JS_ReportError(cx, "You must specify a method.");
         goto done;
     }
@@ -203,7 +203,7 @@ http_open(JSContext* cx, JSObject* req, jsval mth, jsval url, jsval snc)
 
     http->method = methid;
 
-    if(url == JSVAL_VOID) {
+    if(JSVAL_IS_VOID(url)) {
         JS_ReportError(cx, "You must specify a URL.");
         goto done;
     }
@@ -219,7 +219,7 @@ http_open(JSContext* cx, JSObject* req, jsval mth, jsval url, jsval snc)
         goto done;
     }
     
-    if(snc != JSVAL_FALSE) {
+    if(JSVAL_IS_BOOLEAN(snc) && !JSVAL_TO_BOOLEAN(snc)) {
         JS_ReportError(cx, "Synchronous flag must be false.");
         goto done;
     }
@@ -255,7 +255,7 @@ http_set_hdr(JSContext* cx, JSObject* req, jsval name, jsval val)
         goto done;
     }
 
-    if(name == JSVAL_VOID)
+    if(JSVAL_IS_VOID(name))
     {
         JS_ReportError(cx, "You must speciy a header name.");
         goto done;
@@ -268,7 +268,7 @@ http_set_hdr(JSContext* cx, JSObject* req, jsval name, jsval val)
         goto done;
     }
     
-    if(val == JSVAL_VOID)
+    if(JSVAL_IS_VOID(val))
     {
         JS_ReportError(cx, "You must specify a header value.");
         goto done;
@@ -313,7 +313,7 @@ http_send(JSContext* cx, JSObject* req, jsval body)
         goto done;
     }
 
-    if(body != JSVAL_VOID && body != JS_GetEmptyStringValue(cx)) {
+    if(!JSVAL_IS_VOID(body)) {
         bodystr = enc_string(cx, body, &bodylen);
         if(!bodystr) {
             JS_ReportError(cx, "Failed to encode body.");

http://git-wip-us.apache.org/repos/asf/couchdb/blob/7c989eca/src/couchdb/priv/couch_js/sm185.c
----------------------------------------------------------------------
diff --git a/src/couchdb/priv/couch_js/sm185.c b/src/couchdb/priv/couch_js/sm185.c
index 701d567..6a4522e 100644
--- a/src/couchdb/priv/couch_js/sm185.c
+++ b/src/couchdb/priv/couch_js/sm185.c
@@ -310,7 +310,7 @@ main(int argc, const char* argv[])
     JSObject* global = NULL;
     JSCrossCompartmentCall *call = NULL;
     JSObject* klass = NULL;
-    JSObject* script;
+    JSSCRIPT_TYPE script;
     JSString* scriptsrc;
     const jschar* schars;
     size_t slen;