This repository was archived by the owner on Jul 18, 2024. It is now read-only.
Callstack deminification without parsing JS to support ES2015+ #82
+260
−31
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR adds a "MapOnly" option for call stack deminification which skips parsing the JS file to produce a function map. Instead, it does a best-effort to deminify method names using the deminified symbol from the call site.
In the full mode, I've also added better exception handling in function map generation to fall back to the MapOnly mode when JSParser throws an exception (for example on modern JS syntax it doesn't understand), or it can't find the JS.
Fixes #66, at least to the point where file names, line numbers and most method names are deminified.
StackTraceDeminifierMapOnlyEndToEndTestsis a fork ofStackTraceDeminifierEndToEndTestswith minor tweaks to show the output - anonymous function frames now show the "minified" name (e.g. "Anonymous function") instead of searching up for a containing method name, and the last frame we are unable to find a method name for as we don't have a caller.