< prev index next >

src/jdk/nashorn/internal/codegen/FieldObjectCreator.java

Print this page

        

@@ -165,12 +165,11 @@
         final String  fieldDesc   = typeDescriptor(fieldType.getTypeClass());
 
         assert fieldName.equals(getFieldName(fieldIndex, PRIMITIVE_FIELD_TYPE)) || fieldType.isObject() :    key + " object keys must store to L*-fields";
         assert fieldName.equals(getFieldName(fieldIndex, Type.OBJECT))          || fieldType.isPrimitive() : key + " primitive keys must store to J*-fields";
 
-        loadTuple(method, tuple);
-
+        loadTuple(method, tuple, true);
         method.putField(fieldClass, fieldName, fieldDesc);
     }
 
     /**
      * Store a value in an indexed slot of a generated class object.

@@ -178,15 +177,11 @@
      * @param method Script method.
      * @param index  Slot index.
      * @param tuple  Tuple to store.
      */
     private void putSlot(final MethodEmitter method, final long index, final MapTuple<T> tuple) {
-        if (JSType.isRepresentableAsInt(index)) {
-            method.load((int)index);
-        } else {
-            method.load(index);
-        }
+        loadIndex(method, index);
         loadTuple(method, tuple, false); //we don't pack array like objects
         method.dynamicSetIndex(callSiteFlags);
     }
 
     /**
< prev index next >