@@ -70,6 +70,27 @@ check_type_error (jerry_value_t result_value) /**< result value */
7070 jerry_release_value (result_value );
7171} /* check_type_error */
7272
73+ static void
74+ check_array_prototype (jerry_value_t realm_value , jerry_value_t result_value )
75+ {
76+ jerry_value_t name_value = jerry_create_string ((const jerry_char_t * ) "Array" );
77+ jerry_value_t array_value = jerry_get_property (realm_value , name_value );
78+ TEST_ASSERT (jerry_value_is_object (array_value ));
79+ jerry_release_value (name_value );
80+
81+ name_value = jerry_create_string ((const jerry_char_t * ) "prototype" );
82+ jerry_value_t prototype_value = jerry_get_property (array_value , name_value );
83+ TEST_ASSERT (jerry_value_is_object (prototype_value ));
84+ jerry_release_value (name_value );
85+ jerry_release_value (array_value );
86+
87+ jerry_value_t compare_value = jerry_binary_operation (JERRY_BIN_OP_STRICT_EQUAL , result_value , prototype_value );
88+ jerry_release_value (prototype_value );
89+
90+ TEST_ASSERT (jerry_value_is_boolean (compare_value ) && jerry_get_boolean_value (compare_value ));
91+ jerry_release_value (compare_value );
92+ } /* check_array_prototype */
93+
7394/**
7495 * Unit test's main function.
7596 */
@@ -209,6 +230,35 @@ main (void)
209230 jerry_release_value (result_value );
210231 }
211232
233+ realm_value = jerry_create_realm ();
234+
235+ result_value = jerry_set_realm (realm_value );
236+ TEST_ASSERT (!jerry_value_is_error (result_value ));
237+
238+ const char * script_p = "global2 = global1 - 1; Object.getPrototypeOf([])" ;
239+ jerry_value_t script_value = jerry_parse (NULL ,
240+ 0 ,
241+ (const jerry_char_t * ) script_p ,
242+ strlen (script_p ),
243+ JERRY_PARSE_NO_OPTS );
244+
245+ TEST_ASSERT (!jerry_value_is_error (script_value ));
246+ jerry_set_realm (result_value );
247+
248+ /* Script is compiled in another realm. */
249+ create_number_property (realm_value , "global1" , 7.5 );
250+ result_value = jerry_run (script_value );
251+ TEST_ASSERT (!jerry_value_is_error (result_value ));
252+
253+ check_array_prototype (realm_value , result_value );
254+
255+ jerry_release_value (result_value );
256+ jerry_release_value (script_value );
257+
258+ TEST_ASSERT (get_number_property (realm_value , "global2" ) == 6.5 );
259+
260+ jerry_release_value (realm_value );
261+
212262 jerry_cleanup ();
213263 return 0 ;
214264} /* main */
0 commit comments