-
Simon Zünd authored
When a stack trace is captured, it is stored in a private symbol on the respective Error object. The first access to "Error.stack" will then format the stack trace, with a possible call into user JS via the Error.prepareStackTrace callback. Until now, the accessor converted ".stack" to a normal data property containing the formatted stack trace. This causes a new Map with a new DescriptorArray to be created, which will not be shared with anything else (also not other error objects with formated stack traces). This CL changes the accessor to store the formatted stack trace in the same symbol (stack_trace_symbol) as the structured data. The result is that an error object will have the same Map before and after "Error.stack" is accessed. Bug: v8:9115 Change-Id: I7d6bf49be76d63b57fbbaf904cc6ed7dbdbfb96b Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1564061 Commit-Queue: Simon Zünd <szuend@chromium.org> Reviewed-by: Jakob Gruber <jgruber@chromium.org> Reviewed-by: Benedikt Meurer <bmeurer@chromium.org> Cr-Commit-Position: refs/heads/master@{#60865}
c8206043