9f20f7e656069c71056cbb94986b8260f4474954
[platform/framework/web/crosswalk-tizen.git] /
1 "use strict";
2
3 var _tk = require('rocambole-token');
4 var _limit = require('../limit');
5
6
7 exports.format = function WhileStatement(node) {
8   var conditionalStart = _tk.findNext(node.startToken, '(');
9   var conditionalEnd = _tk.findPrev(node.body.startToken, ')');
10
11   _limit.around(conditionalStart, 'WhileStatementConditionalOpening');
12
13   if (node.body.type === 'BlockStatement') {
14     var bodyStart = node.body.startToken;
15     var bodyEnd = node.body.endToken;
16     _limit.around(bodyStart, 'WhileStatementOpeningBrace');
17     _limit.around(bodyEnd, 'WhileStatementClosingBrace');
18     _limit.around(conditionalEnd, 'WhileStatementConditionalClosing');
19   } else {
20     var next = _tk.findNextNonEmpty(conditionalEnd);
21     _limit.before(conditionalEnd, 'WhileStatementConditionalClosing');
22     if (_tk.isSemiColon(next)) {
23       _limit.after(conditionalEnd, 0);
24     } else {
25       _limit.after(conditionalEnd, 'WhileStatementConditionalClosing');
26     }
27   }
28 };
29
30
31 exports.getIndentEdges = function(node) {
32   var edges = [
33     {
34       startToken: _tk.findNext(node.startToken, '('),
35       endToken: _tk.findPrev(node.body.startToken, ')')
36     }
37   ];
38
39   if (node.body.type !== 'EmptyStatement') {
40     edges.push(node.body);
41   }
42
43   return edges;
44 };