@@ -40,6 +40,11 @@ static const jerry_object_native_info_t native_info_2 =
4040 .free_cb = NULL ,
4141};
4242
43+ static const jerry_object_native_info_t native_info_3 =
44+ {
45+ .free_cb = NULL ,
46+ };
47+
4348static void
4449check_native_info (jerry_value_t object_value , /**< object value */
4550 const jerry_object_native_info_t * native_info_p , /**< native info */
@@ -111,6 +116,39 @@ main (void)
111116 TEST_ASSERT (!jerry_get_object_native_pointer (object_value , NULL , & native_info_1 ));
112117 TEST_ASSERT (!jerry_get_object_native_pointer (object_value , NULL , & native_info_2 ));
113118
119+ jerry_set_object_native_pointer (object_value , global_p , & native_info_1 );
120+ jerry_set_object_native_pointer (object_value , NULL , & native_info_2 );
121+ jerry_set_object_native_pointer (object_value , global_p , & native_info_3 );
122+
123+ check_native_info (object_value , & native_info_1 , global_p );
124+ check_native_info (object_value , & native_info_2 , NULL );
125+ check_native_info (object_value , & native_info_3 , global_p );
126+
127+ TEST_ASSERT (jerry_delete_object_native_pointer (object_value , & native_info_1 ));
128+ TEST_ASSERT (jerry_delete_object_native_pointer (object_value , & native_info_2 ));
129+ TEST_ASSERT (jerry_delete_object_native_pointer (object_value , & native_info_3 ));
130+
131+ TEST_ASSERT (!jerry_get_object_native_pointer (object_value , NULL , & native_info_1 ));
132+ TEST_ASSERT (!jerry_get_object_native_pointer (object_value , NULL , & native_info_2 ));
133+ TEST_ASSERT (!jerry_get_object_native_pointer (object_value , NULL , & native_info_3 ));
134+
135+ jerry_set_object_native_pointer (object_value , NULL , & native_info_1 );
136+ jerry_set_object_native_pointer (object_value , global_p , & native_info_2 );
137+ jerry_set_object_native_pointer (object_value , NULL , & native_info_3 );
138+
139+ check_native_info (object_value , & native_info_1 , NULL );
140+ check_native_info (object_value , & native_info_2 , global_p );
141+ check_native_info (object_value , & native_info_3 , NULL );
142+
143+ /* Reversed delete order. */
144+ TEST_ASSERT (jerry_delete_object_native_pointer (object_value , & native_info_3 ));
145+ TEST_ASSERT (jerry_delete_object_native_pointer (object_value , & native_info_2 ));
146+ TEST_ASSERT (jerry_delete_object_native_pointer (object_value , & native_info_1 ));
147+
148+ TEST_ASSERT (!jerry_get_object_native_pointer (object_value , NULL , & native_info_1 ));
149+ TEST_ASSERT (!jerry_get_object_native_pointer (object_value , NULL , & native_info_2 ));
150+ TEST_ASSERT (!jerry_get_object_native_pointer (object_value , NULL , & native_info_3 ));
151+
114152 jerry_release_value (object_value );
115153
116154 jerry_cleanup ();
0 commit comments