Skip to content

Commit

Permalink
fix(router): Fix occasional error when creating url tree in IE 11 and…
Browse files Browse the repository at this point in the history
… Edge (#40488)

For the Google Cloud Console within Google we observed errors in the
shallowEqual function for users in IE and Edge. This patch was made within
Google and the errors went away. This commit upstreams the change into Angular.

PR Close #40488
  • Loading branch information
Alison Gale authored and thePunderWoman committed Jan 21, 2021
1 parent 5f6808d commit 69fd942
Showing 1 changed file with 4 additions and 6 deletions.
10 changes: 4 additions & 6 deletions packages/router/src/utils/collection.ts
Original file line number Diff line number Diff line change
Expand Up @@ -20,12 +20,10 @@ export function shallowEqualArrays(a: any[], b: any[]): boolean {
}

export function shallowEqual(a: Params, b: Params): boolean {
// Casting Object.keys return values to include `undefined` as there are some cases
// in IE 11 where this can happen. Cannot provide a test because the behavior only
// exists in certain circumstances in IE 11, therefore doing this cast ensures the
// logic is correct for when this edge case is hit.
const k1 = Object.keys(a) as string[] | undefined;
const k2 = Object.keys(b) as string[] | undefined;
// While `undefined` should never be possible, it would sometimes be the case in IE 11
// and pre-chromium Edge. The check below accounts for this edge case.
const k1 = a ? Object.keys(a) : undefined;
const k2 = b ? Object.keys(b) : undefined;
if (!k1 || !k2 || k1.length != k2.length) {
return false;
}
Expand Down

0 comments on commit 69fd942

Please sign in to comment.