]>
git.proxmox.com Git - pve-eslint.git/blob - eslint/tests/lib/rules/computed-property-spacing.js
2 * @fileoverview Disallows or enforces spaces inside computed properties.
3 * @author Jamund Ferguson
7 //------------------------------------------------------------------------------
9 //------------------------------------------------------------------------------
11 const rule
= require("../../../lib/rules/computed-property-spacing"),
12 { RuleTester
} = require("../../../lib/rule-tester");
14 //------------------------------------------------------------------------------
16 //------------------------------------------------------------------------------
18 const ruleTester
= new RuleTester();
20 ruleTester
.run("computed-property-spacing", rule
, {
27 { code
: "var x = {[b]: a}", parserOptions
: { ecmaVersion
: 6 } },
30 { code
: "obj[ foo ]", options
: ["always"] },
31 { code
: "obj[\nfoo\n]", options
: ["always"] },
32 { code
: "obj[ 'foo' ]", options
: ["always"] },
33 { code
: "obj[ 'foo' + 'bar' ]", options
: ["always"] },
34 { code
: "obj[ obj2[ foo ] ]", options
: ["always"] },
35 { code
: "obj.map(function(item) { return [\n1,\n2,\n3,\n4\n]; })", options
: ["always"] },
36 { code
: "obj[ 'map' ](function(item) { return [\n1,\n2,\n3,\n4\n]; })", options
: ["always"] },
37 { code
: "obj[ 'for' + 'Each' ](function(item) { return [\n1,\n2,\n3,\n4\n]; })", options
: ["always"] },
38 { code
: "var foo = obj[ 1 ]", options
: ["always"] },
39 { code
: "var foo = obj[ 'foo' ];", options
: ["always"] },
40 { code
: "var foo = obj[ [1, 1] ];", options
: ["always"] },
42 // always - objectLiteralComputedProperties
43 { code
: "var x = {[ \"a\" ]: a}", options
: ["always"], parserOptions
: { ecmaVersion
: 6 } },
44 { code
: "var y = {[ x ]: a}", options
: ["always"], parserOptions
: { ecmaVersion
: 6 } },
45 { code
: "var x = {[ \"a\" ]() {}}", options
: ["always"], parserOptions
: { ecmaVersion
: 6 } },
46 { code
: "var y = {[ x ]() {}}", options
: ["always"], parserOptions
: { ecmaVersion
: 6 } },
48 // always - unrelated cases
49 { code
: "var foo = {};", options
: ["always"] },
50 { code
: "var foo = [];", options
: ["always"] },
53 { code
: "obj[foo]", options
: ["never"] },
54 { code
: "obj['foo']", options
: ["never"] },
55 { code
: "obj['foo' + 'bar']", options
: ["never"] },
56 { code
: "obj['foo'+'bar']", options
: ["never"] },
57 { code
: "obj[obj2[foo]]", options
: ["never"] },
58 { code
: "obj.map(function(item) { return [\n1,\n2,\n3,\n4\n]; })", options
: ["never"] },
59 { code
: "obj['map'](function(item) { return [\n1,\n2,\n3,\n4\n]; })", options
: ["never"] },
60 { code
: "obj['for' + 'Each'](function(item) { return [\n1,\n2,\n3,\n4\n]; })", options
: ["never"] },
61 { code
: "obj[\nfoo]", options
: ["never"] },
62 { code
: "obj[foo\n]", options
: ["never"] },
63 { code
: "var foo = obj[1]", options
: ["never"] },
64 { code
: "var foo = obj['foo'];", options
: ["never"] },
65 { code
: "var foo = obj[[ 1, 1 ]];", options
: ["never"] },
67 // never - objectLiteralComputedProperties
68 { code
: "var x = {[\"a\"]: a}", options
: ["never"], parserOptions
: { ecmaVersion
: 6 } },
69 { code
: "var y = {[x]: a}", options
: ["never"], parserOptions
: { ecmaVersion
: 6 } },
70 { code
: "var x = {[\"a\"]() {}}", options
: ["never"], parserOptions
: { ecmaVersion
: 6 } },
71 { code
: "var y = {[x]() {}}", options
: ["never"], parserOptions
: { ecmaVersion
: 6 } },
73 // never - unrelated cases
74 { code
: "var foo = {};", options
: ["never"] },
75 { code
: "var foo = [];", options
: ["never"] },
77 //------------------------------------------------------------------------------
79 //------------------------------------------------------------------------------
81 // explicitly disabled option
83 code
: "class A { [ a ](){} }",
84 options
: ["never", { enforceForClassMembers
: false }],
85 parserOptions
: { ecmaVersion
: 6 }
88 code
: "A = class { [ a ](){} get [ b ](){} set [ c ](foo){} static [ d ](){} static get [ e ](){} static set [ f ](bar){} }",
89 options
: ["never", { enforceForClassMembers
: false }],
90 parserOptions
: { ecmaVersion
: 6 }
93 code
: "A = class { [a](){} }",
94 options
: ["always", { enforceForClassMembers
: false }],
95 parserOptions
: { ecmaVersion
: 6 }
98 code
: "class A { [a](){} get [b](){} set [b](foo){} static [c](){} static get [d](){} static set [d](bar){} }",
99 options
: ["always", { enforceForClassMembers
: false }],
100 parserOptions
: { ecmaVersion
: 6 }
103 code
: "class A { [ a ]; }",
104 options
: ["never", { enforceForClassMembers
: false }],
105 parserOptions
: { ecmaVersion
: 2022 }
108 code
: "class A { [a]; }",
109 options
: ["always", { enforceForClassMembers
: false }],
110 parserOptions
: { ecmaVersion
: 2022 }
115 code
: "A = class { [a](){} }",
116 options
: ["never", { enforceForClassMembers
: true }],
117 parserOptions
: { ecmaVersion
: 6 }
120 code
: "class A { [a] ( ) { } }",
121 options
: ["never", { enforceForClassMembers
: true }],
122 parserOptions
: { ecmaVersion
: 6 }
125 code
: "A = class { [ \n a \n ](){} }",
126 options
: ["never", { enforceForClassMembers
: true }],
127 parserOptions
: { ecmaVersion
: 6 }
130 code
: "class A { [a](){} get [b](){} set [b](foo){} static [c](){} static get [d](){} static set [d](bar){} }",
131 options
: ["never", { enforceForClassMembers
: true }],
132 parserOptions
: { ecmaVersion
: 6 }
135 code
: "class A { [ a ](){} }",
136 options
: ["always", { enforceForClassMembers
: true }],
137 parserOptions
: { ecmaVersion
: 6 }
140 code
: "class A { [ a ](){}[ b ](){} }",
141 options
: ["always", { enforceForClassMembers
: true }],
142 parserOptions
: { ecmaVersion
: 6 }
145 code
: "A = class { [\na\n](){} }",
146 options
: ["always", { enforceForClassMembers
: true }],
147 parserOptions
: { ecmaVersion
: 6 }
150 code
: "A = class { [ a ](){} get [ b ](){} set [ c ](foo){} static [ d ](){} static get [ e ](){} static set [ f ](bar){} }",
151 options
: ["always", { enforceForClassMembers
: true }],
152 parserOptions
: { ecmaVersion
: 6 }
155 code
: "A = class { [a]; static [a]; [a] = 0; static [a] = 0; }",
156 options
: ["never", { enforceForClassMembers
: true }],
157 parserOptions
: { ecmaVersion
: 2022 }
160 code
: "A = class { [ a ]; static [ a ]; [ a ] = 0; static [ a ] = 0; }",
161 options
: ["always", { enforceForClassMembers
: true }],
162 parserOptions
: { ecmaVersion
: 2022 }
167 code
: "class A { a ( ) { } get b(){} set b ( foo ){} static c (){} static get d() {} static set d( bar ) {} }",
168 options
: ["never", { enforceForClassMembers
: true }],
169 parserOptions
: { ecmaVersion
: 6 }
172 code
: "A = class {a(){}get b(){}set b(foo){}static c(){}static get d(){}static set d(bar){}}",
173 options
: ["always", { enforceForClassMembers
: true }],
174 parserOptions
: { ecmaVersion
: 6 }
177 code
: "A = class { foo; #a; static #b; #c = 0; static #d = 0; }",
178 options
: ["never", { enforceForClassMembers
: true }],
179 parserOptions
: { ecmaVersion
: 2022 }
182 code
: "A = class { foo; #a; static #b; #c = 0; static #d = 0; }",
183 options
: ["always", { enforceForClassMembers
: true }],
184 parserOptions
: { ecmaVersion
: 2022 }
187 // handling of parens and comments
195 parserOptions
: { ecmaVersion
: 6 }
204 parserOptions
: { ecmaVersion
: 6 }
213 parserOptions
: { ecmaVersion
: 6 }
218 " [ /**/ a /**/ ]: 1",
222 parserOptions
: { ecmaVersion
: 6 }
231 parserOptions
: { ecmaVersion
: 6 }
240 parserOptions
: { ecmaVersion
: 6 }
249 parserOptions
: { ecmaVersion
: 6 }
254 " [ a[ /**/ b ]/**/ ]: 1",
258 parserOptions
: { ecmaVersion
: 6 }
263 " [/**/a[b /**/] /**/]: 1",
267 parserOptions
: { ecmaVersion
: 6 }
270 // Destructuring Assignment
272 code
: "const { [a]: someProp } = obj;",
274 parserOptions
: { ecmaVersion
: 6 }
277 code
: "({ [a]: someProp } = obj);",
279 parserOptions
: { ecmaVersion
: 6 }
282 code
: "const { [ a ]: someProp } = obj;",
284 parserOptions
: { ecmaVersion
: 6 }
287 code
: "({ [ a ]: someProp } = obj);",
289 parserOptions
: { ecmaVersion
: 6 }
296 code
: "var foo = obj[ 1];",
297 output
: "var foo = obj[ 1 ];",
301 messageId
: "missingSpaceBefore",
302 data
: { tokenValue
: "]" },
303 type
: "MemberExpression",
313 code
: "var foo = obj[1 ];",
314 output
: "var foo = obj[ 1 ];",
318 messageId
: "missingSpaceAfter",
319 data
: { tokenValue
: "[" },
320 type
: "MemberExpression",
329 code
: "var foo = obj[ 1];",
330 output
: "var foo = obj[1];",
334 messageId
: "unexpectedSpaceAfter",
335 data
: { tokenValue
: "[" },
336 type
: "MemberExpression",
345 code
: "var foo = obj[1 ];",
346 output
: "var foo = obj[1];",
350 messageId
: "unexpectedSpaceBefore",
351 data
: { tokenValue
: "]" },
352 type
: "MemberExpression",
366 messageId
: "unexpectedSpaceAfter",
367 data
: { tokenValue
: "[" },
368 type
: "MemberExpression",
375 messageId
: "unexpectedSpaceBefore",
376 data
: { tokenValue
: "]" },
377 type
: "MemberExpression",
391 messageId
: "unexpectedSpaceBefore",
392 data
: { tokenValue
: "]" },
393 type
: "MemberExpression",
407 messageId
: "unexpectedSpaceAfter",
408 data
: { tokenValue
: "[" },
409 type
: "MemberExpression",
418 code
: "var foo = obj[1]",
419 output
: "var foo = obj[ 1 ]",
423 messageId
: "missingSpaceAfter",
424 data
: { tokenValue
: "[" },
425 type
: "MemberExpression",
432 messageId
: "missingSpaceBefore",
433 data
: { tokenValue
: "]" },
434 type
: "MemberExpression",
450 messageId
: "unexpectedSpaceAfter",
451 data
: { tokenValue
: "[" },
452 type
: "MemberExpression",
466 messageId
: "unexpectedSpaceAfter",
467 data
: { tokenValue
: "[" },
468 type
: "MemberExpression",
475 messageId
: "unexpectedSpaceBefore",
476 data
: { tokenValue
: "]" },
477 type
: "MemberExpression",
491 messageId
: "unexpectedSpaceAfter",
492 data
: { tokenValue
: "[" },
493 type
: "MemberExpression",
500 messageId
: "unexpectedSpaceBefore",
501 data
: { tokenValue
: "]" },
502 type
: "MemberExpression",
511 code
: "obj[ foo + \n bar ]",
512 output
: "obj[foo + \n bar]",
516 messageId
: "unexpectedSpaceAfter",
517 data
: { tokenValue
: "[" },
518 type
: "MemberExpression",
525 messageId
: "unexpectedSpaceBefore",
526 data
: { tokenValue
: "]" },
527 type
: "MemberExpression",
536 code
: "obj[\n foo ]",
537 output
: "obj[\n foo]",
541 messageId
: "unexpectedSpaceBefore",
542 data
: { tokenValue
: "]" },
543 type
: "MemberExpression",
552 // always - objectLiteralComputedProperties
554 code
: "var x = {[a]: b}",
555 output
: "var x = {[ a ]: b}",
557 parserOptions
: { ecmaVersion
: 6 },
560 messageId
: "missingSpaceAfter",
561 data
: { tokenValue
: "[" },
569 messageId
: "missingSpaceBefore",
570 data
: { tokenValue
: "]" },
580 code
: "var x = {[a ]: b}",
581 output
: "var x = {[ a ]: b}",
583 parserOptions
: { ecmaVersion
: 6 },
586 messageId
: "missingSpaceAfter",
587 data
: { tokenValue
: "[" },
597 code
: "var x = {[ a]: b}",
598 output
: "var x = {[ a ]: b}",
600 parserOptions
: { ecmaVersion
: 6 },
603 messageId
: "missingSpaceBefore",
604 data
: { tokenValue
: "]" },
614 // never - objectLiteralComputedProperties
616 code
: "var x = {[ a ]: b}",
617 output
: "var x = {[a]: b}",
619 parserOptions
: { ecmaVersion
: 6 },
622 messageId
: "unexpectedSpaceAfter",
623 data
: { tokenValue
: "[" },
631 messageId
: "unexpectedSpaceBefore",
632 data
: { tokenValue
: "]" },
642 code
: "var x = {[a ]: b}",
643 output
: "var x = {[a]: b}",
645 parserOptions
: { ecmaVersion
: 6 },
648 messageId
: "unexpectedSpaceBefore",
649 data
: { tokenValue
: "]" },
659 code
: "var x = {[ a]: b}",
660 output
: "var x = {[a]: b}",
662 parserOptions
: { ecmaVersion
: 6 },
665 messageId
: "unexpectedSpaceAfter",
666 data
: { tokenValue
: "[" },
676 code
: "var x = {[ a\n]: b}",
677 output
: "var x = {[a\n]: b}",
679 parserOptions
: { ecmaVersion
: 6 },
682 messageId
: "unexpectedSpaceAfter",
683 data
: { tokenValue
: "[" },
693 // test default settings for classes
695 code
: "class A { [ a ](){} }",
696 output
: "class A { [a](){} }",
697 parserOptions
: { ecmaVersion
: 6 },
700 messageId
: "unexpectedSpaceAfter",
701 data
: { tokenValue
: "[" },
702 type
: "MethodDefinition",
709 messageId
: "unexpectedSpaceBefore",
710 data
: { tokenValue
: "]" },
711 type
: "MethodDefinition",
720 code
: "class A { [ a ](){} get [ b ](){} set [ c ](foo){} static [ d ](){} static get [ e ](){} static set [ f ](bar){} }",
721 output
: "class A { [a](){} get [b](){} set [c](foo){} static [d](){} static get [e](){} static set [f](bar){} }",
723 parserOptions
: { ecmaVersion
: 6 },
726 messageId
: "unexpectedSpaceAfter",
727 data
: { tokenValue
: "[" },
728 type
: "MethodDefinition",
735 messageId
: "unexpectedSpaceBefore",
736 data
: { tokenValue
: "]" },
737 type
: "MethodDefinition",
744 messageId
: "unexpectedSpaceAfter",
745 data
: { tokenValue
: "[" },
746 type
: "MethodDefinition",
753 messageId
: "unexpectedSpaceBefore",
754 data
: { tokenValue
: "]" },
755 type
: "MethodDefinition",
762 messageId
: "unexpectedSpaceAfter",
763 data
: { tokenValue
: "[" },
764 type
: "MethodDefinition",
771 messageId
: "unexpectedSpaceBefore",
772 data
: { tokenValue
: "]" },
773 type
: "MethodDefinition",
780 messageId
: "unexpectedSpaceAfter",
781 data
: { tokenValue
: "[" },
782 type
: "MethodDefinition",
789 messageId
: "unexpectedSpaceBefore",
790 data
: { tokenValue
: "]" },
791 type
: "MethodDefinition",
798 messageId
: "unexpectedSpaceAfter",
799 data
: { tokenValue
: "[" },
800 type
: "MethodDefinition",
807 messageId
: "unexpectedSpaceBefore",
808 data
: { tokenValue
: "]" },
809 type
: "MethodDefinition",
816 messageId
: "unexpectedSpaceAfter",
817 data
: { tokenValue
: "[" },
818 type
: "MethodDefinition",
825 messageId
: "unexpectedSpaceBefore",
826 data
: { tokenValue
: "]" },
827 type
: "MethodDefinition",
836 code
: "A = class { [ a ](){} get [ b ](){} set [ c ](foo){} static [ d ](){} static get [ e ](){} static set [ f ](bar){} }",
837 output
: "A = class { [a](){} get [b](){} set [c](foo){} static [d](){} static get [e](){} static set [f](bar){} }",
838 options
: ["never", {}],
839 parserOptions
: { ecmaVersion
: 6 },
842 messageId
: "unexpectedSpaceAfter",
843 data
: { tokenValue
: "[" },
844 type
: "MethodDefinition",
851 messageId
: "unexpectedSpaceBefore",
852 data
: { tokenValue
: "]" },
853 type
: "MethodDefinition",
860 messageId
: "unexpectedSpaceAfter",
861 data
: { tokenValue
: "[" },
862 type
: "MethodDefinition",
869 messageId
: "unexpectedSpaceBefore",
870 data
: { tokenValue
: "]" },
871 type
: "MethodDefinition",
878 messageId
: "unexpectedSpaceAfter",
879 data
: { tokenValue
: "[" },
880 type
: "MethodDefinition",
887 messageId
: "unexpectedSpaceBefore",
888 data
: { tokenValue
: "]" },
889 type
: "MethodDefinition",
896 messageId
: "unexpectedSpaceAfter",
897 data
: { tokenValue
: "[" },
898 type
: "MethodDefinition",
905 messageId
: "unexpectedSpaceBefore",
906 data
: { tokenValue
: "]" },
907 type
: "MethodDefinition",
914 messageId
: "unexpectedSpaceAfter",
915 data
: { tokenValue
: "[" },
916 type
: "MethodDefinition",
923 messageId
: "unexpectedSpaceBefore",
924 data
: { tokenValue
: "]" },
925 type
: "MethodDefinition",
932 messageId
: "unexpectedSpaceAfter",
933 data
: { tokenValue
: "[" },
934 type
: "MethodDefinition",
941 messageId
: "unexpectedSpaceBefore",
942 data
: { tokenValue
: "]" },
943 type
: "MethodDefinition",
952 code
: "A = class { [a](){} }",
953 output
: "A = class { [ a ](){} }",
955 parserOptions
: { ecmaVersion
: 6 },
958 messageId
: "missingSpaceAfter",
959 data
: { tokenValue
: "[" },
960 type
: "MethodDefinition",
967 messageId
: "missingSpaceBefore",
968 data
: { tokenValue
: "]" },
969 type
: "MethodDefinition",
978 code
: "A = class { [a](){} get [b](){} set [c](foo){} static [d](){} static get [e](){} static set [f](bar){} }",
979 output
: "A = class { [ a ](){} get [ b ](){} set [ c ](foo){} static [ d ](){} static get [ e ](){} static set [ f ](bar){} }",
981 parserOptions
: { ecmaVersion
: 6 },
984 messageId
: "missingSpaceAfter",
985 data
: { tokenValue
: "[" },
986 type
: "MethodDefinition",
993 messageId
: "missingSpaceBefore",
994 data
: { tokenValue
: "]" },
995 type
: "MethodDefinition",
1002 messageId
: "missingSpaceAfter",
1003 data
: { tokenValue
: "[" },
1004 type
: "MethodDefinition",
1011 messageId
: "missingSpaceBefore",
1012 data
: { tokenValue
: "]" },
1013 type
: "MethodDefinition",
1020 messageId
: "missingSpaceAfter",
1021 data
: { tokenValue
: "[" },
1022 type
: "MethodDefinition",
1029 messageId
: "missingSpaceBefore",
1030 data
: { tokenValue
: "]" },
1031 type
: "MethodDefinition",
1038 messageId
: "missingSpaceAfter",
1039 data
: { tokenValue
: "[" },
1040 type
: "MethodDefinition",
1047 messageId
: "missingSpaceBefore",
1048 data
: { tokenValue
: "]" },
1049 type
: "MethodDefinition",
1056 messageId
: "missingSpaceAfter",
1057 data
: { tokenValue
: "[" },
1058 type
: "MethodDefinition",
1065 messageId
: "missingSpaceBefore",
1066 data
: { tokenValue
: "]" },
1067 type
: "MethodDefinition",
1074 messageId
: "missingSpaceAfter",
1075 data
: { tokenValue
: "[" },
1076 type
: "MethodDefinition",
1083 messageId
: "missingSpaceBefore",
1084 data
: { tokenValue
: "]" },
1085 type
: "MethodDefinition",
1094 code
: "class A { [a](){} get [b](){} set [c](foo){} static [d](){} static get [e](){} static set [f](bar){} }",
1095 output
: "class A { [ a ](){} get [ b ](){} set [ c ](foo){} static [ d ](){} static get [ e ](){} static set [ f ](bar){} }",
1096 options
: ["always", {}],
1097 parserOptions
: { ecmaVersion
: 6 },
1100 messageId
: "missingSpaceAfter",
1101 data
: { tokenValue
: "[" },
1102 type
: "MethodDefinition",
1109 messageId
: "missingSpaceBefore",
1110 data
: { tokenValue
: "]" },
1111 type
: "MethodDefinition",
1118 messageId
: "missingSpaceAfter",
1119 data
: { tokenValue
: "[" },
1120 type
: "MethodDefinition",
1127 messageId
: "missingSpaceBefore",
1128 data
: { tokenValue
: "]" },
1129 type
: "MethodDefinition",
1136 messageId
: "missingSpaceAfter",
1137 data
: { tokenValue
: "[" },
1138 type
: "MethodDefinition",
1145 messageId
: "missingSpaceBefore",
1146 data
: { tokenValue
: "]" },
1147 type
: "MethodDefinition",
1154 messageId
: "missingSpaceAfter",
1155 data
: { tokenValue
: "[" },
1156 type
: "MethodDefinition",
1163 messageId
: "missingSpaceBefore",
1164 data
: { tokenValue
: "]" },
1165 type
: "MethodDefinition",
1172 messageId
: "missingSpaceAfter",
1173 data
: { tokenValue
: "[" },
1174 type
: "MethodDefinition",
1181 messageId
: "missingSpaceBefore",
1182 data
: { tokenValue
: "]" },
1183 type
: "MethodDefinition",
1190 messageId
: "missingSpaceAfter",
1191 data
: { tokenValue
: "[" },
1192 type
: "MethodDefinition",
1199 messageId
: "missingSpaceBefore",
1200 data
: { tokenValue
: "]" },
1201 type
: "MethodDefinition",
1212 code
: "class A { [ a](){} }",
1213 output
: "class A { [a](){} }",
1214 options
: ["never", { enforceForClassMembers
: true }],
1215 parserOptions
: { ecmaVersion
: 6 },
1218 messageId
: "unexpectedSpaceAfter",
1219 data
: { tokenValue
: "[" },
1220 type
: "MethodDefinition",
1229 code
: "A = class { [a](){} b(){} static [c ](){} static [d](){}}",
1230 output
: "A = class { [a](){} b(){} static [c](){} static [d](){}}",
1231 options
: ["never", { enforceForClassMembers
: true }],
1232 parserOptions
: { ecmaVersion
: 6 },
1235 messageId
: "unexpectedSpaceBefore",
1236 data
: { tokenValue
: "]" },
1237 type
: "MethodDefinition",
1246 code
: "class A { get [a ](){} set [ a](foo){} get b(){} static set b(bar){} static get [ a](){} static set [a ](baz){} }",
1247 output
: "class A { get [a](){} set [a](foo){} get b(){} static set b(bar){} static get [a](){} static set [a](baz){} }",
1248 options
: ["never", { enforceForClassMembers
: true }],
1249 parserOptions
: { ecmaVersion
: 6 },
1252 messageId
: "unexpectedSpaceBefore",
1253 data
: { tokenValue
: "]" },
1254 type
: "MethodDefinition",
1261 messageId
: "unexpectedSpaceAfter",
1262 data
: { tokenValue
: "[" },
1263 type
: "MethodDefinition",
1270 messageId
: "unexpectedSpaceAfter",
1271 data
: { tokenValue
: "[" },
1272 type
: "MethodDefinition",
1279 messageId
: "unexpectedSpaceBefore",
1280 data
: { tokenValue
: "]" },
1281 type
: "MethodDefinition",
1290 code
: "A = class { [ a ](){} get [ b ](){} set [ c ](foo){} static [ d ](){} static get [ e ](){} static set [ f ](bar){} }",
1291 output
: "A = class { [a](){} get [b](){} set [c](foo){} static [d](){} static get [e](){} static set [f](bar){} }",
1292 options
: ["never", { enforceForClassMembers
: true }],
1293 parserOptions
: { ecmaVersion
: 6 },
1296 messageId
: "unexpectedSpaceAfter",
1297 data
: { tokenValue
: "[" },
1298 type
: "MethodDefinition",
1305 messageId
: "unexpectedSpaceBefore",
1306 data
: { tokenValue
: "]" },
1307 type
: "MethodDefinition",
1314 messageId
: "unexpectedSpaceAfter",
1315 data
: { tokenValue
: "[" },
1316 type
: "MethodDefinition",
1323 messageId
: "unexpectedSpaceBefore",
1324 data
: { tokenValue
: "]" },
1325 type
: "MethodDefinition",
1332 messageId
: "unexpectedSpaceAfter",
1333 data
: { tokenValue
: "[" },
1334 type
: "MethodDefinition",
1341 messageId
: "unexpectedSpaceBefore",
1342 data
: { tokenValue
: "]" },
1343 type
: "MethodDefinition",
1350 messageId
: "unexpectedSpaceAfter",
1351 data
: { tokenValue
: "[" },
1352 type
: "MethodDefinition",
1359 messageId
: "unexpectedSpaceBefore",
1360 data
: { tokenValue
: "]" },
1361 type
: "MethodDefinition",
1368 messageId
: "unexpectedSpaceAfter",
1369 data
: { tokenValue
: "[" },
1370 type
: "MethodDefinition",
1377 messageId
: "unexpectedSpaceBefore",
1378 data
: { tokenValue
: "]" },
1379 type
: "MethodDefinition",
1386 messageId
: "unexpectedSpaceAfter",
1387 data
: { tokenValue
: "[" },
1388 type
: "MethodDefinition",
1395 messageId
: "unexpectedSpaceBefore",
1396 data
: { tokenValue
: "]" },
1397 type
: "MethodDefinition",
1406 code
: "class A { [ a]; [b ]; [ c ]; [ a] = 0; [b ] = 0; [ c ] = 0; }",
1407 output
: "class A { [a]; [b]; [c]; [a] = 0; [b] = 0; [c] = 0; }",
1408 options
: ["never", { enforceForClassMembers
: true }],
1409 parserOptions
: { ecmaVersion
: 2022 },
1412 messageId
: "unexpectedSpaceAfter",
1413 data
: { tokenValue
: "[" },
1418 messageId
: "unexpectedSpaceBefore",
1419 data
: { tokenValue
: "]" },
1424 messageId
: "unexpectedSpaceAfter",
1425 data
: { tokenValue
: "[" },
1430 messageId
: "unexpectedSpaceBefore",
1431 data
: { tokenValue
: "]" },
1436 messageId
: "unexpectedSpaceAfter",
1437 data
: { tokenValue
: "[" },
1442 messageId
: "unexpectedSpaceBefore",
1443 data
: { tokenValue
: "]" },
1448 messageId
: "unexpectedSpaceAfter",
1449 data
: { tokenValue
: "[" },
1454 messageId
: "unexpectedSpaceBefore",
1455 data
: { tokenValue
: "]" },
1464 code
: "class A { [ a](){} }",
1465 output
: "class A { [ a ](){} }",
1466 options
: ["always", { enforceForClassMembers
: true }],
1467 parserOptions
: { ecmaVersion
: 6 },
1470 messageId
: "missingSpaceBefore",
1471 data
: { tokenValue
: "]" },
1472 type
: "MethodDefinition",
1481 code
: "A = class { [ a ](){} b(){} static [c ](){} static [ d ](){}}",
1482 output
: "A = class { [ a ](){} b(){} static [ c ](){} static [ d ](){}}",
1483 options
: ["always", { enforceForClassMembers
: true }],
1484 parserOptions
: { ecmaVersion
: 6 },
1487 messageId
: "missingSpaceAfter",
1488 data
: { tokenValue
: "[" },
1489 type
: "MethodDefinition",
1498 code
: "class A { get [a ](){} set [ a](foo){} get b(){} static set b(bar){} static get [ a](){} static set [a ](baz){} }",
1499 output
: "class A { get [ a ](){} set [ a ](foo){} get b(){} static set b(bar){} static get [ a ](){} static set [ a ](baz){} }",
1500 options
: ["always", { enforceForClassMembers
: true }],
1501 parserOptions
: { ecmaVersion
: 6 },
1504 messageId
: "missingSpaceAfter",
1505 data
: { tokenValue
: "[" },
1506 type
: "MethodDefinition",
1513 messageId
: "missingSpaceBefore",
1514 data
: { tokenValue
: "]" },
1515 type
: "MethodDefinition",
1522 messageId
: "missingSpaceBefore",
1523 data
: { tokenValue
: "]" },
1524 type
: "MethodDefinition",
1531 messageId
: "missingSpaceAfter",
1532 data
: { tokenValue
: "[" },
1533 type
: "MethodDefinition",
1542 code
: "A = class { [a](){} get [b](){} set [c](foo){} static [d](){} static get [e](){} static set [f](bar){} }",
1543 output
: "A = class { [ a ](){} get [ b ](){} set [ c ](foo){} static [ d ](){} static get [ e ](){} static set [ f ](bar){} }",
1544 options
: ["always", { enforceForClassMembers
: true }],
1545 parserOptions
: { ecmaVersion
: 6 },
1548 messageId
: "missingSpaceAfter",
1549 data
: { tokenValue
: "[" },
1550 type
: "MethodDefinition",
1557 messageId
: "missingSpaceBefore",
1558 data
: { tokenValue
: "]" },
1559 type
: "MethodDefinition",
1566 messageId
: "missingSpaceAfter",
1567 data
: { tokenValue
: "[" },
1568 type
: "MethodDefinition",
1575 messageId
: "missingSpaceBefore",
1576 data
: { tokenValue
: "]" },
1577 type
: "MethodDefinition",
1584 messageId
: "missingSpaceAfter",
1585 data
: { tokenValue
: "[" },
1586 type
: "MethodDefinition",
1593 messageId
: "missingSpaceBefore",
1594 data
: { tokenValue
: "]" },
1595 type
: "MethodDefinition",
1602 messageId
: "missingSpaceAfter",
1603 data
: { tokenValue
: "[" },
1604 type
: "MethodDefinition",
1611 messageId
: "missingSpaceBefore",
1612 data
: { tokenValue
: "]" },
1613 type
: "MethodDefinition",
1620 messageId
: "missingSpaceAfter",
1621 data
: { tokenValue
: "[" },
1622 type
: "MethodDefinition",
1629 messageId
: "missingSpaceBefore",
1630 data
: { tokenValue
: "]" },
1631 type
: "MethodDefinition",
1638 messageId
: "missingSpaceAfter",
1639 data
: { tokenValue
: "[" },
1640 type
: "MethodDefinition",
1647 messageId
: "missingSpaceBefore",
1648 data
: { tokenValue
: "]" },
1649 type
: "MethodDefinition",
1658 code
: "class A { [ a]; [b ]; [c]; [ a] = 0; [b ] = 0; [c] = 0; }",
1659 output
: "class A { [ a ]; [ b ]; [ c ]; [ a ] = 0; [ b ] = 0; [ c ] = 0; }",
1660 options
: ["always", { enforceForClassMembers
: true }],
1661 parserOptions
: { ecmaVersion
: 2022 },
1664 messageId
: "missingSpaceBefore",
1669 messageId
: "missingSpaceAfter",
1674 messageId
: "missingSpaceAfter",
1679 messageId
: "missingSpaceBefore",
1684 messageId
: "missingSpaceBefore",
1689 messageId
: "missingSpaceAfter",
1694 messageId
: "missingSpaceAfter",
1699 messageId
: "missingSpaceBefore",
1706 // handling of parens and comments
1718 options
: ["always"],
1719 parserOptions
: { ecmaVersion
: 6 },
1722 messageId
: "missingSpaceAfter",
1723 data
: { tokenValue
: "[" },
1731 messageId
: "missingSpaceBefore",
1732 data
: { tokenValue
: "]" },
1752 options
: ["always"],
1753 parserOptions
: { ecmaVersion
: 6 },
1756 messageId
: "missingSpaceAfter",
1757 data
: { tokenValue
: "[" },
1765 messageId
: "missingSpaceBefore",
1766 data
: { tokenValue
: "]" },
1787 parserOptions
: { ecmaVersion
: 6 },
1790 messageId
: "unexpectedSpaceAfter",
1791 data
: { tokenValue
: "[" },
1799 messageId
: "unexpectedSpaceBefore",
1800 data
: { tokenValue
: "]" },
1812 " [/**/ a /**/]: 1",
1817 " [ /**/ a /**/ ]: 1",
1820 options
: ["always"],
1821 parserOptions
: { ecmaVersion
: 6 },
1824 messageId
: "missingSpaceAfter",
1825 data
: { tokenValue
: "[" },
1833 messageId
: "missingSpaceBefore",
1834 data
: { tokenValue
: "]" },
1846 " [ /**/ a /**/ ]: 1",
1851 " [/**/ a /**/]: 1",
1855 parserOptions
: { ecmaVersion
: 6 },
1858 messageId
: "unexpectedSpaceAfter",
1859 data
: { tokenValue
: "[" },
1867 messageId
: "unexpectedSpaceBefore",
1868 data
: { tokenValue
: "]" },
1888 options
: ["always"],
1889 parserOptions
: { ecmaVersion
: 6 },
1892 messageId
: "missingSpaceAfter",
1893 data
: { tokenValue
: "[" },
1901 messageId
: "missingSpaceAfter",
1902 data
: { tokenValue
: "[" },
1903 type
: "MemberExpression",
1910 messageId
: "missingSpaceBefore",
1911 data
: { tokenValue
: "]" },
1912 type
: "MemberExpression",
1919 messageId
: "missingSpaceBefore",
1920 data
: { tokenValue
: "]" },
1941 parserOptions
: { ecmaVersion
: 6 },
1944 messageId
: "unexpectedSpaceAfter",
1945 data
: { tokenValue
: "[" },
1953 messageId
: "unexpectedSpaceAfter",
1954 data
: { tokenValue
: "[" },
1955 type
: "MemberExpression",
1962 messageId
: "unexpectedSpaceBefore",
1963 data
: { tokenValue
: "]" },
1964 type
: "MemberExpression",
1971 messageId
: "unexpectedSpaceBefore",
1972 data
: { tokenValue
: "]" },
1984 " [a[/**/ b ]/**/]: 1",
1989 " [ a[ /**/ b ]/**/ ]: 1",
1992 options
: ["always"],
1993 parserOptions
: { ecmaVersion
: 6 },
1996 messageId
: "missingSpaceAfter",
1997 data
: { tokenValue
: "[" },
2005 messageId
: "missingSpaceAfter",
2006 data
: { tokenValue
: "[" },
2007 type
: "MemberExpression",
2014 messageId
: "missingSpaceBefore",
2015 data
: { tokenValue
: "]" },
2027 " [ /**/a[ b /**/ ] /**/]: 1",
2032 " [/**/a[b /**/] /**/]: 1",
2036 parserOptions
: { ecmaVersion
: 6 },
2039 messageId
: "unexpectedSpaceAfter",
2040 data
: { tokenValue
: "[" },
2048 messageId
: "unexpectedSpaceAfter",
2049 data
: { tokenValue
: "[" },
2050 type
: "MemberExpression",
2057 messageId
: "unexpectedSpaceBefore",
2058 data
: { tokenValue
: "]" },
2059 type
: "MemberExpression",
2068 // Optional chaining
2071 output
: "obj?.[ 1 ];",
2072 options
: ["always"],
2073 parserOptions
: { ecmaVersion
: 2020 },
2075 { messageId
: "missingSpaceAfter", data
: { tokenValue
: "[" } },
2076 { messageId
: "missingSpaceBefore", data
: { tokenValue
: "]" } }
2080 code
: "obj?.[ 1 ];",
2081 output
: "obj?.[1];",
2083 parserOptions
: { ecmaVersion
: 2020 },
2085 { messageId
: "unexpectedSpaceAfter", data
: { tokenValue
: "[" } },
2086 { messageId
: "unexpectedSpaceBefore", data
: { tokenValue
: "]" } }
2090 // Destructuring Assignment
2092 code
: "const { [ a]: someProp } = obj;",
2093 output
: "const { [a]: someProp } = obj;",
2095 parserOptions
: { ecmaVersion
: 2022 },
2097 { messageId
: "unexpectedSpaceAfter", data
: { tokenValue
: "[" } }
2101 code
: "const { [a ]: someProp } = obj;",
2102 output
: "const { [a]: someProp } = obj;",
2104 parserOptions
: { ecmaVersion
: 2022 },
2106 { messageId
: "unexpectedSpaceBefore", data
: { tokenValue
: "]" } }
2110 code
: "const { [ a ]: someProp } = obj;",
2111 output
: "const { [a]: someProp } = obj;",
2113 parserOptions
: { ecmaVersion
: 2022 },
2115 { messageId
: "unexpectedSpaceAfter", data
: { tokenValue
: "[" } },
2116 { messageId
: "unexpectedSpaceBefore", data
: { tokenValue
: "]" } }
2120 code
: "({ [ a ]: someProp } = obj);",
2121 output
: "({ [a]: someProp } = obj);",
2123 parserOptions
: { ecmaVersion
: 2022 },
2125 { messageId
: "unexpectedSpaceAfter", data
: { tokenValue
: "[" } },
2126 { messageId
: "unexpectedSpaceBefore", data
: { tokenValue
: "]" } }
2130 code
: "const { [a]: someProp } = obj;",
2131 output
: "const { [ a ]: someProp } = obj;",
2132 options
: ["always"],
2133 parserOptions
: { ecmaVersion
: 2022 },
2135 { messageId
: "missingSpaceAfter", data
: { tokenValue
: "[" } },
2136 { messageId
: "missingSpaceBefore", data
: { tokenValue
: "]" } }
2140 code
: "({ [a]: someProp } = obj);",
2141 output
: "({ [ a ]: someProp } = obj);",
2142 options
: ["always"],
2143 parserOptions
: { ecmaVersion
: 2022 },
2145 { messageId
: "missingSpaceAfter", data
: { tokenValue
: "[" } },
2146 { messageId
: "missingSpaceBefore", data
: { tokenValue
: "]" } }