記錄一個加法的函數


壓縮後

1
function add(a,b){var c,d;do c=a^b,d=(a&b)<<1,a=c,b=d;while(0!=d);return c}

壓縮前

1
2
3
4
5
6
7
8
9
10
11
12
13
function add(a, b) {
var sum, tmp;

do {
sum = a ^ b;
tmp = (a & b) << 1;

a = sum;
b = tmp;
}while(tmp != 0);

return sum;
}

測試

1
2
3
4
5
6
7
8
var assert = require('assert');

assert.equal(add(1, 2), 3);
assert.equal(add(1, 99), 100);
assert.equal(add(1, 100), 101);
assert.equal(add(1, 2345), 2346);
assert.equal(add(1, 9990), 9991);
assert.equal(add(1, 9999), 10000);