diff options
author | Alon Zakai <alonzakai@gmail.com> | 2013-07-02 14:07:06 -0700 |
---|---|---|
committer | Alon Zakai <alonzakai@gmail.com> | 2013-07-03 15:31:05 -0700 |
commit | 1f4e0951b950db2b4474ae40fb9c42c24fdeec68 (patch) | |
tree | fe8caa2907d2582705704c30696880bb6c23bbb3 /tools/js-optimizer.js | |
parent | 4a907afae04289b7c22536a429f0e5adfdb39349 (diff) |
handle multiple F_BASE_.. in relocation
Diffstat (limited to 'tools/js-optimizer.js')
-rw-r--r-- | tools/js-optimizer.js | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/tools/js-optimizer.js b/tools/js-optimizer.js index 0e3a21f3..2c0a2b88 100644 --- a/tools/js-optimizer.js +++ b/tools/js-optimizer.js @@ -2742,8 +2742,9 @@ function relocate(ast) { assert(asm); // we also assume we are normalized var replacements = extraInfo.replacements; - var fBase = extraInfo.fBase; + var fBases = extraInfo.fBases; var hBase = extraInfo.hBase; + var m; traverse(ast, function(node, type) { switch(type) { @@ -2755,10 +2756,10 @@ function relocate(ast) { case 'binary': { if (node[1] == '+' && node[2][0] == 'name') { var base = null; - if (node[2][1] == 'F_BASE') { - base = fBase; - } else if (node[2][1] == 'H_BASE') { + if (node[2][1] == 'H_BASE') { base = hBase; + } else if (m = /^F_BASE_(\w+)$/.exec(node[2][1])) { + base = fBases[m[1]]; } if (base !== null) { var other = node[3]; |