diff --git a/cli/asc.js b/cli/asc.js index 9b30cac365..f9bd9ff99a 100644 --- a/cli/asc.js +++ b/cli/asc.js @@ -529,7 +529,7 @@ exports.main = function main(argv, options, callback) { transforms = transforms.map(classOrModule => { // Except if it’s a legacy module, just pass it through. if (typeof classOrModule !== "function") { - return classOrModule; + return classOrModule; } Object.assign(classOrModule.prototype, { program, @@ -881,12 +881,20 @@ exports.main = function main(argv, options, callback) { if (opts.trapMode === "clamp") { stats.optimizeCount++; stats.optimizeTime += measure(() => { - module.runPass("trap-mode-clamp"); + try { + module.runPasses(["trap-mode-clamp"]); + } catch (e) { + crash("runPasses", e); + } }); } else if (opts.trapMode === "js") { stats.optimizeCount++; stats.optimizeTime += measure(() => { - module.runPass("trap-mode-js"); + try { + module.runPasses(["trap-mode-js"]); + } catch (e) { + crash("runPasses", e); + } }); } else if (opts.trapMode !== "allow") { module.dispose(); diff --git a/src/module.ts b/src/module.ts index c19ed459f4..1b3283b866 100644 --- a/src/module.ts +++ b/src/module.ts @@ -2191,16 +2191,6 @@ export class Module { binaryen._BinaryenModuleSetFeatures(this.ref, featureFlags); } - runPass(pass: string, func: FunctionRef = 0): void { - var cStr = allocString(pass); - if (func) { - binaryen._BinaryenFunctionRunPasses(func, this.ref, cStr, 1); - } else { - binaryen._BinaryenModuleRunPasses(this.ref, cStr, 1); - } - binaryen._free(cStr); - } - runPasses(passes: string[], func: FunctionRef = 0): void { var numNames = passes.length; var cStrs = new Array(numNames);