public class com.oracle.truffle.js.scriptengine.test.TestBindings
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: com.oracle.truffle.js.scriptengine.test.TestBindings
  super_class: java.lang.Object
{
  private static final java.lang.String SCRIPT_CONTEXT_GLOBAL_BINDINGS_IMPORT_FUNCTION_NAME;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "importScriptEngineGlobalBindings"

  private static final java.lang.String argsName;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "arguments"

  private static final java.lang.String[] defaultArgs;
    descriptor: [Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final java.lang.String varName;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "boundVarName"

  private static final java.lang.String defaultVarValue;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "default"

  private static final java.lang.String updatedVarValue;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "updated"

  private final javax.script.ScriptEngineManager manager;
    descriptor: Ljavax/script/ScriptEngineManager;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=4, locals=0, args_size=0
         0: .line 69
            iconst_2
            anewarray java.lang.String
            dup
            iconst_0
            ldc "arg0"
            aastore
            dup
            iconst_1
            ldc "arg1"
            aastore
            putstatic com.oracle.truffle.js.scriptengine.test.TestBindings.defaultArgs:[Ljava/lang/String;
         1: .line 72
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // com.oracle.truffle.js.scriptengine.test.TestBindings this
         0: .line 64
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 74
            aload 0 /* this */
            new javax.script.ScriptEngineManager
            dup
            invokespecial javax.script.ScriptEngineManager.<init>:()V
            putfield com.oracle.truffle.js.scriptengine.test.TestBindings.manager:Ljavax/script/ScriptEngineManager;
         2: .line 64
            return
        end local 0 // com.oracle.truffle.js.scriptengine.test.TestBindings this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lcom/oracle/truffle/js/scriptengine/test/TestBindings;

  private javax.script.ScriptEngine getEngine();
    descriptor: ()Ljavax/script/ScriptEngine;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.oracle.truffle.js.scriptengine.test.TestBindings this
         0: .line 77
            aload 0 /* this */
            getfield com.oracle.truffle.js.scriptengine.test.TestBindings.manager:Ljavax/script/ScriptEngineManager;
            ldc "JavaScript"
            invokevirtual javax.script.ScriptEngineManager.getEngineByName:(Ljava/lang/String;)Ljavax/script/ScriptEngine;
            areturn
        end local 0 // com.oracle.truffle.js.scriptengine.test.TestBindings this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/js/scriptengine/test/TestBindings;

  public void enginePut();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=1
        start local 0 // com.oracle.truffle.js.scriptengine.test.TestBindings this
         0: .line 82
            aload 0 /* this */
            invokevirtual com.oracle.truffle.js.scriptengine.test.TestBindings.getEngine:()Ljavax/script/ScriptEngine;
            astore 1 /* engine */
        start local 1 // javax.script.ScriptEngine engine
         1: .line 83
            aload 1 /* engine */
            ldc "boundVarName"
            ldc "default"
            invokeinterface javax.script.ScriptEngine.put:(Ljava/lang/String;Ljava/lang/Object;)V
         2: .line 84
            aload 1 /* engine */
            ldc "boundVarName === 'default';"
            invokeinterface javax.script.ScriptEngine.eval:(Ljava/lang/String;)Ljava/lang/Object;
            checkcast java.lang.Boolean
            invokevirtual java.lang.Boolean.booleanValue:()Z
            istore 2 /* result */
        start local 2 // boolean result
         3: .line 85
            iload 2 /* result */
            invokestatic org.junit.Assert.assertTrue:(Z)V
         4: .line 86
            return
        end local 2 // boolean result
        end local 1 // javax.script.ScriptEngine engine
        end local 0 // com.oracle.truffle.js.scriptengine.test.TestBindings this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    5     0    this  Lcom/oracle/truffle/js/scriptengine/test/TestBindings;
            1    5     1  engine  Ljavax/script/ScriptEngine;
            3    5     2  result  Z
    Exceptions:
      throws javax.script.ScriptException
    RuntimeVisibleAnnotations: 
      org.junit.Test()

  public void bindingsPut();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=1
        start local 0 // com.oracle.truffle.js.scriptengine.test.TestBindings this
         0: .line 90
            aload 0 /* this */
            invokevirtual com.oracle.truffle.js.scriptengine.test.TestBindings.getEngine:()Ljavax/script/ScriptEngine;
            astore 1 /* engine */
        start local 1 // javax.script.ScriptEngine engine
         1: .line 91
            aload 1 /* engine */
            bipush 100
            invokeinterface javax.script.ScriptEngine.getBindings:(I)Ljavax/script/Bindings;
            astore 2 /* bindings */
        start local 2 // javax.script.Bindings bindings
         2: .line 92
            aload 2 /* bindings */
            ldc "boundVarName"
            ldc "default"
            invokeinterface javax.script.Bindings.put:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         3: .line 93
            aload 1 /* engine */
            ldc "boundVarName === 'default';"
            invokeinterface javax.script.ScriptEngine.eval:(Ljava/lang/String;)Ljava/lang/Object;
            checkcast java.lang.Boolean
            invokevirtual java.lang.Boolean.booleanValue:()Z
            istore 3 /* result */
        start local 3 // boolean result
         4: .line 94
            iload 3 /* result */
            invokestatic org.junit.Assert.assertTrue:(Z)V
         5: .line 95
            return
        end local 3 // boolean result
        end local 2 // javax.script.Bindings bindings
        end local 1 // javax.script.ScriptEngine engine
        end local 0 // com.oracle.truffle.js.scriptengine.test.TestBindings this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    6     0      this  Lcom/oracle/truffle/js/scriptengine/test/TestBindings;
            1    6     1    engine  Ljavax/script/ScriptEngine;
            2    6     2  bindings  Ljavax/script/Bindings;
            4    6     3    result  Z
    Exceptions:
      throws javax.script.ScriptException
    RuntimeVisibleAnnotations: 
      org.junit.Test()

  public void bindingsPutGlobal();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=1
        start local 0 // com.oracle.truffle.js.scriptengine.test.TestBindings this
         0: .line 99
            aload 0 /* this */
            invokevirtual com.oracle.truffle.js.scriptengine.test.TestBindings.getEngine:()Ljavax/script/ScriptEngine;
            astore 1 /* engine */
        start local 1 // javax.script.ScriptEngine engine
         1: .line 100
            aload 1 /* engine */
            sipush 200
            invokeinterface javax.script.ScriptEngine.getBindings:(I)Ljavax/script/Bindings;
            astore 2 /* bindings */
        start local 2 // javax.script.Bindings bindings
         2: .line 101
            aload 2 /* bindings */
            ldc "boundVarName"
            ldc "default"
            invokeinterface javax.script.Bindings.put:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         3: .line 102
            aload 1 /* engine */
            ldc "boundVarName === 'default';"
            invokeinterface javax.script.ScriptEngine.eval:(Ljava/lang/String;)Ljava/lang/Object;
            checkcast java.lang.Boolean
            invokevirtual java.lang.Boolean.booleanValue:()Z
            istore 3 /* result */
        start local 3 // boolean result
         4: .line 103
            iload 3 /* result */
            invokestatic org.junit.Assert.assertTrue:(Z)V
         5: .line 104
            return
        end local 3 // boolean result
        end local 2 // javax.script.Bindings bindings
        end local 1 // javax.script.ScriptEngine engine
        end local 0 // com.oracle.truffle.js.scriptengine.test.TestBindings this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    6     0      this  Lcom/oracle/truffle/js/scriptengine/test/TestBindings;
            1    6     1    engine  Ljavax/script/ScriptEngine;
            2    6     2  bindings  Ljavax/script/Bindings;
            4    6     3    result  Z
    Exceptions:
      throws javax.script.ScriptException
    RuntimeVisibleAnnotations: 
      org.junit.Test()

  public void bindingsUpdateGlobal();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=1
        start local 0 // com.oracle.truffle.js.scriptengine.test.TestBindings this
         0: .line 108
            aload 0 /* this */
            invokevirtual com.oracle.truffle.js.scriptengine.test.TestBindings.getEngine:()Ljavax/script/ScriptEngine;
            astore 1 /* engine */
        start local 1 // javax.script.ScriptEngine engine
         1: .line 109
            aload 1 /* engine */
            sipush 200
            invokeinterface javax.script.ScriptEngine.getBindings:(I)Ljavax/script/Bindings;
            astore 2 /* bindings */
        start local 2 // javax.script.Bindings bindings
         2: .line 110
            aload 2 /* bindings */
            ldc "boundVarName"
            ldc "default"
            invokeinterface javax.script.Bindings.put:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         3: .line 111
            aload 1 /* engine */
            ldc "boundVarName === 'default';"
            invokeinterface javax.script.ScriptEngine.eval:(Ljava/lang/String;)Ljava/lang/Object;
            checkcast java.lang.Boolean
            invokevirtual java.lang.Boolean.booleanValue:()Z
            istore 3 /* result */
        start local 3 // boolean result
         4: .line 112
            iload 3 /* result */
            invokestatic org.junit.Assert.assertTrue:(Z)V
         5: .line 113
            aload 2 /* bindings */
            ldc "boundVarName"
            ldc "updated"
            invokeinterface javax.script.Bindings.put:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         6: .line 114
            aload 1 /* engine */
            ldc "boundVarName === 'updated';"
            invokeinterface javax.script.ScriptEngine.eval:(Ljava/lang/String;)Ljava/lang/Object;
            checkcast java.lang.Boolean
            invokevirtual java.lang.Boolean.booleanValue:()Z
            istore 3 /* result */
         7: .line 115
            iload 3 /* result */
            invokestatic org.junit.Assert.assertTrue:(Z)V
         8: .line 116
            return
        end local 3 // boolean result
        end local 2 // javax.script.Bindings bindings
        end local 1 // javax.script.ScriptEngine engine
        end local 0 // com.oracle.truffle.js.scriptengine.test.TestBindings this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    9     0      this  Lcom/oracle/truffle/js/scriptengine/test/TestBindings;
            1    9     1    engine  Ljavax/script/ScriptEngine;
            2    9     2  bindings  Ljavax/script/Bindings;
            4    9     3    result  Z
    Exceptions:
      throws javax.script.ScriptException
    RuntimeVisibleAnnotations: 
      org.junit.Test()

  public void bindingsRemoveGlobal();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=1
        start local 0 // com.oracle.truffle.js.scriptengine.test.TestBindings this
         0: .line 120
            aload 0 /* this */
            invokevirtual com.oracle.truffle.js.scriptengine.test.TestBindings.getEngine:()Ljavax/script/ScriptEngine;
            astore 1 /* engine */
        start local 1 // javax.script.ScriptEngine engine
         1: .line 121
            aload 1 /* engine */
            sipush 200
            invokeinterface javax.script.ScriptEngine.getBindings:(I)Ljavax/script/Bindings;
            astore 2 /* bindings */
        start local 2 // javax.script.Bindings bindings
         2: .line 122
            aload 2 /* bindings */
            ldc "boundVarName"
            ldc "default"
            invokeinterface javax.script.Bindings.put:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         3: .line 123
            aload 1 /* engine */
            ldc "boundVarName === 'default';"
            invokeinterface javax.script.ScriptEngine.eval:(Ljava/lang/String;)Ljava/lang/Object;
            checkcast java.lang.Boolean
            invokevirtual java.lang.Boolean.booleanValue:()Z
            istore 3 /* result */
        start local 3 // boolean result
         4: .line 124
            iload 3 /* result */
            invokestatic org.junit.Assert.assertTrue:(Z)V
         5: .line 125
            aload 2 /* bindings */
            ldc "boundVarName"
            invokeinterface javax.script.Bindings.remove:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         6: .line 126
            aload 1 /* engine */
            ldc "typeof boundVarName === 'undefined';"
            invokeinterface javax.script.ScriptEngine.eval:(Ljava/lang/String;)Ljava/lang/Object;
            checkcast java.lang.Boolean
            invokevirtual java.lang.Boolean.booleanValue:()Z
            istore 3 /* result */
         7: .line 127
            iload 3 /* result */
            invokestatic org.junit.Assert.assertTrue:(Z)V
         8: .line 128
            return
        end local 3 // boolean result
        end local 2 // javax.script.Bindings bindings
        end local 1 // javax.script.ScriptEngine engine
        end local 0 // com.oracle.truffle.js.scriptengine.test.TestBindings this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    9     0      this  Lcom/oracle/truffle/js/scriptengine/test/TestBindings;
            1    9     1    engine  Ljavax/script/ScriptEngine;
            2    9     2  bindings  Ljavax/script/Bindings;
            4    9     3    result  Z
    Exceptions:
      throws javax.script.ScriptException
    RuntimeVisibleAnnotations: 
      org.junit.Test()

  public void updateEngineBindings();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=1
        start local 0 // com.oracle.truffle.js.scriptengine.test.TestBindings this
         0: .line 132
            aload 0 /* this */
            invokevirtual com.oracle.truffle.js.scriptengine.test.TestBindings.getEngine:()Ljavax/script/ScriptEngine;
            astore 1 /* engine */
        start local 1 // javax.script.ScriptEngine engine
         1: .line 133
            aload 1 /* engine */
            bipush 100
            invokeinterface javax.script.ScriptEngine.getBindings:(I)Ljavax/script/Bindings;
            astore 2 /* bindings */
        start local 2 // javax.script.Bindings bindings
         2: .line 134
            aload 2 /* bindings */
            ldc "boundVarName"
            ldc "default"
            invokeinterface javax.script.Bindings.put:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         3: .line 135
            aload 1 /* engine */
            ldc "boundVarName = 'updated';"
            invokeinterface javax.script.ScriptEngine.eval:(Ljava/lang/String;)Ljava/lang/Object;
            pop
         4: .line 136
            ldc "updated"
            aload 2 /* bindings */
            ldc "boundVarName"
            invokeinterface javax.script.Bindings.get:(Ljava/lang/Object;)Ljava/lang/Object;
            invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
         5: .line 137
            ldc "updated"
            aload 1 /* engine */
            ldc "boundVarName"
            invokeinterface javax.script.ScriptEngine.get:(Ljava/lang/String;)Ljava/lang/Object;
            invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
         6: .line 138
            return
        end local 2 // javax.script.Bindings bindings
        end local 1 // javax.script.ScriptEngine engine
        end local 0 // com.oracle.truffle.js.scriptengine.test.TestBindings this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    7     0      this  Lcom/oracle/truffle/js/scriptengine/test/TestBindings;
            1    7     1    engine  Ljavax/script/ScriptEngine;
            2    7     2  bindings  Ljavax/script/Bindings;
    Exceptions:
      throws javax.script.ScriptException
    RuntimeVisibleAnnotations: 
      org.junit.Test()

  public void updateGlobalBindings();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=1
        start local 0 // com.oracle.truffle.js.scriptengine.test.TestBindings this
         0: .line 142
            aload 0 /* this */
            invokevirtual com.oracle.truffle.js.scriptengine.test.TestBindings.getEngine:()Ljavax/script/ScriptEngine;
            astore 1 /* engine */
        start local 1 // javax.script.ScriptEngine engine
         1: .line 143
            aload 1 /* engine */
            sipush 200
            invokeinterface javax.script.ScriptEngine.getBindings:(I)Ljavax/script/Bindings;
            astore 2 /* bindings */
        start local 2 // javax.script.Bindings bindings
         2: .line 144
            aload 2 /* bindings */
            ldc "boundVarName"
            ldc "default"
            invokeinterface javax.script.Bindings.put:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         3: .line 145
            aload 1 /* engine */
            ldc "boundVarName = 'updated';"
            invokeinterface javax.script.ScriptEngine.eval:(Ljava/lang/String;)Ljava/lang/Object;
            pop
         4: .line 146
            ldc "default"
            aload 2 /* bindings */
            ldc "boundVarName"
            invokeinterface javax.script.Bindings.get:(Ljava/lang/Object;)Ljava/lang/Object;
            invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
         5: .line 147
            ldc "updated"
            aload 1 /* engine */
            ldc "boundVarName"
            invokeinterface javax.script.ScriptEngine.get:(Ljava/lang/String;)Ljava/lang/Object;
            invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
         6: .line 148
            return
        end local 2 // javax.script.Bindings bindings
        end local 1 // javax.script.ScriptEngine engine
        end local 0 // com.oracle.truffle.js.scriptengine.test.TestBindings this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    7     0      this  Lcom/oracle/truffle/js/scriptengine/test/TestBindings;
            1    7     1    engine  Ljavax/script/ScriptEngine;
            2    7     2  bindings  Ljavax/script/Bindings;
    Exceptions:
      throws javax.script.ScriptException
    RuntimeVisibleAnnotations: 
      org.junit.Test()

  public void overrideEngineBindings1();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // com.oracle.truffle.js.scriptengine.test.TestBindings this
         0: .line 152
            aload 0 /* this */
            invokevirtual com.oracle.truffle.js.scriptengine.test.TestBindings.getEngine:()Ljavax/script/ScriptEngine;
            astore 1 /* engine */
        start local 1 // javax.script.ScriptEngine engine
         1: .line 153
            aload 1 /* engine */
            ldc "var boundVarName = 'default';"
            invokeinterface javax.script.ScriptEngine.eval:(Ljava/lang/String;)Ljava/lang/Object;
            pop
         2: .line 154
            aload 1 /* engine */
            ldc "boundVarName"
            ldc "updated"
            invokeinterface javax.script.ScriptEngine.put:(Ljava/lang/String;Ljava/lang/Object;)V
         3: .line 155
            ldc "updated"
            aload 1 /* engine */
            ldc "boundVarName"
            invokeinterface javax.script.ScriptEngine.eval:(Ljava/lang/String;)Ljava/lang/Object;
            invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
         4: .line 156
            return
        end local 1 // javax.script.ScriptEngine engine
        end local 0 // com.oracle.truffle.js.scriptengine.test.TestBindings this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    5     0    this  Lcom/oracle/truffle/js/scriptengine/test/TestBindings;
            1    5     1  engine  Ljavax/script/ScriptEngine;
    Exceptions:
      throws javax.script.ScriptException
    RuntimeVisibleAnnotations: 
      org.junit.Test()

  public void overrideEngineBindings2();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=1
        start local 0 // com.oracle.truffle.js.scriptengine.test.TestBindings this
         0: .line 160
            aload 0 /* this */
            invokevirtual com.oracle.truffle.js.scriptengine.test.TestBindings.getEngine:()Ljavax/script/ScriptEngine;
            astore 1 /* engine */
        start local 1 // javax.script.ScriptEngine engine
         1: .line 161
            aload 1 /* engine */
            ldc "var boundVarName = 'default';"
            invokeinterface javax.script.ScriptEngine.eval:(Ljava/lang/String;)Ljava/lang/Object;
            pop
         2: .line 162
            new javax.script.SimpleBindings
            dup
            invokespecial javax.script.SimpleBindings.<init>:()V
            astore 2 /* bindings */
        start local 2 // javax.script.Bindings bindings
         3: .line 163
            aload 2 /* bindings */
            ldc "boundVarName"
            ldc "updated"
            invokeinterface javax.script.Bindings.put:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         4: .line 164
            aload 1 /* engine */
            aload 2 /* bindings */
            bipush 100
            invokeinterface javax.script.ScriptEngine.setBindings:(Ljavax/script/Bindings;I)V
         5: .line 165
            ldc "updated"
            aload 1 /* engine */
            ldc "boundVarName"
            invokeinterface javax.script.ScriptEngine.eval:(Ljava/lang/String;)Ljava/lang/Object;
            invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
         6: .line 166
            return
        end local 2 // javax.script.Bindings bindings
        end local 1 // javax.script.ScriptEngine engine
        end local 0 // com.oracle.truffle.js.scriptengine.test.TestBindings this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    7     0      this  Lcom/oracle/truffle/js/scriptengine/test/TestBindings;
            1    7     1    engine  Ljavax/script/ScriptEngine;
            3    7     2  bindings  Ljavax/script/Bindings;
    Exceptions:
      throws javax.script.ScriptException
    RuntimeVisibleAnnotations: 
      org.junit.Test()

  public void overrideGlobalBindings();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // com.oracle.truffle.js.scriptengine.test.TestBindings this
         0: .line 170
            aload 0 /* this */
            invokevirtual com.oracle.truffle.js.scriptengine.test.TestBindings.getEngine:()Ljavax/script/ScriptEngine;
            astore 1 /* engine */
        start local 1 // javax.script.ScriptEngine engine
         1: .line 171
            aload 1 /* engine */
            ldc "var boundVarName = 'default';"
            invokeinterface javax.script.ScriptEngine.eval:(Ljava/lang/String;)Ljava/lang/Object;
            pop
         2: .line 172
            aload 1 /* engine */
            sipush 200
            invokeinterface javax.script.ScriptEngine.getBindings:(I)Ljavax/script/Bindings;
            ldc "boundVarName"
            ldc "updated"
            invokeinterface javax.script.Bindings.put:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         3: .line 173
            ldc "default"
            aload 1 /* engine */
            ldc "boundVarName"
            invokeinterface javax.script.ScriptEngine.eval:(Ljava/lang/String;)Ljava/lang/Object;
            invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
         4: .line 174
            return
        end local 1 // javax.script.ScriptEngine engine
        end local 0 // com.oracle.truffle.js.scriptengine.test.TestBindings this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    5     0    this  Lcom/oracle/truffle/js/scriptengine/test/TestBindings;
            1    5     1  engine  Ljavax/script/ScriptEngine;
    Exceptions:
      throws javax.script.ScriptException
    RuntimeVisibleAnnotations: 
      org.junit.Test()

  public void setBindings1();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=1
        start local 0 // com.oracle.truffle.js.scriptengine.test.TestBindings this
         0: .line 178
            new javax.script.SimpleBindings
            dup
            invokespecial javax.script.SimpleBindings.<init>:()V
            astore 1 /* bindings */
        start local 1 // javax.script.Bindings bindings
         1: .line 179
            aload 1 /* bindings */
            ldc "boundVarName"
            ldc "default"
            invokeinterface javax.script.Bindings.put:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         2: .line 180
            aload 0 /* this */
            invokevirtual com.oracle.truffle.js.scriptengine.test.TestBindings.getEngine:()Ljavax/script/ScriptEngine;
            astore 2 /* engine */
        start local 2 // javax.script.ScriptEngine engine
         3: .line 181
            aload 2 /* engine */
            aload 1 /* bindings */
            bipush 100
            invokeinterface javax.script.ScriptEngine.setBindings:(Ljavax/script/Bindings;I)V
         4: .line 182
            iconst_1
            invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
            aload 2 /* engine */
            ldc "boundVarName === 'default';"
            invokeinterface javax.script.ScriptEngine.eval:(Ljava/lang/String;)Ljava/lang/Object;
            invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
         5: .line 183
            return
        end local 2 // javax.script.ScriptEngine engine
        end local 1 // javax.script.Bindings bindings
        end local 0 // com.oracle.truffle.js.scriptengine.test.TestBindings this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    6     0      this  Lcom/oracle/truffle/js/scriptengine/test/TestBindings;
            1    6     1  bindings  Ljavax/script/Bindings;
            3    6     2    engine  Ljavax/script/ScriptEngine;
    Exceptions:
      throws javax.script.ScriptException
    RuntimeVisibleAnnotations: 
      org.junit.Test()

  public void setBindings2();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=1
        start local 0 // com.oracle.truffle.js.scriptengine.test.TestBindings this
         0: .line 187
            new javax.script.SimpleBindings
            dup
            invokespecial javax.script.SimpleBindings.<init>:()V
            astore 1 /* bindings */
        start local 1 // javax.script.Bindings bindings
         1: .line 188
            aload 1 /* bindings */
            ldc "boundVarName"
            ldc "default"
            invokeinterface javax.script.Bindings.put:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         2: .line 189
            aload 0 /* this */
            invokevirtual com.oracle.truffle.js.scriptengine.test.TestBindings.getEngine:()Ljavax/script/ScriptEngine;
            astore 2 /* engine */
        start local 2 // javax.script.ScriptEngine engine
         3: .line 190
            aload 2 /* engine */
            aload 1 /* bindings */
            bipush 100
            invokeinterface javax.script.ScriptEngine.setBindings:(Ljavax/script/Bindings;I)V
         4: .line 191
            aload 2 /* engine */
            ldc "boundVarName = 'updated';"
            invokeinterface javax.script.ScriptEngine.eval:(Ljava/lang/String;)Ljava/lang/Object;
            pop
         5: .line 192
            aload 1 /* bindings */
            ldc "boundVarName"
            invokeinterface javax.script.Bindings.get:(Ljava/lang/Object;)Ljava/lang/Object;
            ldc "default"
            invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
         6: .line 193
            aload 2 /* engine */
            ldc "boundVarName"
            invokeinterface javax.script.ScriptEngine.get:(Ljava/lang/String;)Ljava/lang/Object;
            ldc "default"
            invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
         7: .line 194
            return
        end local 2 // javax.script.ScriptEngine engine
        end local 1 // javax.script.Bindings bindings
        end local 0 // com.oracle.truffle.js.scriptengine.test.TestBindings this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    8     0      this  Lcom/oracle/truffle/js/scriptengine/test/TestBindings;
            1    8     1  bindings  Ljavax/script/Bindings;
            3    8     2    engine  Ljavax/script/ScriptEngine;
    Exceptions:
      throws javax.script.ScriptException
    RuntimeVisibleAnnotations: 
      org.junit.Test()

  public void setBindings3();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // com.oracle.truffle.js.scriptengine.test.TestBindings this
         0: .line 198
            aload 0 /* this */
            invokevirtual com.oracle.truffle.js.scriptengine.test.TestBindings.getEngine:()Ljavax/script/ScriptEngine;
            astore 1 /* engine */
        start local 1 // javax.script.ScriptEngine engine
         1: .line 199
            aload 1 /* engine */
            ldc "boundVarName"
            aconst_null
            invokeinterface javax.script.ScriptEngine.put:(Ljava/lang/String;Ljava/lang/Object;)V
         2: .line 200
            aload 1 /* engine */
            ldc "boundVarName"
            invokeinterface javax.script.ScriptEngine.get:(Ljava/lang/String;)Ljava/lang/Object;
            invokestatic org.junit.Assert.assertNull:(Ljava/lang/Object;)V
         3: .line 201
            aload 1 /* engine */
            ldc "boundVarName"
            invokeinterface javax.script.ScriptEngine.eval:(Ljava/lang/String;)Ljava/lang/Object;
            invokestatic org.junit.Assert.assertNull:(Ljava/lang/Object;)V
         4: .line 202
            iconst_1
            invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
            aload 1 /* engine */
            ldc "boundVarName === null;"
            invokeinterface javax.script.ScriptEngine.eval:(Ljava/lang/String;)Ljava/lang/Object;
            invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
         5: .line 203
            return
        end local 1 // javax.script.ScriptEngine engine
        end local 0 // com.oracle.truffle.js.scriptengine.test.TestBindings this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    6     0    this  Lcom/oracle/truffle/js/scriptengine/test/TestBindings;
            1    6     1  engine  Ljavax/script/ScriptEngine;
    Exceptions:
      throws javax.script.ScriptException
    RuntimeVisibleAnnotations: 
      org.junit.Test()

  public void engineGetDeclared();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=5, args_size=1
        start local 0 // com.oracle.truffle.js.scriptengine.test.TestBindings this
         0: .line 207
            aload 0 /* this */
            invokevirtual com.oracle.truffle.js.scriptengine.test.TestBindings.getEngine:()Ljavax/script/ScriptEngine;
            astore 1 /* engine */
        start local 1 // javax.script.ScriptEngine engine
         1: .line 208
            aload 1 /* engine */
            bipush 100
            invokeinterface javax.script.ScriptEngine.getBindings:(I)Ljavax/script/Bindings;
            astore 2 /* bindings */
        start local 2 // javax.script.Bindings bindings
         2: .line 209
            aload 2 /* bindings */
            invokeinterface javax.script.Bindings.size:()I
            istore 3 /* sizeBefore */
        start local 3 // int sizeBefore
         3: .line 210
            aload 1 /* engine */
            ldc "var boundVarName = 'default';"
            invokeinterface javax.script.ScriptEngine.eval:(Ljava/lang/String;)Ljava/lang/Object;
            pop
         4: .line 211
            ldc "default"
            aload 1 /* engine */
            ldc "boundVarName"
            invokeinterface javax.script.ScriptEngine.get:(Ljava/lang/String;)Ljava/lang/Object;
            invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
         5: .line 212
            aload 2 /* bindings */
            invokeinterface javax.script.Bindings.size:()I
            istore 4 /* sizeAfter */
        start local 4 // int sizeAfter
         6: .line 213
            lconst_1
            iload 4 /* sizeAfter */
            iload 3 /* sizeBefore */
            isub
            i2l
            invokestatic org.junit.Assert.assertEquals:(JJ)V
         7: .line 214
            return
        end local 4 // int sizeAfter
        end local 3 // int sizeBefore
        end local 2 // javax.script.Bindings bindings
        end local 1 // javax.script.ScriptEngine engine
        end local 0 // com.oracle.truffle.js.scriptengine.test.TestBindings this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    8     0        this  Lcom/oracle/truffle/js/scriptengine/test/TestBindings;
            1    8     1      engine  Ljavax/script/ScriptEngine;
            2    8     2    bindings  Ljavax/script/Bindings;
            3    8     3  sizeBefore  I
            6    8     4   sizeAfter  I
    Exceptions:
      throws javax.script.ScriptException
    RuntimeVisibleAnnotations: 
      org.junit.Test()

  public void clearBindings1();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=7, args_size=1
        start local 0 // com.oracle.truffle.js.scriptengine.test.TestBindings this
         0: .line 218
            aload 0 /* this */
            invokevirtual com.oracle.truffle.js.scriptengine.test.TestBindings.getEngine:()Ljavax/script/ScriptEngine;
            astore 1 /* engine */
        start local 1 // javax.script.ScriptEngine engine
         1: .line 219
            aload 1 /* engine */
            bipush 100
            invokeinterface javax.script.ScriptEngine.getBindings:(I)Ljavax/script/Bindings;
            astore 2 /* bindings */
        start local 2 // javax.script.Bindings bindings
         2: .line 220
            aload 2 /* bindings */
            invokeinterface javax.script.Bindings.size:()I
            istore 3 /* sizeBeforePut */
        start local 3 // int sizeBeforePut
         3: .line 221
            aload 2 /* bindings */
            ldc "boundVarName"
            ldc "default"
            invokeinterface javax.script.Bindings.put:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         4: .line 222
            aload 2 /* bindings */
            invokeinterface javax.script.Bindings.size:()I
            istore 4 /* sizeAfterPut */
        start local 4 // int sizeAfterPut
         5: .line 223
            lconst_1
            iload 4 /* sizeAfterPut */
            iload 3 /* sizeBeforePut */
            isub
            i2l
            invokestatic org.junit.Assert.assertEquals:(JJ)V
         6: .line 224
            ldc "default"
            aload 2 /* bindings */
            ldc "boundVarName"
            invokeinterface javax.script.Bindings.get:(Ljava/lang/Object;)Ljava/lang/Object;
            invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
         7: .line 225
            aload 2 /* bindings */
            invokeinterface javax.script.Bindings.size:()I
            istore 5 /* sizeBeforeClear */
        start local 5 // int sizeBeforeClear
         8: .line 226
            aload 2 /* bindings */
            invokeinterface javax.script.Bindings.clear:()V
         9: .line 227
            aload 2 /* bindings */
            invokeinterface javax.script.Bindings.size:()I
            istore 6 /* sizeAfterClear */
        start local 6 // int sizeAfterClear
        10: .line 228
            ldc "One binding cleared"
            lconst_1
            iload 5 /* sizeBeforeClear */
            iload 6 /* sizeAfterClear */
            isub
            i2l
            invokestatic org.junit.Assert.assertEquals:(Ljava/lang/String;JJ)V
        11: .line 229
            aconst_null
            aload 2 /* bindings */
            ldc "boundVarName"
            invokeinterface javax.script.Bindings.get:(Ljava/lang/Object;)Ljava/lang/Object;
            invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
        12: .line 230
            return
        end local 6 // int sizeAfterClear
        end local 5 // int sizeBeforeClear
        end local 4 // int sizeAfterPut
        end local 3 // int sizeBeforePut
        end local 2 // javax.script.Bindings bindings
        end local 1 // javax.script.ScriptEngine engine
        end local 0 // com.oracle.truffle.js.scriptengine.test.TestBindings this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   13     0             this  Lcom/oracle/truffle/js/scriptengine/test/TestBindings;
            1   13     1           engine  Ljavax/script/ScriptEngine;
            2   13     2         bindings  Ljavax/script/Bindings;
            3   13     3    sizeBeforePut  I
            5   13     4     sizeAfterPut  I
            8   13     5  sizeBeforeClear  I
           10   13     6   sizeAfterClear  I
    RuntimeVisibleAnnotations: 
      org.junit.Test()

  public void clearBindings2();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=7, args_size=1
        start local 0 // com.oracle.truffle.js.scriptengine.test.TestBindings this
         0: .line 234
            aload 0 /* this */
            invokevirtual com.oracle.truffle.js.scriptengine.test.TestBindings.getEngine:()Ljavax/script/ScriptEngine;
            astore 1 /* engine */
        start local 1 // javax.script.ScriptEngine engine
         1: .line 235
            aload 1 /* engine */
            bipush 100
            invokeinterface javax.script.ScriptEngine.getBindings:(I)Ljavax/script/Bindings;
            astore 2 /* bindings */
        start local 2 // javax.script.Bindings bindings
         2: .line 236
            aload 2 /* bindings */
            invokeinterface javax.script.Bindings.size:()I
            istore 3 /* sizeBeforePut */
        start local 3 // int sizeBeforePut
         3: .line 237
            aload 2 /* bindings */
            ldc "boundVarName"
            ldc "default"
            invokeinterface javax.script.Bindings.put:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         4: .line 238
            aload 2 /* bindings */
            invokeinterface javax.script.Bindings.size:()I
            istore 4 /* sizeAfterPut */
        start local 4 // int sizeAfterPut
         5: .line 239
            lconst_1
            iload 4 /* sizeAfterPut */
            iload 3 /* sizeBeforePut */
            isub
            i2l
            invokestatic org.junit.Assert.assertEquals:(JJ)V
         6: .line 240
            aload 1 /* engine */
            ldc "var boundVarName = 'updated';"
            invokeinterface javax.script.ScriptEngine.eval:(Ljava/lang/String;)Ljava/lang/Object;
            pop
         7: .line 241
            iload 4 /* sizeAfterPut */
            i2l
            aload 2 /* bindings */
            invokeinterface javax.script.Bindings.size:()I
            i2l
            invokestatic org.junit.Assert.assertEquals:(JJ)V
         8: .line 242
            ldc "updated"
            aload 2 /* bindings */
            ldc "boundVarName"
            invokeinterface javax.script.Bindings.get:(Ljava/lang/Object;)Ljava/lang/Object;
            invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
         9: .line 243
            aload 2 /* bindings */
            invokeinterface javax.script.Bindings.size:()I
            istore 5 /* sizeBeforeClear */
        start local 5 // int sizeBeforeClear
        10: .line 244
            aload 2 /* bindings */
            invokeinterface javax.script.Bindings.clear:()V
        11: .line 245
            aload 2 /* bindings */
            invokeinterface javax.script.Bindings.size:()I
            istore 6 /* sizeAfterClear */
        start local 6 // int sizeAfterClear
        12: .line 246
            ldc "One binding cleared"
            lconst_1
            iload 5 /* sizeBeforeClear */
            iload 6 /* sizeAfterClear */
            isub
            i2l
            invokestatic org.junit.Assert.assertEquals:(Ljava/lang/String;JJ)V
        13: .line 247
            aconst_null
            aload 2 /* bindings */
            ldc "boundVarName"
            invokeinterface javax.script.Bindings.get:(Ljava/lang/Object;)Ljava/lang/Object;
            invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
        14: .line 248
            return
        end local 6 // int sizeAfterClear
        end local 5 // int sizeBeforeClear
        end local 4 // int sizeAfterPut
        end local 3 // int sizeBeforePut
        end local 2 // javax.script.Bindings bindings
        end local 1 // javax.script.ScriptEngine engine
        end local 0 // com.oracle.truffle.js.scriptengine.test.TestBindings this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   15     0             this  Lcom/oracle/truffle/js/scriptengine/test/TestBindings;
            1   15     1           engine  Ljavax/script/ScriptEngine;
            2   15     2         bindings  Ljavax/script/Bindings;
            3   15     3    sizeBeforePut  I
            5   15     4     sizeAfterPut  I
           10   15     5  sizeBeforeClear  I
           12   15     6   sizeAfterClear  I
    Exceptions:
      throws javax.script.ScriptException
    RuntimeVisibleAnnotations: 
      org.junit.Test()

  public void clearNoBindings();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=5, args_size=1
        start local 0 // com.oracle.truffle.js.scriptengine.test.TestBindings this
         0: .line 252
            aload 0 /* this */
            invokevirtual com.oracle.truffle.js.scriptengine.test.TestBindings.getEngine:()Ljavax/script/ScriptEngine;
            astore 1 /* engine */
        start local 1 // javax.script.ScriptEngine engine
         1: .line 253
            aload 1 /* engine */
            ldc "var boundVarName = 'default';"
            invokeinterface javax.script.ScriptEngine.eval:(Ljava/lang/String;)Ljava/lang/Object;
            pop
         2: .line 254
            aload 1 /* engine */
            bipush 100
            invokeinterface javax.script.ScriptEngine.getBindings:(I)Ljavax/script/Bindings;
            astore 2 /* bindings */
        start local 2 // javax.script.Bindings bindings
         3: .line 255
            aload 2 /* bindings */
            invokeinterface javax.script.Bindings.size:()I
            istore 3 /* sizeBeforeClear */
        start local 3 // int sizeBeforeClear
         4: .line 256
            aload 2 /* bindings */
            invokeinterface javax.script.Bindings.clear:()V
         5: .line 257
            aload 2 /* bindings */
            invokeinterface javax.script.Bindings.size:()I
            istore 4 /* sizeAfterClear */
        start local 4 // int sizeAfterClear
         6: .line 258
            ldc "No bindings cleared"
            iload 3 /* sizeBeforeClear */
            i2l
            iload 4 /* sizeAfterClear */
            i2l
            invokestatic org.junit.Assert.assertEquals:(Ljava/lang/String;JJ)V
         7: .line 259
            ldc "default"
            aload 2 /* bindings */
            ldc "boundVarName"
            invokeinterface javax.script.Bindings.get:(Ljava/lang/Object;)Ljava/lang/Object;
            invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
         8: .line 260
            return
        end local 4 // int sizeAfterClear
        end local 3 // int sizeBeforeClear
        end local 2 // javax.script.Bindings bindings
        end local 1 // javax.script.ScriptEngine engine
        end local 0 // com.oracle.truffle.js.scriptengine.test.TestBindings this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    9     0             this  Lcom/oracle/truffle/js/scriptengine/test/TestBindings;
            1    9     1           engine  Ljavax/script/ScriptEngine;
            3    9     2         bindings  Ljavax/script/Bindings;
            4    9     3  sizeBeforeClear  I
            6    9     4   sizeAfterClear  I
    Exceptions:
      throws javax.script.ScriptException
    RuntimeVisibleAnnotations: 
      org.junit.Test()

  public void engineOverrideGlobal();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=1
        start local 0 // com.oracle.truffle.js.scriptengine.test.TestBindings this
         0: .line 264
            aload 0 /* this */
            invokevirtual com.oracle.truffle.js.scriptengine.test.TestBindings.getEngine:()Ljavax/script/ScriptEngine;
            astore 1 /* engine */
        start local 1 // javax.script.ScriptEngine engine
         1: .line 265
            aload 1 /* engine */
            invokeinterface javax.script.ScriptEngine.createBindings:()Ljavax/script/Bindings;
            astore 2 /* engineB */
        start local 2 // javax.script.Bindings engineB
         2: .line 266
            aload 1 /* engine */
            invokeinterface javax.script.ScriptEngine.createBindings:()Ljavax/script/Bindings;
            astore 3 /* globalB */
        start local 3 // javax.script.Bindings globalB
         3: .line 267
            aload 2 /* engineB */
            ldc "boundVarName"
            ldc "updated"
            invokeinterface javax.script.Bindings.put:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         4: .line 268
            aload 3 /* globalB */
            ldc "boundVarName"
            ldc "default"
            invokeinterface javax.script.Bindings.put:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         5: .line 269
            aload 1 /* engine */
            aload 2 /* engineB */
            bipush 100
            invokeinterface javax.script.ScriptEngine.setBindings:(Ljavax/script/Bindings;I)V
         6: .line 270
            aload 1 /* engine */
            aload 3 /* globalB */
            sipush 200
            invokeinterface javax.script.ScriptEngine.setBindings:(Ljavax/script/Bindings;I)V
         7: .line 271
            ldc "updated"
            aload 1 /* engine */
            ldc "boundVarName"
            invokeinterface javax.script.ScriptEngine.eval:(Ljava/lang/String;)Ljava/lang/Object;
            invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
         8: .line 272
            return
        end local 3 // javax.script.Bindings globalB
        end local 2 // javax.script.Bindings engineB
        end local 1 // javax.script.ScriptEngine engine
        end local 0 // com.oracle.truffle.js.scriptengine.test.TestBindings this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    9     0     this  Lcom/oracle/truffle/js/scriptengine/test/TestBindings;
            1    9     1   engine  Ljavax/script/ScriptEngine;
            2    9     2  engineB  Ljavax/script/Bindings;
            3    9     3  globalB  Ljavax/script/Bindings;
    Exceptions:
      throws javax.script.ScriptException
    RuntimeVisibleAnnotations: 
      org.junit.Test()

  public void setArgs1();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // com.oracle.truffle.js.scriptengine.test.TestBindings this
         0: .line 276
            aload 0 /* this */
            invokevirtual com.oracle.truffle.js.scriptengine.test.TestBindings.getEngine:()Ljavax/script/ScriptEngine;
            astore 1 /* engine */
        start local 1 // javax.script.ScriptEngine engine
         1: .line 277
            aload 1 /* engine */
            ldc "polyglot.js.allowHostAccess"
            iconst_1
            invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
            invokeinterface javax.script.ScriptEngine.put:(Ljava/lang/String;Ljava/lang/Object;)V
         2: .line 278
            aload 1 /* engine */
            ldc "arguments"
            getstatic com.oracle.truffle.js.scriptengine.test.TestBindings.defaultArgs:[Ljava/lang/String;
            invokeinterface javax.script.ScriptEngine.put:(Ljava/lang/String;Ljava/lang/Object;)V
         3: .line 279
            getstatic com.oracle.truffle.js.scriptengine.test.TestBindings.defaultArgs:[Ljava/lang/String;
            iconst_0
            aaload
            aload 1 /* engine */
            ldc "arguments[0];"
            invokeinterface javax.script.ScriptEngine.eval:(Ljava/lang/String;)Ljava/lang/Object;
            invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
         4: .line 280
            getstatic com.oracle.truffle.js.scriptengine.test.TestBindings.defaultArgs:[Ljava/lang/String;
            iconst_1
            aaload
            aload 1 /* engine */
            ldc "arguments[1];"
            invokeinterface javax.script.ScriptEngine.eval:(Ljava/lang/String;)Ljava/lang/Object;
            invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
         5: .line 281
            iconst_1
            invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
            aload 1 /* engine */
            ldc "(function() { for (var idx in this) { if (idx == 'arguments') { return false; } }; return true; })();"
            invokeinterface javax.script.ScriptEngine.eval:(Ljava/lang/String;)Ljava/lang/Object;
            invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
         6: .line 282
            return
        end local 1 // javax.script.ScriptEngine engine
        end local 0 // com.oracle.truffle.js.scriptengine.test.TestBindings this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    7     0    this  Lcom/oracle/truffle/js/scriptengine/test/TestBindings;
            1    7     1  engine  Ljavax/script/ScriptEngine;
    Exceptions:
      throws javax.script.ScriptException
    RuntimeVisibleAnnotations: 
      org.junit.Test()

  public void setArgs2();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=1
        start local 0 // com.oracle.truffle.js.scriptengine.test.TestBindings this
         0: .line 286
            aload 0 /* this */
            invokevirtual com.oracle.truffle.js.scriptengine.test.TestBindings.getEngine:()Ljavax/script/ScriptEngine;
            astore 1 /* engine */
        start local 1 // javax.script.ScriptEngine engine
         1: .line 287
            new javax.script.SimpleBindings
            dup
            invokespecial javax.script.SimpleBindings.<init>:()V
            astore 2 /* bindings */
        start local 2 // javax.script.Bindings bindings
         2: .line 288
            aload 2 /* bindings */
            ldc "polyglot.js.allowHostAccess"
            iconst_1
            invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
            invokeinterface javax.script.Bindings.put:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         3: .line 289
            aload 2 /* bindings */
            ldc "arguments"
            getstatic com.oracle.truffle.js.scriptengine.test.TestBindings.defaultArgs:[Ljava/lang/String;
            invokeinterface javax.script.Bindings.put:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         4: .line 290
            aload 1 /* engine */
            aload 2 /* bindings */
            bipush 100
            invokeinterface javax.script.ScriptEngine.setBindings:(Ljavax/script/Bindings;I)V
         5: .line 291
            getstatic com.oracle.truffle.js.scriptengine.test.TestBindings.defaultArgs:[Ljava/lang/String;
            iconst_0
            aaload
            aload 1 /* engine */
            ldc "arguments[0];"
            invokeinterface javax.script.ScriptEngine.eval:(Ljava/lang/String;)Ljava/lang/Object;
            invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
         6: .line 292
            getstatic com.oracle.truffle.js.scriptengine.test.TestBindings.defaultArgs:[Ljava/lang/String;
            iconst_1
            aaload
            aload 1 /* engine */
            ldc "arguments[1];"
            invokeinterface javax.script.ScriptEngine.eval:(Ljava/lang/String;)Ljava/lang/Object;
            invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
         7: .line 293
            return
        end local 2 // javax.script.Bindings bindings
        end local 1 // javax.script.ScriptEngine engine
        end local 0 // com.oracle.truffle.js.scriptengine.test.TestBindings this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    8     0      this  Lcom/oracle/truffle/js/scriptengine/test/TestBindings;
            1    8     1    engine  Ljavax/script/ScriptEngine;
            2    8     2  bindings  Ljavax/script/Bindings;
    Exceptions:
      throws javax.script.ScriptException
    RuntimeVisibleAnnotations: 
      org.junit.Test()

  public void importFunctionInvisible();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=1
        start local 0 // com.oracle.truffle.js.scriptengine.test.TestBindings this
         0: .line 297
            aload 0 /* this */
            invokevirtual com.oracle.truffle.js.scriptengine.test.TestBindings.getEngine:()Ljavax/script/ScriptEngine;
            astore 1 /* engine */
        start local 1 // javax.script.ScriptEngine engine
         1: .line 298
            aload 1 /* engine */
            ldc "typeof importScriptEngineGlobalBindings === 'undefined';"
            invokeinterface javax.script.ScriptEngine.eval:(Ljava/lang/String;)Ljava/lang/Object;
            checkcast java.lang.Boolean
            invokevirtual java.lang.Boolean.booleanValue:()Z
            istore 2 /* result */
        start local 2 // boolean result
         2: .line 299
            iload 2 /* result */
            invokestatic org.junit.Assert.assertTrue:(Z)V
         3: .line 300
            return
        end local 2 // boolean result
        end local 1 // javax.script.ScriptEngine engine
        end local 0 // com.oracle.truffle.js.scriptengine.test.TestBindings this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    4     0    this  Lcom/oracle/truffle/js/scriptengine/test/TestBindings;
            1    4     1  engine  Ljavax/script/ScriptEngine;
            2    4     2  result  Z
    Exceptions:
      throws javax.script.ScriptException
    RuntimeVisibleAnnotations: 
      org.junit.Test()

  public void importFunctionOverwrite();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=5, args_size=1
        start local 0 // com.oracle.truffle.js.scriptengine.test.TestBindings this
         0: .line 304
            aload 0 /* this */
            invokevirtual com.oracle.truffle.js.scriptengine.test.TestBindings.getEngine:()Ljavax/script/ScriptEngine;
            astore 1 /* engine */
        start local 1 // javax.script.ScriptEngine engine
         1: .line 305
            aload 1 /* engine */
            bipush 100
            invokeinterface javax.script.ScriptEngine.getBindings:(I)Ljavax/script/Bindings;
            astore 2 /* bindings */
        start local 2 // javax.script.Bindings bindings
         2: .line 306
            aload 2 /* bindings */
            ldc "importScriptEngineGlobalBindings"
            ldc "default"
            invokeinterface javax.script.Bindings.put:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         3: .line 307
            aload 1 /* engine */
            sipush 200
            invokeinterface javax.script.ScriptEngine.getBindings:(I)Ljavax/script/Bindings;
            astore 3 /* globalBindings */
        start local 3 // javax.script.Bindings globalBindings
         4: .line 308
            aload 3 /* globalBindings */
            ldc "boundVarName"
            ldc "default"
            invokeinterface javax.script.Bindings.put:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         5: .line 309
            aload 1 /* engine */
            ldc "importScriptEngineGlobalBindings === 'default';"
            invokeinterface javax.script.ScriptEngine.eval:(Ljava/lang/String;)Ljava/lang/Object;
            checkcast java.lang.Boolean
            invokevirtual java.lang.Boolean.booleanValue:()Z
            istore 4 /* result */
        start local 4 // boolean result
         6: .line 310
            iload 4 /* result */
            invokestatic org.junit.Assert.assertTrue:(Z)V
         7: .line 311
            aload 1 /* engine */
            ldc "boundVarName === 'default';"
            invokeinterface javax.script.ScriptEngine.eval:(Ljava/lang/String;)Ljava/lang/Object;
            checkcast java.lang.Boolean
            invokevirtual java.lang.Boolean.booleanValue:()Z
            istore 4 /* result */
         8: .line 312
            iload 4 /* result */
            invokestatic org.junit.Assert.assertTrue:(Z)V
         9: .line 313
            return
        end local 4 // boolean result
        end local 3 // javax.script.Bindings globalBindings
        end local 2 // javax.script.Bindings bindings
        end local 1 // javax.script.ScriptEngine engine
        end local 0 // com.oracle.truffle.js.scriptengine.test.TestBindings this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   10     0            this  Lcom/oracle/truffle/js/scriptengine/test/TestBindings;
            1   10     1          engine  Ljavax/script/ScriptEngine;
            2   10     2        bindings  Ljavax/script/Bindings;
            4   10     3  globalBindings  Ljavax/script/Bindings;
            6   10     4          result  Z
    Exceptions:
      throws javax.script.ScriptException
    RuntimeVisibleAnnotations: 
      org.junit.Test()

  public void testJSMapInScope();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=1
        start local 0 // com.oracle.truffle.js.scriptengine.test.TestBindings this
         0: .line 317
            aload 0 /* this */
            invokevirtual com.oracle.truffle.js.scriptengine.test.TestBindings.getEngine:()Ljavax/script/ScriptEngine;
            astore 1 /* engine */
        start local 1 // javax.script.ScriptEngine engine
         1: .line 318
            aload 1 /* engine */
            sipush 200
            invokeinterface javax.script.ScriptEngine.getBindings:(I)Ljavax/script/Bindings;
            astore 2 /* global */
        start local 2 // javax.script.Bindings global
         2: .line 319
            aload 1 /* engine */
            ldc "jsObj = {a: 1}"
            aload 2 /* global */
            invokeinterface javax.script.ScriptEngine.eval:(Ljava/lang/String;Ljavax/script/Bindings;)Ljava/lang/Object;
            pop
         3: .line 320
            aload 1 /* engine */
            ldc "JSON.stringify(jsObj)"
            aload 2 /* global */
            invokeinterface javax.script.ScriptEngine.eval:(Ljava/lang/String;Ljavax/script/Bindings;)Ljava/lang/Object;
            astore 3 /* globalResult */
        start local 3 // java.lang.Object globalResult
         4: .line 321
            aload 3 /* globalResult */
            invokestatic org.junit.Assert.assertNotNull:(Ljava/lang/Object;)V
         5: .line 322
            return
        end local 3 // java.lang.Object globalResult
        end local 2 // javax.script.Bindings global
        end local 1 // javax.script.ScriptEngine engine
        end local 0 // com.oracle.truffle.js.scriptengine.test.TestBindings this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    6     0          this  Lcom/oracle/truffle/js/scriptengine/test/TestBindings;
            1    6     1        engine  Ljavax/script/ScriptEngine;
            2    6     2        global  Ljavax/script/Bindings;
            4    6     3  globalResult  Ljava/lang/Object;
    Exceptions:
      throws javax.script.ScriptException
    RuntimeVisibleAnnotations: 
      org.junit.Test()

  public void testNoHostAccessByDefault();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=1
        start local 0 // com.oracle.truffle.js.scriptengine.test.TestBindings this
         0: .line 327
            ldc "polyglot.js.nashorn-compat"
            invokestatic java.lang.Boolean.getBoolean:(Ljava/lang/String;)Z
            invokestatic org.junit.Assume.assumeFalse:(Z)V
         1: .line 328
            aload 0 /* this */
            invokevirtual com.oracle.truffle.js.scriptengine.test.TestBindings.getEngine:()Ljavax/script/ScriptEngine;
            astore 1 /* engine */
        start local 1 // javax.script.ScriptEngine engine
         2: .line 329
            aload 1 /* engine */
            bipush 100
            invokeinterface javax.script.ScriptEngine.getBindings:(I)Ljavax/script/Bindings;
            astore 2 /* bindings */
        start local 2 // javax.script.Bindings bindings
         3: .line 330
            aload 2 /* bindings */
            ldc "javaObj"
            new java.lang.Object
            dup
            invokespecial java.lang.Object.<init>:()V
            invokeinterface javax.script.Bindings.put:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         4: .line 332
            aload 1 /* engine */
            ldc "(javaObj instanceof Java.type('java.lang.Object'));"
            invokeinterface javax.script.ScriptEngine.eval:(Ljava/lang/String;)Ljava/lang/Object;
            pop
         5: .line 333
            invokestatic org.junit.Assert.fail:()V
         6: .line 334
            return
        end local 2 // javax.script.Bindings bindings
        end local 1 // javax.script.ScriptEngine engine
        end local 0 // com.oracle.truffle.js.scriptengine.test.TestBindings this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    7     0      this  Lcom/oracle/truffle/js/scriptengine/test/TestBindings;
            2    7     1    engine  Ljavax/script/ScriptEngine;
            3    7     2  bindings  Ljavax/script/Bindings;
    Exceptions:
      throws javax.script.ScriptException
    RuntimeVisibleAnnotations: 
      org.junit.Test(expected = Ljavax/script/ScriptException;)

  public void testSetContextOptionsViaGraalJSBindings();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=1
        start local 0 // com.oracle.truffle.js.scriptengine.test.TestBindings this
         0: .line 338
            aload 0 /* this */
            invokevirtual com.oracle.truffle.js.scriptengine.test.TestBindings.getEngine:()Ljavax/script/ScriptEngine;
            astore 1 /* engine */
        start local 1 // javax.script.ScriptEngine engine
         1: .line 339
            aload 1 /* engine */
            bipush 100
            invokeinterface javax.script.ScriptEngine.getBindings:(I)Ljavax/script/Bindings;
            astore 2 /* bindings */
        start local 2 // javax.script.Bindings bindings
         2: .line 340
            aload 2 /* bindings */
            ldc "polyglot.js.allowHostAccess"
            iconst_1
            invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
            invokeinterface javax.script.Bindings.put:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         3: .line 341
            aload 2 /* bindings */
            ldc "polyglot.js.allowHostClassLookup"
            iconst_1
            invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
            invokeinterface javax.script.Bindings.put:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         4: .line 342
            aload 2 /* bindings */
            ldc "javaObj"
            new java.lang.Object
            dup
            invokespecial java.lang.Object.<init>:()V
            invokeinterface javax.script.Bindings.put:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         5: .line 343
            aload 1 /* engine */
            ldc "(javaObj instanceof Java.type('java.lang.Object'));"
            invokeinterface javax.script.ScriptEngine.eval:(Ljava/lang/String;)Ljava/lang/Object;
            checkcast java.lang.Boolean
            invokevirtual java.lang.Boolean.booleanValue:()Z
            invokestatic org.junit.Assert.assertTrue:(Z)V
         6: .line 344
            return
        end local 2 // javax.script.Bindings bindings
        end local 1 // javax.script.ScriptEngine engine
        end local 0 // com.oracle.truffle.js.scriptengine.test.TestBindings this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    7     0      this  Lcom/oracle/truffle/js/scriptengine/test/TestBindings;
            1    7     1    engine  Ljavax/script/ScriptEngine;
            2    7     2  bindings  Ljavax/script/Bindings;
    Exceptions:
      throws javax.script.ScriptException
    RuntimeVisibleAnnotations: 
      org.junit.Test()

  public void testSetContextOptionsViaGraalJSBindings2();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=1
        start local 0 // com.oracle.truffle.js.scriptengine.test.TestBindings this
         0: .line 348
            aload 0 /* this */
            invokevirtual com.oracle.truffle.js.scriptengine.test.TestBindings.getEngine:()Ljavax/script/ScriptEngine;
            astore 1 /* engine */
        start local 1 // javax.script.ScriptEngine engine
         1: .line 349
            aload 1 /* engine */
            bipush 100
            invokeinterface javax.script.ScriptEngine.getBindings:(I)Ljavax/script/Bindings;
            astore 2 /* bindings */
        start local 2 // javax.script.Bindings bindings
         2: .line 350
            aload 2 /* bindings */
            ldc "polyglot.js.allowHostAccess"
            iconst_1
            invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
            invokeinterface javax.script.Bindings.put:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         3: .line 351
            aload 2 /* bindings */
            ldc "polyglot.js.allowHostClassLookup"
            invokedynamic test()Ljava/util/function/Predicate;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Z
                  com/oracle/truffle/js/scriptengine/test/TestBindings.lambda$0(Ljava/lang/String;)Z (6)
                  (Ljava/lang/String;)Z
            invokeinterface javax.script.Bindings.put:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         4: .line 352
            aload 2 /* bindings */
            ldc "javaObj"
            new java.lang.Object
            dup
            invokespecial java.lang.Object.<init>:()V
            invokeinterface javax.script.Bindings.put:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         5: .line 353
            aload 1 /* engine */
            ldc "(javaObj instanceof Java.type('java.lang.Object'));"
            invokeinterface javax.script.ScriptEngine.eval:(Ljava/lang/String;)Ljava/lang/Object;
            checkcast java.lang.Boolean
            invokevirtual java.lang.Boolean.booleanValue:()Z
            invokestatic org.junit.Assert.assertTrue:(Z)V
         6: .line 354
            return
        end local 2 // javax.script.Bindings bindings
        end local 1 // javax.script.ScriptEngine engine
        end local 0 // com.oracle.truffle.js.scriptengine.test.TestBindings this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    7     0      this  Lcom/oracle/truffle/js/scriptengine/test/TestBindings;
            1    7     1    engine  Ljavax/script/ScriptEngine;
            2    7     2  bindings  Ljavax/script/Bindings;
    Exceptions:
      throws javax.script.ScriptException
    RuntimeVisibleAnnotations: 
      org.junit.Test()

  public void testTrySetContextOptionsAfterInitViaGraalJSBindings1();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=1
        start local 0 // com.oracle.truffle.js.scriptengine.test.TestBindings this
         0: .line 358
            aload 0 /* this */
            invokevirtual com.oracle.truffle.js.scriptengine.test.TestBindings.getEngine:()Ljavax/script/ScriptEngine;
            astore 1 /* engine */
        start local 1 // javax.script.ScriptEngine engine
         1: .line 360
            aload 1 /* engine */
            ldc "dummy = 42;"
            invokeinterface javax.script.ScriptEngine.eval:(Ljava/lang/String;)Ljava/lang/Object;
            pop
         2: .line 361
            aload 1 /* engine */
            bipush 100
            invokeinterface javax.script.ScriptEngine.getBindings:(I)Ljavax/script/Bindings;
            astore 2 /* bindings */
        start local 2 // javax.script.Bindings bindings
         3: .line 363
            aload 2 /* bindings */
            ldc "polyglot.js.allowHostAccess"
            iconst_1
            invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
            invokeinterface javax.script.Bindings.put:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         4: .line 364
            invokestatic org.junit.Assert.fail:()V
         5: .line 365
            return
        end local 2 // javax.script.Bindings bindings
        end local 1 // javax.script.ScriptEngine engine
        end local 0 // com.oracle.truffle.js.scriptengine.test.TestBindings this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    6     0      this  Lcom/oracle/truffle/js/scriptengine/test/TestBindings;
            1    6     1    engine  Ljavax/script/ScriptEngine;
            3    6     2  bindings  Ljavax/script/Bindings;
    Exceptions:
      throws javax.script.ScriptException
    RuntimeVisibleAnnotations: 
      org.junit.Test(expected = Ljava/lang/IllegalStateException;)

  public void testTrySetContextOptionsAfterInitViaGraalJSBindings2();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=1
        start local 0 // com.oracle.truffle.js.scriptengine.test.TestBindings this
         0: .line 369
            aload 0 /* this */
            invokevirtual com.oracle.truffle.js.scriptengine.test.TestBindings.getEngine:()Ljavax/script/ScriptEngine;
            astore 1 /* engine */
        start local 1 // javax.script.ScriptEngine engine
         1: .line 370
            aload 1 /* engine */
            bipush 100
            invokeinterface javax.script.ScriptEngine.getBindings:(I)Ljavax/script/Bindings;
            astore 2 /* bindings */
        start local 2 // javax.script.Bindings bindings
         2: .line 372
            aload 2 /* bindings */
            ldc "javaObj"
            new java.lang.Object
            dup
            invokespecial java.lang.Object.<init>:()V
            invokeinterface javax.script.Bindings.put:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         3: .line 374
            aload 2 /* bindings */
            ldc "polyglot.js.allowHostAccess"
            iconst_1
            invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
            invokeinterface javax.script.Bindings.put:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         4: .line 375
            invokestatic org.junit.Assert.fail:()V
         5: .line 376
            return
        end local 2 // javax.script.Bindings bindings
        end local 1 // javax.script.ScriptEngine engine
        end local 0 // com.oracle.truffle.js.scriptengine.test.TestBindings this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    6     0      this  Lcom/oracle/truffle/js/scriptengine/test/TestBindings;
            1    6     1    engine  Ljavax/script/ScriptEngine;
            2    6     2  bindings  Ljavax/script/Bindings;
    RuntimeVisibleAnnotations: 
      org.junit.Test(expected = Ljava/lang/IllegalStateException;)

  public void testSetContextOptionsViaSimpleBindings();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=1
        start local 0 // com.oracle.truffle.js.scriptengine.test.TestBindings this
         0: .line 380
            aload 0 /* this */
            invokevirtual com.oracle.truffle.js.scriptengine.test.TestBindings.getEngine:()Ljavax/script/ScriptEngine;
            astore 1 /* engine */
        start local 1 // javax.script.ScriptEngine engine
         1: .line 381
            new javax.script.SimpleBindings
            dup
            invokespecial javax.script.SimpleBindings.<init>:()V
            astore 2 /* bindings */
        start local 2 // javax.script.Bindings bindings
         2: .line 382
            aload 2 /* bindings */
            ldc "polyglot.js.allowHostAccess"
            iconst_1
            invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
            invokeinterface javax.script.Bindings.put:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         3: .line 383
            aload 2 /* bindings */
            ldc "polyglot.js.allowHostClassLookup"
            iconst_1
            invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
            invokeinterface javax.script.Bindings.put:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         4: .line 384
            aload 2 /* bindings */
            ldc "javaObj"
            new java.lang.Object
            dup
            invokespecial java.lang.Object.<init>:()V
            invokeinterface javax.script.Bindings.put:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         5: .line 385
            aload 1 /* engine */
            ldc "(javaObj instanceof Java.type('java.lang.Object'));"
            aload 2 /* bindings */
            invokeinterface javax.script.ScriptEngine.eval:(Ljava/lang/String;Ljavax/script/Bindings;)Ljava/lang/Object;
            checkcast java.lang.Boolean
            invokevirtual java.lang.Boolean.booleanValue:()Z
            invokestatic org.junit.Assert.assertTrue:(Z)V
         6: .line 386
            return
        end local 2 // javax.script.Bindings bindings
        end local 1 // javax.script.ScriptEngine engine
        end local 0 // com.oracle.truffle.js.scriptengine.test.TestBindings this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    7     0      this  Lcom/oracle/truffle/js/scriptengine/test/TestBindings;
            1    7     1    engine  Ljavax/script/ScriptEngine;
            2    7     2  bindings  Ljavax/script/Bindings;
    Exceptions:
      throws javax.script.ScriptException
    RuntimeVisibleAnnotations: 
      org.junit.Test()

  public void testTrySetContextOptionsAfterInitViaSimpleBindings();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=1
        start local 0 // com.oracle.truffle.js.scriptengine.test.TestBindings this
         0: .line 390
            aload 0 /* this */
            invokevirtual com.oracle.truffle.js.scriptengine.test.TestBindings.getEngine:()Ljavax/script/ScriptEngine;
            astore 1 /* engine */
        start local 1 // javax.script.ScriptEngine engine
         1: .line 391
            new javax.script.SimpleBindings
            dup
            invokespecial javax.script.SimpleBindings.<init>:()V
            astore 2 /* bindings */
        start local 2 // javax.script.Bindings bindings
         2: .line 393
            aload 1 /* engine */
            ldc "dummy = 42;"
            aload 2 /* bindings */
            invokeinterface javax.script.ScriptEngine.eval:(Ljava/lang/String;Ljavax/script/Bindings;)Ljava/lang/Object;
            pop
         3: .line 394
            aload 2 /* bindings */
            ldc "polyglot.js.allowHostAccess"
            iconst_1
            invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
            invokeinterface javax.script.Bindings.put:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         4: .line 395
            aload 2 /* bindings */
            ldc "polyglot.js.allowHostClassLookup"
            iconst_1
            invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
            invokeinterface javax.script.Bindings.put:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         5: .line 397
            aload 1 /* engine */
            ldc "(javaObj instanceof Java.type('java.lang.Object'));"
            aload 2 /* bindings */
            invokeinterface javax.script.ScriptEngine.eval:(Ljava/lang/String;Ljavax/script/Bindings;)Ljava/lang/Object;
            pop
         6: .line 398
            invokestatic org.junit.Assert.fail:()V
         7: .line 399
            return
        end local 2 // javax.script.Bindings bindings
        end local 1 // javax.script.ScriptEngine engine
        end local 0 // com.oracle.truffle.js.scriptengine.test.TestBindings this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    8     0      this  Lcom/oracle/truffle/js/scriptengine/test/TestBindings;
            1    8     1    engine  Ljavax/script/ScriptEngine;
            2    8     2  bindings  Ljavax/script/Bindings;
    Exceptions:
      throws javax.script.ScriptException
    RuntimeVisibleAnnotations: 
      org.junit.Test(expected = Ljava/lang/IllegalStateException;)

  public void testSetContextBuilder();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=1
        start local 0 // com.oracle.truffle.js.scriptengine.test.TestBindings this
         0: .line 403
            aconst_null
            iconst_0
            anewarray java.lang.String
            invokestatic com.oracle.truffle.js.scriptengine.test.TestUtil.newContextBuilder:([Ljava/lang/String;)Lorg/graalvm/polyglot/Context$Builder;
            getstatic org.graalvm.polyglot.HostAccess.ALL:Lorg/graalvm/polyglot/HostAccess;
            invokevirtual org.graalvm.polyglot.Context$Builder.allowHostAccess:(Lorg/graalvm/polyglot/HostAccess;)Lorg/graalvm/polyglot/Context$Builder;
            invokedynamic test()Ljava/util/function/Predicate;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Z
                  com/oracle/truffle/js/scriptengine/test/TestBindings.lambda$1(Ljava/lang/String;)Z (6)
                  (Ljava/lang/String;)Z
            invokevirtual org.graalvm.polyglot.Context$Builder.allowHostClassLookup:(Ljava/util/function/Predicate;)Lorg/graalvm/polyglot/Context$Builder;
            invokestatic com.oracle.truffle.js.scriptengine.GraalJSScriptEngine.create:(Lorg/graalvm/polyglot/Engine;Lorg/graalvm/polyglot/Context$Builder;)Lcom/oracle/truffle/js/scriptengine/GraalJSScriptEngine;
            astore 1 /* engine */
        start local 1 // javax.script.ScriptEngine engine
         1: .line 404
            aload 1 /* engine */
            ldc "javaObj"
            new java.lang.Object
            dup
            invokespecial java.lang.Object.<init>:()V
            invokeinterface javax.script.ScriptEngine.put:(Ljava/lang/String;Ljava/lang/Object;)V
         2: .line 405
            aload 1 /* engine */
            ldc "(javaObj instanceof Java.type('java.lang.Object'));"
            invokeinterface javax.script.ScriptEngine.eval:(Ljava/lang/String;)Ljava/lang/Object;
            checkcast java.lang.Boolean
            invokevirtual java.lang.Boolean.booleanValue:()Z
            invokestatic org.junit.Assert.assertTrue:(Z)V
         3: .line 406
            return
        end local 1 // javax.script.ScriptEngine engine
        end local 0 // com.oracle.truffle.js.scriptengine.test.TestBindings this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    4     0    this  Lcom/oracle/truffle/js/scriptengine/test/TestBindings;
            1    4     1  engine  Ljavax/script/ScriptEngine;
    Exceptions:
      throws javax.script.ScriptException
    RuntimeVisibleAnnotations: 
      org.junit.Test()

  public void testEnableNashornCompat();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=1
        start local 0 // com.oracle.truffle.js.scriptengine.test.TestBindings this
         0: .line 410
            aload 0 /* this */
            invokevirtual com.oracle.truffle.js.scriptengine.test.TestBindings.getEngine:()Ljavax/script/ScriptEngine;
            astore 1 /* engine */
        start local 1 // javax.script.ScriptEngine engine
         1: .line 411
            aload 1 /* engine */
            bipush 100
            invokeinterface javax.script.ScriptEngine.getBindings:(I)Ljavax/script/Bindings;
            astore 2 /* bindings */
        start local 2 // javax.script.Bindings bindings
         2: .line 412
            aload 2 /* bindings */
            ldc "polyglot.js.nashorn-compat"
            iconst_1
            invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
            invokeinterface javax.script.Bindings.put:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         3: .line 413
            aload 2 /* bindings */
            ldc "javaObj"
            new java.lang.Object
            dup
            invokespecial java.lang.Object.<init>:()V
            invokeinterface javax.script.Bindings.put:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         4: .line 415
            aload 1 /* engine */
            ldc "(javaObj instanceof Java.type('java.lang.Object'));"
            aload 2 /* bindings */
            invokeinterface javax.script.ScriptEngine.eval:(Ljava/lang/String;Ljavax/script/Bindings;)Ljava/lang/Object;
            checkcast java.lang.Boolean
            invokevirtual java.lang.Boolean.booleanValue:()Z
            invokestatic org.junit.Assert.assertTrue:(Z)V
         5: .line 417
            aload 1 /* engine */
            ldc "JavaImporter"
            invokeinterface javax.script.ScriptEngine.eval:(Ljava/lang/String;)Ljava/lang/Object;
            pop
         6: .line 418
            return
        end local 2 // javax.script.Bindings bindings
        end local 1 // javax.script.ScriptEngine engine
        end local 0 // com.oracle.truffle.js.scriptengine.test.TestBindings this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    7     0      this  Lcom/oracle/truffle/js/scriptengine/test/TestBindings;
            1    7     1    engine  Ljavax/script/ScriptEngine;
            2    7     2  bindings  Ljavax/script/Bindings;
    Exceptions:
      throws javax.script.ScriptException
    RuntimeVisibleAnnotations: 
      org.junit.Test()

  public void globalPutEngineGet();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=1
        start local 0 // com.oracle.truffle.js.scriptengine.test.TestBindings this
         0: .line 422
            aload 0 /* this */
            invokevirtual com.oracle.truffle.js.scriptengine.test.TestBindings.getEngine:()Ljavax/script/ScriptEngine;
            astore 1 /* engine */
        start local 1 // javax.script.ScriptEngine engine
         1: .line 423
            aload 1 /* engine */
            sipush 200
            invokeinterface javax.script.ScriptEngine.getBindings:(I)Ljavax/script/Bindings;
            astore 2 /* globalBindings */
        start local 2 // javax.script.Bindings globalBindings
         2: .line 424
            aload 1 /* engine */
            bipush 100
            invokeinterface javax.script.ScriptEngine.getBindings:(I)Ljavax/script/Bindings;
            astore 3 /* engineBindings */
        start local 3 // javax.script.Bindings engineBindings
         3: .line 425
            aload 2 /* globalBindings */
            ldc "foo"
            ldc "bar"
            invokeinterface javax.script.Bindings.put:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         4: .line 426
            ldc "bar"
            aload 3 /* engineBindings */
            ldc "foo"
            invokeinterface javax.script.Bindings.get:(Ljava/lang/Object;)Ljava/lang/Object;
            invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
         5: .line 427
            return
        end local 3 // javax.script.Bindings engineBindings
        end local 2 // javax.script.Bindings globalBindings
        end local 1 // javax.script.ScriptEngine engine
        end local 0 // com.oracle.truffle.js.scriptengine.test.TestBindings this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    6     0            this  Lcom/oracle/truffle/js/scriptengine/test/TestBindings;
            1    6     1          engine  Ljavax/script/ScriptEngine;
            2    6     2  globalBindings  Ljavax/script/Bindings;
            3    6     3  engineBindings  Ljavax/script/Bindings;
    RuntimeVisibleAnnotations: 
      org.junit.Test()

  private static boolean lambda$0(java.lang.String);
    descriptor: (Ljava/lang/String;)Z
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.lang.String s
         0: .line 351
            iconst_1
            ireturn
        end local 0 // java.lang.String s
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0     s  Ljava/lang/String;

  private static boolean lambda$1(java.lang.String);
    descriptor: (Ljava/lang/String;)Z
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.lang.String s
         0: .line 403
            iconst_1
            ireturn
        end local 0 // java.lang.String s
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0     s  Ljava/lang/String;
}
SourceFile: "TestBindings.java"
InnerClasses:
  public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
  public final Builder = org.graalvm.polyglot.Context$Builder of org.graalvm.polyglot.Context