aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorAlon Zakai <alonzakai@gmail.com>2013-11-12 08:31:11 -0800
committerAlon Zakai <alonzakai@gmail.com>2013-11-12 08:31:11 -0800
commita3903de867a0cff0854ea8e195469a48d11b9c9e (patch)
tree4d6a25d039e922b6f6eddfe6a5e64f0cf3a5922b /src
parent93b48cd720995297f9ec27a8af0d5cbb065f4a9a (diff)
demangle constructors
Diffstat (limited to 'src')
-rw-r--r--src/preamble.js9
1 files changed, 7 insertions, 2 deletions
diff --git a/src/preamble.js b/src/preamble.js
index deabd29a..a91d16f1 100644
--- a/src/preamble.js
+++ b/src/preamble.js
@@ -682,7 +682,7 @@ function demangle(func) {
var subs = [];
function parseNested() {
i++;
- if (func[i] === 'K') i++;
+ if (func[i] === 'K') i++; // ignore const
var parts = [];
while (func[i] !== 'E') {
if (func[i] === 'S') { // substitution
@@ -693,6 +693,11 @@ function demangle(func) {
i = next+1;
continue;
}
+ if (func[i] === 'C') { // constructor
+ parts.push(parts[parts.length-1]);
+ i += 2;
+ continue;
+ }
var size = parseInt(func.substr(i));
var pre = size.toString().length;
if (!size || !pre) { i--; break; } // counter i++ below us
@@ -713,7 +718,7 @@ function demangle(func) {
var name;
if (func[i] !== 'N') {
// not namespaced
- if (func[i] === 'K') i++;
+ if (func[i] === 'K') i++; // ignore const
var size = parseInt(func.substr(i));
if (size) {
var pre = size.toString().length;