Skip to content

Instantly share code, notes, and snippets.

@headius
Created September 16, 2019 14:46
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save headius/14ad7546721766d97e099a9e84ba1f59 to your computer and use it in GitHub Desktop.
Save headius/14ad7546721766d97e099a9e84ba1f59 to your computer and use it in GitHub Desktop.
// access flags 0x9
public static RUBY$method$foo$0(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/parser/StaticScope;Lorg/jruby/runtime/builtin/IRubyObject;[Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/Block;Lorg/jruby/RubyModule;Ljava/lang/String;)Lorg/jruby/runtime/builtin/IRubyObject;
L0
ALOAD 0
ALOAD 3
ICONST_1
INVOKESTATIC org/jruby/ir/runtime/IRRuntimeHelpers.frobnicateKwargsArgument (Lorg/jruby/runtime/ThreadContext;[Lorg/jruby/runtime/builtin/IRubyObject;I)[Lorg/jruby/runtime/builtin/IRubyObject;
ASTORE 3
NOP
NOP
ALOAD 0
ALOAD 1
ALOAD 3
ACONST_NULL
INVOKEDYNAMIC checkArity(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/parser/StaticScope;[Ljava/lang/Object;Lorg/jruby/runtime/Block;)V [
// handle kind 0x6 : INVOKESTATIC
org/jruby/ir/targets/Bootstrap.checkArity(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;IIIII)Ljava/lang/invoke/CallSite;
// arguments:
1,
1,
1,
1,
5
]
ALOAD 0
ALOAD 3
ICONST_0
INVOKESTATIC org/jruby/ir/runtime/IRRuntimeHelpers.getPreArgSafe (Lorg/jruby/runtime/ThreadContext;[Lorg/jruby/runtime/builtin/IRubyObject;I)Lorg/jruby/runtime/builtin/IRubyObject;
ASTORE 8
ALOAD 0
ALOAD 3
ICONST_1
ICONST_1
ICONST_0
LDC 1
INVOKESTATIC org/jruby/ir/runtime/IRRuntimeHelpers.receiveOptArg (Lorg/jruby/runtime/ThreadContext;[Lorg/jruby/runtime/builtin/IRubyObject;IIIZ)Lorg/jruby/runtime/builtin/IRubyObject;
ASTORE 9
ALOAD 0
ALOAD 9
GETSTATIC org/jruby/ir/operands/UndefinedValue.UNDEFINED : Lorg/jruby/ir/operands/UndefinedValue;
INVOKESTATIC org/jruby/runtime/Helpers.BNE (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Z
IFNE L1
NOP
ALOAD 0
INVOKEDYNAMIC fixnum(Lorg/jruby/runtime/ThreadContext;)Lorg/jruby/runtime/builtin/IRubyObject; [
// handle kind 0x6 : INVOKESTATIC
org/jruby/ir/targets/FixnumObjectSite.bootstrap(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;J)Ljava/lang/invoke/CallSite;
// arguments:
1
]
ASTORE 9
L1
FRAME APPEND [T org/jruby/runtime/builtin/IRubyObject org/jruby/runtime/builtin/IRubyObject]
NOP
ALOAD 0
ALOAD 3
ICONST_2
ICONST_2
LDC 1
INVOKESTATIC org/jruby/ir/runtime/IRRuntimeHelpers.receiveRestArg (Lorg/jruby/runtime/ThreadContext;[Ljava/lang/Object;IIZ)Lorg/jruby/runtime/builtin/IRubyObject;
ASTORE 10
ALOAD 0
ALOAD 3
ICONST_1
LDC "d"
LDC 1
INVOKESTATIC org/jruby/ir/runtime/IRRuntimeHelpers.receiveKeywordArg (Lorg/jruby/runtime/ThreadContext;[Lorg/jruby/runtime/builtin/IRubyObject;ILjava/lang/String;Z)Lorg/jruby/runtime/builtin/IRubyObject;
ASTORE 11
ALOAD 0
ALOAD 11
GETSTATIC org/jruby/ir/operands/UndefinedValue.UNDEFINED : Lorg/jruby/ir/operands/UndefinedValue;
INVOKESTATIC org/jruby/runtime/Helpers.BNE (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Z
IFNE L2
NOP
ALOAD 0
LDC "d"
INVOKESTATIC org/jruby/ir/runtime/IRRuntimeHelpers.newRequiredKeywordArgumentError (Lorg/jruby/runtime/ThreadContext;Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
ATHROW
L2
FRAME APPEND [org/jruby/runtime/builtin/IRubyObject org/jruby/runtime/builtin/IRubyObject]
NOP
ALOAD 0
ALOAD 3
ICONST_1
LDC "e"
LDC 1
INVOKESTATIC org/jruby/ir/runtime/IRRuntimeHelpers.receiveKeywordArg (Lorg/jruby/runtime/ThreadContext;[Lorg/jruby/runtime/builtin/IRubyObject;ILjava/lang/String;Z)Lorg/jruby/runtime/builtin/IRubyObject;
ASTORE 12
ALOAD 0
ALOAD 12
GETSTATIC org/jruby/ir/operands/UndefinedValue.UNDEFINED : Lorg/jruby/ir/operands/UndefinedValue;
INVOKESTATIC org/jruby/runtime/Helpers.BNE (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Z
IFNE L3
NOP
ALOAD 0
INVOKEDYNAMIC fixnum(Lorg/jruby/runtime/ThreadContext;)Lorg/jruby/runtime/builtin/IRubyObject; [
// handle kind 0x6 : INVOKESTATIC
org/jruby/ir/targets/FixnumObjectSite.bootstrap(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;J)Ljava/lang/invoke/CallSite;
// arguments:
1
]
ASTORE 12
L3
FRAME APPEND [org/jruby/runtime/builtin/IRubyObject]
NOP
ALOAD 0
ALOAD 3
ICONST_1
LDC 1
INVOKESTATIC org/jruby/ir/runtime/IRRuntimeHelpers.receiveKeywordRestArg (Lorg/jruby/runtime/ThreadContext;[Lorg/jruby/runtime/builtin/IRubyObject;IZ)Lorg/jruby/runtime/builtin/IRubyObject;
ASTORE 13
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment