< prev index next >
src/jdk/nashorn/internal/codegen/FieldObjectCreator.java
Print this page
*** 165,176 ****
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);
!
method.putField(fieldClass, fieldName, fieldDesc);
}
/**
* Store a value in an indexed slot of a generated class object.
--- 165,175 ----
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, true);
method.putField(fieldClass, fieldName, fieldDesc);
}
/**
* Store a value in an indexed slot of a generated class object.
*** 178,192 ****
* @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);
! }
loadTuple(method, tuple, false); //we don't pack array like objects
method.dynamicSetIndex(callSiteFlags);
}
/**
--- 177,187 ----
* @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) {
! loadIndex(method, index);
loadTuple(method, tuple, false); //we don't pack array like objects
method.dynamicSetIndex(callSiteFlags);
}
/**
< prev index next >