Add missing error support for API functions. (#4153)

JerryScript-DCO-1.0-Signed-off-by: Zoltan Herczeg zherczeg.u-szeged@partner.samsung.com
This commit is contained in:
Zoltan Herczeg
2020-08-19 11:13:08 +02:00
committed by GitHub
parent b828d1c15f
commit 5b3f01af9d
3 changed files with 52 additions and 5 deletions
+20
View File
@@ -100,6 +100,26 @@ main (void)
jerry_release_value (prop_name);
jerry_release_value (global_obj_val);
/* Test: define own property descriptor error */
jerry_init_property_descriptor_fields (&prop_desc);
prop_desc.is_value_defined = true;
prop_desc.value = jerry_create_number (11);
jerry_value_t obj_val = jerry_create_object ();
prop_name = jerry_create_string ((const jerry_char_t *) "property_key");
res = jerry_define_own_property (obj_val, prop_name, &prop_desc);
TEST_ASSERT (!jerry_value_is_error (res));
jerry_release_value (res);
jerry_release_value (prop_desc.value);
prop_desc.value = jerry_create_number (22);
res = jerry_define_own_property (obj_val, prop_name, &prop_desc);
TEST_ASSERT (jerry_value_is_error (res));
jerry_release_value (res);
jerry_release_value (prop_name);
jerry_release_value (obj_val);
jerry_cleanup ();
return 0;
+27
View File
@@ -245,6 +245,33 @@ main (void)
jerry_release_value (target);
jerry_release_value (handler);
{
const jerry_char_t has_value_src[] = TEST_STRING_LITERAL ("new Proxy({}, {\n"
" has: function(target, key) { throw 33 }\n"
"})");
jerry_value_t parsed_has_code_val = jerry_parse (NULL,
0,
has_value_src,
sizeof (has_value_src) - 1,
JERRY_PARSE_NO_OPTS);
TEST_ASSERT (!jerry_value_is_error (parsed_has_code_val));
jerry_value_t res = jerry_run (parsed_has_code_val);
jerry_release_value (parsed_has_code_val);
TEST_ASSERT (jerry_value_is_proxy (res));
jerry_value_t name = jerry_create_string ((const jerry_char_t *) "key");
TEST_ASSERT (jerry_value_is_string (name));
jerry_value_t property = jerry_has_property (res, name);
jerry_release_value (name);
jerry_release_value (res);
TEST_ASSERT (jerry_value_is_error (property));
property = jerry_get_value_from_error (property, true);
TEST_ASSERT (jerry_get_number_value (property) == 33);
jerry_release_value (property);
}
jerry_cleanup ();
return 0;
} /* main */