properly support the empty URI (a relative URI) #317
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.
Before this commit,
History.normalizeState
treated the empty string URI (''
) as if no URI had been specified, normalizing it to the current page location (History.getLocationHref()
). This occurred because the empty string is a "falsy" value in JavaScript.With this commit,
History.normalizeState
instead resolves the empty URI as it does other relative URIs (usingHistory.getFullUrl
), while still resorting toHistory.getLocationHref()
if no URI is specified (i.e.oldState.url
isnull
orundefined
).I ran the tests in Chrome, and this commit causes no change in outcome. It's easy to see that this would be the case, since none of the current tests use the empty URI. It's also easy to see (by inspection of
History.getFullUrl
) that this change has the desired effect and no undesired side effects. I'd be happy to see a test added for the empty URI... I'm just not sure where the best place to add it would be. The tests appear to be a carefully constructed sequence.