diff options
Diffstat (limited to 'js/src/gdb/tests/test-Root.py')
-rw-r--r-- | js/src/gdb/tests/test-Root.py | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/js/src/gdb/tests/test-Root.py b/js/src/gdb/tests/test-Root.py new file mode 100644 index 000000000..e2b215082 --- /dev/null +++ b/js/src/gdb/tests/test-Root.py @@ -0,0 +1,27 @@ +# Test printing Handles. + +assert_subprinter_registered('SpiderMonkey', 'instantiations-of-JS::Rooted') +assert_subprinter_registered('SpiderMonkey', 'instantiations-of-JS::Handle') +assert_subprinter_registered('SpiderMonkey', 'instantiations-of-JS::MutableHandle') +assert_subprinter_registered('SpiderMonkey', 'instantiations-of-js::BarrieredBase') + +run_fragment('Root.handle') + +assert_pretty('obj', '(JSObject * const) [object global] delegate') +assert_pretty('mutableObj', '(JSObject *) [object global] delegate') + +run_fragment('Root.HeapSlot') + +# This depends on implementation details of arrays, but since HeapSlot is +# not a public type, I'm not sure how to avoid doing *something* ugly. +assert_pretty('((js::NativeObject *) array.get())->elements_[0]', '$jsval("plinth")') + +run_fragment('Root.barriers'); + +assert_pretty('prebarriered', '(JSObject *) [object Object]'); +assert_pretty('heapptr', '(JSObject *) [object Object]'); +assert_pretty('relocatable', '(JSObject *) [object Object]'); +assert_pretty('val', '$jsval((JSObject *) [object Object])'); +assert_pretty('heapValue', '$jsval((JSObject *) [object Object])'); +assert_pretty('prebarrieredValue', '$jsval((JSObject *) [object Object])'); +assert_pretty('relocatableValue', '$jsval((JSObject *) [object Object])'); |