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");