therubyracer-freebsd 0.10.1 → 0.11.1p2
Sign up to get free protection for your applications and to get access to all the features.
- metadata +37 -109
- data/.gitignore +0 -13
- data/.rspec +0 -1
- data/.travis.yml +0 -8
- data/.yardopts +0 -1
- data/Changelog.md +0 -231
- data/Gemfile +0 -3
- data/README.md +0 -167
- data/Rakefile +0 -26
- data/bin/therubyracer +0 -11
- data/ext/v8/extconf.rb +0 -26
- data/ext/v8/rr.cpp +0 -189
- data/ext/v8/rr.h +0 -41
- data/ext/v8/v8.cpp +0 -48
- data/ext/v8/v8_array.cpp +0 -48
- data/ext/v8/v8_array.h +0 -8
- data/ext/v8/v8_callbacks.cpp +0 -81
- data/ext/v8/v8_callbacks.h +0 -8
- data/ext/v8/v8_context.cpp +0 -92
- data/ext/v8/v8_context.h +0 -6
- data/ext/v8/v8_date.cpp +0 -40
- data/ext/v8/v8_date.h +0 -6
- data/ext/v8/v8_debug.cpp +0 -17
- data/ext/v8/v8_debug.h +0 -6
- data/ext/v8/v8_exception.cpp +0 -133
- data/ext/v8/v8_exception.h +0 -11
- data/ext/v8/v8_external.cpp +0 -70
- data/ext/v8/v8_external.h +0 -8
- data/ext/v8/v8_function.cpp +0 -69
- data/ext/v8/v8_function.h +0 -11
- data/ext/v8/v8_handle.cpp +0 -186
- data/ext/v8/v8_handle.h +0 -48
- data/ext/v8/v8_locker.cpp +0 -139
- data/ext/v8/v8_locker.h +0 -6
- data/ext/v8/v8_message.cpp +0 -67
- data/ext/v8/v8_message.h +0 -10
- data/ext/v8/v8_object.cpp +0 -122
- data/ext/v8/v8_object.h +0 -10
- data/ext/v8/v8_script.cpp +0 -36
- data/ext/v8/v8_script.h +0 -8
- data/ext/v8/v8_string.cpp +0 -52
- data/ext/v8/v8_string.h +0 -9
- data/ext/v8/v8_template.cpp +0 -344
- data/ext/v8/v8_template.h +0 -8
- data/ext/v8/v8_try_catch.cpp +0 -70
- data/ext/v8/v8_try_catch.h +0 -5
- data/ext/v8/v8_v8.cpp +0 -34
- data/ext/v8/v8_v8.h +0 -6
- data/ext/v8/v8_value.cpp +0 -175
- data/ext/v8/v8_value.h +0 -10
- data/ext/v8/v8_weakref.cpp +0 -61
- data/ext/v8/v8_weakref.h +0 -29
- data/lib/v8/access.rb +0 -92
- data/lib/v8/array.rb +0 -17
- data/lib/v8/c/locker.rb +0 -18
- data/lib/v8/cli.rb +0 -133
- data/lib/v8/context.rb +0 -111
- data/lib/v8/error.rb +0 -130
- data/lib/v8/function.rb +0 -44
- data/lib/v8/object.rb +0 -69
- data/lib/v8/portal/caller.rb +0 -37
- data/lib/v8/portal/constructor.rb +0 -98
- data/lib/v8/portal/function.rb +0 -63
- data/lib/v8/portal/interceptors.rb +0 -152
- data/lib/v8/portal/proxies.rb +0 -151
- data/lib/v8/portal/templates.rb +0 -73
- data/lib/v8/portal.rb +0 -86
- data/lib/v8/stack.rb +0 -66
- data/lib/v8/tap.rb +0 -9
- data/lib/v8/version.rb +0 -3
- data/lib/v8.rb +0 -23
- data/spec/ext/array_spec.rb +0 -15
- data/spec/ext/cxt_spec.rb +0 -57
- data/spec/ext/ext_spec_helper.rb +0 -27
- data/spec/ext/func_spec.rb +0 -64
- data/spec/ext/object_spec.rb +0 -10
- data/spec/ext/string_spec.rb +0 -11
- data/spec/ext/try_catch_spec.rb +0 -60
- data/spec/redjs_spec.rb +0 -9
- data/spec/spec_helper.rb +0 -9
- data/spec/v8/error_spec.rb +0 -131
- data/spec/v8/portal/proxies_spec.rb +0 -106
- data/specmem/handle_memspec.rb +0 -41
- data/specmem/object_memspec.rb +0 -14
- data/specmem/proxies_memspec.rb +0 -49
- data/specmem/spec_helper.rb +0 -24
- data/specthread/spec_helper.rb +0 -2
- data/specthread/threading_spec.rb +0 -13
- data/thefrontside.png +0 -0
- data/therubyracer.gemspec +0 -27
data/ext/v8/extconf.rb
DELETED
@@ -1,26 +0,0 @@
|
|
1
|
-
require 'mkmf'
|
2
|
-
require 'set'
|
3
|
-
begin
|
4
|
-
require 'libv8'
|
5
|
-
rescue LoadError
|
6
|
-
require 'rubygems'
|
7
|
-
require 'libv8'
|
8
|
-
end
|
9
|
-
|
10
|
-
have_library('objc') if RUBY_PLATFORM =~ /darwin/
|
11
|
-
|
12
|
-
#we have to manually prepend the libv8 include path to INCFLAGS
|
13
|
-
#since find_header() does not actually work as advertized.
|
14
|
-
#see https://github.com/cowboyd/therubyracer/issues/91
|
15
|
-
$INCFLAGS.insert 0, "-I#{Libv8.include_path} "
|
16
|
-
|
17
|
-
$CPPFLAGS += " -Wall" unless $CPPFLAGS.split.include? "-Wall"
|
18
|
-
$CPPFLAGS += " -g" unless $CPPFLAGS.split.include? "-g"
|
19
|
-
$CPPFLAGS += " -rdynamic" unless $CPPFLAGS.split.include? "-rdynamic"
|
20
|
-
|
21
|
-
$LDFLAGS.insert 0, "#{Libv8.library_path}/libv8.#{$LIBEXT} "
|
22
|
-
$LIBS << ' -lpthread'
|
23
|
-
|
24
|
-
CONFIG['LDSHARED'] = '$(CXX) -shared' unless RUBY_PLATFORM =~ /darwin/
|
25
|
-
|
26
|
-
create_makefile('v8')
|
data/ext/v8/rr.cpp
DELETED
@@ -1,189 +0,0 @@
|
|
1
|
-
#include "rr.h"
|
2
|
-
#include "v8_context.h"
|
3
|
-
#include "v8_handle.h"
|
4
|
-
#include "v8_value.h"
|
5
|
-
#include "v8_object.h"
|
6
|
-
#include "v8_function.h"
|
7
|
-
#include "v8_array.h"
|
8
|
-
#include "v8_string.h"
|
9
|
-
#include "v8_date.h"
|
10
|
-
#include "v8_message.h"
|
11
|
-
#include "v8_external.h"
|
12
|
-
#include "v8_exception.h"
|
13
|
-
|
14
|
-
using namespace v8;
|
15
|
-
|
16
|
-
VALUE rr_define_class(const char *name, VALUE superclass) {
|
17
|
-
VALUE V8 = rb_define_module("V8");
|
18
|
-
VALUE V8_C = rb_define_module_under(V8, "C");
|
19
|
-
VALUE klass = rb_define_class_under(V8_C, name, superclass);
|
20
|
-
rb_funcall(klass, rb_intern("private_class_method"), 1, rb_str_new2("new"));
|
21
|
-
return klass;
|
22
|
-
}
|
23
|
-
|
24
|
-
VALUE rr_define_module(const char *name) {
|
25
|
-
VALUE V8 = rb_define_module("V8");
|
26
|
-
VALUE V8_C = rb_define_module_under(V8, "C");
|
27
|
-
return rb_define_module_under(V8_C, name);
|
28
|
-
}
|
29
|
-
|
30
|
-
VALUE rr_define_const(const char *name, VALUE value) {
|
31
|
-
VALUE V8 = rb_define_module("V8");
|
32
|
-
VALUE V8_C = rb_define_module_under(V8, "C");
|
33
|
-
rb_define_const(V8_C, name, value);
|
34
|
-
return value;
|
35
|
-
}
|
36
|
-
|
37
|
-
VALUE rr_const_get(const char *name) {
|
38
|
-
VALUE V8 = rb_define_module("V8");
|
39
|
-
VALUE V8_C = rb_define_module_under(V8, "C");
|
40
|
-
return rb_const_get(V8_C, rb_intern(name));
|
41
|
-
}
|
42
|
-
|
43
|
-
VALUE rr_define_finalizer(VALUE object, void* finalizer, VALUE data) {
|
44
|
-
VALUE finalizer_proc = rb_proc_new((VALUE (*)(...))finalizer, data);
|
45
|
-
rb_iv_set(finalizer_proc, "data", data);
|
46
|
-
VALUE ospace = rb_const_get(rb_cObject, rb_intern("ObjectSpace"));
|
47
|
-
rb_funcall(ospace, rb_intern("define_finalizer"), 2, object, finalizer_proc);
|
48
|
-
}
|
49
|
-
|
50
|
-
VALUE rr_v82rb(Handle<Value> value) {
|
51
|
-
if (value.IsEmpty()) {
|
52
|
-
return rr_v8_value_empty();
|
53
|
-
}
|
54
|
-
if (value->IsUndefined() || value->IsNull()) {
|
55
|
-
return Qnil;
|
56
|
-
}
|
57
|
-
if (value->IsExternal()) {
|
58
|
-
return rr_reflect_v8_external(value);
|
59
|
-
}
|
60
|
-
if (value->IsUint32()) {
|
61
|
-
return UINT2NUM(value->Uint32Value());
|
62
|
-
}
|
63
|
-
if (value->IsInt32()) {
|
64
|
-
return INT2FIX(value->Int32Value());
|
65
|
-
}
|
66
|
-
if (value->IsBoolean()) {
|
67
|
-
return value->BooleanValue() ? Qtrue : Qfalse;
|
68
|
-
}
|
69
|
-
if (value->IsNumber()) {
|
70
|
-
return rb_float_new(value->NumberValue());
|
71
|
-
}
|
72
|
-
if (value->IsString()) {
|
73
|
-
return rr_reflect_v8_string(value);
|
74
|
-
}
|
75
|
-
if (value->IsFunction()) {
|
76
|
-
return rr_reflect_v8_function(value);
|
77
|
-
}
|
78
|
-
if (value->IsArray()) {
|
79
|
-
return rr_reflect_v8_array(value);
|
80
|
-
}
|
81
|
-
if (value->IsDate()) {
|
82
|
-
return rr_reflect_v8_date(value);
|
83
|
-
}
|
84
|
-
if (value->IsObject()) {
|
85
|
-
return rr_reflect_v8_object(value);
|
86
|
-
}
|
87
|
-
return rr_wrap_v8_value(value);
|
88
|
-
}
|
89
|
-
|
90
|
-
VALUE rr_v82rb(Handle<Message> value) {
|
91
|
-
return rr_reflect_v8_message(value);
|
92
|
-
}
|
93
|
-
VALUE rr_v82rb(Handle<StackTrace> value) {
|
94
|
-
return rr_reflect_v8_stacktrace(value);
|
95
|
-
}
|
96
|
-
VALUE rr_v82rb(Handle<StackFrame> value) {
|
97
|
-
return rr_reflect_v8_stackframe(value);
|
98
|
-
}
|
99
|
-
|
100
|
-
VALUE rr_v82rb(Handle<Boolean> value) {
|
101
|
-
return rr_v82rb((Handle<Value>)value);
|
102
|
-
}
|
103
|
-
VALUE rr_v82rb(Handle<Number> value) {
|
104
|
-
return rr_v82rb((Handle<Value>)value);
|
105
|
-
}
|
106
|
-
VALUE rr_v82rb(Handle<String> value) {
|
107
|
-
return rr_v82rb((Handle<Value>)value);
|
108
|
-
}
|
109
|
-
VALUE rr_v82rb(Handle<Object> value) {
|
110
|
-
return rr_v82rb((Handle<Value>)value);
|
111
|
-
}
|
112
|
-
VALUE rr_v82rb(Handle<Array> value) {
|
113
|
-
return rr_v82rb((Handle<Value>)value);
|
114
|
-
}
|
115
|
-
VALUE rr_v82rb(v8::Handle<v8::Function> value) {
|
116
|
-
return rr_v82rb((Handle<Value>)value);
|
117
|
-
}
|
118
|
-
VALUE rr_v82rb(Handle<Integer> value) {
|
119
|
-
return rr_v82rb((Handle<Value>)value);
|
120
|
-
}
|
121
|
-
VALUE rr_v82rb(Handle<Uint32> value) {
|
122
|
-
return rr_v82rb((Handle<Value>)value);
|
123
|
-
}
|
124
|
-
VALUE rr_v82rb(Handle<Int32> value) {
|
125
|
-
return rr_v82rb((Handle<Value>)value);
|
126
|
-
}
|
127
|
-
VALUE rr_v82rb(bool value) {
|
128
|
-
return value ? Qtrue : Qfalse;
|
129
|
-
}
|
130
|
-
VALUE rr_v82rb(double value) {
|
131
|
-
return rb_float_new(value);
|
132
|
-
}
|
133
|
-
VALUE rr_v82rb(int64_t value) {
|
134
|
-
return LONG2NUM(value);
|
135
|
-
}
|
136
|
-
VALUE rr_v82rb(uint32_t value) {
|
137
|
-
return UINT2NUM(value);
|
138
|
-
}
|
139
|
-
VALUE rr_v82rb(int32_t value) {
|
140
|
-
return INT2FIX(value);
|
141
|
-
}
|
142
|
-
|
143
|
-
Handle<Value> rr_rb2v8(VALUE value) {
|
144
|
-
switch (TYPE(value)) {
|
145
|
-
case T_FIXNUM:
|
146
|
-
// TODO: use this conversion if value will fit in 32 bits.
|
147
|
-
// return Integer::New(FIX2LONG(value));
|
148
|
-
case T_FLOAT:
|
149
|
-
return Number::New(NUM2DBL(value));
|
150
|
-
case T_STRING:
|
151
|
-
return String::New(RSTRING_PTR(value), RSTRING_LEN(value));
|
152
|
-
case T_NIL:
|
153
|
-
return Null();
|
154
|
-
case T_TRUE:
|
155
|
-
return True();
|
156
|
-
case T_FALSE:
|
157
|
-
return False();
|
158
|
-
case T_DATA:
|
159
|
-
return rr_v8_handle<Value>(value);
|
160
|
-
case T_OBJECT:
|
161
|
-
case T_CLASS:
|
162
|
-
case T_ICLASS:
|
163
|
-
case T_MODULE:
|
164
|
-
case T_REGEXP:
|
165
|
-
case T_MATCH:
|
166
|
-
case T_ARRAY:
|
167
|
-
case T_HASH:
|
168
|
-
case T_STRUCT:
|
169
|
-
case T_BIGNUM:
|
170
|
-
case T_FILE:
|
171
|
-
case T_SYMBOL:
|
172
|
-
// case T_BLKTAG: (not in 1.9)
|
173
|
-
case T_UNDEF:
|
174
|
-
// case T_VARMAP: (not in 1.9)
|
175
|
-
// case T_SCOPE: (not in 1.9)
|
176
|
-
case T_NODE:
|
177
|
-
default:
|
178
|
-
rb_warn("unknown conversion to V8 for: %s", RSTRING_PTR(rb_inspect(value)));
|
179
|
-
return String::New("Undefined Conversion");
|
180
|
-
}
|
181
|
-
|
182
|
-
return Undefined();
|
183
|
-
}
|
184
|
-
// VALUE rr_v82rb(v8::ScriptData *data) {
|
185
|
-
// return rr_thunk(rr_wrap_script_data(data));
|
186
|
-
// }
|
187
|
-
|
188
|
-
|
189
|
-
|
data/ext/v8/rr.h
DELETED
@@ -1,41 +0,0 @@
|
|
1
|
-
#ifndef _THE_RUBY_RACER_
|
2
|
-
#define _THE_RUBY_RACER_
|
3
|
-
|
4
|
-
#include <ruby.h>
|
5
|
-
#include <v8.h>
|
6
|
-
|
7
|
-
#define rr_define_method(klass, name, impl, argc) rb_define_method(klass, name, (VALUE(*)(...))impl, argc)
|
8
|
-
#define rr_define_singleton_method(object, name, impl, argc) rb_define_singleton_method(object, name, (VALUE(*)(...))impl, argc)
|
9
|
-
|
10
|
-
VALUE rr_define_class(const char *name, VALUE superclass = rb_cObject);
|
11
|
-
VALUE rr_define_module(const char *name);
|
12
|
-
VALUE rr_define_const(const char *name, VALUE value);
|
13
|
-
VALUE rr_const_get(const char *name);
|
14
|
-
VALUE rr_define_finalizer(VALUE object, void* finalizer, VALUE data);
|
15
|
-
|
16
|
-
extern "C" VALUE rb_proc_new(VALUE (*)(ANYARGS/* VALUE yieldarg[, VALUE procarg] */), VALUE);
|
17
|
-
|
18
|
-
|
19
|
-
VALUE rr_v82rb(v8::Handle<v8::Value> value);
|
20
|
-
VALUE rr_v82rb(v8::Handle<v8::Boolean> value);
|
21
|
-
VALUE rr_v82rb(v8::Handle<v8::Number> value);
|
22
|
-
VALUE rr_v82rb(v8::Handle<v8::String> value);
|
23
|
-
VALUE rr_v82rb(v8::Handle<v8::Object> value);
|
24
|
-
VALUE rr_v82rb(v8::Handle<v8::Array> value);
|
25
|
-
VALUE rr_v82rb(v8::Handle<v8::Function> value);
|
26
|
-
VALUE rr_v82rb(v8::Handle<v8::Integer> value);
|
27
|
-
VALUE rr_v82rb(v8::Handle<v8::Uint32> value);
|
28
|
-
VALUE rr_v82rb(v8::Handle<v8::Int32> value);
|
29
|
-
VALUE rr_v82rb(v8::Handle<v8::Message> value);
|
30
|
-
VALUE rr_v82rb(v8::Handle<v8::StackTrace> value);
|
31
|
-
VALUE rr_v82rb(v8::Handle<v8::StackFrame> value);
|
32
|
-
|
33
|
-
VALUE rr_v82rb(bool value);
|
34
|
-
VALUE rr_v82rb(double value);
|
35
|
-
VALUE rr_v82rb(int64_t value);
|
36
|
-
VALUE rr_v82rb(uint32_t value);
|
37
|
-
VALUE rr_v82rb(int32_t value);
|
38
|
-
|
39
|
-
v8::Handle<v8::Value> rr_rb2v8(VALUE value);
|
40
|
-
|
41
|
-
#endif
|
data/ext/v8/v8.cpp
DELETED
@@ -1,48 +0,0 @@
|
|
1
|
-
#include "v8_handle.h"
|
2
|
-
#include "v8_context.h"
|
3
|
-
#include "v8_value.h"
|
4
|
-
#include "v8_string.h"
|
5
|
-
#include "v8_object.h"
|
6
|
-
#include "v8_array.h"
|
7
|
-
#include "v8_message.h"
|
8
|
-
#include "v8_function.h"
|
9
|
-
#include "v8_date.h"
|
10
|
-
#include "v8_script.h"
|
11
|
-
#include "v8_template.h"
|
12
|
-
#include "v8_try_catch.h"
|
13
|
-
#include "v8_callbacks.h"
|
14
|
-
#include "v8_external.h"
|
15
|
-
#include "v8_exception.h"
|
16
|
-
#include "v8_locker.h"
|
17
|
-
#include "v8_debug.h"
|
18
|
-
#include "v8_v8.h"
|
19
|
-
|
20
|
-
#include <stdio.h>
|
21
|
-
|
22
|
-
extern "C" {
|
23
|
-
void Init_v8();
|
24
|
-
}
|
25
|
-
|
26
|
-
extern "C" {
|
27
|
-
void Init_v8() {
|
28
|
-
v8::Locker locker;
|
29
|
-
rr_init_handle();
|
30
|
-
rr_init_context();
|
31
|
-
rr_init_value();
|
32
|
-
rr_init_string();
|
33
|
-
rr_init_script();
|
34
|
-
rr_init_template();
|
35
|
-
rr_init_object();
|
36
|
-
rr_init_function();
|
37
|
-
rr_init_v8_array();
|
38
|
-
rr_init_v8_date();
|
39
|
-
rr_init_message();
|
40
|
-
rr_init_v8_try_catch();
|
41
|
-
rr_init_v8_callbacks();
|
42
|
-
rr_init_v8_external();
|
43
|
-
rr_init_v8_exception();
|
44
|
-
rr_init_v8_locker();
|
45
|
-
rr_init_v8_debug();
|
46
|
-
rr_init_v8_v8();
|
47
|
-
}
|
48
|
-
}
|
data/ext/v8/v8_array.cpp
DELETED
@@ -1,48 +0,0 @@
|
|
1
|
-
#include "v8_handle.h"
|
2
|
-
#include "v8_array.h"
|
3
|
-
#include "v8_object.h"
|
4
|
-
|
5
|
-
using namespace v8;
|
6
|
-
|
7
|
-
|
8
|
-
namespace {
|
9
|
-
|
10
|
-
VALUE ArrayClass;
|
11
|
-
|
12
|
-
Persistent<Array>& unwrap(VALUE self) {
|
13
|
-
return rr_v8_handle<Array>(self);
|
14
|
-
}
|
15
|
-
|
16
|
-
VALUE New(int argc, VALUE *argv, VALUE self) {
|
17
|
-
if (!Context::InContext()) {
|
18
|
-
rb_raise(rb_eScriptError, "must be in a context to call Array::New()");
|
19
|
-
return Qnil;
|
20
|
-
}
|
21
|
-
VALUE length;
|
22
|
-
rb_scan_args(argc, argv, "01", &length);
|
23
|
-
if (NIL_P(length)) {
|
24
|
-
length = INT2FIX(0);
|
25
|
-
}
|
26
|
-
HandleScope scope;
|
27
|
-
return rr_v8_handle_new(self, Array::New(NUM2INT(length)));
|
28
|
-
}
|
29
|
-
|
30
|
-
VALUE Length(VALUE self) {
|
31
|
-
return rr_v82rb(unwrap(self)->Length());
|
32
|
-
}
|
33
|
-
|
34
|
-
VALUE CloneElementAt(VALUE self, VALUE index) {
|
35
|
-
return rr_v82rb(unwrap(self)->CloneElementAt(NUM2UINT(index)));
|
36
|
-
}
|
37
|
-
}
|
38
|
-
|
39
|
-
void rr_init_v8_array() {
|
40
|
-
ArrayClass = rr_define_class("Array", rr_v8_object_class());
|
41
|
-
rr_define_singleton_method(ArrayClass, "New", New, -1);
|
42
|
-
rr_define_method(ArrayClass, "Length", Length, 0);
|
43
|
-
rr_define_method(ArrayClass, "CloneElementAt", CloneElementAt, 1);
|
44
|
-
}
|
45
|
-
|
46
|
-
VALUE rr_reflect_v8_array(Handle<Value> value) {
|
47
|
-
return rr_reflect_v8_object_as(value, ArrayClass);
|
48
|
-
}
|
data/ext/v8/v8_array.h
DELETED
data/ext/v8/v8_callbacks.cpp
DELETED
@@ -1,81 +0,0 @@
|
|
1
|
-
#include "v8_callbacks.h"
|
2
|
-
#include "rr.h"
|
3
|
-
|
4
|
-
using namespace v8;
|
5
|
-
|
6
|
-
|
7
|
-
namespace {
|
8
|
-
VALUE ArgumentsClass;
|
9
|
-
VALUE AccessorInfoClass;
|
10
|
-
|
11
|
-
VALUE _Data(VALUE self) {
|
12
|
-
return rb_iv_get(self, "data");
|
13
|
-
}
|
14
|
-
|
15
|
-
namespace Accessor {
|
16
|
-
AccessorInfo *info(VALUE value) {
|
17
|
-
AccessorInfo* i = 0;
|
18
|
-
Data_Get_Struct(value, class AccessorInfo, i);
|
19
|
-
return i;
|
20
|
-
}
|
21
|
-
VALUE This(VALUE self) {
|
22
|
-
return rr_v82rb(info(self)->This());
|
23
|
-
}
|
24
|
-
VALUE Holder(VALUE self) {
|
25
|
-
return rr_v82rb(info(self)->Holder());
|
26
|
-
}
|
27
|
-
}
|
28
|
-
|
29
|
-
namespace Args {
|
30
|
-
Arguments* args(VALUE value) {
|
31
|
-
Arguments *arguments = 0;
|
32
|
-
Data_Get_Struct(value, class Arguments, arguments);
|
33
|
-
return arguments;
|
34
|
-
}
|
35
|
-
VALUE This(VALUE self) {
|
36
|
-
return rr_v82rb(args(self)->This());
|
37
|
-
}
|
38
|
-
|
39
|
-
VALUE Holder(VALUE self) {
|
40
|
-
return rr_v82rb(args(self)->Holder());
|
41
|
-
}
|
42
|
-
|
43
|
-
VALUE Length(VALUE self) {
|
44
|
-
return rr_v82rb(args(self)->Length());
|
45
|
-
}
|
46
|
-
VALUE Get(VALUE self, VALUE index) {
|
47
|
-
int i = NUM2INT(index);
|
48
|
-
return rr_v82rb((*args(self))[i]);
|
49
|
-
}
|
50
|
-
VALUE Callee(VALUE self) {
|
51
|
-
return rr_v82rb(args(self)->Callee());
|
52
|
-
}
|
53
|
-
VALUE IsConstructCall(VALUE self) {
|
54
|
-
return rr_v82rb(args(self)->IsConstructCall());
|
55
|
-
}
|
56
|
-
}
|
57
|
-
|
58
|
-
}
|
59
|
-
|
60
|
-
void rr_init_v8_callbacks() {
|
61
|
-
AccessorInfoClass = rr_define_class("AccessorInfo");
|
62
|
-
rr_define_method(AccessorInfoClass, "This", Accessor::This, 0);
|
63
|
-
rr_define_method(AccessorInfoClass, "Holder", Accessor::Holder, 0);
|
64
|
-
rr_define_method(AccessorInfoClass, "Data", _Data, 0);
|
65
|
-
|
66
|
-
ArgumentsClass = rr_define_class("Arguments");
|
67
|
-
rr_define_method(ArgumentsClass, "This", Args::This, 0);
|
68
|
-
rr_define_method(ArgumentsClass, "Holder", Args::Holder, 0);
|
69
|
-
rr_define_method(ArgumentsClass, "Data", _Data, 0);
|
70
|
-
rr_define_method(ArgumentsClass, "Length", Args::Length, 0);
|
71
|
-
rr_define_method(ArgumentsClass, "Callee", Args::Callee, 0);
|
72
|
-
rr_define_method(ArgumentsClass, "IsConstructCall", Args::IsConstructCall, 0);
|
73
|
-
rr_define_method(ArgumentsClass, "[]", Args::Get, 1);
|
74
|
-
}
|
75
|
-
|
76
|
-
VALUE rr_v82rb(const AccessorInfo& info) {
|
77
|
-
return Data_Wrap_Struct(AccessorInfoClass, 0, 0, (void*)&info);
|
78
|
-
}
|
79
|
-
VALUE rr_v82rb(const Arguments& arguments) {
|
80
|
-
return Data_Wrap_Struct(ArgumentsClass, 0, 0, (void*)&arguments);
|
81
|
-
}
|
data/ext/v8/v8_callbacks.h
DELETED
data/ext/v8/v8_context.cpp
DELETED
@@ -1,92 +0,0 @@
|
|
1
|
-
#include "rr.h"
|
2
|
-
#include "v8_handle.h"
|
3
|
-
#include "v8_context.h"
|
4
|
-
#include "v8_message.h"
|
5
|
-
#include "v8_template.h"
|
6
|
-
#include "v8_external.h"
|
7
|
-
|
8
|
-
using namespace v8;
|
9
|
-
|
10
|
-
namespace {
|
11
|
-
|
12
|
-
VALUE ContextClass;
|
13
|
-
|
14
|
-
Persistent<Context>& unwrap(VALUE value) {
|
15
|
-
return rr_v8_handle<Context>(value);
|
16
|
-
}
|
17
|
-
|
18
|
-
VALUE New(int argc, VALUE *argv, VALUE self) {
|
19
|
-
HandleScope handles;
|
20
|
-
VALUE global_template; VALUE global_object;
|
21
|
-
rb_scan_args(argc,argv, "02", &global_template, &global_object);
|
22
|
-
Handle<ObjectTemplate> v8_global_template(NIL_P(global_template) ? Handle<ObjectTemplate>() : rr_v8_handle<ObjectTemplate>(global_template));
|
23
|
-
Handle<Value> v8_global_object(NIL_P(global_object) ? Handle<Value>() : rr_v8_handle<Value>(global_object));
|
24
|
-
Persistent<Context> cxt(Context::New(0, v8_global_template, v8_global_object));
|
25
|
-
VALUE ref = rr_v8_handle_new(self, cxt);
|
26
|
-
cxt.Dispose();
|
27
|
-
return ref;
|
28
|
-
}
|
29
|
-
|
30
|
-
VALUE InContext(VALUE self) {
|
31
|
-
return Context::InContext() ? Qtrue : Qfalse;
|
32
|
-
}
|
33
|
-
|
34
|
-
VALUE GetEntered(VALUE self) {
|
35
|
-
HandleScope handles;
|
36
|
-
if (Context::InContext()) {
|
37
|
-
Local<Context> current = Context::GetEntered();
|
38
|
-
return rr_v8_handle_new(self, current);
|
39
|
-
} else {
|
40
|
-
return Qnil;
|
41
|
-
}
|
42
|
-
}
|
43
|
-
|
44
|
-
VALUE Global(VALUE self) {
|
45
|
-
HandleScope handles;
|
46
|
-
return rr_v82rb(unwrap(self)->Global());
|
47
|
-
}
|
48
|
-
|
49
|
-
VALUE Enter(VALUE self) {
|
50
|
-
HandleScope handles;
|
51
|
-
unwrap(self)->Enter();
|
52
|
-
return self;
|
53
|
-
}
|
54
|
-
|
55
|
-
VALUE Exit(VALUE self) {
|
56
|
-
HandleScope handles;
|
57
|
-
unwrap(self)->Exit();
|
58
|
-
return self;
|
59
|
-
}
|
60
|
-
|
61
|
-
VALUE IsEntered(VALUE self) {
|
62
|
-
HandleScope handles;
|
63
|
-
if (Context::InContext()) {
|
64
|
-
return rr_v82rb(unwrap(self) == Context::GetEntered());
|
65
|
-
} else {
|
66
|
-
return Qfalse;
|
67
|
-
}
|
68
|
-
}
|
69
|
-
VALUE GetData(VALUE self) {
|
70
|
-
HandleScope scope;
|
71
|
-
return rr_v82rb(unwrap(self)->GetData());
|
72
|
-
}
|
73
|
-
VALUE SetData(VALUE self, VALUE data) {
|
74
|
-
HandleScope scope;
|
75
|
-
unwrap(self)->SetData(rr_rb2v8(data)->ToString());
|
76
|
-
return Qnil;
|
77
|
-
}
|
78
|
-
}
|
79
|
-
|
80
|
-
void rr_init_context() {
|
81
|
-
ContextClass = rr_define_class("Context", rr_v8_handle_class());
|
82
|
-
rr_define_singleton_method(ContextClass, "New", New, -1);
|
83
|
-
rr_define_singleton_method(ContextClass, "InContext", InContext, 0);
|
84
|
-
rr_define_singleton_method(ContextClass, "GetEntered", GetEntered, 0);
|
85
|
-
rr_define_method(ContextClass, "Global", Global, 0);
|
86
|
-
rr_define_method(ContextClass, "Enter", Enter, 0);
|
87
|
-
rr_define_method(ContextClass, "Exit", Exit, 0);
|
88
|
-
rr_define_method(ContextClass, "IsEntered", IsEntered, 0);
|
89
|
-
rr_define_method(ContextClass, "GetData", GetData, 0);
|
90
|
-
rr_define_method(ContextClass, "SetData", SetData, 1);
|
91
|
-
}
|
92
|
-
|
data/ext/v8/v8_context.h
DELETED
data/ext/v8/v8_date.cpp
DELETED
@@ -1,40 +0,0 @@
|
|
1
|
-
#include "rr.h"
|
2
|
-
#include "v8_date.h"
|
3
|
-
#include "v8_value.h"
|
4
|
-
#include "v8_handle.h"
|
5
|
-
#include "v8_object.h"
|
6
|
-
|
7
|
-
using namespace v8;
|
8
|
-
|
9
|
-
namespace {
|
10
|
-
|
11
|
-
VALUE DateClass;
|
12
|
-
|
13
|
-
VALUE New(VALUE self, VALUE time) {
|
14
|
-
HandleScope scope;
|
15
|
-
return rr_v8_handle_new(self, Date::New(NUM2DBL(time)));
|
16
|
-
}
|
17
|
-
|
18
|
-
// Override Value::NumberValue in order to ensure that we call the more specific and optimized
|
19
|
-
// Number Value in v8::Date
|
20
|
-
VALUE NumberValue(VALUE self) {
|
21
|
-
Persistent<Date> date = rr_v8_handle<Date>(self);
|
22
|
-
return rr_v82rb(date->NumberValue());
|
23
|
-
}
|
24
|
-
|
25
|
-
VALUE DateTimeConfigurationChangeNotification(VALUE self) {
|
26
|
-
Date::DateTimeConfigurationChangeNotification();
|
27
|
-
return Qnil;
|
28
|
-
}
|
29
|
-
}
|
30
|
-
|
31
|
-
void rr_init_v8_date() {
|
32
|
-
DateClass = rr_define_class("Date", rr_v8_value_class());
|
33
|
-
rr_define_singleton_method(DateClass, "New", New, 1);
|
34
|
-
rr_define_singleton_method(DateClass, "DateTimeConfigurationChangeNotification", DateTimeConfigurationChangeNotification, 0);
|
35
|
-
rr_define_method(DateClass, "NumberValue", NumberValue, 0);
|
36
|
-
}
|
37
|
-
|
38
|
-
VALUE rr_reflect_v8_date(Handle<Value> value) {
|
39
|
-
return rr_reflect_v8_object_as(Handle<Object>::Cast(value), DateClass);
|
40
|
-
}
|
data/ext/v8/v8_date.h
DELETED
data/ext/v8/v8_debug.cpp
DELETED
@@ -1,17 +0,0 @@
|
|
1
|
-
#include "rr.h"
|
2
|
-
#include "v8_debug.h"
|
3
|
-
#include "v8-debug.h"
|
4
|
-
|
5
|
-
using namespace v8;
|
6
|
-
|
7
|
-
namespace {
|
8
|
-
|
9
|
-
VALUE EnableAgent(VALUE self, VALUE application_name, VALUE port) {
|
10
|
-
return rr_v82rb(v8::Debug::EnableAgent(RSTRING_PTR(application_name), NUM2INT(port), false));
|
11
|
-
}
|
12
|
-
}
|
13
|
-
|
14
|
-
void rr_init_v8_debug() {
|
15
|
-
VALUE DebugModule = rr_define_module("Debug");
|
16
|
-
rr_define_singleton_method(DebugModule, "EnableAgent", EnableAgent, 2);
|
17
|
-
}
|