• jarin@chromium.org's avatar
    Fixed Lithium environment generation bug for captured objects (created · acf24331
    jarin@chromium.org authored
    by escape analysis). Added several tests that expose the bug.
    
    Summary:
    LCodegen::AddToTranslation assumes that Lithium environments are
    generated by depth-first traversal, but LChunkBuilder::CreateEnvironment
    was generating them in breadth-first fashion. This fixes the
    CreateEnvironment to traverse the captured objects depth-first.
    
    Note:
    It might be worth considering representing LEnvironment by a list
    with the same order as the serialized translation representation
    rather than having two lists with a subtle relationship between
    them (and then serialize in a slightly different order again).
    
    R=titzer@chromium.org, mstarzinger@chromium.org
    LOG=N
    BUG=
    
    Review URL: https://codereview.chromium.org/93803003
    
    git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18470 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
    acf24331
lithium-arm.cc 85.1 KB