@@ -31,18 +31,23 @@ ruleTester.run("no-implicit-coercion", rule, {
31
31
"-foo" ,
32
32
"+1234" ,
33
33
"-1234" ,
34
+ "- -1234" ,
34
35
"+Number(lol)" ,
35
36
"-parseFloat(lol)" ,
36
37
"2 * foo" ,
37
38
"1 * 1234" ,
39
+ "123 - 0" ,
38
40
"1 * Number(foo)" ,
39
41
"1 * parseInt(foo)" ,
40
42
"1 * parseFloat(foo)" ,
41
43
"Number(foo) * 1" ,
44
+ "Number(foo) - 0" ,
42
45
"parseInt(foo) * 1" ,
43
46
"parseFloat(foo) * 1" ,
47
+ "- -Number(foo)" ,
44
48
"1 * 1234 * 678 * Number(foo)" ,
45
49
"1 * 1234 * 678 * parseInt(foo)" ,
50
+ "(1 - 0) * parseInt(foo)" ,
46
51
"1234 * 1 * 678 * Number(foo)" ,
47
52
"1234 * 1 * Number(foo) * Number(bar)" ,
48
53
"1234 * 1 * Number(foo) * parseInt(bar)" ,
@@ -54,6 +59,7 @@ ruleTester.run("no-implicit-coercion", rule, {
54
59
"1234 * parseInt(foo) * 1 * Number(bar)" ,
55
60
"1234 * parseFloat(foo) * 1 * parseInt(bar)" ,
56
61
"1234 * parseFloat(foo) * 1 * Number(bar)" ,
62
+ "(- -1234) * (parseFloat(foo) - 0) * (Number(bar) - 0)" ,
57
63
"1234*foo*1" ,
58
64
"1234*1*foo" ,
59
65
"1234*bar*1*foo" ,
@@ -69,13 +75,17 @@ ruleTester.run("no-implicit-coercion", rule, {
69
75
{ code : "!!foo" , options : [ { boolean : false } ] } ,
70
76
{ code : "~foo.indexOf(1)" , options : [ { boolean : false } ] } ,
71
77
{ code : "+foo" , options : [ { number : false } ] } ,
78
+ { code : "-(-foo)" , options : [ { number : false } ] } ,
79
+ { code : "foo - 0" , options : [ { number : false } ] } ,
72
80
{ code : "1*foo" , options : [ { number : false } ] } ,
73
81
{ code : "\"\"+foo" , options : [ { string : false } ] } ,
74
82
{ code : "foo += \"\"" , options : [ { string : false } ] } ,
75
83
{ code : "var a = !!foo" , options : [ { boolean : true , allow : [ "!!" ] } ] } ,
76
84
{ code : "var a = ~foo.indexOf(1)" , options : [ { boolean : true , allow : [ "~" ] } ] } ,
77
85
{ code : "var a = ~foo" , options : [ { boolean : true } ] } ,
78
86
{ code : "var a = 1 * foo" , options : [ { boolean : true , allow : [ "*" ] } ] } ,
87
+ { code : "- -foo" , options : [ { number : true , allow : [ "- -" ] } ] } ,
88
+ { code : "foo - 0" , options : [ { number : true , allow : [ "-" ] } ] } ,
79
89
{ code : "var a = +foo" , options : [ { boolean : true , allow : [ "+" ] } ] } ,
80
90
{ code : "var a = \"\" + foo" , options : [ { boolean : true , string : true , allow : [ "+" ] } ] } ,
81
91
@@ -157,6 +167,15 @@ ruleTester.run("no-implicit-coercion", rule, {
157
167
type : "UnaryExpression"
158
168
} ]
159
169
} ,
170
+ {
171
+ code : "-(-foo)" ,
172
+ output : null ,
173
+ errors : [ {
174
+ messageId : "useRecommendation" ,
175
+ data : { recommendation : "Number(foo)" } ,
176
+ type : "UnaryExpression"
177
+ } ]
178
+ } ,
160
179
{
161
180
code : "+foo.bar" ,
162
181
output : "Number(foo.bar)" ,
@@ -193,6 +212,15 @@ ruleTester.run("no-implicit-coercion", rule, {
193
212
type : "BinaryExpression"
194
213
} ]
195
214
} ,
215
+ {
216
+ code : "foo.bar-0" ,
217
+ output : "Number(foo.bar)" ,
218
+ errors : [ {
219
+ messageId : "useRecommendation" ,
220
+ data : { recommendation : "Number(foo.bar)" } ,
221
+ type : "BinaryExpression"
222
+ } ]
223
+ } ,
196
224
{
197
225
code : "\"\"+foo" ,
198
226
output : "String(foo)" ,
0 commit comments