Skip to content

Commit 00fb45f

Browse files
committed
Check for EOF on parse error in blocks, fixes AssemblyScript#180
1 parent ccc019d commit 00fb45f

File tree

3 files changed

+14
-6
lines changed

3 files changed

+14
-6
lines changed

dist/assemblyscript.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/assemblyscript.js.map

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/parser.ts

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2386,6 +2386,7 @@ export class Parser extends DiagnosticEmitter {
23862386
let state = tn.mark();
23872387
let statement = this.parseStatement(tn, topLevel);
23882388
if (!statement) {
2389+
if (tn.token == Token.ENDOFFILE) return null;
23892390
tn.reset(state);
23902391
this.skipStatement(tn);
23912392
} else {
@@ -3176,10 +3177,17 @@ export class Parser extends DiagnosticEmitter {
31763177
return this.parseClassExpression(tn);
31773178
}
31783179
default: {
3179-
this.error(
3180-
DiagnosticCode.Expression_expected,
3181-
tn.range()
3182-
);
3180+
if (token == Token.ENDOFFILE) {
3181+
this.error(
3182+
DiagnosticCode.Unexpected_end_of_text,
3183+
tn.range(startPos)
3184+
);
3185+
} else {
3186+
this.error(
3187+
DiagnosticCode.Expression_expected,
3188+
tn.range()
3189+
);
3190+
}
31833191
return null;
31843192
}
31853193
}

0 commit comments

Comments
 (0)