• ishell's avatar
    [runtime] Better encapsulation of dictionary objects handling in lookup iterator. · 3fbb4521
    ishell authored
    Now LookupIterator follows the same pattern of prepare transition, apply transition
    and write value when adding new properties to dictionary objects.
    
    JSGlobalObject case:
    * Prepare transition phase ensures that there is a "transition" property cell
      prepared for receiving a value.
    * Apply transition phase does nothing.
    * Prepare for data property phase ensures that the existing property cell can
      receive the value.
    * Write value phase writes value directly to the current property cell.
    
    JSObject case:
    * Prepare transition phase prepares the object for receiving a data value (which
      could switch an object to dictionary mode).
    * Apply transition phase migrates object to a transition map. If the map happened
      to be a dictionary mode object's map then an uninitialized entry added to the
      properties dictionary.
    * Prepare for data property phase does nothing.
    * Write value phase just puts value to the properties dictionary.
    
    BUG=chromium:576312
    
    Review-Url: https://codereview.chromium.org/2127583002
    Cr-Commit-Position: refs/heads/master@{#37585}
    3fbb4521
property-details.h 13.8 KB