|
|
|
@ -251,20 +251,34 @@ fn json_parse_sets_prototypes() {
|
|
|
|
|
let mut engine = Interpreter::new(realm); |
|
|
|
|
let init = r#" |
|
|
|
|
const jsonString = "{ |
|
|
|
|
\"ob\":{\"ject\":1} |
|
|
|
|
\"ob\":{\"ject\":1}, |
|
|
|
|
\"arr\": [0,1] |
|
|
|
|
}"; |
|
|
|
|
const jsonObj = JSON.parse(jsonString); |
|
|
|
|
"#; |
|
|
|
|
eprintln!("{}", forward(&mut engine, init)); |
|
|
|
|
let object = forward_val(&mut engine, r#"jsonObj.ob"#).unwrap(); |
|
|
|
|
let object_prototype = object.get_internal_slot(INSTANCE_PROTOTYPE); |
|
|
|
|
let object_prototype = forward_val(&mut engine, r#"jsonObj.ob"#) |
|
|
|
|
.unwrap() |
|
|
|
|
.get_internal_slot(INSTANCE_PROTOTYPE); |
|
|
|
|
let array_prototype = forward_val(&mut engine, r#"jsonObj.arr"#) |
|
|
|
|
.unwrap() |
|
|
|
|
.get_internal_slot(INSTANCE_PROTOTYPE); |
|
|
|
|
let global_object_prototype = engine |
|
|
|
|
.realm |
|
|
|
|
.global_obj |
|
|
|
|
.get_field("Object") |
|
|
|
|
.get_field(PROTOTYPE); |
|
|
|
|
let global_array_prototype = engine |
|
|
|
|
.realm |
|
|
|
|
.global_obj |
|
|
|
|
.get_field("Array") |
|
|
|
|
.get_field(PROTOTYPE); |
|
|
|
|
assert_eq!( |
|
|
|
|
same_value(&object_prototype, &global_object_prototype, true), |
|
|
|
|
true |
|
|
|
|
); |
|
|
|
|
assert_eq!( |
|
|
|
|
same_value(&array_prototype, &global_array_prototype, true), |
|
|
|
|
true |
|
|
|
|
); |
|
|
|
|
} |
|
|
|
|