UNPKG

838 BJavaScriptView Raw
1var falafel = require('../');
2var test = require('tape');
3
4test('for loop', function (t) {
5 t.plan(7);
6
7 var src = '(function () {'
8 + 'var sum = 0;'
9 + 'for (var i = 0; i < 10; i++)'
10 + 'sum += i;'
11 + 'if (true)'
12 + 'for (var i = 0; i < 10; i++)'
13 + 'sum += i;'
14 + 'return sum;'
15 + '})()';
16
17 var output = falafel(src, function (node) {
18 if (node.type === 'ForStatement') {
19 t.equal(node.update.source(), 'i++');
20 t.equal(node.update.type, "UpdateExpression");
21 node.update.update('i+=2');
22 }
23 if (node.type === 'UpdateExpression') {
24 t.equal(node.source(), 'i++');
25 }
26 });
27
28 var res = Function('return ' + output)();
29 t.equal(res, 2 + 4 + 6 + 8 + 2 + 4 + 6 + 8);
30});