Skip to content

Instantly share code, notes, and snippets.

@headius
Created March 31, 2021 18:03
Show Gist options
  • Save headius/dc376c44ffc038911361570c9ad972f0 to your computer and use it in GitHub Desktop.
Save headius/dc376c44ffc038911361570c9ad972f0 to your computer and use it in GitHub Desktop.
// access flags 0x9
public static RUBY$block$\=\^main\_$0(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/Block;Lorg/jruby/parser/StaticScope;Lorg/jruby/runtime/builtin/IRubyObject;[Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/Block;)Lorg/jruby/runtime/builtin/IRubyObject;
TRYCATCHBLOCK L0 L1 L1 java/lang/Throwable
L2
ACONST_NULL
ASTORE 6
NOP
ALOAD 1
INVOKEVIRTUAL org/jruby/runtime/Block.getVisibility ()Lorg/jruby/runtime/Visibility;
ASTORE 7
ALOAD 0
ALOAD 1
INVOKEVIRTUAL org/jruby/runtime/ThreadContext.preYieldNoScope (Lorg/jruby/runtime/Block;)Lorg/jruby/runtime/Frame;
ASTORE 8
ALOAD 1
ALOAD 3
INVOKESTATIC org/jruby/ir/runtime/IRRuntimeHelpers.updateBlockState (Lorg/jruby/runtime/Block;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
ASTORE 3
L0
NOP
ALOAD 0
ALOAD 1
ALOAD 4
INVOKESTATIC org/jruby/ir/runtime/IRRuntimeHelpers.prepareNoBlockArgs (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/Block;[Lorg/jruby/runtime/builtin/IRubyObject;)[Lorg/jruby/runtime/builtin/IRubyObject;
ASTORE 4
NOP
L3
LINENUMBER 1 L3
ALOAD 1
ALOAD 7
INVOKEVIRTUAL org/jruby/runtime/Block.setVisibility (Lorg/jruby/runtime/Visibility;)V
ALOAD 0
ALOAD 8
INVOKEVIRTUAL org/jruby/runtime/ThreadContext.postYieldNoScope (Lorg/jruby/runtime/Frame;)V
ALOAD 0
INVOKEDYNAMIC nil(Lorg/jruby/runtime/ThreadContext;)Lorg/jruby/runtime/builtin/IRubyObject; [
// handle kind 0x6 : INVOKESTATIC
org/jruby/ir/targets/indy/Bootstrap.contextValue(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
// arguments: none
]
ARETURN
L1
FRAME FULL [org/jruby/runtime/ThreadContext org/jruby/runtime/Block org/jruby/parser/StaticScope org/jruby/runtime/builtin/IRubyObject [Lorg/jruby/runtime/builtin/IRubyObject; org/jruby/runtime/Block N org/jruby/runtime/Visibility org/jruby/runtime/Frame] [java/lang/Throwable]
NOP
ALOAD 1
ALOAD 7
INVOKEVIRTUAL org/jruby/runtime/Block.setVisibility (Lorg/jruby/runtime/Visibility;)V
ALOAD 0
ALOAD 8
INVOKEVIRTUAL org/jruby/runtime/ThreadContext.postYieldNoScope (Lorg/jruby/runtime/Frame;)V
ASTORE 9
ALOAD 9
ATHROW
L4
FRAME FULL [] [java/lang/Throwable]
ATHROW
L5
LOCALVARIABLE $cl_1_6 Lorg/jruby/runtime/builtin/IRubyObject; L2 L5 9
LOCALVARIABLE $cl_1_5 Lorg/jruby/runtime/builtin/IRubyObject; L2 L5 8
LOCALVARIABLE $cl_1_4 Lorg/jruby/runtime/builtin/IRubyObject; L2 L5 7
LOCALVARIABLE $dynamicScope Lorg/jruby/runtime/builtin/IRubyObject; L2 L5 6
LOCALVARIABLE $blockArg Lorg/jruby/runtime/Block; L2 L5 5
LOCALVARIABLE $args [Lorg/jruby/runtime/builtin/IRubyObject; L2 L5 4
LOCALVARIABLE $self Lorg/jruby/runtime/builtin/IRubyObject; L2 L5 3
LOCALVARIABLE $scope Lorg/jruby/parser/StaticScope; L2 L5 2
LOCALVARIABLE $selfBlock Lorg/jruby/runtime/Block; L2 L5 1
LOCALVARIABLE $context Lorg/jruby/runtime/ThreadContext; L2 L5 0
MAXSTACK = 3
MAXLOCALS = 10
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment