diff --git a/ext/v8/v8.cpp b/ext/v8/v8.cpp index 76f2a03..9774bfc 100644 --- a/ext/v8/v8.cpp +++ b/ext/v8/v8.cpp @@ -43,7 +43,7 @@ extern "C" { rb_define_singleton_method(V8_C_Context, "GetCurrent", (VALUE(*)(...)) v8_Context_GetCurrent, 0); rb_define_method(V8_C_Context, "Global", (VALUE(*)(...)) v8_cxt_Global, 0); rb_define_method(V8_C_Context, "open", (VALUE(*)(...)) v8_cxt_open, 0); - rb_define_method(V8_C_Context, "eval", (VALUE(*)(...)) v8_cxt_eval, 1); + rb_define_method(V8_C_Context, "eval", (VALUE(*)(...)) v8_cxt_eval, 2); rb_define_method(V8_C_Context, "eql?", (VALUE(*)(...)) v8_cxt_eql, 1); rb_define_method(V8_C_Context, "==", (VALUE(*)(...)) v8_cxt_eql, 1); @@ -75,6 +75,14 @@ extern "C" { V8_C_Message = rb_define_class_under(rb_mNative, "Message", rb_cObject); rb_define_method(V8_C_Message, "Get", (VALUE(*)(...))v8_Message_Get, 0); + rb_define_method(V8_C_Message, "GetSourceLine", (VALUE(*)(...))v8_Message_GetSourceLine, 0); + rb_define_method(V8_C_Message, "GetScriptResourceName", (VALUE(*)(...))v8_Message_GetScriptResourceName, 0); + rb_define_method(V8_C_Message, "GetLineNumber", (VALUE(*)(...))v8_Message_GetLineNumber, 0); + rb_define_method(V8_C_Message, "GetStartPosition", (VALUE(*)(...))v8_Message_GetStartPosition, 0); + rb_define_method(V8_C_Message, "GetEndPosition", (VALUE(*)(...)) v8_Message_GetEndPosition, 0); + rb_define_method(V8_C_Message, "GetStartColumn", (VALUE(*)(...)) v8_Message_GetStartColumn, 0); + rb_define_method(V8_C_Message, "GetEndColumn", (VALUE(*)(...)) v8_Message_GetEndColumn, 0); + V8_C_Function = rb_define_class_under(rb_mNative, "Function", V8_C_Object); } diff --git a/ext/v8/v8_cxt.cpp b/ext/v8/v8_cxt.cpp index 33670f5..743c436 100644 --- a/ext/v8/v8_cxt.cpp +++ b/ext/v8/v8_cxt.cpp @@ -20,7 +20,6 @@ VALUE v8_Context_New(int argc, VALUE *argv, VALUE self) { Persistent context = Context::New(0, Racer_Create_V8_ObjectTemplate(scope)); Context::Scope enter(context); context->Global()->SetHiddenValue(String::New("TheRubyRacer::RubyObject"), External::Wrap((void *)scope)); - // context->Global()->SetPointerInInternalField(0, (void*)scope); VALUE ref = V8_Ref_Create(self, context, scope); context.Dispose(); return ref; @@ -59,13 +58,14 @@ VALUE v8_cxt_open(VALUE self) { } } -VALUE v8_cxt_eval(VALUE self, VALUE source) { +VALUE v8_cxt_eval(VALUE self, VALUE source, VALUE filename) { HandleScope handles; TryCatch exceptions; Local cxt = V8_Ref_Get(self); Context::Scope enter(cxt); Local source_str = RB2V8(source); - Local