1. A computer-readable storage medium having computer-executable instructions, which when executed perform steps, comprising: in a thread, reading data of an object field, including, determining whether a state of an object is expanded, and if expanded: a) obtaining a status from a status indicator corresponding to an original data field of the object, and reading data from the original object field of the object if the status indicator indicates a current version of the data is in the original object field, reading data from a wide object field if the status indicator indicates a current version of the data is in the wide object field, or reading data from a to-space object field if the status indicator indicates a current version of the data is in the to-space object field; or b) if not expanded, reading data from a to-space object field if a forwarding indicator to the to-space object is in the object, or reading data from the original object field if no indicator pointer is in the object; writing data to the object field, including, determining a phase and state of the object, and writing to the original object field, the expanded object field, or the to-space object field depending on the phase and state; and, determining that the state is tagged for object compaction and the phase is a preparation phase, including writing a taint indication to the object, and if successful, writing the data to the original object field.