9139e1a864
Observation in the normal case (Object.observe, default accept types, one observer) now allocates fewer objects and unobservation no longer needs to scan and splice an InternalArray -- making the combined speed of observe/unobserve about 200% faster. This patch implements the following optimizations: -objectInfo is initially created without any connected objects or arrays. The first observer is referenced directly by objectInfo, and when a second observer is added, changeObservers converts to a mapping of callbackPriority->observer, which allows for constant time registration/de-registration. -observer.accept and objectInfo.performing are conceptually the same data-structure. This is now directly represented as an abstract "TypeMap" which can later be optimized to be a smi in common cases, (e.g: https://codereview.chromium.org/19269007/). -objectInfo observers are only represented by an object with an accept typeMap if the set of accept types is non-default R=rossberg@chromium.org Review URL: https://codereview.chromium.org/19541010 Patch from Rafael Weinstein <rafaelw@chromium.org>. git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16629 ce2b1a6d-e550-0410-aec6-3dcde31c8c00 |
||
---|---|---|
.. | ||
benchmarks | ||
cctest | ||
intl | ||
message | ||
mjsunit | ||
mozilla | ||
preparser | ||
test262 | ||
webkit |