class JavaScript::Function
Public Class Methods
new(*)
click to toggle source
Calls superclass method
# File lib/javascript.rb, line 241 def initialize(*) @scope = JavaScript.current_scope super end
Public Instance Methods
apply(target = nil, arg_values)
click to toggle source
# File lib/javascript.rb, line 254 def apply(target = nil, arg_values) call(target, *arg_values) end
arity()
click to toggle source
# File lib/javascript.rb, line 246 def arity args.length end
bind(target)
click to toggle source
# File lib/javascript.rb, line 258 def bind(target) BoundFunction.new(target, name, args, body) end
call(target = nil, *arg_values)
click to toggle source
# File lib/javascript.rb, line 250 def call(target = nil, *arg_values) ::Object.instance_method(:instance_exec).bind(target).call(*arg_values, &self) end
to_proc()
click to toggle source
# File lib/javascript.rb, line 262 def to_proc parent_scope = @scope arg_names = args.map(&:name) unwrapped = body FunctionWrapper.new(arg_names) do |*arg_values| locals = Hash[ arg_names.zip(arg_values) ] locals[:arguments] = arg_values parent_scope.__spawn__(self, locals).__eval__(*arg_values, &unwrapped) end end