From 712ad9318b465ea60234efc03d69e05314d7c929 Mon Sep 17 00:00:00 2001 From: Charles Lowell Date: Mon, 13 Jul 2015 19:46:15 -0500 Subject: [PATCH] remove hacks around number usage --- ext/v8/integer.h | 6 ++---- ext/v8/number.h | 4 +--- ext/v8/script-origin.h | 12 ++++-------- ext/v8/value.cc | 2 +- spec/c/function_spec.rb | 4 ++-- 5 files changed, 10 insertions(+), 18 deletions(-) diff --git a/ext/v8/integer.h b/ext/v8/integer.h index ce38328..28bef8c 100644 --- a/ext/v8/integer.h +++ b/ext/v8/integer.h @@ -5,10 +5,8 @@ namespace rr { class Integer : public Ref { public: - Integer(v8::Isolate* isolate, int32_t value) : - Ref(isolate, v8::Integer::New(isolate, value)) {} - Integer(v8::Isolate* isolate, uint32_t value) : - Ref(isolate, v8::Integer::NewFromUnsigned(isolate, value)) {} + Integer(v8::Isolate* isolate, v8::Handle integer) : + Ref(isolate, integer) {} Integer(VALUE self) : Ref(self) {} diff --git a/ext/v8/number.h b/ext/v8/number.h index e8f3716..7b907a4 100644 --- a/ext/v8/number.h +++ b/ext/v8/number.h @@ -5,8 +5,6 @@ namespace rr { class Number : public Ref { public: - Number(v8::Isolate* isolate, double value) : - Ref(isolate, v8::Number::New(isolate, value)) {} Number(v8::Isolate* isolate, v8::Handle value) : Ref(isolate, value.As()) {} Number(VALUE self) : @@ -16,7 +14,7 @@ namespace rr { Isolate isolate(r_isolate); Locker lock(isolate); - return Number(isolate, NUM2DBL(value)); + return Number(isolate, v8::Number::New(isolate, NUM2DBL(value))); } static VALUE Value(VALUE self) { diff --git a/ext/v8/script-origin.h b/ext/v8/script-origin.h index cbcafb5..e341cb0 100644 --- a/ext/v8/script-origin.h +++ b/ext/v8/script-origin.h @@ -35,11 +35,7 @@ namespace rr { VALUE is_opaque; //option }; - struct Integer : public Equiv { - Integer(v8::Handle value) : - Equiv(INT2FIX(value->IntegerValue())) { - } - }; + public: static void Init(); @@ -52,10 +48,10 @@ namespace rr { ScriptOrigin(v8::Isolate* isolate, v8::ScriptOrigin origin) : ScriptOrigin(new Container( Value(isolate, origin.ResourceName()), - Integer(origin.ResourceLineOffset()), - Integer(origin.ResourceColumnOffset()), + Integer(isolate, origin.ResourceLineOffset()), + Integer(isolate, origin.ResourceColumnOffset()), Bool(origin.Options().IsSharedCrossOrigin()), - Integer(origin.ScriptID()), + Integer(isolate, origin.ScriptID()), Bool(origin.Options().IsEmbedderDebugScript()), Value(isolate, origin.SourceMapUrl()), Bool(origin.Options().IsOpaque()))) { diff --git a/ext/v8/value.cc b/ext/v8/value.cc index 1701d7a..88df57e 100644 --- a/ext/v8/value.cc +++ b/ext/v8/value.cc @@ -45,7 +45,7 @@ namespace rr { store(&Class); - rb_gc_register_address(&Empty); + rb_gc_register_address(&Empty); } VALUE Value::IsUndefined(VALUE self) { diff --git a/spec/c/function_spec.rb b/spec/c/function_spec.rb index bc77453..f8b4601 100644 --- a/spec/c/function_spec.rb +++ b/spec/c/function_spec.rb @@ -7,8 +7,8 @@ describe V8::C::Function do fn = run '(function() { return "foo" })' origin = fn.GetScriptOrigin() expect(origin.ResourceName().ToString().Utf8Value()).to eql 'undefined' - expect(origin.ResourceLineOffset()).to eql 0 - expect(origin.ResourceColumnOffset()).to eql 0 + expect(origin.ResourceLineOffset().Value()).to eql 0 + expect(origin.ResourceColumnOffset().Value()).to eql 0 end it 'can be called' do