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

26 lines
627 B
C++
Raw Normal View History

#include "rr.h"
namespace rr {
void Array::Init() {
ClassBuilder("Array", Object::Class).
2012-05-17 12:04:05 -04:00
defineSingletonMethod("New", &New).
defineMethod("Length", &Length).
defineMethod("CloneElementAt", &CloneElementAt).
store(&Class);
}
2012-05-17 12:04:05 -04:00
VALUE Array::New(int argc, VALUE argv[], VALUE self) {
VALUE length; rb_scan_args(argc, argv, "01", &length);
2012-05-23 00:06:21 -04:00
return Array(v8::Array::New(RTEST(length) ? NUM2INT(length) : 0));
2012-05-17 12:04:05 -04:00
}
VALUE Array::Length(VALUE self) {
return UInt32(Array(self)->Length());
2012-05-17 12:04:05 -04:00
}
VALUE Array::CloneElementAt(VALUE self, VALUE index) {
return Object(Array(self)->CloneElementAt(UInt32(index)));
}
}