@@ -11,38 +11,38 @@ export const defaultOperators: Operators = {
11
11
'==' : ( l : any , r : any ) => {
12
12
if ( isComparable ( l ) ) return l . equals ( r )
13
13
if ( isComparable ( r ) ) return r . equals ( l )
14
- return l === r
14
+ return toValue ( l ) === toValue ( r )
15
15
} ,
16
16
'!=' : ( l : any , r : any ) => {
17
17
if ( isComparable ( l ) ) return ! l . equals ( r )
18
18
if ( isComparable ( r ) ) return ! r . equals ( l )
19
- return l !== r
19
+ return toValue ( l ) !== toValue ( r )
20
20
} ,
21
21
'>' : ( l : any , r : any ) => {
22
22
if ( isComparable ( l ) ) return l . gt ( r )
23
23
if ( isComparable ( r ) ) return r . lt ( l )
24
- return l > r
24
+ return toValue ( l ) > toValue ( r )
25
25
} ,
26
26
'<' : ( l : any , r : any ) => {
27
27
if ( isComparable ( l ) ) return l . lt ( r )
28
28
if ( isComparable ( r ) ) return r . gt ( l )
29
- return l < r
29
+ return toValue ( l ) < toValue ( r )
30
30
} ,
31
31
'>=' : ( l : any , r : any ) => {
32
32
if ( isComparable ( l ) ) return l . geq ( r )
33
33
if ( isComparable ( r ) ) return r . leq ( l )
34
- return l >= r
34
+ return toValue ( l ) >= toValue ( r )
35
35
} ,
36
36
'<=' : ( l : any , r : any ) => {
37
37
if ( isComparable ( l ) ) return l . leq ( r )
38
38
if ( isComparable ( r ) ) return r . geq ( l )
39
- return l <= r
39
+ return toValue ( l ) <= toValue ( r )
40
40
} ,
41
41
'contains' : ( l : any , r : any ) => {
42
42
l = toValue ( l )
43
43
r = toValue ( r )
44
44
return l && isFunction ( l . indexOf ) ? l . indexOf ( r ) > - 1 : false
45
45
} ,
46
- 'and' : ( l : any , r : any , ctx : Context ) => isTruthy ( l , ctx ) && isTruthy ( r , ctx ) ,
47
- 'or' : ( l : any , r : any , ctx : Context ) => isTruthy ( l , ctx ) || isTruthy ( r , ctx )
46
+ 'and' : ( l : any , r : any , ctx : Context ) => isTruthy ( toValue ( l ) , ctx ) && isTruthy ( toValue ( r ) , ctx ) ,
47
+ 'or' : ( l : any , r : any , ctx : Context ) => isTruthy ( toValue ( l ) , ctx ) || isTruthy ( toValue ( r ) , ctx )
48
48
}
0 commit comments