| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
1 parent bc6905b commit 82830a8
2 files changed
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -354,29 +354,38 @@ function setEquiv(a, b, strict, memo) { | |||
| 354 | 354 | return true; | |
| 355 | 355 | } | |
| 356 | 356 | ||
| 357 | + // See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Equality_comparisons_and_sameness#Loose_equality_using | ||
| 357 | 358 | function findLooseMatchingPrimitives(prim) { | |
| 358 | - var values, number; | ||
| 359 | 359 | switch (typeof prim) { | |
| 360 | 360 | case 'number': | |
| 361 | - values = ['' + prim]; | ||
| 362 | - if (prim === 1 || prim === 0) | ||
| 363 | - values.push(Boolean(prim)); | ||
| 364 | - return values; | ||
| 361 | + if (prim === 0) { | ||
| 362 | + return ['', '0', false]; | ||
| 363 | + } | ||
| 364 | + if (prim === 1) { | ||
| 365 | + return ['1', true]; | ||
| 366 | + } | ||
| 367 | + return ['' + prim]; | ||
| 365 | 368 | case 'string': | |
| 366 | - number = +prim; | ||
| 369 | + if (prim === '' || prim === '0') { | ||
| 370 | + return [0, false]; | ||
| 371 | + } | ||
| 372 | + if (prim === '1') { | ||
| 373 | + return [1, true]; | ||
| 374 | + } | ||
| 375 | + const number = +prim; | ||
| 367 | 376 | if ('' + number === prim) { | |
| 368 | - values = [number]; | ||
| 369 | - if (number === 1 || number === 0) | ||
| 370 | - values.push(Boolean(number)); | ||
| 377 | + return [number]; | ||
| 371 | 378 | } | |
| 372 | - return values; | ||
| 379 | + return; | ||
| 373 | 380 | case 'undefined': | |
| 374 | 381 | return [null]; | |
| 375 | 382 | case 'object': // Only pass in null as object! | |
| 376 | 383 | return [undefined]; | |
| 377 | 384 | case 'boolean': | |
| 378 | - number = +prim; | ||
| 379 | - return [number, '' + number]; | ||
| 385 | + if (prim === false) { | ||
| 386 | + return ['', '0', 0]; | ||
| 387 | + } | ||
| 388 | + return ['1', 1]; | ||
| 380 | 389 | } | |
| 381 | 390 | } | |
| 382 | 391 | ||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -350,8 +350,8 @@ assertDeepAndStrictEqual( | |||
| 350 | 350 | new Map([[1, undefined]]) | |
| 351 | 351 | ); | |
| 352 | 352 | assertOnlyDeepEqual( | |
| 353 | - new Map([[1, null]]), | ||
| 354 | - new Map([['1', undefined]]) | ||
| 353 | + new Map([[1, null], ['', '0']]), | ||
| 354 | + new Map([['1', undefined], [false, 0]]) | ||
| 355 | 355 | ); | |
| 356 | 356 | assertNotDeepOrStrict( | |
| 357 | 357 | new Map([[1, undefined]]), | |
@@ -368,8 +368,12 @@ assertOnlyDeepEqual( | |||
| 368 | 368 | new Map([[undefined, null]]) | |
| 369 | 369 | ); | |
| 370 | 370 | assertOnlyDeepEqual( | |
| 371 | - new Set([null]), | ||
| 372 | - new Set([undefined]) | ||
| 371 | + new Set([null, '']), | ||
| 372 | + new Set([undefined, 0]) | ||
| 373 | + ); | ||
| 374 | + assertNotDeepOrStrict( | ||
| 375 | + new Set(['']), | ||
| 376 | + new Set(['0']) | ||
| 373 | 377 | ); | |
| 374 | 378 | ||
| 375 | 379 | // GH-6416. Make sure circular refs don't throw. | |
| Back | FazBrowse Home | New Git URL |
0 commit comments