From 1f7192ca858cac08c483c859429c887cfe551b2c Mon Sep 17 00:00:00 2001 From: Georgy Angelov Date: Wed, 18 Mar 2015 22:08:34 +0000 Subject: [PATCH] Add ability to create handle scopes --- ext/v8/init.cc | 2 +- spec/c/handles_spec.rb | 22 ++++++++++++++++++++++ spec/c/isolate_spec.rb | 2 +- spec/c/v8_spec.rb | 7 +++++++ 4 files changed, 31 insertions(+), 2 deletions(-) create mode 100644 spec/c/handles_spec.rb create mode 100644 spec/c/v8_spec.rb diff --git a/ext/v8/init.cc b/ext/v8/init.cc index e09c605..e9bfee9 100644 --- a/ext/v8/init.cc +++ b/ext/v8/init.cc @@ -10,9 +10,9 @@ extern "C" { void Init_init() { V8::Init(); Isolate::Init(); + Handles::Init(); // v8::Locker lock(); // GC::Init(); - // Handles::Init(); // Accessor::Init(); // Context::Init(); // Invocation::Init(); diff --git a/spec/c/handles_spec.rb b/spec/c/handles_spec.rb new file mode 100644 index 0000000..e8b31ee --- /dev/null +++ b/spec/c/handles_spec.rb @@ -0,0 +1,22 @@ +require 'v8/init' + +describe 'handles' do + describe '#HandleScope' do + let(:isolate) { V8::C::Isolate.New } + + it 'can allocate handle scopes' do + V8::C::HandleScope(isolate) do + end + end + + it 'isn\'t the end of the world if a ruby exception is raised inside a HandleScope' do + begin + V8::C::HandleScope(isolate) do + raise 'boom!' + end + rescue StandardError => e + expect(e.message).to eq 'boom!' + end + end + end +end diff --git a/spec/c/isolate_spec.rb b/spec/c/isolate_spec.rb index 1ec1aea..0212471 100644 --- a/spec/c/isolate_spec.rb +++ b/spec/c/isolate_spec.rb @@ -1,7 +1,7 @@ require 'v8/init' describe V8::C::Isolate do - it "can create a new isolate" do + it 'can create a new isolate' do expect(V8::C::Isolate.New).to be end end diff --git a/spec/c/v8_spec.rb b/spec/c/v8_spec.rb new file mode 100644 index 0000000..aab4a9b --- /dev/null +++ b/spec/c/v8_spec.rb @@ -0,0 +1,7 @@ +require 'v8/init' + +describe V8::C::V8 do + it 'can say its version' do + expect(V8::C::V8.GetVersion).to be_a String + end +end