@@ -1024,6 +1024,9 @@ module.exports.defineVisitor = function create (context, tokenStore, defaultOpti
10241024 ExportAllDeclaration ( node ) {
10251025 const tokens = tokenStore . getTokens ( node )
10261026 const firstToken = tokens . shift ( )
1027+ if ( isSemicolon ( last ( tokens ) ) ) {
1028+ tokens . pop ( )
1029+ }
10271030 setOffset ( tokens , 1 , firstToken )
10281031 } ,
10291032
@@ -1445,25 +1448,20 @@ module.exports.defineVisitor = function create (context, tokenStore, defaultOpti
14451448
14461449 // Process semicolons.
14471450 ':statement' ( node ) {
1448- const info = offsets . get ( tokenStore . getFirstToken ( node ) )
1451+ const firstToken = tokenStore . getFirstToken ( node )
14491452 const lastToken = tokenStore . getLastToken ( node )
1450- if ( info == null ) {
1451- return
1452- }
1453- if ( isSemicolon ( lastToken ) ) {
1454- offsets . set ( lastToken , info )
1453+ if ( isSemicolon ( lastToken ) && firstToken !== lastToken ) {
1454+ setOffset ( lastToken , 0 , firstToken )
14551455 }
14561456
14571457 // Set to the semicolon of the previous token for semicolon-free style.
14581458 // E.g.,
14591459 // foo
14601460 // ;[1,2,3].forEach(f)
1461- const prevToken = tokenStore . getTokenBefore ( node )
1462- if ( isSemicolon ( prevToken ) ) {
1463- const prevPrevToken = tokenStore . getTokenBefore ( prevToken )
1464- if ( prevPrevToken == null || prevToken . loc . end . line !== prevPrevToken . loc . start . line ) {
1465- offsets . set ( prevToken , info )
1466- }
1461+ const info = offsets . get ( firstToken )
1462+ const prevToken = tokenStore . getTokenBefore ( firstToken )
1463+ if ( info != null && isSemicolon ( prevToken ) && prevToken . loc . end . line === firstToken . loc . start . line ) {
1464+ offsets . set ( prevToken , info )
14671465 }
14681466 } ,
14691467
0 commit comments