• sgjesse@chromium.org's avatar
    Added handles to the mirror objects. When a mirror for an object is created · c2c780bf
    sgjesse@chromium.org authored
    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.
    Review URL: http://codereview.chromium.org/18092
    
    git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1093 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
    c2c780bf
mirror-string.js 3.46 KB