Fix parsing of error stacks where url paths contain @ symbols #42
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.
When the URL path of a stackframe contains
@
, theparseFFOrSafari()
function returns an incompletefileName
value.e.g. given the string:
"who@http://localhost:5000/misc/@stuff/foo.js:3:9"
expected
fileName
is"http://localhost:5000/misc/@stuff/foo.js"
actual
fileName
is"stuff/foo.js"
Description
Calling
.split('@')
on the stackframe string split it into an arbitrary number of chunks depending on whether there was an@
in the URL or in the method name.I created a rather gnarly looking regex (after exhausting other options) to extract everything after the first
@
, unless it was preceded by something likeobj["@method"]
, in which case it will extract everything after the first@
preceded by the enclosing quotes.Motivation and Context
We're using this module on bugsnag-js and a customer of ours reported an issue with errors coming from URLs containing
@
but only in Firefox.How Has This Been Tested?
Cases have been added to the automated test suite.
Types of changes
Checklist:
node_modules/.bin/jscs -c .jscsrc error-stack-parser.js
passes without errorsnpm test
passes without errors