• Dan Elphick's avatar
    [compiler] Don't collect source positions for the top frame · 758700a7
    Dan Elphick authored
    While most source positions were not collected even throwing exceptions,
    the top frame still was always collected as it was used to initialize
    the JSMessageObject. This skips even that frame, by storing the
    SharedFunctionInfo and bytecode offset in the JSMessageObject allowing
    it to lazily evaluate the actual source position.
    
    Also adds tests to test-api.cc that test each of the source position
    functions in isolation to ensure that they don't rely on previous
    invocations to call the source collection function.
    
    Since no source positions are now collected at the point when an
    exception is thrown, the mjsunit/stack-traces-overflow now passes again
    with the flag enabled. (cctest/test-cpu-profiler/Inlining2 is now the
    only failure).
    
    Bug: v8:8510
    Change-Id: Ic5382bdbab65cd8838f0c84b544fabb1a9109d13
    Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1587385
    Commit-Queue: Dan Elphick <delphick@chromium.org>
    Reviewed-by: 's avatarUlan Degenbaev <ulan@chromium.org>
    Reviewed-by: 's avatarRoss McIlroy <rmcilroy@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#61271}
    758700a7
frames.cc 81.3 KB