public
Description: Mozilla JavaScript Engine (SpiderMonkey) bindings for Ruby
Clone URL: git://github.com/matthewd/ruby-mozjs.git
        * Change : pkg-config を使うように変更( kou )
        * Fix: rbsm.js を添付し忘れていたので追加


git-svn-id: http://ruby-spidermonkey.googlecode.com/svn/trunk@3 
368abcae-401b-0410-88d4-195e74ebbf5f
nazoking (author)
Sun Oct 08 10:15:10 -0700 2006
commit  391f558fe1d472426cca8d0fc90438b927f71d15
tree    7e0145656dcc719582f03ee3fa7c732786195e82
parent  af5695f8289ef5abcb9e60acd8fa296e897528d8
...
 
 
 
 
1
2
3
...
1
2
3
4
5
6
7
0
@@ -1,3 +1,7 @@
0
+2006-10-09
0
+ * Change : pkg-config を使うように変更( kou )
0
+ * Fix: rbsm.js を添付し忘れていたので追加
0
+
0
 2006-10-03
0
   * Change : 内部の日本語をUTF-8に変更
0
   * : Google Code にアップロード
...
1
2
3
4
5
6
7
8
9
10
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
11
12
13
14
 
 
 
 
 
 
 
15
16
...
1
 
 
 
 
 
 
 
 
 
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
 
 
 
19
20
21
22
23
24
25
26
 
0
@@ -1,16 +1,26 @@
0
 require 'mkmf'
0
-dir_config("smjs")
0
-#$CFLAGS += " -gdbg"
0
-case RUBY_PLATFORM
0
-when /mswin32|mingw|bccwin32/
0
- $defs << "-DXP_WIN"
0
- lib = "js32"
0
-else
0
- $defs << "-DXP_UNIX"
0
- lib = "smjs"
0
+require 'pkg-config'
0
+
0
+def find_smjs
0
+ dir_config("smjs")
0
+ #$CFLAGS += " -gdbg"
0
+ case RUBY_PLATFORM
0
+ when /mswin32|mingw|bccwin32/
0
+ $defs << " -DXP_WIN"
0
+ lib = "js32"
0
+ else
0
+ $defs << " -DXP_UNIX"
0
+ lib = "smjs"
0
+ end
0
+
0
+ $defs << " -DNEED_SMJS_PREFIX"
0
+ have_library(lib)
0
 end
0
-#if have_header("smjs/jsapi.h") or have_header("jsapi.h")
0
-if have_library(lib)
0
- create_makefile("spidermonkey")
0
+
0
+if %w(xulrunner-js thunderbird-js moziila-js).any? do |package|
0
+ PKGConfig.have_package(package)
0
+ end or find_smjs
0
+ create_makefile("spidermonkey")
0
+else
0
+ exit 1
0
 end
0
-#end
...
1
2
3
4
5
 
 
 
 
 
 
 
 
 
 
 
 
6
7
8
...
635
636
637
638
 
639
640
641
642
643
644
 
645
646
647
648
 
649
650
651
...
1
 
 
 
 
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
...
643
644
645
 
646
647
648
649
650
651
 
652
653
654
655
 
656
657
658
659
0
@@ -1,8 +1,16 @@
0
 #define JS_C_STRINGS_ARE_UTF8
0
-#include "ruby.h"
0
-#include "smjs/jsapi.h"
0
-#include "smjs/jshash.h"
0
-#include "smjs/jsobj.h"
0
+
0
+#include <ruby.h>
0
+
0
+#ifdef NEED_SMJS_PREFIX
0
+# include <smjs/jsapi.h>
0
+# include <smjs/jshash.h>
0
+# include <smjs/jsobj.h>
0
+#else
0
+# include <jsapi.h>
0
+# include <jshash.h>
0
+# include <jsobj.h>
0
+#endif
0
 
0
 extern VALUE ruby_errinfo;
0
 
0
@@ -635,17 +643,17 @@ rbsm_class_no_such_method( JSContext* cx, JSObject* thisobj, uintN argc, jsval*
0
   char* keyname;
0
   sSMJS_Class* so;
0
   keyname = JS_GetStringBytes(JSVAL_TO_STRING(argv[0]));
0
- printf("_noSuchMethod__( %s )",keyname);
0
+ //printf("_noSuchMethod__( %s )",keyname);
0
   if( !( so = JS_GetInstancePrivate( cx, JSVAL_TO_OBJECT(argv[-2]), &JSRubyObjectClass, NULL ) ) ){
0
     JS_ReportErrorNumber(cx, rbsm_GetErrorMessage, NULL, RBSMMSG_NOT_FUNCTION, keyname);
0
     return JS_FALSE;
0
   }
0
   if( strcmp( keyname, g_last0arity.keyname )==0 ){
0
- printf("!\n");
0
+ //printf("!\n");
0
     *rval = g_last0arity.val;
0
     return JS_TRUE;
0
   }
0
- printf("!=%s]",g_last0arity.keyname);
0
+ //printf("!=%s]",g_last0arity.keyname);
0
   return JS_FALSE;
0
 /*
0
   // 引数をSpiderMonkey::Valueに
...
287
288
289
290
 
291
292
293
...
287
288
289
 
290
291
292
293
0
@@ -287,7 +287,7 @@ class SpiderMonkeyTest < Test::Unit::TestCase
0
     def add1(a); a.to_i + 1; end;
0
     def add2(*a); @args = a; a.size end;
0
   end
0
- def test_hoge2
0
+ def test_property_and_method
0
     hoge = Hoge2.new
0
     cx = SpiderMonkey::Context.new
0
     cx.set_property( "hoge", hoge );

Comments

    No one has commented yet.