Which may or may not be perceptible, and I can't pick it up in the
profiler because it is too noisy.
): Array<number> {
let result = [];
let carry = 0;
- for (let i = 0; i < aDigits.length || i < bDigits.length || carry; i++) {
- const aDigit = i < aDigits.length ? aDigits[i] : 0;
- const bDigit = i < bDigits.length ? bDigits[i] : 0;
+ let aLength = aDigits.length;
+ let bLength = bDigits.length;
+ for (
+ let i = 0, max = Math.max(aLength, bLength);
+ carry || i < max;
+ i++
+ ) {
+ const aDigit = i < aLength ? aDigits[i] : 0;
+ const bDigit = i < bLength ? bDigits[i] : 0;
const sum = aDigit + bDigit + carry;
result.push(sum % base);