Created
June 1, 2009 08:42
-
-
Save jruby/121310 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
~/projects/ruby2java ➔ javap -v RubyMain | |
Compiled from "examples.ruby_main.rb" | |
public class RubyMain extends org.jruby.RubyObject | |
SourceFile: "examples/ruby_main.rb" | |
minor version: 0 | |
major version: 48 | |
Constant pool: | |
const #1 = Asciz RubyMain; | |
const #2 = class #1; // RubyMain | |
const #3 = Asciz org/jruby/RubyObject; | |
const #4 = class #3; // org/jruby/RubyObject | |
const #5 = Asciz examples/ruby_main.rb; | |
const #6 = Asciz __ruby_class__; | |
const #7 = Asciz Lorg/jruby/RubyClass;; | |
const #8 = Asciz <clinit>; | |
const #9 = Asciz ()V; | |
const #10 = Asciz org/jruby/Ruby; | |
const #11 = class #10; // org/jruby/Ruby | |
const #12 = Asciz getGlobalRuntime; | |
const #13 = Asciz ()Lorg/jruby/Ruby;; | |
const #14 = NameAndType #12:#13;// getGlobalRuntime:()Lorg/jruby/Ruby; | |
const #15 = Method #11.#14; // org/jruby/Ruby.getGlobalRuntime:()Lorg/jruby/Ruby; | |
const #16 = Asciz class RubyMain\n def self.main(args)\n args.each {|arg| puts arg}\n end\nend\n\nif defined? Ruby2Java\n RubyMain.static_signature :main, [java.lang.String[]] => Java::void\nend\n; | |
const #17 = String #16; // class RubyMain\n def self.main(args)\n args.each {|arg| puts arg}\n end\nend\n\nif defined? Ruby2Java\n RubyMain.static_signature :main, [java.lang.String[]] => Java::void\nend\n | |
const #18 = String #5; // examples/ruby_main.rb | |
const #19 = Asciz executeScript; | |
const #20 = Asciz (Ljava/lang/String;Ljava/lang/String;)Lorg/jruby/runtime/builtin/IRubyObject;; | |
const #21 = NameAndType #19:#20;// executeScript:(Ljava/lang/String;Ljava/lang/String;)Lorg/jruby/runtime/builtin/IRubyObject; | |
const #22 = Method #11.#21; // org/jruby/Ruby.executeScript:(Ljava/lang/String;Ljava/lang/String;)Lorg/jruby/runtime/builtin/IRubyObject; | |
const #23 = String #1; // RubyMain | |
const #24 = Asciz getClass; | |
const #25 = Asciz (Ljava/lang/String;)Lorg/jruby/RubyClass;; | |
const #26 = NameAndType #24:#25;// getClass:(Ljava/lang/String;)Lorg/jruby/RubyClass; | |
const #27 = Method #11.#26; // org/jruby/Ruby.getClass:(Ljava/lang/String;)Lorg/jruby/RubyClass; | |
const #28 = NameAndType #6:#7;// __ruby_class__:Lorg/jruby/RubyClass; | |
const #29 = Field #2.#28; // RubyMain.__ruby_class__:Lorg/jruby/RubyClass; | |
const #30 = Asciz java/lang/Class; | |
const #31 = class #30; // java/lang/Class | |
const #32 = Asciz forName; | |
const #33 = Asciz (Ljava/lang/String;)Ljava/lang/Class;; | |
const #34 = NameAndType #32:#33;// forName:(Ljava/lang/String;)Ljava/lang/Class; | |
const #35 = Method #31.#34; // java/lang/Class.forName:(Ljava/lang/String;)Ljava/lang/Class; | |
const #36 = Asciz org/jruby/RubyClass; | |
const #37 = class #36; // org/jruby/RubyClass | |
const #38 = Asciz setClassAllocator; | |
const #39 = Asciz (Ljava/lang/Class;)V; | |
const #40 = NameAndType #38:#39;// setClassAllocator:(Ljava/lang/Class;)V | |
const #41 = Method #37.#40; // org/jruby/RubyClass.setClassAllocator:(Ljava/lang/Class;)V | |
const #42 = Asciz <init>; | |
const #43 = Asciz (Lorg/jruby/Ruby;Lorg/jruby/RubyClass;)V; | |
const #44 = NameAndType #42:#43;// "<init>":(Lorg/jruby/Ruby;Lorg/jruby/RubyClass;)V | |
const #45 = Method #4.#44; // org/jruby/RubyObject."<init>":(Lorg/jruby/Ruby;Lorg/jruby/RubyClass;)V | |
const #46 = Asciz main; | |
const #47 = Asciz ([Ljava/lang/String;)V; | |
const #48 = Asciz org/jruby/runtime/builtin/IRubyObject; | |
const #49 = class #48; // org/jruby/runtime/builtin/IRubyObject | |
const #50 = Asciz getRuntime; | |
const #51 = NameAndType #50:#13;// getRuntime:()Lorg/jruby/Ruby; | |
const #52 = InterfaceMethod #49.#51; // org/jruby/runtime/builtin/IRubyObject.getRuntime:()Lorg/jruby/Ruby; | |
const #53 = Asciz getCurrentContext; | |
const #54 = Asciz ()Lorg/jruby/runtime/ThreadContext;; | |
const #55 = NameAndType #53:#54;// getCurrentContext:()Lorg/jruby/runtime/ThreadContext; | |
const #56 = Method #11.#55; // org/jruby/Ruby.getCurrentContext:()Lorg/jruby/runtime/ThreadContext; | |
const #57 = String #46; // main | |
const #58 = Asciz org/jruby/javasupport/JavaUtil; | |
const #59 = class #58; // org/jruby/javasupport/JavaUtil | |
const #60 = Asciz convertJavaToUsableRubyObject; | |
const #61 = Asciz (Lorg/jruby/Ruby;Ljava/lang/Object;)Lorg/jruby/runtime/builtin/IRubyObject;; | |
const #62 = NameAndType #60:#61;// convertJavaToUsableRubyObject:(Lorg/jruby/Ruby;Ljava/lang/Object;)Lorg/jruby/runtime/builtin/IRubyObject; | |
const #63 = Method #59.#62; // org/jruby/javasupport/JavaUtil.convertJavaToUsableRubyObject:(Lorg/jruby/Ruby;Ljava/lang/Object;)Lorg/jruby/runtime/builtin/IRubyObject; | |
const #64 = Asciz org/jruby/RubyBasicObject; | |
const #65 = class #64; // org/jruby/RubyBasicObject | |
const #66 = Asciz callMethod; | |
const #67 = Asciz (Lorg/jruby/runtime/ThreadContext;Ljava/lang/String;[Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;; | |
const #68 = NameAndType #66:#67;// callMethod:(Lorg/jruby/runtime/ThreadContext;Ljava/lang/String;[Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject; | |
const #69 = Method #65.#68; // org/jruby/RubyBasicObject.callMethod:(Lorg/jruby/runtime/ThreadContext;Ljava/lang/String;[Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject; | |
const #70 = Asciz Code; | |
const #71 = Asciz SourceFile; | |
{ | |
static {}; | |
Code: | |
Stack=4, Locals=0, Args_size=0 | |
0: invokestatic #15; //Method org/jruby/Ruby.getGlobalRuntime:()Lorg/jruby/Ruby; | |
3: dup | |
4: ldc #17; //String class RubyMain\n def self.main(args)\n args.each {|arg| puts arg}\n end\nend\n\nif defined? Ruby2Java\n RubyMain.static_signature :main, [java.lang.String[]] => Java::void\nend\n | |
6: ldc #18; //String examples/ruby_main.rb | |
8: invokevirtual #22; //Method org/jruby/Ruby.executeScript:(Ljava/lang/String;Ljava/lang/String;)Lorg/jruby/runtime/builtin/IRubyObject; | |
11: pop | |
12: ldc #23; //String RubyMain | |
14: invokevirtual #27; //Method org/jruby/Ruby.getClass:(Ljava/lang/String;)Lorg/jruby/RubyClass; | |
17: dup | |
18: putstatic #29; //Field __ruby_class__:Lorg/jruby/RubyClass; | |
21: ldc #23; //String RubyMain | |
23: invokestatic #35; //Method java/lang/Class.forName:(Ljava/lang/String;)Ljava/lang/Class; | |
26: invokevirtual #41; //Method org/jruby/RubyClass.setClassAllocator:(Ljava/lang/Class;)V | |
29: return | |
public RubyMain(); | |
Code: | |
Stack=3, Locals=1, Args_size=1 | |
0: aload_0 | |
1: invokestatic #15; //Method org/jruby/Ruby.getGlobalRuntime:()Lorg/jruby/Ruby; | |
4: getstatic #29; //Field __ruby_class__:Lorg/jruby/RubyClass; | |
7: invokespecial #45; //Method org/jruby/RubyObject."<init>":(Lorg/jruby/Ruby;Lorg/jruby/RubyClass;)V | |
10: return | |
public static void main(java.lang.String[]); | |
Code: | |
Stack=8, Locals=2, Args_size=1 | |
0: getstatic #29; //Field __ruby_class__:Lorg/jruby/RubyClass; | |
3: dup | |
4: invokeinterface #52, 1; //InterfaceMethod org/jruby/runtime/builtin/IRubyObject.getRuntime:()Lorg/jruby/Ruby; | |
9: dup | |
10: astore_1 | |
11: invokevirtual #56; //Method org/jruby/Ruby.getCurrentContext:()Lorg/jruby/runtime/ThreadContext; | |
14: ldc #57; //String main | |
16: iconst_1 | |
17: anewarray #49; //class org/jruby/runtime/builtin/IRubyObject | |
20: dup | |
21: iconst_0 | |
22: aload_1 | |
23: aload_0 | |
24: invokestatic #63; //Method org/jruby/javasupport/JavaUtil.convertJavaToUsableRubyObject:(Lorg/jruby/Ruby;Ljava/lang/Object;)Lorg/jruby/runtime/builtin/IRubyObject; | |
27: aastore | |
28: invokevirtual #69; //Method org/jruby/RubyBasicObject.callMethod:(Lorg/jruby/runtime/ThreadContext;Ljava/lang/String;[Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject; | |
31: pop | |
32: return | |
} | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment