Fix infinite loop when skipping statements, see #167

This commit is contained in:
dcodeIO
2018-07-10 17:38:03 +02:00
parent cc72d02542
commit 585d246165
7 changed files with 14 additions and 14 deletions

View File

@ -546,13 +546,11 @@ export class Tokenizer extends DiagnosticEmitter {
let c = text.charCodeAt(this.pos);
switch (c) {
case CharCode.CARRIAGERETURN: {
if (
if (!(
++this.pos < this.end &&
text.charCodeAt(this.pos) == CharCode.LINEFEED
) {
++this.pos;
}
break;
)) break;
// otherwise fall-through
}
case CharCode.LINEFEED:
case CharCode.TAB:
@ -960,8 +958,8 @@ export class Tokenizer extends DiagnosticEmitter {
this.nextTokenPos = this.tokenPos;
if (checkOnNewLine) {
this.nextTokenOnNewLine = false;
while (--this.tokenPos > posBefore) {
if (isLineBreak(text.charCodeAt(this.tokenPos))) {
for (let pos = posBefore, end = this.nextTokenPos; pos < end; ++pos) {
if (isLineBreak(text.charCodeAt(pos))) {
this.nextTokenOnNewLine = true;
break;
}