• sgjesse@chromium.org's avatar
    Added handles to the mirror objects. When a mirror for an object is created it... · 6bc1d40a
    sgjesse@chromium.org authored
    Added handles to the mirror objects. When a mirror for an object is created it is assigned a numeric handle. Handles are used to make a 1:1 correspondence between objects and mirrors. Currently the mirrors are cached in a JavaScript array and when creating a mirror this cache is checked to see if a mirror already exists for the object. This cache is cleared when leaving the debugger.
    
    Changed the serialization format to take advantage of these handles. When an object is serialized referenced objects are represented just by their handle id serialized as '{ref:<handle>}'. During serialization the referenced handles are collected and the serializer can provide a serialization of all the referenced objects.
    
    Removed the special handling of array properties. Indexed properties and the length property are now rendered as named properties in the serialization.
    
    Removed the special serialization handling of RegExp properties. The properties 'source', 'global', 'ignoreCase' and 'multiline' are serialized with the rest of the properties.
    
    Changed a lot of tests to handle the changed format.
    
    git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1078 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
    6bc1d40a
debug-mirror-cache.js 3.04 KB