6565 *
6666 * See also: ECMA-262 v5, 15.10.4.1
6767 *
68- * @return ecma value
68+ * @return empty ecma value - if parsed successfully
69+ * error ecma value - otherwise
70+ *
6971 * Returned value must be freed with ecma_free_value
7072 */
7173ecma_value_t
7274re_parse_regexp_flags (ecma_string_t * flags_str_p , /**< Input string with flags */
73- uint16_t * flags_p ) /**< Output: parsed flag bits */
75+ uint16_t * flags_p ) /**< [out] parsed flag bits */
7476{
7577 ecma_value_t ret_value = ecma_make_simple_value (ECMA_SIMPLE_VALUE_EMPTY );
7678
@@ -128,7 +130,7 @@ re_parse_regexp_flags (ecma_string_t *flags_str_p, /**< Input string with flags
128130 return ret_value ;
129131} /* re_parse_regexp_flags */
130132
131- /*
133+ /**
132134 * Initializes the source, global, ignoreCase, multiline, and lastIndex properties of RegExp instance.
133135 */
134136void
@@ -228,7 +230,7 @@ re_initialize_props (ecma_object_t *re_obj_p, /**< RegExp obejct */
228230 *
229231 * See also: ECMA-262 v5, 15.10.4.1
230232 *
231- * @return ecma value
233+ * @return constructed RegExp object
232234 * Returned value must be freed with ecma_free_value
233235 */
234236ecma_value_t
@@ -264,7 +266,9 @@ ecma_op_create_regexp_object_from_bytecode (re_compiled_code_t *bytecode_p) /**<
264266 *
265267 * See also: ECMA-262 v5, 15.10.4.1
266268 *
267- * @return ecma value
269+ * @return constructed RegExp object - if pattern and flags were parsed successfully
270+ * error ecma value - otherwise
271+ *
268272 * Returned value must be freed with ecma_free_value
269273 */
270274ecma_value_t
@@ -372,14 +376,16 @@ re_canonicalize (ecma_char_t ch, /**< character */
372376 * See also:
373377 * ECMA-262 v5, 15.10.2.1
374378 *
375- * @return ecma value
376- * Returned value must be freed with ecma_free_value
379+ * @return true - if matched
380+ * false - otherwise
381+ *
382+ * May raise error, so returned value must be freed with ecma_free_value
377383 */
378384static ecma_value_t
379385re_match_regexp (re_matcher_ctx_t * re_ctx_p , /**< RegExp matcher context */
380386 uint8_t * bc_p , /**< pointer to the current RegExp bytecode */
381387 lit_utf8_byte_t * str_p , /**< input string pointer */
382- lit_utf8_byte_t * * out_str_p ) /**< Output: matching substring iterator */
388+ lit_utf8_byte_t * * out_str_p ) /**< [out] matching substring iterator */
383389{
384390 ecma_value_t ret_value = ecma_make_simple_value (ECMA_SIMPLE_VALUE_EMPTY );
385391 re_opcode_t op ;
@@ -703,6 +709,7 @@ re_match_regexp (re_matcher_ctx_t *re_ctx_p, /**< RegExp matcher context */
703709 uint32_t offset = re_get_value (& bc_p );
704710 lit_utf8_byte_t * sub_str_p = NULL ;
705711 ecma_value_t match_value = re_match_regexp (re_ctx_p , bc_p , str_curr_p , & sub_str_p );
712+
706713 if (ecma_is_value_true (match_value ))
707714 {
708715 * out_str_p = sub_str_p ;
@@ -712,6 +719,7 @@ re_match_regexp (re_matcher_ctx_t *re_ctx_p, /**< RegExp matcher context */
712719 {
713720 return match_value ;
714721 }
722+
715723 bc_p += offset ;
716724 old_bc_p = bc_p ;
717725 }
@@ -844,6 +852,7 @@ re_match_regexp (re_matcher_ctx_t *re_ctx_p, /**< RegExp matcher context */
844852 {
845853 offset = re_get_value (& bc_p );
846854 ecma_value_t match_value = re_match_regexp (re_ctx_p , bc_p , str_curr_p , & sub_str_p );
855+
847856 if (ecma_is_value_true (match_value ))
848857 {
849858 * out_str_p = sub_str_p ;
@@ -853,6 +862,7 @@ re_match_regexp (re_matcher_ctx_t *re_ctx_p, /**< RegExp matcher context */
853862 {
854863 return match_value ;
855864 }
865+
856866 bc_p += offset ;
857867 old_bc_p = bc_p ;
858868 }
@@ -920,6 +930,7 @@ re_match_regexp (re_matcher_ctx_t *re_ctx_p, /**< RegExp matcher context */
920930
921931 lit_utf8_byte_t * sub_str_p = NULL ;
922932 ecma_value_t match_value = re_match_regexp (re_ctx_p , bc_p , str_curr_p , & sub_str_p );
933+
923934 if (ecma_is_value_true (match_value ))
924935 {
925936 * out_str_p = sub_str_p ;
@@ -1230,7 +1241,13 @@ re_set_result_array_properties (ecma_object_t *array_obj_p, /**< result array */
12301241 * RegExp helper function to start the recursive matching algorithm
12311242 * and create the result Array object
12321243 *
1233- * @return ecma value
1244+ * See also:
1245+ * ECMA-262 v5, 15.10.6.2
1246+ *
1247+ * @return array object - if matched
1248+ * null - otherwise
1249+ *
1250+ * May raise error.
12341251 * Returned value must be freed with ecma_free_value
12351252 */
12361253ecma_value_t
@@ -1480,4 +1497,4 @@ ecma_regexp_exec_helper (ecma_value_t regexp_value, /**< RegExp object */
14801497 * @}
14811498 */
14821499
1483- #endif /* CONFIG_ECMA_COMPACT_PROFILE_DISABLE_REGEXP_BUILTIN */
1500+ #endif /* ! CONFIG_ECMA_COMPACT_PROFILE_DISABLE_REGEXP_BUILTIN */
0 commit comments