public class org.jruby.embed.jsr223.Utils
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.jruby.embed.jsr223.Utils
  super_class: java.lang.Object
{
  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.jruby.embed.jsr223.Utils this
         0: .line 56
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
            return
        end local 0 // org.jruby.embed.jsr223.Utils this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/jruby/embed/jsr223/Utils;

  static int getLineNumber(javax.script.ScriptContext);
    descriptor: (Ljavax/script/ScriptContext;)I
    flags: (0x0008) ACC_STATIC
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // javax.script.ScriptContext context
         0: .line 64
            aload 0 /* context */
            getstatic org.jruby.embed.AttributeName.LINENUMBER:Lorg/jruby/embed/AttributeName;
            invokevirtual org.jruby.embed.AttributeName.toString:()Ljava/lang/String;
            bipush 100
            invokeinterface javax.script.ScriptContext.getAttribute:(Ljava/lang/String;I)Ljava/lang/Object;
            astore 1 /* obj */
        start local 1 // java.lang.Object obj
         1: .line 65
            aload 1 /* obj */
            instanceof java.lang.Integer
            ifeq 3
         2: .line 66
            aload 1 /* obj */
            checkcast java.lang.Integer
            invokevirtual java.lang.Integer.intValue:()I
            ireturn
         3: .line 68
      StackMap locals: java.lang.Object
      StackMap stack:
            iconst_0
            ireturn
        end local 1 // java.lang.Object obj
        end local 0 // javax.script.ScriptContext context
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    4     0  context  Ljavax/script/ScriptContext;
            1    4     1      obj  Ljava/lang/Object;
    MethodParameters:
         Name  Flags
      context  

  static java.lang.Object getReceiver(javax.script.ScriptContext);
    descriptor: (Ljavax/script/ScriptContext;)Ljava/lang/Object;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // javax.script.ScriptContext context
         0: .line 78
            aload 0 /* context */
            getstatic org.jruby.embed.AttributeName.RECEIVER:Lorg/jruby/embed/AttributeName;
            invokevirtual org.jruby.embed.AttributeName.toString:()Ljava/lang/String;
            bipush 100
            invokeinterface javax.script.ScriptContext.getAttribute:(Ljava/lang/String;I)Ljava/lang/Object;
            areturn
        end local 0 // javax.script.ScriptContext context
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0  context  Ljavax/script/ScriptContext;
    MethodParameters:
         Name  Flags
      context  

  static java.lang.String getFilename(javax.script.ScriptContext);
    descriptor: (Ljavax/script/ScriptContext;)Ljava/lang/String;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // javax.script.ScriptContext context
         0: .line 82
            aload 0 /* context */
            ldc "javax.script.filename"
            invokeinterface javax.script.ScriptContext.getAttribute:(Ljava/lang/String;)Ljava/lang/Object;
            astore 1 /* filename */
        start local 1 // java.lang.Object filename
         1: .line 83
            aload 1 /* filename */
            ifnull 2
            aload 1 /* filename */
            checkcast java.lang.String
            goto 3
      StackMap locals: java.lang.Object
      StackMap stack:
         2: ldc "<script>"
      StackMap locals:
      StackMap stack: java.lang.String
         3: areturn
        end local 1 // java.lang.Object filename
        end local 0 // javax.script.ScriptContext context
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    4     0   context  Ljavax/script/ScriptContext;
            1    4     1  filename  Ljava/lang/Object;
    MethodParameters:
         Name  Flags
      context  

  static boolean isTerminationOn(javax.script.ScriptContext);
    descriptor: (Ljavax/script/ScriptContext;)Z
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // javax.script.ScriptContext context
         0: .line 87
            aload 0 /* context */
            getstatic org.jruby.embed.AttributeName.TERMINATION:Lorg/jruby/embed/AttributeName;
            invokevirtual org.jruby.embed.AttributeName.toString:()Ljava/lang/String;
            invokeinterface javax.script.ScriptContext.getAttribute:(Ljava/lang/String;)Ljava/lang/Object;
            astore 1 /* obj */
        start local 1 // java.lang.Object obj
         1: .line 88
            aload 1 /* obj */
            ifnull 3
            aload 1 /* obj */
            instanceof java.lang.Boolean
            ifeq 3
            aload 1 /* obj */
            checkcast java.lang.Boolean
            invokevirtual java.lang.Boolean.booleanValue:()Z
            ifeq 3
         2: .line 89
            iconst_1
            ireturn
         3: .line 91
      StackMap locals: java.lang.Object
      StackMap stack:
            iconst_0
            ireturn
        end local 1 // java.lang.Object obj
        end local 0 // javax.script.ScriptContext context
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    4     0  context  Ljavax/script/ScriptContext;
            1    4     1      obj  Ljava/lang/Object;
    MethodParameters:
         Name  Flags
      context  

  static boolean isClearVariablesOn(javax.script.ScriptContext);
    descriptor: (Ljavax/script/ScriptContext;)Z
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // javax.script.ScriptContext context
         0: .line 95
            aload 0 /* context */
            getstatic org.jruby.embed.AttributeName.CLEAR_VARAIBLES:Lorg/jruby/embed/AttributeName;
            invokevirtual org.jruby.embed.AttributeName.toString:()Ljava/lang/String;
            invokeinterface javax.script.ScriptContext.getAttribute:(Ljava/lang/String;)Ljava/lang/Object;
            astore 1 /* obj */
        start local 1 // java.lang.Object obj
         1: .line 96
            aload 1 /* obj */
            ifnull 3
            aload 1 /* obj */
            instanceof java.lang.Boolean
            ifeq 3
            aload 1 /* obj */
            checkcast java.lang.Boolean
            invokevirtual java.lang.Boolean.booleanValue:()Z
            ifeq 3
         2: .line 97
            iconst_1
            ireturn
         3: .line 99
      StackMap locals: java.lang.Object
      StackMap stack:
            iconst_0
            ireturn
        end local 1 // java.lang.Object obj
        end local 0 // javax.script.ScriptContext context
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    4     0  context  Ljavax/script/ScriptContext;
            1    4     1      obj  Ljava/lang/Object;
    MethodParameters:
         Name  Flags
      context  

  static void preEval(org.jruby.embed.ScriptingContainer, javax.script.ScriptContext);
    descriptor: (Lorg/jruby/embed/ScriptingContainer;Ljavax/script/ScriptContext;)V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=5, locals=6, args_size=2
        start local 0 // org.jruby.embed.ScriptingContainer container
        start local 1 // javax.script.ScriptContext context
         0: .line 103
            aload 1 /* context */
            invokestatic org.jruby.embed.jsr223.Utils.getReceiverObject:(Ljavax/script/ScriptContext;)Ljava/lang/Object;
            astore 2 /* receiver */
        start local 2 // java.lang.Object receiver
         1: .line 105
            aload 1 /* context */
            bipush 100
            invokeinterface javax.script.ScriptContext.getBindings:(I)Ljavax/script/Bindings;
            astore 3 /* bindings */
        start local 3 // javax.script.Bindings bindings
         2: .line 106
            aload 3 /* bindings */
            invokeinterface javax.script.Bindings.entrySet:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 5
            goto 5
      StackMap locals: org.jruby.embed.ScriptingContainer javax.script.ScriptContext java.lang.Object javax.script.Bindings top java.util.Iterator
      StackMap stack:
         3: aload 5
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.util.Map$Entry
            astore 4 /* entry */
        start local 4 // java.util.Map$Entry entry
         4: .line 107
            aload 0 /* container */
            aload 2 /* receiver */
            aload 4 /* entry */
            invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
            checkcast java.lang.String
            aload 4 /* entry */
            invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
            aload 1 /* context */
            invokestatic org.jruby.embed.jsr223.Utils.put:(Lorg/jruby/embed/ScriptingContainer;Ljava/lang/Object;Ljava/lang/String;Ljava/lang/Object;Ljavax/script/ScriptContext;)Ljava/lang/Object;
            pop
        end local 4 // java.util.Map$Entry entry
         5: .line 106
      StackMap locals:
      StackMap stack:
            aload 5
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 3
         6: .line 111
            aload 0 /* container */
            aload 1 /* context */
            invokeinterface javax.script.ScriptContext.getWriter:()Ljava/io/Writer;
            invokestatic org.jruby.embed.jsr223.Utils.setStdOut:(Lorg/jruby/embed/ScriptingContainer;Ljava/io/Writer;)V
         7: .line 112
            aload 0 /* container */
            aload 1 /* context */
            invokeinterface javax.script.ScriptContext.getErrorWriter:()Ljava/io/Writer;
            invokestatic org.jruby.embed.jsr223.Utils.setStdErr:(Lorg/jruby/embed/ScriptingContainer;Ljava/io/Writer;)V
         8: .line 115
            aload 1 /* context */
            sipush 200
            invokeinterface javax.script.ScriptContext.getBindings:(I)Ljavax/script/Bindings;
            astore 3 /* bindings */
         9: .line 116
            aload 3 /* bindings */
            ifnonnull 10
            return
        10: .line 117
      StackMap locals: org.jruby.embed.ScriptingContainer javax.script.ScriptContext java.lang.Object javax.script.Bindings
      StackMap stack:
            aload 3 /* bindings */
            invokeinterface javax.script.Bindings.entrySet:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 5
            goto 14
      StackMap locals: org.jruby.embed.ScriptingContainer javax.script.ScriptContext java.lang.Object javax.script.Bindings top java.util.Iterator
      StackMap stack:
        11: aload 5
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.util.Map$Entry
            astore 4 /* entry */
        start local 4 // java.util.Map$Entry entry
        12: .line 118
            aload 0 /* container */
            invokevirtual org.jruby.embed.ScriptingContainer.getVarMap:()Lorg/jruby/embed/internal/BiVariableMap;
            aload 4 /* entry */
            invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
            invokevirtual org.jruby.embed.internal.BiVariableMap.containsKey:(Ljava/lang/Object;)Z
            ifeq 13
            goto 14
        13: .line 119
      StackMap locals: org.jruby.embed.ScriptingContainer javax.script.ScriptContext java.lang.Object javax.script.Bindings java.util.Map$Entry java.util.Iterator
      StackMap stack:
            aload 0 /* container */
            aload 2 /* receiver */
            aload 4 /* entry */
            invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
            checkcast java.lang.String
            aload 4 /* entry */
            invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
            aload 1 /* context */
            invokestatic org.jruby.embed.jsr223.Utils.put:(Lorg/jruby/embed/ScriptingContainer;Ljava/lang/Object;Ljava/lang/String;Ljava/lang/Object;Ljavax/script/ScriptContext;)Ljava/lang/Object;
            pop
        end local 4 // java.util.Map$Entry entry
        14: .line 117
      StackMap locals: org.jruby.embed.ScriptingContainer javax.script.ScriptContext java.lang.Object javax.script.Bindings top java.util.Iterator
      StackMap stack:
            aload 5
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 11
        15: .line 121
            return
        end local 3 // javax.script.Bindings bindings
        end local 2 // java.lang.Object receiver
        end local 1 // javax.script.ScriptContext context
        end local 0 // org.jruby.embed.ScriptingContainer container
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   16     0  container  Lorg/jruby/embed/ScriptingContainer;
            0   16     1    context  Ljavax/script/ScriptContext;
            1   16     2   receiver  Ljava/lang/Object;
            2   16     3   bindings  Ljavax/script/Bindings;
            4    5     4      entry  Ljava/util/Map$Entry<Ljava/lang/String;Ljava/lang/Object;>;
           12   14     4      entry  Ljava/util/Map$Entry<Ljava/lang/String;Ljava/lang/Object;>;
    MethodParameters:
           Name  Flags
      container  
      context    

  private static java.lang.Object getReceiverObject(javax.script.ScriptContext);
    descriptor: (Ljavax/script/ScriptContext;)Ljava/lang/Object;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // javax.script.ScriptContext context
         0: .line 124
            aload 0 /* context */
            ifnonnull 1
            aconst_null
            areturn
         1: .line 125
      StackMap locals:
      StackMap stack:
            aload 0 /* context */
            getstatic org.jruby.embed.AttributeName.RECEIVER:Lorg/jruby/embed/AttributeName;
            invokevirtual org.jruby.embed.AttributeName.toString:()Ljava/lang/String;
            bipush 100
            invokeinterface javax.script.ScriptContext.getAttribute:(Ljava/lang/String;I)Ljava/lang/Object;
            areturn
        end local 0 // javax.script.ScriptContext context
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0  context  Ljavax/script/ScriptContext;
    MethodParameters:
         Name  Flags
      context  

  private static void setStdOut(org.jruby.embed.ScriptingContainer, java.io.Writer);
    descriptor: (Lorg/jruby/embed/ScriptingContainer;Ljava/io/Writer;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=6, locals=5, args_size=2
        start local 0 // org.jruby.embed.ScriptingContainer container
        start local 1 // java.io.Writer writer
         0: .line 129
            aload 1 /* writer */
            ifnonnull 2
         1: .line 130
            return
         2: .line 132
      StackMap locals:
      StackMap stack:
            aload 0 /* container */
            invokevirtual org.jruby.embed.ScriptingContainer.getAttributeMap:()Ljava/util/Map;
            astore 2 /* map */
        start local 2 // java.util.Map map
         3: .line 133
            aload 2 /* map */
            getstatic org.jruby.embed.AttributeName.WRITER:Lorg/jruby/embed/AttributeName;
            invokeinterface java.util.Map.containsKey:(Ljava/lang/Object;)Z
            ifeq 7
         4: .line 134
            aload 2 /* map */
            getstatic org.jruby.embed.AttributeName.WRITER:Lorg/jruby/embed/AttributeName;
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.io.Writer
            astore 3 /* old */
        start local 3 // java.io.Writer old
         5: .line 135
            aload 3 /* old */
            aload 1 /* writer */
            if_acmpne 7
         6: .line 136
            return
        end local 3 // java.io.Writer old
         7: .line 139
      StackMap locals: java.util.Map
      StackMap stack:
            aload 2 /* map */
            getstatic org.jruby.embed.AttributeName.WRITER:Lorg/jruby/embed/AttributeName;
            aload 1 /* writer */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         8: .line 141
            aload 0 /* container */
            invokevirtual org.jruby.embed.ScriptingContainer.getProvider:()Lorg/jruby/embed/internal/LocalContextProvider;
            invokeinterface org.jruby.embed.internal.LocalContextProvider.getRuntime:()Lorg/jruby/Ruby;
            astore 3 /* runtime */
        start local 3 // org.jruby.Ruby runtime
         9: .line 142
            aload 3 /* runtime */
            aload 1 /* writer */
            invokestatic org.jruby.embed.jsr223.Utils.getRubyIO:(Lorg/jruby/Ruby;Ljava/io/Writer;)Lorg/jruby/RubyIO;
            astore 4 /* io */
        start local 4 // org.jruby.RubyIO io
        10: .line 143
            aload 3 /* runtime */
            new org.jruby.RubyGlobal$OutputGlobalVariable
            dup
            aload 3 /* runtime */
            ldc "$stdout"
            aload 4 /* io */
            invokespecial org.jruby.RubyGlobal$OutputGlobalVariable.<init>:(Lorg/jruby/Ruby;Ljava/lang/String;Lorg/jruby/runtime/builtin/IRubyObject;)V
            getstatic org.jruby.internal.runtime.GlobalVariable$Scope.GLOBAL:Lorg/jruby/internal/runtime/GlobalVariable$Scope;
            invokevirtual org.jruby.Ruby.defineVariable:(Lorg/jruby/runtime/GlobalVariable;Lorg/jruby/internal/runtime/GlobalVariable$Scope;)V
        11: .line 144
            aload 3 /* runtime */
            invokevirtual org.jruby.Ruby.getObject:()Lorg/jruby/RubyClass;
            ldc "STDOUT"
            aload 4 /* io */
            invokevirtual org.jruby.RubyClass.storeConstant:(Ljava/lang/String;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            pop
        12: .line 145
            aload 3 /* runtime */
            invokevirtual org.jruby.Ruby.getGlobalVariables:()Lorg/jruby/internal/runtime/GlobalVariables;
            ldc "$>"
            ldc "$stdout"
            invokevirtual org.jruby.internal.runtime.GlobalVariables.alias:(Ljava/lang/String;Ljava/lang/String;)V
        13: .line 146
            aload 3 /* runtime */
            invokevirtual org.jruby.Ruby.getGlobalVariables:()Lorg/jruby/internal/runtime/GlobalVariables;
            ldc "$defout"
            ldc "$stdout"
            invokevirtual org.jruby.internal.runtime.GlobalVariables.alias:(Ljava/lang/String;Ljava/lang/String;)V
        14: .line 147
            return
        end local 4 // org.jruby.RubyIO io
        end local 3 // org.jruby.Ruby runtime
        end local 2 // java.util.Map map
        end local 1 // java.io.Writer writer
        end local 0 // org.jruby.embed.ScriptingContainer container
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   15     0  container  Lorg/jruby/embed/ScriptingContainer;
            0   15     1     writer  Ljava/io/Writer;
            3   15     2        map  Ljava/util/Map;
            5    7     3        old  Ljava/io/Writer;
            9   15     3    runtime  Lorg/jruby/Ruby;
           10   15     4         io  Lorg/jruby/RubyIO;
    MethodParameters:
           Name  Flags
      container  
      writer     

  private static void setStdErr(org.jruby.embed.ScriptingContainer, java.io.Writer);
    descriptor: (Lorg/jruby/embed/ScriptingContainer;Ljava/io/Writer;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=6, locals=5, args_size=2
        start local 0 // org.jruby.embed.ScriptingContainer container
        start local 1 // java.io.Writer writer
         0: .line 150
            aload 1 /* writer */
            ifnonnull 2
         1: .line 151
            return
         2: .line 153
      StackMap locals:
      StackMap stack:
            aload 0 /* container */
            invokevirtual org.jruby.embed.ScriptingContainer.getAttributeMap:()Ljava/util/Map;
            astore 2 /* map */
        start local 2 // java.util.Map map
         3: .line 154
            aload 2 /* map */
            getstatic org.jruby.embed.AttributeName.ERROR_WRITER:Lorg/jruby/embed/AttributeName;
            invokeinterface java.util.Map.containsKey:(Ljava/lang/Object;)Z
            ifeq 7
         4: .line 155
            aload 2 /* map */
            getstatic org.jruby.embed.AttributeName.ERROR_WRITER:Lorg/jruby/embed/AttributeName;
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.io.Writer
            astore 3 /* old */
        start local 3 // java.io.Writer old
         5: .line 156
            aload 3 /* old */
            aload 1 /* writer */
            if_acmpne 7
         6: .line 157
            return
        end local 3 // java.io.Writer old
         7: .line 160
      StackMap locals: java.util.Map
      StackMap stack:
            aload 2 /* map */
            getstatic org.jruby.embed.AttributeName.ERROR_WRITER:Lorg/jruby/embed/AttributeName;
            aload 1 /* writer */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         8: .line 162
            aload 0 /* container */
            invokevirtual org.jruby.embed.ScriptingContainer.getProvider:()Lorg/jruby/embed/internal/LocalContextProvider;
            invokeinterface org.jruby.embed.internal.LocalContextProvider.getRuntime:()Lorg/jruby/Ruby;
            astore 3 /* runtime */
        start local 3 // org.jruby.Ruby runtime
         9: .line 163
            aload 3 /* runtime */
            aload 1 /* writer */
            invokestatic org.jruby.embed.jsr223.Utils.getRubyIO:(Lorg/jruby/Ruby;Ljava/io/Writer;)Lorg/jruby/RubyIO;
            astore 4 /* io */
        start local 4 // org.jruby.RubyIO io
        10: .line 164
            aload 3 /* runtime */
            new org.jruby.RubyGlobal$OutputGlobalVariable
            dup
            aload 3 /* runtime */
            ldc "$stderr"
            aload 4 /* io */
            invokespecial org.jruby.RubyGlobal$OutputGlobalVariable.<init>:(Lorg/jruby/Ruby;Ljava/lang/String;Lorg/jruby/runtime/builtin/IRubyObject;)V
            getstatic org.jruby.internal.runtime.GlobalVariable$Scope.GLOBAL:Lorg/jruby/internal/runtime/GlobalVariable$Scope;
            invokevirtual org.jruby.Ruby.defineVariable:(Lorg/jruby/runtime/GlobalVariable;Lorg/jruby/internal/runtime/GlobalVariable$Scope;)V
        11: .line 165
            aload 3 /* runtime */
            invokevirtual org.jruby.Ruby.getObject:()Lorg/jruby/RubyClass;
            ldc "STDERR"
            aload 4 /* io */
            invokevirtual org.jruby.RubyClass.storeConstant:(Ljava/lang/String;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            pop
        12: .line 166
            aload 3 /* runtime */
            invokevirtual org.jruby.Ruby.getGlobalVariables:()Lorg/jruby/internal/runtime/GlobalVariables;
            ldc "$deferr"
            ldc "$stderr"
            invokevirtual org.jruby.internal.runtime.GlobalVariables.alias:(Ljava/lang/String;Ljava/lang/String;)V
        13: .line 167
            return
        end local 4 // org.jruby.RubyIO io
        end local 3 // org.jruby.Ruby runtime
        end local 2 // java.util.Map map
        end local 1 // java.io.Writer writer
        end local 0 // org.jruby.embed.ScriptingContainer container
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   14     0  container  Lorg/jruby/embed/ScriptingContainer;
            0   14     1     writer  Ljava/io/Writer;
            3   14     2        map  Ljava/util/Map;
            5    7     3        old  Ljava/io/Writer;
            9   14     3    runtime  Lorg/jruby/Ruby;
           10   14     4         io  Lorg/jruby/RubyIO;
    MethodParameters:
           Name  Flags
      container  
      writer     

  private static org.jruby.RubyIO getRubyIO(org.jruby.Ruby, java.io.Writer);
    descriptor: (Lorg/jruby/Ruby;Ljava/io/Writer;)Lorg/jruby/RubyIO;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=6, locals=7, args_size=2
        start local 0 // org.jruby.Ruby runtime
        start local 1 // java.io.Writer writer
         0: .line 170
            new java.io.PrintStream
            dup
            new org.jruby.embed.io.WriterOutputStream
            dup
            aload 1 /* writer */
            aload 0 /* runtime */
            invokevirtual org.jruby.Ruby.getDefaultCharset:()Ljava/nio/charset/Charset;
            invokevirtual java.nio.charset.Charset.name:()Ljava/lang/String;
            invokespecial org.jruby.embed.io.WriterOutputStream.<init>:(Ljava/io/Writer;Ljava/lang/String;)V
            iconst_1
            invokespecial java.io.PrintStream.<init>:(Ljava/io/OutputStream;Z)V
            astore 2 /* stream */
        start local 2 // java.io.PrintStream stream
         1: .line 171
            new org.jruby.RubyIO
            dup
            aload 0 /* runtime */
            aload 2 /* stream */
            iconst_0
            invokespecial org.jruby.RubyIO.<init>:(Lorg/jruby/Ruby;Ljava/io/OutputStream;Z)V
            astore 3 /* io */
        start local 3 // org.jruby.RubyIO io
         2: .line 172
            aload 3 /* io */
            invokevirtual org.jruby.RubyIO.getOpenFile:()Lorg/jruby/util/io/OpenFile;
            invokevirtual org.jruby.util.io.OpenFile.lock:()Z
            istore 4 /* locked */
        start local 4 // boolean locked
         3: .line 174
            aload 3 /* io */
            invokevirtual org.jruby.RubyIO.getOpenFile:()Lorg/jruby/util/io/OpenFile;
            iconst_1
            invokevirtual org.jruby.util.io.OpenFile.setSync:(Z)V
         4: .line 175
            aload 3 /* io */
            invokevirtual org.jruby.RubyIO.getOpenFile:()Lorg/jruby/util/io/OpenFile;
            aload 0 /* runtime */
            invokevirtual org.jruby.Ruby.getCurrentContext:()Lorg/jruby/runtime/ThreadContext;
            invokevirtual org.jruby.util.io.OpenFile.io_fflush:(Lorg/jruby/runtime/ThreadContext;)I
            pop
         5: .line 176
            aload 3 /* io */
            astore 6
         6: .line 178
            iload 4 /* locked */
            ifeq 7
            aload 3 /* io */
            invokevirtual org.jruby.RubyIO.getOpenFile:()Lorg/jruby/util/io/OpenFile;
            invokevirtual org.jruby.util.io.OpenFile.unlock:()V
         7: .line 176
      StackMap locals: org.jruby.Ruby java.io.Writer java.io.PrintStream org.jruby.RubyIO int top org.jruby.RubyIO
      StackMap stack:
            aload 6
            areturn
         8: .line 177
      StackMap locals: org.jruby.Ruby java.io.Writer java.io.PrintStream org.jruby.RubyIO int
      StackMap stack: java.lang.Throwable
            astore 5
         9: .line 178
            iload 4 /* locked */
            ifeq 10
            aload 3 /* io */
            invokevirtual org.jruby.RubyIO.getOpenFile:()Lorg/jruby/util/io/OpenFile;
            invokevirtual org.jruby.util.io.OpenFile.unlock:()V
        10: .line 179
      StackMap locals: java.lang.Throwable
      StackMap stack:
            aload 5
            athrow
        end local 4 // boolean locked
        end local 3 // org.jruby.RubyIO io
        end local 2 // java.io.PrintStream stream
        end local 1 // java.io.Writer writer
        end local 0 // org.jruby.Ruby runtime
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   11     0  runtime  Lorg/jruby/Ruby;
            0   11     1   writer  Ljava/io/Writer;
            1   11     2   stream  Ljava/io/PrintStream;
            2   11     3       io  Lorg/jruby/RubyIO;
            3   11     4   locked  Z
      Exception table:
        from    to  target  type
           3     6       8  any
    MethodParameters:
         Name  Flags
      runtime  
      writer   

  static void postEval(org.jruby.embed.ScriptingContainer, javax.script.ScriptContext);
    descriptor: (Lorg/jruby/embed/ScriptingContainer;Ljavax/script/ScriptContext;)V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=3, locals=10, args_size=2
        start local 0 // org.jruby.embed.ScriptingContainer container
        start local 1 // javax.script.ScriptContext context
         0: .line 183
            aload 1 /* context */
            ifnonnull 1
            return
         1: .line 184
      StackMap locals:
      StackMap stack:
            aload 1 /* context */
            invokestatic org.jruby.embed.jsr223.Utils.getReceiverObject:(Ljavax/script/ScriptContext;)Ljava/lang/Object;
            astore 2 /* receiver */
        start local 2 // java.lang.Object receiver
         2: .line 186
            aload 1 /* context */
            bipush 100
            invokeinterface javax.script.ScriptContext.getBindings:(I)Ljavax/script/Bindings;
            astore 3 /* engineMap */
        start local 3 // javax.script.Bindings engineMap
         3: .line 187
            aload 3 /* engineMap */
            invokeinterface javax.script.Bindings.entrySet:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 4 /* iter */
        start local 4 // java.util.Iterator iter
         4: .line 188
            goto 8
         5: .line 189
      StackMap locals: java.lang.Object javax.script.Bindings java.util.Iterator
      StackMap stack:
            aload 4 /* iter */
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.util.Map$Entry
            astore 5 /* entry */
        start local 5 // java.util.Map$Entry entry
         6: .line 190
            aload 0 /* container */
            aload 5 /* entry */
            invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
            checkcast java.lang.String
            invokestatic org.jruby.embed.jsr223.Utils.shouldLVarBeDeleted:(Lorg/jruby/embed/ScriptingContainer;Ljava/lang/String;)Z
            ifeq 8
         7: .line 191
            aload 4 /* iter */
            invokeinterface java.util.Iterator.remove:()V
        end local 5 // java.util.Map$Entry entry
         8: .line 188
      StackMap locals:
      StackMap stack:
            aload 4 /* iter */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 5
         9: .line 194
            aload 0 /* container */
            invokevirtual org.jruby.embed.ScriptingContainer.getVarMap:()Lorg/jruby/embed/internal/BiVariableMap;
            invokevirtual org.jruby.embed.internal.BiVariableMap.keySet:()Ljava/util/Set;
            astore 5 /* keys */
        start local 5 // java.util.Set keys
        10: .line 195
            aload 5 /* keys */
            ifnull 16
            aload 5 /* keys */
            invokeinterface java.util.Set.size:()I
            ifle 16
        11: .line 196
            aload 5 /* keys */
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 7
            goto 15
      StackMap locals: org.jruby.embed.ScriptingContainer javax.script.ScriptContext java.lang.Object javax.script.Bindings java.util.Iterator java.util.Set top java.util.Iterator
      StackMap stack:
        12: aload 7
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 6 /* key */
        start local 6 // java.lang.String key
        13: .line 197
            aload 0 /* container */
            invokevirtual org.jruby.embed.ScriptingContainer.getVarMap:()Lorg/jruby/embed/internal/BiVariableMap;
            aload 6 /* key */
            invokevirtual org.jruby.embed.internal.BiVariableMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
            astore 8 /* value */
        start local 8 // java.lang.Object value
        14: .line 198
            aload 3 /* engineMap */
            aload 6 /* key */
            invokestatic org.jruby.embed.jsr223.Utils.adjustKey:(Ljava/lang/String;)Ljava/lang/String;
            aload 8 /* value */
            invokeinterface javax.script.Bindings.put:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        end local 8 // java.lang.Object value
        end local 6 // java.lang.String key
        15: .line 196
      StackMap locals:
      StackMap stack:
            aload 7
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 12
        16: .line 202
      StackMap locals: org.jruby.embed.ScriptingContainer javax.script.ScriptContext java.lang.Object javax.script.Bindings java.util.Iterator java.util.Set
      StackMap stack:
            aload 1 /* context */
            sipush 200
            invokeinterface javax.script.ScriptContext.getBindings:(I)Ljavax/script/Bindings;
            astore 6 /* globalMap */
        start local 6 // javax.script.Bindings globalMap
        17: .line 203
            aload 6 /* globalMap */
            ifnonnull 18
            return
        18: .line 204
      StackMap locals: javax.script.Bindings
      StackMap stack:
            aload 6 /* globalMap */
            invokeinterface javax.script.Bindings.keySet:()Ljava/util/Set;
            astore 5 /* keys */
        19: .line 205
            aload 5 /* keys */
            ifnull 26
            aload 5 /* keys */
            invokeinterface java.util.Set.size:()I
            ifle 26
        20: .line 206
            aload 5 /* keys */
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 8
            goto 25
      StackMap locals: org.jruby.embed.ScriptingContainer javax.script.ScriptContext java.lang.Object javax.script.Bindings java.util.Iterator java.util.Set javax.script.Bindings top java.util.Iterator
      StackMap stack:
        21: aload 8
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 7 /* key */
        start local 7 // java.lang.String key
        22: .line 207
            aload 3 /* engineMap */
            aload 7 /* key */
            invokeinterface javax.script.Bindings.containsKey:(Ljava/lang/Object;)Z
            ifeq 23
            goto 25
        23: .line 208
      StackMap locals: org.jruby.embed.ScriptingContainer javax.script.ScriptContext java.lang.Object javax.script.Bindings java.util.Iterator java.util.Set javax.script.Bindings java.lang.String java.util.Iterator
      StackMap stack:
            aload 0 /* container */
            invokevirtual org.jruby.embed.ScriptingContainer.getVarMap:()Lorg/jruby/embed/internal/BiVariableMap;
            aload 2 /* receiver */
            aload 7 /* key */
            invokevirtual org.jruby.embed.internal.BiVariableMap.get:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            astore 9 /* value */
        start local 9 // java.lang.Object value
        24: .line 209
            aload 6 /* globalMap */
            aload 7 /* key */
            aload 9 /* value */
            invokeinterface javax.script.Bindings.put:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        end local 9 // java.lang.Object value
        end local 7 // java.lang.String key
        25: .line 206
      StackMap locals: org.jruby.embed.ScriptingContainer javax.script.ScriptContext java.lang.Object javax.script.Bindings java.util.Iterator java.util.Set javax.script.Bindings top java.util.Iterator
      StackMap stack:
            aload 8
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 21
        26: .line 212
      StackMap locals: org.jruby.embed.ScriptingContainer javax.script.ScriptContext java.lang.Object javax.script.Bindings java.util.Iterator java.util.Set javax.script.Bindings
      StackMap stack:
            return
        end local 6 // javax.script.Bindings globalMap
        end local 5 // java.util.Set keys
        end local 4 // java.util.Iterator iter
        end local 3 // javax.script.Bindings engineMap
        end local 2 // java.lang.Object receiver
        end local 1 // javax.script.ScriptContext context
        end local 0 // org.jruby.embed.ScriptingContainer container
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   27     0  container  Lorg/jruby/embed/ScriptingContainer;
            0   27     1    context  Ljavax/script/ScriptContext;
            2   27     2   receiver  Ljava/lang/Object;
            3   27     3  engineMap  Ljavax/script/Bindings;
            4   27     4       iter  Ljava/util/Iterator<Ljava/util/Map$Entry<Ljava/lang/String;Ljava/lang/Object;>;>;
            6    8     5      entry  Ljava/util/Map$Entry<Ljava/lang/String;Ljava/lang/Object;>;
           10   27     5       keys  Ljava/util/Set<Ljava/lang/String;>;
           13   15     6        key  Ljava/lang/String;
           14   15     8      value  Ljava/lang/Object;
           17   27     6  globalMap  Ljavax/script/Bindings;
           22   25     7        key  Ljava/lang/String;
           24   25     9      value  Ljava/lang/Object;
    MethodParameters:
           Name  Flags
      container  
      context    

  private static java.lang.Object put(org.jruby.embed.ScriptingContainer, java.lang.Object, java.lang.String, java.lang.Object, javax.script.ScriptContext);
    descriptor: (Lorg/jruby/embed/ScriptingContainer;Ljava/lang/Object;Ljava/lang/String;Ljava/lang/Object;Ljavax/script/ScriptContext;)Ljava/lang/Object;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=9, args_size=5
        start local 0 // org.jruby.embed.ScriptingContainer container
        start local 1 // java.lang.Object receiver
        start local 2 // java.lang.String key
        start local 3 // java.lang.Object value
        start local 4 // javax.script.ScriptContext context
         0: .line 215
            aconst_null
            astore 5 /* oldValue */
        start local 5 // java.lang.Object oldValue
         1: .line 216
            aload 2 /* key */
            invokestatic org.jruby.embed.jsr223.Utils.adjustKey:(Ljava/lang/String;)Ljava/lang/String;
            astore 6 /* adjustedKey */
        start local 6 // java.lang.String adjustedKey
         2: .line 217
            aload 0 /* container */
            aload 6 /* adjustedKey */
            invokestatic org.jruby.embed.jsr223.Utils.isRubyVariable:(Lorg/jruby/embed/ScriptingContainer;Ljava/lang/String;)Z
            ifeq 10
         3: .line 218
            iconst_1
            istore 7 /* sharing_variables */
        start local 7 // boolean sharing_variables
         4: .line 219
            aload 4 /* context */
            getstatic org.jruby.embed.AttributeName.SHARING_VARIABLES:Lorg/jruby/embed/AttributeName;
            invokevirtual org.jruby.embed.AttributeName.toString:()Ljava/lang/String;
            bipush 100
            invokeinterface javax.script.ScriptContext.getAttribute:(Ljava/lang/String;I)Ljava/lang/Object;
            astore 8 /* obj */
        start local 8 // java.lang.Object obj
         5: .line 220
            aload 8 /* obj */
            ifnull 7
            aload 8 /* obj */
            instanceof java.lang.Boolean
            ifeq 7
            aload 8 /* obj */
            checkcast java.lang.Boolean
            invokevirtual java.lang.Boolean.booleanValue:()Z
            ifne 7
         6: .line 221
            iconst_0
            istore 7 /* sharing_variables */
         7: .line 223
      StackMap locals: org.jruby.embed.ScriptingContainer java.lang.Object java.lang.String java.lang.Object javax.script.ScriptContext java.lang.Object java.lang.String int java.lang.Object
      StackMap stack:
            iload 7 /* sharing_variables */
            ifne 8
            ldc "ARGV"
            aload 6 /* adjustedKey */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 14
         8: .line 224
      StackMap locals:
      StackMap stack:
            aload 0 /* container */
            aload 1 /* receiver */
            aload 6 /* adjustedKey */
            aload 3 /* value */
            invokevirtual org.jruby.embed.ScriptingContainer.put:(Ljava/lang/Object;Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
            astore 5 /* oldValue */
        end local 8 // java.lang.Object obj
        end local 7 // boolean sharing_variables
         9: .line 226
            goto 14
        10: .line 227
      StackMap locals:
      StackMap stack:
            aload 6 /* adjustedKey */
            getstatic org.jruby.embed.AttributeName.SHARING_VARIABLES:Lorg/jruby/embed/AttributeName;
            invokevirtual org.jruby.embed.AttributeName.toString:()Ljava/lang/String;
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 13
        11: .line 228
            aload 0 /* container */
            getstatic org.jruby.embed.AttributeName.SHARING_VARIABLES:Lorg/jruby/embed/AttributeName;
            aload 3 /* value */
            invokevirtual org.jruby.embed.ScriptingContainer.setAttribute:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            astore 5 /* oldValue */
        12: .line 229
            goto 14
        13: .line 230
      StackMap locals:
      StackMap stack:
            aload 0 /* container */
            aload 6 /* adjustedKey */
            aload 3 /* value */
            invokevirtual org.jruby.embed.ScriptingContainer.setAttribute:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            astore 5 /* oldValue */
        14: .line 233
      StackMap locals:
      StackMap stack:
            aload 5 /* oldValue */
            areturn
        end local 6 // java.lang.String adjustedKey
        end local 5 // java.lang.Object oldValue
        end local 4 // javax.script.ScriptContext context
        end local 3 // java.lang.Object value
        end local 2 // java.lang.String key
        end local 1 // java.lang.Object receiver
        end local 0 // org.jruby.embed.ScriptingContainer container
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0   15     0          container  Lorg/jruby/embed/ScriptingContainer;
            0   15     1           receiver  Ljava/lang/Object;
            0   15     2                key  Ljava/lang/String;
            0   15     3              value  Ljava/lang/Object;
            0   15     4            context  Ljavax/script/ScriptContext;
            1   15     5           oldValue  Ljava/lang/Object;
            2   15     6        adjustedKey  Ljava/lang/String;
            4    9     7  sharing_variables  Z
            5    9     8                obj  Ljava/lang/Object;
    MethodParameters:
           Name  Flags
      container  
      receiver   
      key        
      value      
      context    

  static boolean isRubyVariable(org.jruby.embed.ScriptingContainer, java.lang.String);
    descriptor: (Lorg/jruby/embed/ScriptingContainer;Ljava/lang/String;)Z
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.jruby.embed.ScriptingContainer container
        start local 1 // java.lang.String name
         0: .line 237
            aload 0 /* container */
            invokevirtual org.jruby.embed.ScriptingContainer.getProvider:()Lorg/jruby/embed/internal/LocalContextProvider;
            invokeinterface org.jruby.embed.internal.LocalContextProvider.getLocalVariableBehavior:()Lorg/jruby/embed/LocalVariableBehavior;
            aload 1 /* name */
            invokestatic org.jruby.embed.variable.VariableInterceptor.isKindOfRubyVariable:(Lorg/jruby/embed/LocalVariableBehavior;Ljava/lang/String;)Z
            ireturn
        end local 1 // java.lang.String name
        end local 0 // org.jruby.embed.ScriptingContainer container
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    1     0  container  Lorg/jruby/embed/ScriptingContainer;
            0    1     1       name  Ljava/lang/String;
    MethodParameters:
           Name  Flags
      container  
      name       

  private static java.lang.String adjustKey(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/String;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.lang.String key
         0: .line 241
            aload 0 /* key */
            ldc "javax.script.argv"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 2
         1: .line 242
            ldc "ARGV"
            areturn
         2: .line 243
      StackMap locals:
      StackMap stack:
            ldc "ARGV"
            aload 0 /* key */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 4
         3: .line 244
            ldc "javax.script.argv"
            areturn
         4: .line 246
      StackMap locals:
      StackMap stack:
            aload 0 /* key */
            areturn
        end local 0 // java.lang.String key
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0   key  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      key   

  private static boolean shouldLVarBeDeleted(org.jruby.embed.ScriptingContainer, java.lang.String);
    descriptor: (Lorg/jruby/embed/ScriptingContainer;Ljava/lang/String;)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // org.jruby.embed.ScriptingContainer container
        start local 1 // java.lang.String key
         0: .line 251
            aload 0 /* container */
            invokevirtual org.jruby.embed.ScriptingContainer.getProvider:()Lorg/jruby/embed/internal/LocalContextProvider;
            invokeinterface org.jruby.embed.internal.LocalContextProvider.getLocalVariableBehavior:()Lorg/jruby/embed/LocalVariableBehavior;
            astore 2 /* behavior */
        start local 2 // org.jruby.embed.LocalVariableBehavior behavior
         1: .line 252
            aload 2 /* behavior */
            getstatic org.jruby.embed.LocalVariableBehavior.TRANSIENT:Lorg/jruby/embed/LocalVariableBehavior;
            if_acmpeq 2
            iconst_0
            ireturn
         2: .line 253
      StackMap locals: org.jruby.embed.LocalVariableBehavior
      StackMap stack:
            aload 1 /* key */
            invokestatic org.jruby.embed.variable.TransientLocalVariable.isValidName:(Ljava/lang/Object;)Z
            ireturn
        end local 2 // org.jruby.embed.LocalVariableBehavior behavior
        end local 1 // java.lang.String key
        end local 0 // org.jruby.embed.ScriptingContainer container
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    3     0  container  Lorg/jruby/embed/ScriptingContainer;
            0    3     1        key  Ljava/lang/String;
            1    3     2   behavior  Lorg/jruby/embed/LocalVariableBehavior;
    MethodParameters:
           Name  Flags
      container  
      key        
}
SourceFile: "Utils.java"
InnerClasses:
  public abstract Entry = java.util.Map$Entry of java.util.Map
  public OutputGlobalVariable = org.jruby.RubyGlobal$OutputGlobalVariable of org.jruby.RubyGlobal
  public final Scope = org.jruby.internal.runtime.GlobalVariable$Scope of org.jruby.internal.runtime.GlobalVariable