@@ -24,6 +24,15 @@ ruleTester.run("no-useless-computed-key", rule, {
24
24
"({ [x]: 0 });" ,
25
25
"({ a: 0, [b](){} })" ,
26
26
"({ ['__proto__']: [] })" ,
27
+ "var { 'a': foo } = obj" ,
28
+ "var { [a]: b } = obj;" ,
29
+ "var { a } = obj;" ,
30
+ "var { a: a } = obj;" ,
31
+ "var { a: b } = obj;" ,
32
+
33
+ // ['__proto__'] is useless computed key in object patterns, but the rule doesn't report it for backwards compatibility since it's frozen
34
+ "var { ['__proto__']: a } = obj" ,
35
+
27
36
{ code : "class Foo { a() {} }" , options : [ { enforceForClassMembers : true } ] } ,
28
37
{ code : "class Foo { 'a'() {} }" , options : [ { enforceForClassMembers : true } ] } ,
29
38
{ code : "class Foo { [x]() {} }" , options : [ { enforceForClassMembers : true } ] } ,
@@ -64,6 +73,14 @@ ruleTester.run("no-useless-computed-key", rule, {
64
73
data : { property : "'0'" } ,
65
74
type : "Property"
66
75
} ]
76
+ } , {
77
+ code : "var { ['0']: a } = obj" ,
78
+ output : "var { '0': a } = obj" ,
79
+ errors : [ {
80
+ messageId : "unnecessarilyComputedProperty" ,
81
+ data : { property : "'0'" } ,
82
+ type : "Property"
83
+ } ]
67
84
} , {
68
85
code : "({ ['0+1,234']: 0 })" ,
69
86
output : "({ '0+1,234': 0 })" ,
@@ -80,6 +97,14 @@ ruleTester.run("no-useless-computed-key", rule, {
80
97
data : { property : "0" } ,
81
98
type : "Property"
82
99
} ]
100
+ } , {
101
+ code : "var { [0]: a } = obj" ,
102
+ output : "var { 0: a } = obj" ,
103
+ errors : [ {
104
+ messageId : "unnecessarilyComputedProperty" ,
105
+ data : { property : "0" } ,
106
+ type : "Property"
107
+ } ]
83
108
} , {
84
109
code : "({ ['x']: 0 })" ,
85
110
output : "({ 'x': 0 })" ,
@@ -88,6 +113,14 @@ ruleTester.run("no-useless-computed-key", rule, {
88
113
data : { property : "'x'" } ,
89
114
type : "Property"
90
115
} ]
116
+ } , {
117
+ code : "var { ['x']: a } = obj" ,
118
+ output : "var { 'x': a } = obj" ,
119
+ errors : [ {
120
+ messageId : "unnecessarilyComputedProperty" ,
121
+ data : { property : "'x'" } ,
122
+ type : "Property"
123
+ } ]
91
124
} , {
92
125
code : "({ ['x']() {} })" ,
93
126
output : "({ 'x'() {} })" ,
@@ -120,6 +153,14 @@ ruleTester.run("no-useless-computed-key", rule, {
120
153
data : { property : "'x'" } ,
121
154
type : "Property"
122
155
} ]
156
+ } , {
157
+ code : "var { [('x')]: a } = obj" ,
158
+ output : "var { 'x': a } = obj" ,
159
+ errors : [ {
160
+ messageId : "unnecessarilyComputedProperty" ,
161
+ data : { property : "'x'" } ,
162
+ type : "Property"
163
+ } ]
123
164
} , {
124
165
code : "({ *['x']() {} })" ,
125
166
output : "({ *'x'() {} })" ,
0 commit comments