Report abuse


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

}