• 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
Name
Last commit
Last update
benchmarks Loading commit data...
build_overrides Loading commit data...
docs Loading commit data...
gni Loading commit data...
gypfiles Loading commit data...
include Loading commit data...
infra Loading commit data...
samples Loading commit data...
src Loading commit data...
test Loading commit data...
testing Loading commit data...
third_party/binutils Loading commit data...
tools Loading commit data...
.clang-format Loading commit data...
.gitignore Loading commit data...
.gn Loading commit data...
.ycm_extra_conf.py Loading commit data...
AUTHORS Loading commit data...
BUILD.gn Loading commit data...
CODE_OF_CONDUCT.md Loading commit data...
ChangeLog Loading commit data...
DEPS Loading commit data...
LICENSE Loading commit data...
LICENSE.fdlibm Loading commit data...
LICENSE.strongtalk Loading commit data...
LICENSE.v8 Loading commit data...
LICENSE.valgrind Loading commit data...
Makefile Loading commit data...
Makefile.android Loading commit data...
Makefile.nacl Loading commit data...
OWNERS Loading commit data...
PRESUBMIT.py Loading commit data...
README.md Loading commit data...
WATCHLISTS Loading commit data...
codereview.settings Loading commit data...
snapshot_toolchain.gni Loading commit data...