@@ -136,6 +136,10 @@ ecma_builtin_regexp_dispatch_helper (const ecma_value_t *arguments_list_p, /**<
136136 return flags_value ;
137137 }
138138 }
139+ else
140+ {
141+ flags_value = ecma_copy_value (flags_value );
142+ }
139143
140144 free_arguments = true;
141145 }
@@ -151,47 +155,40 @@ ecma_builtin_regexp_dispatch_helper (const ecma_value_t *arguments_list_p, /**<
151155 }
152156#endif /* ENABLED (JERRY_ES2015) */
153157
158+ ecma_value_t ret_value ;
154159 ecma_object_t * new_target_obj_p = ecma_op_regexp_alloc (new_target_p );
155160
156- if (JERRY_UNLIKELY (new_target_obj_p = = NULL ))
161+ if (JERRY_LIKELY (new_target_obj_p ! = NULL ))
157162 {
158163#if ENABLED (JERRY_ES2015 )
159- if (free_arguments )
164+ if (create_regexp_from_bc )
160165 {
161- ecma_free_value (pattern_value );
162- ecma_free_value (flags_value );
166+ ret_value = ecma_op_create_regexp_from_bytecode (new_target_obj_p , bc_p );
163167 }
168+ else
164169#endif /* ENABLED (JERRY_ES2015) */
170+ {
171+ ret_value = ecma_op_create_regexp_from_pattern (new_target_obj_p , pattern_value , flags_value );
172+ }
165173
166- return ECMA_VALUE_ERROR ;
167- }
168-
169- ecma_value_t ret_value ;
170-
171- #if ENABLED (JERRY_ES2015 )
172- if (create_regexp_from_bc )
173- {
174- ret_value = ecma_op_create_regexp_from_bytecode (new_target_obj_p , bc_p );
174+ if (ECMA_IS_VALUE_ERROR (ret_value ))
175+ {
176+ ecma_deref_object (new_target_obj_p );
177+ }
175178 }
176179 else
177180 {
178- #endif /* ENABLED (JERRY_ES2015) */
179- ret_value = ecma_op_create_regexp_from_pattern (new_target_obj_p , pattern_value , flags_value );
180- #if ENABLED (JERRY_ES2015 )
181+ ret_value = ECMA_VALUE_ERROR ;
181182 }
182183
184+ #if ENABLED (JERRY_ES2015 )
183185 if (free_arguments )
184186 {
185187 ecma_free_value (pattern_value );
186188 ecma_free_value (flags_value );
187189 }
188190#endif /* ENABLED (JERRY_ES2015) */
189191
190- if (ECMA_IS_VALUE_ERROR (ret_value ))
191- {
192- ecma_deref_object (new_target_obj_p );
193- }
194-
195192 return ret_value ;
196193} /* ecma_builtin_regexp_dispatch_helper */
197194
0 commit comments