aboutsummaryrefslogtreecommitdiff
path: root/lib/compilers/pascal.js
diff options
context:
space:
mode:
Diffstat (limited to 'lib/compilers/pascal.js')
-rw-r--r--lib/compilers/pascal.js10
1 files changed, 10 insertions, 0 deletions
diff --git a/lib/compilers/pascal.js b/lib/compilers/pascal.js
index 499be4cb5..862825378 100644
--- a/lib/compilers/pascal.js
+++ b/lib/compilers/pascal.js
@@ -218,10 +218,15 @@ function compileFPC(info, env) {
compiler.supportsOptOutput = false;
var originalExecBinary = compiler.execBinary;
+ var currentlyActiveFilters = {};
compiler.postProcessAsm = function (result) {
if (!result.okToCache) return result;
+ if (currentlyActiveFilters.binary) {
+ preProcessAsm(result.asm);
+ }
+
demangler.buildOrderedCache();
for (var j = 0; j < result.asm.length; ++j)
@@ -237,6 +242,7 @@ function compileFPC(info, env) {
options = options.concat(this.compiler.intelAsm.split(" "));
}
+ currentlyActiveFilters = filters;
filters.preProcessLines = preProcessLines;
return options;
@@ -309,6 +315,10 @@ function compileFPC(info, env) {
return asmLines;
};
+ var preProcessAsm = function(asm) {
+ for (var j = 0; j < asm.length; ++j) demangler.addDemangleToCache(asm[j].text);
+ };
+
compiler.objdump = function (outputFilename, result, maxSize, intelAsm, demangle) {
outputFilename = path.join(path.dirname(outputFilename), "prog");