test-Root.py (1404B)
1 # Test printing Handles. 2 # Ignore flake8 errors "undefined name 'assert_pretty'" 3 # As it caused by the way we instanciate this file 4 # flake8: noqa: F821 5 6 assert_subprinter_registered("SpiderMonkey", "instantiations-of-JS::Rooted") 7 assert_subprinter_registered("SpiderMonkey", "instantiations-of-JS::Handle") 8 assert_subprinter_registered("SpiderMonkey", "instantiations-of-JS::MutableHandle") 9 assert_subprinter_registered("SpiderMonkey", "instantiations-of-js::BarrieredBase") 10 11 run_fragment("Root.handle") 12 13 assert_pretty("obj", "(JSObject * const) [object global]") 14 assert_pretty("mutableObj", "(JSObject *) [object global]") 15 16 run_fragment("Root.HeapSlot") 17 18 # This depends on implementation details of arrays, but since HeapSlot is 19 # not a public type, I'm not sure how to avoid doing *something* ugly. 20 assert_pretty("((js::NativeObject *) array.ptr)->elements_[0]", '$JS::Value("plinth")') 21 22 run_fragment("Root.barriers") 23 24 assert_pretty("prebarriered", "(JSObject *) [object Object]") 25 assert_pretty("heapptr", "(JSObject *) [object Object]") 26 assert_pretty("relocatable", "(JSObject *) [object Object]") 27 assert_pretty("val", "$JS::Value((JSObject *) [object Object])") 28 assert_pretty("heapValue", "$JS::Value((JSObject *) [object Object])") 29 assert_pretty("prebarrieredValue", "$JS::Value((JSObject *) [object Object])") 30 assert_pretty("relocatableValue", "$JS::Value((JSObject *) [object Object])")