summaryrefslogtreecommitdiffstats
path: root/js/src/gdb/tests/test-Root.py
diff options
context:
space:
mode:
authorMatt A. Tobin <mattatobin@localhost.localdomain>2018-02-02 04:16:08 -0500
committerMatt A. Tobin <mattatobin@localhost.localdomain>2018-02-02 04:16:08 -0500
commit5f8de423f190bbb79a62f804151bc24824fa32d8 (patch)
tree10027f336435511475e392454359edea8e25895d /js/src/gdb/tests/test-Root.py
parent49ee0794b5d912db1f95dce6eb52d781dc210db5 (diff)
downloadUXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar
UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar.gz
UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar.lz
UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar.xz
UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.zip
Add m-esr52 at 52.6.0
Diffstat (limited to 'js/src/gdb/tests/test-Root.py')
-rw-r--r--js/src/gdb/tests/test-Root.py27
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])');