0af5b6da6c59451ef3baa89f57c5dd3ae20baa23
[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 TryStatement(node) {
8   var finalizer = node.finalizer;
9   if (finalizer) {
10     var finallyKeyword = _tk.findPrev(finalizer.startToken, 'finally');
11     _limit.around(finallyKeyword, 'FinallyKeyword');
12     _limit.around(finalizer.startToken, 'FinallyOpeningBrace');
13     _limit.around(finalizer.endToken, 'FinallyClosingBrace');
14
15     if (!finalizer.body.length && !containsCommentsInside(finalizer)) {
16       // XXX: empty body, so we should remove all white spaces
17       _tk.removeEmptyInBetween(finalizer.startToken, finalizer.endToken);
18     }
19   }
20
21   // CatchClause is handled by its own hook
22
23   _limit.around(node.startToken, 'TryKeyword');
24   _limit.around(node.block.startToken, 'TryOpeningBrace');
25   _limit.around(node.block.endToken, 'TryClosingBrace');
26 };
27
28
29 function containsCommentsInside(node) {
30   return !!_tk.findInBetween(node.startToken, node.endToken, _tk.isComment);
31 }
32
33
34 exports.getIndentEdges = function(node) {
35   var edges = [node.block];
36
37   if (node.finalizer) {
38     edges.push(node.finalizer);
39   }
40
41   // CatchClause is handled by it's own node (automatically)
42
43   return edges;
44 };