public final class jdk.nashorn.internal.codegen.SpillObjectCreator extends jdk.nashorn.internal.codegen.ObjectCreator<jdk.nashorn.internal.ir.Expression>
  minor version: 0
  major version: 59
  flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
  this_class: jdk.nashorn.internal.codegen.SpillObjectCreator
  super_class: jdk.nashorn.internal.codegen.ObjectCreator
{
  static final boolean $assertionsDisabled;
    descriptor: Z
    flags: (0x1018) ACC_STATIC, ACC_FINAL, ACC_SYNTHETIC

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 50
            ldc Ljdk/nashorn/internal/codegen/SpillObjectCreator;
            invokevirtual java.lang.Class.desiredAssertionStatus:()Z
            ifne 1
            iconst_1
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_0
      StackMap locals:
      StackMap stack: int
         2: putstatic jdk.nashorn.internal.codegen.SpillObjectCreator.$assertionsDisabled:Z
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  void <init>(jdk.nashorn.internal.codegen.CodeGenerator, java.util.List<jdk.nashorn.internal.codegen.MapTuple<jdk.nashorn.internal.ir.Expression>>);
    descriptor: (Ljdk/nashorn/internal/codegen/CodeGenerator;Ljava/util/List;)V
    flags: (0x0000) 
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // jdk.nashorn.internal.codegen.SpillObjectCreator this
        start local 1 // jdk.nashorn.internal.codegen.CodeGenerator codegen
        start local 2 // java.util.List tuples
         0: .line 59
            aload 0 /* this */
            aload 1 /* codegen */
            aload 2 /* tuples */
            iconst_0
            iconst_0
            invokespecial jdk.nashorn.internal.codegen.ObjectCreator.<init>:(Ljdk/nashorn/internal/codegen/CodeGenerator;Ljava/util/List;ZZ)V
         1: .line 60
            aload 0 /* this */
            invokevirtual jdk.nashorn.internal.codegen.SpillObjectCreator.makeMap:()Ljdk/nashorn/internal/runtime/PropertyMap;
            pop
         2: .line 61
            return
        end local 2 // java.util.List tuples
        end local 1 // jdk.nashorn.internal.codegen.CodeGenerator codegen
        end local 0 // jdk.nashorn.internal.codegen.SpillObjectCreator this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    3     0     this  Ljdk/nashorn/internal/codegen/SpillObjectCreator;
            0    3     1  codegen  Ljdk/nashorn/internal/codegen/CodeGenerator;
            0    3     2   tuples  Ljava/util/List<Ljdk/nashorn/internal/codegen/MapTuple<Ljdk/nashorn/internal/ir/Expression;>;>;
    Signature: (Ljdk/nashorn/internal/codegen/CodeGenerator;Ljava/util/List<Ljdk/nashorn/internal/codegen/MapTuple<Ljdk/nashorn/internal/ir/Expression;>;>;)V
    MethodParameters:
         Name  Flags
      codegen  final
      tuples   final

  public void createObject(jdk.nashorn.internal.codegen.MethodEmitter);
    descriptor: (Ljdk/nashorn/internal/codegen/MethodEmitter;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=8, locals=20, args_size=2
        start local 0 // jdk.nashorn.internal.codegen.SpillObjectCreator this
        start local 1 // jdk.nashorn.internal.codegen.MethodEmitter method
         0: .line 65
            getstatic jdk.nashorn.internal.codegen.SpillObjectCreator.$assertionsDisabled:Z
            ifne 1
            aload 0 /* this */
            invokevirtual jdk.nashorn.internal.codegen.SpillObjectCreator.isScope:()Z
            ifeq 1
            new java.lang.AssertionError
            dup
            ldc "spill scope objects are not currently supported"
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
         1: .line 67
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield jdk.nashorn.internal.codegen.SpillObjectCreator.tuples:Ljava/util/List;
            invokeinterface java.util.List.size:()I
            istore 2 /* length */
        start local 2 // int length
         2: .line 68
            aload 0 /* this */
            getfield jdk.nashorn.internal.codegen.SpillObjectCreator.codegen:Ljdk/nashorn/internal/codegen/CodeGenerator;
            invokevirtual jdk.nashorn.internal.codegen.CodeGenerator.useDualFields:()Z
            istore 3 /* dualFields */
        start local 3 // boolean dualFields
         3: .line 69
            iload 2 /* length */
            invokestatic jdk.nashorn.internal.runtime.ScriptObject.spillAllocationLength:(I)I
            istore 4 /* spillLength */
        start local 4 // int spillLength
         4: .line 70
            iload 3 /* dualFields */
            ifeq 5
            iload 4 /* spillLength */
            newarray 11
            goto 6
      StackMap locals: int int int
      StackMap stack:
         5: aconst_null
      StackMap locals:
      StackMap stack: long[]
         6: astore 5 /* jpresetValues */
        start local 5 // long[] jpresetValues
         7: .line 71
            iload 4 /* spillLength */
            anewarray java.lang.Object
            astore 6 /* opresetValues */
        start local 6 // java.lang.Object[] opresetValues
         8: .line 72
            aload 0 /* this */
            invokevirtual jdk.nashorn.internal.codegen.SpillObjectCreator.getAllocatorClass:()Ljava/lang/Class;
            astore 7 /* objectClass */
        start local 7 // java.lang.Class objectClass
         9: .line 73
            getstatic jdk.nashorn.internal.runtime.ScriptRuntime.EMPTY_ARRAY:[Ljava/lang/Object;
            invokestatic jdk.nashorn.internal.runtime.arrays.ArrayData.allocate:([Ljava/lang/Object;)Ljdk/nashorn/internal/runtime/arrays/ArrayData;
            astore 8 /* arrayData */
        start local 8 // jdk.nashorn.internal.runtime.arrays.ArrayData arrayData
        10: .line 77
            aload 0 /* this */
            getfield jdk.nashorn.internal.codegen.SpillObjectCreator.tuples:Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 10
            goto 44
      StackMap locals: jdk.nashorn.internal.codegen.SpillObjectCreator jdk.nashorn.internal.codegen.MethodEmitter int int int long[] java.lang.Object[] java.lang.Class jdk.nashorn.internal.runtime.arrays.ArrayData top java.util.Iterator
      StackMap stack:
        11: aload 10
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast jdk.nashorn.internal.codegen.MapTuple
            astore 9 /* tuple */
        start local 9 // jdk.nashorn.internal.codegen.MapTuple tuple
        12: .line 78
            aload 9 /* tuple */
            getfield jdk.nashorn.internal.codegen.MapTuple.key:Ljava/lang/String;
            astore 11 /* key */
        start local 11 // java.lang.String key
        13: .line 79
            aload 9 /* tuple */
            getfield jdk.nashorn.internal.codegen.MapTuple.value:Ljava/lang/Object;
            checkcast jdk.nashorn.internal.ir.Expression
            astore 12 /* value */
        start local 12 // jdk.nashorn.internal.ir.Expression value
        14: .line 82
            aload 1 /* method */
            aload 9 /* tuple */
            getfield jdk.nashorn.internal.codegen.MapTuple.key:Ljava/lang/String;
            invokevirtual jdk.nashorn.internal.codegen.MethodEmitter.invalidateSpecialName:(Ljava/lang/String;)Ljdk/nashorn/internal/codegen/MethodEmitter;
            pop
        15: .line 84
            aload 12 /* value */
            ifnull 44
        16: .line 85
            aload 12 /* value */
            invokestatic jdk.nashorn.internal.ir.LiteralNode.objectAsConstant:(Ljava/lang/Object;)Ljava/lang/Object;
            astore 13 /* constantValue */
        start local 13 // java.lang.Object constantValue
        17: .line 86
            aload 13 /* constantValue */
            getstatic jdk.nashorn.internal.ir.LiteralNode.POSTSET_MARKER:Ljava/lang/Object;
            if_acmpeq 44
        18: .line 87
            aload 0 /* this */
            getfield jdk.nashorn.internal.codegen.SpillObjectCreator.propertyMap:Ljdk/nashorn/internal/runtime/PropertyMap;
            aload 11 /* key */
            invokevirtual jdk.nashorn.internal.runtime.PropertyMap.findProperty:(Ljava/lang/Object;)Ljdk/nashorn/internal/runtime/Property;
            astore 14 /* property */
        start local 14 // jdk.nashorn.internal.runtime.Property property
        19: .line 88
            aload 14 /* property */
            ifnull 29
        20: .line 90
            aload 14 /* property */
            iload 3 /* dualFields */
            ifeq 21
            aload 13 /* constantValue */
            invokestatic jdk.nashorn.internal.runtime.JSType.unboxedFieldType:(Ljava/lang/Object;)Ljava/lang/Class;
            goto 22
      StackMap locals: jdk.nashorn.internal.codegen.SpillObjectCreator jdk.nashorn.internal.codegen.MethodEmitter int int int long[] java.lang.Object[] java.lang.Class jdk.nashorn.internal.runtime.arrays.ArrayData jdk.nashorn.internal.codegen.MapTuple java.util.Iterator java.lang.String jdk.nashorn.internal.ir.Expression java.lang.Object jdk.nashorn.internal.runtime.Property
      StackMap stack: jdk.nashorn.internal.runtime.Property
        21: ldc Ljava/lang/Object;
      StackMap locals: jdk.nashorn.internal.codegen.SpillObjectCreator jdk.nashorn.internal.codegen.MethodEmitter int int int long[] java.lang.Object[] java.lang.Class jdk.nashorn.internal.runtime.arrays.ArrayData jdk.nashorn.internal.codegen.MapTuple java.util.Iterator java.lang.String jdk.nashorn.internal.ir.Expression java.lang.Object jdk.nashorn.internal.runtime.Property
      StackMap stack: jdk.nashorn.internal.runtime.Property java.lang.Class
        22: invokevirtual jdk.nashorn.internal.runtime.Property.setType:(Ljava/lang/Class;)V
        23: .line 91
            aload 14 /* property */
            invokevirtual jdk.nashorn.internal.runtime.Property.getSlot:()I
            istore 15 /* slot */
        start local 15 // int slot
        24: .line 92
            iload 3 /* dualFields */
            ifeq 27
            aload 13 /* constantValue */
            instanceof java.lang.Number
            ifeq 27
        25: .line 93
            aload 5 /* jpresetValues */
            iload 15 /* slot */
            aload 13 /* constantValue */
            checkcast java.lang.Number
            invokestatic jdk.nashorn.internal.codegen.ObjectClassGenerator.pack:(Ljava/lang/Number;)J
            lastore
        26: .line 94
            goto 44
        27: .line 95
      StackMap locals: int
      StackMap stack:
            aload 6 /* opresetValues */
            iload 15 /* slot */
            aload 13 /* constantValue */
            aastore
        end local 15 // int slot
        28: .line 97
            goto 44
        29: .line 99
      StackMap locals:
      StackMap stack:
            aload 8 /* arrayData */
            invokevirtual jdk.nashorn.internal.runtime.arrays.ArrayData.length:()J
            lstore 15 /* oldLength */
        start local 15 // long oldLength
        30: .line 100
            aload 11 /* key */
            invokestatic jdk.nashorn.internal.runtime.arrays.ArrayIndex.getArrayIndex:(Ljava/lang/String;)I
            istore 17 /* index */
        start local 17 // int index
        31: .line 101
            iload 17 /* index */
            invokestatic jdk.nashorn.internal.runtime.arrays.ArrayIndex.toLongIndex:(I)J
            lstore 18 /* longIndex */
        start local 18 // long longIndex
        32: .line 103
            getstatic jdk.nashorn.internal.codegen.SpillObjectCreator.$assertionsDisabled:Z
            ifne 33
            iload 17 /* index */
            invokestatic jdk.nashorn.internal.runtime.arrays.ArrayIndex.isValidArrayIndex:(I)Z
            ifne 33
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        33: .line 105
      StackMap locals: long int long
      StackMap stack:
            lload 18 /* longIndex */
            lload 15 /* oldLength */
            lcmp
            iflt 35
        34: .line 106
            aload 8 /* arrayData */
            lload 18 /* longIndex */
            invokevirtual jdk.nashorn.internal.runtime.arrays.ArrayData.ensure:(J)Ljdk/nashorn/internal/runtime/arrays/ArrayData;
            astore 8 /* arrayData */
        35: .line 110
      StackMap locals:
      StackMap stack:
            aload 13 /* constantValue */
            instanceof java.lang.Integer
            ifeq 38
        36: .line 111
            aload 8 /* arrayData */
            iload 17 /* index */
            aload 13 /* constantValue */
            checkcast java.lang.Integer
            invokevirtual java.lang.Integer.intValue:()I
            iconst_0
            invokevirtual jdk.nashorn.internal.runtime.arrays.ArrayData.set:(IIZ)Ljdk/nashorn/internal/runtime/arrays/ArrayData;
            astore 8 /* arrayData */
        37: .line 112
            goto 42
      StackMap locals:
      StackMap stack:
        38: aload 13 /* constantValue */
            instanceof java.lang.Double
            ifeq 41
        39: .line 113
            aload 8 /* arrayData */
            iload 17 /* index */
            aload 13 /* constantValue */
            checkcast java.lang.Double
            invokevirtual java.lang.Double.doubleValue:()D
            iconst_0
            invokevirtual jdk.nashorn.internal.runtime.arrays.ArrayData.set:(IDZ)Ljdk/nashorn/internal/runtime/arrays/ArrayData;
            astore 8 /* arrayData */
        40: .line 114
            goto 42
        41: .line 115
      StackMap locals:
      StackMap stack:
            aload 8 /* arrayData */
            iload 17 /* index */
            aload 13 /* constantValue */
            iconst_0
            invokevirtual jdk.nashorn.internal.runtime.arrays.ArrayData.set:(ILjava/lang/Object;Z)Ljdk/nashorn/internal/runtime/arrays/ArrayData;
            astore 8 /* arrayData */
        42: .line 118
      StackMap locals:
      StackMap stack:
            lload 18 /* longIndex */
            lload 15 /* oldLength */
            lcmp
            ifle 44
        43: .line 119
            aload 8 /* arrayData */
            lload 15 /* oldLength */
            lload 18 /* longIndex */
            lconst_1
            lsub
            invokevirtual jdk.nashorn.internal.runtime.arrays.ArrayData.delete:(JJ)Ljdk/nashorn/internal/runtime/arrays/ArrayData;
            astore 8 /* arrayData */
        end local 18 // long longIndex
        end local 17 // int index
        end local 15 // long oldLength
        end local 14 // jdk.nashorn.internal.runtime.Property property
        end local 13 // java.lang.Object constantValue
        end local 12 // jdk.nashorn.internal.ir.Expression value
        end local 11 // java.lang.String key
        end local 9 // jdk.nashorn.internal.codegen.MapTuple tuple
        44: .line 77
      StackMap locals: jdk.nashorn.internal.codegen.SpillObjectCreator jdk.nashorn.internal.codegen.MethodEmitter int int int long[] java.lang.Object[] java.lang.Class jdk.nashorn.internal.runtime.arrays.ArrayData top java.util.Iterator
      StackMap stack:
            aload 10
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 11
        45: .line 128
            aload 1 /* method */
            aload 7 /* objectClass */
            invokevirtual jdk.nashorn.internal.codegen.MethodEmitter._new:(Ljava/lang/Class;)Ljdk/nashorn/internal/codegen/MethodEmitter;
            invokevirtual jdk.nashorn.internal.codegen.MethodEmitter.dup:()Ljdk/nashorn/internal/codegen/MethodEmitter;
            pop
        46: .line 129
            aload 0 /* this */
            getfield jdk.nashorn.internal.codegen.SpillObjectCreator.codegen:Ljdk/nashorn/internal/codegen/CodeGenerator;
            aload 0 /* this */
            getfield jdk.nashorn.internal.codegen.SpillObjectCreator.propertyMap:Ljdk/nashorn/internal/runtime/PropertyMap;
            invokevirtual jdk.nashorn.internal.codegen.CodeGenerator.loadConstant:(Ljava/lang/Object;)V
        47: .line 132
            iload 3 /* dualFields */
            ifeq 50
        48: .line 133
            aload 0 /* this */
            getfield jdk.nashorn.internal.codegen.SpillObjectCreator.codegen:Ljdk/nashorn/internal/codegen/CodeGenerator;
            aload 5 /* jpresetValues */
            invokevirtual jdk.nashorn.internal.codegen.CodeGenerator.loadConstant:(Ljava/lang/Object;)V
        49: .line 134
            goto 51
        50: .line 135
      StackMap locals: jdk.nashorn.internal.codegen.SpillObjectCreator jdk.nashorn.internal.codegen.MethodEmitter int int int long[] java.lang.Object[] java.lang.Class jdk.nashorn.internal.runtime.arrays.ArrayData
      StackMap stack:
            aload 1 /* method */
            invokevirtual jdk.nashorn.internal.codegen.MethodEmitter.loadNull:()Ljdk/nashorn/internal/codegen/MethodEmitter;
            pop
        51: .line 138
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield jdk.nashorn.internal.codegen.SpillObjectCreator.codegen:Ljdk/nashorn/internal/codegen/CodeGenerator;
            aload 6 /* opresetValues */
            invokevirtual jdk.nashorn.internal.codegen.CodeGenerator.loadConstant:(Ljava/lang/Object;)V
        52: .line 141
            aload 1 /* method */
            aload 7 /* objectClass */
            iconst_3
            anewarray java.lang.Class
            dup
            iconst_0
            ldc Ljdk/nashorn/internal/runtime/PropertyMap;
            aastore
            dup
            iconst_1
            ldc [J
            aastore
            dup
            iconst_2
            ldc [Ljava/lang/Object;
            aastore
            invokestatic jdk.nashorn.internal.codegen.CompilerConstants.constructorNoLookup:(Ljava/lang/Class;[Ljava/lang/Class;)Ljdk/nashorn/internal/codegen/CompilerConstants$Call;
            invokevirtual jdk.nashorn.internal.codegen.MethodEmitter.invoke:(Ljdk/nashorn/internal/codegen/CompilerConstants$Call;)Ljdk/nashorn/internal/codegen/MethodEmitter;
            pop
        53: .line 144
            aload 8 /* arrayData */
            invokevirtual jdk.nashorn.internal.runtime.arrays.ArrayData.length:()J
            lconst_0
            lcmp
            ifle 57
        54: .line 145
            aload 1 /* method */
            invokevirtual jdk.nashorn.internal.codegen.MethodEmitter.dup:()Ljdk/nashorn/internal/codegen/MethodEmitter;
            pop
        55: .line 146
            aload 0 /* this */
            getfield jdk.nashorn.internal.codegen.SpillObjectCreator.codegen:Ljdk/nashorn/internal/codegen/CodeGenerator;
            aload 8 /* arrayData */
            invokevirtual jdk.nashorn.internal.codegen.CodeGenerator.loadConstant:(Ljava/lang/Object;)V
        56: .line 147
            aload 1 /* method */
            ldc Ljdk/nashorn/internal/runtime/ScriptObject;
            ldc "setArray"
            getstatic java.lang.Void.TYPE:Ljava/lang/Class;
            iconst_1
            anewarray java.lang.Class
            dup
            iconst_0
            ldc Ljdk/nashorn/internal/runtime/arrays/ArrayData;
            aastore
            invokestatic jdk.nashorn.internal.codegen.CompilerConstants.virtualCallNoLookup:(Ljava/lang/Class;Ljava/lang/String;Ljava/lang/Class;[Ljava/lang/Class;)Ljdk/nashorn/internal/codegen/CompilerConstants$Call;
            invokevirtual jdk.nashorn.internal.codegen.MethodEmitter.invoke:(Ljdk/nashorn/internal/codegen/CompilerConstants$Call;)Ljdk/nashorn/internal/codegen/MethodEmitter;
            pop
        57: .line 149
      StackMap locals:
      StackMap stack:
            return
        end local 8 // jdk.nashorn.internal.runtime.arrays.ArrayData arrayData
        end local 7 // java.lang.Class objectClass
        end local 6 // java.lang.Object[] opresetValues
        end local 5 // long[] jpresetValues
        end local 4 // int spillLength
        end local 3 // boolean dualFields
        end local 2 // int length
        end local 1 // jdk.nashorn.internal.codegen.MethodEmitter method
        end local 0 // jdk.nashorn.internal.codegen.SpillObjectCreator this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   58     0           this  Ljdk/nashorn/internal/codegen/SpillObjectCreator;
            0   58     1         method  Ljdk/nashorn/internal/codegen/MethodEmitter;
            2   58     2         length  I
            3   58     3     dualFields  Z
            4   58     4    spillLength  I
            7   58     5  jpresetValues  [J
            8   58     6  opresetValues  [Ljava/lang/Object;
            9   58     7    objectClass  Ljava/lang/Class<*>;
           10   58     8      arrayData  Ljdk/nashorn/internal/runtime/arrays/ArrayData;
           12   44     9          tuple  Ljdk/nashorn/internal/codegen/MapTuple<Ljdk/nashorn/internal/ir/Expression;>;
           13   44    11            key  Ljava/lang/String;
           14   44    12          value  Ljdk/nashorn/internal/ir/Expression;
           17   44    13  constantValue  Ljava/lang/Object;
           19   44    14       property  Ljdk/nashorn/internal/runtime/Property;
           24   28    15           slot  I
           30   44    15      oldLength  J
           31   44    17          index  I
           32   44    18      longIndex  J
    MethodParameters:
        Name  Flags
      method  final

  public void populateRange(jdk.nashorn.internal.codegen.MethodEmitter, jdk.nashorn.internal.codegen.types.Type, int, int, int);
    descriptor: (Ljdk/nashorn/internal/codegen/MethodEmitter;Ljdk/nashorn/internal/codegen/types/Type;III)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=11, args_size=6
        start local 0 // jdk.nashorn.internal.codegen.SpillObjectCreator this
        start local 1 // jdk.nashorn.internal.codegen.MethodEmitter method
        start local 2 // jdk.nashorn.internal.codegen.types.Type objectType
        start local 3 // int objectSlot
        start local 4 // int start
        start local 5 // int end
         0: .line 153
            aload 0 /* this */
            getfield jdk.nashorn.internal.codegen.SpillObjectCreator.codegen:Ljdk/nashorn/internal/codegen/CodeGenerator;
            invokevirtual jdk.nashorn.internal.codegen.CodeGenerator.getCallSiteFlags:()I
            istore 6 /* callSiteFlags */
        start local 6 // int callSiteFlags
         1: .line 154
            aload 1 /* method */
            aload 2 /* objectType */
            iload 3 /* objectSlot */
            invokevirtual jdk.nashorn.internal.codegen.MethodEmitter.load:(Ljdk/nashorn/internal/codegen/types/Type;I)Ljdk/nashorn/internal/codegen/MethodEmitter;
            pop
         2: .line 157
            iload 4 /* start */
            istore 7 /* i */
        start local 7 // int i
         3: goto 21
         4: .line 158
      StackMap locals: int int
      StackMap stack:
            aload 0 /* this */
            getfield jdk.nashorn.internal.codegen.SpillObjectCreator.tuples:Ljava/util/List;
            iload 7 /* i */
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast jdk.nashorn.internal.codegen.MapTuple
            astore 8 /* tuple */
        start local 8 // jdk.nashorn.internal.codegen.MapTuple tuple
         5: .line 160
            aload 8 /* tuple */
            getfield jdk.nashorn.internal.codegen.MapTuple.value:Ljava/lang/Object;
            invokestatic jdk.nashorn.internal.ir.LiteralNode.isConstant:(Ljava/lang/Object;)Z
            ifeq 7
         6: .line 161
            goto 20
         7: .line 164
      StackMap locals: jdk.nashorn.internal.codegen.MapTuple
      StackMap stack:
            aload 0 /* this */
            getfield jdk.nashorn.internal.codegen.SpillObjectCreator.propertyMap:Ljdk/nashorn/internal/runtime/PropertyMap;
            aload 8 /* tuple */
            getfield jdk.nashorn.internal.codegen.MapTuple.key:Ljava/lang/String;
            invokevirtual jdk.nashorn.internal.runtime.PropertyMap.findProperty:(Ljava/lang/Object;)Ljdk/nashorn/internal/runtime/Property;
            astore 9 /* property */
        start local 9 // jdk.nashorn.internal.runtime.Property property
         8: .line 166
            aload 9 /* property */
            ifnonnull 16
         9: .line 167
            aload 8 /* tuple */
            getfield jdk.nashorn.internal.codegen.MapTuple.key:Ljava/lang/String;
            invokestatic jdk.nashorn.internal.runtime.arrays.ArrayIndex.getArrayIndex:(Ljava/lang/String;)I
            istore 10 /* index */
        start local 10 // int index
        10: .line 168
            getstatic jdk.nashorn.internal.codegen.SpillObjectCreator.$assertionsDisabled:Z
            ifne 11
            iload 10 /* index */
            invokestatic jdk.nashorn.internal.runtime.arrays.ArrayIndex.isValidArrayIndex:(I)Z
            ifne 11
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        11: .line 169
      StackMap locals: jdk.nashorn.internal.runtime.Property int
      StackMap stack:
            aload 1 /* method */
            invokevirtual jdk.nashorn.internal.codegen.MethodEmitter.dup:()Ljdk/nashorn/internal/codegen/MethodEmitter;
            pop
        12: .line 170
            aload 0 /* this */
            aload 1 /* method */
            iload 10 /* index */
            invokestatic jdk.nashorn.internal.runtime.arrays.ArrayIndex.toLongIndex:(I)J
            invokevirtual jdk.nashorn.internal.codegen.SpillObjectCreator.loadIndex:(Ljdk/nashorn/internal/codegen/MethodEmitter;J)Ljdk/nashorn/internal/codegen/MethodEmitter;
            pop
        13: .line 171
            aload 0 /* this */
            aload 1 /* method */
            aload 8 /* tuple */
            iconst_0
            invokevirtual jdk.nashorn.internal.codegen.SpillObjectCreator.loadTuple:(Ljdk/nashorn/internal/codegen/MethodEmitter;Ljdk/nashorn/internal/codegen/MapTuple;Z)Ljdk/nashorn/internal/codegen/MethodEmitter;
            pop
        14: .line 172
            aload 1 /* method */
            iload 6 /* callSiteFlags */
            invokevirtual jdk.nashorn.internal.codegen.MethodEmitter.dynamicSetIndex:(I)V
        end local 10 // int index
        15: .line 173
            goto 20
        16: .line 174
      StackMap locals:
      StackMap stack:
            getstatic jdk.nashorn.internal.codegen.SpillObjectCreator.$assertionsDisabled:Z
            ifne 17
            aload 9 /* property */
            invokevirtual jdk.nashorn.internal.runtime.Property.getKey:()Ljava/lang/Object;
            instanceof java.lang.String
            ifne 17
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        17: .line 175
      StackMap locals:
      StackMap stack:
            aload 1 /* method */
            invokevirtual jdk.nashorn.internal.codegen.MethodEmitter.dup:()Ljdk/nashorn/internal/codegen/MethodEmitter;
            pop
        18: .line 176
            aload 0 /* this */
            aload 1 /* method */
            aload 8 /* tuple */
            iconst_0
            invokevirtual jdk.nashorn.internal.codegen.SpillObjectCreator.loadTuple:(Ljdk/nashorn/internal/codegen/MethodEmitter;Ljdk/nashorn/internal/codegen/MapTuple;Z)Ljdk/nashorn/internal/codegen/MethodEmitter;
            pop
        19: .line 177
            aload 1 /* method */
            aload 9 /* property */
            invokevirtual jdk.nashorn.internal.runtime.Property.getKey:()Ljava/lang/Object;
            checkcast java.lang.String
            aload 0 /* this */
            getfield jdk.nashorn.internal.codegen.SpillObjectCreator.codegen:Ljdk/nashorn/internal/codegen/CodeGenerator;
            invokevirtual jdk.nashorn.internal.codegen.CodeGenerator.getCallSiteFlags:()I
            iconst_0
            invokevirtual jdk.nashorn.internal.codegen.MethodEmitter.dynamicSet:(Ljava/lang/String;IZ)V
        end local 9 // jdk.nashorn.internal.runtime.Property property
        end local 8 // jdk.nashorn.internal.codegen.MapTuple tuple
        20: .line 157
      StackMap locals:
      StackMap stack:
            iinc 7 /* i */ 1
      StackMap locals:
      StackMap stack:
        21: iload 7 /* i */
            iload 5 /* end */
            if_icmplt 4
        end local 7 // int i
        22: .line 180
            return
        end local 6 // int callSiteFlags
        end local 5 // int end
        end local 4 // int start
        end local 3 // int objectSlot
        end local 2 // jdk.nashorn.internal.codegen.types.Type objectType
        end local 1 // jdk.nashorn.internal.codegen.MethodEmitter method
        end local 0 // jdk.nashorn.internal.codegen.SpillObjectCreator this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   23     0           this  Ljdk/nashorn/internal/codegen/SpillObjectCreator;
            0   23     1         method  Ljdk/nashorn/internal/codegen/MethodEmitter;
            0   23     2     objectType  Ljdk/nashorn/internal/codegen/types/Type;
            0   23     3     objectSlot  I
            0   23     4          start  I
            0   23     5            end  I
            1   23     6  callSiteFlags  I
            3   22     7              i  I
            5   20     8          tuple  Ljdk/nashorn/internal/codegen/MapTuple<Ljdk/nashorn/internal/ir/Expression;>;
            8   20     9       property  Ljdk/nashorn/internal/runtime/Property;
           10   15    10          index  I
    MethodParameters:
            Name  Flags
      method      final
      objectType  final
      objectSlot  final
      start       final
      end         final

  protected jdk.nashorn.internal.runtime.PropertyMap makeMap();
    descriptor: ()Ljdk/nashorn/internal/runtime/PropertyMap;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=5, locals=2, args_size=1
        start local 0 // jdk.nashorn.internal.codegen.SpillObjectCreator this
         0: .line 184
            getstatic jdk.nashorn.internal.codegen.SpillObjectCreator.$assertionsDisabled:Z
            ifne 1
            aload 0 /* this */
            getfield jdk.nashorn.internal.codegen.SpillObjectCreator.propertyMap:Ljdk/nashorn/internal/runtime/PropertyMap;
            ifnull 1
            new java.lang.AssertionError
            dup
            ldc "property map already initialized"
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
         1: .line 185
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual jdk.nashorn.internal.codegen.SpillObjectCreator.getAllocatorClass:()Ljava/lang/Class;
            astore 1 /* clazz */
        start local 1 // java.lang.Class clazz
         2: .line 186
            aload 0 /* this */
            new jdk.nashorn.internal.codegen.MapCreator
            dup
            aload 1 /* clazz */
            aload 0 /* this */
            getfield jdk.nashorn.internal.codegen.SpillObjectCreator.tuples:Ljava/util/List;
            invokespecial jdk.nashorn.internal.codegen.MapCreator.<init>:(Ljava/lang/Class;Ljava/util/List;)V
            iconst_0
            aload 0 /* this */
            getfield jdk.nashorn.internal.codegen.SpillObjectCreator.codegen:Ljdk/nashorn/internal/codegen/CodeGenerator;
            invokevirtual jdk.nashorn.internal.codegen.CodeGenerator.useDualFields:()Z
            invokevirtual jdk.nashorn.internal.codegen.MapCreator.makeSpillMap:(ZZ)Ljdk/nashorn/internal/runtime/PropertyMap;
            putfield jdk.nashorn.internal.codegen.SpillObjectCreator.propertyMap:Ljdk/nashorn/internal/runtime/PropertyMap;
         3: .line 187
            aload 0 /* this */
            getfield jdk.nashorn.internal.codegen.SpillObjectCreator.propertyMap:Ljdk/nashorn/internal/runtime/PropertyMap;
            areturn
        end local 1 // java.lang.Class clazz
        end local 0 // jdk.nashorn.internal.codegen.SpillObjectCreator this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    4     0   this  Ljdk/nashorn/internal/codegen/SpillObjectCreator;
            2    4     1  clazz  Ljava/lang/Class<+Ljdk/nashorn/internal/runtime/ScriptObject;>;

  protected void loadValue(jdk.nashorn.internal.ir.Expression, jdk.nashorn.internal.codegen.types.Type);
    descriptor: (Ljdk/nashorn/internal/ir/Expression;Ljdk/nashorn/internal/codegen/types/Type;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // jdk.nashorn.internal.codegen.SpillObjectCreator this
        start local 1 // jdk.nashorn.internal.ir.Expression expr
        start local 2 // jdk.nashorn.internal.codegen.types.Type type
         0: .line 193
            aload 0 /* this */
            getfield jdk.nashorn.internal.codegen.SpillObjectCreator.codegen:Ljdk/nashorn/internal/codegen/CodeGenerator;
            aload 1 /* expr */
            aload 2 /* type */
            invokestatic jdk.nashorn.internal.codegen.types.Type.generic:(Ljdk/nashorn/internal/codegen/types/Type;)Ljdk/nashorn/internal/codegen/types/Type;
            invokevirtual jdk.nashorn.internal.codegen.CodeGenerator.loadExpressionAsType:(Ljdk/nashorn/internal/ir/Expression;Ljdk/nashorn/internal/codegen/types/Type;)Ljdk/nashorn/internal/codegen/MethodEmitter;
            pop
         1: .line 194
            return
        end local 2 // jdk.nashorn.internal.codegen.types.Type type
        end local 1 // jdk.nashorn.internal.ir.Expression expr
        end local 0 // jdk.nashorn.internal.codegen.SpillObjectCreator this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Ljdk/nashorn/internal/codegen/SpillObjectCreator;
            0    2     1  expr  Ljdk/nashorn/internal/ir/Expression;
            0    2     2  type  Ljdk/nashorn/internal/codegen/types/Type;
    MethodParameters:
      Name  Flags
      expr  final
      type  final

  protected java.lang.Class<? extends jdk.nashorn.internal.runtime.ScriptObject> getAllocatorClass();
    descriptor: ()Ljava/lang/Class;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // jdk.nashorn.internal.codegen.SpillObjectCreator this
         0: .line 198
            aload 0 /* this */
            getfield jdk.nashorn.internal.codegen.SpillObjectCreator.codegen:Ljdk/nashorn/internal/codegen/CodeGenerator;
            invokevirtual jdk.nashorn.internal.codegen.CodeGenerator.useDualFields:()Z
            ifeq 1
            ldc Ljdk/nashorn/internal/scripts/JD;
            goto 2
      StackMap locals:
      StackMap stack:
         1: ldc Ljdk/nashorn/internal/scripts/JO;
      StackMap locals:
      StackMap stack: java.lang.Class
         2: areturn
        end local 0 // jdk.nashorn.internal.codegen.SpillObjectCreator this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Ljdk/nashorn/internal/codegen/SpillObjectCreator;
    Signature: ()Ljava/lang/Class<+Ljdk/nashorn/internal/runtime/ScriptObject;>;

  protected void loadValue(java.lang.Object, jdk.nashorn.internal.codegen.types.Type);
    descriptor: (Ljava/lang/Object;Ljdk/nashorn/internal/codegen/types/Type;)V
    flags: (0x1044) ACC_PROTECTED, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=3, locals=3, args_size=3
         0: .line 1
            aload 0
            aload 1
            checkcast jdk.nashorn.internal.ir.Expression
            aload 2
            invokevirtual jdk.nashorn.internal.codegen.SpillObjectCreator.loadValue:(Ljdk/nashorn/internal/ir/Expression;Ljdk/nashorn/internal/codegen/types/Type;)V
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature
}
Signature: Ljdk/nashorn/internal/codegen/ObjectCreator<Ljdk/nashorn/internal/ir/Expression;>;
SourceFile: "SpillObjectCreator.java"
InnerClasses:
  public abstract Call = jdk.nashorn.internal.codegen.CompilerConstants$Call of jdk.nashorn.internal.codegen.CompilerConstants