jscript: Ensure that the whole script is parsed.
diff --git a/dlls/jscript/lex.c b/dlls/jscript/lex.c
index bfa3568..88fed07 100644
--- a/dlls/jscript/lex.c
+++ b/dlls/jscript/lex.c
@@ -526,7 +526,7 @@
do {
skip_spaces(ctx);
if(ctx->ptr == ctx->end)
- return 0;
+ return tEOF;
}while(skip_comment(ctx) || skip_html_comment(ctx));
if(isalphaW(*ctx->ptr)) {
diff --git a/dlls/jscript/parser.y b/dlls/jscript/parser.y
index 47fcc34..df7a070 100644
--- a/dlls/jscript/parser.y
+++ b/dlls/jscript/parser.y
@@ -180,6 +180,7 @@
%token <ival> tAssignOper tEqOper tShiftOper tRelOper
%token <literal> tNumericLiteral
%token <wstr> tStringLiteral
+%token tEOF
%type <source_elements> SourceElements
%type <source_elements> FunctionBody
@@ -253,7 +254,7 @@
/* ECMA-262 3rd Edition 14 */
Program
- : SourceElements HtmlComment
+ : SourceElements HtmlComment tEOF
{ program_parsed(ctx, $1); }
HtmlComment
diff --git a/dlls/jscript/tests/api.js b/dlls/jscript/tests/api.js
index 4b9f160..6c62276 100644
--- a/dlls/jscript/tests/api.js
+++ b/dlls/jscript/tests/api.js
@@ -1985,6 +1985,7 @@
testSyntaxError("while(", "E_SYNTAX_ERROR");
testSyntaxError("if(", "E_SYNTAX_ERROR");
testSyntaxError("'unterminated", "E_UNTERMINATED_STR");
+testSyntaxError("*", "E_SYNTAX_ERROR");
// ReferenceError tests
testException(function() {test = function() {}}, "E_ILLEGAL_ASSIGN");