]>
git.proxmox.com Git - pve-eslint.git/blob - eslint/tests/lib/rules/padding-line-between-statements.js
2 * @fileoverview Tests for padding-line-between-statements rule.
3 * @author Toru Nagashima
8 //------------------------------------------------------------------------------
10 //------------------------------------------------------------------------------
12 const rule
= require ( "../../../lib/rules/padding-line-between-statements" );
13 const { RuleTester
} = require ( "../../../lib/rule-tester" );
15 //------------------------------------------------------------------------------
17 //------------------------------------------------------------------------------
19 const ruleTester
= new RuleTester ({ parserOptions
: { ecmaVersion
: 2017 } });
21 ruleTester
. run ( "padding-line-between-statements" , rule
, {
24 // do nothing if no options.
25 "'use strict'; foo(); if (a) { bar(); }" ,
27 // do nothing for single statement.
31 { blankLine
: "never" , prev
: "*" , next
: "*" }
37 { blankLine
: "always" , prev
: "*" , next
: "*" }
41 //----------------------------------------------------------------------
43 //----------------------------------------------------------------------
48 { blankLine
: "never" , prev
: "*" , next
: "*" }
52 code
: "foo(); \n bar();" ,
54 { blankLine
: "never" , prev
: "*" , next
: "*" }
58 code
: "foo(); \n //comment \n bar();" ,
60 { blankLine
: "never" , prev
: "*" , next
: "*" }
64 code
: "foo(); \n /*comment*/ \n bar();" ,
66 { blankLine
: "never" , prev
: "*" , next
: "*" }
70 code
: "foo(); \n\n bar();" ,
72 { blankLine
: "always" , prev
: "*" , next
: "*" }
76 code
: "foo(); \n\n //comment \n bar();" ,
78 { blankLine
: "always" , prev
: "*" , next
: "*" }
82 code
: "foo(); \n //comment \n\n bar();" ,
84 { blankLine
: "always" , prev
: "*" , next
: "*" }
88 code
: "foo(); \n //comment \n\n //comment \n bar();" ,
90 { blankLine
: "always" , prev
: "*" , next
: "*" }
94 code
: "if(a){} \n\n ;[].map(b)" ,
96 { blankLine
: "always" , prev
: "if" , next
: "*" },
97 { blankLine
: "never" , prev
: "empty" , next
: "*" }
102 //----------------------------------------------------------------------
104 //----------------------------------------------------------------------
107 code
: "foo(); \n\n { foo() } \n\n foo();" ,
109 { blankLine
: "always" , prev
: "*" , next
: "*" },
110 { blankLine
: "never" , prev
: "block-like" , next
: "block-like" }
114 code
: "{ foo() } { foo() }" ,
116 { blankLine
: "always" , prev
: "*" , next
: "*" },
117 { blankLine
: "never" , prev
: "block-like" , next
: "block-like" }
121 code
: "{ foo() } \n { foo() }" ,
123 { blankLine
: "always" , prev
: "*" , next
: "*" },
124 { blankLine
: "never" , prev
: "block-like" , next
: "block-like" }
128 code
: "{ foo() } \n\n { foo() }" ,
130 { blankLine
: "never" , prev
: "*" , next
: "*" },
131 { blankLine
: "always" , prev
: "block-like" , next
: "block-like" }
135 code
: "{ foo() } \n\n //comment \n { foo() }" ,
137 { blankLine
: "never" , prev
: "*" , next
: "*" },
138 { blankLine
: "always" , prev
: "block-like" , next
: "block-like" }
142 code
: "if(a); \n foo()" ,
144 { blankLine
: "never" , prev
: "*" , next
: "*" },
145 { blankLine
: "always" , prev
: "block-like" , next
: "*" }
149 code
: "do;while(a); \n foo()" ,
151 { blankLine
: "never" , prev
: "*" , next
: "*" },
152 { blankLine
: "always" , prev
: "block-like" , next
: "*" }
156 code
: "do{}while(a); \n\n foo()" ,
158 { blankLine
: "never" , prev
: "*" , next
: "*" },
159 { blankLine
: "always" , prev
: "block-like" , next
: "*" }
165 { blankLine
: "never" , prev
: "*" , next
: "*" },
166 { blankLine
: "always" , prev
: "block-like" , next
: "*" }
170 code
: "let a={} \n foo()" ,
172 { blankLine
: "never" , prev
: "*" , next
: "*" },
173 { blankLine
: "always" , prev
: "block-like" , next
: "*" }
177 code
: "foo(function(){}) \n foo()" ,
179 { blankLine
: "never" , prev
: "*" , next
: "*" },
180 { blankLine
: "always" , prev
: "block-like" , next
: "*" }
184 code
: "(function(){})() \n\n foo()" ,
186 { blankLine
: "never" , prev
: "*" , next
: "*" },
187 { blankLine
: "always" , prev
: "block-like" , next
: "*" }
191 code
: "!function(){}() \n\n foo()" ,
193 { blankLine
: "never" , prev
: "*" , next
: "*" },
194 { blankLine
: "always" , prev
: "block-like" , next
: "*" }
198 //----------------------------------------------------------------------
200 //----------------------------------------------------------------------
203 code
: "module.exports=1" ,
205 { blankLine
: "never" , prev
: "*" , next
: "*" },
206 { blankLine
: "always" , prev
: "cjs-export" , next
: "*" }
210 code
: "module.exports=1 \n\n foo()" ,
212 { blankLine
: "never" , prev
: "*" , next
: "*" },
213 { blankLine
: "always" , prev
: "cjs-export" , next
: "*" }
217 code
: "module.exports.foo=1 \n\n foo()" ,
219 { blankLine
: "never" , prev
: "*" , next
: "*" },
220 { blankLine
: "always" , prev
: "cjs-export" , next
: "*" }
224 code
: "exports.foo=1 \n\n foo()" ,
226 { blankLine
: "never" , prev
: "*" , next
: "*" },
227 { blankLine
: "always" , prev
: "cjs-export" , next
: "*" }
231 code
: "m.exports=1 \n foo()" ,
233 { blankLine
: "never" , prev
: "*" , next
: "*" },
234 { blankLine
: "always" , prev
: "cjs-export" , next
: "*" }
238 code
: "module.foo=1 \n foo()" ,
240 { blankLine
: "never" , prev
: "*" , next
: "*" },
241 { blankLine
: "always" , prev
: "cjs-export" , next
: "*" }
245 //----------------------------------------------------------------------
247 //----------------------------------------------------------------------
250 code
: "foo=require( \" foo \" ) \n foo()" ,
252 { blankLine
: "never" , prev
: "*" , next
: "*" },
253 { blankLine
: "always" , prev
: "cjs-import" , next
: "*" }
257 code
: "const foo=a.require( \" foo \" ) \n foo()" ,
259 { blankLine
: "never" , prev
: "*" , next
: "*" },
260 { blankLine
: "always" , prev
: "cjs-import" , next
: "*" }
264 //----------------------------------------------------------------------
266 //----------------------------------------------------------------------
269 code
: " \" use strict \"\n\n foo()" ,
271 { blankLine
: "never" , prev
: "*" , next
: "*" },
272 { blankLine
: "always" , prev
: "directive" , next
: "*" }
276 code
: "function foo(){ \" use strict \"\n\n foo()}" ,
278 { blankLine
: "never" , prev
: "*" , next
: "*" },
279 { blankLine
: "always" , prev
: "directive" , next
: "*" }
283 code
: "(function foo(){ \" use strict \"\n\n foo()})" ,
285 { blankLine
: "never" , prev
: "*" , next
: "*" },
286 { blankLine
: "always" , prev
: "directive" , next
: "*" }
290 code
: "(()=>{ \" use strict \"\n\n foo()})" ,
292 { blankLine
: "never" , prev
: "*" , next
: "*" },
293 { blankLine
: "always" , prev
: "directive" , next
: "*" }
297 code
: "'use strict' \n\n foo()" ,
299 { blankLine
: "never" , prev
: "*" , next
: "*" },
300 { blankLine
: "always" , prev
: "directive" , next
: "*" }
304 code
: "foo( \" use strict \" ) \n foo()" ,
306 { blankLine
: "never" , prev
: "*" , next
: "*" },
307 { blankLine
: "always" , prev
: "directive" , next
: "*" }
311 code
: "`use strict` \n foo()" ,
313 { blankLine
: "never" , prev
: "*" , next
: "*" },
314 { blankLine
: "always" , prev
: "directive" , next
: "*" }
318 code
: "( \" use strict \" ) \n foo()" ,
320 { blankLine
: "never" , prev
: "*" , next
: "*" },
321 { blankLine
: "always" , prev
: "directive" , next
: "*" }
325 code
: "'use '+'strict' \n foo()" ,
327 { blankLine
: "never" , prev
: "*" , next
: "*" },
328 { blankLine
: "always" , prev
: "directive" , next
: "*" }
332 code
: "foo() \n\" use strict \"\n foo()" ,
334 { blankLine
: "never" , prev
: "*" , next
: "*" },
335 { blankLine
: "always" , prev
: "directive" , next
: "*" }
339 code
: "{ \" use strict \"\n foo()}" ,
341 { blankLine
: "never" , prev
: "*" , next
: "*" },
342 { blankLine
: "always" , prev
: "directive" , next
: "*" }
346 //----------------------------------------------------------------------
347 // multiline-block-like
348 //----------------------------------------------------------------------
353 { blankLine
: "never" , prev
: "*" , next
: "*" },
354 { blankLine
: "always" , prev
: "multiline-block-like" , next
: "*" }
358 code
: "if(a){} \n foo()" ,
360 { blankLine
: "never" , prev
: "*" , next
: "*" },
361 { blankLine
: "always" , prev
: "multiline-block-like" , next
: "*" }
365 code
: "while(a){} \n foo()" ,
367 { blankLine
: "never" , prev
: "*" , next
: "*" },
368 { blankLine
: "always" , prev
: "multiline-block-like" , next
: "*" }
372 code
: "{ \n } \n\n foo()" ,
374 { blankLine
: "never" , prev
: "*" , next
: "*" },
375 { blankLine
: "always" , prev
: "multiline-block-like" , next
: "*" }
379 code
: "if(a){ \n } \n\n foo()" ,
381 { blankLine
: "never" , prev
: "*" , next
: "*" },
382 { blankLine
: "always" , prev
: "multiline-block-like" , next
: "*" }
386 code
: "while(a){ \n } \n\n foo()" ,
388 { blankLine
: "never" , prev
: "*" , next
: "*" },
389 { blankLine
: "always" , prev
: "multiline-block-like" , next
: "*" }
393 code
: "do{ \n }while(a) \n\n foo()" ,
395 { blankLine
: "never" , prev
: "*" , next
: "*" },
396 { blankLine
: "always" , prev
: "multiline-block-like" , next
: "*" }
400 code
: "for(;;){ \n } \n\n foo()" ,
402 { blankLine
: "never" , prev
: "*" , next
: "*" },
403 { blankLine
: "always" , prev
: "multiline-block-like" , next
: "*" }
407 code
: "for(a in b){ \n } \n\n foo()" ,
409 { blankLine
: "never" , prev
: "*" , next
: "*" },
410 { blankLine
: "always" , prev
: "multiline-block-like" , next
: "*" }
414 code
: "for(a of b){ \n } \n\n foo()" ,
416 { blankLine
: "never" , prev
: "*" , next
: "*" },
417 { blankLine
: "always" , prev
: "multiline-block-like" , next
: "*" }
421 code
: "switch(a){ \n } \n\n foo()" ,
423 { blankLine
: "never" , prev
: "*" , next
: "*" },
424 { blankLine
: "always" , prev
: "multiline-block-like" , next
: "*" }
428 code
: "function foo(a){ \n } \n\n foo()" ,
430 { blankLine
: "never" , prev
: "*" , next
: "*" },
431 { blankLine
: "always" , prev
: "multiline-block-like" , next
: "*" }
435 code
: "var a=function foo(a){ \n } \n\n foo()" ,
437 { blankLine
: "never" , prev
: "*" , next
: "*" },
438 { blankLine
: "always" , prev
: "multiline-block-like" , next
: "*" }
442 //----------------------------------------------------------------------
444 //----------------------------------------------------------------------
449 { blankLine
: "never" , prev
: "*" , next
: "*" },
450 { blankLine
: "always" , prev
: "block" , next
: "*" }
454 code
: "{ \n } \n\n foo()" ,
456 { blankLine
: "never" , prev
: "*" , next
: "*" },
457 { blankLine
: "always" , prev
: "block" , next
: "*" }
461 code
: "{ \n foo() \n } \n\n foo()" ,
463 { blankLine
: "never" , prev
: "*" , next
: "*" },
464 { blankLine
: "always" , prev
: "block" , next
: "*" }
468 code
: "if(a){} \n foo()" ,
470 { blankLine
: "never" , prev
: "*" , next
: "*" },
471 { blankLine
: "always" , prev
: "block" , next
: "*" }
477 { blankLine
: "never" , prev
: "*" , next
: "*" },
478 { blankLine
: "always" , prev
: "block" , next
: "*" }
482 //----------------------------------------------------------------------
484 //----------------------------------------------------------------------
489 { blankLine
: "never" , prev
: "*" , next
: "*" },
490 { blankLine
: "always" , prev
: "empty" , next
: "*" }
496 { blankLine
: "never" , prev
: "*" , next
: "*" },
497 { blankLine
: "always" , prev
: "empty" , next
: "*" }
501 //----------------------------------------------------------------------
503 //----------------------------------------------------------------------
506 code
: "foo() \n\n foo()" ,
508 { blankLine
: "never" , prev
: "*" , next
: "*" },
509 { blankLine
: "always" , prev
: "expression" , next
: "*" }
513 code
: "a=b+c \n\n foo()" ,
515 { blankLine
: "never" , prev
: "*" , next
: "*" },
516 { blankLine
: "always" , prev
: "expression" , next
: "*" }
520 code
: "var a=1 \n foo()" ,
522 { blankLine
: "never" , prev
: "*" , next
: "*" },
523 { blankLine
: "always" , prev
: "expression" , next
: "*" }
527 code
: "'use strict' \n foo()" ,
529 { blankLine
: "never" , prev
: "*" , next
: "*" },
530 { blankLine
: "always" , prev
: "expression" , next
: "*" }
534 //----------------------------------------------------------------------
535 // multiline-expression
536 //----------------------------------------------------------------------
539 code
: "foo() \n\n foo( \n\t x, \n\t y \n )" ,
541 { blankLine
: "always" , prev
: "*" , next
: "multiline-expression" }
545 code
: "foo() \n foo()" ,
547 { blankLine
: "always" , prev
: "*" , next
: "multiline-expression" }
551 code
: "() => { \n\t someArray.forEach(x => doSomething(x)); \n\t return theThing; \n }" ,
553 { blankLine
: "always" , prev
: "multiline-expression" , next
: "return" }
557 code
: "() => { \n\t someArray.forEach( \n\t\t x => doSomething(x) \n\t ); \n\n\t return theThing; \n }" ,
559 { blankLine
: "always" , prev
: "multiline-expression" , next
: "return" }
563 //----------------------------------------------------------------------
565 //----------------------------------------------------------------------
568 code
: "A:{break A \n\n foo()}" ,
570 { blankLine
: "never" , prev
: "*" , next
: "*" },
571 { blankLine
: "always" , prev
: "break" , next
: "*" }
575 code
: "while(a){break \n\n foo()}" ,
577 { blankLine
: "never" , prev
: "*" , next
: "*" },
578 { blankLine
: "always" , prev
: "break" , next
: "*" }
582 code
: "switch(a){case 0:break \n\n foo()}" ,
584 { blankLine
: "never" , prev
: "*" , next
: "*" },
585 { blankLine
: "always" , prev
: "break" , next
: "*" }
589 code
: "switch(a){case 0:break \n case 1:break}" ,
591 { blankLine
: "never" , prev
: "*" , next
: "*" },
592 { blankLine
: "always" , prev
: "break" , next
: "*" }
596 //----------------------------------------------------------------------
598 //----------------------------------------------------------------------
601 code
: "switch(a){case 0: \n foo() \n\n case 1: \n foo()}" ,
603 { blankLine
: "never" , prev
: "*" , next
: "*" },
604 { blankLine
: "always" , prev
: "case" , next
: "*" }
608 code
: "switch(a){case 0: \n foo() \n\n default: \n foo()}" ,
610 { blankLine
: "never" , prev
: "*" , next
: "*" },
611 { blankLine
: "always" , prev
: "case" , next
: "*" }
615 //----------------------------------------------------------------------
617 //----------------------------------------------------------------------
620 code
: "class A{} \n\n foo()" ,
622 { blankLine
: "never" , prev
: "*" , next
: "*" },
623 { blankLine
: "always" , prev
: "class" , next
: "*" }
627 code
: "var A = class{} \n foo()" ,
629 { blankLine
: "never" , prev
: "*" , next
: "*" },
630 { blankLine
: "always" , prev
: "class" , next
: "*" }
634 //----------------------------------------------------------------------
636 //----------------------------------------------------------------------
639 code
: "const a=1 \n\n foo()" ,
641 { blankLine
: "never" , prev
: "*" , next
: "*" },
642 { blankLine
: "always" , prev
: "const" , next
: "*" }
646 code
: "let a=1 \n foo()" ,
648 { blankLine
: "never" , prev
: "*" , next
: "*" },
649 { blankLine
: "always" , prev
: "const" , next
: "*" }
653 //----------------------------------------------------------------------
655 //----------------------------------------------------------------------
658 code
: "while(a){continue \n\n foo()}" ,
660 { blankLine
: "never" , prev
: "*" , next
: "*" },
661 { blankLine
: "always" , prev
: "continue" , next
: "*" }
665 code
: "while(a){break \n foo()}" ,
667 { blankLine
: "never" , prev
: "*" , next
: "*" },
668 { blankLine
: "always" , prev
: "continue" , next
: "*" }
672 //----------------------------------------------------------------------
674 //----------------------------------------------------------------------
677 code
: "debugger \n\n foo()" ,
679 { blankLine
: "never" , prev
: "*" , next
: "*" },
680 { blankLine
: "always" , prev
: "debugger" , next
: "*" }
684 //----------------------------------------------------------------------
686 //----------------------------------------------------------------------
689 code
: "switch(a){default: \n foo() \n\n case 0: \n foo() \n case 1:}" ,
691 { blankLine
: "never" , prev
: "*" , next
: "*" },
692 { blankLine
: "always" , prev
: "default" , next
: "*" }
696 //----------------------------------------------------------------------
698 //----------------------------------------------------------------------
701 code
: "do;while(a) \n\n foo()" ,
703 { blankLine
: "never" , prev
: "*" , next
: "*" },
704 { blankLine
: "always" , prev
: "do" , next
: "*" }
708 code
: "while(a); \n foo()" ,
710 { blankLine
: "never" , prev
: "*" , next
: "*" },
711 { blankLine
: "always" , prev
: "do" , next
: "*" }
715 //----------------------------------------------------------------------
717 //----------------------------------------------------------------------
720 code
: "export default 1 \n\n foo()" ,
722 { blankLine
: "never" , prev
: "*" , next
: "*" },
723 { blankLine
: "always" , prev
: "export" , next
: "*" }
725 parserOptions
: { ecmaVersion
: 6 , sourceType
: "module" }
728 code
: "export let a=1 \n\n foo()" ,
730 { blankLine
: "never" , prev
: "*" , next
: "*" },
731 { blankLine
: "always" , prev
: "export" , next
: "*" }
733 parserOptions
: { ecmaVersion
: 6 , sourceType
: "module" }
736 code
: "var a = 0; export {a} \n\n foo()" ,
738 { blankLine
: "never" , prev
: "*" , next
: "*" },
739 { blankLine
: "always" , prev
: "export" , next
: "*" }
741 parserOptions
: { ecmaVersion
: 6 , sourceType
: "module" }
744 code
: "exports.foo=1 \n foo()" ,
746 { blankLine
: "never" , prev
: "*" , next
: "*" },
747 { blankLine
: "always" , prev
: "export" , next
: "*" }
749 parserOptions
: { ecmaVersion
: 6 , sourceType
: "module" }
752 code
: "module.exports={} \n foo()" ,
754 { blankLine
: "never" , prev
: "*" , next
: "*" },
755 { blankLine
: "always" , prev
: "export" , next
: "*" }
757 parserOptions
: { ecmaVersion
: 6 , sourceType
: "module" }
760 //----------------------------------------------------------------------
762 //----------------------------------------------------------------------
765 code
: "for(;;); \n\n foo()" ,
767 { blankLine
: "never" , prev
: "*" , next
: "*" },
768 { blankLine
: "always" , prev
: "for" , next
: "*" }
772 code
: "for(a in b); \n\n foo()" ,
774 { blankLine
: "never" , prev
: "*" , next
: "*" },
775 { blankLine
: "always" , prev
: "for" , next
: "*" }
779 code
: "for(a of b); \n\n foo()" ,
781 { blankLine
: "never" , prev
: "*" , next
: "*" },
782 { blankLine
: "always" , prev
: "for" , next
: "*" }
786 code
: "while(a); \n foo()" ,
788 { blankLine
: "never" , prev
: "*" , next
: "*" },
789 { blankLine
: "always" , prev
: "for" , next
: "*" }
793 //----------------------------------------------------------------------
795 //----------------------------------------------------------------------
798 code
: "function foo(){} \n\n foo()" ,
800 { blankLine
: "never" , prev
: "*" , next
: "*" },
801 { blankLine
: "always" , prev
: "function" , next
: "*" }
805 code
: "var foo=function(){} \n foo()" ,
807 { blankLine
: "never" , prev
: "*" , next
: "*" },
808 { blankLine
: "always" , prev
: "function" , next
: "*" }
812 code
: "async function foo(){} \n\n foo()" ,
814 { blankLine
: "never" , prev
: "*" , next
: "*" },
815 { blankLine
: "always" , prev
: "function" , next
: "*" }
819 //----------------------------------------------------------------------
821 //----------------------------------------------------------------------
824 code
: "if(a); \n\n foo()" ,
826 { blankLine
: "never" , prev
: "*" , next
: "*" },
827 { blankLine
: "always" , prev
: "if" , next
: "*" }
831 code
: "if(a);else; \n\n foo()" ,
833 { blankLine
: "never" , prev
: "*" , next
: "*" },
834 { blankLine
: "always" , prev
: "if" , next
: "*" }
838 code
: "if(a);else if(b);else; \n\n foo()" ,
840 { blankLine
: "never" , prev
: "*" , next
: "*" },
841 { blankLine
: "always" , prev
: "if" , next
: "*" }
845 code
: "for(;;); \n foo()" ,
847 { blankLine
: "never" , prev
: "*" , next
: "*" },
848 { blankLine
: "always" , prev
: "if" , next
: "*" }
852 //----------------------------------------------------------------------
854 //----------------------------------------------------------------------
857 code
: "(function(){ \n })() \n\n var a = 2;" ,
859 { blankLine
: "always" , prev
: "iife" , next
: "*" }
863 code
: "+(function(){ \n })() \n\n var a = 2;" ,
865 { blankLine
: "always" , prev
: "iife" , next
: "*" }
869 code
: "(function(){ \n })() \n var a = 2;" ,
871 { blankLine
: "never" , prev
: "iife" , next
: "*" }
875 code
: "+(function(){ \n })() \n var a = 2;" ,
877 { blankLine
: "never" , prev
: "iife" , next
: "*" }
881 //----------------------------------------------------------------------
883 //----------------------------------------------------------------------
886 code
: "import 'a' \n\n foo()" ,
888 { blankLine
: "never" , prev
: "*" , next
: "*" },
889 { blankLine
: "always" , prev
: "import" , next
: "*" }
891 parserOptions
: { ecmaVersion
: 6 , sourceType
: "module" }
894 code
: "import a from 'a' \n\n foo()" ,
896 { blankLine
: "never" , prev
: "*" , next
: "*" },
897 { blankLine
: "always" , prev
: "import" , next
: "*" }
899 parserOptions
: { ecmaVersion
: 6 , sourceType
: "module" }
902 code
: "import * as a from 'a' \n\n foo()" ,
904 { blankLine
: "never" , prev
: "*" , next
: "*" },
905 { blankLine
: "always" , prev
: "import" , next
: "*" }
907 parserOptions
: { ecmaVersion
: 6 , sourceType
: "module" }
910 code
: "import {a} from 'a' \n\n foo()" ,
912 { blankLine
: "never" , prev
: "*" , next
: "*" },
913 { blankLine
: "always" , prev
: "import" , next
: "*" }
915 parserOptions
: { ecmaVersion
: 6 , sourceType
: "module" }
918 code
: "const a=require('a') \n foo()" ,
920 { blankLine
: "never" , prev
: "*" , next
: "*" },
921 { blankLine
: "always" , prev
: "import" , next
: "*" }
923 parserOptions
: { ecmaVersion
: 6 , sourceType
: "module" }
926 //----------------------------------------------------------------------
928 //----------------------------------------------------------------------
931 code
: "let a=1 \n\n foo()" ,
933 { blankLine
: "never" , prev
: "*" , next
: "*" },
934 { blankLine
: "always" , prev
: "let" , next
: "*" }
938 code
: "var a=1 \n foo()" ,
940 { blankLine
: "never" , prev
: "*" , next
: "*" },
941 { blankLine
: "always" , prev
: "let" , next
: "*" }
945 //----------------------------------------------------------------------
947 //----------------------------------------------------------------------
950 code
: "function foo(){return \n\n foo()}" ,
952 { blankLine
: "never" , prev
: "*" , next
: "*" },
953 { blankLine
: "always" , prev
: "return" , next
: "*" }
957 code
: "throw a \n foo()" ,
959 { blankLine
: "never" , prev
: "*" , next
: "*" },
960 { blankLine
: "always" , prev
: "return" , next
: "*" }
964 //----------------------------------------------------------------------
966 //----------------------------------------------------------------------
969 code
: "switch(a){} \n\n foo()" ,
971 { blankLine
: "never" , prev
: "*" , next
: "*" },
972 { blankLine
: "always" , prev
: "switch" , next
: "*" }
976 code
: "if(a){} \n foo()" ,
978 { blankLine
: "never" , prev
: "*" , next
: "*" },
979 { blankLine
: "always" , prev
: "switch" , next
: "*" }
983 //----------------------------------------------------------------------
985 //----------------------------------------------------------------------
988 code
: "throw a \n\n foo()" ,
990 { blankLine
: "never" , prev
: "*" , next
: "*" },
991 { blankLine
: "always" , prev
: "throw" , next
: "*" }
995 //----------------------------------------------------------------------
997 //----------------------------------------------------------------------
1000 code
: "try{}catch(e){} \n\n foo()" ,
1002 { blankLine
: "never" , prev
: "*" , next
: "*" },
1003 { blankLine
: "always" , prev
: "try" , next
: "*" }
1007 code
: "try{}finally{} \n\n foo()" ,
1009 { blankLine
: "never" , prev
: "*" , next
: "*" },
1010 { blankLine
: "always" , prev
: "try" , next
: "*" }
1014 code
: "try{}catch(e){}finally{} \n\n foo()" ,
1016 { blankLine
: "never" , prev
: "*" , next
: "*" },
1017 { blankLine
: "always" , prev
: "try" , next
: "*" }
1021 //----------------------------------------------------------------------
1023 //----------------------------------------------------------------------
1026 code
: "var a=1 \n\n foo()" ,
1028 { blankLine
: "never" , prev
: "*" , next
: "*" },
1029 { blankLine
: "always" , prev
: "var" , next
: "*" }
1033 code
: "const a=1 \n foo()" ,
1035 { blankLine
: "never" , prev
: "*" , next
: "*" },
1036 { blankLine
: "always" , prev
: "var" , next
: "*" }
1040 //----------------------------------------------------------------------
1042 //----------------------------------------------------------------------
1045 code
: "while(a); \n\n foo()" ,
1047 { blankLine
: "never" , prev
: "*" , next
: "*" },
1048 { blankLine
: "always" , prev
: "while" , next
: "*" }
1052 code
: "do;while(a) \n foo()" ,
1054 { blankLine
: "never" , prev
: "*" , next
: "*" },
1055 { blankLine
: "always" , prev
: "while" , next
: "*" }
1059 //----------------------------------------------------------------------
1061 //----------------------------------------------------------------------
1064 code
: "with(a); \n\n foo()" ,
1066 { blankLine
: "never" , prev
: "*" , next
: "*" },
1067 { blankLine
: "always" , prev
: "with" , next
: "*" }
1071 //----------------------------------------------------------------------
1073 //----------------------------------------------------------------------
1076 code
: "const a={ \n b:1, \n c:2 \n } \n\n const d=3" ,
1078 { blankLine
: "never" , prev
: "*" , next
: "*" },
1079 { blankLine
: "always" , prev
: "multiline-const" , next
: "*" }
1083 code
: "const a=1 \n\n const b={ \n c:2, \n d:3 \n }" ,
1085 { blankLine
: "never" , prev
: "*" , next
: "*" },
1086 { blankLine
: "always" , prev
: "*" , next
: "multiline-const" }
1090 code
: "const a=1 \n const b=2" ,
1092 { blankLine
: "never" , prev
: "*" , next
: "*" },
1093 { blankLine
: "always" , prev
: "multiline-const" , next
: "*" }
1097 code
: "const a=1 \n const b=2" ,
1099 { blankLine
: "never" , prev
: "*" , next
: "*" },
1100 { blankLine
: "always" , prev
: "*" , next
: "multiline-const" }
1104 //----------------------------------------------------------------------
1106 //----------------------------------------------------------------------
1109 code
: "let a={ \n b:1, \n c:2 \n } \n\n let d=3" ,
1111 { blankLine
: "never" , prev
: "*" , next
: "*" },
1112 { blankLine
: "always" , prev
: "multiline-let" , next
: "*" }
1116 code
: "let a=1 \n\n let b={ \n c:2, \n d:3 \n }" ,
1118 { blankLine
: "never" , prev
: "*" , next
: "*" },
1119 { blankLine
: "always" , prev
: "*" , next
: "multiline-let" }
1123 code
: "let a=1 \n let b=2" ,
1125 { blankLine
: "never" , prev
: "*" , next
: "*" },
1126 { blankLine
: "always" , prev
: "multiline-let" , next
: "*" }
1130 code
: "let a=1 \n let b=2" ,
1132 { blankLine
: "never" , prev
: "*" , next
: "*" },
1133 { blankLine
: "always" , prev
: "*" , next
: "multiline-let" }
1137 //----------------------------------------------------------------------
1139 //----------------------------------------------------------------------
1142 code
: "var a={ \n b:1, \n c:2 \n } \n\n var d=3" ,
1144 { blankLine
: "never" , prev
: "*" , next
: "*" },
1145 { blankLine
: "always" , prev
: "multiline-var" , next
: "*" }
1149 code
: "var a=1 \n\n var b={ \n c:2, \n d:3 \n }" ,
1151 { blankLine
: "never" , prev
: "*" , next
: "*" },
1152 { blankLine
: "always" , prev
: "*" , next
: "multiline-var" }
1156 code
: "var a=1 \n var b=2" ,
1158 { blankLine
: "never" , prev
: "*" , next
: "*" },
1159 { blankLine
: "always" , prev
: "multiline-var" , next
: "*" }
1163 code
: "var a=1 \n var b=2" ,
1165 { blankLine
: "never" , prev
: "*" , next
: "*" },
1166 { blankLine
: "always" , prev
: "*" , next
: "multiline-var" }
1170 //----------------------------------------------------------------------
1172 //----------------------------------------------------------------------
1175 code
: "const a=1 \n\n const b=2" ,
1177 { blankLine
: "never" , prev
: "*" , next
: "*" },
1178 { blankLine
: "always" , prev
: "singleline-const" , next
: "*" }
1182 code
: "const a=1 \n\n const b=2" ,
1184 { blankLine
: "never" , prev
: "*" , next
: "*" },
1185 { blankLine
: "always" , prev
: "*" , next
: "singleline-const" }
1189 code
: "const a={ \n b:1, \n c:2 \n } \n const d={ \n e:3, \n f:4 \n }" ,
1191 { blankLine
: "never" , prev
: "*" , next
: "*" },
1192 { blankLine
: "always" , prev
: "singleline-const" , next
: "*" }
1196 code
: "const a={ \n b:1, \n c:2 \n } \n const d={ \n e:3, \n f:4 \n }" ,
1198 { blankLine
: "never" , prev
: "*" , next
: "*" },
1199 { blankLine
: "always" , prev
: "*" , next
: "singleline-const" }
1203 //----------------------------------------------------------------------
1205 //----------------------------------------------------------------------
1208 code
: "let a=1 \n\n let b=2" ,
1210 { blankLine
: "never" , prev
: "*" , next
: "*" },
1211 { blankLine
: "always" , prev
: "singleline-let" , next
: "*" }
1215 code
: "let a=1 \n\n let b=2" ,
1217 { blankLine
: "never" , prev
: "*" , next
: "*" },
1218 { blankLine
: "always" , prev
: "*" , next
: "singleline-let" }
1222 code
: "let a={ \n b:1, \n c:2 \n } \n let d={ \n e:3, \n f:4 \n }" ,
1224 { blankLine
: "never" , prev
: "*" , next
: "*" },
1225 { blankLine
: "always" , prev
: "singleline-let" , next
: "*" }
1229 code
: "let a={ \n b:1, \n c:2 \n } \n let d={ \n e:3, \n f:4 \n }" ,
1231 { blankLine
: "never" , prev
: "*" , next
: "*" },
1232 { blankLine
: "always" , prev
: "*" , next
: "singleline-let" }
1236 //----------------------------------------------------------------------
1238 //----------------------------------------------------------------------
1241 code
: "var a=1 \n\n var b=2" ,
1243 { blankLine
: "never" , prev
: "*" , next
: "*" },
1244 { blankLine
: "always" , prev
: "singleline-var" , next
: "*" }
1248 code
: "var a=1 \n\n var b=2" ,
1250 { blankLine
: "never" , prev
: "*" , next
: "*" },
1251 { blankLine
: "always" , prev
: "*" , next
: "singleline-var" }
1255 code
: "var a={ \n b:1, \n c:2 \n } \n var d={ \n e:3, \n f:4 \n }" ,
1257 { blankLine
: "never" , prev
: "*" , next
: "*" },
1258 { blankLine
: "always" , prev
: "singleline-var" , next
: "*" }
1262 code
: "var a={ \n b:1, \n c:2 \n } \n var d={ \n e:3, \n f:4 \n }" ,
1264 { blankLine
: "never" , prev
: "*" , next
: "*" },
1265 { blankLine
: "always" , prev
: "*" , next
: "singleline-var" }
1269 //----------------------------------------------------------------------
1270 // Tests from newline-after-var
1271 //----------------------------------------------------------------------
1273 // should skip rule entirely
1275 code
: "console.log(greet);" ,
1277 { blankLine
: "always" , prev
: [ "const" , "let" , "var" ], next
: "*" },
1278 { blankLine
: "any" , prev
: [ "const" , "let" , "var" ], next
: [ "const" , "let" , "var" ] }
1282 code
: "console.log(greet);" ,
1284 { blankLine
: "never" , prev
: [ "const" , "let" , "var" ], next
: "*" },
1285 { blankLine
: "any" , prev
: [ "const" , "let" , "var" ], next
: [ "const" , "let" , "var" ] }
1289 // should ignore a `var` with no following token
1291 code
: "var greet = 'hello';" ,
1293 { blankLine
: "always" , prev
: [ "const" , "let" , "var" ], next
: "*" },
1294 { blankLine
: "any" , prev
: [ "const" , "let" , "var" ], next
: [ "const" , "let" , "var" ] }
1298 code
: "var greet = 'hello';" ,
1300 { blankLine
: "never" , prev
: [ "const" , "let" , "var" ], next
: "*" },
1301 { blankLine
: "any" , prev
: [ "const" , "let" , "var" ], next
: [ "const" , "let" , "var" ] }
1305 // should allow no line break in "never" mode
1307 code
: "var greet = 'hello';console.log(greet);" ,
1309 { blankLine
: "never" , prev
: [ "const" , "let" , "var" ], next
: "*" },
1310 { blankLine
: "any" , prev
: [ "const" , "let" , "var" ], next
: [ "const" , "let" , "var" ] }
1314 // should allow no blank line in "never" mode
1316 code
: "var greet = 'hello'; \n console.log(greet);" ,
1318 { blankLine
: "never" , prev
: [ "const" , "let" , "var" ], next
: "*" },
1319 { blankLine
: "any" , prev
: [ "const" , "let" , "var" ], next
: [ "const" , "let" , "var" ] }
1323 // should allow one blank line in "always" mode
1325 code
: "var greet = 'hello'; \n\n console.log(greet);" ,
1327 { blankLine
: "always" , prev
: [ "const" , "let" , "var" ], next
: "*" },
1328 { blankLine
: "any" , prev
: [ "const" , "let" , "var" ], next
: [ "const" , "let" , "var" ] }
1332 // should allow two or more blank lines in "always" mode
1334 code
: "var greet = 'hello'; \n\n\n console.log(greet);" ,
1336 { blankLine
: "always" , prev
: [ "const" , "let" , "var" ], next
: "*" },
1337 { blankLine
: "any" , prev
: [ "const" , "let" , "var" ], next
: [ "const" , "let" , "var" ] }
1341 code
: "var greet = 'hello'; \n\n\n\n console.log(greet);" ,
1343 { blankLine
: "always" , prev
: [ "const" , "let" , "var" ], next
: "*" },
1344 { blankLine
: "any" , prev
: [ "const" , "let" , "var" ], next
: [ "const" , "let" , "var" ] }
1348 // should allow trailing whitespace after the `var`
1350 code
: "var greet = 'hello'; \n\n console.log(greet);" ,
1352 { blankLine
: "always" , prev
: [ "const" , "let" , "var" ], next
: "*" },
1353 { blankLine
: "any" , prev
: [ "const" , "let" , "var" ], next
: [ "const" , "let" , "var" ] }
1357 code
: "var greet = 'hello'; \n console.log(greet);" ,
1359 { blankLine
: "never" , prev
: [ "const" , "let" , "var" ], next
: "*" },
1360 { blankLine
: "any" , prev
: [ "const" , "let" , "var" ], next
: [ "const" , "let" , "var" ] }
1364 // should allow inline comments after the `var`
1366 code
: "var greet = 'hello'; // inline comment \n\n console.log(greet);" ,
1368 { blankLine
: "always" , prev
: [ "const" , "let" , "var" ], next
: "*" },
1369 { blankLine
: "any" , prev
: [ "const" , "let" , "var" ], next
: [ "const" , "let" , "var" ] }
1373 code
: "var greet = 'hello'; // inline comment \n console.log(greet);" ,
1375 { blankLine
: "never" , prev
: [ "const" , "let" , "var" ], next
: "*" },
1376 { blankLine
: "any" , prev
: [ "const" , "let" , "var" ], next
: [ "const" , "let" , "var" ] }
1380 // should allow a comment on the next line in "never" mode
1382 code
: "var greet = 'hello'; \n // next-line comment \n console.log(greet);" ,
1384 { blankLine
: "never" , prev
: [ "const" , "let" , "var" ], next
: "*" },
1385 { blankLine
: "any" , prev
: [ "const" , "let" , "var" ], next
: [ "const" , "let" , "var" ] }
1389 code
: "var greet = 'hello'; \n /* block comment \n block comment */ \n console.log(greet);" ,
1391 { blankLine
: "never" , prev
: [ "const" , "let" , "var" ], next
: "*" },
1392 { blankLine
: "any" , prev
: [ "const" , "let" , "var" ], next
: [ "const" , "let" , "var" ] }
1396 // should allow comments on the next line followed by a blank in "always" mode
1398 code
: "var greet = 'hello'; \n // next-line comment \n\n console.log(greet);" ,
1400 { blankLine
: "always" , prev
: [ "const" , "let" , "var" ], next
: "*" },
1401 { blankLine
: "any" , prev
: [ "const" , "let" , "var" ], next
: [ "const" , "let" , "var" ] }
1405 code
: "var greet = 'hello'; \n /* block comment \n block comment */ \n\n console.log(greet);" ,
1407 { blankLine
: "always" , prev
: [ "const" , "let" , "var" ], next
: "*" },
1408 { blankLine
: "any" , prev
: [ "const" , "let" , "var" ], next
: [ "const" , "let" , "var" ] }
1412 code
: "var greet = 'hello'; \n // next-line comment \n // second-line comment \n\n console.log(greet);" ,
1414 { blankLine
: "always" , prev
: [ "const" , "let" , "var" ], next
: "*" },
1415 { blankLine
: "any" , prev
: [ "const" , "let" , "var" ], next
: [ "const" , "let" , "var" ] }
1419 // should allow comments on the next line followed by no blank in "never" mode
1421 code
: "var greet = 'hello'; \n // next-line comment \n // second-line comment \n console.log(greet);" ,
1423 { blankLine
: "never" , prev
: [ "const" , "let" , "var" ], next
: "*" },
1424 { blankLine
: "any" , prev
: [ "const" , "let" , "var" ], next
: [ "const" , "let" , "var" ] }
1428 code
: "var greet = 'hello'; \n // next-line comment \n /* block comment \n block comment */ \n console.log(greet);" ,
1430 { blankLine
: "never" , prev
: [ "const" , "let" , "var" ], next
: "*" },
1431 { blankLine
: "any" , prev
: [ "const" , "let" , "var" ], next
: [ "const" , "let" , "var" ] }
1435 // should allow another `var` statement to follow without blank line
1437 code
: "var greet = 'hello';var name = 'world';console.log(greet, name);" ,
1439 { blankLine
: "never" , prev
: [ "const" , "let" , "var" ], next
: "*" },
1440 { blankLine
: "any" , prev
: [ "const" , "let" , "var" ], next
: [ "const" , "let" , "var" ] }
1444 code
: "var greet = 'hello'; \n var name = 'world'; \n console.log(greet, name);" ,
1446 { blankLine
: "never" , prev
: [ "const" , "let" , "var" ], next
: "*" },
1447 { blankLine
: "any" , prev
: [ "const" , "let" , "var" ], next
: [ "const" , "let" , "var" ] }
1451 code
: "var greet = 'hello'; \n var name = 'world'; \n\n console.log(greet, name);" ,
1453 { blankLine
: "always" , prev
: [ "const" , "let" , "var" ], next
: "*" },
1454 { blankLine
: "any" , prev
: [ "const" , "let" , "var" ], next
: [ "const" , "let" , "var" ] }
1458 // should allow a comment directly between `var` statements
1460 code
: "var greet = 'hello'; \n // inline comment \n var name = 'world'; \n\n console.log(greet, name);" ,
1462 { blankLine
: "always" , prev
: [ "const" , "let" , "var" ], next
: "*" },
1463 { blankLine
: "any" , prev
: [ "const" , "let" , "var" ], next
: [ "const" , "let" , "var" ] }
1467 code
: "var greet = 'hello'; \n /* block comment \n block comment */ \n var name = 'world'; \n\n console.log(greet, name);" ,
1469 { blankLine
: "always" , prev
: [ "const" , "let" , "var" ], next
: "*" },
1470 { blankLine
: "any" , prev
: [ "const" , "let" , "var" ], next
: [ "const" , "let" , "var" ] }
1474 code
: "var greet = 'hello'; \n // inline comment \n var name = 'world'; \n console.log(greet, name);" ,
1476 { blankLine
: "never" , prev
: [ "const" , "let" , "var" ], next
: "*" },
1477 { blankLine
: "any" , prev
: [ "const" , "let" , "var" ], next
: [ "const" , "let" , "var" ] }
1481 code
: "var greet = 'hello'; \n /* block comment \n block comment */ \n var name = 'world'; \n console.log(greet, name);" ,
1483 { blankLine
: "never" , prev
: [ "const" , "let" , "var" ], next
: "*" },
1484 { blankLine
: "any" , prev
: [ "const" , "let" , "var" ], next
: [ "const" , "let" , "var" ] }
1488 // should handle single `var` statement with multiple declarations
1490 code
: "var greet = 'hello', name = 'world';console.log(greet, name);" ,
1492 { blankLine
: "never" , prev
: [ "const" , "let" , "var" ], next
: "*" },
1493 { blankLine
: "any" , prev
: [ "const" , "let" , "var" ], next
: [ "const" , "let" , "var" ] }
1497 code
: "var greet = 'hello', name = 'world'; \n console.log(greet, name);" ,
1499 { blankLine
: "never" , prev
: [ "const" , "let" , "var" ], next
: "*" },
1500 { blankLine
: "any" , prev
: [ "const" , "let" , "var" ], next
: [ "const" , "let" , "var" ] }
1504 code
: "var greet = 'hello', name = 'world'; \n\n console.log(greet, name);" ,
1506 { blankLine
: "always" , prev
: [ "const" , "let" , "var" ], next
: "*" },
1507 { blankLine
: "any" , prev
: [ "const" , "let" , "var" ], next
: [ "const" , "let" , "var" ] }
1511 // should handle single `var` statement with multi-line declaration
1513 code
: "var greet = 'hello', \n name = 'world'; \n\n console.log(greet, name);" ,
1515 { blankLine
: "always" , prev
: [ "const" , "let" , "var" ], next
: "*" },
1516 { blankLine
: "any" , prev
: [ "const" , "let" , "var" ], next
: [ "const" , "let" , "var" ] }
1520 code
: "var greet = 'hello', \n name = 'world'; \n console.log(greet, name);" ,
1522 { blankLine
: "never" , prev
: [ "const" , "let" , "var" ], next
: "*" },
1523 { blankLine
: "any" , prev
: [ "const" , "let" , "var" ], next
: [ "const" , "let" , "var" ] }
1527 code
: "var greet = 'hello', // inline comment \n name = 'world'; // inline comment \n\n console.log(greet, name);" ,
1529 { blankLine
: "always" , prev
: [ "const" , "let" , "var" ], next
: "*" },
1530 { blankLine
: "any" , prev
: [ "const" , "let" , "var" ], next
: [ "const" , "let" , "var" ] }
1534 code
: "var greet = 'hello', // inline comment \n name = 'world'; // inline comment \n console.log(greet, name);" ,
1536 { blankLine
: "never" , prev
: [ "const" , "let" , "var" ], next
: "*" },
1537 { blankLine
: "any" , prev
: [ "const" , "let" , "var" ], next
: [ "const" , "let" , "var" ] }
1541 code
: "var greet = 'hello', \n name = 'world'; \n // next-line comment \n console.log(greet);" ,
1543 { blankLine
: "never" , prev
: [ "const" , "let" , "var" ], next
: "*" },
1544 { blankLine
: "any" , prev
: [ "const" , "let" , "var" ], next
: [ "const" , "let" , "var" ] }
1548 code
: "var greet = 'hello', \n name = 'world'; \n /* block comment \n block comment */ \n console.log(greet);" ,
1550 { blankLine
: "never" , prev
: [ "const" , "let" , "var" ], next
: "*" },
1551 { blankLine
: "any" , prev
: [ "const" , "let" , "var" ], next
: [ "const" , "let" , "var" ] }
1555 // should handle ES6 `let` block binding
1557 code
: "let greet = 'hello'; \n\n console.log(greet);" ,
1559 { blankLine
: "always" , prev
: [ "const" , "let" , "var" ], next
: "*" },
1560 { blankLine
: "any" , prev
: [ "const" , "let" , "var" ], next
: [ "const" , "let" , "var" ] }
1564 code
: "let greet = 'hello'; \n console.log(greet);" ,
1566 { blankLine
: "never" , prev
: [ "const" , "let" , "var" ], next
: "*" },
1567 { blankLine
: "any" , prev
: [ "const" , "let" , "var" ], next
: [ "const" , "let" , "var" ] }
1571 // should handle ES6 `const` block binding
1573 code
: "const greet = 'hello'; \n\n console.log(greet);" ,
1575 { blankLine
: "always" , prev
: [ "const" , "let" , "var" ], next
: "*" },
1576 { blankLine
: "any" , prev
: [ "const" , "let" , "var" ], next
: [ "const" , "let" , "var" ] }
1580 code
: "const greet = 'hello'; \n console.log(greet);" ,
1582 { blankLine
: "never" , prev
: [ "const" , "let" , "var" ], next
: "*" },
1583 { blankLine
: "any" , prev
: [ "const" , "let" , "var" ], next
: [ "const" , "let" , "var" ] }
1587 // should handle a mix of `var`, `let`, or `const`
1589 code
: "let greet = 'hello'; \n var name = 'world'; \n\n console.log(greet, name);" ,
1591 { blankLine
: "always" , prev
: [ "const" , "let" , "var" ], next
: "*" },
1592 { blankLine
: "any" , prev
: [ "const" , "let" , "var" ], next
: [ "const" , "let" , "var" ] }
1596 code
: "const greet = 'hello'; \n var name = 'world'; \n\n console.log(greet, name);" ,
1598 { blankLine
: "always" , prev
: [ "const" , "let" , "var" ], next
: "*" },
1599 { blankLine
: "any" , prev
: [ "const" , "let" , "var" ], next
: [ "const" , "let" , "var" ] }
1603 code
: "let greet = 'hello'; \n const name = 'world'; \n\n console.log(greet, name);" ,
1605 { blankLine
: "always" , prev
: [ "const" , "let" , "var" ], next
: "*" },
1606 { blankLine
: "any" , prev
: [ "const" , "let" , "var" ], next
: [ "const" , "let" , "var" ] }
1610 // should handle a mix of `var` or `let` inside for variations
1612 code
: "for(let a = 1; a < 1; a++){ \n break; \n }" ,
1614 { blankLine
: "always" , prev
: [ "const" , "let" , "var" ], next
: "*" },
1615 { blankLine
: "any" , prev
: [ "const" , "let" , "var" ], next
: [ "const" , "let" , "var" ] }
1619 code
: "for(var a = 1; a < 1; a++){ \n break; \n }" ,
1621 { blankLine
: "always" , prev
: [ "const" , "let" , "var" ], next
: "*" },
1622 { blankLine
: "any" , prev
: [ "const" , "let" , "var" ], next
: [ "const" , "let" , "var" ] }
1626 code
: "for(let a = 1; a < 1; a++){ \n break; \n }" ,
1628 { blankLine
: "never" , prev
: [ "const" , "let" , "var" ], next
: "*" },
1629 { blankLine
: "any" , prev
: [ "const" , "let" , "var" ], next
: [ "const" , "let" , "var" ] }
1633 code
: "for(var a = 1; a < 1; a++){ \n break; \n }" ,
1635 { blankLine
: "never" , prev
: [ "const" , "let" , "var" ], next
: "*" },
1636 { blankLine
: "any" , prev
: [ "const" , "let" , "var" ], next
: [ "const" , "let" , "var" ] }
1640 code
: "for(let a in obj){ \n break; \n }" ,
1642 { blankLine
: "always" , prev
: [ "const" , "let" , "var" ], next
: "*" },
1643 { blankLine
: "any" , prev
: [ "const" , "let" , "var" ], next
: [ "const" , "let" , "var" ] }
1647 code
: "for(var a in obj){ \n break; \n }" ,
1649 { blankLine
: "always" , prev
: [ "const" , "let" , "var" ], next
: "*" },
1650 { blankLine
: "any" , prev
: [ "const" , "let" , "var" ], next
: [ "const" , "let" , "var" ] }
1654 code
: "for(let a in obj){ \n break; \n }" ,
1656 { blankLine
: "never" , prev
: [ "const" , "let" , "var" ], next
: "*" },
1657 { blankLine
: "any" , prev
: [ "const" , "let" , "var" ], next
: [ "const" , "let" , "var" ] }
1661 code
: "for(var a in obj){ \n break; \n }" ,
1663 { blankLine
: "never" , prev
: [ "const" , "let" , "var" ], next
: "*" },
1664 { blankLine
: "any" , prev
: [ "const" , "let" , "var" ], next
: [ "const" , "let" , "var" ] }
1668 // should handle export specifiers
1670 code
: "export let a = 1; \n export let b = 2;" ,
1672 { blankLine
: "never" , prev
: [ "const" , "let" , "var" ], next
: "*" },
1673 { blankLine
: "any" , prev
: [ "const" , "let" , "var" ], next
: [ "const" , "let" , "var" ] }
1675 parserOptions
: { ecmaVersion
: 6 , sourceType
: "module" }
1678 code
: "export let a = 1; \n export let b = 2;" ,
1680 { blankLine
: "always" , prev
: [ "const" , "let" , "var" ], next
: "*" },
1681 { blankLine
: "any" , prev
: [ "const" , "let" , "var" ], next
: [ "const" , "let" , "var" ] }
1683 parserOptions
: { ecmaVersion
: 6 , sourceType
: "module" }
1686 code
: "export var a = 1; \n export var b = 2;" ,
1688 { blankLine
: "never" , prev
: [ "const" , "let" , "var" ], next
: "*" },
1689 { blankLine
: "any" , prev
: [ "const" , "let" , "var" ], next
: [ "const" , "let" , "var" ] }
1691 parserOptions
: { ecmaVersion
: 6 , sourceType
: "module" }
1694 code
: "export var a = 1; \n export var b = 2;" ,
1696 { blankLine
: "always" , prev
: [ "const" , "let" , "var" ], next
: "*" },
1697 { blankLine
: "any" , prev
: [ "const" , "let" , "var" ], next
: [ "const" , "let" , "var" ] }
1699 parserOptions
: { ecmaVersion
: 6 , sourceType
: "module" }
1702 code
: "export const a = 1; \n export const b = 2;" ,
1704 { blankLine
: "never" , prev
: [ "const" , "let" , "var" ], next
: "*" },
1705 { blankLine
: "any" , prev
: [ "const" , "let" , "var" ], next
: [ "const" , "let" , "var" ] }
1707 parserOptions
: { ecmaVersion
: 6 , sourceType
: "module" }
1710 code
: "export const a = 1; \n export const b = 2;" ,
1712 { blankLine
: "always" , prev
: [ "const" , "let" , "var" ], next
: "*" },
1713 { blankLine
: "any" , prev
: [ "const" , "let" , "var" ], next
: [ "const" , "let" , "var" ] }
1715 parserOptions
: { ecmaVersion
: 6 , sourceType
: "module" }
1718 // should allow no blank line at end of block
1720 code
: "function example() { \n var greet = 'hello' \n }" ,
1722 { blankLine
: "always" , prev
: [ "const" , "let" , "var" ], next
: "*" },
1723 { blankLine
: "any" , prev
: [ "const" , "let" , "var" ], next
: [ "const" , "let" , "var" ] }
1727 code
: "function example() { \n var greet = 'hello' \n }" ,
1729 { blankLine
: "never" , prev
: [ "const" , "let" , "var" ], next
: "*" },
1730 { blankLine
: "any" , prev
: [ "const" , "let" , "var" ], next
: [ "const" , "let" , "var" ] }
1734 code
: "function example() { \n var greet = 'hello'; \n console.log(greet); \n }" ,
1736 { blankLine
: "never" , prev
: [ "const" , "let" , "var" ], next
: "*" },
1737 { blankLine
: "any" , prev
: [ "const" , "let" , "var" ], next
: [ "const" , "let" , "var" ] }
1741 code
: "var f = function() { \n var greet = 'hello' \n };" ,
1743 { blankLine
: "always" , prev
: [ "const" , "let" , "var" ], next
: "*" },
1744 { blankLine
: "any" , prev
: [ "const" , "let" , "var" ], next
: [ "const" , "let" , "var" ] }
1748 code
: "var f = function() { \n var greet = 'hello' \n };" ,
1750 { blankLine
: "never" , prev
: [ "const" , "let" , "var" ], next
: "*" },
1751 { blankLine
: "any" , prev
: [ "const" , "let" , "var" ], next
: [ "const" , "let" , "var" ] }
1755 code
: "var f = function() { \n var greet = 'hello'; \n console.log(greet); \n };" ,
1757 { blankLine
: "never" , prev
: [ "const" , "let" , "var" ], next
: "*" },
1758 { blankLine
: "any" , prev
: [ "const" , "let" , "var" ], next
: [ "const" , "let" , "var" ] }
1762 code
: "() => { \n var greet = 'hello'; \n }" ,
1764 { blankLine
: "always" , prev
: [ "const" , "let" , "var" ], next
: "*" },
1765 { blankLine
: "any" , prev
: [ "const" , "let" , "var" ], next
: [ "const" , "let" , "var" ] }
1769 code
: "() => { \n var greet = 'hello'; \n }" ,
1771 { blankLine
: "never" , prev
: [ "const" , "let" , "var" ], next
: "*" },
1772 { blankLine
: "any" , prev
: [ "const" , "let" , "var" ], next
: [ "const" , "let" , "var" ] }
1776 code
: "() => { \n var greet = 'hello'; \n console.log(greet); \n }" ,
1778 { blankLine
: "never" , prev
: [ "const" , "let" , "var" ], next
: "*" },
1779 { blankLine
: "any" , prev
: [ "const" , "let" , "var" ], next
: [ "const" , "let" , "var" ] }
1783 code
: "{ \n var foo; \n }" ,
1785 { blankLine
: "always" , prev
: [ "const" , "let" , "var" ], next
: "*" },
1786 { blankLine
: "any" , prev
: [ "const" , "let" , "var" ], next
: [ "const" , "let" , "var" ] }
1790 code
: "{ \n var foo; \n }" ,
1792 { blankLine
: "never" , prev
: [ "const" , "let" , "var" ], next
: "*" },
1793 { blankLine
: "any" , prev
: [ "const" , "let" , "var" ], next
: [ "const" , "let" , "var" ] }
1797 code
: "if(true) { \n var foo; \n }" ,
1799 { blankLine
: "always" , prev
: [ "const" , "let" , "var" ], next
: "*" },
1800 { blankLine
: "any" , prev
: [ "const" , "let" , "var" ], next
: [ "const" , "let" , "var" ] }
1804 code
: "if(true) { \n var foo; \n }" ,
1806 { blankLine
: "never" , prev
: [ "const" , "let" , "var" ], next
: "*" },
1807 { blankLine
: "any" , prev
: [ "const" , "let" , "var" ], next
: [ "const" , "let" , "var" ] }
1811 code
: "switch(a) { \n case 0: \n var foo; \n }" ,
1813 { blankLine
: "always" , prev
: [ "const" , "let" , "var" ], next
: "*" },
1814 { blankLine
: "any" , prev
: [ "const" , "let" , "var" ], next
: [ "const" , "let" , "var" ] }
1818 code
: "switch(a) { \n case 0: \n var foo; \n }" ,
1820 { blankLine
: "never" , prev
: [ "const" , "let" , "var" ], next
: "*" },
1821 { blankLine
: "any" , prev
: [ "const" , "let" , "var" ], next
: [ "const" , "let" , "var" ] }
1825 // should handle one/no blank before case.
1827 code
: "switch(a) { \n case 0: \n var foo; \n\n case 1:}" ,
1829 { blankLine
: "always" , prev
: [ "const" , "let" , "var" ], next
: "*" },
1830 { blankLine
: "any" , prev
: [ "const" , "let" , "var" ], next
: [ "const" , "let" , "var" ] }
1834 code
: "switch(a) { \n case 0: \n var foo; \n case 1:}" ,
1836 { blankLine
: "never" , prev
: [ "const" , "let" , "var" ], next
: "*" },
1837 { blankLine
: "any" , prev
: [ "const" , "let" , "var" ], next
: [ "const" , "let" , "var" ] }
1841 // https://github.com/eslint/eslint/issues/6834
1846 ;(b || c).doSomething()
1849 { blankLine
: "always" , prev
: [ "const" , "let" , "var" ], next
: "*" },
1850 { blankLine
: "any" , prev
: [ "const" , "let" , "var" ], next
: [ "const" , "let" , "var" ] }
1856 ;(b || c).doSomething()
1859 { blankLine
: "never" , prev
: [ "const" , "let" , "var" ], next
: "*" },
1860 { blankLine
: "any" , prev
: [ "const" , "let" , "var" ], next
: [ "const" , "let" , "var" ] }
1867 (b || c).doSomething();
1870 { blankLine
: "never" , prev
: [ "const" , "let" , "var" ], next
: "*" },
1871 { blankLine
: "any" , prev
: [ "const" , "let" , "var" ], next
: [ "const" , "let" , "var" ] }
1876 code
: "switch(a) { \n case 0: \n var foo; \n\n case 1:}" ,
1878 { blankLine
: "never" , prev
: [ "const" , "let" , "var" ], next
: "*" },
1879 { blankLine
: "any" , prev
: [ "const" , "let" , "var" ], next
: [ "const" , "let" , "var" ] }
1883 code
: "switch(a) { \n case 0: \n var foo; \n case 1:}" ,
1885 { blankLine
: "always" , prev
: [ "const" , "let" , "var" ], next
: "*" },
1886 { blankLine
: "any" , prev
: [ "const" , "let" , "var" ], next
: [ "const" , "let" , "var" ] }
1894 (b || c).doSomething();
1897 { blankLine
: "never" , prev
: [ "const" , "let" , "var" ], next
: "*" },
1898 { blankLine
: "any" , prev
: [ "const" , "let" , "var" ], next
: [ "const" , "let" , "var" ] }
1902 //----------------------------------------------------------------------
1903 // Tests from newline-before-return
1904 //----------------------------------------------------------------------
1907 code
: "function a() { \n return; \n }" ,
1909 { blankLine
: "always" , prev
: "*" , next
: "return" }
1913 code
: "function a() { \n\n return; \n }" ,
1915 { blankLine
: "always" , prev
: "*" , next
: "return" }
1919 code
: "function a() { \n var b; \n\n return; \n }" ,
1921 { blankLine
: "always" , prev
: "*" , next
: "return" }
1925 code
: "function a() { \n if (b) return; \n }" ,
1927 { blankLine
: "always" , prev
: "*" , next
: "return" }
1931 code
: "function a() { \n if (b) { return; } \n }" ,
1933 { blankLine
: "always" , prev
: "*" , next
: "return" }
1937 code
: "function a() { \n if (b) { \n return; \n } \n }" ,
1939 { blankLine
: "always" , prev
: "*" , next
: "return" }
1943 code
: "function a() { \n if (b) { \n\n return; \n } \n }" ,
1945 { blankLine
: "always" , prev
: "*" , next
: "return" }
1949 code
: "function a() { \n if (b) { \n return; \n } \n\n return c; \n }" ,
1951 { blankLine
: "always" , prev
: "*" , next
: "return" }
1955 code
: "function a() { \n if (b) { \n\n return; \n } \n\n return c; \n }" ,
1957 { blankLine
: "always" , prev
: "*" , next
: "return" }
1961 code
: "function a() { \n if (!b) { \n return; \n } else { \n return b; \n } \n }" ,
1963 { blankLine
: "always" , prev
: "*" , next
: "return" }
1967 code
: "function a() { \n if (!b) { \n return; \n } else { \n\n return b; \n } \n }" ,
1969 { blankLine
: "always" , prev
: "*" , next
: "return" }
1973 code
: "function a() { \n if (b) { \n return b; \n } else if (c) { \n return c; \n } \n }" ,
1975 { blankLine
: "always" , prev
: "*" , next
: "return" }
1979 code
: "function a() { \n if (b) { \n return b; \n } else if (c) { \n return c; \n } else { \n return d; \n } \n }" ,
1981 { blankLine
: "always" , prev
: "*" , next
: "return" }
1985 code
: "function a() { \n if (b) { \n return b; \n } else if (c) { \n return c; \n } else { \n return d; \n } \n\n return a; \n }" ,
1987 { blankLine
: "always" , prev
: "*" , next
: "return" }
1991 code
: "function a() { \n if (b) return b; \n else if (c) return c; \n else return d; \n }" ,
1993 { blankLine
: "always" , prev
: "*" , next
: "return" }
1997 code
: "function a() { \n if (b) return b; \n else if (c) return c; \n else { \n return d; \n } \n }" ,
1999 { blankLine
: "always" , prev
: "*" , next
: "return" }
2003 code
: "function a() { \n if (b) return b; \n else if (c) return c; \n else { \n e(); \n\n return d; \n } \n }" ,
2005 { blankLine
: "always" , prev
: "*" , next
: "return" }
2009 code
: "function a() { \n while (b) return; \n }" ,
2011 { blankLine
: "always" , prev
: "*" , next
: "return" }
2015 code
: "function a() { \n while (b) \n return; \n }" ,
2017 { blankLine
: "always" , prev
: "*" , next
: "return" }
2021 code
: "function a() { \n while (b) { return; } \n }" ,
2023 { blankLine
: "always" , prev
: "*" , next
: "return" }
2027 code
: "function a() { \n while (b) { \n return; \n } \n }" ,
2029 { blankLine
: "always" , prev
: "*" , next
: "return" }
2033 code
: "function a() { \n while (b) { \n c(); \n\n return; \n } \n }" ,
2035 { blankLine
: "always" , prev
: "*" , next
: "return" }
2039 code
: "function a() { \n var c; \n while (b) { \n c = d; //comment \n } \n\n return c; \n }" ,
2041 { blankLine
: "always" , prev
: "*" , next
: "return" }
2045 code
: "function a() { \n do return; \n while (b); \n }" ,
2047 { blankLine
: "always" , prev
: "*" , next
: "return" }
2051 code
: "function a() { \n do \n return; \n while (b); \n }" ,
2053 { blankLine
: "always" , prev
: "*" , next
: "return" }
2057 code
: "function a() { \n do { return; } while (b); \n }" ,
2059 { blankLine
: "always" , prev
: "*" , next
: "return" }
2063 code
: "function a() { \n do { return; } \n while (b); \n }" ,
2065 { blankLine
: "always" , prev
: "*" , next
: "return" }
2069 code
: "function a() { \n do { \n return; \n } while (b); \n }" ,
2071 { blankLine
: "always" , prev
: "*" , next
: "return" }
2075 code
: "function a() { \n do { \n c(); \n\n return; \n } while (b); \n }" ,
2077 { blankLine
: "always" , prev
: "*" , next
: "return" }
2081 code
: "function a() { \n for (var b; b < c; b++) return; \n }" ,
2083 { blankLine
: "always" , prev
: "*" , next
: "return" }
2087 code
: "function a() { \n for (var b; b < c; b++) \n return; \n }" ,
2089 { blankLine
: "always" , prev
: "*" , next
: "return" }
2093 code
: "function a() { \n for (var b; b < c; b++) { \n return; \n } \n }" ,
2095 { blankLine
: "always" , prev
: "*" , next
: "return" }
2099 code
: "function a() { \n for (var b; b < c; b++) { \n c(); \n\n return; \n } \n }" ,
2101 { blankLine
: "always" , prev
: "*" , next
: "return" }
2105 code
: "function a() { \n for (var b; b < c; b++) { \n if (d) { \n break; //comment \n } \n\n return; \n } \n }" ,
2107 { blankLine
: "always" , prev
: "*" , next
: "return" }
2111 code
: "function a() { \n for (b in c) \n return; \n }" ,
2113 { blankLine
: "always" , prev
: "*" , next
: "return" }
2117 code
: "function a() { \n for (b in c) { return; } \n }" ,
2119 { blankLine
: "always" , prev
: "*" , next
: "return" }
2123 code
: "function a() { \n for (b in c) { \n return; \n } \n }" ,
2125 { blankLine
: "always" , prev
: "*" , next
: "return" }
2129 code
: "function a() { \n for (b in c) { \n d(); \n\n return; \n } \n }" ,
2131 { blankLine
: "always" , prev
: "*" , next
: "return" }
2135 code
: "function a() { \n for (b of c) return; \n }" ,
2137 { blankLine
: "always" , prev
: "*" , next
: "return" }
2141 code
: "function a() { \n for (b of c) \n return; \n }" ,
2143 { blankLine
: "always" , prev
: "*" , next
: "return" }
2147 code
: "function a() { \n for (b of c) { \n return; \n } \n }" ,
2149 { blankLine
: "always" , prev
: "*" , next
: "return" }
2153 code
: "function a() { \n for (b of c) { \n d(); \n\n return; \n } \n }" ,
2155 { blankLine
: "always" , prev
: "*" , next
: "return" }
2159 code
: "function a() { \n switch (b) { \n case 'b': return; \n } \n }" ,
2161 { blankLine
: "always" , prev
: "*" , next
: "return" }
2165 code
: "function a() { \n switch (b) { \n case 'b': \n return; \n } \n }" ,
2167 { blankLine
: "always" , prev
: "*" , next
: "return" }
2171 code
: "function a() { \n switch (b) { \n case 'b': { \n return; \n } \n } \n }" ,
2173 { blankLine
: "always" , prev
: "*" , next
: "return" }
2177 code
: "function a() { \n //comment \n return b; \n }" ,
2179 { blankLine
: "always" , prev
: "*" , next
: "return" }
2183 code
: "function a() { \n { \n //comment \n } \n\n return \n }" ,
2185 { blankLine
: "always" , prev
: "*" , next
: "return" }
2189 code
: "function a() { \n var b = { \n //comment \n }; \n\n return; \n }" ,
2191 { blankLine
: "always" , prev
: "*" , next
: "return" }
2195 code
: "function a() {/*multi-line \n comment*/return b; \n }" ,
2197 { blankLine
: "always" , prev
: "*" , next
: "return" }
2201 code
: "function a() { \n /*comment \n comment*/ \n //comment \n return b; \n }" ,
2203 { blankLine
: "always" , prev
: "*" , next
: "return" }
2207 code
: "function a() { \n /*comment \n comment*/ \n //comment \n if (b) return; \n }" ,
2209 { blankLine
: "always" , prev
: "*" , next
: "return" }
2213 code
: "function a() { \n /*comment \n comment*/ \n //comment \n if (b) { \n c(); \n\n return b; \n } else { \n //comment \n return d; \n } \n\n /*multi-line \n comment*/ \n return e; \n }" ,
2215 { blankLine
: "always" , prev
: "*" , next
: "return" }
2219 code
: "function a() { \n if (b) { //comment \n return; \n } \n\n return c; \n }" ,
2221 { blankLine
: "always" , prev
: "*" , next
: "return" }
2225 code
: "function a() { \n if (b) { return; } //comment \n\n return c; \n }" ,
2227 { blankLine
: "always" , prev
: "*" , next
: "return" }
2231 code
: "function a() { \n if (b) { return; } /*multi-line \n comment*/ \n\n return c; \n }" ,
2233 { blankLine
: "always" , prev
: "*" , next
: "return" }
2237 code
: "function a() { \n if (b) { return; } \n\n /*multi-line \n comment*/ return c; \n }" ,
2239 { blankLine
: "always" , prev
: "*" , next
: "return" }
2245 { blankLine
: "always" , prev
: "*" , next
: "return" }
2247 parserOptions
: { ecmaFeatures
: { globalReturn
: true } }
2250 code
: "var a; \n\n return;" ,
2252 { blankLine
: "always" , prev
: "*" , next
: "return" }
2254 parserOptions
: { ecmaFeatures
: { globalReturn
: true } }
2257 code
: "// comment \n return;" ,
2259 { blankLine
: "always" , prev
: "*" , next
: "return" }
2261 parserOptions
: { ecmaFeatures
: { globalReturn
: true } }
2264 code
: "/* comment */ \n return;" ,
2266 { blankLine
: "always" , prev
: "*" , next
: "return" }
2268 parserOptions
: { ecmaFeatures
: { globalReturn
: true } }
2271 code
: "/* multi-line \n comment */ \n return;" ,
2273 { blankLine
: "always" , prev
: "*" , next
: "return" }
2275 parserOptions
: { ecmaFeatures
: { globalReturn
: true } }
2278 //----------------------------------------------------------------------
2279 // From JSCS disallowPaddingNewLinesAfterBlocks
2280 // https://github.com/jscs-dev/node-jscs/blob/44f9b86eb0757fd4ca05a81a50450c5f1b25c37b/test/specs/rules/disallow-padding-newlines-after-blocks.js
2281 //----------------------------------------------------------------------
2286 { blankLine
: "never" , prev
: "block-like" , next
: "*" }
2290 code
: "if(true){} \n " ,
2292 { blankLine
: "never" , prev
: "block-like" , next
: "*" }
2296 code
: "if(true){} \n var a = 2;" ,
2298 { blankLine
: "never" , prev
: "block-like" , next
: "*" }
2302 code
: "if(true){ \n if(true) {} \n }" ,
2304 { blankLine
: "never" , prev
: "block-like" , next
: "*" }
2308 code
: "var a = { \n foo: function() { \n }, \n bar: function() { \n }}" ,
2310 { blankLine
: "never" , prev
: "block-like" , next
: "*" }
2314 code
: "(function(){ \n })() \n var a = 2;" ,
2316 { blankLine
: "never" , prev
: "block-like" , next
: "*" }
2320 code
: "if(true) { \n } \n else \n { \n }" ,
2322 { blankLine
: "never" , prev
: "block-like" , next
: "*" }
2326 code
: "if(true) { \n } else { \n var a = 2; }" ,
2328 { blankLine
: "never" , prev
: "block-like" , next
: "*" }
2332 code
: "if(true) { \n } \n else if(true) \n { \n } \n else { \n }" ,
2334 { blankLine
: "never" , prev
: "block-like" , next
: "*" }
2338 code
: "do{ \n } \n while(true)" ,
2340 { blankLine
: "never" , prev
: "block-like" , next
: "*" }
2344 code
: "try{ \n } \n catch(e) {}" ,
2346 { blankLine
: "never" , prev
: "block-like" , next
: "*" }
2350 code
: "try{ \n } \n finally {}" ,
2352 { blankLine
: "never" , prev
: "block-like" , next
: "*" }
2356 code
: "try{ \n } \n catch(e) { \n } \n finally { \n }" ,
2358 { blankLine
: "never" , prev
: "block-like" , next
: "*" }
2362 code
: "[].map(function() {}) \n .filter(function(){})" ,
2364 { blankLine
: "never" , prev
: "block-like" , next
: "*" }
2368 //----------------------------------------------------------------------
2369 // From JSCS disallowPaddingNewLinesBeforeExport
2370 // https://github.com/jscs-dev/node-jscs/blob/44f9b86eb0757fd4ca05a81a50450c5f1b25c37b/test/specs/rules/disallow-padding-newlines-before-export.js
2371 //----------------------------------------------------------------------
2374 code
: "var a = 2; \n module.exports = a;" ,
2376 { blankLine
: "never" , prev
: "*" , next
: "cjs-export" }
2380 code
: "module.exports = 2;" ,
2382 { blankLine
: "never" , prev
: "*" , next
: "cjs-export" }
2386 code
: "var a = 2; \n // foo \n module.exports = a;" ,
2388 { blankLine
: "never" , prev
: "*" , next
: "cjs-export" }
2393 * TODO: May it need an option to ignore blank lines followed by comments?
2395 * code: "var a = 2;\n\n// foo\nmodule.exports = a;",
2397 * { blankLine: "never", prev: "*", next: "cjs-export" }
2402 code
: "var a = 2; \n\n foo.exports = a;" ,
2404 { blankLine
: "never" , prev
: "*" , next
: "cjs-export" }
2408 code
: "var a = 2; \n\n module.foo = a;" ,
2410 { blankLine
: "never" , prev
: "*" , next
: "cjs-export" }
2414 code
: "var a = 2; \n\n foo = a;" ,
2416 { blankLine
: "never" , prev
: "*" , next
: "cjs-export" }
2420 //----------------------------------------------------------------------
2421 // From JSCS requirePaddingNewLinesAfterBlocks
2422 // https://github.com/jscs-dev/node-jscs/blob/44f9b86eb0757fd4ca05a81a50450c5f1b25c37b/test/specs/rules/require-padding-newlines-after-blocks.js
2423 //----------------------------------------------------------------------
2428 { blankLine
: "always" , prev
: "block-like" , next
: "*" }
2434 { blankLine
: "always" , prev
: "block-like" , next
: "*" }
2438 code
: "if(true){} \n " ,
2440 { blankLine
: "always" , prev
: "block-like" , next
: "*" }
2444 code
: "if(true){} \n\n var a = 2;" ,
2446 { blankLine
: "always" , prev
: "block-like" , next
: "*" }
2450 code
: "if(true){} \n\n\n var a = 2;" ,
2452 { blankLine
: "always" , prev
: "block-like" , next
: "*" }
2456 code
: "if(true){ \n if(true) {} \n }" ,
2458 { blankLine
: "always" , prev
: "block-like" , next
: "*" }
2462 code
: "var a = { \n foo: function() { \n }, \n\n bar: function() { \n }}" ,
2464 { blankLine
: "always" , prev
: "block-like" , next
: "*" }
2468 code
: "(function(){ \n })() \n\n var a = 2;" ,
2470 { blankLine
: "always" , prev
: "block-like" , next
: "*" }
2474 code
: "if(true) { \n } \n else \n { \n }" ,
2476 { blankLine
: "always" , prev
: "block-like" , next
: "*" }
2480 code
: "if(true) { \n } else { \n var a = 2; }" ,
2482 { blankLine
: "always" , prev
: "block-like" , next
: "*" }
2486 code
: "if(true) { \n } \n else if(true) \n { \n } \n else { \n }" ,
2488 { blankLine
: "always" , prev
: "block-like" , next
: "*" }
2492 code
: "do{ \n } \n while(true)" ,
2494 { blankLine
: "always" , prev
: "block-like" , next
: "*" }
2498 code
: "try{ \n } \n catch(e) {}" ,
2500 { blankLine
: "always" , prev
: "block-like" , next
: "*" }
2504 code
: "try{ \n } \n finally {}" ,
2506 { blankLine
: "always" , prev
: "block-like" , next
: "*" }
2510 code
: "try{ \n } \n catch(e) { \n } \n finally { \n }" ,
2512 { blankLine
: "always" , prev
: "block-like" , next
: "*" }
2516 code
: "[].map(function() {}) \n .filter(function(){})" ,
2518 { blankLine
: "always" , prev
: "block-like" , next
: "*" }
2522 code
: "func( \n 2, \n 3, \n function() { \n } \n )" ,
2524 { blankLine
: "always" , prev
: "block-like" , next
: "*" }
2528 code
: "[ \n 2, \n 3, \n function() { \n } \n ]" ,
2530 { blankLine
: "always" , prev
: "block-like" , next
: "*" }
2534 code
: "a(res => { \n }) \n .b();" ,
2536 { blankLine
: "always" , prev
: "block-like" , next
: "*" }
2540 code
: "var foo = ( \n <div \n ref={function() { \n }} \n > \n foo \n </div> \n );" ,
2542 { blankLine
: "always" , prev
: "block-like" , next
: "*" }
2544 parserOptions
: { ecmaFeatures
: { jsx
: true } }
2547 code
: "var i = 0; \n while (i < 100) { \n if(i % 2 === 0) {continue;} \n ++i; \n }" ,
2549 { blankLine
: "always" , prev
: "multiline-block-like" , next
: "*" }
2553 code
: "var i = 0; \n while (i < 100) { \n if(i % 2 === 0) {if(i === 4) {continue;}} \n ++i; \n }" ,
2555 { blankLine
: "always" , prev
: "multiline-block-like" , next
: "*" }
2559 //----------------------------------------------------------------------
2560 // From JSCS requirePaddingNewLinesBeforeExport
2561 // https://github.com/jscs-dev/node-jscs/blob/44f9b86eb0757fd4ca05a81a50450c5f1b25c37b/test/specs/rules/require-padding-newlines-before-export.js
2562 //----------------------------------------------------------------------
2565 code
: "module.exports = 2;" ,
2567 { blankLine
: "always" , prev
: "*" , next
: "cjs-export" }
2571 code
: "var a = 2; \n\n module.exports = a;" ,
2573 { blankLine
: "always" , prev
: "*" , next
: "cjs-export" }
2577 code
: "var a = 2; \n foo.exports = a;" ,
2579 { blankLine
: "always" , prev
: "*" , next
: "cjs-export" }
2583 code
: "var a = 2; \n module.foo = a;" ,
2585 { blankLine
: "always" , prev
: "*" , next
: "cjs-export" }
2589 code
: "if (true) { \n module.exports = a; \n }" ,
2591 { blankLine
: "always" , prev
: "*" , next
: "cjs-export" }
2595 //----------------------------------------------------------------------
2596 // From JSCS requirePaddingNewlinesBeforeKeywords
2597 // https://github.com/jscs-dev/node-jscs/blob/44f9b86eb0757fd4ca05a81a50450c5f1b25c37b/test/specs/rules/require-padding-newlines-before-keywords.js
2598 //----------------------------------------------------------------------
2601 code
: "function x() { return; }" ,
2603 { blankLine
: "always" , prev
: "*" , next
: [ "if" , "for" , "return" , "switch" , "case" , "break" , "throw" , "while" , "default" ] }
2607 code
: "if (true) {} else if (false) {}" ,
2609 { blankLine
: "always" , prev
: "*" , next
: [ "if" , "for" , "return" , "switch" , "case" , "break" , "throw" , "while" , "default" ] }
2613 code
: "function x() { var a = true; do { a = !a; } while (a); }" ,
2615 { blankLine
: "always" , prev
: "*" , next
: [ "if" , "for" , "return" , "switch" , "case" , "break" , "throw" , "while" , "default" ] }
2619 code
: "function x() { if (true) return; }" ,
2621 { blankLine
: "always" , prev
: "*" , next
: [ "if" , "for" , "return" , "switch" , "case" , "break" , "throw" , "while" , "default" ] }
2625 code
: "function test() {};" ,
2627 { blankLine
: "always" , prev
: "block-like" , next
: "block-like" }
2631 // class static blocks
2633 code
: "class C { \n static { \n let x; \n\n foo(); \n } \n }" ,
2635 { blankLine
: "always" , prev
: "let" , next
: "expression" }
2637 parserOptions
: { ecmaVersion
: 2022 }
2640 code
: "class C { \n static { \n let x; \n foo(); \n } \n }" ,
2642 { blankLine
: "never" , prev
: "let" , next
: "expression" }
2644 parserOptions
: { ecmaVersion
: 2022 }
2647 code
: "class C { \n static { \n let x; \n foo(); \n\n const y = 1; \n } \n }" ,
2649 { blankLine
: "always" , prev
: "expression" , next
: "const" }
2651 parserOptions
: { ecmaVersion
: 2022 }
2654 code
: "class C { \n static { \n let x; \n foo(); \n const y = 1; \n } \n }" ,
2656 { blankLine
: "never" , prev
: "expression" , next
: "const" }
2658 parserOptions
: { ecmaVersion
: 2022 }
2661 code
: "class C { \n static { \n let x; \n foo(); \n\n const y = 1; \n const z = 1; \n } \n }" ,
2663 { blankLine
: "always" , prev
: "expression" , next
: "const" }
2665 parserOptions
: { ecmaVersion
: 2022 }
2668 code
: "class C { \n static { \n let x; \n foo(); \n const y = 1; \n const z = 1; \n } \n }" ,
2670 { blankLine
: "never" , prev
: "expression" , next
: "const" }
2672 parserOptions
: { ecmaVersion
: 2022 }
2675 code
: "class C { \n static { \n let a = 0; \n let b =0; \n\n bar(); \n } \n }" ,
2677 { blankLine
: "always" , prev
: [ "const" , "let" , "var" ], next
: "*" },
2678 { blankLine
: "any" , prev
: [ "const" , "let" , "var" ], next
: [ "const" , "let" , "var" ] }
2680 parserOptions
: { ecmaVersion
: 2022 }
2683 code
: "class C { static { let x; { let y; } let z; } }" ,
2685 { blankLine
: "always" , prev
: "let" , next
: "let" }
2687 parserOptions
: { ecmaVersion
: 2022 }
2690 code
: "class C { method() { let x; } static { let y; } }" ,
2692 { blankLine
: "always" , prev
: "let" , next
: "let" }
2694 parserOptions
: { ecmaVersion
: 2022 }
2697 code
: "class C { static { let y; } method() { let x; } }" ,
2699 { blankLine
: "always" , prev
: "let" , next
: "let" }
2701 parserOptions
: { ecmaVersion
: 2022 }
2704 code
: "class C { static { let x; } static { let y; } }" ,
2706 { blankLine
: "always" , prev
: "let" , next
: "let" }
2708 parserOptions
: { ecmaVersion
: 2022 }
2711 code
: "let x; class C { static { let y; } }" ,
2713 { blankLine
: "always" , prev
: "let" , next
: "let" }
2715 parserOptions
: { ecmaVersion
: 2022 }
2718 code
: "class C { static { let x; } } let y;" ,
2720 { blankLine
: "always" , prev
: "let" , next
: "let" }
2722 parserOptions
: { ecmaVersion
: 2022 }
2725 code
: "class C { static { let x; } }" ,
2727 { blankLine
: "always" , prev
: "class" , next
: "let" }
2729 parserOptions
: { ecmaVersion
: 2022 }
2732 code
: "class C { static { 'use strict'; let x; } }" , // 'use strict'; is "espression", because class static blocks don't have directives
2734 { blankLine
: "always" , prev
: "directive" , next
: "let" }
2736 parserOptions
: { ecmaVersion
: 2022 }
2741 //----------------------------------------------------------------------
2743 //----------------------------------------------------------------------
2746 code
: "foo(); \n\n foo();" ,
2747 output
: "foo(); \n foo();" ,
2749 { blankLine
: "never" , prev
: "*" , next
: "*" }
2751 errors
: [{ messageId
: "unexpectedBlankLine" }]
2754 code
: "foo(); \n\n //comment \n foo();" ,
2755 output
: "foo(); \n //comment \n foo();" ,
2757 { blankLine
: "never" , prev
: "*" , next
: "*" }
2759 errors
: [{ messageId
: "unexpectedBlankLine" }]
2762 code
: " foo(); \n \n //comment \n foo();" ,
2763 output
: " foo(); \n //comment \n foo();" ,
2765 { blankLine
: "never" , prev
: "*" , next
: "*" }
2767 errors
: [{ messageId
: "unexpectedBlankLine" }]
2770 code
: "if (a) {} \n\n for (;;) {}" ,
2771 output
: "if (a) {} \n for (;;) {}" ,
2773 { blankLine
: "never" , prev
: "*" , next
: "*" }
2775 errors
: [{ messageId
: "unexpectedBlankLine" }]
2778 code
: "foo(); \n foo();" ,
2779 output
: "foo(); \n\n foo();" ,
2781 { blankLine
: "always" , prev
: "*" , next
: "*" }
2783 errors
: [{ messageId
: "expectedBlankLine" }]
2786 code
: " function a() {} \n do {} while (a)" ,
2787 output
: " function a() {} \n\n do {} while (a)" ,
2789 { blankLine
: "always" , prev
: "*" , next
: "*" }
2791 errors
: [{ messageId
: "expectedBlankLine" }]
2794 code
: "foo();//trailing-comment \n //comment \n //comment \n foo();" ,
2795 output
: "foo();//trailing-comment \n\n //comment \n //comment \n foo();" ,
2797 { blankLine
: "always" , prev
: "*" , next
: "*" }
2799 errors
: [{ messageId
: "expectedBlankLine" }]
2802 //----------------------------------------------------------------------
2804 //----------------------------------------------------------------------
2807 code
: "{} \n\n foo()" ,
2808 output
: "{} \n foo()" ,
2810 { blankLine
: "never" , prev
: "block-like" , next
: "*" }
2812 errors
: [{ messageId
: "unexpectedBlankLine" }]
2816 output
: "{} \n\n foo()" ,
2818 { blankLine
: "always" , prev
: "block-like" , next
: "*" }
2820 errors
: [{ messageId
: "expectedBlankLine" }]
2823 code
: "if(a){} \n foo()" ,
2824 output
: "if(a){} \n\n foo()" ,
2826 { blankLine
: "always" , prev
: "block-like" , next
: "*" }
2828 errors
: [{ messageId
: "expectedBlankLine" }]
2831 code
: "if(a){}else{} \n foo()" ,
2832 output
: "if(a){}else{} \n\n foo()" ,
2834 { blankLine
: "always" , prev
: "block-like" , next
: "*" }
2836 errors
: [{ messageId
: "expectedBlankLine" }]
2839 code
: "if(a){}else if(b){} \n foo()" ,
2840 output
: "if(a){}else if(b){} \n\n foo()" ,
2842 { blankLine
: "always" , prev
: "block-like" , next
: "*" }
2844 errors
: [{ messageId
: "expectedBlankLine" }]
2847 code
: "if(a){}else if(b){}else{} \n foo()" ,
2848 output
: "if(a){}else if(b){}else{} \n\n foo()" ,
2850 { blankLine
: "always" , prev
: "block-like" , next
: "*" }
2852 errors
: [{ messageId
: "expectedBlankLine" }]
2855 code
: "switch(a){} \n foo()" ,
2856 output
: "switch(a){} \n\n foo()" ,
2858 { blankLine
: "always" , prev
: "block-like" , next
: "*" }
2860 errors
: [{ messageId
: "expectedBlankLine" }]
2863 code
: "switch(a){case 0:} \n foo()" ,
2864 output
: "switch(a){case 0:} \n\n foo()" ,
2866 { blankLine
: "always" , prev
: "block-like" , next
: "*" }
2868 errors
: [{ messageId
: "expectedBlankLine" }]
2871 code
: "try{}catch(e){} \n foo()" ,
2872 output
: "try{}catch(e){} \n\n foo()" ,
2874 { blankLine
: "always" , prev
: "block-like" , next
: "*" }
2876 errors
: [{ messageId
: "expectedBlankLine" }]
2879 code
: "try{}finally{} \n foo()" ,
2880 output
: "try{}finally{} \n\n foo()" ,
2882 { blankLine
: "always" , prev
: "block-like" , next
: "*" }
2884 errors
: [{ messageId
: "expectedBlankLine" }]
2887 code
: "try{}catch(e){}finally{} \n foo()" ,
2888 output
: "try{}catch(e){}finally{} \n\n foo()" ,
2890 { blankLine
: "always" , prev
: "block-like" , next
: "*" }
2892 errors
: [{ messageId
: "expectedBlankLine" }]
2895 code
: "while(a){} \n foo()" ,
2896 output
: "while(a){} \n\n foo()" ,
2898 { blankLine
: "always" , prev
: "block-like" , next
: "*" }
2900 errors
: [{ messageId
: "expectedBlankLine" }]
2903 code
: "do{}while(a) \n foo()" ,
2904 output
: "do{}while(a) \n\n foo()" ,
2906 { blankLine
: "always" , prev
: "block-like" , next
: "*" }
2908 errors
: [{ messageId
: "expectedBlankLine" }]
2911 code
: "for(;;){} \n foo()" ,
2912 output
: "for(;;){} \n\n foo()" ,
2914 { blankLine
: "always" , prev
: "block-like" , next
: "*" }
2916 errors
: [{ messageId
: "expectedBlankLine" }]
2919 code
: "for(a in b){} \n foo()" ,
2920 output
: "for(a in b){} \n\n foo()" ,
2922 { blankLine
: "always" , prev
: "block-like" , next
: "*" }
2924 errors
: [{ messageId
: "expectedBlankLine" }]
2927 code
: "for(a of b){} \n foo()" ,
2928 output
: "for(a of b){} \n\n foo()" ,
2930 { blankLine
: "always" , prev
: "block-like" , next
: "*" }
2932 errors
: [{ messageId
: "expectedBlankLine" }]
2935 code
: "a=function(){} \n foo()" ,
2936 output
: "a=function(){} \n\n foo()" ,
2938 { blankLine
: "always" , prev
: "block-like" , next
: "*" }
2940 errors
: [{ messageId
: "expectedBlankLine" }]
2943 code
: "a=()=>{} \n foo()" ,
2944 output
: "a=()=>{} \n\n foo()" ,
2946 { blankLine
: "always" , prev
: "block-like" , next
: "*" }
2948 errors
: [{ messageId
: "expectedBlankLine" }]
2951 code
: "function a(){} \n foo()" ,
2952 output
: "function a(){} \n\n foo()" ,
2954 { blankLine
: "always" , prev
: "block-like" , next
: "*" }
2956 errors
: [{ messageId
: "expectedBlankLine" }]
2959 code
: "let a=function(){} \n foo()" ,
2960 output
: "let a=function(){} \n\n foo()" ,
2962 { blankLine
: "always" , prev
: "block-like" , next
: "*" }
2964 errors
: [{ messageId
: "expectedBlankLine" }]
2967 //----------------------------------------------------------------------
2969 //----------------------------------------------------------------------
2972 code
: "module.exports=1 \n\n foo()" ,
2973 output
: "module.exports=1 \n foo()" ,
2975 { blankLine
: "never" , prev
: "cjs-export" , next
: "*" }
2977 errors
: [{ messageId
: "unexpectedBlankLine" }]
2980 code
: "module.exports=1 \n foo()" ,
2981 output
: "module.exports=1 \n\n foo()" ,
2983 { blankLine
: "always" , prev
: "cjs-export" , next
: "*" }
2985 errors
: [{ messageId
: "expectedBlankLine" }]
2988 code
: "module.exports.foo=1 \n foo()" ,
2989 output
: "module.exports.foo=1 \n\n foo()" ,
2991 { blankLine
: "always" , prev
: "cjs-export" , next
: "*" }
2993 errors
: [{ messageId
: "expectedBlankLine" }]
2996 code
: "module.exports[foo]=1 \n foo()" ,
2997 output
: "module.exports[foo]=1 \n\n foo()" ,
2999 { blankLine
: "always" , prev
: "cjs-export" , next
: "*" }
3001 errors
: [{ messageId
: "expectedBlankLine" }]
3004 code
: "exports.foo=1 \n foo()" ,
3005 output
: "exports.foo=1 \n\n foo()" ,
3007 { blankLine
: "always" , prev
: "cjs-export" , next
: "*" }
3009 errors
: [{ messageId
: "expectedBlankLine" }]
3012 code
: "exports[foo]=1 \n foo()" ,
3013 output
: "exports[foo]=1 \n\n foo()" ,
3015 { blankLine
: "always" , prev
: "cjs-export" , next
: "*" }
3017 errors
: [{ messageId
: "expectedBlankLine" }]
3020 //----------------------------------------------------------------------
3022 //----------------------------------------------------------------------
3025 code
: "const foo=require( \" foo \" ) \n\n foo()" ,
3026 output
: "const foo=require( \" foo \" ) \n foo()" ,
3028 { blankLine
: "never" , prev
: "cjs-import" , next
: "*" }
3030 errors
: [{ messageId
: "unexpectedBlankLine" }]
3033 code
: "const foo=require( \" foo \" ) \n foo()" ,
3034 output
: "const foo=require( \" foo \" ) \n\n foo()" ,
3036 { blankLine
: "always" , prev
: "cjs-import" , next
: "*" }
3038 errors
: [{ messageId
: "expectedBlankLine" }]
3041 code
: "const foo=require( \" foo \" ).Foo \n foo()" ,
3042 output
: "const foo=require( \" foo \" ).Foo \n\n foo()" ,
3044 { blankLine
: "always" , prev
: "cjs-import" , next
: "*" }
3046 errors
: [{ messageId
: "expectedBlankLine" }]
3049 code
: "const foo=require( \" foo \" )[a] \n foo()" ,
3050 output
: "const foo=require( \" foo \" )[a] \n\n foo()" ,
3052 { blankLine
: "always" , prev
: "cjs-import" , next
: "*" }
3054 errors
: [{ messageId
: "expectedBlankLine" }]
3057 //----------------------------------------------------------------------
3059 //----------------------------------------------------------------------
3062 code
: " \" use strict \"\n\n foo()" ,
3063 output
: " \" use strict \"\n foo()" ,
3065 { blankLine
: "never" , prev
: "directive" , next
: "*" }
3067 errors
: [{ messageId
: "unexpectedBlankLine" }]
3070 code
: " \" use strict \"\n foo()" ,
3071 output
: " \" use strict \"\n\n foo()" ,
3073 { blankLine
: "always" , prev
: "directive" , next
: "*" }
3075 errors
: [{ messageId
: "expectedBlankLine" }]
3078 code
: "'use strict' \n foo()" ,
3079 output
: "'use strict' \n\n foo()" ,
3081 { blankLine
: "always" , prev
: "directive" , next
: "*" }
3083 errors
: [{ messageId
: "expectedBlankLine" }]
3086 code
: "'use asm' \n foo()" ,
3087 output
: "'use asm' \n\n foo()" ,
3089 { blankLine
: "always" , prev
: "directive" , next
: "*" }
3091 errors
: [{ messageId
: "expectedBlankLine" }]
3094 //----------------------------------------------------------------------
3095 // multiline-block-like
3096 //----------------------------------------------------------------------
3099 code
: "{ \n } \n\n foo()" ,
3100 output
: "{ \n } \n foo()" ,
3102 { blankLine
: "never" , prev
: "block-like" , next
: "*" }
3104 errors
: [{ messageId
: "unexpectedBlankLine" }]
3107 code
: "{ \n } \n foo()" ,
3108 output
: "{ \n } \n\n foo()" ,
3110 { blankLine
: "always" , prev
: "block-like" , next
: "*" }
3112 errors
: [{ messageId
: "expectedBlankLine" }]
3115 code
: "if(a){ \n } \n foo()" ,
3116 output
: "if(a){ \n } \n\n foo()" ,
3118 { blankLine
: "always" , prev
: "block-like" , next
: "*" }
3120 errors
: [{ messageId
: "expectedBlankLine" }]
3123 code
: "if(a){ \n }else{ \n } \n foo()" ,
3124 output
: "if(a){ \n }else{ \n } \n\n foo()" ,
3126 { blankLine
: "always" , prev
: "block-like" , next
: "*" }
3128 errors
: [{ messageId
: "expectedBlankLine" }]
3131 code
: "if(a){ \n }else if(b){ \n } \n foo()" ,
3132 output
: "if(a){ \n }else if(b){ \n } \n\n foo()" ,
3134 { blankLine
: "always" , prev
: "block-like" , next
: "*" }
3136 errors
: [{ messageId
: "expectedBlankLine" }]
3139 code
: "if(a){ \n }else if(b){ \n }else{ \n } \n foo()" ,
3140 output
: "if(a){ \n }else if(b){ \n }else{ \n } \n\n foo()" ,
3142 { blankLine
: "always" , prev
: "block-like" , next
: "*" }
3144 errors
: [{ messageId
: "expectedBlankLine" }]
3147 code
: "switch(a){ \n } \n foo()" ,
3148 output
: "switch(a){ \n } \n\n foo()" ,
3150 { blankLine
: "always" , prev
: "block-like" , next
: "*" }
3152 errors
: [{ messageId
: "expectedBlankLine" }]
3155 code
: "try{ \n }catch(e){ \n } \n foo()" ,
3156 output
: "try{ \n }catch(e){ \n } \n\n foo()" ,
3158 { blankLine
: "always" , prev
: "block-like" , next
: "*" }
3160 errors
: [{ messageId
: "expectedBlankLine" }]
3163 code
: "try{ \n }finally{ \n } \n foo()" ,
3164 output
: "try{ \n }finally{ \n } \n\n foo()" ,
3166 { blankLine
: "always" , prev
: "block-like" , next
: "*" }
3168 errors
: [{ messageId
: "expectedBlankLine" }]
3171 code
: "try{ \n }catch(e){ \n }finally{ \n } \n foo()" ,
3172 output
: "try{ \n }catch(e){ \n }finally{ \n } \n\n foo()" ,
3174 { blankLine
: "always" , prev
: "block-like" , next
: "*" }
3176 errors
: [{ messageId
: "expectedBlankLine" }]
3179 code
: "while(a){ \n } \n foo()" ,
3180 output
: "while(a){ \n } \n\n foo()" ,
3182 { blankLine
: "always" , prev
: "block-like" , next
: "*" }
3184 errors
: [{ messageId
: "expectedBlankLine" }]
3187 code
: "do{ \n }while(a) \n foo()" ,
3188 output
: "do{ \n }while(a) \n\n foo()" ,
3190 { blankLine
: "always" , prev
: "block-like" , next
: "*" }
3192 errors
: [{ messageId
: "expectedBlankLine" }]
3195 code
: "for(;;){ \n } \n foo()" ,
3196 output
: "for(;;){ \n } \n\n foo()" ,
3198 { blankLine
: "always" , prev
: "block-like" , next
: "*" }
3200 errors
: [{ messageId
: "expectedBlankLine" }]
3203 code
: "for(a in b){ \n } \n foo()" ,
3204 output
: "for(a in b){ \n } \n\n foo()" ,
3206 { blankLine
: "always" , prev
: "block-like" , next
: "*" }
3208 errors
: [{ messageId
: "expectedBlankLine" }]
3211 code
: "for(a of b){ \n } \n foo()" ,
3212 output
: "for(a of b){ \n } \n\n foo()" ,
3214 { blankLine
: "always" , prev
: "block-like" , next
: "*" }
3216 errors
: [{ messageId
: "expectedBlankLine" }]
3219 code
: "a=function(){ \n } \n foo()" ,
3220 output
: "a=function(){ \n } \n\n foo()" ,
3222 { blankLine
: "always" , prev
: "block-like" , next
: "*" }
3224 errors
: [{ messageId
: "expectedBlankLine" }]
3227 code
: "a=()=>{ \n } \n foo()" ,
3228 output
: "a=()=>{ \n } \n\n foo()" ,
3230 { blankLine
: "always" , prev
: "block-like" , next
: "*" }
3232 errors
: [{ messageId
: "expectedBlankLine" }]
3235 code
: "function a(){ \n } \n foo()" ,
3236 output
: "function a(){ \n } \n\n foo()" ,
3238 { blankLine
: "always" , prev
: "block-like" , next
: "*" }
3240 errors
: [{ messageId
: "expectedBlankLine" }]
3243 code
: "let a=function(){ \n } \n foo()" ,
3244 output
: "let a=function(){ \n } \n\n foo()" ,
3246 { blankLine
: "always" , prev
: "block-like" , next
: "*" }
3248 errors
: [{ messageId
: "expectedBlankLine" }]
3251 //----------------------------------------------------------------------
3253 //----------------------------------------------------------------------
3256 code
: "{} \n\n foo()" ,
3257 output
: "{} \n foo()" ,
3259 { blankLine
: "never" , prev
: "block" , next
: "*" }
3261 errors
: [{ messageId
: "unexpectedBlankLine" }]
3265 output
: "{} \n\n foo()" ,
3267 { blankLine
: "always" , prev
: "block" , next
: "*" }
3269 errors
: [{ messageId
: "expectedBlankLine" }]
3272 //----------------------------------------------------------------------
3274 //----------------------------------------------------------------------
3280 { blankLine
: "never" , prev
: "empty" , next
: "*" }
3282 errors
: [{ messageId
: "unexpectedBlankLine" }]
3286 output
: "; \n\n foo()" ,
3288 { blankLine
: "always" , prev
: "empty" , next
: "*" }
3290 errors
: [{ messageId
: "expectedBlankLine" }]
3293 //----------------------------------------------------------------------
3295 //----------------------------------------------------------------------
3298 code
: "foo() \n\n foo()" ,
3299 output
: "foo() \n foo()" ,
3301 { blankLine
: "never" , prev
: "expression" , next
: "*" }
3303 errors
: [{ messageId
: "unexpectedBlankLine" }]
3306 code
: "foo() \n foo()" ,
3307 output
: "foo() \n\n foo()" ,
3309 { blankLine
: "always" , prev
: "expression" , next
: "*" }
3311 errors
: [{ messageId
: "expectedBlankLine" }]
3314 //----------------------------------------------------------------------
3315 // multiline-expression
3316 //----------------------------------------------------------------------
3319 code
: "foo() \n\n foo( \n\t x, \n\t y \n )" ,
3320 output
: "foo() \n foo( \n\t x, \n\t y \n )" ,
3322 { blankLine
: "never" , prev
: "*" , next
: "multiline-expression" }
3324 errors
: [{ messageId
: "unexpectedBlankLine" }]
3327 code
: "foo() \n foo( \n\t x, \n\t y \n )" ,
3328 output
: "foo() \n\n foo( \n\t x, \n\t y \n )" ,
3330 { blankLine
: "always" , prev
: "*" , next
: "multiline-expression" }
3332 errors
: [{ messageId
: "expectedBlankLine" }]
3335 code
: "() => { \n\t someArray.forEach( \n\t\t x => doSomething(x) \n\t ); \n\t return theThing; \n }" ,
3336 output
: "() => { \n\t someArray.forEach( \n\t\t x => doSomething(x) \n\t ); \n\n\t return theThing; \n }" ,
3338 { blankLine
: "always" , prev
: "multiline-expression" , next
: "return" }
3340 errors
: [{ messageId
: "expectedBlankLine" }]
3343 //----------------------------------------------------------------------
3345 //----------------------------------------------------------------------
3348 code
: "while(a){break \n\n foo()}" ,
3349 output
: "while(a){break \n foo()}" ,
3351 { blankLine
: "never" , prev
: "break" , next
: "*" }
3353 errors
: [{ messageId
: "unexpectedBlankLine" }]
3356 code
: "switch(a){case 0:break \n\n foo()}" ,
3357 output
: "switch(a){case 0:break \n foo()}" ,
3359 { blankLine
: "never" , prev
: "break" , next
: "*" }
3361 errors
: [{ messageId
: "unexpectedBlankLine" }]
3364 code
: "while(a){break \n foo()}" ,
3365 output
: "while(a){break \n\n foo()}" ,
3367 { blankLine
: "always" , prev
: "break" , next
: "*" }
3369 errors
: [{ messageId
: "expectedBlankLine" }]
3372 code
: "switch(a){case 0:break \n foo()}" ,
3373 output
: "switch(a){case 0:break \n\n foo()}" ,
3375 { blankLine
: "always" , prev
: "break" , next
: "*" }
3377 errors
: [{ messageId
: "expectedBlankLine" }]
3380 //----------------------------------------------------------------------
3382 //----------------------------------------------------------------------
3385 code
: "switch(a){case 0: \n foo() \n\n default:}" ,
3386 output
: "switch(a){case 0: \n foo() \n default:}" ,
3388 { blankLine
: "never" , prev
: "case" , next
: "*" }
3390 errors
: [{ messageId
: "unexpectedBlankLine" }]
3393 code
: "switch(a){case 0: \n foo() \n default:}" ,
3394 output
: "switch(a){case 0: \n foo() \n\n default:}" ,
3396 { blankLine
: "always" , prev
: "case" , next
: "*" }
3398 errors
: [{ messageId
: "expectedBlankLine" }]
3401 //----------------------------------------------------------------------
3403 //----------------------------------------------------------------------
3406 code
: "class A{} \n\n foo()" ,
3407 output
: "class A{} \n foo()" ,
3409 { blankLine
: "never" , prev
: "class" , next
: "*" }
3411 errors
: [{ messageId
: "unexpectedBlankLine" }]
3414 code
: "class A{} \n foo()" ,
3415 output
: "class A{} \n\n foo()" ,
3417 { blankLine
: "always" , prev
: "class" , next
: "*" }
3419 errors
: [{ messageId
: "expectedBlankLine" }]
3422 //----------------------------------------------------------------------
3424 //----------------------------------------------------------------------
3427 code
: "const a=1 \n\n foo()" ,
3428 output
: "const a=1 \n foo()" ,
3430 { blankLine
: "never" , prev
: "const" , next
: "*" }
3432 errors
: [{ messageId
: "unexpectedBlankLine" }]
3435 code
: "const a=1 \n foo()" ,
3436 output
: "const a=1 \n\n foo()" ,
3438 { blankLine
: "always" , prev
: "const" , next
: "*" }
3440 errors
: [{ messageId
: "expectedBlankLine" }]
3443 //----------------------------------------------------------------------
3445 //----------------------------------------------------------------------
3448 code
: "while(a){continue \n\n foo()}" ,
3449 output
: "while(a){continue \n foo()}" ,
3451 { blankLine
: "never" , prev
: "continue" , next
: "*" }
3453 errors
: [{ messageId
: "unexpectedBlankLine" }]
3456 code
: "while(a){continue \n foo()}" ,
3457 output
: "while(a){continue \n\n foo()}" ,
3459 { blankLine
: "always" , prev
: "continue" , next
: "*" }
3461 errors
: [{ messageId
: "expectedBlankLine" }]
3464 //----------------------------------------------------------------------
3466 //----------------------------------------------------------------------
3469 code
: "debugger \n\n foo()" ,
3470 output
: "debugger \n foo()" ,
3472 { blankLine
: "never" , prev
: "debugger" , next
: "*" }
3474 errors
: [{ messageId
: "unexpectedBlankLine" }]
3477 code
: "debugger \n foo()" ,
3478 output
: "debugger \n\n foo()" ,
3480 { blankLine
: "always" , prev
: "debugger" , next
: "*" }
3482 errors
: [{ messageId
: "expectedBlankLine" }]
3485 //----------------------------------------------------------------------
3487 //----------------------------------------------------------------------
3490 code
: "switch(a){default: \n foo() \n\n case 0:}" ,
3491 output
: "switch(a){default: \n foo() \n case 0:}" ,
3493 { blankLine
: "never" , prev
: "default" , next
: "*" }
3495 errors
: [{ messageId
: "unexpectedBlankLine" }]
3498 code
: "switch(a){default: \n foo() \n case 0:}" ,
3499 output
: "switch(a){default: \n foo() \n\n case 0:}" ,
3501 { blankLine
: "always" , prev
: "default" , next
: "*" }
3503 errors
: [{ messageId
: "expectedBlankLine" }]
3506 //----------------------------------------------------------------------
3508 //----------------------------------------------------------------------
3511 code
: "do;while(a) \n\n foo()" ,
3512 output
: "do;while(a) \n foo()" ,
3514 { blankLine
: "never" , prev
: "do" , next
: "*" }
3516 errors
: [{ messageId
: "unexpectedBlankLine" }]
3519 code
: "do;while(a) \n foo()" ,
3520 output
: "do;while(a) \n\n foo()" ,
3522 { blankLine
: "always" , prev
: "do" , next
: "*" }
3524 errors
: [{ messageId
: "expectedBlankLine" }]
3527 //----------------------------------------------------------------------
3529 //----------------------------------------------------------------------
3532 code
: "export default 1 \n\n foo()" ,
3533 output
: "export default 1 \n foo()" ,
3535 { blankLine
: "never" , prev
: "export" , next
: "*" }
3537 parserOptions
: { ecmaVersion
: 6 , sourceType
: "module" },
3538 errors
: [{ messageId
: "unexpectedBlankLine" }]
3541 code
: "export let a=1 \n\n foo()" ,
3542 output
: "export let a=1 \n foo()" ,
3544 { blankLine
: "never" , prev
: "export" , next
: "*" }
3546 parserOptions
: { ecmaVersion
: 6 , sourceType
: "module" },
3547 errors
: [{ messageId
: "unexpectedBlankLine" }]
3550 code
: "var a = 0;export {a} \n\n foo()" ,
3551 output
: "var a = 0;export {a} \n foo()" ,
3553 { blankLine
: "never" , prev
: "export" , next
: "*" }
3555 parserOptions
: { ecmaVersion
: 6 , sourceType
: "module" },
3556 errors
: [{ messageId
: "unexpectedBlankLine" }]
3559 code
: "export default 1 \n foo()" ,
3560 output
: "export default 1 \n\n foo()" ,
3562 { blankLine
: "always" , prev
: "export" , next
: "*" }
3564 parserOptions
: { ecmaVersion
: 6 , sourceType
: "module" },
3565 errors
: [{ messageId
: "expectedBlankLine" }]
3568 code
: "export let a=1 \n foo()" ,
3569 output
: "export let a=1 \n\n foo()" ,
3571 { blankLine
: "always" , prev
: "export" , next
: "*" }
3573 parserOptions
: { ecmaVersion
: 6 , sourceType
: "module" },
3574 errors
: [{ messageId
: "expectedBlankLine" }]
3577 code
: "var a = 0;export {a} \n foo()" ,
3578 output
: "var a = 0;export {a} \n\n foo()" ,
3580 { blankLine
: "always" , prev
: "export" , next
: "*" }
3582 parserOptions
: { ecmaVersion
: 6 , sourceType
: "module" },
3583 errors
: [{ messageId
: "expectedBlankLine" }]
3586 //----------------------------------------------------------------------
3588 //----------------------------------------------------------------------
3591 code
: "for(;;); \n\n foo()" ,
3592 output
: "for(;;); \n foo()" ,
3594 { blankLine
: "never" , prev
: "for" , next
: "*" }
3596 errors
: [{ messageId
: "unexpectedBlankLine" }]
3599 code
: "for(a in b); \n\n foo()" ,
3600 output
: "for(a in b); \n foo()" ,
3602 { blankLine
: "never" , prev
: "for" , next
: "*" }
3604 errors
: [{ messageId
: "unexpectedBlankLine" }]
3607 code
: "for(a of b); \n\n foo()" ,
3608 output
: "for(a of b); \n foo()" ,
3610 { blankLine
: "never" , prev
: "for" , next
: "*" }
3612 errors
: [{ messageId
: "unexpectedBlankLine" }]
3615 code
: "for(;;); \n foo()" ,
3616 output
: "for(;;); \n\n foo()" ,
3618 { blankLine
: "always" , prev
: "for" , next
: "*" }
3620 errors
: [{ messageId
: "expectedBlankLine" }]
3623 code
: "for(a in b); \n foo()" ,
3624 output
: "for(a in b); \n\n foo()" ,
3626 { blankLine
: "always" , prev
: "for" , next
: "*" }
3628 errors
: [{ messageId
: "expectedBlankLine" }]
3631 code
: "for(a of b); \n foo()" ,
3632 output
: "for(a of b); \n\n foo()" ,
3634 { blankLine
: "always" , prev
: "for" , next
: "*" }
3636 errors
: [{ messageId
: "expectedBlankLine" }]
3639 //----------------------------------------------------------------------
3641 //----------------------------------------------------------------------
3644 code
: "function foo(){} \n\n foo()" ,
3645 output
: "function foo(){} \n foo()" ,
3647 { blankLine
: "never" , prev
: "function" , next
: "*" }
3649 errors
: [{ messageId
: "unexpectedBlankLine" }]
3652 code
: "function foo(){} \n foo()" ,
3653 output
: "function foo(){} \n\n foo()" ,
3655 { blankLine
: "always" , prev
: "function" , next
: "*" }
3657 errors
: [{ messageId
: "expectedBlankLine" }]
3660 code
: "async function foo(){} \n foo()" ,
3661 output
: "async function foo(){} \n\n foo()" ,
3663 { blankLine
: "never" , prev
: "*" , next
: "*" },
3664 { blankLine
: "always" , prev
: "function" , next
: "*" }
3666 errors
: [{ messageId
: "expectedBlankLine" }]
3669 //----------------------------------------------------------------------
3671 //----------------------------------------------------------------------
3674 code
: "if(a); \n\n foo()" ,
3675 output
: "if(a); \n foo()" ,
3677 { blankLine
: "never" , prev
: "if" , next
: "*" }
3679 errors
: [{ messageId
: "unexpectedBlankLine" }]
3682 code
: "if(a);else; \n\n foo()" ,
3683 output
: "if(a);else; \n foo()" ,
3685 { blankLine
: "never" , prev
: "if" , next
: "*" }
3687 errors
: [{ messageId
: "unexpectedBlankLine" }]
3690 code
: "if(a); \n foo()" ,
3691 output
: "if(a); \n\n foo()" ,
3693 { blankLine
: "always" , prev
: "if" , next
: "*" }
3695 errors
: [{ messageId
: "expectedBlankLine" }]
3698 code
: "if(a);else; \n foo()" ,
3699 output
: "if(a);else; \n\n foo()" ,
3701 { blankLine
: "always" , prev
: "if" , next
: "*" }
3703 errors
: [{ messageId
: "expectedBlankLine" }]
3706 //----------------------------------------------------------------------
3708 //----------------------------------------------------------------------
3711 code
: "(function(){ \n })() \n\n var a = 2;" ,
3712 output
: "(function(){ \n })() \n var a = 2;" ,
3714 { blankLine
: "never" , prev
: "iife" , next
: "*" }
3716 errors
: [{ messageId
: "unexpectedBlankLine" }]
3719 code
: "+(function(){ \n })() \n\n var a = 2;" ,
3720 output
: "+(function(){ \n })() \n var a = 2;" ,
3722 { blankLine
: "never" , prev
: "iife" , next
: "*" }
3724 errors
: [{ messageId
: "unexpectedBlankLine" }]
3727 code
: "(function(){ \n })() \n var a = 2;" ,
3728 output
: "(function(){ \n })() \n\n var a = 2;" ,
3730 { blankLine
: "always" , prev
: "iife" , next
: "*" }
3732 errors
: [{ messageId
: "expectedBlankLine" }]
3735 code
: "+(function(){ \n })() \n var a = 2;" ,
3736 output
: "+(function(){ \n })() \n\n var a = 2;" ,
3738 { blankLine
: "always" , prev
: "iife" , next
: "*" }
3740 errors
: [{ messageId
: "expectedBlankLine" }]
3743 // Optional chaining
3745 code
: "(function(){ \n })?.() \n var a = 2;" ,
3746 output
: "(function(){ \n })?.() \n\n var a = 2;" ,
3747 options
: [{ blankLine
: "always" , prev
: "iife" , next
: "*" }],
3748 parserOptions
: { ecmaVersion
: 2020 },
3749 errors
: [{ messageId
: "expectedBlankLine" }]
3752 code
: "void (function(){ \n })?.() \n var a = 2;" ,
3753 output
: "void (function(){ \n })?.() \n\n var a = 2;" ,
3754 options
: [{ blankLine
: "always" , prev
: "iife" , next
: "*" }],
3755 parserOptions
: { ecmaVersion
: 2020 },
3756 errors
: [{ messageId
: "expectedBlankLine" }]
3759 //----------------------------------------------------------------------
3761 //----------------------------------------------------------------------
3764 code
: "import a from 'a' \n\n foo()" ,
3765 output
: "import a from 'a' \n foo()" ,
3767 { blankLine
: "never" , prev
: "import" , next
: "*" }
3769 parserOptions
: { ecmaVersion
: 6 , sourceType
: "module" },
3770 errors
: [{ messageId
: "unexpectedBlankLine" }]
3773 code
: "import * as a from 'a' \n\n foo()" ,
3774 output
: "import * as a from 'a' \n foo()" ,
3776 { blankLine
: "never" , prev
: "import" , next
: "*" }
3778 parserOptions
: { ecmaVersion
: 6 , sourceType
: "module" },
3779 errors
: [{ messageId
: "unexpectedBlankLine" }]
3782 code
: "import {a} from 'a' \n\n foo()" ,
3783 output
: "import {a} from 'a' \n foo()" ,
3785 { blankLine
: "never" , prev
: "import" , next
: "*" }
3787 parserOptions
: { ecmaVersion
: 6 , sourceType
: "module" },
3788 errors
: [{ messageId
: "unexpectedBlankLine" }]
3791 code
: "import a from 'a' \n foo()" ,
3792 output
: "import a from 'a' \n\n foo()" ,
3794 { blankLine
: "always" , prev
: "import" , next
: "*" }
3796 parserOptions
: { ecmaVersion
: 6 , sourceType
: "module" },
3797 errors
: [{ messageId
: "expectedBlankLine" }]
3800 code
: "import * as a from 'a' \n foo()" ,
3801 output
: "import * as a from 'a' \n\n foo()" ,
3803 { blankLine
: "always" , prev
: "import" , next
: "*" }
3805 parserOptions
: { ecmaVersion
: 6 , sourceType
: "module" },
3806 errors
: [{ messageId
: "expectedBlankLine" }]
3809 code
: "import {a} from 'a' \n foo()" ,
3810 output
: "import {a} from 'a' \n\n foo()" ,
3812 { blankLine
: "always" , prev
: "import" , next
: "*" }
3814 parserOptions
: { ecmaVersion
: 6 , sourceType
: "module" },
3815 errors
: [{ messageId
: "expectedBlankLine" }]
3818 //----------------------------------------------------------------------
3820 //----------------------------------------------------------------------
3823 code
: "let a \n\n foo()" ,
3824 output
: "let a \n foo()" ,
3826 { blankLine
: "never" , prev
: "let" , next
: "*" }
3828 errors
: [{ messageId
: "unexpectedBlankLine" }]
3831 code
: "let a \n foo()" ,
3832 output
: "let a \n\n foo()" ,
3834 { blankLine
: "always" , prev
: "let" , next
: "*" }
3836 errors
: [{ messageId
: "expectedBlankLine" }]
3839 //----------------------------------------------------------------------
3841 //----------------------------------------------------------------------
3844 code
: "function foo(){return \n\n foo()}" ,
3845 output
: "function foo(){return \n foo()}" ,
3847 { blankLine
: "never" , prev
: "return" , next
: "*" }
3849 errors
: [{ messageId
: "unexpectedBlankLine" }]
3852 code
: "function foo(){return \n foo()}" ,
3853 output
: "function foo(){return \n\n foo()}" ,
3855 { blankLine
: "always" , prev
: "return" , next
: "*" }
3857 errors
: [{ messageId
: "expectedBlankLine" }]
3860 //----------------------------------------------------------------------
3862 //----------------------------------------------------------------------
3865 code
: "switch(a){} \n\n foo()" ,
3866 output
: "switch(a){} \n foo()" ,
3868 { blankLine
: "never" , prev
: "switch" , next
: "*" }
3870 errors
: [{ messageId
: "unexpectedBlankLine" }]
3873 code
: "switch(a){} \n foo()" ,
3874 output
: "switch(a){} \n\n foo()" ,
3876 { blankLine
: "always" , prev
: "switch" , next
: "*" }
3878 errors
: [{ messageId
: "expectedBlankLine" }]
3881 //----------------------------------------------------------------------
3883 //----------------------------------------------------------------------
3886 code
: "throw a \n\n foo()" ,
3887 output
: "throw a \n foo()" ,
3889 { blankLine
: "never" , prev
: "throw" , next
: "*" }
3891 errors
: [{ messageId
: "unexpectedBlankLine" }]
3894 code
: "throw a \n foo()" ,
3895 output
: "throw a \n\n foo()" ,
3897 { blankLine
: "always" , prev
: "throw" , next
: "*" }
3899 errors
: [{ messageId
: "expectedBlankLine" }]
3902 //----------------------------------------------------------------------
3904 //----------------------------------------------------------------------
3907 code
: "try{}catch(e){} \n\n foo()" ,
3908 output
: "try{}catch(e){} \n foo()" ,
3910 { blankLine
: "never" , prev
: "try" , next
: "*" }
3912 errors
: [{ messageId
: "unexpectedBlankLine" }]
3915 code
: "try{}finally{} \n\n foo()" ,
3916 output
: "try{}finally{} \n foo()" ,
3918 { blankLine
: "never" , prev
: "try" , next
: "*" }
3920 errors
: [{ messageId
: "unexpectedBlankLine" }]
3923 code
: "try{}catch(e){}finally{} \n\n foo()" ,
3924 output
: "try{}catch(e){}finally{} \n foo()" ,
3926 { blankLine
: "never" , prev
: "try" , next
: "*" }
3928 errors
: [{ messageId
: "unexpectedBlankLine" }]
3931 code
: "try{}catch(e){} \n foo()" ,
3932 output
: "try{}catch(e){} \n\n foo()" ,
3934 { blankLine
: "always" , prev
: "try" , next
: "*" }
3936 errors
: [{ messageId
: "expectedBlankLine" }]
3939 code
: "try{}finally{} \n foo()" ,
3940 output
: "try{}finally{} \n\n foo()" ,
3942 { blankLine
: "always" , prev
: "try" , next
: "*" }
3944 errors
: [{ messageId
: "expectedBlankLine" }]
3947 code
: "try{}catch(e){}finally{} \n foo()" ,
3948 output
: "try{}catch(e){}finally{} \n\n foo()" ,
3950 { blankLine
: "always" , prev
: "try" , next
: "*" }
3952 errors
: [{ messageId
: "expectedBlankLine" }]
3955 //----------------------------------------------------------------------
3957 //----------------------------------------------------------------------
3960 code
: "var a \n\n foo()" ,
3961 output
: "var a \n foo()" ,
3963 { blankLine
: "never" , prev
: "var" , next
: "*" }
3965 errors
: [{ messageId
: "unexpectedBlankLine" }]
3968 code
: "var a \n foo()" ,
3969 output
: "var a \n\n foo()" ,
3971 { blankLine
: "always" , prev
: "var" , next
: "*" }
3973 errors
: [{ messageId
: "expectedBlankLine" }]
3976 //----------------------------------------------------------------------
3978 //----------------------------------------------------------------------
3981 code
: "while(a); \n\n foo()" ,
3982 output
: "while(a); \n foo()" ,
3984 { blankLine
: "never" , prev
: "while" , next
: "*" }
3986 errors
: [{ messageId
: "unexpectedBlankLine" }]
3989 code
: "while(a); \n foo()" ,
3990 output
: "while(a); \n\n foo()" ,
3992 { blankLine
: "always" , prev
: "while" , next
: "*" }
3994 errors
: [{ messageId
: "expectedBlankLine" }]
3997 //----------------------------------------------------------------------
3999 //----------------------------------------------------------------------
4002 code
: "with(a); \n\n foo()" ,
4003 output
: "with(a); \n foo()" ,
4005 { blankLine
: "never" , prev
: "with" , next
: "*" }
4007 errors
: [{ messageId
: "unexpectedBlankLine" }]
4010 code
: "with(a); \n foo()" ,
4011 output
: "with(a); \n\n foo()" ,
4013 { blankLine
: "always" , prev
: "with" , next
: "*" }
4015 errors
: [{ messageId
: "expectedBlankLine" }]
4018 //----------------------------------------------------------------------
4020 //----------------------------------------------------------------------
4023 code
: "const a={ \n b:1, \n c:2 \n } \n\n const d=3" ,
4024 output
: "const a={ \n b:1, \n c:2 \n } \n const d=3" ,
4026 { blankLine
: "never" , prev
: "multiline-const" , next
: "*" }
4028 errors
: [{ messageId
: "unexpectedBlankLine" }]
4031 code
: "const a={ \n b:1, \n c:2 \n } \n const d=3" ,
4032 output
: "const a={ \n b:1, \n c:2 \n } \n\n const d=3" ,
4034 { blankLine
: "always" , prev
: "multiline-const" , next
: "*" }
4036 errors
: [{ messageId
: "expectedBlankLine" }]
4039 code
: "const a=1 \n\n const b={ \n c:2, \n d:3 \n }" ,
4040 output
: "const a=1 \n const b={ \n c:2, \n d:3 \n }" ,
4042 { blankLine
: "never" , prev
: "*" , next
: "multiline-const" }
4044 errors
: [{ messageId
: "unexpectedBlankLine" }]
4047 code
: "const a=1 \n const b={ \n c:2, \n d:3 \n }" ,
4048 output
: "const a=1 \n\n const b={ \n c:2, \n d:3 \n }" ,
4050 { blankLine
: "always" , prev
: "*" , next
: "multiline-const" }
4052 errors
: [{ messageId
: "expectedBlankLine" }]
4055 //----------------------------------------------------------------------
4057 //----------------------------------------------------------------------
4060 code
: "let a={ \n b:1, \n c:2 \n } \n\n let d=3" ,
4061 output
: "let a={ \n b:1, \n c:2 \n } \n let d=3" ,
4063 { blankLine
: "never" , prev
: "multiline-let" , next
: "*" }
4065 errors
: [{ messageId
: "unexpectedBlankLine" }]
4068 code
: "let a={ \n b:1, \n c:2 \n } \n let d=3" ,
4069 output
: "let a={ \n b:1, \n c:2 \n } \n\n let d=3" ,
4071 { blankLine
: "always" , prev
: "multiline-let" , next
: "*" }
4073 errors
: [{ messageId
: "expectedBlankLine" }]
4076 code
: "let a=1 \n\n let b={ \n c:2, \n d:3 \n }" ,
4077 output
: "let a=1 \n let b={ \n c:2, \n d:3 \n }" ,
4079 { blankLine
: "never" , prev
: "*" , next
: "multiline-let" }
4081 errors
: [{ messageId
: "unexpectedBlankLine" }]
4084 code
: "let a=1 \n let b={ \n c:2, \n d:3 \n }" ,
4085 output
: "let a=1 \n\n let b={ \n c:2, \n d:3 \n }" ,
4087 { blankLine
: "always" , prev
: "*" , next
: "multiline-let" }
4089 errors
: [{ messageId
: "expectedBlankLine" }]
4092 //----------------------------------------------------------------------
4094 //----------------------------------------------------------------------
4097 code
: "var a={ \n b:1, \n c:2 \n } \n\n var d=3" ,
4098 output
: "var a={ \n b:1, \n c:2 \n } \n var d=3" ,
4100 { blankLine
: "never" , prev
: "multiline-var" , next
: "*" }
4102 errors
: [{ messageId
: "unexpectedBlankLine" }]
4105 code
: "var a={ \n b:1, \n c:2 \n } \n var d=3" ,
4106 output
: "var a={ \n b:1, \n c:2 \n } \n\n var d=3" ,
4108 { blankLine
: "always" , prev
: "multiline-var" , next
: "*" }
4110 errors
: [{ messageId
: "expectedBlankLine" }]
4113 code
: "var a=1 \n\n var b={ \n c:2, \n d:3 \n }" ,
4114 output
: "var a=1 \n var b={ \n c:2, \n d:3 \n }" ,
4116 { blankLine
: "never" , prev
: "*" , next
: "multiline-var" }
4118 errors
: [{ messageId
: "unexpectedBlankLine" }]
4121 code
: "var a=1 \n var b={ \n c:2, \n d:3 \n }" ,
4122 output
: "var a=1 \n\n var b={ \n c:2, \n d:3 \n }" ,
4124 { blankLine
: "always" , prev
: "*" , next
: "multiline-var" }
4126 errors
: [{ messageId
: "expectedBlankLine" }]
4129 //----------------------------------------------------------------------
4131 //----------------------------------------------------------------------
4134 code
: "const a=1 \n\n const b=2" ,
4135 output
: "const a=1 \n const b=2" ,
4137 { blankLine
: "never" , prev
: "singleline-const" , next
: "*" }
4139 errors
: [{ messageId
: "unexpectedBlankLine" }]
4142 code
: "const a=1 \n const b=2" ,
4143 output
: "const a=1 \n\n const b=2" ,
4145 { blankLine
: "always" , prev
: "singleline-const" , next
: "*" }
4147 errors
: [{ messageId
: "expectedBlankLine" }]
4150 code
: "const a=1 \n\n const b=2" ,
4151 output
: "const a=1 \n const b=2" ,
4153 { blankLine
: "never" , prev
: "*" , next
: "singleline-const" }
4155 errors
: [{ messageId
: "unexpectedBlankLine" }]
4158 code
: "const a=1 \n const b=2" ,
4159 output
: "const a=1 \n\n const b=2" ,
4161 { blankLine
: "always" , prev
: "*" , next
: "singleline-const" }
4163 errors
: [{ messageId
: "expectedBlankLine" }]
4166 //----------------------------------------------------------------------
4168 //----------------------------------------------------------------------
4171 code
: "let a=1 \n\n let b=2" ,
4172 output
: "let a=1 \n let b=2" ,
4174 { blankLine
: "never" , prev
: "singleline-let" , next
: "*" }
4176 errors
: [{ messageId
: "unexpectedBlankLine" }]
4179 code
: "let a=1 \n let b=2" ,
4180 output
: "let a=1 \n\n let b=2" ,
4182 { blankLine
: "always" , prev
: "singleline-let" , next
: "*" }
4184 errors
: [{ messageId
: "expectedBlankLine" }]
4187 code
: "let a=1 \n\n let b=2" ,
4188 output
: "let a=1 \n let b=2" ,
4190 { blankLine
: "never" , prev
: "*" , next
: "singleline-let" }
4192 errors
: [{ messageId
: "unexpectedBlankLine" }]
4195 code
: "let a=1 \n let b=2" ,
4196 output
: "let a=1 \n\n let b=2" ,
4198 { blankLine
: "always" , prev
: "*" , next
: "singleline-let" }
4200 errors
: [{ messageId
: "expectedBlankLine" }]
4203 //----------------------------------------------------------------------
4205 //----------------------------------------------------------------------
4208 code
: "var a=1 \n\n var b=2" ,
4209 output
: "var a=1 \n var b=2" ,
4211 { blankLine
: "never" , prev
: "singleline-var" , next
: "*" }
4213 errors
: [{ messageId
: "unexpectedBlankLine" }]
4216 code
: "var a=1 \n var b=2" ,
4217 output
: "var a=1 \n\n var b=2" ,
4219 { blankLine
: "always" , prev
: "singleline-var" , next
: "*" }
4221 errors
: [{ messageId
: "expectedBlankLine" }]
4224 code
: "var a=1 \n\n var b=2" ,
4225 output
: "var a=1 \n var b=2" ,
4227 { blankLine
: "never" , prev
: "*" , next
: "singleline-var" }
4229 errors
: [{ messageId
: "unexpectedBlankLine" }]
4232 code
: "var a=1 \n var b=2" ,
4233 output
: "var a=1 \n\n var b=2" ,
4235 { blankLine
: "always" , prev
: "*" , next
: "singleline-var" }
4237 errors
: [{ messageId
: "expectedBlankLine" }]
4240 //----------------------------------------------------------------------
4241 // Tests from newline-after-var
4242 //----------------------------------------------------------------------
4244 // should disallow no line break in "always" mode
4246 code
: "var greet = 'hello';console.log(greet);" ,
4247 output
: "var greet = 'hello'; \n\n console.log(greet);" ,
4249 { blankLine
: "always" , prev
: [ "const" , "let" , "var" ], next
: "*" },
4250 { blankLine
: "any" , prev
: [ "const" , "let" , "var" ], next
: [ "const" , "let" , "var" ] }
4252 errors
: [{ messageId
: "expectedBlankLine" }]
4255 code
: "var greet = 'hello';var name = 'world';console.log(greet, name);" ,
4256 output
: "var greet = 'hello';var name = 'world'; \n\n console.log(greet, name);" ,
4258 { blankLine
: "always" , prev
: [ "const" , "let" , "var" ], next
: "*" },
4259 { blankLine
: "any" , prev
: [ "const" , "let" , "var" ], next
: [ "const" , "let" , "var" ] }
4261 errors
: [{ messageId
: "expectedBlankLine" }]
4264 code
: "var greet = 'hello', name = 'world';console.log(greet, name);" ,
4265 output
: "var greet = 'hello', name = 'world'; \n\n console.log(greet, name);" ,
4267 { blankLine
: "always" , prev
: [ "const" , "let" , "var" ], next
: "*" },
4268 { blankLine
: "any" , prev
: [ "const" , "let" , "var" ], next
: [ "const" , "let" , "var" ] }
4270 errors
: [{ messageId
: "expectedBlankLine" }]
4273 // should disallow no blank line in "always" mode
4275 code
: "var greet = 'hello'; \n console.log(greet);" ,
4276 output
: "var greet = 'hello'; \n\n console.log(greet);" ,
4278 { blankLine
: "always" , prev
: [ "const" , "let" , "var" ], next
: "*" },
4279 { blankLine
: "any" , prev
: [ "const" , "let" , "var" ], next
: [ "const" , "let" , "var" ] }
4281 errors
: [{ messageId
: "expectedBlankLine" }]
4284 code
: "var greet = 'hello'; \n console.log(greet);" ,
4285 output
: "var greet = 'hello'; \n \n console.log(greet);" ,
4287 { blankLine
: "always" , prev
: [ "const" , "let" , "var" ], next
: "*" },
4288 { blankLine
: "any" , prev
: [ "const" , "let" , "var" ], next
: [ "const" , "let" , "var" ] }
4290 errors
: [{ messageId
: "expectedBlankLine" }]
4293 code
: "var greet = 'hello'; // inline comment \n console.log(greet);" ,
4294 output
: "var greet = 'hello'; // inline comment \n\n console.log(greet);" ,
4296 { blankLine
: "always" , prev
: [ "const" , "let" , "var" ], next
: "*" },
4297 { blankLine
: "any" , prev
: [ "const" , "let" , "var" ], next
: [ "const" , "let" , "var" ] }
4299 errors
: [{ messageId
: "expectedBlankLine" }]
4302 code
: "var greet = 'hello'; \n var name = 'world'; \n console.log(greet, name);" ,
4303 output
: "var greet = 'hello'; \n var name = 'world'; \n\n console.log(greet, name);" ,
4305 { blankLine
: "always" , prev
: [ "const" , "let" , "var" ], next
: "*" },
4306 { blankLine
: "any" , prev
: [ "const" , "let" , "var" ], next
: [ "const" , "let" , "var" ] }
4308 errors
: [{ messageId
: "expectedBlankLine" }]
4311 code
: "var greet = 'hello', name = 'world'; \n console.log(greet, name);" ,
4312 output
: "var greet = 'hello', name = 'world'; \n\n console.log(greet, name);" ,
4314 { blankLine
: "always" , prev
: [ "const" , "let" , "var" ], next
: "*" },
4315 { blankLine
: "any" , prev
: [ "const" , "let" , "var" ], next
: [ "const" , "let" , "var" ] }
4317 errors
: [{ messageId
: "expectedBlankLine" }]
4320 code
: "var greet = 'hello', \n name = 'world'; \n console.log(greet, name);" ,
4321 output
: "var greet = 'hello', \n name = 'world'; \n\n console.log(greet, name);" ,
4323 { blankLine
: "always" , prev
: [ "const" , "let" , "var" ], next
: "*" },
4324 { blankLine
: "any" , prev
: [ "const" , "let" , "var" ], next
: [ "const" , "let" , "var" ] }
4326 errors
: [{ messageId
: "expectedBlankLine" }]
4329 code
: "let greet = 'hello'; \n console.log(greet);" ,
4330 output
: "let greet = 'hello'; \n\n console.log(greet);" ,
4332 { blankLine
: "always" , prev
: [ "const" , "let" , "var" ], next
: "*" },
4333 { blankLine
: "any" , prev
: [ "const" , "let" , "var" ], next
: [ "const" , "let" , "var" ] }
4335 errors
: [{ messageId
: "expectedBlankLine" }]
4338 code
: "const greet = 'hello'; \n console.log(greet);" ,
4339 output
: "const greet = 'hello'; \n\n console.log(greet);" ,
4341 { blankLine
: "always" , prev
: [ "const" , "let" , "var" ], next
: "*" },
4342 { blankLine
: "any" , prev
: [ "const" , "let" , "var" ], next
: [ "const" , "let" , "var" ] }
4344 errors
: [{ messageId
: "expectedBlankLine" }]
4347 code
: "function example() { \n var greet = 'hello'; \n console.log(greet); \n }" ,
4348 output
: "function example() { \n var greet = 'hello'; \n\n console.log(greet); \n }" ,
4350 { blankLine
: "always" , prev
: [ "const" , "let" , "var" ], next
: "*" },
4351 { blankLine
: "any" , prev
: [ "const" , "let" , "var" ], next
: [ "const" , "let" , "var" ] }
4353 errors
: [{ messageId
: "expectedBlankLine" }]
4356 code
: "var f = function() { \n var greet = 'hello'; \n console.log(greet); \n };" ,
4357 output
: "var f = function() { \n var greet = 'hello'; \n\n console.log(greet); \n };" ,
4359 { blankLine
: "always" , prev
: [ "const" , "let" , "var" ], next
: "*" },
4360 { blankLine
: "any" , prev
: [ "const" , "let" , "var" ], next
: [ "const" , "let" , "var" ] }
4362 errors
: [{ messageId
: "expectedBlankLine" }]
4365 code
: "() => { \n var greet = 'hello'; \n console.log(greet); \n }" ,
4366 output
: "() => { \n var greet = 'hello'; \n\n console.log(greet); \n }" ,
4368 { blankLine
: "always" , prev
: [ "const" , "let" , "var" ], next
: "*" },
4369 { blankLine
: "any" , prev
: [ "const" , "let" , "var" ], next
: [ "const" , "let" , "var" ] }
4371 errors
: [{ messageId
: "expectedBlankLine" }]
4374 // should disallow blank lines in "never" mode
4376 code
: "var greet = 'hello'; \n\n console.log(greet);" ,
4377 output
: "var greet = 'hello'; \n console.log(greet);" ,
4379 { blankLine
: "never" , prev
: [ "const" , "let" , "var" ], next
: "*" },
4380 { blankLine
: "any" , prev
: [ "const" , "let" , "var" ], next
: [ "const" , "let" , "var" ] }
4382 errors
: [{ messageId
: "unexpectedBlankLine" }]
4385 code
: "var greet = 'hello'; \n\n\n console.log(greet);" ,
4386 output
: "var greet = 'hello'; \n console.log(greet);" ,
4388 { blankLine
: "never" , prev
: [ "const" , "let" , "var" ], next
: "*" },
4389 { blankLine
: "any" , prev
: [ "const" , "let" , "var" ], next
: [ "const" , "let" , "var" ] }
4391 errors
: [{ messageId
: "unexpectedBlankLine" }]
4394 code
: "var greet = 'hello'; \n\n\n\n console.log(greet);" ,
4395 output
: "var greet = 'hello'; \n console.log(greet);" ,
4397 { blankLine
: "never" , prev
: [ "const" , "let" , "var" ], next
: "*" },
4398 { blankLine
: "any" , prev
: [ "const" , "let" , "var" ], next
: [ "const" , "let" , "var" ] }
4400 errors
: [{ messageId
: "unexpectedBlankLine" }]
4403 code
: "var greet = 'hello'; \n\n console.log(greet);" ,
4404 output
: "var greet = 'hello'; \n console.log(greet);" ,
4406 { blankLine
: "never" , prev
: [ "const" , "let" , "var" ], next
: "*" },
4407 { blankLine
: "any" , prev
: [ "const" , "let" , "var" ], next
: [ "const" , "let" , "var" ] }
4409 errors
: [{ messageId
: "unexpectedBlankLine" }]
4412 code
: "var greet = 'hello'; // inline comment \n\n console.log(greet);" ,
4413 output
: "var greet = 'hello'; // inline comment \n console.log(greet);" ,
4415 { blankLine
: "never" , prev
: [ "const" , "let" , "var" ], next
: "*" },
4416 { blankLine
: "any" , prev
: [ "const" , "let" , "var" ], next
: [ "const" , "let" , "var" ] }
4418 errors
: [{ messageId
: "unexpectedBlankLine" }]
4421 code
: "var greet = 'hello'; \n var name = 'world'; \n\n console.log(greet, name);" ,
4422 output
: "var greet = 'hello'; \n var name = 'world'; \n console.log(greet, name);" ,
4424 { blankLine
: "never" , prev
: [ "const" , "let" , "var" ], next
: "*" },
4425 { blankLine
: "any" , prev
: [ "const" , "let" , "var" ], next
: [ "const" , "let" , "var" ] }
4427 errors
: [{ messageId
: "unexpectedBlankLine" }]
4430 code
: "var greet = 'hello', name = 'world'; \n\n console.log(greet, name);" ,
4431 output
: "var greet = 'hello', name = 'world'; \n console.log(greet, name);" ,
4433 { blankLine
: "never" , prev
: [ "const" , "let" , "var" ], next
: "*" },
4434 { blankLine
: "any" , prev
: [ "const" , "let" , "var" ], next
: [ "const" , "let" , "var" ] }
4436 errors
: [{ messageId
: "unexpectedBlankLine" }]
4439 code
: "var greet = 'hello', \n name = 'world'; \n\n console.log(greet, name);" ,
4440 output
: "var greet = 'hello', \n name = 'world'; \n console.log(greet, name);" ,
4442 { blankLine
: "never" , prev
: [ "const" , "let" , "var" ], next
: "*" },
4443 { blankLine
: "any" , prev
: [ "const" , "let" , "var" ], next
: [ "const" , "let" , "var" ] }
4445 errors
: [{ messageId
: "unexpectedBlankLine" }]
4448 code
: "var greet = 'hello', // inline comment \n name = 'world'; // inline comment \n\n console.log(greet, name);" ,
4449 output
: "var greet = 'hello', // inline comment \n name = 'world'; // inline comment \n console.log(greet, name);" ,
4451 { blankLine
: "never" , prev
: [ "const" , "let" , "var" ], next
: "*" },
4452 { blankLine
: "any" , prev
: [ "const" , "let" , "var" ], next
: [ "const" , "let" , "var" ] }
4454 errors
: [{ messageId
: "unexpectedBlankLine" }]
4457 code
: "let greet = 'hello'; \n\n console.log(greet);" ,
4458 output
: "let greet = 'hello'; \n console.log(greet);" ,
4460 { blankLine
: "never" , prev
: [ "const" , "let" , "var" ], next
: "*" },
4461 { blankLine
: "any" , prev
: [ "const" , "let" , "var" ], next
: [ "const" , "let" , "var" ] }
4463 errors
: [{ messageId
: "unexpectedBlankLine" }]
4466 code
: "const greet = 'hello'; \n\n console.log(greet);" ,
4467 output
: "const greet = 'hello'; \n console.log(greet);" ,
4469 { blankLine
: "never" , prev
: [ "const" , "let" , "var" ], next
: "*" },
4470 { blankLine
: "any" , prev
: [ "const" , "let" , "var" ], next
: [ "const" , "let" , "var" ] }
4472 errors
: [{ messageId
: "unexpectedBlankLine" }]
4475 // should disallow a comment on the next line that's not in turn followed by a blank in "always" mode
4477 code
: "var greet = 'hello'; \n // next-line comment \n console.log(greet);" ,
4478 output
: "var greet = 'hello'; \n\n // next-line comment \n console.log(greet);" ,
4480 { blankLine
: "always" , prev
: [ "const" , "let" , "var" ], next
: "*" },
4481 { blankLine
: "any" , prev
: [ "const" , "let" , "var" ], next
: [ "const" , "let" , "var" ] }
4483 errors
: [{ messageId
: "expectedBlankLine" }]
4486 code
: "var greet = 'hello'; \n /* block comment \n block comment */ \n console.log(greet);" ,
4487 output
: "var greet = 'hello'; \n\n /* block comment \n block comment */ \n console.log(greet);" ,
4489 { blankLine
: "always" , prev
: [ "const" , "let" , "var" ], next
: "*" },
4490 { blankLine
: "any" , prev
: [ "const" , "let" , "var" ], next
: [ "const" , "let" , "var" ] }
4492 errors
: [{ messageId
: "expectedBlankLine" }]
4495 code
: "var greet = 'hello', \n name = 'world'; \n // next-line comment \n console.log(greet);" ,
4496 output
: "var greet = 'hello', \n name = 'world'; \n\n // next-line comment \n console.log(greet);" ,
4498 { blankLine
: "always" , prev
: [ "const" , "let" , "var" ], next
: "*" },
4499 { blankLine
: "any" , prev
: [ "const" , "let" , "var" ], next
: [ "const" , "let" , "var" ] }
4501 errors
: [{ messageId
: "expectedBlankLine" }]
4504 code
: "var greet = 'hello', \n name = 'world'; \n /* block comment \n block comment */ \n console.log(greet);" ,
4505 output
: "var greet = 'hello', \n name = 'world'; \n\n /* block comment \n block comment */ \n console.log(greet);" ,
4507 { blankLine
: "always" , prev
: [ "const" , "let" , "var" ], next
: "*" },
4508 { blankLine
: "any" , prev
: [ "const" , "let" , "var" ], next
: [ "const" , "let" , "var" ] }
4510 errors
: [{ messageId
: "expectedBlankLine" }]
4513 code
: "var greet = 'hello'; \n // next-line comment \n // second-line comment \n console.log(greet);" ,
4514 output
: "var greet = 'hello'; \n\n // next-line comment \n // second-line comment \n console.log(greet);" ,
4516 { blankLine
: "always" , prev
: [ "const" , "let" , "var" ], next
: "*" },
4517 { blankLine
: "any" , prev
: [ "const" , "let" , "var" ], next
: [ "const" , "let" , "var" ] }
4519 errors
: [{ messageId
: "expectedBlankLine" }]
4522 code
: "var greet = 'hello'; \n // next-line comment \n /* block comment \n block comment */ \n console.log(greet);" ,
4523 output
: "var greet = 'hello'; \n\n // next-line comment \n /* block comment \n block comment */ \n console.log(greet);" ,
4525 { blankLine
: "always" , prev
: [ "const" , "let" , "var" ], next
: "*" },
4526 { blankLine
: "any" , prev
: [ "const" , "let" , "var" ], next
: [ "const" , "let" , "var" ] }
4528 errors
: [{ messageId
: "expectedBlankLine" }]
4531 // https://github.com/eslint/eslint/issues/6834
4535 ;(b || c).doSomething()
4540 ;(b || c).doSomething()
4543 { blankLine
: "always" , prev
: [ "const" , "let" , "var" ], next
: "*" },
4544 { blankLine
: "any" , prev
: [ "const" , "let" , "var" ], next
: [ "const" , "let" , "var" ] }
4546 errors
: [{ messageId
: "expectedBlankLine" }]
4552 ;(b || c).doSomething()
4556 ;(b || c).doSomething()
4559 { blankLine
: "never" , prev
: [ "const" , "let" , "var" ], next
: "*" },
4560 { blankLine
: "any" , prev
: [ "const" , "let" , "var" ], next
: [ "const" , "let" , "var" ] }
4562 errors
: [{ messageId
: "unexpectedBlankLine" }]
4565 //----------------------------------------------------------------------
4566 // Tests from newline-before-return
4567 //----------------------------------------------------------------------
4570 code
: "function a() { \n var b; return; \n }" ,
4571 output
: "function a() { \n var b; \n\n return; \n }" ,
4573 { blankLine
: "always" , prev
: "*" , next
: "return" }
4575 errors
: [{ messageId
: "expectedBlankLine" }]
4578 code
: "function a() { \n var b; \n return; \n }" ,
4579 output
: "function a() { \n var b; \n\n return; \n }" ,
4581 { blankLine
: "always" , prev
: "*" , next
: "return" }
4583 errors
: [{ messageId
: "expectedBlankLine" }]
4586 code
: "function a() { \n if (b) return b; \n else if (c) return c; \n else { \n e(); \n return d; \n } \n }" ,
4587 output
: "function a() { \n if (b) return b; \n else if (c) return c; \n else { \n e(); \n\n return d; \n } \n }" ,
4589 { blankLine
: "always" , prev
: "*" , next
: "return" }
4591 errors
: [{ messageId
: "expectedBlankLine" }]
4594 code
: "function a() { \n if (b) return b; \n else if (c) return c; \n else { \n e(); return d; \n } \n }" ,
4595 output
: "function a() { \n if (b) return b; \n else if (c) return c; \n else { \n e(); \n\n return d; \n } \n }" ,
4597 { blankLine
: "always" , prev
: "*" , next
: "return" }
4599 errors
: [{ messageId
: "expectedBlankLine" }]
4602 code
: "function a() { \n while (b) { \n c(); \n return; \n } \n }" ,
4603 output
: "function a() { \n while (b) { \n c(); \n\n return; \n } \n }" ,
4605 { blankLine
: "always" , prev
: "*" , next
: "return" }
4607 errors
: [{ messageId
: "expectedBlankLine" }]
4610 code
: "function a() { \n do { \n c(); \n return; \n } while (b); \n }" ,
4611 output
: "function a() { \n do { \n c(); \n\n return; \n } while (b); \n }" ,
4613 { blankLine
: "always" , prev
: "*" , next
: "return" }
4615 errors
: [{ messageId
: "expectedBlankLine" }]
4618 code
: "function a() { \n for (var b; b < c; b++) { \n c(); \n return; \n } \n }" ,
4619 output
: "function a() { \n for (var b; b < c; b++) { \n c(); \n\n return; \n } \n }" ,
4621 { blankLine
: "always" , prev
: "*" , next
: "return" }
4623 errors
: [{ messageId
: "expectedBlankLine" }]
4626 code
: "function a() { \n for (b in c) { \n d(); \n return; \n } \n }" ,
4627 output
: "function a() { \n for (b in c) { \n d(); \n\n return; \n } \n }" ,
4629 { blankLine
: "always" , prev
: "*" , next
: "return" }
4631 errors
: [{ messageId
: "expectedBlankLine" }]
4634 code
: "function a() { \n for (b of c) { \n d(); \n return; \n } \n }" ,
4635 output
: "function a() { \n for (b of c) { \n d(); \n\n return; \n } \n }" ,
4637 { blankLine
: "always" , prev
: "*" , next
: "return" }
4639 errors
: [{ messageId
: "expectedBlankLine" }]
4642 code
: "function a() { \n if (b) { \n c(); \n } \n //comment \n return b; \n }" ,
4643 output
: "function a() { \n if (b) { \n c(); \n } \n\n //comment \n return b; \n }" ,
4645 { blankLine
: "always" , prev
: "*" , next
: "return" }
4647 errors
: [{ messageId
: "expectedBlankLine" }]
4650 code
: "function a() { \n /*comment \n comment*/ \n if (b) { \n c(); \n return b; \n } else { \n //comment \n\n return d; \n } \n /*multi-line \n comment*/ \n return e; \n }" ,
4651 output
: "function a() { \n /*comment \n comment*/ \n if (b) { \n c(); \n\n return b; \n } else { \n //comment \n\n return d; \n } \n\n /*multi-line \n comment*/ \n return e; \n }" ,
4653 { blankLine
: "always" , prev
: "*" , next
: "return" }
4655 errors
: [{ messageId
: "expectedBlankLine" }, { messageId
: "expectedBlankLine" }]
4658 code
: "function a() { \n if (b) { return; } //comment \n return c; \n }" ,
4659 output
: "function a() { \n if (b) { return; } //comment \n\n return c; \n }" ,
4661 { blankLine
: "always" , prev
: "*" , next
: "return" }
4663 errors
: [{ messageId
: "expectedBlankLine" }]
4666 code
: "function a() { \n if (b) { return; } /*multi-line \n comment*/ \n return c; \n }" ,
4667 output
: "function a() { \n if (b) { return; } /*multi-line \n comment*/ \n\n return c; \n }" ,
4669 { blankLine
: "always" , prev
: "*" , next
: "return" }
4671 errors
: [{ messageId
: "expectedBlankLine" }]
4674 code
: "function a() { \n if (b) { return; } \n /*multi-line \n comment*/ return c; \n }" ,
4675 output
: "function a() { \n if (b) { return; } \n\n /*multi-line \n comment*/ return c; \n }" ,
4677 { blankLine
: "always" , prev
: "*" , next
: "return" }
4679 errors
: [{ messageId
: "expectedBlankLine" }]
4682 code
: "function a() { \n if (b) { return; } /*multi-line \n comment*/ return c; \n }" ,
4683 output
: "function a() { \n if (b) { return; } /*multi-line \n comment*/ \n\n return c; \n }" ,
4685 { blankLine
: "always" , prev
: "*" , next
: "return" }
4687 errors
: [{ messageId
: "expectedBlankLine" }]
4690 code
: "var a; \n return;" ,
4691 output
: "var a; \n\n return;" ,
4693 { blankLine
: "always" , prev
: "*" , next
: "return" }
4695 parserOptions
: { ecmaFeatures
: { globalReturn
: true } },
4696 errors
: [{ messageId
: "expectedBlankLine" }]
4699 code
: "var a; return;" ,
4700 output
: "var a; \n\n return;" ,
4702 { blankLine
: "always" , prev
: "*" , next
: "return" }
4704 parserOptions
: { ecmaFeatures
: { globalReturn
: true } },
4705 errors
: [{ messageId
: "expectedBlankLine" }]
4708 code
: "function a() { \n { \n //comment \n } \n return \n }" ,
4709 output
: "function a() { \n { \n //comment \n } \n\n return \n }" ,
4711 { blankLine
: "always" , prev
: "*" , next
: "return" }
4713 errors
: [{ messageId
: "expectedBlankLine" }]
4716 code
: "function a() { \n { \n //comment \n } return \n }" ,
4717 output
: "function a() { \n { \n //comment \n } \n\n return \n }" ,
4719 { blankLine
: "always" , prev
: "*" , next
: "return" }
4721 errors
: [{ messageId
: "expectedBlankLine" }]
4724 code
: "function a() { \n var c; \n while (b) { \n c = d; //comment \n } \n return c; \n }" ,
4725 output
: "function a() { \n var c; \n while (b) { \n c = d; //comment \n } \n\n return c; \n }" ,
4727 { blankLine
: "always" , prev
: "*" , next
: "return" }
4729 errors
: [{ messageId
: "expectedBlankLine" }]
4732 code
: "function a() { \n for (var b; b < c; b++) { \n if (d) { \n break; //comment \n } \n return; \n } \n }" ,
4733 output
: "function a() { \n for (var b; b < c; b++) { \n if (d) { \n break; //comment \n } \n\n return; \n } \n }" ,
4735 { blankLine
: "always" , prev
: "*" , next
: "return" }
4737 errors
: [{ messageId
: "expectedBlankLine" }]
4740 code
: "function a() { \n var b; /*multi-line \n comment*/ \n return c; \n }" ,
4741 output
: "function a() { \n var b; /*multi-line \n comment*/ \n\n return c; \n }" ,
4743 { blankLine
: "always" , prev
: "*" , next
: "return" }
4745 errors
: [{ messageId
: "expectedBlankLine" }]
4748 code
: "function a() { \n var b; \n /*multi-line \n comment*/ return c; \n }" ,
4749 output
: "function a() { \n var b; \n\n /*multi-line \n comment*/ return c; \n }" ,
4751 { blankLine
: "always" , prev
: "*" , next
: "return" }
4753 errors
: [{ messageId
: "expectedBlankLine" }]
4756 code
: "function a() { \n var b; /*multi-line \n comment*/ return c; \n }" ,
4757 output
: "function a() { \n var b; /*multi-line \n comment*/ \n\n return c; \n }" ,
4759 { blankLine
: "always" , prev
: "*" , next
: "return" }
4761 errors
: [{ messageId
: "expectedBlankLine" }]
4764 code
: "function a() { \n var b; \n //comment \n return; \n }" ,
4765 output
: "function a() { \n var b; \n\n //comment \n return; \n }" ,
4767 { blankLine
: "always" , prev
: "*" , next
: "return" }
4769 errors
: [{ messageId
: "expectedBlankLine" }]
4772 code
: "function a() { \n var b; //comment \n return; \n }" ,
4773 output
: "function a() { \n var b; //comment \n\n return; \n }" ,
4775 { blankLine
: "always" , prev
: "*" , next
: "return" }
4777 errors
: [{ messageId
: "expectedBlankLine" }]
4780 code
: "function a() { \n var b; \n /* comment */ return; \n }" ,
4781 output
: "function a() { \n var b; \n\n /* comment */ return; \n }" ,
4783 { blankLine
: "always" , prev
: "*" , next
: "return" }
4785 errors
: [{ messageId
: "expectedBlankLine" }]
4788 code
: "function a() { \n var b; \n //comment \n /* comment */ return; \n }" ,
4789 output
: "function a() { \n var b; \n\n //comment \n /* comment */ return; \n }" ,
4791 { blankLine
: "always" , prev
: "*" , next
: "return" }
4793 errors
: [{ messageId
: "expectedBlankLine" }]
4796 code
: "function a() { \n var b; /* comment */ return; \n }" ,
4797 output
: "function a() { \n var b; /* comment */ \n\n return; \n }" ,
4799 { blankLine
: "always" , prev
: "*" , next
: "return" }
4801 errors
: [{ messageId
: "expectedBlankLine" }]
4804 code
: "function a() { \n var b; /* comment */ \n return; \n }" ,
4805 output
: "function a() { \n var b; /* comment */ \n\n return; \n }" ,
4807 { blankLine
: "always" , prev
: "*" , next
: "return" }
4809 errors
: [{ messageId
: "expectedBlankLine" }]
4812 code
: "function a() { \n var b; \n return; //comment \n }" ,
4813 output
: "function a() { \n var b; \n\n return; //comment \n }" ,
4815 { blankLine
: "always" , prev
: "*" , next
: "return" }
4817 errors
: [{ messageId
: "expectedBlankLine" }]
4820 code
: "function a() { \n var b; return; //comment \n }" ,
4821 output
: "function a() { \n var b; \n\n return; //comment \n }" ,
4823 { blankLine
: "always" , prev
: "*" , next
: "return" }
4825 errors
: [{ messageId
: "expectedBlankLine" }]
4828 //----------------------------------------------------------------------
4829 // From JSCS disallowPaddingNewLinesAfterBlocks
4830 // https://github.com/jscs-dev/node-jscs/blob/44f9b86eb0757fd4ca05a81a50450c5f1b25c37b/test/specs/rules/disallow-padding-newlines-after-blocks.js
4831 //----------------------------------------------------------------------
4834 code
: "if(true){} \n\n var a = 2;" ,
4835 output
: "if(true){} \n var a = 2;" ,
4837 { blankLine
: "never" , prev
: "block-like" , next
: "*" }
4839 errors
: [{ messageId
: "unexpectedBlankLine" }]
4842 code
: "if(true){ \n if(true) {} \n\n var a = 2;}" ,
4843 output
: "if(true){ \n if(true) {} \n var a = 2;}" ,
4845 { blankLine
: "never" , prev
: "block-like" , next
: "*" }
4847 errors
: [{ messageId
: "unexpectedBlankLine" }]
4850 code
: "(function(){ \n })() \n\n var a = 2;" ,
4851 output
: "(function(){ \n })() \n var a = 2;" ,
4853 { blankLine
: "never" , prev
: "block-like" , next
: "*" }
4855 errors
: [{ messageId
: "unexpectedBlankLine" }]
4858 code
: "+(function(){ \n })() \n\n var a = 2;" ,
4859 output
: "+(function(){ \n })() \n var a = 2;" ,
4861 { blankLine
: "never" , prev
: "block-like" , next
: "*" }
4863 errors
: [{ messageId
: "unexpectedBlankLine" }]
4866 code
: "var a = function() {}; \n\n var b = 2;" ,
4867 output
: "var a = function() {}; \n var b = 2;" ,
4869 { blankLine
: "never" , prev
: "block-like" , next
: "*" }
4871 errors
: [{ messageId
: "unexpectedBlankLine" }]
4874 //----------------------------------------------------------------------
4875 // From JSCS disallowPaddingNewLinesBeforeExport
4876 // https://github.com/jscs-dev/node-jscs/blob/44f9b86eb0757fd4ca05a81a50450c5f1b25c37b/test/specs/rules/disallow-padding-newlines-before-export.js
4877 //----------------------------------------------------------------------
4880 code
: "var a = 2; \n\n module.exports = a;" ,
4881 output
: "var a = 2; \n module.exports = a;" ,
4883 { blankLine
: "never" , prev
: "*" , next
: "cjs-export" }
4885 errors
: [{ messageId
: "unexpectedBlankLine" }]
4888 //----------------------------------------------------------------------
4889 // From JSCS disallowPaddingNewLinesBeforeExport
4890 // https://github.com/jscs-dev/node-jscs/blob/44f9b86eb0757fd4ca05a81a50450c5f1b25c37b/test/specs/rules/disallow-padding-newlines-before-keywords.js
4891 //----------------------------------------------------------------------
4894 code
: "function x() { var a; \n\n return; }" ,
4895 output
: "function x() { var a; \n return; }" ,
4897 { blankLine
: "never" , prev
: "*" , next
: [ "if" , "for" , "return" , "switch" , "case" , "break" , "throw" ] }
4899 errors
: [{ messageId
: "unexpectedBlankLine" }]
4902 code
: "function x() { var a = true; \n\n if (a) { a = !a; }; }" ,
4903 output
: "function x() { var a = true; \n if (a) { a = !a; }; }" ,
4905 { blankLine
: "never" , prev
: "*" , next
: [ "if" , "for" , "return" , "switch" , "case" , "break" , "throw" ] }
4907 errors
: [{ messageId
: "unexpectedBlankLine" }]
4910 code
: "function x() { var a = true; \n\n for (var i = 0; i < 10; i++) { a = !a; }; }" ,
4911 output
: "function x() { var a = true; \n for (var i = 0; i < 10; i++) { a = !a; }; }" ,
4913 { blankLine
: "never" , prev
: "*" , next
: [ "if" , "for" , "return" , "switch" , "case" , "break" , "throw" ] }
4915 errors
: [{ messageId
: "unexpectedBlankLine" }]
4918 code
: "function x() { var y = true; \n\n switch ( \" Oranges \" ) { case \" Oranges \" : y = !y; \n\n break; \n\n case \" Apples \" : y = !y; \n\n break; default: y = !y; } }" ,
4919 output
: "function x() { var y = true; \n switch ( \" Oranges \" ) { case \" Oranges \" : y = !y; \n break; \n case \" Apples \" : y = !y; \n break; default: y = !y; } }" ,
4921 { blankLine
: "never" , prev
: "*" , next
: [ "if" , "for" , "return" , "switch" , "case" , "break" , "throw" ] }
4924 { messageId
: "unexpectedBlankLine" },
4925 { messageId
: "unexpectedBlankLine" },
4926 { messageId
: "unexpectedBlankLine" },
4927 { messageId
: "unexpectedBlankLine" }
4931 code
: "function x() {try { var a; \n\n throw 0; } catch (e) { var b = 0; \n\n throw e; } }" ,
4932 output
: "function x() {try { var a; \n throw 0; } catch (e) { var b = 0; \n throw e; } }" ,
4934 { blankLine
: "never" , prev
: "*" , next
: [ "if" , "for" , "return" , "switch" , "case" , "break" , "throw" ] }
4937 { messageId
: "unexpectedBlankLine" },
4938 { messageId
: "unexpectedBlankLine" }
4942 code
: "function x(a) { var b = 0; \n\n if (!a) { return false; }; \n\n for (var i = 0; i < b; i++) { if (!a[i]) return false; } \n\n return true; }" ,
4943 output
: "function x(a) { var b = 0; \n if (!a) { return false; }; \n for (var i = 0; i < b; i++) { if (!a[i]) return false; } \n return true; }" ,
4945 { blankLine
: "never" , prev
: "*" , next
: [ "if" , "for" , "return" , "switch" , "case" , "break" , "throw" ] }
4948 { messageId
: "unexpectedBlankLine" },
4949 { messageId
: "unexpectedBlankLine" },
4950 { messageId
: "unexpectedBlankLine" }
4954 //----------------------------------------------------------------------
4955 // From JSCS requirePaddingNewLinesAfterBlocks
4956 // https://github.com/jscs-dev/node-jscs/blob/44f9b86eb0757fd4ca05a81a50450c5f1b25c37b/test/specs/rules/require-padding-newlines-after-blocks.js
4957 //----------------------------------------------------------------------
4960 code
: "if(true){} \n var a = 2;" ,
4961 output
: "if(true){} \n\n var a = 2;" ,
4963 { blankLine
: "always" , prev
: "block-like" , next
: "*" }
4965 errors
: [{ messageId
: "expectedBlankLine" }]
4968 code
: "var a = function() { \n }; \n var b = 2;" ,
4969 output
: "var a = function() { \n }; \n\n var b = 2;" ,
4971 { blankLine
: "always" , prev
: "block-like" , next
: "*" }
4973 errors
: [{ messageId
: "expectedBlankLine" }]
4976 code
: "if(true){ \n if(true) {} \n var a = 2;}" ,
4977 output
: "if(true){ \n if(true) {} \n\n var a = 2;}" ,
4979 { blankLine
: "always" , prev
: "block-like" , next
: "*" }
4981 errors
: [{ messageId
: "expectedBlankLine" }]
4984 code
: "(function(){ \n })() \n var a = 2;" ,
4985 output
: "(function(){ \n })() \n\n var a = 2;" ,
4987 { blankLine
: "always" , prev
: "block-like" , next
: "*" }
4989 errors
: [{ messageId
: "expectedBlankLine" }]
4992 code
: "var a = function() { \n }; \n var b = 2;" ,
4993 output
: "var a = function() { \n }; \n\n var b = 2;" ,
4995 { blankLine
: "always" , prev
: "multiline-block-like" , next
: "*" }
4997 errors
: [{ messageId
: "expectedBlankLine" }]
5000 code
: "(function(){ \n })() \n var a = 2;" ,
5001 output
: "(function(){ \n })() \n\n var a = 2;" ,
5003 { blankLine
: "always" , prev
: "multiline-block-like" , next
: "*" }
5005 errors
: [{ messageId
: "expectedBlankLine" }]
5008 //----------------------------------------------------------------------
5009 // From JSCS requirePaddingNewLinesBeforeExport
5010 // https://github.com/jscs-dev/node-jscs/blob/44f9b86eb0757fd4ca05a81a50450c5f1b25c37b/test/specs/rules/require-padding-newlines-before-export.js
5011 //----------------------------------------------------------------------
5014 code
: "var a = 2; \n module.exports = a;" ,
5015 output
: "var a = 2; \n\n module.exports = a;" ,
5017 { blankLine
: "always" , prev
: "*" , next
: "cjs-export" }
5019 errors
: [{ messageId
: "expectedBlankLine" }]
5022 //----------------------------------------------------------------------
5023 // From JSCS requirePaddingNewlinesBeforeKeywords
5024 // https://github.com/jscs-dev/node-jscs/blob/44f9b86eb0757fd4ca05a81a50450c5f1b25c37b/test/specs/rules/require-padding-newlines-before-keywords.js
5025 //----------------------------------------------------------------------
5028 code
: "function x() { var a; return; }" ,
5029 output
: "function x() { var a; \n\n return; }" ,
5031 { blankLine
: "always" , prev
: "*" , next
: [ "if" , "for" , "return" , "switch" , "case" , "break" , "throw" , "while" , "default" ] }
5033 errors
: [{ messageId
: "expectedBlankLine" }]
5036 code
: "function x() { var a = true; for (var i = 0; i < 10; i++) { a = !a; }; }" ,
5037 output
: "function x() { var a = true; \n\n for (var i = 0; i < 10; i++) { a = !a; }; }" ,
5039 { blankLine
: "always" , prev
: "*" , next
: [ "if" , "for" , "return" , "switch" , "case" , "break" , "throw" , "while" , "default" ] }
5041 errors
: [{ messageId
: "expectedBlankLine" }]
5044 code
: "function x() { var y = true; switch ( \" Oranges \" ) { case \" Oranges \" : y = !y; break; case \" Apples \" : y = !y; break; default: y = !y; } }" ,
5045 output
: "function x() { var y = true; \n\n switch ( \" Oranges \" ) { case \" Oranges \" : y = !y; \n\n break; \n\n case \" Apples \" : y = !y; \n\n break; \n\n default: y = !y; } }" ,
5047 { blankLine
: "always" , prev
: "*" , next
: [ "if" , "for" , "return" , "switch" , "case" , "break" , "throw" , "while" , "default" ] }
5050 { messageId
: "expectedBlankLine" },
5051 { messageId
: "expectedBlankLine" },
5052 { messageId
: "expectedBlankLine" },
5053 { messageId
: "expectedBlankLine" },
5054 { messageId
: "expectedBlankLine" }
5058 code
: "function x() { var a = true; while (!a) { a = !a; }; }" ,
5059 output
: "function x() { var a = true; \n\n while (!a) { a = !a; }; }" ,
5061 { blankLine
: "always" , prev
: "*" , next
: [ "if" , "for" , "return" , "switch" , "case" , "break" , "throw" , "while" , "default" ] }
5063 errors
: [{ messageId
: "expectedBlankLine" }]
5066 code
: "function x() {try { var a; throw 0; } catch (e) { var b = 0; throw e; } }" ,
5067 output
: "function x() {try { var a; \n\n throw 0; } catch (e) { var b = 0; \n\n throw e; } }" ,
5069 { blankLine
: "always" , prev
: "*" , next
: [ "if" , "for" , "return" , "switch" , "case" , "break" , "throw" , "while" , "default" ] }
5072 { messageId
: "expectedBlankLine" },
5073 { messageId
: "expectedBlankLine" }
5077 code
: "function x(a) { var b = 0; if (!a) { return false; }; for (var i = 0; i < b; i++) { if (!a[i]) return false; } return true; }" ,
5078 output
: "function x(a) { var b = 0; \n\n if (!a) { return false; }; \n\n for (var i = 0; i < b; i++) { if (!a[i]) return false; } \n\n return true; }" ,
5080 { blankLine
: "always" , prev
: "*" , next
: [ "if" , "for" , "return" , "switch" , "case" , "break" , "throw" , "while" , "default" ] }
5083 { messageId
: "expectedBlankLine" },
5084 { messageId
: "expectedBlankLine" },
5085 { messageId
: "expectedBlankLine" }
5089 // class static blocks
5091 code
: "class C { \n static { \n let x; \n foo(); \n } \n }" ,
5092 output
: "class C { \n static { \n let x; \n\n foo(); \n } \n }" ,
5094 { blankLine
: "always" , prev
: "let" , next
: "expression" }
5096 parserOptions
: { ecmaVersion
: 2022 },
5097 errors
: [{ messageId
: "expectedBlankLine" }]
5100 code
: "class C { \n static { \n let x; \n\n foo(); \n } \n }" ,
5101 output
: "class C { \n static { \n let x; \n foo(); \n } \n }" ,
5103 { blankLine
: "never" , prev
: "let" , next
: "expression" }
5105 parserOptions
: { ecmaVersion
: 2022 },
5106 errors
: [{ messageId
: "unexpectedBlankLine" }]
5109 code
: "class C { \n static { \n let x; \n foo(); \n const y = 1; \n } \n }" ,
5110 output
: "class C { \n static { \n let x; \n foo(); \n\n const y = 1; \n } \n }" ,
5112 { blankLine
: "always" , prev
: "expression" , next
: "const" }
5114 parserOptions
: { ecmaVersion
: 2022 },
5115 errors
: [{ messageId
: "expectedBlankLine" }]
5118 code
: "class C { \n static { \n let x; \n foo(); \n\n const y = 1; \n } \n }" ,
5119 output
: "class C { \n static { \n let x; \n foo(); \n const y = 1; \n } \n }" ,
5121 { blankLine
: "never" , prev
: "expression" , next
: "const" }
5123 parserOptions
: { ecmaVersion
: 2022 },
5124 errors
: [{ messageId
: "unexpectedBlankLine" }]
5127 code
: "class C { \n static { \n let x; \n foo(); \n const y = 1; \n const z = 1; \n } \n }" ,
5128 output
: "class C { \n static { \n let x; \n foo(); \n\n const y = 1; \n const z = 1; \n } \n }" ,
5130 { blankLine
: "always" , prev
: "expression" , next
: "const" }
5132 parserOptions
: { ecmaVersion
: 2022 },
5133 errors
: [{ messageId
: "expectedBlankLine" }]
5136 code
: "class C { \n static { \n let x; \n foo(); \n\n const y = 1; \n const z = 1; \n } \n }" ,
5137 output
: "class C { \n static { \n let x; \n foo(); \n const y = 1; \n const z = 1; \n } \n }" ,
5139 { blankLine
: "never" , prev
: "expression" , next
: "const" }
5141 parserOptions
: { ecmaVersion
: 2022 },
5142 errors
: [{ messageId
: "unexpectedBlankLine" }]
5145 code
: "class C { \n static { \n let a = 0; \n bar(); \n } \n }" ,
5146 output
: "class C { \n static { \n let a = 0; \n\n bar(); \n } \n }" ,
5148 { blankLine
: "always" , prev
: [ "const" , "let" , "var" ], next
: "*" },
5149 { blankLine
: "any" , prev
: [ "const" , "let" , "var" ], next
: [ "const" , "let" , "var" ] }
5151 parserOptions
: { ecmaVersion
: 2022 },
5152 errors
: [{ messageId
: "expectedBlankLine" }]
5155 code
: "class C { static { let x; { let y; let z; } let q; } }" ,
5156 output
: "class C { static { let x; { let y; \n\n let z; } let q; } }" ,
5158 { blankLine
: "always" , prev
: "let" , next
: "let" }
5160 parserOptions
: { ecmaVersion
: 2022 },
5161 errors
: [{ messageId
: "expectedBlankLine" }]
5164 code
: "class C { static { { let x; } let y; let z; } }" ,
5165 output
: "class C { static { { let x; } let y; \n\n let z; } }" ,
5167 { blankLine
: "always" , prev
: "let" , next
: "let" }
5169 parserOptions
: { ecmaVersion
: 2022 },
5170 errors
: [{ messageId
: "expectedBlankLine" }]
5173 code
: "class C { static { foo(); if (bar) {} } }" ,
5174 output
: "class C { static { foo(); \n\n if (bar) {} } }" ,
5176 { blankLine
: "always" , prev
: "expression" , next
: "block-like" }
5178 parserOptions
: { ecmaVersion
: 2022 },
5179 errors
: [{ messageId
: "expectedBlankLine" }]
5182 code
: "class C { static { let x; } } let y;" ,
5183 output
: "class C { static { let x; } } \n\n let y;" ,
5185 { blankLine
: "always" , prev
: "class" , next
: "let" }
5187 parserOptions
: { ecmaVersion
: 2022 },
5188 errors
: [{ messageId
: "expectedBlankLine" }]
5191 code
: "class C { static { 'use strict'; let x; } }" , // 'use strict'; is "espression", because class static blocks don't have directives
5192 output
: "class C { static { 'use strict'; \n\n let x; } }" ,
5194 { blankLine
: "always" , prev
: "expression" , next
: "let" }
5196 parserOptions
: { ecmaVersion
: 2022 },
5197 errors
: [{ messageId
: "expectedBlankLine" }]