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);