DescriptionMIPS: Use Cells to check prototype chain validity (disabled by default).
Original commit message:
The cells are stored as (hidden) properties on prototype objects. When a prototype object changes its map, then both its own validity cell and those of all "downstream" prototypes are invalidated; handlers for a given receiver embed the currently valid cell for that receiver's prototype during their compilation and check it on execution.
Other changes in this CL:
- Made Map::SetPrototype static (for GC safety of |this|).
- For prototype maps, keep track of the prototype object using them. This is required for being able to find and invalidate "downstream" prototypes' cells.
- Ensure that prototype maps are never shared, even if they are slow. This is required for the above.
- Minor "const" cleanup for a few Map field accessors.
BUG=
Patch Set 1 #
Messages
Total messages: 4 (1 generated)
|