all files / src/ emojiProcessor.js

95.09% Statements 213/224
75% Branches 18/24
96.67% Functions 29/30
95.45% Lines 210/220
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300       46×                       46× 46× 46× 46× 46× 46×         38× 38× 38×                     74× 74× 74× 74× 166× 166× 166×   74× 74× 90× 90× 90×   74× 74× 90× 90× 90×       39× 39× 39×     35× 35× 35×     33× 33× 33× 33× 76× 76× 76×             33× 33× 33× 33× 33× 33× 33× 33×   31× 31×   33× 33×   31× 31×   33× 33×     30× 30× 30× 30× 30× 68× 68× 68× 68× 68× 68× 35× 35× 35×   33× 33×   33× 33× 38× 38× 38×   33× 33×     30× 30×     34× 34× 34× 34× 34× 34× 34× 34× 34× 34×     33× 33× 33× 33×     30× 30×   30× 30× 30× 30× 30× 30× 30× 30× 30× 30× 30× 30× 30×                         30× 30×         84× 84× 84× 84× 84× 84× 41× 41× 41× 41× 41× 41× 49× 49× 49×     41× 41×   43× 43× 43×                    
Iif (typeof _$jscoverage === 'undefined') _$jscoverage = {};
(function(_export) {
    Iif (typeof _export._$jscoverage === 'undefined') {
        _export._$jscoverage = _$jscoverage;
    }
})(typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : this);
Eif (! _$jscoverage["/Users/ikatz/Development/non-wayfair/macramoji/src/emojiProcessor.coffee"]) { _$jscoverage["/Users/ikatz/Development/non-wayfair/macramoji/src/emojiProcessor.coffee"] = {"path":"/Users/ikatz/Development/non-wayfair/macramoji/src/emojiProcessor.coffee","s":{"1":0,"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0},"b":{"1":[0,0],"2":[0,0],"3":[0,0],"4":[0,0],"5":[0,0],"6":[0,0],"7":[0,0]},"f":{"1":0,"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0},"fnMap":{"1":{"name":"EmojiProcessor","line":6,"loc":{"start":{"line":6,"column":0},"end":{"line":117,"column":9}},"decl":{"start":{"line":6,"column":6},"end":{"line":6,"column":19}}},"2":{"name":"constructor","line":8,"loc":{"start":{"line":8,"column":15},"end":{"line":9,"column":23}},"decl":{"start":{"line":8,"column":2},"end":{"line":8,"column":39}}},"3":{"name":"parser","line":11,"loc":{"start":{"line":11,"column":10},"end":{"line":12,"column":14}},"decl":{"start":{"line":11,"column":2},"end":{"line":11,"column":11}}},"4":{"name":"parse","line":14,"loc":{"start":{"line":14,"column":9},"end":{"line":15,"column":24}},"decl":{"start":{"line":14,"column":2},"end":{"line":14,"column":16}}},"5":{"name":"parseable","line":17,"loc":{"start":{"line":17,"column":13},"end":{"line":22,"column":10}},"decl":{"start":{"line":17,"column":2},"end":{"line":17,"column":20}}},"6":{"name":"addMacro","line":24,"loc":{"start":{"line":24,"column":12},"end":{"line":29,"column":9}},"decl":{"start":{"line":24,"column":2},"end":{"line":24,"column":24}}},"7":{"name":"invalidAnything","line":35,"loc":{"start":{"line":35,"column":19},"end":{"line":38,"column":38}},"decl":{"start":{"line":35,"column":2},"end":{"line":35,"column":52}}},"8":{"name":"(anonymous_1)","line":36,"loc":{"start":{"line":36,"column":37},"end":{"line":36,"column":65}},"decl":{"start":{"line":36,"column":37},"end":{"line":36,"column":42}}},"9":{"name":"(anonymous_2)","line":37,"loc":{"start":{"line":37,"column":31},"end":{"line":37,"column":43}},"decl":{"start":{"line":37,"column":31},"end":{"line":37,"column":36}}},"10":{"name":"(anonymous_3)","line":38,"loc":{"start":{"line":38,"column":17},"end":{"line":38,"column":38}},"decl":{"start":{"line":38,"column":17},"end":{"line":38,"column":22}}},"11":{"name":"invalidFunkNames","line":40,"loc":{"start":{"line":40,"column":20},"end":{"line":41,"column":45}},"decl":{"start":{"line":40,"column":2},"end":{"line":40,"column":32}}},"12":{"name":"invalidEmojiNames","line":43,"loc":{"start":{"line":43,"column":21},"end":{"line":44,"column":51}},"decl":{"start":{"line":43,"column":2},"end":{"line":43,"column":47}}},"13":{"name":"entityProblems","line":47,"loc":{"start":{"line":47,"column":18},"end":{"line":63,"column":7}},"decl":{"start":{"line":47,"column":2},"end":{"line":47,"column":31}}},"14":{"name":"(anonymous_4)","line":48,"loc":{"start":{"line":48,"column":38},"end":{"line":52,"column":7}},"decl":{"start":{"line":48,"column":38},"end":{"line":48,"column":51}}},"15":{"name":"prepare","line":68,"loc":{"start":{"line":68,"column":11},"end":{"line":77,"column":25}},"decl":{"start":{"line":68,"column":2},"end":{"line":68,"column":24}}},"16":{"name":"prep_helper","line":70,"loc":{"start":{"line":70,"column":18},"end":{"line":76,"column":62}},"decl":{"start":{"line":70,"column":4},"end":{"line":70,"column":26}}},"17":{"name":"(anonymous_5)","line":75,"loc":{"start":{"line":75,"column":27},"end":{"line":75,"column":47}},"decl":{"start":{"line":75,"column":27},"end":{"line":75,"column":32}}},"18":{"name":"process","line":84,"loc":{"start":{"line":84,"column":11},"end":{"line":107,"column":27}},"decl":{"start":{"line":84,"column":2},"end":{"line":84,"column":35}}},"19":{"name":"(anonymous_6)","line":95,"loc":{"start":{"line":95,"column":28},"end":{"line":95,"column":45}},"decl":{"start":{"line":95,"column":28},"end":{"line":95,"column":33}}},"20":{"name":"(anonymous_7)","line":100,"loc":{"start":{"line":100,"column":21},"end":{"line":107,"column":27}},"decl":{"start":{"line":100,"column":21},"end":{"line":100,"column":34}}},"21":{"name":"(anonymous_8)","line":105,"loc":{"start":{"line":105,"column":48},"end":{"line":105,"column":65}},"decl":{"start":{"line":105,"column":48},"end":{"line":105,"column":53}}},"22":{"name":"reduce","line":109,"loc":{"start":{"line":109,"column":10},"end":{"line":117,"column":9}},"decl":{"start":{"line":109,"column":2},"end":{"line":109,"column":36}}},"23":{"name":"tmp","line":113,"loc":{"start":{"line":113,"column":12},"end":{"line":114,"column":36}},"decl":{"start":{"line":113,"column":6},"end":{"line":113,"column":29}}}},"statementMap":{"1":{"start":{"line":1,"column":0},"end":{"line":1,"column":33}},"2":{"start":{"line":2,"column":0},"end":{"line":2,"column":35}},"3":{"start":{"line":3,"column":0},"end":{"line":3,"column":38}},"4":{"start":{"line":4,"column":0},"end":{"line":4,"column":40}},"5":{"start":{"line":6,"column":0},"end":{"line":117,"column":9}},"6":{"start":{"line":9,"column":4},"end":{"line":9,"column":23}},"7":{"start":{"line":12,"column":4},"end":{"line":12,"column":14}},"8":{"start":{"line":15,"column":4},"end":{"line":15,"column":24}},"9":{"start":{"line":18,"column":4},"end":{"line":22,"column":10}},"10":{"start":{"line":19,"column":6},"end":{"line":19,"column":15}},"11":{"start":{"line":20,"column":6},"end":{"line":20,"column":9}},"12":{"start":{"line":22,"column":6},"end":{"line":22,"column":10}},"13":{"start":{"line":25,"column":4},"end":{"line":28,"column":23}},"14":{"start":{"line":26,"column":6},"end":{"line":26,"column":10}},"15":{"start":{"line":28,"column":6},"end":{"line":28,"column":23}},"16":{"start":{"line":29,"column":6},"end":{"line":29,"column":9}},"17":{"start":{"line":36,"column":4},"end":{"line":36,"column":65}},"18":{"start":{"line":36,"column":44},"end":{"line":36,"column":65}},"19":{"start":{"line":37,"column":4},"end":{"line":37,"column":43}},"20":{"start":{"line":37,"column":38},"end":{"line":37,"column":38}},"21":{"start":{"line":38,"column":4},"end":{"line":38,"column":38}},"22":{"start":{"line":38,"column":24},"end":{"line":38,"column":38}},"23":{"start":{"line":38,"column":26},"end":{"line":38,"column":37}},"24":{"start":{"line":41,"column":4},"end":{"line":41,"column":45}},"25":{"start":{"line":44,"column":4},"end":{"line":44,"column":51}},"26":{"start":{"line":48,"column":4},"end":{"line":52,"column":7}},"27":{"start":{"line":49,"column":6},"end":{"line":52,"column":7}},"28":{"start":{"line":54,"column":4},"end":{"line":54,"column":41}},"29":{"start":{"line":55,"column":4},"end":{"line":55,"column":63}},"30":{"start":{"line":57,"column":4},"end":{"line":57,"column":12}},"31":{"start":{"line":58,"column":4},"end":{"line":59,"column":63}},"32":{"start":{"line":59,"column":6},"end":{"line":59,"column":63}},"33":{"start":{"line":59,"column":16},"end":{"line":59,"column":62}},"34":{"start":{"line":59,"column":43},"end":{"line":59,"column":61}},"35":{"start":{"line":60,"column":4},"end":{"line":61,"column":60}},"36":{"start":{"line":61,"column":6},"end":{"line":61,"column":60}},"37":{"start":{"line":61,"column":16},"end":{"line":61,"column":59}},"38":{"start":{"line":61,"column":40},"end":{"line":61,"column":58}},"39":{"start":{"line":63,"column":4},"end":{"line":63,"column":7}},"40":{"start":{"line":70,"column":4},"end":{"line":76,"column":62}},"41":{"start":{"line":71,"column":6},"end":{"line":71,"column":38}},"42":{"start":{"line":72,"column":6},"end":{"line":73,"column":73}},"43":{"start":{"line":73,"column":8},"end":{"line":73,"column":73}},"44":{"start":{"line":75,"column":6},"end":{"line":75,"column":47}},"45":{"start":{"line":75,"column":34},"end":{"line":75,"column":47}},"46":{"start":{"line":76,"column":6},"end":{"line":76,"column":62}},"47":{"start":{"line":77,"column":4},"end":{"line":77,"column":25}},"48":{"start":{"line":85,"column":4},"end":{"line":85,"column":26}},"49":{"start":{"line":86,"column":4},"end":{"line":86,"column":19}},"50":{"start":{"line":87,"column":4},"end":{"line":91,"column":27}},"51":{"start":{"line":88,"column":6},"end":{"line":88,"column":32}},"52":{"start":{"line":90,"column":6},"end":{"line":90,"column":80}},"53":{"start":{"line":90,"column":21},"end":{"line":90,"column":80}},"54":{"start":{"line":90,"column":42},"end":{"line":90,"column":49}},"55":{"start":{"line":90,"column":73},"end":{"line":90,"column":75}},"56":{"start":{"line":91,"column":6},"end":{"line":91,"column":27}},"57":{"start":{"line":93,"column":4},"end":{"line":93,"column":37}},"58":{"start":{"line":94,"column":4},"end":{"line":97,"column":27}},"59":{"start":{"line":95,"column":6},"end":{"line":95,"column":55}},"60":{"start":{"line":95,"column":18},"end":{"line":95,"column":45}},"61":{"start":{"line":95,"column":35},"end":{"line":95,"column":45}},"62":{"start":{"line":95,"column":35},"end":{"line":95,"column":44}},"63":{"start":{"line":95,"column":43},"end":{"line":95,"column":43}},"64":{"start":{"line":96,"column":6},"end":{"line":96,"column":75}},"65":{"start":{"line":96,"column":21},"end":{"line":96,"column":74}},"66":{"start":{"line":96,"column":53},"end":{"line":96,"column":60}},"67":{"start":{"line":96,"column":66},"end":{"line":96,"column":73}},"68":{"start":{"line":97,"column":6},"end":{"line":97,"column":27}},"69":{"start":{"line":99,"column":4},"end":{"line":99,"column":33}},"70":{"start":{"line":100,"column":4},"end":{"line":107,"column":27}},"71":{"start":{"line":101,"column":6},"end":{"line":101,"column":29}},"72":{"start":{"line":102,"column":6},"end":{"line":105,"column":75}},"73":{"start":{"line":103,"column":8},"end":{"line":103,"column":67}},"74":{"start":{"line":105,"column":8},"end":{"line":105,"column":75}},"75":{"start":{"line":105,"column":20},"end":{"line":105,"column":65}},"76":{"start":{"line":105,"column":55},"end":{"line":105,"column":65}},"77":{"start":{"line":105,"column":55},"end":{"line":105,"column":64}},"78":{"start":{"line":105,"column":63},"end":{"line":105,"column":63}},"79":{"start":{"line":106,"column":8},"end":{"line":106,"column":92}},"80":{"start":{"line":106,"column":23},"end":{"line":106,"column":90}},"81":{"start":{"line":106,"column":38},"end":{"line":106,"column":45}},"82":{"start":{"line":106,"column":82},"end":{"line":106,"column":89}},"83":{"start":{"line":107,"column":6},"end":{"line":107,"column":27}},"84":{"start":{"line":110,"column":4},"end":{"line":110,"column":32}},"85":{"start":{"line":111,"column":4},"end":{"line":117,"column":9}},"86":{"start":{"line":112,"column":6},"end":{"line":112,"column":29}},"87":{"start":{"line":113,"column":6},"end":{"line":114,"column":36}},"88":{"start":{"line":114,"column":8},"end":{"line":114,"column":36}},"89":{"start":{"line":115,"column":6},"end":{"line":115,"column":26}},"90":{"start":{"line":117,"column":6},"end":{"line":117,"column":9}},"91":{"start":{"line":119,"column":0},"end":{"line":119,"column":30}}},"branchMap":{"1":{"line":25,"loc":{"start":{"line":25,"column":4},"end":{"line":25,"column":4}},"type":"if","locations":[{"start":{"line":25,"column":4},"end":{"line":25,"column":4}},{"start":{"line":25,"column":4},"end":{"line":25,"column":4}}]},"2":{"line":58,"loc":{"start":{"line":58,"column":4},"end":{"line":58,"column":4}},"type":"if","locations":[{"start":{"line":58,"column":4},"end":{"line":58,"column":4}},{"start":{"line":58,"column":4},"end":{"line":58,"column":4}}]},"3":{"line":60,"loc":{"start":{"line":60,"column":4},"end":{"line":60,"column":4}},"type":"if","locations":[{"start":{"line":60,"column":4},"end":{"line":60,"column":4}},{"start":{"line":60,"column":4},"end":{"line":60,"column":4}}]},"4":{"line":72,"loc":{"start":{"line":72,"column":6},"end":{"line":72,"column":6}},"type":"if","locations":[{"start":{"line":72,"column":6},"end":{"line":72,"column":6}},{"start":{"line":72,"column":6},"end":{"line":72,"column":6}}]},"5":{"line":94,"loc":{"start":{"line":94,"column":4},"end":{"line":94,"column":4}},"type":"if","locations":[{"start":{"line":94,"column":4},"end":{"line":94,"column":4}},{"start":{"line":94,"column":4},"end":{"line":94,"column":4}}]},"6":{"line":102,"loc":{"start":{"line":102,"column":6},"end":{"line":102,"column":6}},"type":"if","locations":[{"start":{"line":102,"column":6},"end":{"line":102,"column":6}},{"start":{"line":102,"column":6},"end":{"line":102,"column":6}}]},"7":{"line":111,"loc":{"start":{"line":111,"column":4},"end":{"line":111,"column":4}},"type":"if","locations":[{"start":{"line":111,"column":4},"end":{"line":111,"column":4}},{"start":{"line":111,"column":4},"end":{"line":111,"column":4}}]}}} }(function() {
  var EmojiProcessor, ImageWorker, SlackResponse, emojiParser, unparser,
    bind = function(fn, me){ return function(){ return fn.apply(me, arguments); }; };
 
  _$jscoverage["/Users/ikatz/Development/non-wayfair/macramoji/src/emojiProcessor.coffee"].s[1]++;
 
  emojiParser = require('./parser');
 
  _$jscoverage["/Users/ikatz/Development/non-wayfair/macramoji/src/emojiProcessor.coffee"].s[2]++;
 
  unparser = require('./unparser');
 
  _$jscoverage["/Users/ikatz/Development/non-wayfair/macramoji/src/emojiProcessor.coffee"].s[3]++;
 
  ImageWorker = require('./imageWorker');
 
  _$jscoverage["/Users/ikatz/Development/non-wayfair/macramoji/src/emojiProcessor.coffee"].s[4]++;
 
  SlackResponse = require('./slackResponse');
 
  _$jscoverage["/Users/ikatz/Development/non-wayfair/macramoji/src/emojiProcessor.coffee"].s[5]++;
 
  EmojiProcessor = (function() {
    _$jscoverage["/Users/ikatz/Development/non-wayfair/macramoji/src/emojiProcessor.coffee"].f[1]++;
 
    function EmojiProcessor(emojiStore, macros) {
      this.emojiStore = emojiStore;
      this.macros = macros;
      this.process = bind(this.process, this);
      _$jscoverage["/Users/ikatz/Development/non-wayfair/macramoji/src/emojiProcessor.coffee"].f[2]++;
      _$jscoverage["/Users/ikatz/Development/non-wayfair/macramoji/src/emojiProcessor.coffee"].s[6]++;
      this.lastWorkTree = null;
    }
 
    EmojiProcessor.prototype.parser = function() {
      _$jscoverage["/Users/ikatz/Development/non-wayfair/macramoji/src/emojiProcessor.coffee"].f[3]++;
      _$jscoverage["/Users/ikatz/Development/non-wayfair/macramoji/src/emojiProcessor.coffee"].s[7]++;
      return emojiParser;
    };
 
    EmojiProcessor.prototype.parse = function(str) {
      _$jscoverage["/Users/ikatz/Development/non-wayfair/macramoji/src/emojiProcessor.coffee"].f[4]++;
      _$jscoverage["/Users/ikatz/Development/non-wayfair/macramoji/src/emojiProcessor.coffee"].s[8]++;
      return emojiParser.parse(str);
    };
 
    EmojiProcessor.prototype.parseable = function(str) {
      var e;
      _$jscoverage["/Users/ikatz/Development/non-wayfair/macramoji/src/emojiProcessor.coffee"].f[5]++;
      _$jscoverage["/Users/ikatz/Development/non-wayfair/macramoji/src/emojiProcessor.coffee"].s[9]++;
      try {
        _$jscoverage["/Users/ikatz/Development/non-wayfair/macramoji/src/emojiProcessor.coffee"].s[10]++;
        this.parse(str);
        _$jscoverage["/Users/ikatz/Development/non-wayfair/macramoji/src/emojiProcessor.coffee"].s[11]++;
        return true;
      } catch (error) {
        e = error;
        _$jscoverage["/Users/ikatz/Development/non-wayfair/macramoji/src/emojiProcessor.coffee"].s[12]++;
        return false;
      }
    };
 
    EmojiProcessor.prototype.addMacro = function(name, fn) {
      _$jscoverage["/Users/ikatz/Development/non-wayfair/macramoji/src/emojiProcessor.coffee"].f[6]++;
      _$jscoverage["/Users/ikatz/Development/non-wayfair/macramoji/src/emojiProcessor.coffee"].s[13]++;
      if (typeof fn !== 'function') {
        _$jscoverage["/Users/ikatz/Development/non-wayfair/macramoji/src/emojiProcessor.coffee"].b[1][0]++;
        _$jscoverage["/Users/ikatz/Development/non-wayfair/macramoji/src/emojiProcessor.coffee"].s[14]++;
        return false;
      } else {
        _$jscoverage["/Users/ikatz/Development/non-wayfair/macramoji/src/emojiProcessor.coffee"].b[1][1]++;
        _$jscoverage["/Users/ikatz/Development/non-wayfair/macramoji/src/emojiProcessor.coffee"].s[15]++;
        this.macros[name] = fn;
        _$jscoverage["/Users/ikatz/Development/non-wayfair/macramoji/src/emojiProcessor.coffee"].s[16]++;
        return true;
      }
    };
 
    EmojiProcessor.prototype.invalidAnything = function(entities, targetType, allowed) {
      var names, onlyTargetType;
      _$jscoverage["/Users/ikatz/Development/non-wayfair/macramoji/src/emojiProcessor.coffee"].f[7]++;
      _$jscoverage["/Users/ikatz/Development/non-wayfair/macramoji/src/emojiProcessor.coffee"].s[17]++;
      onlyTargetType = entities.filter(function(e) {
        _$jscoverage["/Users/ikatz/Development/non-wayfair/macramoji/src/emojiProcessor.coffee"].f[8]++;
        _$jscoverage["/Users/ikatz/Development/non-wayfair/macramoji/src/emojiProcessor.coffee"].s[18]++;
        return e.entity === targetType;
      });
      _$jscoverage["/Users/ikatz/Development/non-wayfair/macramoji/src/emojiProcessor.coffee"].s[19]++;
      names = onlyTargetType.map(function(e) {
        _$jscoverage["/Users/ikatz/Development/non-wayfair/macramoji/src/emojiProcessor.coffee"].f[9]++;
        _$jscoverage["/Users/ikatz/Development/non-wayfair/macramoji/src/emojiProcessor.coffee"].s[20]++;
        return e.name;
      });
      _$jscoverage["/Users/ikatz/Development/non-wayfair/macramoji/src/emojiProcessor.coffee"].s[21]++;
      return names.filter(function(n) {
        _$jscoverage["/Users/ikatz/Development/non-wayfair/macramoji/src/emojiProcessor.coffee"].f[10]++;
        _$jscoverage["/Users/ikatz/Development/non-wayfair/macramoji/src/emojiProcessor.coffee"].s[22]++;
        return !(_$jscoverage["/Users/ikatz/Development/non-wayfair/macramoji/src/emojiProcessor.coffee"].s[23]++, n in allowed);
      });
    };
 
    EmojiProcessor.prototype.invalidFunkNames = function(entities) {
      _$jscoverage["/Users/ikatz/Development/non-wayfair/macramoji/src/emojiProcessor.coffee"].f[11]++;
      _$jscoverage["/Users/ikatz/Development/non-wayfair/macramoji/src/emojiProcessor.coffee"].s[24]++;
      return this.invalidAnything(entities, 'funk', this.macros);
    };
 
    EmojiProcessor.prototype.invalidEmojiNames = function(entities, definedEmoji) {
      _$jscoverage["/Users/ikatz/Development/non-wayfair/macramoji/src/emojiProcessor.coffee"].f[12]++;
      _$jscoverage["/Users/ikatz/Development/non-wayfair/macramoji/src/emojiProcessor.coffee"].s[25]++;
      return this.invalidAnything(entities, 'emoji', definedEmoji);
    };
 
    EmojiProcessor.prototype.entityProblems = function(parseTree) {
      var badEmoji, badFunks, entities, msgs;
      _$jscoverage["/Users/ikatz/Development/non-wayfair/macramoji/src/emojiProcessor.coffee"].f[13]++;
      _$jscoverage["/Users/ikatz/Development/non-wayfair/macramoji/src/emojiProcessor.coffee"].s[26]++;
      entities = this.reduce(parseTree, [], function(acc, tree) {
        _$jscoverage["/Users/ikatz/Development/non-wayfair/macramoji/src/emojiProcessor.coffee"].f[14]++;
        _$jscoverage["/Users/ikatz/Development/non-wayfair/macramoji/src/emojiProcessor.coffee"].s[27]++;
        return acc.concat([
          {
            entity: tree.entity,
            name: tree.name
          }
        ]);
      });
      _$jscoverage["/Users/ikatz/Development/non-wayfair/macramoji/src/emojiProcessor.coffee"].s[28]++;
      badFunks = this.invalidFunkNames(entities);
      _$jscoverage["/Users/ikatz/Development/non-wayfair/macramoji/src/emojiProcessor.coffee"].s[29]++;
      badEmoji = this.invalidEmojiNames(entities, this.emojiStore.known());
      _$jscoverage["/Users/ikatz/Development/non-wayfair/macramoji/src/emojiProcessor.coffee"].s[30]++;
      msgs = [];
      _$jscoverage["/Users/ikatz/Development/non-wayfair/macramoji/src/emojiProcessor.coffee"].s[31]++;
      if (badFunks.length > 0) {
        _$jscoverage["/Users/ikatz/Development/non-wayfair/macramoji/src/emojiProcessor.coffee"].b[2][0]++;
        _$jscoverage["/Users/ikatz/Development/non-wayfair/macramoji/src/emojiProcessor.coffee"].s[32]++;
        msgs.push((_$jscoverage["/Users/ikatz/Development/non-wayfair/macramoji/src/emojiProcessor.coffee"].s[33]++, "Unknown function names: " + (_$jscoverage["/Users/ikatz/Development/non-wayfair/macramoji/src/emojiProcessor.coffee"].s[34]++, badFunks.join(', '))));
      } else {
        _$jscoverage["/Users/ikatz/Development/non-wayfair/macramoji/src/emojiProcessor.coffee"].b[2][1]++;
        void 0;
      }
      _$jscoverage["/Users/ikatz/Development/non-wayfair/macramoji/src/emojiProcessor.coffee"].s[35]++;
      if (badEmoji.length > 0) {
        _$jscoverage["/Users/ikatz/Development/non-wayfair/macramoji/src/emojiProcessor.coffee"].b[3][0]++;
        _$jscoverage["/Users/ikatz/Development/non-wayfair/macramoji/src/emojiProcessor.coffee"].s[36]++;
        msgs.push((_$jscoverage["/Users/ikatz/Development/non-wayfair/macramoji/src/emojiProcessor.coffee"].s[37]++, "Unknown emoji names: " + (_$jscoverage["/Users/ikatz/Development/non-wayfair/macramoji/src/emojiProcessor.coffee"].s[38]++, badEmoji.join(', '))));
      } else {
        _$jscoverage["/Users/ikatz/Development/non-wayfair/macramoji/src/emojiProcessor.coffee"].b[3][1]++;
        void 0;
      }
      _$jscoverage["/Users/ikatz/Development/non-wayfair/macramoji/src/emojiProcessor.coffee"].s[39]++;
      return msgs;
    };
 
    EmojiProcessor.prototype.prepare = function(parseTree) {
      var prep_helper;
      _$jscoverage["/Users/ikatz/Development/non-wayfair/macramoji/src/emojiProcessor.coffee"].f[15]++;
      _$jscoverage["/Users/ikatz/Development/non-wayfair/macramoji/src/emojiProcessor.coffee"].s[40]++;
      prep_helper = (function(_this) {
        return function(tree) {
          var args, unparsed;
          _$jscoverage["/Users/ikatz/Development/non-wayfair/macramoji/src/emojiProcessor.coffee"].f[16]++;
          _$jscoverage["/Users/ikatz/Development/non-wayfair/macramoji/src/emojiProcessor.coffee"].s[41]++;
          unparsed = unparser.unparse(tree);
          _$jscoverage["/Users/ikatz/Development/non-wayfair/macramoji/src/emojiProcessor.coffee"].s[42]++;
          if (tree.entity === 'emoji') {
            _$jscoverage["/Users/ikatz/Development/non-wayfair/macramoji/src/emojiProcessor.coffee"].b[4][0]++;
            _$jscoverage["/Users/ikatz/Development/non-wayfair/macramoji/src/emojiProcessor.coffee"].s[43]++;
            return new ImageWorker(unparsed, [], _this.emojiStore.workFn(tree.name));
          } else {
            _$jscoverage["/Users/ikatz/Development/non-wayfair/macramoji/src/emojiProcessor.coffee"].b[4][1]++;
            void 0;
          }
          _$jscoverage["/Users/ikatz/Development/non-wayfair/macramoji/src/emojiProcessor.coffee"].s[44]++;
          args = tree.args.map(function(x) {
            _$jscoverage["/Users/ikatz/Development/non-wayfair/macramoji/src/emojiProcessor.coffee"].f[17]++;
            _$jscoverage["/Users/ikatz/Development/non-wayfair/macramoji/src/emojiProcessor.coffee"].s[45]++;
            return prep_helper(x);
          });
          _$jscoverage["/Users/ikatz/Development/non-wayfair/macramoji/src/emojiProcessor.coffee"].s[46]++;
          return new ImageWorker(unparsed, args, _this.macros[tree.name]);
        };
      })(this);
      _$jscoverage["/Users/ikatz/Development/non-wayfair/macramoji/src/emojiProcessor.coffee"].s[47]++;
      return prep_helper(parseTree);
    };
 
    EmojiProcessor.prototype.process = function(emojiStr, onComplete) {
      var err, parseTree, probList, probs, ret, workTree;
      _$jscoverage["/Users/ikatz/Development/non-wayfair/macramoji/src/emojiProcessor.coffee"].f[18]++;
      _$jscoverage["/Users/ikatz/Development/non-wayfair/macramoji/src/emojiProcessor.coffee"].s[48]++;
      ret = new SlackResponse;
      _$jscoverage["/Users/ikatz/Development/non-wayfair/macramoji/src/emojiProcessor.coffee"].s[49]++;
      parseTree = null;
      _$jscoverage["/Users/ikatz/Development/non-wayfair/macramoji/src/emojiProcessor.coffee"].s[50]++;
      try {
        _$jscoverage["/Users/ikatz/Development/non-wayfair/macramoji/src/emojiProcessor.coffee"].s[51]++;
        parseTree = this.parse(emojiStr);
      } catch (error) {
        err = error;
        _$jscoverage["/Users/ikatz/Development/non-wayfair/macramoji/src/emojiProcessor.coffee"].s[52]++;
        ret.setMessage((_$jscoverage["/Users/ikatz/Development/non-wayfair/macramoji/src/emojiProcessor.coffee"].s[53]++, "I couldn't parse `" + (_$jscoverage["/Users/ikatz/Development/non-wayfair/macramoji/src/emojiProcessor.coffee"].s[54]++, emojiStr) + "` as macromoji:\n```" + (_$jscoverage["/Users/ikatz/Development/non-wayfair/macramoji/src/emojiProcessor.coffee"].s[55]++, err) + "```"));
        _$jscoverage["/Users/ikatz/Development/non-wayfair/macramoji/src/emojiProcessor.coffee"].s[56]++;
        return onComplete(ret);
      }
      _$jscoverage["/Users/ikatz/Development/non-wayfair/macramoji/src/emojiProcessor.coffee"].s[57]++;
      probs = this.entityProblems(parseTree);
      _$jscoverage["/Users/ikatz/Development/non-wayfair/macramoji/src/emojiProcessor.coffee"].s[58]++;
      if (probs.length > 0) {
        _$jscoverage["/Users/ikatz/Development/non-wayfair/macramoji/src/emojiProcessor.coffee"].b[5][0]++;
        _$jscoverage["/Users/ikatz/Development/non-wayfair/macramoji/src/emojiProcessor.coffee"].s[59]++;
        probList = (_$jscoverage["/Users/ikatz/Development/non-wayfair/macramoji/src/emojiProcessor.coffee"].s[60]++, probs.map(function(x) {
          _$jscoverage["/Users/ikatz/Development/non-wayfair/macramoji/src/emojiProcessor.coffee"].f[19]++;
          _$jscoverage["/Users/ikatz/Development/non-wayfair/macramoji/src/emojiProcessor.coffee"].s[61]++;
          _$jscoverage["/Users/ikatz/Development/non-wayfair/macramoji/src/emojiProcessor.coffee"].s[62]++;
          return "\n • " + (_$jscoverage["/Users/ikatz/Development/non-wayfair/macramoji/src/emojiProcessor.coffee"].s[63]++, x);
        })).join("");
        _$jscoverage["/Users/ikatz/Development/non-wayfair/macramoji/src/emojiProcessor.coffee"].s[64]++;
        ret.setMessage((_$jscoverage["/Users/ikatz/Development/non-wayfair/macramoji/src/emojiProcessor.coffee"].s[65]++, "I didn't understand some of `" + (_$jscoverage["/Users/ikatz/Development/non-wayfair/macramoji/src/emojiProcessor.coffee"].s[66]++, emojiStr) + "`:" + (_$jscoverage["/Users/ikatz/Development/non-wayfair/macramoji/src/emojiProcessor.coffee"].s[67]++, probList)));
        _$jscoverage["/Users/ikatz/Development/non-wayfair/macramoji/src/emojiProcessor.coffee"].s[68]++;
        return onComplete(ret);
      } else {
        _$jscoverage["/Users/ikatz/Development/non-wayfair/macramoji/src/emojiProcessor.coffee"].b[5][1]++;
        void 0;
      }
      _$jscoverage["/Users/ikatz/Development/non-wayfair/macramoji/src/emojiProcessor.coffee"].s[69]++;
      workTree = this.prepare(parseTree);
      _$jscoverage["/Users/ikatz/Development/non-wayfair/macramoji/src/emojiProcessor.coffee"].s[70]++;
      return workTree.resolve((function(_this) {
        return function(imgResult) {
          _$jscoverage["/Users/ikatz/Development/non-wayfair/macramoji/src/emojiProcessor.coffee"].f[20]++;
          _$jscoverage["/Users/ikatz/Development/non-wayfair/macramoji/src/emojiProcessor.coffee"].s[71]++;
          _this.lastWorkTree = workTree;
          _$jscoverage["/Users/ikatz/Development/non-wayfair/macramoji/src/emojiProcessor.coffee"].s[72]++;
          Eif (imgResult.isValid()) {
            _$jscoverage["/Users/ikatz/Development/non-wayfair/macramoji/src/emojiProcessor.coffee"].b[6][0]++;
            _$jscoverage["/Users/ikatz/Development/non-wayfair/macramoji/src/emojiProcessor.coffee"].s[73]++;
            ret.setUpload(imgResult, unparser.unparseEnglish(parseTree));
          } else {
            _$jscoverage["/Users/ikatz/Development/non-wayfair/macramoji/src/emojiProcessor.coffee"].b[6][1]++;
            _$jscoverage["/Users/ikatz/Development/non-wayfair/macramoji/src/emojiProcessor.coffee"].s[74]++;
            probList = (_$jscoverage["/Users/ikatz/Development/non-wayfair/macramoji/src/emojiProcessor.coffee"].s[75]++, imgResult.errorMessages.map(function(x) {
              _$jscoverage["/Users/ikatz/Development/non-wayfair/macramoji/src/emojiProcessor.coffee"].f[21]++;
              _$jscoverage["/Users/ikatz/Development/non-wayfair/macramoji/src/emojiProcessor.coffee"].s[76]++;
              _$jscoverage["/Users/ikatz/Development/non-wayfair/macramoji/src/emojiProcessor.coffee"].s[77]++;
              return "\n • " + (_$jscoverage["/Users/ikatz/Development/non-wayfair/macramoji/src/emojiProcessor.coffee"].s[78]++, x);
            })).join("");
            _$jscoverage["/Users/ikatz/Development/non-wayfair/macramoji/src/emojiProcessor.coffee"].s[79]++;
            ret.setMessage((_$jscoverage["/Users/ikatz/Development/non-wayfair/macramoji/src/emojiProcessor.coffee"].s[80]++, "Processing `" + (_$jscoverage["/Users/ikatz/Development/non-wayfair/macramoji/src/emojiProcessor.coffee"].s[81]++, emojiStr) + "` produced the following errors: " + (_$jscoverage["/Users/ikatz/Development/non-wayfair/macramoji/src/emojiProcessor.coffee"].s[82]++, probList)));
          }
          _$jscoverage["/Users/ikatz/Development/non-wayfair/macramoji/src/emojiProcessor.coffee"].s[83]++;
          return onComplete(ret);
        };
      })(this));
    };
 
    EmojiProcessor.prototype.reduce = function(parseTree, acc, onEach) {
      var args, here, tmp;
      _$jscoverage["/Users/ikatz/Development/non-wayfair/macramoji/src/emojiProcessor.coffee"].f[22]++;
      _$jscoverage["/Users/ikatz/Development/non-wayfair/macramoji/src/emojiProcessor.coffee"].s[84]++;
      here = onEach(acc, parseTree);
      _$jscoverage["/Users/ikatz/Development/non-wayfair/macramoji/src/emojiProcessor.coffee"].s[85]++;
      if ('args' in parseTree) {
        _$jscoverage["/Users/ikatz/Development/non-wayfair/macramoji/src/emojiProcessor.coffee"].b[7][0]++;
        _$jscoverage["/Users/ikatz/Development/non-wayfair/macramoji/src/emojiProcessor.coffee"].s[86]++;
        args = parseTree['args'];
        _$jscoverage["/Users/ikatz/Development/non-wayfair/macramoji/src/emojiProcessor.coffee"].s[87]++;
        tmp = (function(_this) {
          return function(acc2, subTree) {
            _$jscoverage["/Users/ikatz/Development/non-wayfair/macramoji/src/emojiProcessor.coffee"].f[23]++;
            _$jscoverage["/Users/ikatz/Development/non-wayfair/macramoji/src/emojiProcessor.coffee"].s[88]++;
            return _this.reduce(subTree, acc2, onEach);
          };
        })(this);
        _$jscoverage["/Users/ikatz/Development/non-wayfair/macramoji/src/emojiProcessor.coffee"].s[89]++;
        return args.reduce(tmp, here);
      } else {
        _$jscoverage["/Users/ikatz/Development/non-wayfair/macramoji/src/emojiProcessor.coffee"].b[7][1]++;
        _$jscoverage["/Users/ikatz/Development/non-wayfair/macramoji/src/emojiProcessor.coffee"].s[90]++;
        return here;
      }
    };
 
    return EmojiProcessor;
 
  })();
 
  _$jscoverage["/Users/ikatz/Development/non-wayfair/macramoji/src/emojiProcessor.coffee"].s[91]++;
 
  module.exports = EmojiProcessor;
 
}).call(this);