summaryrefslogtreecommitdiff
path: root/js/src/gdb/mozilla/jsval.py
diff options
context:
space:
mode:
Diffstat (limited to 'js/src/gdb/mozilla/jsval.py')
-rw-r--r--js/src/gdb/mozilla/jsval.py11
1 files changed, 11 insertions, 0 deletions
diff --git a/js/src/gdb/mozilla/jsval.py b/js/src/gdb/mozilla/jsval.py
index f5ae78b1c2..d6f5e01fdf 100644
--- a/js/src/gdb/mozilla/jsval.py
+++ b/js/src/gdb/mozilla/jsval.py
@@ -165,6 +165,15 @@ class jsvalTypeCache(object):
self.NULL = d['JSVAL_TYPE_NULL']
self.OBJECT = d['JSVAL_TYPE_OBJECT']
+ self.enable_bigint = False
+ try:
+ # Looking up the tag will throw an exception if BigInt is not
+ # enabled.
+ self.BIGINT = get('JSVAL_TYPE_BIGINT')
+ self.enable_bigint = True
+ except:
+ pass
+
# Let self.magic_names be an array whose i'th element is the name of
# the i'th magic value.
d = gdb.types.make_enum_dict(gdb.lookup_type('JSWhyMagic'))
@@ -206,6 +215,8 @@ class jsval_layout(object):
value = self.box.as_address().cast(self.cache.JSString_ptr_t)
elif tag == self.jtc.SYMBOL:
value = self.box.as_address().cast(self.cache.JSSymbol_ptr_t)
+ elif self.jtc.enable_bigint and tag == self.jtc.BIGINT:
+ return '$JS::BigIntValue()'
elif tag == self.jtc.NULL:
return 'JSVAL_NULL'
elif tag == self.jtc.OBJECT: