• jgruber's avatar
    Revert of Use a custom Struct for stack trace storage (patchset #4 id:60001 of... · 6b7493a4
    jgruber authored
    Revert of Use a custom Struct for stack trace storage (patchset #4 id:60001 of https://codereview.chromium.org/2230953002/ )
    
    Reason for revert:
    Performance regressions in Gameboy, Life, CodeLoad and others. See crbug.com/638210.
    
    Original issue's description:
    > Refactor data structures for simple stack traces
    >
    > Simple stack traces are captured through Isolate::CaptureSimpleStackTrace.
    > Captured frames are stored in a FixedArray, which in turn is stored as a
    > property (using a private symbol) on the error object itself. Actual formatting
    > of the textual stack trace is done lazily when the user reads the stack
    > property of the error object.
    >
    > This would involve many conversions back and forth between index-encoded raw
    > data (receiver, function, offset and code), JS CallSite objects, and C++
    > CallSite objects.
    >
    > This commit refactors the C++ CallSite class into a Struct class called
    > StackTraceFrame, which is the new single point of truth frame information.
    > Isolate::CaptureSimpleStackTrace stores an array of StackTraceFrames, and JS
    > CallSite objects (now created only when the user specifies custom stack trace
    > formatting through Error.prepareStackTrace) internally only store a reference
    > to a StackTraceFrame.
    >
    > BUG=
    >
    > Committed: https://crrev.com/b4c1aefb9c369f1a33a6ca94a5de9b06ea4bf5c4
    > Cr-Commit-Position: refs/heads/master@{#38645}
    
    TBR=yangguo@chromium.org
    # Not skipping CQ checks because original CL landed more than 1 days ago.
    BUG=
    
    Review-Url: https://codereview.chromium.org/2252783007
    Cr-Commit-Position: refs/heads/master@{#38700}
    6b7493a4
execution.cc 16.4 KB