1
0
Fork 0
mirror of https://github.com/rubyjs/therubyracer synced 2023-03-27 23:21:42 -04:00
therubyracer/spec/c/template_spec.rb
2012-06-05 08:00:04 -05:00

30 lines
No EOL
1.1 KiB
Ruby

require 'spec_helper'
describe V8::C::Template do
describe V8::C::FunctionTemplate do
it "can be created with no arguments" do
t = V8::C::FunctionTemplate::New()
t.GetFunction().Call(@cxt.Global(),0, []).StrictEquals(@cxt.Global()).should be_true
end
it "can be created with a callback" do
receiver = V8::C::Object::New()
f = nil
callback = lambda do |arguments|
arguments.Length().should be(2)
arguments[0].Utf8Value().should eql 'one'
arguments[1].Utf8Value().should eql 'two'
arguments.Callee().StrictEquals(f).should be_true
arguments.This().StrictEquals(receiver).should be_true
arguments.Holder().StrictEquals(receiver).should be_true
arguments.IsConstructCall().should be_false
arguments.Data().Value().should be(42)
V8::C::String::New("result")
end
t = V8::C::FunctionTemplate::New(callback, V8::C::External::New(42))
f = t.GetFunction()
f.Call(receiver, 2, [V8::C::String::New('one'), V8::C::String::New('two')]).Utf8Value().should eql "result"
end
end
end