aboutsummaryrefslogtreecommitdiff
path: root/src/parseTools.js
diff options
context:
space:
mode:
Diffstat (limited to 'src/parseTools.js')
-rw-r--r--src/parseTools.js11
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]--;
}
}
}