/
no-negated-condition.mjs
109 lines (107 loc) · 1.8 KB
/
no-negated-condition.mjs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
import outdent from 'outdent';
import {getTester} from './utils/test.mjs';
const {test} = getTester(import.meta);
test.snapshot({
valid: [
'if (a) {}',
'if (a) {} else {}',
'if (!a) {}',
'if (!a) {} else if (b) {}',
'if (!a) {} else if (b) {} else {}',
'if (a == b) {}',
'if (a == b) {} else {}',
'if (a != b) {}',
'if (a != b) {} else if (b) {}',
'if (a != b) {} else if (b) {} else {}',
'if (a !== b) {}',
'if (a === b) {} else {}',
'a ? b : c',
],
invalid: [
'if (!a) {;} else {;}',
'if (a != b) {;} else {;}',
'if (a !== b) {;} else {;}',
'!a ? b : c',
'a != b ? c : d',
'a !== b ? c : d',
'(( !a )) ? b : c',
'!(( a )) ? b : c',
'if(!(( a ))) b(); else c();',
'if((( !a ))) b(); else c();',
'function a() {return!a ? b : c}',
'function a() {return!(( a )) ? b : c}',
outdent`
function a() {
return ! // comment
a ? b : c;
}
`,
outdent`
function a() {
return (! // ReturnStatement argument is parenthesized
a ? b : c);
}
`,
outdent`
function a() {
return (
! // UnaryExpression argument is parenthesized
a) ? b : c;
}
`,
outdent`
function a() {
throw ! // comment
a ? b : c;
}
`,
'!a ? b : c ? d : e',
'!a ? b : (( c ? d : e ))',
outdent`
a
![] ? b : c
`,
outdent`
a
!+b ? c : d
`,
outdent`
a
!(b) ? c : d
`,
outdent`
a
!b ? c : d
`,
outdent`
if (!a)
b()
else
c()
`,
'if(!a) b(); else c()',
outdent`
function fn() {
if(!a) b(); else return
}
`,
'if(!a) {b()} else {c()}',
'if(!!a) b(); else c();',
'(!!a) ? b() : c();',
outdent`
function fn() {
return!a !== b ? c : d
return((!((a)) != b)) ? c : d
}
`,
outdent`
if (!a) {
b();
} else if (!c) {
d();
} else {
e();
}
`,
],
});