// -*- mode: c++ -*- #ifndef RR_FUNCTION #define RR_FUNCTION namespace rr { class Function : public Ref { public: static void Init(); static VALUE New(int argc, VALUE argv[], VALUE self); static VALUE NewInstance(int argc, VALUE argv[], VALUE self); static VALUE Call(VALUE self, VALUE receiver, VALUE arguments); static VALUE SetName(VALUE self, VALUE name); static VALUE GetName(VALUE self); static VALUE GetInferredName(VALUE self); static VALUE GetDisplayName(VALUE self); static VALUE GetScriptLineNumber(VALUE self); static VALUE GetScriptColumnNumber(VALUE self); static VALUE IsBuiltin(VALUE self); static VALUE ScriptId(VALUE self); static VALUE GetBoundFunction(VALUE self); static VALUE GetScriptOrigin(VALUE self); inline Function(VALUE value) : Ref(value) {} inline Function(v8::Isolate* isolate, v8::Handle function) : Ref(isolate, function) {} }; } #endif