From 531a9d335240921432e45aef88eab7091a956a88 Mon Sep 17 00:00:00 2001 From: Andrey Shitov Date: Tue, 11 Aug 2015 08:54:19 +0300 Subject: [PATCH] Fix invalid preparsing of variable declarations which are not splitted by comma. JerryScript-DCO-1.0-Signed-off-by: Andrey Shitov a.shitov@samsung.com --- jerry-core/parser/js/parser.cpp | 6 ++++++ tests/jerry/var-decl.js | 12 ++++++++++++ 2 files changed, 18 insertions(+) diff --git a/jerry-core/parser/js/parser.cpp b/jerry-core/parser/js/parser.cpp index 271ac8990..384c7fc20 100644 --- a/jerry-core/parser/js/parser.cpp +++ b/jerry-core/parser/js/parser.cpp @@ -3026,6 +3026,12 @@ preparse_scope (bool is_global) } skip_newlines (); + + if (!token_is (TOK_COMMA) + && !token_is (TOK_EQ)) + { + is_in_var_declaration_list = false; + } } else if (is_in_var_declaration_list) { diff --git a/tests/jerry/var-decl.js b/tests/jerry/var-decl.js index 48b89da9d..6905886f6 100644 --- a/tests/jerry/var-decl.js +++ b/tests/jerry/var-decl.js @@ -17,6 +17,7 @@ assert (y === undefined); assert (z === undefined); assert (i === undefined); assert (j === undefined); +assert (k === undefined); assert (q === undefined); assert (v === undefined); @@ -49,3 +50,14 @@ for (var q in {}) } { var v = 1 } + +try +{ + var k + l + assert (false) +} +catch (e) +{ + assert (e instanceof ReferenceError); +}