public
Description: Mozilla JavaScript Engine (SpiderMonkey) bindings for Ruby
Clone URL: git://github.com/matthewd/ruby-mozjs.git
ruby-mozjs / fault.rb
100644 37 lines (28 sloc) 0.483 kb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
require 'date'
require 'spidermonkey'
 
class RubyObj
  def foo(bar)
    bar.to_s
  end
  def quux(xyzzy)
    [xyzzy]
  end
  def fred(barney)
    { :barney => barney }
  end
end
 
cx = SpiderMonkey::Context.new
cx.set_property('obj', RubyObj.new)
cx.set_property('out', STDOUT)
 
cx.eval(<<-JS)
 
var ary = [];
for (var i = 0; i < 100000; i++) {
out.puts(i);
var a = obj.foo("a" + i);
var b = obj.fred(a);
var c = obj.fred(b);
ary.push([a, b, c]);
}
 
JS
 
cx.gc
 
puts "Okay!"