1
0
Fork 0
mirror of https://github.com/rubyjs/therubyracer synced 2023-03-27 23:21:42 -04:00
therubyracer/spec/spec_helper.rb

44 lines
797 B
Ruby
Raw Normal View History

require 'v8'
def run_v8_gc
2012-05-17 11:15:30 -05:00
while !V8::C::V8::IdleNotification() do
end
end
def rputs(msg)
puts "<pre>#{ERB::Util.h(msg)}</pre>"
$stdout.flush
end
module ExplicitScoper;end
module Autoscope
def instance_eval(*args, &block)
return super unless low_level_c_spec? && !explicitly_defines_scope?
V8::C::Locker() do
V8::C::HandleScope() do
@cxt = V8::C::Context::New()
begin
@cxt.Enter()
super(*args, &block)
ensure
@cxt.Exit()
end
end
end
end
def low_level_c_spec?
return false unless described_class
return described_class.name =~ /^V8::C/
end
def explicitly_defines_scope?
is_a?(ExplicitScoper)
end
end
RSpec.configure do |c|
c.before(:each) do
extend Autoscope
end
end