aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorAlon Zakai <alonzakai@gmail.com>2013-11-09 16:18:31 -0800
committerAlon Zakai <alonzakai@gmail.com>2013-11-09 16:18:50 -0800
commitd446e2b3c3b96474106b9bd47f35d901abb14f6d (patch)
tree9fb6378d271abbfaeddaa3ec5c7d692da581a96b /src
parent473ab54aafafd37d0115490c1cbcb5cdbed6f21b (diff)
support inline asm comments; fixes #1766
Diffstat (limited to 'src')
-rw-r--r--src/intertyper.js3
-rw-r--r--src/parseTools.js6
2 files changed, 9 insertions, 0 deletions
diff --git a/src/intertyper.js b/src/intertyper.js
index fceeb38d..fa53c652 100644
--- a/src/intertyper.js
+++ b/src/intertyper.js
@@ -680,6 +680,9 @@ function intertyper(lines, sidePass, baseLineNums) {
args.push(ident);
});
}
+ item.ident = expandLLVMString(item.ident).replace(/(#[^\n]*)/g, function(m) {
+ return '/* ' + m.substr(1) + ' */'; // fix asm comments to js comments
+ });
if (item.assignTo) item.ident = 'return ' + item.ident;
item.ident = '(function(' + params + ') { ' + item.ident + ' })(' + args + ');';
return { ret: item, item: item };
diff --git a/src/parseTools.js b/src/parseTools.js
index c4f28184..52727903 100644
--- a/src/parseTools.js
+++ b/src/parseTools.js
@@ -981,6 +981,12 @@ function parseLLVMString(str) {
return ret;
}
+function expandLLVMString(str) {
+ return str.replace(/\\../g, function(m) {
+ return String.fromCharCode(parseInt(m.substr(1), '16'));
+ });
+}
+
function getLabelIds(labels) {
return labels.map(function(label) { return label.ident });
}