]>
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" }
2633 //----------------------------------------------------------------------
2635 //----------------------------------------------------------------------
2638 code
: "foo(); \n\n foo();" ,
2639 output
: "foo(); \n foo();" ,
2641 { blankLine
: "never" , prev
: "*" , next
: "*" }
2643 errors
: [{ messageId
: "unexpectedBlankLine" }]
2646 code
: "foo(); \n\n //comment \n foo();" ,
2647 output
: "foo(); \n //comment \n foo();" ,
2649 { blankLine
: "never" , prev
: "*" , next
: "*" }
2651 errors
: [{ messageId
: "unexpectedBlankLine" }]
2654 code
: " foo(); \n \n //comment \n foo();" ,
2655 output
: " foo(); \n //comment \n foo();" ,
2657 { blankLine
: "never" , prev
: "*" , next
: "*" }
2659 errors
: [{ messageId
: "unexpectedBlankLine" }]
2662 code
: "if (a) {} \n\n for (;;) {}" ,
2663 output
: "if (a) {} \n for (;;) {}" ,
2665 { blankLine
: "never" , prev
: "*" , next
: "*" }
2667 errors
: [{ messageId
: "unexpectedBlankLine" }]
2670 code
: "foo(); \n foo();" ,
2671 output
: "foo(); \n\n foo();" ,
2673 { blankLine
: "always" , prev
: "*" , next
: "*" }
2675 errors
: [{ messageId
: "expectedBlankLine" }]
2678 code
: " function a() {} \n do {} while (a)" ,
2679 output
: " function a() {} \n\n do {} while (a)" ,
2681 { blankLine
: "always" , prev
: "*" , next
: "*" }
2683 errors
: [{ messageId
: "expectedBlankLine" }]
2686 code
: "foo();//trailing-comment \n //comment \n //comment \n foo();" ,
2687 output
: "foo();//trailing-comment \n\n //comment \n //comment \n foo();" ,
2689 { blankLine
: "always" , prev
: "*" , next
: "*" }
2691 errors
: [{ messageId
: "expectedBlankLine" }]
2694 //----------------------------------------------------------------------
2696 //----------------------------------------------------------------------
2699 code
: "{} \n\n foo()" ,
2700 output
: "{} \n foo()" ,
2702 { blankLine
: "never" , prev
: "block-like" , next
: "*" }
2704 errors
: [{ messageId
: "unexpectedBlankLine" }]
2708 output
: "{} \n\n foo()" ,
2710 { blankLine
: "always" , prev
: "block-like" , next
: "*" }
2712 errors
: [{ messageId
: "expectedBlankLine" }]
2715 code
: "if(a){} \n foo()" ,
2716 output
: "if(a){} \n\n foo()" ,
2718 { blankLine
: "always" , prev
: "block-like" , next
: "*" }
2720 errors
: [{ messageId
: "expectedBlankLine" }]
2723 code
: "if(a){}else{} \n foo()" ,
2724 output
: "if(a){}else{} \n\n foo()" ,
2726 { blankLine
: "always" , prev
: "block-like" , next
: "*" }
2728 errors
: [{ messageId
: "expectedBlankLine" }]
2731 code
: "if(a){}else if(b){} \n foo()" ,
2732 output
: "if(a){}else if(b){} \n\n foo()" ,
2734 { blankLine
: "always" , prev
: "block-like" , next
: "*" }
2736 errors
: [{ messageId
: "expectedBlankLine" }]
2739 code
: "if(a){}else if(b){}else{} \n foo()" ,
2740 output
: "if(a){}else if(b){}else{} \n\n foo()" ,
2742 { blankLine
: "always" , prev
: "block-like" , next
: "*" }
2744 errors
: [{ messageId
: "expectedBlankLine" }]
2747 code
: "switch(a){} \n foo()" ,
2748 output
: "switch(a){} \n\n foo()" ,
2750 { blankLine
: "always" , prev
: "block-like" , next
: "*" }
2752 errors
: [{ messageId
: "expectedBlankLine" }]
2755 code
: "switch(a){case 0:} \n foo()" ,
2756 output
: "switch(a){case 0:} \n\n foo()" ,
2758 { blankLine
: "always" , prev
: "block-like" , next
: "*" }
2760 errors
: [{ messageId
: "expectedBlankLine" }]
2763 code
: "try{}catch(e){} \n foo()" ,
2764 output
: "try{}catch(e){} \n\n foo()" ,
2766 { blankLine
: "always" , prev
: "block-like" , next
: "*" }
2768 errors
: [{ messageId
: "expectedBlankLine" }]
2771 code
: "try{}finally{} \n foo()" ,
2772 output
: "try{}finally{} \n\n foo()" ,
2774 { blankLine
: "always" , prev
: "block-like" , next
: "*" }
2776 errors
: [{ messageId
: "expectedBlankLine" }]
2779 code
: "try{}catch(e){}finally{} \n foo()" ,
2780 output
: "try{}catch(e){}finally{} \n\n foo()" ,
2782 { blankLine
: "always" , prev
: "block-like" , next
: "*" }
2784 errors
: [{ messageId
: "expectedBlankLine" }]
2787 code
: "while(a){} \n foo()" ,
2788 output
: "while(a){} \n\n foo()" ,
2790 { blankLine
: "always" , prev
: "block-like" , next
: "*" }
2792 errors
: [{ messageId
: "expectedBlankLine" }]
2795 code
: "do{}while(a) \n foo()" ,
2796 output
: "do{}while(a) \n\n foo()" ,
2798 { blankLine
: "always" , prev
: "block-like" , next
: "*" }
2800 errors
: [{ messageId
: "expectedBlankLine" }]
2803 code
: "for(;;){} \n foo()" ,
2804 output
: "for(;;){} \n\n foo()" ,
2806 { blankLine
: "always" , prev
: "block-like" , next
: "*" }
2808 errors
: [{ messageId
: "expectedBlankLine" }]
2811 code
: "for(a in b){} \n foo()" ,
2812 output
: "for(a in b){} \n\n foo()" ,
2814 { blankLine
: "always" , prev
: "block-like" , next
: "*" }
2816 errors
: [{ messageId
: "expectedBlankLine" }]
2819 code
: "for(a of b){} \n foo()" ,
2820 output
: "for(a of b){} \n\n foo()" ,
2822 { blankLine
: "always" , prev
: "block-like" , next
: "*" }
2824 errors
: [{ messageId
: "expectedBlankLine" }]
2827 code
: "a=function(){} \n foo()" ,
2828 output
: "a=function(){} \n\n foo()" ,
2830 { blankLine
: "always" , prev
: "block-like" , next
: "*" }
2832 errors
: [{ messageId
: "expectedBlankLine" }]
2835 code
: "a=()=>{} \n foo()" ,
2836 output
: "a=()=>{} \n\n foo()" ,
2838 { blankLine
: "always" , prev
: "block-like" , next
: "*" }
2840 errors
: [{ messageId
: "expectedBlankLine" }]
2843 code
: "function a(){} \n foo()" ,
2844 output
: "function a(){} \n\n foo()" ,
2846 { blankLine
: "always" , prev
: "block-like" , next
: "*" }
2848 errors
: [{ messageId
: "expectedBlankLine" }]
2851 code
: "let a=function(){} \n foo()" ,
2852 output
: "let a=function(){} \n\n foo()" ,
2854 { blankLine
: "always" , prev
: "block-like" , next
: "*" }
2856 errors
: [{ messageId
: "expectedBlankLine" }]
2859 //----------------------------------------------------------------------
2861 //----------------------------------------------------------------------
2864 code
: "module.exports=1 \n\n foo()" ,
2865 output
: "module.exports=1 \n foo()" ,
2867 { blankLine
: "never" , prev
: "cjs-export" , next
: "*" }
2869 errors
: [{ messageId
: "unexpectedBlankLine" }]
2872 code
: "module.exports=1 \n foo()" ,
2873 output
: "module.exports=1 \n\n foo()" ,
2875 { blankLine
: "always" , prev
: "cjs-export" , next
: "*" }
2877 errors
: [{ messageId
: "expectedBlankLine" }]
2880 code
: "module.exports.foo=1 \n foo()" ,
2881 output
: "module.exports.foo=1 \n\n foo()" ,
2883 { blankLine
: "always" , prev
: "cjs-export" , next
: "*" }
2885 errors
: [{ messageId
: "expectedBlankLine" }]
2888 code
: "module.exports[foo]=1 \n foo()" ,
2889 output
: "module.exports[foo]=1 \n\n foo()" ,
2891 { blankLine
: "always" , prev
: "cjs-export" , next
: "*" }
2893 errors
: [{ messageId
: "expectedBlankLine" }]
2896 code
: "exports.foo=1 \n foo()" ,
2897 output
: "exports.foo=1 \n\n foo()" ,
2899 { blankLine
: "always" , prev
: "cjs-export" , next
: "*" }
2901 errors
: [{ messageId
: "expectedBlankLine" }]
2904 code
: "exports[foo]=1 \n foo()" ,
2905 output
: "exports[foo]=1 \n\n foo()" ,
2907 { blankLine
: "always" , prev
: "cjs-export" , next
: "*" }
2909 errors
: [{ messageId
: "expectedBlankLine" }]
2912 //----------------------------------------------------------------------
2914 //----------------------------------------------------------------------
2917 code
: "const foo=require( \" foo \" ) \n\n foo()" ,
2918 output
: "const foo=require( \" foo \" ) \n foo()" ,
2920 { blankLine
: "never" , prev
: "cjs-import" , next
: "*" }
2922 errors
: [{ messageId
: "unexpectedBlankLine" }]
2925 code
: "const foo=require( \" foo \" ) \n foo()" ,
2926 output
: "const foo=require( \" foo \" ) \n\n foo()" ,
2928 { blankLine
: "always" , prev
: "cjs-import" , next
: "*" }
2930 errors
: [{ messageId
: "expectedBlankLine" }]
2933 code
: "const foo=require( \" foo \" ).Foo \n foo()" ,
2934 output
: "const foo=require( \" foo \" ).Foo \n\n foo()" ,
2936 { blankLine
: "always" , prev
: "cjs-import" , next
: "*" }
2938 errors
: [{ messageId
: "expectedBlankLine" }]
2941 code
: "const foo=require( \" foo \" )[a] \n foo()" ,
2942 output
: "const foo=require( \" foo \" )[a] \n\n foo()" ,
2944 { blankLine
: "always" , prev
: "cjs-import" , next
: "*" }
2946 errors
: [{ messageId
: "expectedBlankLine" }]
2949 //----------------------------------------------------------------------
2951 //----------------------------------------------------------------------
2954 code
: " \" use strict \"\n\n foo()" ,
2955 output
: " \" use strict \"\n foo()" ,
2957 { blankLine
: "never" , prev
: "directive" , next
: "*" }
2959 errors
: [{ messageId
: "unexpectedBlankLine" }]
2962 code
: " \" use strict \"\n foo()" ,
2963 output
: " \" use strict \"\n\n foo()" ,
2965 { blankLine
: "always" , prev
: "directive" , next
: "*" }
2967 errors
: [{ messageId
: "expectedBlankLine" }]
2970 code
: "'use strict' \n foo()" ,
2971 output
: "'use strict' \n\n foo()" ,
2973 { blankLine
: "always" , prev
: "directive" , next
: "*" }
2975 errors
: [{ messageId
: "expectedBlankLine" }]
2978 code
: "'use asm' \n foo()" ,
2979 output
: "'use asm' \n\n foo()" ,
2981 { blankLine
: "always" , prev
: "directive" , next
: "*" }
2983 errors
: [{ messageId
: "expectedBlankLine" }]
2986 //----------------------------------------------------------------------
2987 // multiline-block-like
2988 //----------------------------------------------------------------------
2991 code
: "{ \n } \n\n foo()" ,
2992 output
: "{ \n } \n foo()" ,
2994 { blankLine
: "never" , prev
: "block-like" , next
: "*" }
2996 errors
: [{ messageId
: "unexpectedBlankLine" }]
2999 code
: "{ \n } \n foo()" ,
3000 output
: "{ \n } \n\n foo()" ,
3002 { blankLine
: "always" , prev
: "block-like" , next
: "*" }
3004 errors
: [{ messageId
: "expectedBlankLine" }]
3007 code
: "if(a){ \n } \n foo()" ,
3008 output
: "if(a){ \n } \n\n foo()" ,
3010 { blankLine
: "always" , prev
: "block-like" , next
: "*" }
3012 errors
: [{ messageId
: "expectedBlankLine" }]
3015 code
: "if(a){ \n }else{ \n } \n foo()" ,
3016 output
: "if(a){ \n }else{ \n } \n\n foo()" ,
3018 { blankLine
: "always" , prev
: "block-like" , next
: "*" }
3020 errors
: [{ messageId
: "expectedBlankLine" }]
3023 code
: "if(a){ \n }else if(b){ \n } \n foo()" ,
3024 output
: "if(a){ \n }else if(b){ \n } \n\n foo()" ,
3026 { blankLine
: "always" , prev
: "block-like" , next
: "*" }
3028 errors
: [{ messageId
: "expectedBlankLine" }]
3031 code
: "if(a){ \n }else if(b){ \n }else{ \n } \n foo()" ,
3032 output
: "if(a){ \n }else if(b){ \n }else{ \n } \n\n foo()" ,
3034 { blankLine
: "always" , prev
: "block-like" , next
: "*" }
3036 errors
: [{ messageId
: "expectedBlankLine" }]
3039 code
: "switch(a){ \n } \n foo()" ,
3040 output
: "switch(a){ \n } \n\n foo()" ,
3042 { blankLine
: "always" , prev
: "block-like" , next
: "*" }
3044 errors
: [{ messageId
: "expectedBlankLine" }]
3047 code
: "try{ \n }catch(e){ \n } \n foo()" ,
3048 output
: "try{ \n }catch(e){ \n } \n\n foo()" ,
3050 { blankLine
: "always" , prev
: "block-like" , next
: "*" }
3052 errors
: [{ messageId
: "expectedBlankLine" }]
3055 code
: "try{ \n }finally{ \n } \n foo()" ,
3056 output
: "try{ \n }finally{ \n } \n\n foo()" ,
3058 { blankLine
: "always" , prev
: "block-like" , next
: "*" }
3060 errors
: [{ messageId
: "expectedBlankLine" }]
3063 code
: "try{ \n }catch(e){ \n }finally{ \n } \n foo()" ,
3064 output
: "try{ \n }catch(e){ \n }finally{ \n } \n\n foo()" ,
3066 { blankLine
: "always" , prev
: "block-like" , next
: "*" }
3068 errors
: [{ messageId
: "expectedBlankLine" }]
3071 code
: "while(a){ \n } \n foo()" ,
3072 output
: "while(a){ \n } \n\n foo()" ,
3074 { blankLine
: "always" , prev
: "block-like" , next
: "*" }
3076 errors
: [{ messageId
: "expectedBlankLine" }]
3079 code
: "do{ \n }while(a) \n foo()" ,
3080 output
: "do{ \n }while(a) \n\n foo()" ,
3082 { blankLine
: "always" , prev
: "block-like" , next
: "*" }
3084 errors
: [{ messageId
: "expectedBlankLine" }]
3087 code
: "for(;;){ \n } \n foo()" ,
3088 output
: "for(;;){ \n } \n\n foo()" ,
3090 { blankLine
: "always" , prev
: "block-like" , next
: "*" }
3092 errors
: [{ messageId
: "expectedBlankLine" }]
3095 code
: "for(a in b){ \n } \n foo()" ,
3096 output
: "for(a in b){ \n } \n\n foo()" ,
3098 { blankLine
: "always" , prev
: "block-like" , next
: "*" }
3100 errors
: [{ messageId
: "expectedBlankLine" }]
3103 code
: "for(a of b){ \n } \n foo()" ,
3104 output
: "for(a of b){ \n } \n\n foo()" ,
3106 { blankLine
: "always" , prev
: "block-like" , next
: "*" }
3108 errors
: [{ messageId
: "expectedBlankLine" }]
3111 code
: "a=function(){ \n } \n foo()" ,
3112 output
: "a=function(){ \n } \n\n foo()" ,
3114 { blankLine
: "always" , prev
: "block-like" , next
: "*" }
3116 errors
: [{ messageId
: "expectedBlankLine" }]
3119 code
: "a=()=>{ \n } \n foo()" ,
3120 output
: "a=()=>{ \n } \n\n foo()" ,
3122 { blankLine
: "always" , prev
: "block-like" , next
: "*" }
3124 errors
: [{ messageId
: "expectedBlankLine" }]
3127 code
: "function a(){ \n } \n foo()" ,
3128 output
: "function a(){ \n } \n\n foo()" ,
3130 { blankLine
: "always" , prev
: "block-like" , next
: "*" }
3132 errors
: [{ messageId
: "expectedBlankLine" }]
3135 code
: "let a=function(){ \n } \n foo()" ,
3136 output
: "let a=function(){ \n } \n\n foo()" ,
3138 { blankLine
: "always" , prev
: "block-like" , next
: "*" }
3140 errors
: [{ messageId
: "expectedBlankLine" }]
3143 //----------------------------------------------------------------------
3145 //----------------------------------------------------------------------
3148 code
: "{} \n\n foo()" ,
3149 output
: "{} \n foo()" ,
3151 { blankLine
: "never" , prev
: "block" , next
: "*" }
3153 errors
: [{ messageId
: "unexpectedBlankLine" }]
3157 output
: "{} \n\n foo()" ,
3159 { blankLine
: "always" , prev
: "block" , next
: "*" }
3161 errors
: [{ messageId
: "expectedBlankLine" }]
3164 //----------------------------------------------------------------------
3166 //----------------------------------------------------------------------
3172 { blankLine
: "never" , prev
: "empty" , next
: "*" }
3174 errors
: [{ messageId
: "unexpectedBlankLine" }]
3178 output
: "; \n\n foo()" ,
3180 { blankLine
: "always" , prev
: "empty" , next
: "*" }
3182 errors
: [{ messageId
: "expectedBlankLine" }]
3185 //----------------------------------------------------------------------
3187 //----------------------------------------------------------------------
3190 code
: "foo() \n\n foo()" ,
3191 output
: "foo() \n foo()" ,
3193 { blankLine
: "never" , prev
: "expression" , next
: "*" }
3195 errors
: [{ messageId
: "unexpectedBlankLine" }]
3198 code
: "foo() \n foo()" ,
3199 output
: "foo() \n\n foo()" ,
3201 { blankLine
: "always" , prev
: "expression" , next
: "*" }
3203 errors
: [{ messageId
: "expectedBlankLine" }]
3206 //----------------------------------------------------------------------
3207 // multiline-expression
3208 //----------------------------------------------------------------------
3211 code
: "foo() \n\n foo( \n\t x, \n\t y \n )" ,
3212 output
: "foo() \n foo( \n\t x, \n\t y \n )" ,
3214 { blankLine
: "never" , prev
: "*" , next
: "multiline-expression" }
3216 errors
: [{ messageId
: "unexpectedBlankLine" }]
3219 code
: "foo() \n foo( \n\t x, \n\t y \n )" ,
3220 output
: "foo() \n\n foo( \n\t x, \n\t y \n )" ,
3222 { blankLine
: "always" , prev
: "*" , next
: "multiline-expression" }
3224 errors
: [{ messageId
: "expectedBlankLine" }]
3227 code
: "() => { \n\t someArray.forEach( \n\t\t x => doSomething(x) \n\t ); \n\t return theThing; \n }" ,
3228 output
: "() => { \n\t someArray.forEach( \n\t\t x => doSomething(x) \n\t ); \n\n\t return theThing; \n }" ,
3230 { blankLine
: "always" , prev
: "multiline-expression" , next
: "return" }
3232 errors
: [{ messageId
: "expectedBlankLine" }]
3235 //----------------------------------------------------------------------
3237 //----------------------------------------------------------------------
3240 code
: "while(a){break \n\n foo()}" ,
3241 output
: "while(a){break \n foo()}" ,
3243 { blankLine
: "never" , prev
: "break" , next
: "*" }
3245 errors
: [{ messageId
: "unexpectedBlankLine" }]
3248 code
: "switch(a){case 0:break \n\n foo()}" ,
3249 output
: "switch(a){case 0:break \n foo()}" ,
3251 { blankLine
: "never" , prev
: "break" , next
: "*" }
3253 errors
: [{ messageId
: "unexpectedBlankLine" }]
3256 code
: "while(a){break \n foo()}" ,
3257 output
: "while(a){break \n\n foo()}" ,
3259 { blankLine
: "always" , prev
: "break" , next
: "*" }
3261 errors
: [{ messageId
: "expectedBlankLine" }]
3264 code
: "switch(a){case 0:break \n foo()}" ,
3265 output
: "switch(a){case 0:break \n\n foo()}" ,
3267 { blankLine
: "always" , prev
: "break" , next
: "*" }
3269 errors
: [{ messageId
: "expectedBlankLine" }]
3272 //----------------------------------------------------------------------
3274 //----------------------------------------------------------------------
3277 code
: "switch(a){case 0: \n foo() \n\n default:}" ,
3278 output
: "switch(a){case 0: \n foo() \n default:}" ,
3280 { blankLine
: "never" , prev
: "case" , next
: "*" }
3282 errors
: [{ messageId
: "unexpectedBlankLine" }]
3285 code
: "switch(a){case 0: \n foo() \n default:}" ,
3286 output
: "switch(a){case 0: \n foo() \n\n default:}" ,
3288 { blankLine
: "always" , prev
: "case" , next
: "*" }
3290 errors
: [{ messageId
: "expectedBlankLine" }]
3293 //----------------------------------------------------------------------
3295 //----------------------------------------------------------------------
3298 code
: "class A{} \n\n foo()" ,
3299 output
: "class A{} \n foo()" ,
3301 { blankLine
: "never" , prev
: "class" , next
: "*" }
3303 errors
: [{ messageId
: "unexpectedBlankLine" }]
3306 code
: "class A{} \n foo()" ,
3307 output
: "class A{} \n\n foo()" ,
3309 { blankLine
: "always" , prev
: "class" , next
: "*" }
3311 errors
: [{ messageId
: "expectedBlankLine" }]
3314 //----------------------------------------------------------------------
3316 //----------------------------------------------------------------------
3319 code
: "const a=1 \n\n foo()" ,
3320 output
: "const a=1 \n foo()" ,
3322 { blankLine
: "never" , prev
: "const" , next
: "*" }
3324 errors
: [{ messageId
: "unexpectedBlankLine" }]
3327 code
: "const a=1 \n foo()" ,
3328 output
: "const a=1 \n\n foo()" ,
3330 { blankLine
: "always" , prev
: "const" , next
: "*" }
3332 errors
: [{ messageId
: "expectedBlankLine" }]
3335 //----------------------------------------------------------------------
3337 //----------------------------------------------------------------------
3340 code
: "while(a){continue \n\n foo()}" ,
3341 output
: "while(a){continue \n foo()}" ,
3343 { blankLine
: "never" , prev
: "continue" , next
: "*" }
3345 errors
: [{ messageId
: "unexpectedBlankLine" }]
3348 code
: "while(a){continue \n foo()}" ,
3349 output
: "while(a){continue \n\n foo()}" ,
3351 { blankLine
: "always" , prev
: "continue" , next
: "*" }
3353 errors
: [{ messageId
: "expectedBlankLine" }]
3356 //----------------------------------------------------------------------
3358 //----------------------------------------------------------------------
3361 code
: "debugger \n\n foo()" ,
3362 output
: "debugger \n foo()" ,
3364 { blankLine
: "never" , prev
: "debugger" , next
: "*" }
3366 errors
: [{ messageId
: "unexpectedBlankLine" }]
3369 code
: "debugger \n foo()" ,
3370 output
: "debugger \n\n foo()" ,
3372 { blankLine
: "always" , prev
: "debugger" , next
: "*" }
3374 errors
: [{ messageId
: "expectedBlankLine" }]
3377 //----------------------------------------------------------------------
3379 //----------------------------------------------------------------------
3382 code
: "switch(a){default: \n foo() \n\n case 0:}" ,
3383 output
: "switch(a){default: \n foo() \n case 0:}" ,
3385 { blankLine
: "never" , prev
: "default" , next
: "*" }
3387 errors
: [{ messageId
: "unexpectedBlankLine" }]
3390 code
: "switch(a){default: \n foo() \n case 0:}" ,
3391 output
: "switch(a){default: \n foo() \n\n case 0:}" ,
3393 { blankLine
: "always" , prev
: "default" , next
: "*" }
3395 errors
: [{ messageId
: "expectedBlankLine" }]
3398 //----------------------------------------------------------------------
3400 //----------------------------------------------------------------------
3403 code
: "do;while(a) \n\n foo()" ,
3404 output
: "do;while(a) \n foo()" ,
3406 { blankLine
: "never" , prev
: "do" , next
: "*" }
3408 errors
: [{ messageId
: "unexpectedBlankLine" }]
3411 code
: "do;while(a) \n foo()" ,
3412 output
: "do;while(a) \n\n foo()" ,
3414 { blankLine
: "always" , prev
: "do" , next
: "*" }
3416 errors
: [{ messageId
: "expectedBlankLine" }]
3419 //----------------------------------------------------------------------
3421 //----------------------------------------------------------------------
3424 code
: "export default 1 \n\n foo()" ,
3425 output
: "export default 1 \n foo()" ,
3427 { blankLine
: "never" , prev
: "export" , next
: "*" }
3429 parserOptions
: { ecmaVersion
: 6 , sourceType
: "module" },
3430 errors
: [{ messageId
: "unexpectedBlankLine" }]
3433 code
: "export let a=1 \n\n foo()" ,
3434 output
: "export let a=1 \n foo()" ,
3436 { blankLine
: "never" , prev
: "export" , next
: "*" }
3438 parserOptions
: { ecmaVersion
: 6 , sourceType
: "module" },
3439 errors
: [{ messageId
: "unexpectedBlankLine" }]
3442 code
: "var a = 0;export {a} \n\n foo()" ,
3443 output
: "var a = 0;export {a} \n foo()" ,
3445 { blankLine
: "never" , prev
: "export" , next
: "*" }
3447 parserOptions
: { ecmaVersion
: 6 , sourceType
: "module" },
3448 errors
: [{ messageId
: "unexpectedBlankLine" }]
3451 code
: "export default 1 \n foo()" ,
3452 output
: "export default 1 \n\n foo()" ,
3454 { blankLine
: "always" , prev
: "export" , next
: "*" }
3456 parserOptions
: { ecmaVersion
: 6 , sourceType
: "module" },
3457 errors
: [{ messageId
: "expectedBlankLine" }]
3460 code
: "export let a=1 \n foo()" ,
3461 output
: "export let a=1 \n\n foo()" ,
3463 { blankLine
: "always" , prev
: "export" , next
: "*" }
3465 parserOptions
: { ecmaVersion
: 6 , sourceType
: "module" },
3466 errors
: [{ messageId
: "expectedBlankLine" }]
3469 code
: "var a = 0;export {a} \n foo()" ,
3470 output
: "var a = 0;export {a} \n\n foo()" ,
3472 { blankLine
: "always" , prev
: "export" , next
: "*" }
3474 parserOptions
: { ecmaVersion
: 6 , sourceType
: "module" },
3475 errors
: [{ messageId
: "expectedBlankLine" }]
3478 //----------------------------------------------------------------------
3480 //----------------------------------------------------------------------
3483 code
: "for(;;); \n\n foo()" ,
3484 output
: "for(;;); \n foo()" ,
3486 { blankLine
: "never" , prev
: "for" , next
: "*" }
3488 errors
: [{ messageId
: "unexpectedBlankLine" }]
3491 code
: "for(a in b); \n\n foo()" ,
3492 output
: "for(a in b); \n foo()" ,
3494 { blankLine
: "never" , prev
: "for" , next
: "*" }
3496 errors
: [{ messageId
: "unexpectedBlankLine" }]
3499 code
: "for(a of b); \n\n foo()" ,
3500 output
: "for(a of b); \n foo()" ,
3502 { blankLine
: "never" , prev
: "for" , next
: "*" }
3504 errors
: [{ messageId
: "unexpectedBlankLine" }]
3507 code
: "for(;;); \n foo()" ,
3508 output
: "for(;;); \n\n foo()" ,
3510 { blankLine
: "always" , prev
: "for" , next
: "*" }
3512 errors
: [{ messageId
: "expectedBlankLine" }]
3515 code
: "for(a in b); \n foo()" ,
3516 output
: "for(a in b); \n\n foo()" ,
3518 { blankLine
: "always" , prev
: "for" , next
: "*" }
3520 errors
: [{ messageId
: "expectedBlankLine" }]
3523 code
: "for(a of b); \n foo()" ,
3524 output
: "for(a of b); \n\n foo()" ,
3526 { blankLine
: "always" , prev
: "for" , next
: "*" }
3528 errors
: [{ messageId
: "expectedBlankLine" }]
3531 //----------------------------------------------------------------------
3533 //----------------------------------------------------------------------
3536 code
: "function foo(){} \n\n foo()" ,
3537 output
: "function foo(){} \n foo()" ,
3539 { blankLine
: "never" , prev
: "function" , next
: "*" }
3541 errors
: [{ messageId
: "unexpectedBlankLine" }]
3544 code
: "function foo(){} \n foo()" ,
3545 output
: "function foo(){} \n\n foo()" ,
3547 { blankLine
: "always" , prev
: "function" , next
: "*" }
3549 errors
: [{ messageId
: "expectedBlankLine" }]
3552 code
: "async function foo(){} \n foo()" ,
3553 output
: "async function foo(){} \n\n foo()" ,
3555 { blankLine
: "never" , prev
: "*" , next
: "*" },
3556 { blankLine
: "always" , prev
: "function" , next
: "*" }
3558 errors
: [{ messageId
: "expectedBlankLine" }]
3561 //----------------------------------------------------------------------
3563 //----------------------------------------------------------------------
3566 code
: "if(a); \n\n foo()" ,
3567 output
: "if(a); \n foo()" ,
3569 { blankLine
: "never" , prev
: "if" , next
: "*" }
3571 errors
: [{ messageId
: "unexpectedBlankLine" }]
3574 code
: "if(a);else; \n\n foo()" ,
3575 output
: "if(a);else; \n foo()" ,
3577 { blankLine
: "never" , prev
: "if" , next
: "*" }
3579 errors
: [{ messageId
: "unexpectedBlankLine" }]
3582 code
: "if(a); \n foo()" ,
3583 output
: "if(a); \n\n foo()" ,
3585 { blankLine
: "always" , prev
: "if" , next
: "*" }
3587 errors
: [{ messageId
: "expectedBlankLine" }]
3590 code
: "if(a);else; \n foo()" ,
3591 output
: "if(a);else; \n\n foo()" ,
3593 { blankLine
: "always" , prev
: "if" , next
: "*" }
3595 errors
: [{ messageId
: "expectedBlankLine" }]
3598 //----------------------------------------------------------------------
3600 //----------------------------------------------------------------------
3603 code
: "(function(){ \n })() \n\n var a = 2;" ,
3604 output
: "(function(){ \n })() \n var a = 2;" ,
3606 { blankLine
: "never" , prev
: "iife" , next
: "*" }
3608 errors
: [{ messageId
: "unexpectedBlankLine" }]
3611 code
: "+(function(){ \n })() \n\n var a = 2;" ,
3612 output
: "+(function(){ \n })() \n var a = 2;" ,
3614 { blankLine
: "never" , prev
: "iife" , next
: "*" }
3616 errors
: [{ messageId
: "unexpectedBlankLine" }]
3619 code
: "(function(){ \n })() \n var a = 2;" ,
3620 output
: "(function(){ \n })() \n\n var a = 2;" ,
3622 { blankLine
: "always" , prev
: "iife" , next
: "*" }
3624 errors
: [{ messageId
: "expectedBlankLine" }]
3627 code
: "+(function(){ \n })() \n var a = 2;" ,
3628 output
: "+(function(){ \n })() \n\n var a = 2;" ,
3630 { blankLine
: "always" , prev
: "iife" , next
: "*" }
3632 errors
: [{ messageId
: "expectedBlankLine" }]
3635 // Optional chaining
3637 code
: "(function(){ \n })?.() \n var a = 2;" ,
3638 output
: "(function(){ \n })?.() \n\n var a = 2;" ,
3639 options
: [{ blankLine
: "always" , prev
: "iife" , next
: "*" }],
3640 parserOptions
: { ecmaVersion
: 2020 },
3641 errors
: [{ messageId
: "expectedBlankLine" }]
3644 code
: "void (function(){ \n })?.() \n var a = 2;" ,
3645 output
: "void (function(){ \n })?.() \n\n var a = 2;" ,
3646 options
: [{ blankLine
: "always" , prev
: "iife" , next
: "*" }],
3647 parserOptions
: { ecmaVersion
: 2020 },
3648 errors
: [{ messageId
: "expectedBlankLine" }]
3651 //----------------------------------------------------------------------
3653 //----------------------------------------------------------------------
3656 code
: "import a from 'a' \n\n foo()" ,
3657 output
: "import a from 'a' \n foo()" ,
3659 { blankLine
: "never" , prev
: "import" , next
: "*" }
3661 parserOptions
: { ecmaVersion
: 6 , sourceType
: "module" },
3662 errors
: [{ messageId
: "unexpectedBlankLine" }]
3665 code
: "import * as a from 'a' \n\n foo()" ,
3666 output
: "import * as a from 'a' \n foo()" ,
3668 { blankLine
: "never" , prev
: "import" , next
: "*" }
3670 parserOptions
: { ecmaVersion
: 6 , sourceType
: "module" },
3671 errors
: [{ messageId
: "unexpectedBlankLine" }]
3674 code
: "import {a} from 'a' \n\n foo()" ,
3675 output
: "import {a} from 'a' \n foo()" ,
3677 { blankLine
: "never" , prev
: "import" , next
: "*" }
3679 parserOptions
: { ecmaVersion
: 6 , sourceType
: "module" },
3680 errors
: [{ messageId
: "unexpectedBlankLine" }]
3683 code
: "import a from 'a' \n foo()" ,
3684 output
: "import a from 'a' \n\n foo()" ,
3686 { blankLine
: "always" , prev
: "import" , next
: "*" }
3688 parserOptions
: { ecmaVersion
: 6 , sourceType
: "module" },
3689 errors
: [{ messageId
: "expectedBlankLine" }]
3692 code
: "import * as a from 'a' \n foo()" ,
3693 output
: "import * as a from 'a' \n\n foo()" ,
3695 { blankLine
: "always" , prev
: "import" , next
: "*" }
3697 parserOptions
: { ecmaVersion
: 6 , sourceType
: "module" },
3698 errors
: [{ messageId
: "expectedBlankLine" }]
3701 code
: "import {a} from 'a' \n foo()" ,
3702 output
: "import {a} from 'a' \n\n foo()" ,
3704 { blankLine
: "always" , prev
: "import" , next
: "*" }
3706 parserOptions
: { ecmaVersion
: 6 , sourceType
: "module" },
3707 errors
: [{ messageId
: "expectedBlankLine" }]
3710 //----------------------------------------------------------------------
3712 //----------------------------------------------------------------------
3715 code
: "let a \n\n foo()" ,
3716 output
: "let a \n foo()" ,
3718 { blankLine
: "never" , prev
: "let" , next
: "*" }
3720 errors
: [{ messageId
: "unexpectedBlankLine" }]
3723 code
: "let a \n foo()" ,
3724 output
: "let a \n\n foo()" ,
3726 { blankLine
: "always" , prev
: "let" , next
: "*" }
3728 errors
: [{ messageId
: "expectedBlankLine" }]
3731 //----------------------------------------------------------------------
3733 //----------------------------------------------------------------------
3736 code
: "function foo(){return \n\n foo()}" ,
3737 output
: "function foo(){return \n foo()}" ,
3739 { blankLine
: "never" , prev
: "return" , next
: "*" }
3741 errors
: [{ messageId
: "unexpectedBlankLine" }]
3744 code
: "function foo(){return \n foo()}" ,
3745 output
: "function foo(){return \n\n foo()}" ,
3747 { blankLine
: "always" , prev
: "return" , next
: "*" }
3749 errors
: [{ messageId
: "expectedBlankLine" }]
3752 //----------------------------------------------------------------------
3754 //----------------------------------------------------------------------
3757 code
: "switch(a){} \n\n foo()" ,
3758 output
: "switch(a){} \n foo()" ,
3760 { blankLine
: "never" , prev
: "switch" , next
: "*" }
3762 errors
: [{ messageId
: "unexpectedBlankLine" }]
3765 code
: "switch(a){} \n foo()" ,
3766 output
: "switch(a){} \n\n foo()" ,
3768 { blankLine
: "always" , prev
: "switch" , next
: "*" }
3770 errors
: [{ messageId
: "expectedBlankLine" }]
3773 //----------------------------------------------------------------------
3775 //----------------------------------------------------------------------
3778 code
: "throw a \n\n foo()" ,
3779 output
: "throw a \n foo()" ,
3781 { blankLine
: "never" , prev
: "throw" , next
: "*" }
3783 errors
: [{ messageId
: "unexpectedBlankLine" }]
3786 code
: "throw a \n foo()" ,
3787 output
: "throw a \n\n foo()" ,
3789 { blankLine
: "always" , prev
: "throw" , next
: "*" }
3791 errors
: [{ messageId
: "expectedBlankLine" }]
3794 //----------------------------------------------------------------------
3796 //----------------------------------------------------------------------
3799 code
: "try{}catch(e){} \n\n foo()" ,
3800 output
: "try{}catch(e){} \n foo()" ,
3802 { blankLine
: "never" , prev
: "try" , next
: "*" }
3804 errors
: [{ messageId
: "unexpectedBlankLine" }]
3807 code
: "try{}finally{} \n\n foo()" ,
3808 output
: "try{}finally{} \n foo()" ,
3810 { blankLine
: "never" , prev
: "try" , next
: "*" }
3812 errors
: [{ messageId
: "unexpectedBlankLine" }]
3815 code
: "try{}catch(e){}finally{} \n\n foo()" ,
3816 output
: "try{}catch(e){}finally{} \n foo()" ,
3818 { blankLine
: "never" , prev
: "try" , next
: "*" }
3820 errors
: [{ messageId
: "unexpectedBlankLine" }]
3823 code
: "try{}catch(e){} \n foo()" ,
3824 output
: "try{}catch(e){} \n\n foo()" ,
3826 { blankLine
: "always" , prev
: "try" , next
: "*" }
3828 errors
: [{ messageId
: "expectedBlankLine" }]
3831 code
: "try{}finally{} \n foo()" ,
3832 output
: "try{}finally{} \n\n foo()" ,
3834 { blankLine
: "always" , prev
: "try" , next
: "*" }
3836 errors
: [{ messageId
: "expectedBlankLine" }]
3839 code
: "try{}catch(e){}finally{} \n foo()" ,
3840 output
: "try{}catch(e){}finally{} \n\n foo()" ,
3842 { blankLine
: "always" , prev
: "try" , next
: "*" }
3844 errors
: [{ messageId
: "expectedBlankLine" }]
3847 //----------------------------------------------------------------------
3849 //----------------------------------------------------------------------
3852 code
: "var a \n\n foo()" ,
3853 output
: "var a \n foo()" ,
3855 { blankLine
: "never" , prev
: "var" , next
: "*" }
3857 errors
: [{ messageId
: "unexpectedBlankLine" }]
3860 code
: "var a \n foo()" ,
3861 output
: "var a \n\n foo()" ,
3863 { blankLine
: "always" , prev
: "var" , next
: "*" }
3865 errors
: [{ messageId
: "expectedBlankLine" }]
3868 //----------------------------------------------------------------------
3870 //----------------------------------------------------------------------
3873 code
: "while(a); \n\n foo()" ,
3874 output
: "while(a); \n foo()" ,
3876 { blankLine
: "never" , prev
: "while" , next
: "*" }
3878 errors
: [{ messageId
: "unexpectedBlankLine" }]
3881 code
: "while(a); \n foo()" ,
3882 output
: "while(a); \n\n foo()" ,
3884 { blankLine
: "always" , prev
: "while" , next
: "*" }
3886 errors
: [{ messageId
: "expectedBlankLine" }]
3889 //----------------------------------------------------------------------
3891 //----------------------------------------------------------------------
3894 code
: "with(a); \n\n foo()" ,
3895 output
: "with(a); \n foo()" ,
3897 { blankLine
: "never" , prev
: "with" , next
: "*" }
3899 errors
: [{ messageId
: "unexpectedBlankLine" }]
3902 code
: "with(a); \n foo()" ,
3903 output
: "with(a); \n\n foo()" ,
3905 { blankLine
: "always" , prev
: "with" , next
: "*" }
3907 errors
: [{ messageId
: "expectedBlankLine" }]
3910 //----------------------------------------------------------------------
3912 //----------------------------------------------------------------------
3915 code
: "const a={ \n b:1, \n c:2 \n } \n\n const d=3" ,
3916 output
: "const a={ \n b:1, \n c:2 \n } \n const d=3" ,
3918 { blankLine
: "never" , prev
: "multiline-const" , next
: "*" }
3920 errors
: [{ messageId
: "unexpectedBlankLine" }]
3923 code
: "const a={ \n b:1, \n c:2 \n } \n const d=3" ,
3924 output
: "const a={ \n b:1, \n c:2 \n } \n\n const d=3" ,
3926 { blankLine
: "always" , prev
: "multiline-const" , next
: "*" }
3928 errors
: [{ messageId
: "expectedBlankLine" }]
3931 code
: "const a=1 \n\n const b={ \n c:2, \n d:3 \n }" ,
3932 output
: "const a=1 \n const b={ \n c:2, \n d:3 \n }" ,
3934 { blankLine
: "never" , prev
: "*" , next
: "multiline-const" }
3936 errors
: [{ messageId
: "unexpectedBlankLine" }]
3939 code
: "const a=1 \n const b={ \n c:2, \n d:3 \n }" ,
3940 output
: "const a=1 \n\n const b={ \n c:2, \n d:3 \n }" ,
3942 { blankLine
: "always" , prev
: "*" , next
: "multiline-const" }
3944 errors
: [{ messageId
: "expectedBlankLine" }]
3947 //----------------------------------------------------------------------
3949 //----------------------------------------------------------------------
3952 code
: "let a={ \n b:1, \n c:2 \n } \n\n let d=3" ,
3953 output
: "let a={ \n b:1, \n c:2 \n } \n let d=3" ,
3955 { blankLine
: "never" , prev
: "multiline-let" , next
: "*" }
3957 errors
: [{ messageId
: "unexpectedBlankLine" }]
3960 code
: "let a={ \n b:1, \n c:2 \n } \n let d=3" ,
3961 output
: "let a={ \n b:1, \n c:2 \n } \n\n let d=3" ,
3963 { blankLine
: "always" , prev
: "multiline-let" , next
: "*" }
3965 errors
: [{ messageId
: "expectedBlankLine" }]
3968 code
: "let a=1 \n\n let b={ \n c:2, \n d:3 \n }" ,
3969 output
: "let a=1 \n let b={ \n c:2, \n d:3 \n }" ,
3971 { blankLine
: "never" , prev
: "*" , next
: "multiline-let" }
3973 errors
: [{ messageId
: "unexpectedBlankLine" }]
3976 code
: "let a=1 \n let b={ \n c:2, \n d:3 \n }" ,
3977 output
: "let a=1 \n\n let b={ \n c:2, \n d:3 \n }" ,
3979 { blankLine
: "always" , prev
: "*" , next
: "multiline-let" }
3981 errors
: [{ messageId
: "expectedBlankLine" }]
3984 //----------------------------------------------------------------------
3986 //----------------------------------------------------------------------
3989 code
: "var a={ \n b:1, \n c:2 \n } \n\n var d=3" ,
3990 output
: "var a={ \n b:1, \n c:2 \n } \n var d=3" ,
3992 { blankLine
: "never" , prev
: "multiline-var" , next
: "*" }
3994 errors
: [{ messageId
: "unexpectedBlankLine" }]
3997 code
: "var a={ \n b:1, \n c:2 \n } \n var d=3" ,
3998 output
: "var a={ \n b:1, \n c:2 \n } \n\n var d=3" ,
4000 { blankLine
: "always" , prev
: "multiline-var" , next
: "*" }
4002 errors
: [{ messageId
: "expectedBlankLine" }]
4005 code
: "var a=1 \n\n var b={ \n c:2, \n d:3 \n }" ,
4006 output
: "var a=1 \n var b={ \n c:2, \n d:3 \n }" ,
4008 { blankLine
: "never" , prev
: "*" , next
: "multiline-var" }
4010 errors
: [{ messageId
: "unexpectedBlankLine" }]
4013 code
: "var a=1 \n var b={ \n c:2, \n d:3 \n }" ,
4014 output
: "var a=1 \n\n var b={ \n c:2, \n d:3 \n }" ,
4016 { blankLine
: "always" , prev
: "*" , next
: "multiline-var" }
4018 errors
: [{ messageId
: "expectedBlankLine" }]
4021 //----------------------------------------------------------------------
4023 //----------------------------------------------------------------------
4026 code
: "const a=1 \n\n const b=2" ,
4027 output
: "const a=1 \n const b=2" ,
4029 { blankLine
: "never" , prev
: "singleline-const" , next
: "*" }
4031 errors
: [{ messageId
: "unexpectedBlankLine" }]
4034 code
: "const a=1 \n const b=2" ,
4035 output
: "const a=1 \n\n const b=2" ,
4037 { blankLine
: "always" , prev
: "singleline-const" , next
: "*" }
4039 errors
: [{ messageId
: "expectedBlankLine" }]
4042 code
: "const a=1 \n\n const b=2" ,
4043 output
: "const a=1 \n const b=2" ,
4045 { blankLine
: "never" , prev
: "*" , next
: "singleline-const" }
4047 errors
: [{ messageId
: "unexpectedBlankLine" }]
4050 code
: "const a=1 \n const b=2" ,
4051 output
: "const a=1 \n\n const b=2" ,
4053 { blankLine
: "always" , prev
: "*" , next
: "singleline-const" }
4055 errors
: [{ messageId
: "expectedBlankLine" }]
4058 //----------------------------------------------------------------------
4060 //----------------------------------------------------------------------
4063 code
: "let a=1 \n\n let b=2" ,
4064 output
: "let a=1 \n let b=2" ,
4066 { blankLine
: "never" , prev
: "singleline-let" , next
: "*" }
4068 errors
: [{ messageId
: "unexpectedBlankLine" }]
4071 code
: "let a=1 \n let b=2" ,
4072 output
: "let a=1 \n\n let b=2" ,
4074 { blankLine
: "always" , prev
: "singleline-let" , next
: "*" }
4076 errors
: [{ messageId
: "expectedBlankLine" }]
4079 code
: "let a=1 \n\n let b=2" ,
4080 output
: "let a=1 \n let b=2" ,
4082 { blankLine
: "never" , prev
: "*" , next
: "singleline-let" }
4084 errors
: [{ messageId
: "unexpectedBlankLine" }]
4087 code
: "let a=1 \n let b=2" ,
4088 output
: "let a=1 \n\n let b=2" ,
4090 { blankLine
: "always" , prev
: "*" , next
: "singleline-let" }
4092 errors
: [{ messageId
: "expectedBlankLine" }]
4095 //----------------------------------------------------------------------
4097 //----------------------------------------------------------------------
4100 code
: "var a=1 \n\n var b=2" ,
4101 output
: "var a=1 \n var b=2" ,
4103 { blankLine
: "never" , prev
: "singleline-var" , next
: "*" }
4105 errors
: [{ messageId
: "unexpectedBlankLine" }]
4108 code
: "var a=1 \n var b=2" ,
4109 output
: "var a=1 \n\n var b=2" ,
4111 { blankLine
: "always" , prev
: "singleline-var" , next
: "*" }
4113 errors
: [{ messageId
: "expectedBlankLine" }]
4116 code
: "var a=1 \n\n var b=2" ,
4117 output
: "var a=1 \n var b=2" ,
4119 { blankLine
: "never" , prev
: "*" , next
: "singleline-var" }
4121 errors
: [{ messageId
: "unexpectedBlankLine" }]
4124 code
: "var a=1 \n var b=2" ,
4125 output
: "var a=1 \n\n var b=2" ,
4127 { blankLine
: "always" , prev
: "*" , next
: "singleline-var" }
4129 errors
: [{ messageId
: "expectedBlankLine" }]
4132 //----------------------------------------------------------------------
4133 // Tests from newline-after-var
4134 //----------------------------------------------------------------------
4136 // should disallow no line break in "always" mode
4138 code
: "var greet = 'hello';console.log(greet);" ,
4139 output
: "var greet = 'hello'; \n\n console.log(greet);" ,
4141 { blankLine
: "always" , prev
: [ "const" , "let" , "var" ], next
: "*" },
4142 { blankLine
: "any" , prev
: [ "const" , "let" , "var" ], next
: [ "const" , "let" , "var" ] }
4144 errors
: [{ messageId
: "expectedBlankLine" }]
4147 code
: "var greet = 'hello';var name = 'world';console.log(greet, name);" ,
4148 output
: "var greet = 'hello';var name = 'world'; \n\n console.log(greet, name);" ,
4150 { blankLine
: "always" , prev
: [ "const" , "let" , "var" ], next
: "*" },
4151 { blankLine
: "any" , prev
: [ "const" , "let" , "var" ], next
: [ "const" , "let" , "var" ] }
4153 errors
: [{ messageId
: "expectedBlankLine" }]
4156 code
: "var greet = 'hello', name = 'world';console.log(greet, name);" ,
4157 output
: "var greet = 'hello', name = 'world'; \n\n console.log(greet, name);" ,
4159 { blankLine
: "always" , prev
: [ "const" , "let" , "var" ], next
: "*" },
4160 { blankLine
: "any" , prev
: [ "const" , "let" , "var" ], next
: [ "const" , "let" , "var" ] }
4162 errors
: [{ messageId
: "expectedBlankLine" }]
4165 // should disallow no blank line in "always" mode
4167 code
: "var greet = 'hello'; \n console.log(greet);" ,
4168 output
: "var greet = 'hello'; \n\n console.log(greet);" ,
4170 { blankLine
: "always" , prev
: [ "const" , "let" , "var" ], next
: "*" },
4171 { blankLine
: "any" , prev
: [ "const" , "let" , "var" ], next
: [ "const" , "let" , "var" ] }
4173 errors
: [{ messageId
: "expectedBlankLine" }]
4176 code
: "var greet = 'hello'; \n console.log(greet);" ,
4177 output
: "var greet = 'hello'; \n \n console.log(greet);" ,
4179 { blankLine
: "always" , prev
: [ "const" , "let" , "var" ], next
: "*" },
4180 { blankLine
: "any" , prev
: [ "const" , "let" , "var" ], next
: [ "const" , "let" , "var" ] }
4182 errors
: [{ messageId
: "expectedBlankLine" }]
4185 code
: "var greet = 'hello'; // inline comment \n console.log(greet);" ,
4186 output
: "var greet = 'hello'; // inline comment \n\n console.log(greet);" ,
4188 { blankLine
: "always" , prev
: [ "const" , "let" , "var" ], next
: "*" },
4189 { blankLine
: "any" , prev
: [ "const" , "let" , "var" ], next
: [ "const" , "let" , "var" ] }
4191 errors
: [{ messageId
: "expectedBlankLine" }]
4194 code
: "var greet = 'hello'; \n var name = 'world'; \n console.log(greet, name);" ,
4195 output
: "var greet = 'hello'; \n var name = 'world'; \n\n console.log(greet, name);" ,
4197 { blankLine
: "always" , prev
: [ "const" , "let" , "var" ], next
: "*" },
4198 { blankLine
: "any" , prev
: [ "const" , "let" , "var" ], next
: [ "const" , "let" , "var" ] }
4200 errors
: [{ messageId
: "expectedBlankLine" }]
4203 code
: "var greet = 'hello', name = 'world'; \n console.log(greet, name);" ,
4204 output
: "var greet = 'hello', name = 'world'; \n\n console.log(greet, name);" ,
4206 { blankLine
: "always" , prev
: [ "const" , "let" , "var" ], next
: "*" },
4207 { blankLine
: "any" , prev
: [ "const" , "let" , "var" ], next
: [ "const" , "let" , "var" ] }
4209 errors
: [{ messageId
: "expectedBlankLine" }]
4212 code
: "var greet = 'hello', \n name = 'world'; \n console.log(greet, name);" ,
4213 output
: "var greet = 'hello', \n name = 'world'; \n\n console.log(greet, name);" ,
4215 { blankLine
: "always" , prev
: [ "const" , "let" , "var" ], next
: "*" },
4216 { blankLine
: "any" , prev
: [ "const" , "let" , "var" ], next
: [ "const" , "let" , "var" ] }
4218 errors
: [{ messageId
: "expectedBlankLine" }]
4221 code
: "let greet = 'hello'; \n console.log(greet);" ,
4222 output
: "let greet = 'hello'; \n\n console.log(greet);" ,
4224 { blankLine
: "always" , prev
: [ "const" , "let" , "var" ], next
: "*" },
4225 { blankLine
: "any" , prev
: [ "const" , "let" , "var" ], next
: [ "const" , "let" , "var" ] }
4227 errors
: [{ messageId
: "expectedBlankLine" }]
4230 code
: "const greet = 'hello'; \n console.log(greet);" ,
4231 output
: "const greet = 'hello'; \n\n console.log(greet);" ,
4233 { blankLine
: "always" , prev
: [ "const" , "let" , "var" ], next
: "*" },
4234 { blankLine
: "any" , prev
: [ "const" , "let" , "var" ], next
: [ "const" , "let" , "var" ] }
4236 errors
: [{ messageId
: "expectedBlankLine" }]
4239 code
: "function example() { \n var greet = 'hello'; \n console.log(greet); \n }" ,
4240 output
: "function example() { \n var greet = 'hello'; \n\n console.log(greet); \n }" ,
4242 { blankLine
: "always" , prev
: [ "const" , "let" , "var" ], next
: "*" },
4243 { blankLine
: "any" , prev
: [ "const" , "let" , "var" ], next
: [ "const" , "let" , "var" ] }
4245 errors
: [{ messageId
: "expectedBlankLine" }]
4248 code
: "var f = function() { \n var greet = 'hello'; \n console.log(greet); \n };" ,
4249 output
: "var f = function() { \n var greet = 'hello'; \n\n console.log(greet); \n };" ,
4251 { blankLine
: "always" , prev
: [ "const" , "let" , "var" ], next
: "*" },
4252 { blankLine
: "any" , prev
: [ "const" , "let" , "var" ], next
: [ "const" , "let" , "var" ] }
4254 errors
: [{ messageId
: "expectedBlankLine" }]
4257 code
: "() => { \n var greet = 'hello'; \n console.log(greet); \n }" ,
4258 output
: "() => { \n var greet = 'hello'; \n\n console.log(greet); \n }" ,
4260 { blankLine
: "always" , prev
: [ "const" , "let" , "var" ], next
: "*" },
4261 { blankLine
: "any" , prev
: [ "const" , "let" , "var" ], next
: [ "const" , "let" , "var" ] }
4263 errors
: [{ messageId
: "expectedBlankLine" }]
4266 // should disallow blank lines in "never" mode
4268 code
: "var greet = 'hello'; \n\n console.log(greet);" ,
4269 output
: "var greet = 'hello'; \n console.log(greet);" ,
4271 { blankLine
: "never" , prev
: [ "const" , "let" , "var" ], next
: "*" },
4272 { blankLine
: "any" , prev
: [ "const" , "let" , "var" ], next
: [ "const" , "let" , "var" ] }
4274 errors
: [{ messageId
: "unexpectedBlankLine" }]
4277 code
: "var greet = 'hello'; \n\n\n console.log(greet);" ,
4278 output
: "var greet = 'hello'; \n console.log(greet);" ,
4280 { blankLine
: "never" , prev
: [ "const" , "let" , "var" ], next
: "*" },
4281 { blankLine
: "any" , prev
: [ "const" , "let" , "var" ], next
: [ "const" , "let" , "var" ] }
4283 errors
: [{ messageId
: "unexpectedBlankLine" }]
4286 code
: "var greet = 'hello'; \n\n\n\n console.log(greet);" ,
4287 output
: "var greet = 'hello'; \n console.log(greet);" ,
4289 { blankLine
: "never" , prev
: [ "const" , "let" , "var" ], next
: "*" },
4290 { blankLine
: "any" , prev
: [ "const" , "let" , "var" ], next
: [ "const" , "let" , "var" ] }
4292 errors
: [{ messageId
: "unexpectedBlankLine" }]
4295 code
: "var greet = 'hello'; \n\n console.log(greet);" ,
4296 output
: "var greet = 'hello'; \n console.log(greet);" ,
4298 { blankLine
: "never" , prev
: [ "const" , "let" , "var" ], next
: "*" },
4299 { blankLine
: "any" , prev
: [ "const" , "let" , "var" ], next
: [ "const" , "let" , "var" ] }
4301 errors
: [{ messageId
: "unexpectedBlankLine" }]
4304 code
: "var greet = 'hello'; // inline comment \n\n console.log(greet);" ,
4305 output
: "var greet = 'hello'; // inline comment \n console.log(greet);" ,
4307 { blankLine
: "never" , prev
: [ "const" , "let" , "var" ], next
: "*" },
4308 { blankLine
: "any" , prev
: [ "const" , "let" , "var" ], next
: [ "const" , "let" , "var" ] }
4310 errors
: [{ messageId
: "unexpectedBlankLine" }]
4313 code
: "var greet = 'hello'; \n var name = 'world'; \n\n console.log(greet, name);" ,
4314 output
: "var greet = 'hello'; \n var name = 'world'; \n console.log(greet, name);" ,
4316 { blankLine
: "never" , prev
: [ "const" , "let" , "var" ], next
: "*" },
4317 { blankLine
: "any" , prev
: [ "const" , "let" , "var" ], next
: [ "const" , "let" , "var" ] }
4319 errors
: [{ messageId
: "unexpectedBlankLine" }]
4322 code
: "var greet = 'hello', name = 'world'; \n\n console.log(greet, name);" ,
4323 output
: "var greet = 'hello', name = 'world'; \n console.log(greet, name);" ,
4325 { blankLine
: "never" , prev
: [ "const" , "let" , "var" ], next
: "*" },
4326 { blankLine
: "any" , prev
: [ "const" , "let" , "var" ], next
: [ "const" , "let" , "var" ] }
4328 errors
: [{ messageId
: "unexpectedBlankLine" }]
4331 code
: "var greet = 'hello', \n name = 'world'; \n\n console.log(greet, name);" ,
4332 output
: "var greet = 'hello', \n name = 'world'; \n console.log(greet, name);" ,
4334 { blankLine
: "never" , prev
: [ "const" , "let" , "var" ], next
: "*" },
4335 { blankLine
: "any" , prev
: [ "const" , "let" , "var" ], next
: [ "const" , "let" , "var" ] }
4337 errors
: [{ messageId
: "unexpectedBlankLine" }]
4340 code
: "var greet = 'hello', // inline comment \n name = 'world'; // inline comment \n\n console.log(greet, name);" ,
4341 output
: "var greet = 'hello', // inline comment \n name = 'world'; // inline comment \n console.log(greet, name);" ,
4343 { blankLine
: "never" , prev
: [ "const" , "let" , "var" ], next
: "*" },
4344 { blankLine
: "any" , prev
: [ "const" , "let" , "var" ], next
: [ "const" , "let" , "var" ] }
4346 errors
: [{ messageId
: "unexpectedBlankLine" }]
4349 code
: "let greet = 'hello'; \n\n console.log(greet);" ,
4350 output
: "let greet = 'hello'; \n console.log(greet);" ,
4352 { blankLine
: "never" , prev
: [ "const" , "let" , "var" ], next
: "*" },
4353 { blankLine
: "any" , prev
: [ "const" , "let" , "var" ], next
: [ "const" , "let" , "var" ] }
4355 errors
: [{ messageId
: "unexpectedBlankLine" }]
4358 code
: "const greet = 'hello'; \n\n console.log(greet);" ,
4359 output
: "const greet = 'hello'; \n console.log(greet);" ,
4361 { blankLine
: "never" , prev
: [ "const" , "let" , "var" ], next
: "*" },
4362 { blankLine
: "any" , prev
: [ "const" , "let" , "var" ], next
: [ "const" , "let" , "var" ] }
4364 errors
: [{ messageId
: "unexpectedBlankLine" }]
4367 // should disallow a comment on the next line that's not in turn followed by a blank in "always" mode
4369 code
: "var greet = 'hello'; \n // next-line comment \n console.log(greet);" ,
4370 output
: "var greet = 'hello'; \n\n // next-line comment \n console.log(greet);" ,
4372 { blankLine
: "always" , prev
: [ "const" , "let" , "var" ], next
: "*" },
4373 { blankLine
: "any" , prev
: [ "const" , "let" , "var" ], next
: [ "const" , "let" , "var" ] }
4375 errors
: [{ messageId
: "expectedBlankLine" }]
4378 code
: "var greet = 'hello'; \n /* block comment \n block comment */ \n console.log(greet);" ,
4379 output
: "var greet = 'hello'; \n\n /* block comment \n block comment */ \n console.log(greet);" ,
4381 { blankLine
: "always" , prev
: [ "const" , "let" , "var" ], next
: "*" },
4382 { blankLine
: "any" , prev
: [ "const" , "let" , "var" ], next
: [ "const" , "let" , "var" ] }
4384 errors
: [{ messageId
: "expectedBlankLine" }]
4387 code
: "var greet = 'hello', \n name = 'world'; \n // next-line comment \n console.log(greet);" ,
4388 output
: "var greet = 'hello', \n name = 'world'; \n\n // next-line comment \n console.log(greet);" ,
4390 { blankLine
: "always" , prev
: [ "const" , "let" , "var" ], next
: "*" },
4391 { blankLine
: "any" , prev
: [ "const" , "let" , "var" ], next
: [ "const" , "let" , "var" ] }
4393 errors
: [{ messageId
: "expectedBlankLine" }]
4396 code
: "var greet = 'hello', \n name = 'world'; \n /* block comment \n block comment */ \n console.log(greet);" ,
4397 output
: "var greet = 'hello', \n name = 'world'; \n\n /* block comment \n block comment */ \n console.log(greet);" ,
4399 { blankLine
: "always" , prev
: [ "const" , "let" , "var" ], next
: "*" },
4400 { blankLine
: "any" , prev
: [ "const" , "let" , "var" ], next
: [ "const" , "let" , "var" ] }
4402 errors
: [{ messageId
: "expectedBlankLine" }]
4405 code
: "var greet = 'hello'; \n // next-line comment \n // second-line comment \n console.log(greet);" ,
4406 output
: "var greet = 'hello'; \n\n // next-line comment \n // second-line comment \n console.log(greet);" ,
4408 { blankLine
: "always" , prev
: [ "const" , "let" , "var" ], next
: "*" },
4409 { blankLine
: "any" , prev
: [ "const" , "let" , "var" ], next
: [ "const" , "let" , "var" ] }
4411 errors
: [{ messageId
: "expectedBlankLine" }]
4414 code
: "var greet = 'hello'; \n // next-line comment \n /* block comment \n block comment */ \n console.log(greet);" ,
4415 output
: "var greet = 'hello'; \n\n // next-line comment \n /* block comment \n block comment */ \n console.log(greet);" ,
4417 { blankLine
: "always" , prev
: [ "const" , "let" , "var" ], next
: "*" },
4418 { blankLine
: "any" , prev
: [ "const" , "let" , "var" ], next
: [ "const" , "let" , "var" ] }
4420 errors
: [{ messageId
: "expectedBlankLine" }]
4423 // https://github.com/eslint/eslint/issues/6834
4427 ;(b || c).doSomething()
4432 ;(b || c).doSomething()
4435 { blankLine
: "always" , prev
: [ "const" , "let" , "var" ], next
: "*" },
4436 { blankLine
: "any" , prev
: [ "const" , "let" , "var" ], next
: [ "const" , "let" , "var" ] }
4438 errors
: [{ messageId
: "expectedBlankLine" }]
4444 ;(b || c).doSomething()
4448 ;(b || c).doSomething()
4451 { blankLine
: "never" , prev
: [ "const" , "let" , "var" ], next
: "*" },
4452 { blankLine
: "any" , prev
: [ "const" , "let" , "var" ], next
: [ "const" , "let" , "var" ] }
4454 errors
: [{ messageId
: "unexpectedBlankLine" }]
4457 //----------------------------------------------------------------------
4458 // Tests from newline-before-return
4459 //----------------------------------------------------------------------
4462 code
: "function a() { \n var b; return; \n }" ,
4463 output
: "function a() { \n var b; \n\n return; \n }" ,
4465 { blankLine
: "always" , prev
: "*" , next
: "return" }
4467 errors
: [{ messageId
: "expectedBlankLine" }]
4470 code
: "function a() { \n var b; \n return; \n }" ,
4471 output
: "function a() { \n var b; \n\n return; \n }" ,
4473 { blankLine
: "always" , prev
: "*" , next
: "return" }
4475 errors
: [{ messageId
: "expectedBlankLine" }]
4478 code
: "function a() { \n if (b) return b; \n else if (c) return c; \n else { \n e(); \n return d; \n } \n }" ,
4479 output
: "function a() { \n if (b) return b; \n else if (c) return c; \n else { \n e(); \n\n return d; \n } \n }" ,
4481 { blankLine
: "always" , prev
: "*" , next
: "return" }
4483 errors
: [{ messageId
: "expectedBlankLine" }]
4486 code
: "function a() { \n if (b) return b; \n else if (c) return c; \n else { \n e(); return d; \n } \n }" ,
4487 output
: "function a() { \n if (b) return b; \n else if (c) return c; \n else { \n e(); \n\n return d; \n } \n }" ,
4489 { blankLine
: "always" , prev
: "*" , next
: "return" }
4491 errors
: [{ messageId
: "expectedBlankLine" }]
4494 code
: "function a() { \n while (b) { \n c(); \n return; \n } \n }" ,
4495 output
: "function a() { \n while (b) { \n c(); \n\n return; \n } \n }" ,
4497 { blankLine
: "always" , prev
: "*" , next
: "return" }
4499 errors
: [{ messageId
: "expectedBlankLine" }]
4502 code
: "function a() { \n do { \n c(); \n return; \n } while (b); \n }" ,
4503 output
: "function a() { \n do { \n c(); \n\n return; \n } while (b); \n }" ,
4505 { blankLine
: "always" , prev
: "*" , next
: "return" }
4507 errors
: [{ messageId
: "expectedBlankLine" }]
4510 code
: "function a() { \n for (var b; b < c; b++) { \n c(); \n return; \n } \n }" ,
4511 output
: "function a() { \n for (var b; b < c; b++) { \n c(); \n\n return; \n } \n }" ,
4513 { blankLine
: "always" , prev
: "*" , next
: "return" }
4515 errors
: [{ messageId
: "expectedBlankLine" }]
4518 code
: "function a() { \n for (b in c) { \n d(); \n return; \n } \n }" ,
4519 output
: "function a() { \n for (b in c) { \n d(); \n\n return; \n } \n }" ,
4521 { blankLine
: "always" , prev
: "*" , next
: "return" }
4523 errors
: [{ messageId
: "expectedBlankLine" }]
4526 code
: "function a() { \n for (b of c) { \n d(); \n return; \n } \n }" ,
4527 output
: "function a() { \n for (b of c) { \n d(); \n\n return; \n } \n }" ,
4529 { blankLine
: "always" , prev
: "*" , next
: "return" }
4531 errors
: [{ messageId
: "expectedBlankLine" }]
4534 code
: "function a() { \n if (b) { \n c(); \n } \n //comment \n return b; \n }" ,
4535 output
: "function a() { \n if (b) { \n c(); \n } \n\n //comment \n return b; \n }" ,
4537 { blankLine
: "always" , prev
: "*" , next
: "return" }
4539 errors
: [{ messageId
: "expectedBlankLine" }]
4542 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 }" ,
4543 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 }" ,
4545 { blankLine
: "always" , prev
: "*" , next
: "return" }
4547 errors
: [{ messageId
: "expectedBlankLine" }, { messageId
: "expectedBlankLine" }]
4550 code
: "function a() { \n if (b) { return; } //comment \n return c; \n }" ,
4551 output
: "function a() { \n if (b) { return; } //comment \n\n return c; \n }" ,
4553 { blankLine
: "always" , prev
: "*" , next
: "return" }
4555 errors
: [{ messageId
: "expectedBlankLine" }]
4558 code
: "function a() { \n if (b) { return; } /*multi-line \n comment*/ \n return c; \n }" ,
4559 output
: "function a() { \n if (b) { return; } /*multi-line \n comment*/ \n\n return c; \n }" ,
4561 { blankLine
: "always" , prev
: "*" , next
: "return" }
4563 errors
: [{ messageId
: "expectedBlankLine" }]
4566 code
: "function a() { \n if (b) { return; } \n /*multi-line \n comment*/ return c; \n }" ,
4567 output
: "function a() { \n if (b) { return; } \n\n /*multi-line \n comment*/ return c; \n }" ,
4569 { blankLine
: "always" , prev
: "*" , next
: "return" }
4571 errors
: [{ messageId
: "expectedBlankLine" }]
4574 code
: "function a() { \n if (b) { return; } /*multi-line \n comment*/ return c; \n }" ,
4575 output
: "function a() { \n if (b) { return; } /*multi-line \n comment*/ \n\n return c; \n }" ,
4577 { blankLine
: "always" , prev
: "*" , next
: "return" }
4579 errors
: [{ messageId
: "expectedBlankLine" }]
4582 code
: "var a; \n return;" ,
4583 output
: "var a; \n\n return;" ,
4585 { blankLine
: "always" , prev
: "*" , next
: "return" }
4587 parserOptions
: { ecmaFeatures
: { globalReturn
: true } },
4588 errors
: [{ messageId
: "expectedBlankLine" }]
4591 code
: "var a; return;" ,
4592 output
: "var a; \n\n return;" ,
4594 { blankLine
: "always" , prev
: "*" , next
: "return" }
4596 parserOptions
: { ecmaFeatures
: { globalReturn
: true } },
4597 errors
: [{ messageId
: "expectedBlankLine" }]
4600 code
: "function a() { \n { \n //comment \n } \n return \n }" ,
4601 output
: "function a() { \n { \n //comment \n } \n\n return \n }" ,
4603 { blankLine
: "always" , prev
: "*" , next
: "return" }
4605 errors
: [{ messageId
: "expectedBlankLine" }]
4608 code
: "function a() { \n { \n //comment \n } return \n }" ,
4609 output
: "function a() { \n { \n //comment \n } \n\n return \n }" ,
4611 { blankLine
: "always" , prev
: "*" , next
: "return" }
4613 errors
: [{ messageId
: "expectedBlankLine" }]
4616 code
: "function a() { \n var c; \n while (b) { \n c = d; //comment \n } \n return c; \n }" ,
4617 output
: "function a() { \n var c; \n while (b) { \n c = d; //comment \n } \n\n return c; \n }" ,
4619 { blankLine
: "always" , prev
: "*" , next
: "return" }
4621 errors
: [{ messageId
: "expectedBlankLine" }]
4624 code
: "function a() { \n for (var b; b < c; b++) { \n if (d) { \n break; //comment \n } \n return; \n } \n }" ,
4625 output
: "function a() { \n for (var b; b < c; b++) { \n if (d) { \n break; //comment \n } \n\n return; \n } \n }" ,
4627 { blankLine
: "always" , prev
: "*" , next
: "return" }
4629 errors
: [{ messageId
: "expectedBlankLine" }]
4632 code
: "function a() { \n var b; /*multi-line \n comment*/ \n return c; \n }" ,
4633 output
: "function a() { \n var b; /*multi-line \n comment*/ \n\n return c; \n }" ,
4635 { blankLine
: "always" , prev
: "*" , next
: "return" }
4637 errors
: [{ messageId
: "expectedBlankLine" }]
4640 code
: "function a() { \n var b; \n /*multi-line \n comment*/ return c; \n }" ,
4641 output
: "function a() { \n var b; \n\n /*multi-line \n comment*/ return c; \n }" ,
4643 { blankLine
: "always" , prev
: "*" , next
: "return" }
4645 errors
: [{ messageId
: "expectedBlankLine" }]
4648 code
: "function a() { \n var b; /*multi-line \n comment*/ return c; \n }" ,
4649 output
: "function a() { \n var b; /*multi-line \n comment*/ \n\n return c; \n }" ,
4651 { blankLine
: "always" , prev
: "*" , next
: "return" }
4653 errors
: [{ messageId
: "expectedBlankLine" }]
4656 code
: "function a() { \n var b; \n //comment \n return; \n }" ,
4657 output
: "function a() { \n var b; \n\n //comment \n return; \n }" ,
4659 { blankLine
: "always" , prev
: "*" , next
: "return" }
4661 errors
: [{ messageId
: "expectedBlankLine" }]
4664 code
: "function a() { \n var b; //comment \n return; \n }" ,
4665 output
: "function a() { \n var b; //comment \n\n return; \n }" ,
4667 { blankLine
: "always" , prev
: "*" , next
: "return" }
4669 errors
: [{ messageId
: "expectedBlankLine" }]
4672 code
: "function a() { \n var b; \n /* comment */ return; \n }" ,
4673 output
: "function a() { \n var b; \n\n /* comment */ return; \n }" ,
4675 { blankLine
: "always" , prev
: "*" , next
: "return" }
4677 errors
: [{ messageId
: "expectedBlankLine" }]
4680 code
: "function a() { \n var b; \n //comment \n /* comment */ return; \n }" ,
4681 output
: "function a() { \n var b; \n\n //comment \n /* comment */ return; \n }" ,
4683 { blankLine
: "always" , prev
: "*" , next
: "return" }
4685 errors
: [{ messageId
: "expectedBlankLine" }]
4688 code
: "function a() { \n var b; /* comment */ return; \n }" ,
4689 output
: "function a() { \n var b; /* comment */ \n\n return; \n }" ,
4691 { blankLine
: "always" , prev
: "*" , next
: "return" }
4693 errors
: [{ messageId
: "expectedBlankLine" }]
4696 code
: "function a() { \n var b; /* comment */ \n return; \n }" ,
4697 output
: "function a() { \n var b; /* comment */ \n\n return; \n }" ,
4699 { blankLine
: "always" , prev
: "*" , next
: "return" }
4701 errors
: [{ messageId
: "expectedBlankLine" }]
4704 code
: "function a() { \n var b; \n return; //comment \n }" ,
4705 output
: "function a() { \n var b; \n\n return; //comment \n }" ,
4707 { blankLine
: "always" , prev
: "*" , next
: "return" }
4709 errors
: [{ messageId
: "expectedBlankLine" }]
4712 code
: "function a() { \n var b; return; //comment \n }" ,
4713 output
: "function a() { \n var b; \n\n return; //comment \n }" ,
4715 { blankLine
: "always" , prev
: "*" , next
: "return" }
4717 errors
: [{ messageId
: "expectedBlankLine" }]
4720 //----------------------------------------------------------------------
4721 // From JSCS disallowPaddingNewLinesAfterBlocks
4722 // https://github.com/jscs-dev/node-jscs/blob/44f9b86eb0757fd4ca05a81a50450c5f1b25c37b/test/specs/rules/disallow-padding-newlines-after-blocks.js
4723 //----------------------------------------------------------------------
4726 code
: "if(true){} \n\n var a = 2;" ,
4727 output
: "if(true){} \n var a = 2;" ,
4729 { blankLine
: "never" , prev
: "block-like" , next
: "*" }
4731 errors
: [{ messageId
: "unexpectedBlankLine" }]
4734 code
: "if(true){ \n if(true) {} \n\n var a = 2;}" ,
4735 output
: "if(true){ \n if(true) {} \n var a = 2;}" ,
4737 { blankLine
: "never" , prev
: "block-like" , next
: "*" }
4739 errors
: [{ messageId
: "unexpectedBlankLine" }]
4742 code
: "(function(){ \n })() \n\n var a = 2;" ,
4743 output
: "(function(){ \n })() \n var a = 2;" ,
4745 { blankLine
: "never" , prev
: "block-like" , next
: "*" }
4747 errors
: [{ messageId
: "unexpectedBlankLine" }]
4750 code
: "+(function(){ \n })() \n\n var a = 2;" ,
4751 output
: "+(function(){ \n })() \n var a = 2;" ,
4753 { blankLine
: "never" , prev
: "block-like" , next
: "*" }
4755 errors
: [{ messageId
: "unexpectedBlankLine" }]
4758 code
: "var a = function() {}; \n\n var b = 2;" ,
4759 output
: "var a = function() {}; \n var b = 2;" ,
4761 { blankLine
: "never" , prev
: "block-like" , next
: "*" }
4763 errors
: [{ messageId
: "unexpectedBlankLine" }]
4766 //----------------------------------------------------------------------
4767 // From JSCS disallowPaddingNewLinesBeforeExport
4768 // https://github.com/jscs-dev/node-jscs/blob/44f9b86eb0757fd4ca05a81a50450c5f1b25c37b/test/specs/rules/disallow-padding-newlines-before-export.js
4769 //----------------------------------------------------------------------
4772 code
: "var a = 2; \n\n module.exports = a;" ,
4773 output
: "var a = 2; \n module.exports = a;" ,
4775 { blankLine
: "never" , prev
: "*" , next
: "cjs-export" }
4777 errors
: [{ messageId
: "unexpectedBlankLine" }]
4780 //----------------------------------------------------------------------
4781 // From JSCS disallowPaddingNewLinesBeforeExport
4782 // https://github.com/jscs-dev/node-jscs/blob/44f9b86eb0757fd4ca05a81a50450c5f1b25c37b/test/specs/rules/disallow-padding-newlines-before-keywords.js
4783 //----------------------------------------------------------------------
4786 code
: "function x() { var a; \n\n return; }" ,
4787 output
: "function x() { var a; \n return; }" ,
4789 { blankLine
: "never" , prev
: "*" , next
: [ "if" , "for" , "return" , "switch" , "case" , "break" , "throw" ] }
4791 errors
: [{ messageId
: "unexpectedBlankLine" }]
4794 code
: "function x() { var a = true; \n\n if (a) { a = !a; }; }" ,
4795 output
: "function x() { var a = true; \n if (a) { a = !a; }; }" ,
4797 { blankLine
: "never" , prev
: "*" , next
: [ "if" , "for" , "return" , "switch" , "case" , "break" , "throw" ] }
4799 errors
: [{ messageId
: "unexpectedBlankLine" }]
4802 code
: "function x() { var a = true; \n\n for (var i = 0; i < 10; i++) { a = !a; }; }" ,
4803 output
: "function x() { var a = true; \n for (var i = 0; i < 10; i++) { a = !a; }; }" ,
4805 { blankLine
: "never" , prev
: "*" , next
: [ "if" , "for" , "return" , "switch" , "case" , "break" , "throw" ] }
4807 errors
: [{ messageId
: "unexpectedBlankLine" }]
4810 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; } }" ,
4811 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; } }" ,
4813 { blankLine
: "never" , prev
: "*" , next
: [ "if" , "for" , "return" , "switch" , "case" , "break" , "throw" ] }
4816 { messageId
: "unexpectedBlankLine" },
4817 { messageId
: "unexpectedBlankLine" },
4818 { messageId
: "unexpectedBlankLine" },
4819 { messageId
: "unexpectedBlankLine" }
4823 code
: "function x() {try { var a; \n\n throw 0; } catch (e) { var b = 0; \n\n throw e; } }" ,
4824 output
: "function x() {try { var a; \n throw 0; } catch (e) { var b = 0; \n throw e; } }" ,
4826 { blankLine
: "never" , prev
: "*" , next
: [ "if" , "for" , "return" , "switch" , "case" , "break" , "throw" ] }
4829 { messageId
: "unexpectedBlankLine" },
4830 { messageId
: "unexpectedBlankLine" }
4834 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; }" ,
4835 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; }" ,
4837 { blankLine
: "never" , prev
: "*" , next
: [ "if" , "for" , "return" , "switch" , "case" , "break" , "throw" ] }
4840 { messageId
: "unexpectedBlankLine" },
4841 { messageId
: "unexpectedBlankLine" },
4842 { messageId
: "unexpectedBlankLine" }
4846 //----------------------------------------------------------------------
4847 // From JSCS requirePaddingNewLinesAfterBlocks
4848 // https://github.com/jscs-dev/node-jscs/blob/44f9b86eb0757fd4ca05a81a50450c5f1b25c37b/test/specs/rules/require-padding-newlines-after-blocks.js
4849 //----------------------------------------------------------------------
4852 code
: "if(true){} \n var a = 2;" ,
4853 output
: "if(true){} \n\n var a = 2;" ,
4855 { blankLine
: "always" , prev
: "block-like" , next
: "*" }
4857 errors
: [{ messageId
: "expectedBlankLine" }]
4860 code
: "var a = function() { \n }; \n var b = 2;" ,
4861 output
: "var a = function() { \n }; \n\n var b = 2;" ,
4863 { blankLine
: "always" , prev
: "block-like" , next
: "*" }
4865 errors
: [{ messageId
: "expectedBlankLine" }]
4868 code
: "if(true){ \n if(true) {} \n var a = 2;}" ,
4869 output
: "if(true){ \n if(true) {} \n\n var a = 2;}" ,
4871 { blankLine
: "always" , prev
: "block-like" , next
: "*" }
4873 errors
: [{ messageId
: "expectedBlankLine" }]
4876 code
: "(function(){ \n })() \n var a = 2;" ,
4877 output
: "(function(){ \n })() \n\n var a = 2;" ,
4879 { blankLine
: "always" , prev
: "block-like" , next
: "*" }
4881 errors
: [{ messageId
: "expectedBlankLine" }]
4884 code
: "var a = function() { \n }; \n var b = 2;" ,
4885 output
: "var a = function() { \n }; \n\n var b = 2;" ,
4887 { blankLine
: "always" , prev
: "multiline-block-like" , next
: "*" }
4889 errors
: [{ messageId
: "expectedBlankLine" }]
4892 code
: "(function(){ \n })() \n var a = 2;" ,
4893 output
: "(function(){ \n })() \n\n var a = 2;" ,
4895 { blankLine
: "always" , prev
: "multiline-block-like" , next
: "*" }
4897 errors
: [{ messageId
: "expectedBlankLine" }]
4900 //----------------------------------------------------------------------
4901 // From JSCS requirePaddingNewLinesBeforeExport
4902 // https://github.com/jscs-dev/node-jscs/blob/44f9b86eb0757fd4ca05a81a50450c5f1b25c37b/test/specs/rules/require-padding-newlines-before-export.js
4903 //----------------------------------------------------------------------
4906 code
: "var a = 2; \n module.exports = a;" ,
4907 output
: "var a = 2; \n\n module.exports = a;" ,
4909 { blankLine
: "always" , prev
: "*" , next
: "cjs-export" }
4911 errors
: [{ messageId
: "expectedBlankLine" }]
4914 //----------------------------------------------------------------------
4915 // From JSCS requirePaddingNewlinesBeforeKeywords
4916 // https://github.com/jscs-dev/node-jscs/blob/44f9b86eb0757fd4ca05a81a50450c5f1b25c37b/test/specs/rules/require-padding-newlines-before-keywords.js
4917 //----------------------------------------------------------------------
4920 code
: "function x() { var a; return; }" ,
4921 output
: "function x() { var a; \n\n return; }" ,
4923 { blankLine
: "always" , prev
: "*" , next
: [ "if" , "for" , "return" , "switch" , "case" , "break" , "throw" , "while" , "default" ] }
4925 errors
: [{ messageId
: "expectedBlankLine" }]
4928 code
: "function x() { var a = true; for (var i = 0; i < 10; i++) { a = !a; }; }" ,
4929 output
: "function x() { var a = true; \n\n for (var i = 0; i < 10; i++) { a = !a; }; }" ,
4931 { blankLine
: "always" , prev
: "*" , next
: [ "if" , "for" , "return" , "switch" , "case" , "break" , "throw" , "while" , "default" ] }
4933 errors
: [{ messageId
: "expectedBlankLine" }]
4936 code
: "function x() { var y = true; switch ( \" Oranges \" ) { case \" Oranges \" : y = !y; break; case \" Apples \" : y = !y; break; default: y = !y; } }" ,
4937 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; } }" ,
4939 { blankLine
: "always" , prev
: "*" , next
: [ "if" , "for" , "return" , "switch" , "case" , "break" , "throw" , "while" , "default" ] }
4942 { messageId
: "expectedBlankLine" },
4943 { messageId
: "expectedBlankLine" },
4944 { messageId
: "expectedBlankLine" },
4945 { messageId
: "expectedBlankLine" },
4946 { messageId
: "expectedBlankLine" }
4950 code
: "function x() { var a = true; while (!a) { a = !a; }; }" ,
4951 output
: "function x() { var a = true; \n\n while (!a) { a = !a; }; }" ,
4953 { blankLine
: "always" , prev
: "*" , next
: [ "if" , "for" , "return" , "switch" , "case" , "break" , "throw" , "while" , "default" ] }
4955 errors
: [{ messageId
: "expectedBlankLine" }]
4958 code
: "function x() {try { var a; throw 0; } catch (e) { var b = 0; throw e; } }" ,
4959 output
: "function x() {try { var a; \n\n throw 0; } catch (e) { var b = 0; \n\n throw e; } }" ,
4961 { blankLine
: "always" , prev
: "*" , next
: [ "if" , "for" , "return" , "switch" , "case" , "break" , "throw" , "while" , "default" ] }
4964 { messageId
: "expectedBlankLine" },
4965 { messageId
: "expectedBlankLine" }
4969 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; }" ,
4970 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; }" ,
4972 { blankLine
: "always" , prev
: "*" , next
: [ "if" , "for" , "return" , "switch" , "case" , "break" , "throw" , "while" , "default" ] }
4975 { messageId
: "expectedBlankLine" },
4976 { messageId
: "expectedBlankLine" },
4977 { messageId
: "expectedBlankLine" }