jscript: Ensure that the whole script is parsed.
This commit is contained in:
parent
5e469f4fff
commit
0f36ef09b1
|
@ -526,7 +526,7 @@ int parser_lex(void *lval, parser_ctx_t *ctx)
|
|||
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)) {
|
||||
|
|
|
@ -180,6 +180,7 @@ static source_elements_t *source_elements_add_statement(source_elements_t*,state
|
|||
%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 @@ static source_elements_t *source_elements_add_statement(source_elements_t*,state
|
|||
|
||||
/* ECMA-262 3rd Edition 14 */
|
||||
Program
|
||||
: SourceElements HtmlComment
|
||||
: SourceElements HtmlComment tEOF
|
||||
{ program_parsed(ctx, $1); }
|
||||
|
||||
HtmlComment
|
||||
|
|
|
@ -1985,6 +1985,7 @@ testSyntaxError("for(i=0;i<10", "E_SEMICOLON");
|
|||
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");
|
||||
|
|
Loading…
Reference in New Issue