~ ➔ 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 }