diff options
-rw-r--r-- | src/parseTools.js | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/src/parseTools.js b/src/parseTools.js index fad414ed..da4c4352 100644 --- a/src/parseTools.js +++ b/src/parseTools.js @@ -592,10 +592,15 @@ function parseI64Constant(str) { for (var i = 0; i < v.length; i++) { v[i] -= w[i]; if (v[i] < 0) { - assert(i-1 >= 0); - assert(v[i-1] > 0); - v[i-1]--; v[i] += 10; + // find something to take from + var j = i-1; + while (v[j] == 0) { + v[j] = 9; + j--; + assert(j >= 0); + } + v[j]--; } } } |