@@ -1024,6 +1024,9 @@ module.exports.defineVisitor = function create (context, tokenStore, defaultOpti
1024
1024
ExportAllDeclaration ( node ) {
1025
1025
const tokens = tokenStore . getTokens ( node )
1026
1026
const firstToken = tokens . shift ( )
1027
+ if ( isSemicolon ( last ( tokens ) ) ) {
1028
+ tokens . pop ( )
1029
+ }
1027
1030
setOffset ( tokens , 1 , firstToken )
1028
1031
} ,
1029
1032
@@ -1445,25 +1448,20 @@ module.exports.defineVisitor = function create (context, tokenStore, defaultOpti
1445
1448
1446
1449
// Process semicolons.
1447
1450
':statement' ( node ) {
1448
- const info = offsets . get ( tokenStore . getFirstToken ( node ) )
1451
+ const firstToken = tokenStore . getFirstToken ( node )
1449
1452
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 )
1455
1455
}
1456
1456
1457
1457
// Set to the semicolon of the previous token for semicolon-free style.
1458
1458
// E.g.,
1459
1459
// foo
1460
1460
// ;[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 )
1467
1465
}
1468
1466
} ,
1469
1467
0 commit comments