Pass in empty string to URL constructor if no opts.uri defined #190
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.
During some routine package updates to our React Native application (which uses
m3u8-parserinternally - thanks for the package!), @timardex found that the minor bump broke a part of our app. We found that the bundled URL implementation behaves differently to browsers when it receives a URL with anundefinedfirst argument.The URL spec says that whatever value is parsed in should be stringified, but
undefinedcan't be stringified. Browsers / node must just not hit a code path where this is a problem.However in our bundled react-native, the URL constructor looks like this: (look at the
// !!!!!PROBLEM HERE!!!line)Of course, you can't call
.startsWithonundefined, so this small fix just passes an empty string into the URL constructor ifopts.uriisundefinedThanks again for the package, we've worked around it by pinning ourselves to
7.1.0until this is patched 😄