- 10 Jan, 2020 1 commit
-
-
Toon Verwaest authored
Also capture async stack traces if we're in a reject handler. Fixes node issue https://github.com/nodejs/node/issues/30822 Change-Id: I703012ddb88b5b5d17baba843a969b398ef99fa1 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1969897 Auto-Submit: Toon Verwaest <verwaest@chromium.org> Reviewed-by:
Benedikt Meurer <bmeurer@chromium.org> Commit-Queue: Toon Verwaest <verwaest@chromium.org> Cr-Commit-Position: refs/heads/master@{#65687}
-
- 02 May, 2019 1 commit
-
-
Mythri A authored
With bytecode flushing and lazy feedback allocation, we need to call %PrepareForOptimization before we call %OptimizeFunctionOnNextCall Bug: v8:8801, v8:8394 Change-Id: I1f84477a8cef27b4cff61b54daf6fe1a9e5f8e76 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1591775 Commit-Queue: Ross McIlroy <rmcilroy@chromium.org> Reviewed-by:
Ross McIlroy <rmcilroy@chromium.org> Cr-Commit-Position: refs/heads/master@{#61148}
-
- 12 Oct, 2018 1 commit
-
-
Benedikt Meurer authored
For the --async-stack-traces we can also look through initial parts of the promise chain that were created by regular Promise#then() calls to walk up to the first async function frame. This addresses the missing support for aforementioned example ```js (async function() { await Promise.resolve().then(() => console.log(new Error().stack)); })(); ``` which now also works. Bug: v8:7522 Change-Id: I574943c1fc6ee4a1bd56f208dce78eb7506c5c4f Reviewed-on: https://chromium-review.googlesource.com/c/1278276Reviewed-by:
Maya Lekova <mslekova@chromium.org> Commit-Queue: Benedikt Meurer <bmeurer@chromium.org> Cr-Commit-Position: refs/heads/master@{#56613}
-
- 05 Oct, 2018 1 commit
-
-
Benedikt Meurer authored
This forces .generator_object variable to stack slot 0 for async generator functions so that the stack trace construction logic can extract the JSAsyncGeneratorObject appropriately. Bug: v8:7522 Change-Id: I37b52836bb512bcf5cd7e10e1738c8e7895b06ea Ref: nodejs/node#11865 Design-Document: http://bit.ly/v8-zero-cost-async-stack-traces Reviewed-on: https://chromium-review.googlesource.com/c/1264556Reviewed-by:
Yang Guo <yangguo@chromium.org> Reviewed-by:
Benedikt Meurer <bmeurer@chromium.org> Commit-Queue: Benedikt Meurer <bmeurer@chromium.org> Cr-Commit-Position: refs/heads/master@{#56415}
-
- 04 Oct, 2018 1 commit
-
-
Benedikt Meurer authored
This introduces a new flag --async-stack-traces, which enables zero-cost async stack traces. This enriches the non-standard Error.stack property with async stack frames computed from walking up the promise chains and collecting all the await suspension points along the way. In Error.stack these async frames are marked with "async" to make it possible to distinguish them from regular frames, for example: ``` Error: Some error message at bar (<anonymous>) at async foo (<anonymous>) ``` It's zero-cost because no additional information is collected during the execution of the program, but only the information already present in the promise chains is used to reconstruct an approximation of the async stack in case of an exception. But this approximation is limited to suspension points at await's in async functions. This depends on a recent ECMAScript specification change, flagged behind --harmony-await-optimization and implied the --async-stack-traces flag. Without this change there's no way to get from the outer promise of an async function to the rest of the promise chain, since the link is broken by the indirection introduced by await. For async functions the special outer promise, named .promise in the Parser desugaring, is now forcible allocated to stack slot 0 during scope resolution, to make it accessible to the stack frame construction logic. Note that this first prototype doesn't yet work fully support async generators and might have other limitations. Bug: v8:7522 Ref: nodejs/node#11865 Change-Id: I0cc8e3cdfe45dab56d3d506be2d25907409b01a9 Design-Document: http://bit.ly/v8-zero-cost-async-stack-traces Reviewed-on: https://chromium-review.googlesource.com/c/1256762 Commit-Queue: Benedikt Meurer <bmeurer@chromium.org> Reviewed-by:
Adam Klein <adamk@chromium.org> Reviewed-by:
Yang Guo <yangguo@chromium.org> Cr-Commit-Position: refs/heads/master@{#56363}
-