aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlon Zakai <alonzakai@gmail.com>2013-10-13 11:24:33 -0700
committerAlon Zakai <alonzakai@gmail.com>2013-10-13 11:24:33 -0700
commitfd14b84d9c653f16db06e37209b83a87c89bef9b (patch)
tree6423cb00c0c7d48c005d032b8055d1763c86f25e
parent345e6074799571df9a4c9a13ef2e7ac0f6ba264b (diff)
demangle references
-rw-r--r--src/preamble.js1
-rw-r--r--tests/test_other.py2
2 files changed, 3 insertions, 0 deletions
diff --git a/src/preamble.js b/src/preamble.js
index 2e874519..50497a98 100644
--- a/src/preamble.js
+++ b/src/preamble.js
@@ -729,6 +729,7 @@ function demangle(func) {
} else {
switch (c) {
case 'P': list.push(parse(true, 1, true)[0] + '*'); break; // pointer
+ case 'R': list.push(parse(true, 1, true)[0] + '&'); break; // reference
case 'L': { // literal
i++; // skip basic type
var end = func.indexOf('E', i);
diff --git a/tests/test_other.py b/tests/test_other.py
index 2d3dde3f..af6231e1 100644
--- a/tests/test_other.py
+++ b/tests/test_other.py
@@ -1922,6 +1922,7 @@ done.
EM_ASM(Module.print(demangle('__Z3FooIidEvi')));
EM_ASM(Module.print(demangle('__ZN3Foo3BarILi5EEEvv')));
EM_ASM(Module.print(demangle('__ZNK10__cxxabiv120__si_class_type_info16search_below_dstEPNS_19__dynamic_cast_infoEPKvib')));
+ EM_ASM(Module.print(demangle('__Z9parsewordRPKciRi')));
return 0;
}
''')
@@ -1937,5 +1938,6 @@ void Foo<int>()
void Foo<int, double>(int)
void Foo::Bar<5>()
__cxxabiv1::__si_class_type_info::search_below_dst(__cxxabiv1::__dynamic_cast_info*, void*, int, bool)
+parseword(char*&, int, int&)
''', run_js('a.out.js'))