From c715cec68f4c965ca443669fcf48eecfa70b52d8 Mon Sep 17 00:00:00 2001 From: Alon Zakai Date: Fri, 8 Nov 2013 14:54:18 -0800 Subject: invalidate calls on conditionals in js optimizer, to avoid eliminating into a non-executing code path --- tools/js-optimizer.js | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'tools/js-optimizer.js') diff --git a/tools/js-optimizer.js b/tools/js-optimizer.js index 022bdf47..36244298 100644 --- a/tools/js-optimizer.js +++ b/tools/js-optimizer.js @@ -2485,6 +2485,10 @@ function eliminate(ast, memSafe) { } else if (type === 'return') { if (node[1]) traverseInOrder(node[1]); } else if (type === 'conditional') { + if (!callsInvalidated) { // invalidate calls, since we cannot eliminate them into a branch of an LLVM select/JS conditional that does not execute + invalidateCalls(); + callsInvalidated = true; + } traverseInOrder(node[1]); traverseInOrder(node[2]); traverseInOrder(node[3]); -- cgit v1.2.3-18-g5258