From f3ef9afb913db63cf4833a676bb618b28c3cc014 Mon Sep 17 00:00:00 2001 From: Andrey Shitov Date: Tue, 14 Jul 2015 15:58:31 +0300 Subject: [PATCH] Fix handling of invalid HexIntegerLiterals in lexer. JerryScript-DCO-1.0-Signed-off-by: Andrey Shitov a.shitov@samsung.com --- jerry-core/parser/js/lexer.cpp | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/jerry-core/parser/js/lexer.cpp b/jerry-core/parser/js/lexer.cpp index 0a0722173..5fb93080a 100644 --- a/jerry-core/parser/js/lexer.cpp +++ b/jerry-core/parser/js/lexer.cpp @@ -849,16 +849,20 @@ lexer_parse_number (void) consume_char (); consume_char (); new_token (); - while (true) + + c = LA (0); + if (!lit_char_is_hex_digit (c)) { - c = LA (0); - if (!lit_char_is_hex_digit (c)) - { - break; - } - consume_char (); + PARSE_ERROR ("Invalid HexIntegerLiteral", lit_utf8_iterator_get_pos (&src_iter)); } + do + { + consume_char (); + c = LA (0); + } + while (lit_char_is_hex_digit (c)); + if (lexer_is_char_can_be_identifier_start (c)) { PARSE_ERROR ("Identifier just after integer literal", lit_utf8_iterator_get_pos (&src_iter));