Sha256: 453bb9896054776861a5939c5c95bb27019eb0ead05f4131cfa047b8e681a5db

Contents?: true

Size: 634 Bytes

Versions: 4

Compression:

Stored size: 634 Bytes

Contents

#include <ruby.h>

#include "callbacks.h"
#include "converters.h"

using namespace v8;

Handle<Value> RacerRubyInvocationCallback(const Arguments& args) {
  VALUE code = (VALUE)External::Unwrap(args.Data());
  if (NIL_P(code)) {
    return Null();
  } else {      
    VALUE* arguments = new VALUE[args.Length()];
    for(int c=0;c<args.Length(); ++c) {
      Handle<Value> val = args[c];
      arguments[c] = V82RB(val);
    }
      
    VALUE result = rb_funcall2(code, rb_intern("call"), args.Length(), arguments);
    delete [] arguments;
    
    Handle<Value> convertedResult = RB2V8(result);
    return convertedResult  ;
  }
}

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
therubyracer-0.4.4 ext/v8/callbacks.cpp
therubyracer-0.4.3 ext/v8/callbacks.cpp
therubyracer-0.4.2 ext/v8/callbacks.cpp
therubyracer-0.4.1 ext/v8/callbacks.cpp