Module: wine Branch: master Commit: bb61c8d338c825c31057014b3c46d322f402ec27 URL: https://source.winehq.org/git/wine.git/?a=commit;h=bb61c8d338c825c31057014b3...
Author: Jacek Caban jacek@codeweavers.com Date: Wed Mar 24 16:41:45 2021 +0100
jscript: Fallback to begin of input in script_parse if error location was not recorded.
Signed-off-by: Jacek Caban jacek@codeweavers.com Signed-off-by: Alexandre Julliard julliard@winehq.org
---
dlls/jscript/parser.y | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/dlls/jscript/parser.y b/dlls/jscript/parser.y index 716c9688201..bfc83912ba1 100644 --- a/dlls/jscript/parser.y +++ b/dlls/jscript/parser.y @@ -1595,7 +1595,8 @@ HRESULT script_parse(script_ctx_t *ctx, struct _compiler_ctx_t *compiler, byteco heap_pool_clear(mark); hres = parser_ctx->hres; if(FAILED(hres)) { - const WCHAR *line_start = code->source + parser_ctx->error_loc, *line_end = line_start; + unsigned int error_loc = parser_ctx->error_loc == -1 ? 0 : parser_ctx->error_loc; + const WCHAR *line_start = code->source + error_loc, *line_end = line_start; jsstr_t *line_str;
while(line_start > code->source && line_start[-1] != '\n') @@ -1609,7 +1610,7 @@ HRESULT script_parse(script_ctx_t *ctx, struct _compiler_ctx_t *compiler, byteco debugstr_jsstr(line_str));
throw_error(ctx, hres, NULL); - set_error_location(ctx->ei, code, parser_ctx->error_loc, IDS_COMPILATION_ERROR, line_str); + set_error_location(ctx->ei, code, error_loc, IDS_COMPILATION_ERROR, line_str); parser_release(parser_ctx); if(line_str) jsstr_release(line_str);