From 10002aef607637b63d616524d3cdf4fc53ab49e6 Mon Sep 17 00:00:00 2001 From: Zoltan Herczeg Date: Tue, 20 Apr 2021 11:04:26 +0200 Subject: [PATCH] Throw ReferenceError when a property of a native module is not found (#4659) JerryScript-DCO-1.0-Signed-off-by: Zoltan Herczeg zherczeg.u-szeged@partner.samsung.com --- jerry-core/api/jerry.c | 4 ++-- tests/unit-core/test-module.c | 2 ++ 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/jerry-core/api/jerry.c b/jerry-core/api/jerry.c index a21cf4b0c..e70999e18 100644 --- a/jerry-core/api/jerry.c +++ b/jerry-core/api/jerry.c @@ -1034,7 +1034,7 @@ jerry_native_module_get_export (const jerry_value_t native_module_val, /**< a na if (property_p == NULL) { - return jerry_throw (ecma_raise_type_error (ECMA_ERR_MSG (ecma_error_unknown_export_p))); + return jerry_throw (ecma_raise_reference_error (ECMA_ERR_MSG (ecma_error_unknown_export_p))); } return ecma_copy_value (ECMA_PROPERTY_VALUE_PTR (property_p)->value); @@ -1082,7 +1082,7 @@ jerry_native_module_set_export (const jerry_value_t native_module_val, /**< a na if (property_p == NULL) { - return jerry_throw (ecma_raise_type_error (ECMA_ERR_MSG (ecma_error_unknown_export_p))); + return jerry_throw (ecma_raise_reference_error (ECMA_ERR_MSG (ecma_error_unknown_export_p))); } ecma_named_data_property_assign_value (module_p->scope_p, diff --git a/tests/unit-core/test-module.c b/tests/unit-core/test-module.c index 27857c82c..4e1fa2a44 100644 --- a/tests/unit-core/test-module.c +++ b/tests/unit-core/test-module.c @@ -159,6 +159,7 @@ native_module_evaluate (const jerry_value_t native_module) /**< native module */ result = jerry_native_module_get_export (native_module, no_exp_val); TEST_ASSERT (jerry_value_is_error (result)); + TEST_ASSERT (jerry_get_error_type (result) == JERRY_ERROR_REFERENCE); jerry_release_value (result); jerry_value_t export = jerry_create_number (3.5); @@ -175,6 +176,7 @@ native_module_evaluate (const jerry_value_t native_module) /**< native module */ result = jerry_native_module_set_export (native_module, no_exp_val, no_exp_val); TEST_ASSERT (jerry_value_is_error (result)); + TEST_ASSERT (jerry_get_error_type (result) == JERRY_ERROR_REFERENCE); jerry_release_value (result); result = jerry_native_module_get_export (native_module, exp_val);