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

28 lines
622 B
Ruby
Raw Normal View History

2012-06-12 08:06:25 -04:00
class V8::Function < V8::Object
2012-06-14 23:34:38 -04:00
include V8::Error::Try
2012-06-12 08:06:25 -04:00
def initialize(native = nil)
super do
2012-06-14 09:40:33 -04:00
native || V8::C::FunctionTemplate::New().GetFunction()
2012-06-12 08:06:25 -04:00
end
end
def methodcall(this, *args)
@context.enter do
this ||= @context.native.Global()
2012-06-14 23:34:38 -04:00
@context.to_ruby try {native.Call(@context.to_v8(this), args.map {|a| @context.to_v8 a})}
2012-06-12 08:06:25 -04:00
end
end
def call(*args)
@context.enter do
methodcall @context.native.Global(), *args
end
end
def new(*args)
@context.enter do
2012-06-14 23:34:38 -04:00
@context.to_ruby try {native.NewInstance(args.map {|a| @context.to_v8 a})}
2012-06-12 08:06:25 -04:00
end
end
end