|
|
~ ➔ javap -l -c -private -s -verbose ruby/test
Compiled from "test.rb"
public class ruby.test extends org.jruby.ast.executable.AbstractScript
SourceFile: "test.rb"
minor version: 0
major version: 48
Constant pool:
const #1 = Asciz ruby/test;
const #2 = class #1; // ruby/test
const #3 = Asciz org/jruby/ast/executable/AbstractScript;
const #4 = class #3; // org/jruby/ast/executable/AbstractScript
const #5 = Asciz test.rb;
const #6 = Asciz ;
const #7 = Asciz ()V;
const #8 = NameAndType #6:#7;// "":()V
const #9 = Method #4.#8; // org/jruby/ast/executable/AbstractScript."":()V
const #10 = Asciz $class;
const #11 = Asciz Ljava/lang/Class;;
const #12 = Asciz ruby.test;
const #13 = String #12; // ruby.test
const #14 = Asciz java/lang/Class;
const #15 = class #14; // java/lang/Class
const #16 = Asciz forName;
const #17 = Asciz (Ljava/lang/String;)Ljava/lang/Class;;
const #18 = NameAndType #16:#17;// forName:(Ljava/lang/String;)Ljava/lang/Class;
const #19 = Method #15.#18; // java/lang/Class.forName:(Ljava/lang/String;)Ljava/lang/Class;
const #20 = NameAndType #10:#11;// $class:Ljava/lang/Class;
const #21 = Field #2.#20; // ruby/test.$class:Ljava/lang/Class;
const #22 = Asciz ;
const #23 = Asciz __file__;
const #24 = Asciz (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;[Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/Block;)Lorg/jruby/runtime/builtin/IRubyObject;;
const #25 = Asciz org/jruby/runtime/ThreadContext;
const #26 = class #25; // org/jruby/runtime/ThreadContext
const #27 = Asciz getRuntime;
const #28 = Asciz ()Lorg/jruby/Ruby;;
const #29 = NameAndType #27:#28;// getRuntime:()Lorg/jruby/Ruby;
const #30 = Method #26.#29; // org/jruby/runtime/ThreadContext.getRuntime:()Lorg/jruby/Ruby;
const #31 = Asciz org/jruby/Ruby;
const #32 = class #31; // org/jruby/Ruby
const #33 = Asciz getNil;
const #34 = Asciz ()Lorg/jruby/runtime/builtin/IRubyObject;;
const #35 = NameAndType #33:#34;// getNil:()Lorg/jruby/runtime/builtin/IRubyObject;
const #36 = Method #32.#35; // org/jruby/Ruby.getNil:()Lorg/jruby/runtime/builtin/IRubyObject;
const #37 = Asciz setPosition;
const #38 = Asciz (Lorg/jruby/runtime/ThreadContext;I)V;
const #39 = NameAndType #37:#38;// setPosition:(Lorg/jruby/runtime/ThreadContext;I)V
const #40 = Method #2.#39; // ruby/test.setPosition:(Lorg/jruby/runtime/ThreadContext;I)V
const #41 = Asciz puts;
const #42 = String #41; // puts
const #43 = Asciz org/jruby/runtime/MethodIndex;
const #44 = class #43; // org/jruby/runtime/MethodIndex
const #45 = Asciz getFunctionalCallSite;
const #46 = Asciz (Ljava/lang/String;)Lorg/jruby/runtime/CallSite;;
const #47 = NameAndType #45:#46;// getFunctionalCallSite:(Ljava/lang/String;)Lorg/jruby/runtime/CallSite;
const #48 = Method #44.#47; // org/jruby/runtime/MethodIndex.getFunctionalCallSite:(Ljava/lang/String;)Lorg/jruby/runtime/CallSite;
const #49 = Asciz site0;
const #50 = Asciz Lorg/jruby/runtime/CallSite;;
const #51 = NameAndType #49:#50;// site0:Lorg/jruby/runtime/CallSite;
const #52 = Field #2.#51; // ruby/test.site0:Lorg/jruby/runtime/CallSite;
const #53 = Asciz DATA;
const #54 = String #53; // DATA
const #55 = Asciz getConstant;
const #56 = Asciz (Ljava/lang/String;)Lorg/jruby/runtime/builtin/IRubyObject;;
const #57 = NameAndType #55:#56;// getConstant:(Ljava/lang/String;)Lorg/jruby/runtime/builtin/IRubyObject;
const #58 = Method #26.#57; // org/jruby/runtime/ThreadContext.getConstant:(Ljava/lang/String;)Lorg/jruby/runtime/builtin/IRubyObject;
const #59 = Asciz org/jruby/runtime/CallSite;
const #60 = class #59; // org/jruby/runtime/CallSite
const #61 = Asciz call;
const #62 = Asciz (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;;
const #63 = NameAndType #61:#62;// call:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
const #64 = Method #60.#63; // org/jruby/runtime/CallSite.call:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
const #65 = Asciz load;
const #66 = Asciz java/lang/String;
const #67 = class #66; // java/lang/String
const #68 = Asciz org/jruby/javasupport/util/RuntimeHelpers;
const #69 = class #68; // org/jruby/javasupport/util/RuntimeHelpers
const #70 = Asciz preLoad;
const #71 = Asciz (Lorg/jruby/runtime/ThreadContext;[Ljava/lang/String;)V;
const #72 = NameAndType #70:#71;// preLoad:(Lorg/jruby/runtime/ThreadContext;[Ljava/lang/String;)V
const #73 = Method #69.#72; // org/jruby/javasupport/util/RuntimeHelpers.preLoad:(Lorg/jruby/runtime/ThreadContext;[Ljava/lang/String;)V
const #74 = NameAndType #23:#24;// __file__:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;[Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/Block;)Lorg/jruby/runtime/builtin/IRubyObject;
const #75 = Method #2.#74; // ruby/test.__file__:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;[Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/Block;)Lorg/jruby/runtime/builtin/IRubyObject;
const #76 = Asciz postLoad;
const #77 = Asciz (Lorg/jruby/runtime/ThreadContext;)V;
const #78 = NameAndType #76:#77;// postLoad:(Lorg/jruby/runtime/ThreadContext;)V
const #79 = Method #69.#78; // org/jruby/javasupport/util/RuntimeHelpers.postLoad:(Lorg/jruby/runtime/ThreadContext;)V
const #80 = Asciz main;
const #81 = Asciz ([Ljava/lang/String;)V;
const #82 = Method #2.#8; // ruby/test."":()V
const #83 = Asciz org/jruby/RubyInstanceConfig;
const #84 = class #83; // org/jruby/RubyInstanceConfig
const #85 = Method #84.#8; // org/jruby/RubyInstanceConfig."":()V
const #86 = Asciz setArgv;
const #87 = NameAndType #86:#81;// setArgv:([Ljava/lang/String;)V
const #88 = Method #84.#87; // org/jruby/RubyInstanceConfig.setArgv:([Ljava/lang/String;)V
const #89 = Asciz newInstance;
const #90 = Asciz (Lorg/jruby/RubyInstanceConfig;)Lorg/jruby/Ruby;;
const #91 = NameAndType #89:#90;// newInstance:(Lorg/jruby/RubyInstanceConfig;)Lorg/jruby/Ruby;
const #92 = Method #32.#91; // org/jruby/Ruby.newInstance:(Lorg/jruby/RubyInstanceConfig;)Lorg/jruby/Ruby;
const #93 = Asciz getCurrentContext;
const #94 = Asciz ()Lorg/jruby/runtime/ThreadContext;;
const #95 = NameAndType #93:#94;// getCurrentContext:()Lorg/jruby/runtime/ThreadContext;
const #96 = Method #32.#95; // org/jruby/Ruby.getCurrentContext:()Lorg/jruby/runtime/ThreadContext;
const #97 = Asciz getTopSelf;
const #98 = NameAndType #97:#34;// getTopSelf:()Lorg/jruby/runtime/builtin/IRubyObject;
const #99 = Method #32.#98; // org/jruby/Ruby.getTopSelf:()Lorg/jruby/runtime/builtin/IRubyObject;
const #100 = Asciz org/jruby/runtime/builtin/IRubyObject;
const #101 = class #100; // org/jruby/runtime/builtin/IRubyObject
const #102 = Asciz NULL_ARRAY;
const #103 = Asciz [Lorg/jruby/runtime/builtin/IRubyObject;;
const #104 = NameAndType #102:#103;// NULL_ARRAY:[Lorg/jruby/runtime/builtin/IRubyObject;
const #105 = Field #101.#104; // org/jruby/runtime/builtin/IRubyObject.NULL_ARRAY:[Lorg/jruby/runtime/builtin/IRubyObject;
const #106 = Asciz org/jruby/runtime/Block;
const #107 = class #106; // org/jruby/runtime/Block
const #108 = Asciz NULL_BLOCK;
const #109 = Asciz Lorg/jruby/runtime/Block;;
const #110 = NameAndType #108:#109;// NULL_BLOCK:Lorg/jruby/runtime/Block;
const #111 = Field #107.#110; // org/jruby/runtime/Block.NULL_BLOCK:Lorg/jruby/runtime/Block;
const #112 = NameAndType #65:#24;// load:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;[Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/Block;)Lorg/jruby/runtime/builtin/IRubyObject;
const #113 = Method #2.#112; // ruby/test.load:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;[Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/Block;)Lorg/jruby/runtime/builtin/IRubyObject;
const #114 = String #5; // test.rb
const #115 = Asciz setFileAndLine;
const #116 = Asciz (Ljava/lang/String;I)V;
const #117 = NameAndType #115:#116;// setFileAndLine:(Ljava/lang/String;I)V
const #118 = Method #26.#117; // org/jruby/runtime/ThreadContext.setFileAndLine:(Ljava/lang/String;I)V
const #119 = Asciz Code;
const #120 = Asciz LineNumberTable;
const #121 = Asciz Synthetic;
const #122 = Asciz SourceFile;
{
private final java.lang.Class $class;
Signature: Ljava/lang/Class;
public ruby.test();
Signature: ()V
Code:
Stack=2, Locals=1, Args_size=1
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 {};
Signature: ()V
Code:
Stack=0, Locals=0, Args_size=0
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);
Signature: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;[Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/Block;)Lorg/jruby/runtime/builtin/IRubyObject;
LineNumberTable:
line 1: 13
Code:
Stack=5, Locals=9, Args_size=5
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
LineNumberTable:
line 1: 13
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);
Signature: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;[Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/Block;)Lorg/jruby/runtime/builtin/IRubyObject;
Code:
Stack=5, Locals=5, Args_size=5
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[]);
Signature: ([Ljava/lang/String;)V
Code:
Stack=5, Locals=1, Args_size=1
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);
Signature: (Lorg/jruby/runtime/ThreadContext;I)V
Code:
Stack=3, Locals=2, Args_size=2
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
Synthetic: true
}
|