From 9b0f5d439d1e90dc62b51b7bb15650717140710d Mon Sep 17 00:00:00 2001 From: Ruben Ayrapetyan Date: Fri, 19 Jun 2015 00:11:25 +0300 Subject: [PATCH] Introduce jsp_label_remove_all_labels interface that removes all jump labels registered at the moment of call for usage upon raise of SyntaxError during parse. JerryScript-DCO-1.0-Signed-off-by: Ruben Ayrapetyan r.ayrapetyan@samsung.com --- jerry-core/parser/js/jsp-label.cpp | 12 ++++++++++++ jerry-core/parser/js/jsp-label.h | 2 ++ 2 files changed, 14 insertions(+) diff --git a/jerry-core/parser/js/jsp-label.cpp b/jerry-core/parser/js/jsp-label.cpp index 1d2848980..a546b3ce4 100644 --- a/jerry-core/parser/js/jsp-label.cpp +++ b/jerry-core/parser/js/jsp-label.cpp @@ -47,6 +47,18 @@ jsp_label_finalize (void) JERRY_ASSERT (label_set_p == NULL); } /* jsp_label_finalize */ +/** + * Remove all labels + * + * Note: + * should be used only upon a SyntaxError is raised + */ +void +jsp_label_remove_all_labels (void) +{ + label_set_p = NULL; +} /* jsp_label_remove_all_labels */ + /** * Add label to the current label set */ diff --git a/jerry-core/parser/js/jsp-label.h b/jerry-core/parser/js/jsp-label.h index dd0543218..d37ef4304 100644 --- a/jerry-core/parser/js/jsp-label.h +++ b/jerry-core/parser/js/jsp-label.h @@ -67,6 +67,8 @@ typedef struct jsp_label_t extern void jsp_label_init (void); extern void jsp_label_finalize (void); +extern void jsp_label_remove_all_labels (void); + extern void jsp_label_push (jsp_label_t *out_label_p, jsp_label_type_flag_t type_mask, token id); extern void jsp_label_rewrite_jumps_and_pop (jsp_label_t *label_p, opcode_counter_t break_tgt_oc);