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

add spec for segfaulting on native prototype extension.

This commit is contained in:
Charles Lowell 2011-05-03 11:28:11 -05:00
parent d2017c673d
commit dd7f1ffd21
2 changed files with 26 additions and 1 deletions

View file

View file

@ -28,5 +28,30 @@ describe C::TryCatch do
tc.HasCaught()
}.should raise_error(ScriptError)
end
it "doesn't segfault when an error is raised in a javascript function on a native prototype" do
constructor = Class.new
constructor.class_eval do
def detonate(*a)
raise "BOOM!"
end
end
V8::Context.new do |cxt|
cxt['Boom'] = constructor
cxt['puts'] = method(:puts)
danger = <<-JS
Boom.prototype.boom = function() {
this.detonate()
}
var go = new(Boom)()
try {
go.boom()
} catch (e) {
}
go.boom()
JS
expect {cxt.eval(danger, 'danger.js')}.should raise_error(V8::JSError)
end
end
end