/* automatically generated by JSCoverage - do not edit */
if (typeof _$jscoverage === 'undefined') _$jscoverage = {};
if (! _$jscoverage['uglify/squeeze-more.js']) {
  _$jscoverage['uglify/squeeze-more.js'] = [];
  _$jscoverage['uglify/squeeze-more.js'][1] = 0;
  _$jscoverage['uglify/squeeze-more.js'][10] = 0;
  _$jscoverage['uglify/squeeze-more.js'][11] = 0;
  _$jscoverage['uglify/squeeze-more.js'][12] = 0;
  _$jscoverage['uglify/squeeze-more.js'][13] = 0;
  _$jscoverage['uglify/squeeze-more.js'][14] = 0;
  _$jscoverage['uglify/squeeze-more.js'][15] = 0;
  _$jscoverage['uglify/squeeze-more.js'][16] = 0;
  _$jscoverage['uglify/squeeze-more.js'][17] = 0;
  _$jscoverage['uglify/squeeze-more.js'][18] = 0;
  _$jscoverage['uglify/squeeze-more.js'][19] = 0;
  _$jscoverage['uglify/squeeze-more.js'][20] = 0;
  _$jscoverage['uglify/squeeze-more.js'][21] = 0;
  _$jscoverage['uglify/squeeze-more.js'][22] = 0;
  _$jscoverage['uglify/squeeze-more.js'][24] = 0;
  _$jscoverage['uglify/squeeze-more.js'][29] = 0;
  _$jscoverage['uglify/squeeze-more.js'][30] = 0;
  _$jscoverage['uglify/squeeze-more.js'][31] = 0;
  _$jscoverage['uglify/squeeze-more.js'][32] = 0;
  _$jscoverage['uglify/squeeze-more.js'][34] = 0;
  _$jscoverage['uglify/squeeze-more.js'][36] = 0;
  _$jscoverage['uglify/squeeze-more.js'][37] = 0;
  _$jscoverage['uglify/squeeze-more.js'][38] = 0;
  _$jscoverage['uglify/squeeze-more.js'][40] = 0;
  _$jscoverage['uglify/squeeze-more.js'][42] = 0;
  _$jscoverage['uglify/squeeze-more.js'][43] = 0;
  _$jscoverage['uglify/squeeze-more.js'][48] = 0;
  _$jscoverage['uglify/squeeze-more.js'][50] = 0;
  _$jscoverage['uglify/squeeze-more.js'][52] = 0;
  _$jscoverage['uglify/squeeze-more.js'][54] = 0;
  _$jscoverage['uglify/squeeze-more.js'][55] = 0;
  _$jscoverage['uglify/squeeze-more.js'][57] = 0;
  _$jscoverage['uglify/squeeze-more.js'][58] = 0;
  _$jscoverage['uglify/squeeze-more.js'][59] = 0;
  _$jscoverage['uglify/squeeze-more.js'][61] = 0;
  _$jscoverage['uglify/squeeze-more.js'][62] = 0;
  _$jscoverage['uglify/squeeze-more.js'][64] = 0;
  _$jscoverage['uglify/squeeze-more.js'][65] = 0;
  _$jscoverage['uglify/squeeze-more.js'][70] = 0;
  _$jscoverage['uglify/squeeze-more.js'][72] = 0;
  _$jscoverage['uglify/squeeze-more.js'][74] = 0;
}
_$jscoverage['uglify/squeeze-more.js'][1]++;
var jsp = require("./parse-js"), pro = require("./process"), slice = jsp.slice, member = jsp.member, curry = jsp.curry, MAP = pro.MAP, PRECEDENCE = jsp.PRECEDENCE, OPERATORS = jsp.OPERATORS;
_$jscoverage['uglify/squeeze-more.js'][10]++;
function ast_squeeze_more(ast) {
  _$jscoverage['uglify/squeeze-more.js'][11]++;
  var w = pro.ast_walker(), walk = w.walk, scope;
  _$jscoverage['uglify/squeeze-more.js'][12]++;
  function with_scope(s, cont) {
    _$jscoverage['uglify/squeeze-more.js'][13]++;
    var save = scope, ret;
    _$jscoverage['uglify/squeeze-more.js'][14]++;
    scope = s;
    _$jscoverage['uglify/squeeze-more.js'][15]++;
    ret = cont();
    _$jscoverage['uglify/squeeze-more.js'][16]++;
    scope = save;
    _$jscoverage['uglify/squeeze-more.js'][17]++;
    return ret;
}
  _$jscoverage['uglify/squeeze-more.js'][18]++;
  ;
  _$jscoverage['uglify/squeeze-more.js'][19]++;
  function _lambda(name, args, body) {
    _$jscoverage['uglify/squeeze-more.js'][20]++;
    return [this[0], name, args, with_scope(body.scope, curry(MAP, body, walk))];
}
  _$jscoverage['uglify/squeeze-more.js'][21]++;
  ;
  _$jscoverage['uglify/squeeze-more.js'][22]++;
  return w.with_walkers({"toplevel": (function (body) {
  _$jscoverage['uglify/squeeze-more.js'][24]++;
  return [this[0], with_scope(this.scope, curry(MAP, body, walk))];
}), "function": _lambda, "defun": _lambda, "new": (function (ctor, args) {
  _$jscoverage['uglify/squeeze-more.js'][29]++;
  if (ctor[0] == "name") {
    _$jscoverage['uglify/squeeze-more.js'][30]++;
    if (ctor[1] == "Array" && ! scope.has("Array")) {
      _$jscoverage['uglify/squeeze-more.js'][31]++;
      if (args.length != 1) {
        _$jscoverage['uglify/squeeze-more.js'][32]++;
        return ["array", args];
      }
      else {
        _$jscoverage['uglify/squeeze-more.js'][34]++;
        return walk(["call", ["name", "Array"], args]);
      }
    }
    else {
      _$jscoverage['uglify/squeeze-more.js'][36]++;
      if (ctor[1] == "Object" && ! scope.has("Object")) {
        _$jscoverage['uglify/squeeze-more.js'][37]++;
        if (! args.length) {
          _$jscoverage['uglify/squeeze-more.js'][38]++;
          return ["object", []];
        }
        else {
          _$jscoverage['uglify/squeeze-more.js'][40]++;
          return walk(["call", ["name", "Object"], args]);
        }
      }
      else {
        _$jscoverage['uglify/squeeze-more.js'][42]++;
        if ((ctor[1] == "RegExp" || ctor[1] == "Function" || ctor[1] == "Error") && ! scope.has(ctor[1])) {
          _$jscoverage['uglify/squeeze-more.js'][43]++;
          return walk(["call", ["name", ctor[1]], args]);
        }
      }
    }
  }
}), "call": (function (expr, args) {
  _$jscoverage['uglify/squeeze-more.js'][48]++;
  if (expr[0] == "dot" && expr[1][0] == "string" && args.length == 1 && (args[0][1] > 0 && expr[2] == "substring" || expr[2] == "substr")) {
    _$jscoverage['uglify/squeeze-more.js'][50]++;
    return ["call", ["dot", expr[1], "slice"], args];
  }
  _$jscoverage['uglify/squeeze-more.js'][52]++;
  if (expr[0] == "dot" && expr[2] == "toString" && args.length == 0) {
    _$jscoverage['uglify/squeeze-more.js'][54]++;
    if (expr[1][0] == "string") {
      _$jscoverage['uglify/squeeze-more.js'][54]++;
      return expr[1];
    }
    _$jscoverage['uglify/squeeze-more.js'][55]++;
    return ["binary", "+", expr[1], ["string", ""]];
  }
  _$jscoverage['uglify/squeeze-more.js'][57]++;
  if (expr[0] == "name") {
    _$jscoverage['uglify/squeeze-more.js'][58]++;
    if (expr[1] == "Array" && args.length != 1 && ! scope.has("Array")) {
      _$jscoverage['uglify/squeeze-more.js'][59]++;
      return ["array", args];
    }
    _$jscoverage['uglify/squeeze-more.js'][61]++;
    if (expr[1] == "Object" && ! args.length && ! scope.has("Object")) {
      _$jscoverage['uglify/squeeze-more.js'][62]++;
      return ["object", []];
    }
    _$jscoverage['uglify/squeeze-more.js'][64]++;
    if (expr[1] == "String" && ! scope.has("String")) {
      _$jscoverage['uglify/squeeze-more.js'][65]++;
      return ["binary", "+", args[0], ["string", ""]];
    }
  }
})}, (function () {
  _$jscoverage['uglify/squeeze-more.js'][70]++;
  return walk(pro.ast_add_scope(ast));
}));
}
_$jscoverage['uglify/squeeze-more.js'][72]++;
;
_$jscoverage['uglify/squeeze-more.js'][74]++;
exports.ast_squeeze_more = ast_squeeze_more;
_$jscoverage['uglify/squeeze-more.js'].source = ["var jsp = require(\"./parse-js\"),","    pro = require(\"./process\"),","    slice = jsp.slice,","    member = jsp.member,","    curry = jsp.curry,","    MAP = pro.MAP,","    PRECEDENCE = jsp.PRECEDENCE,","    OPERATORS = jsp.OPERATORS;","","function ast_squeeze_more(ast) {","    var w = pro.ast_walker(), walk = w.walk, scope;","    function with_scope(s, cont) {","        var save = scope, ret;","        scope = s;","        ret = cont();","        scope = save;","        return ret;","    };","    function _lambda(name, args, body) {","        return [ this[0], name, args, with_scope(body.scope, curry(MAP, body, walk)) ];","    };","    return w.with_walkers({","        \"toplevel\": function(body) {","            return [ this[0], with_scope(this.scope, curry(MAP, body, walk)) ];","        },","        \"function\": _lambda,","        \"defun\": _lambda,","        \"new\": function(ctor, args) {","            if (ctor[0] == \"name\") {","                if (ctor[1] == \"Array\" &amp;&amp; !scope.has(\"Array\")) {","                    if (args.length != 1) {","                        return [ \"array\", args ];","                    } else {","                        return walk([ \"call\", [ \"name\", \"Array\" ], args ]);","                    }","                } else if (ctor[1] == \"Object\" &amp;&amp; !scope.has(\"Object\")) {","                    if (!args.length) {","                        return [ \"object\", [] ];","                    } else {","                        return walk([ \"call\", [ \"name\", \"Object\" ], args ]);","                    }","                } else if ((ctor[1] == \"RegExp\" || ctor[1] == \"Function\" || ctor[1] == \"Error\") &amp;&amp; !scope.has(ctor[1])) {","                    return walk([ \"call\", [ \"name\", ctor[1] ], args]);","                }","            }","        },","        \"call\": function(expr, args) {","            if (expr[0] == \"dot\" &amp;&amp; expr[1][0] == \"string\" &amp;&amp; args.length == 1","                &amp;&amp; (args[0][1] &gt; 0 &amp;&amp; expr[2] == \"substring\" || expr[2] == \"substr\")) {","                return [ \"call\", [ \"dot\", expr[1], \"slice\"], args];","            }","            if (expr[0] == \"dot\" &amp;&amp; expr[2] == \"toString\" &amp;&amp; args.length == 0) {","                // foo.toString()  ==&gt;  foo+\"\"","                if (expr[1][0] == \"string\") return expr[1];","                return [ \"binary\", \"+\", expr[1], [ \"string\", \"\" ]];","            }","            if (expr[0] == \"name\") {","                if (expr[1] == \"Array\" &amp;&amp; args.length != 1 &amp;&amp; !scope.has(\"Array\")) {","                    return [ \"array\", args ];","                }","                if (expr[1] == \"Object\" &amp;&amp; !args.length &amp;&amp; !scope.has(\"Object\")) {","                    return [ \"object\", [] ];","                }","                if (expr[1] == \"String\" &amp;&amp; !scope.has(\"String\")) {","                    return [ \"binary\", \"+\", args[0], [ \"string\", \"\" ]];","                }","            }","        }","    }, function() {","        return walk(pro.ast_add_scope(ast));","    });","};","","exports.ast_squeeze_more = ast_squeeze_more;","","// Local variables:","// js-indent-level: 4","// End:"];
