fix(shared): missed Symbol judge in looseEqual (#3553)
This commit is contained in:
parent
c355c4b784
commit
0aeb4bc9bf
@ -49,6 +49,18 @@ describe('utils/looseEqual', () => {
|
||||
expect(looseEqual(date1, date4)).toBe(false)
|
||||
})
|
||||
|
||||
test('compares symbols correctly', () => {
|
||||
const symbol1 = Symbol('a')
|
||||
const symbol2 = Symbol('a')
|
||||
const symbol3 = Symbol('b')
|
||||
const notSymbol = 0
|
||||
|
||||
expect(looseEqual(symbol1, symbol1)).toBe(true)
|
||||
expect(looseEqual(symbol1, symbol2)).toBe(false)
|
||||
expect(looseEqual(symbol1, symbol3)).toBe(false)
|
||||
expect(looseEqual(symbol1, notSymbol)).toBe(false)
|
||||
})
|
||||
|
||||
test('compares files correctly', () => {
|
||||
const date1 = new Date(2019, 1, 2, 3, 4, 5, 6)
|
||||
const date2 = new Date(2019, 1, 2, 3, 4, 5, 7)
|
||||
|
@ -1,4 +1,4 @@
|
||||
import { isArray, isDate, isObject } from './'
|
||||
import { isArray, isDate, isObject, isSymbol } from './'
|
||||
|
||||
function looseCompareArrays(a: any[], b: any[]) {
|
||||
if (a.length !== b.length) return false
|
||||
@ -16,6 +16,11 @@ export function looseEqual(a: any, b: any): boolean {
|
||||
if (aValidType || bValidType) {
|
||||
return aValidType && bValidType ? a.getTime() === b.getTime() : false
|
||||
}
|
||||
aValidType = isSymbol(a)
|
||||
bValidType = isSymbol(b)
|
||||
if (aValidType || bValidType) {
|
||||
return a === b
|
||||
}
|
||||
aValidType = isArray(a)
|
||||
bValidType = isArray(b)
|
||||
if (aValidType || bValidType) {
|
||||
|
Loading…
Reference in New Issue
Block a user