• Dan Elphick's avatar
    Reland "[compiler] Don't collect source positions for the top frame" · f2e65226
    Dan Elphick authored
    Fixed crashes by adding missing call to EnsureSourcePositionsAvailable,
    which requires clearing and restoring the pending exception.
    
    > 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: Ifa5fe31d3db34a6c6d6a9cef3d646ad620dabd81
    Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1601270
    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@{#61372}
    f2e65226
js-objects.h 59.7 KB