@@ -70,6 +70,27 @@ check_type_error (jerry_value_t result_value) /**< result value */
70
70
jerry_release_value (result_value );
71
71
} /* check_type_error */
72
72
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
+
73
94
/**
74
95
* Unit test's main function.
75
96
*/
@@ -209,6 +230,35 @@ main (void)
209
230
jerry_release_value (result_value );
210
231
}
211
232
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
+
212
262
jerry_cleanup ();
213
263
return 0 ;
214
264
} /* main */
0 commit comments