Wrap text
Report abuse
|
|
~ ➔ cat test.rb
puts DATA
__END__
foo
bar
baz
~ ➔ jrubyc test.rb
Compiling test.rb to class ruby/test
~ ➔ javap -c -private ruby/test
Compiled from "test.rb"
public class ruby.test extends org.jruby.ast.executable.AbstractScript{
private final java.lang.Class $class;
public ruby.test();
Code:
0: aload_0
1: invokespecial #9; //Method org/jruby/ast/executable/AbstractScript."":()V
4: aload_0
5: ldc #13; //String ruby.test
7: invokestatic #19; //Method java/lang/Class.forName:(Ljava/lang/String;)Ljava/lang/Class;
10: putfield #21; //Field $class:Ljava/lang/Class;
13: aload_0
14: ldc #42; //String puts
16: invokestatic #48; //Method org/jruby/runtime/MethodIndex.getFunctionalCallSite:(Ljava/lang/String;)Lorg/jruby/runtime/CallSite;
19: putfield #52; //Field site0:Lorg/jruby/runtime/CallSite;
22: return
public static {};
Code:
0: return
public org.jruby.runtime.builtin.IRubyObject __file__(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject, org.jruby.runtime.builtin.IRubyObject[], org.jruby.runtime.Block);
Code:
0: aload_1
1: invokevirtual #30; //Method org/jruby/runtime/ThreadContext.getRuntime:()Lorg/jruby/Ruby;
4: dup
5: astore 6
7: invokevirtual #36; //Method org/jruby/Ruby.getNil:()Lorg/jruby/runtime/builtin/IRubyObject;
10: astore 8
12: nop
13: aload_1
14: iconst_0
15: invokestatic #40; //Method setPosition:(Lorg/jruby/runtime/ThreadContext;I)V
18: aload_0
19: getfield #52; //Field site0:Lorg/jruby/runtime/CallSite;
22: aload_1
23: aload_2
24: aload_1
25: ldc #54; //String DATA
27: invokevirtual #58; //Method org/jruby/runtime/ThreadContext.getConstant:(Ljava/lang/String;)Lorg/jruby/runtime/builtin/IRubyObject;
30: invokevirtual #64; //Method org/jruby/runtime/CallSite.call:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
33: areturn
public org.jruby.runtime.builtin.IRubyObject load(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject, org.jruby.runtime.builtin.IRubyObject[], org.jruby.runtime.Block);
Code:
0: aload_1
1: iconst_0
2: anewarray #67; //class java/lang/String
5: invokestatic #73; //Method org/jruby/javasupport/util/RuntimeHelpers.preLoad:(Lorg/jruby/runtime/ThreadContext;[Ljava/lang/String;)V
8: aload_0
9: aload_1
10: aload_2
11: aload_3
12: aload 4
14: invokevirtual #75; //Method __file__:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;[Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/Block;)Lorg/jruby/runtime/builtin/IRubyObject;
17: aload_1
18: invokestatic #79; //Method org/jruby/javasupport/util/RuntimeHelpers.postLoad:(Lorg/jruby/runtime/ThreadContext;)V
21: areturn
22: aload_1
23: invokestatic #79; //Method org/jruby/javasupport/util/RuntimeHelpers.postLoad:(Lorg/jruby/runtime/ThreadContext;)V
26: athrow
Exception table:
from to target type
0 22 22 any
public static void main(java.lang.String[]);
Code:
0: new #2; //class ruby/test
3: dup
4: invokespecial #82; //Method "":()V
7: new #84; //class org/jruby/RubyInstanceConfig
10: dup
11: invokespecial #85; //Method org/jruby/RubyInstanceConfig."":()V
14: dup
15: aload_0
16: invokevirtual #88; //Method org/jruby/RubyInstanceConfig.setArgv:([Ljava/lang/String;)V
19: invokestatic #92; //Method org/jruby/Ruby.newInstance:(Lorg/jruby/RubyInstanceConfig;)Lorg/jruby/Ruby;
22: dup
23: invokevirtual #96; //Method org/jruby/Ruby.getCurrentContext:()Lorg/jruby/runtime/ThreadContext;
26: swap
27: invokevirtual #99; //Method org/jruby/Ruby.getTopSelf:()Lorg/jruby/runtime/builtin/IRubyObject;
30: getstatic #105; //Field org/jruby/runtime/builtin/IRubyObject.NULL_ARRAY:[Lorg/jruby/runtime/builtin/IRubyObject;
33: getstatic #111; //Field org/jruby/runtime/Block.NULL_BLOCK:Lorg/jruby/runtime/Block;
36: invokevirtual #113; //Method load:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;[Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/Block;)Lorg/jruby/runtime/builtin/IRubyObject;
39: return
private static void setPosition(org.jruby.runtime.ThreadContext, int);
Code:
0: aload_0
1: ldc #114; //String test.rb
3: iload_1
4: invokevirtual #118; //Method org/jruby/runtime/ThreadContext.setFileAndLine:(Ljava/lang/String;I)V
7: return
}
|