X-Git-Url: http://git.asbjorn.biz/?p=jquery.git;a=blobdiff_plain;f=build%2Flib%2Fsqueeze-more.js;fp=build%2Flib%2Fsqueeze-more.js;h=12380af82c6f60e97ebb84253fe8393dc91940a5;hp=0000000000000000000000000000000000000000;hb=d503845d0cf45632c0d7c3542ffd1b19257a8e5e;hpb=9c76ac4f6d295a5b593048e54b4c4231c092e58a diff --git a/build/lib/squeeze-more.js b/build/lib/squeeze-more.js new file mode 100644 index 0000000..12380af --- /dev/null +++ b/build/lib/squeeze-more.js @@ -0,0 +1,22 @@ +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;