1 | var falafel = require('../');
|
2 | var test = require('tape');
|
3 |
|
4 | test('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 | });
|