beautify : false,
source_map : null,
bracketize : false,
+ comments : false
}, true);
var indentation = 0;
stream.push_node(self);
if (self.needs_parens(stream)) {
stream.with_parens(function(){
+ self.add_comments(stream);
self.add_source_map(stream);
generator(self, stream);
});
} else {
+ self.add_comments(stream);
self.add_source_map(stream);
generator(self, stream);
}
return s.get();
});
+ /* -----[ comments ]----- */
+
+ AST_Node.DEFMETHOD("add_comments", function(output){
+ var c = output.option("comments"), self = this;
+ if (c) {
+ var start = self.start;
+ if (start && !start._comments_dumped) {
+ start._comments_dumped = true;
+ var comments = start.comments_before;
+ if (c.test) {
+ comments = comments.filter(function(comment){
+ return c.test(comment.value);
+ });
+ } else if (typeof c == "function") {
+ comments = comments.filter(function(comment){
+ return c(self, comment.value, comment.type);
+ });
+ }
+ comments.forEach(function(c){
+ if (c.type == "comment1") {
+ output.print("//" + c.value + "\n");
+ output.indent();
+ }
+ else if (c.type == "comment2") {
+ output.print("/*" + c.value + "*/");
+ if (start.nlb) {
+ output.print("\n");
+ output.indent();
+ } else {
+ output.space();
+ }
+ }
+ });
+ }
+ }
+ });
+
+ /* -----[ PARENTHESES ]----- */
+
function PARENS(nodetype, func) {
nodetype.DEFMETHOD("needs_parens", func);
};
- /* -----[ PARENTHESES ]----- */
-
PARENS(AST_Node, function(){
return false;
});