@@ -148,6 +148,7 @@ module ts {
148
148
"&=" : SyntaxKind . AmpersandEqualsToken ,
149
149
"|=" : SyntaxKind . BarEqualsToken ,
150
150
"^=" : SyntaxKind . CaretEqualsToken ,
151
+ "@" : SyntaxKind . AtToken ,
151
152
} ;
152
153
153
154
/*
@@ -315,6 +316,19 @@ module ts {
315
316
return computeLineAndCharacterOfPosition ( getLineStarts ( sourceFile ) , position ) ;
316
317
}
317
318
319
+ export function lineBreakBetween ( sourceFile : SourceFile , firstPos : number , secondPos : number ) : boolean {
320
+ var lineStarts = getLineStarts ( sourceFile ) ;
321
+ var firstLine = binarySearch ( lineStarts , firstPos ) ;
322
+ var secondLine = binarySearch ( lineStarts , secondPos ) ;
323
+ if ( firstLine < 0 ) {
324
+ firstLine = ~ firstLine - 1 ;
325
+ }
326
+ if ( secondLine < 0 ) {
327
+ secondLine = ~ secondLine - 1 ;
328
+ }
329
+ return firstLine !== secondLine ;
330
+ }
331
+
318
332
let hasOwnProperty = Object . prototype . hasOwnProperty ;
319
333
320
334
export function isWhiteSpace ( ch : number ) : boolean {
@@ -1247,6 +1261,8 @@ module ts {
1247
1261
return pos ++ , token = SyntaxKind . CloseBraceToken ;
1248
1262
case CharacterCodes . tilde :
1249
1263
return pos ++ , token = SyntaxKind . TildeToken ;
1264
+ case CharacterCodes . at :
1265
+ return pos ++ , token = SyntaxKind . AtToken ;
1250
1266
case CharacterCodes . backslash :
1251
1267
let cookedChar = peekUnicodeEscape ( ) ;
1252
1268
if ( cookedChar >= 0 && isIdentifierStart ( cookedChar ) ) {
0 commit comments