Spaces:
Sleeping
Sleeping
| var jsp = require("./parse-js"), | |
| pro = require("./process"), | |
| slice = jsp.slice, | |
| member = jsp.member, | |
| PRECEDENCE = jsp.PRECEDENCE, | |
| OPERATORS = jsp.OPERATORS; | |
| function ast_squeeze_more(ast) { | |
| var w = pro.ast_walker(), walk = w.walk; | |
| return w.with_walkers({ | |
| "call": function(expr, args) { | |
| if (expr[0] == "dot" && expr[2] == "toString" && args.length == 0) { | |
| // foo.toString() ==> foo+"" | |
| return [ "binary", "+", expr[1], [ "string", "" ]]; | |
| } | |
| } | |
| }, function() { | |
| return walk(ast); | |
| }); | |
| }; | |
| exports.ast_squeeze_more = ast_squeeze_more; | |