Sha256: 9cc7658018c183011ce310facf970eb58ea64f6e4374cf412463167f016d95df

Contents?: true

Size: 1.78 KB

Versions: 37

Compression:

Stored size: 1.78 KB

Contents

#include "rr.h"

namespace rr {
  void Function::Init() {
    ClassBuilder("Function", Object::Class).
      defineMethod("NewInstance", &NewInstance).
      defineMethod("Call", &Call).
      defineMethod("SetName", &SetName).
      defineMethod("GetName", &GetName).
      defineMethod("GetInferredName", &GetInferredName).
      defineMethod("GetScriptLineNumber", &GetScriptLineNumber).
      defineMethod("GetScriptColumnNumber", &GetScriptColumnNumber).
      defineMethod("GetScriptId", &GetScriptId).
      defineMethod("GetScriptOrigin", &GetScriptOrigin).
      store(&Class);
  }

  VALUE Function::NewInstance(int argc, VALUE argv[], VALUE self) {
    VALUE args;
    rb_scan_args(argc,argv,"01", &args);
    if (RTEST(args)) {
      return Object(Function(self)->NewInstance(RARRAY_LENINT(args), Value::array<Value>(args)));
    } else {
      return Object(Function(self)->NewInstance());
    }
  }
  VALUE Function::Call(VALUE self, VALUE receiver, VALUE argv) {
    return Value(Function(self)->Call(Object(receiver), RARRAY_LENINT(argv), Value::array<Value>(argv)));
  }

  VALUE Function::SetName(VALUE self, VALUE name) {
    Void(Function(self)->SetName(String(name)));
  }

  VALUE Function::GetName(VALUE self) {
    return Value(Function(self)->GetName());
  }

  VALUE Function::GetInferredName(VALUE self) {
    return Value(Function(self)->GetInferredName());
  }

  VALUE Function::GetScriptLineNumber(VALUE self) {
    return INT2FIX(Function(self)->GetScriptLineNumber());
  }

  VALUE Function::GetScriptColumnNumber(VALUE self) {
    return INT2FIX(Function(self)->GetScriptColumnNumber());
  }

  VALUE Function::GetScriptId(VALUE self) {
    return Value(Function(self)->GetScriptId());
  }

  VALUE Function::GetScriptOrigin(VALUE self) {
    return not_implemented("GetScriptOrigin");
  }
}

Version data entries

37 entries across 37 versions & 8 rubygems

Version Path
therubyracer-0.11.0beta8-x86-linux ext/v8/function.cc
therubyracer-0.11.0beta8 ext/v8/function.cc
therubyracer-0.11.0beta7-x86_64-linux ext/v8/function.cc
therubyracer-0.11.0beta7-x86-linux ext/v8/function.cc
therubyracer-0.11.0beta7-x86_64-darwin-10 ext/v8/function.cc
therubyracer-0.11.0beta7 ext/v8/function.cc
therubyracer-0.11.0beta6-x86-linux ext/v8/function.cc
therubyracer-0.11.0beta6-x86_64-linux ext/v8/function.cc
therubyracer-0.11.0beta6 ext/v8/function.cc
therubyracer-0.11.0beta5-x86-linux ext/v8/function.cc
therubyracer-0.11.0beta5 ext/v8/function.cc
therubyracer-0.11.0beta5-x86_64-linux ext/v8/function.cc
therubyracer-0.11.0beta4 ext/v8/function.cc
therubyracer-0.11.0beta3 ext/v8/function.cc
therubyracer-0.11.0beta2-x86_64-linux ext/v8/function.cc
therubyracer-0.11.0beta2 ext/v8/function.cc
therubyracer-0.11.0beta1 ext/v8/function.cc