diff options
author | Alon Zakai <alonzakai@gmail.com> | 2012-03-01 15:52:07 -0800 |
---|---|---|
committer | Alon Zakai <alonzakai@gmail.com> | 2012-03-01 15:52:07 -0800 |
commit | 894fa8a25adf98d1788988750b6bef786ec4e994 (patch) | |
tree | db9d44e7bf01cdcbe497dbef79cceadb98af2482 /tools/js-optimizer.js | |
parent | 02025b593267807bdf2d0a1f0809a2809e0d6153 (diff) |
clean up optimizeShiftsAggressive a little
Diffstat (limited to 'tools/js-optimizer.js')
-rw-r--r-- | tools/js-optimizer.js | 14 |
1 files changed, 4 insertions, 10 deletions
diff --git a/tools/js-optimizer.js b/tools/js-optimizer.js index 6a7cc6a6..213e2257 100644 --- a/tools/js-optimizer.js +++ b/tools/js-optimizer.js @@ -581,16 +581,10 @@ function optimizeShiftsInternal(ast, conservative) { var name = node[2][1]; var data = vars[name]; var parent = stack[stack.length-3]; - var parentIndex; - if (parent[0] == 'defun') { - parentIndex = 3; - } else if (parent[0] == 'block') { - parentIndex = 1; - } else { - throw 'Invalid parent for assign-shift: ' + dump(parent); - } - var i = parent[parentIndex].indexOf(stack[stack.length-2]); - parent[parentIndex].splice(i+1, 0, ['stat', ['assign', true, ['name', name + '$s' + data.primaryShift], ['binary', '>>', ['name', name, true], ['num', data.primaryShift]]]]); + var statements = getStatements(parent); + assert(statements, 'Invalid parent for assign-shift: ' + dump(parent)); + var i = statements.indexOf(stack[stack.length-2]); + statements.splice(i+1, 0, ['stat', ['assign', true, ['name', name + '$s' + data.primaryShift], ['binary', '>>', ['name', name, true], ['num', data.primaryShift]]]]); } else if (node[0] == 'var') { var args = node[1]; for (var i = 0; i < args.length; i++) { |