1
0
Fork 0
mirror of https://github.com/rubyjs/therubyracer synced 2023-03-27 23:21:42 -04:00
therubyracer/lib/v8/error.rb
2012-06-16 08:33:31 -05:00

25 lines
No EOL
638 B
Ruby

module V8
class Error < StandardError
attr_reader :value
def initialize(message, value)
super(message)
@value = value
end
end
const_set :JSError, Error
def self.Error(exception)
value = exception.to_ruby
if !exception.kind_of?(V8::C::Value)
raise V8::Error.new(exception.to_s, value)
elsif exception.IsNativeError()
if football = exception.GetHiddenValue("rr::Football")
raise football.Value()
else
raise V8::Error.new(exception.Get("message").to_ruby, value)
end
else
raise V8::Error.new(exception.ToString().to_ruby, value)
end
end
end