diff --git a/annyang.js b/annyang.js index 7befd7f..9995f04 100644 --- a/annyang.js +++ b/annyang.js @@ -466,6 +466,57 @@ callbacks[type].push({callback: cb, context: context || this}); }, + /** + * Remove callbacks from events. + * + * - Pass an event name and a callback command to remove that callback command from that event type. + * - Pass just an event name to remove all callback commands from that event type. + * - Pass undefined as event name and a callback command to remove that callback command from all event types. + * - Pass no params to remove all callback commands from all event types. + * + * #### Examples: + * ````javascript + * annyang.addCallback('start', myFunction1); + * annyang.addCallback('start', myFunction2); + * annyang.addCallback('end', myFunction1); + * annyang.addCallback('end', myFunction2); + * + * // Remove myFunction2 from being called on start: + * annyang.removeCallback('start', myFunction2); + * + * // Remove all callbacks attached to end event: + * annyang.removeCallback('end'); + * + * // Remove all callbacks from all events: + * annyang.removeCallback(); + * ```` + * + * @param type Name of event type to remove callback from + * @param callback The callback function to remove + * @returns undefined + * @method removeCallback + */ + removeCallback: function(type, callback) { + var compareWithCallbackParameter = function(cb) { + return cb.callback !== callback; + }; + // Go over each callback type in callbacks store object + for (var callbackType in callbacks) { + if (callbacks.hasOwnProperty(callbackType)) { + // if this is the type user asked to delete, or he asked to delete all, go ahead. + if (type === undefined || type === callbackType) { + // If user asked to delete all callbacks in this type or all types + if (callback === undefined) { + callbacks[callbackType] = []; + } else { + // Remove all matching callbacks + callbacks[callbackType] = callbacks[callbackType].filter(compareWithCallbackParameter); + } + } + } + } + }, + /** * Returns true if speech recognition is currently on. * Returns false if speech recognition is off or annyang is paused. diff --git a/annyang.min.js b/annyang.min.js index 3b959d9..4e22403 100644 --- a/annyang.min.js +++ b/annyang.min.js @@ -3,4 +3,4 @@ //! author : Tal Ater @TalAter //! license : MIT //! https://www.TalAter.com/annyang/ -(function(a){"use strict";var b=this,c=b.SpeechRecognition||b.webkitSpeechRecognition||b.mozSpeechRecognition||b.msSpeechRecognition||b.oSpeechRecognition;if(!c)return b.annyang=null,a;var d,e,f=[],g={start:[],error:[],end:[],result:[],resultMatch:[],resultNoMatch:[],errorNetwork:[],errorPermissionBlocked:[],errorPermissionDenied:[]},h=0,i=!1,j="font-weight: bold; color: #00f;",k=!1,l=!1,m=/\s*\((.*?)\)\s*/g,n=/(\(\?:[^)]+\))\?/g,o=/(\(\?)?:\w+/g,p=/\*\w+/g,q=/[\-{}\[\]+?.,\\\^$|#]/g,r=function(a){return a=a.replace(q,"\\$&").replace(m,"(?:$1)?").replace(o,function(a,b){return b?a:"([^\\s]+)"}).replace(p,"(.*?)").replace(n,"\\s*$1?\\s*"),new RegExp("^"+a+"$","i")},s=function(a){var b=Array.prototype.slice.call(arguments,1);a.forEach(function(a){a.callback.apply(a.context,b)})},t=function(){return d!==a},u=function(){t()||b.annyang.init({},!1)},v=function(a,c,d){f.push({command:a,callback:c,originalPhrase:d}),i&&b.console.log("Command successfully loaded: %c"+d,j)};b.annyang={init:function(m,n){n=n===a?!0:!!n,d&&d.abort&&d.abort(),d=new c,d.maxAlternatives=5,d.continuous="http:"===b.location.protocol,d.lang="en-US",d.onstart=function(){l=!0,s(g.start)},d.onerror=function(a){switch(s(g.error),a.error){case"network":s(g.errorNetwork);break;case"not-allowed":case"service-not-allowed":e=!1,s((new Date).getTime()-h<200?g.errorPermissionBlocked:g.errorPermissionDenied)}},d.onend=function(){if(l=!1,s(g.end),e){var a=(new Date).getTime()-h;1e3>a?setTimeout(b.annyang.start,1e3-a):b.annyang.start()}},d.onresult=function(a){if(k)return i&&b.console.log("Speech heard, but annyang is paused"),!1;for(var c=a.results[a.resultIndex],d=[],e=0;em;m++){var o=f[m],p=o.command.exec(h);if(p){var q=p.slice(1);return i&&(b.console.log("command matched: %c"+o.originalPhrase,j),q.length&&b.console.log("with parameters",q)),o.callback.apply(this,q),s(g.resultMatch,h,o.originalPhrase,d),!0}}}return s(g.resultNoMatch,d),!1},n&&(f=[]),m.length&&this.addCommands(m)},start:function(c){k=!1,u(),c=c||{},e=c.autoRestart!==a?!!c.autoRestart:!0,c.continuous!==a&&(d.continuous=!!c.continuous),h=(new Date).getTime();try{d.start()}catch(f){i&&b.console.log(f.message)}},abort:function(){e=!1,t&&d.abort()},pause:function(){k=!0},resume:function(){b.annyang.start()},debug:function(a){i=arguments.length>0?!!a:!0},setLanguage:function(a){u(),d.lang=a},addCommands:function(a){var c;u();for(var d in a)if(a.hasOwnProperty(d))if(c=b[a[d]]||a[d],"function"==typeof c)v(r(d),c,d);else{if(!("object"==typeof c&&c.regexp instanceof RegExp)){i&&b.console.log("Can not register command: %c"+d,j);continue}v(new RegExp(c.regexp.source,"i"),c.callback,d)}},removeCommands:function(b){return b===a?void(f=[]):(b=Array.isArray(b)?b:[b],void(f=f.filter(function(a){for(var c=0;ca?setTimeout(b.annyang.start,1e3-a):b.annyang.start()}},d.onresult=function(a){if(k)return i&&b.console.log("Speech heard, but annyang is paused"),!1;for(var c=a.results[a.resultIndex],d=[],e=0;em;m++){var o=f[m],p=o.command.exec(h);if(p){var q=p.slice(1);return i&&(b.console.log("command matched: %c"+o.originalPhrase,j),q.length&&b.console.log("with parameters",q)),o.callback.apply(this,q),s(g.resultMatch,h,o.originalPhrase,d),!0}}}return s(g.resultNoMatch,d),!1},n&&(f=[]),m.length&&this.addCommands(m)},start:function(c){k=!1,u(),c=c||{},e=c.autoRestart!==a?!!c.autoRestart:!0,c.continuous!==a&&(d.continuous=!!c.continuous),h=(new Date).getTime();try{d.start()}catch(f){i&&b.console.log(f.message)}},abort:function(){e=!1,t&&d.abort()},pause:function(){k=!0},resume:function(){b.annyang.start()},debug:function(a){i=arguments.length>0?!!a:!0},setLanguage:function(a){u(),d.lang=a},addCommands:function(a){var c;u();for(var d in a)if(a.hasOwnProperty(d))if(c=b[a[d]]||a[d],"function"==typeof c)v(r(d),c,d);else{if(!("object"==typeof c&&c.regexp instanceof RegExp)){i&&b.console.log("Can not register command: %c"+d,j);continue}v(new RegExp(c.regexp.source,"i"),c.callback,d)}},removeCommands:function(b){return b===a?void(f=[]):(b=Array.isArray(b)?b:[b],void(f=f.filter(function(a){for(var c=0;ca?setTimeout(b.annyang.start,1e3-a):b.annyang.start()}},d.onresult=function(a){if(k)return i&&b.console.log("Speech heard, but annyang is paused"),!1;for(var c=a.results[a.resultIndex],d=[],e=0;em;m++){var o=f[m],p=o.command.exec(h);if(p){var q=p.slice(1);return i&&(b.console.log("command matched: %c"+o.originalPhrase,j),q.length&&b.console.log("with parameters",q)),o.callback.apply(this,q),s(g.resultMatch,h,o.originalPhrase,d),!0}}}return s(g.resultNoMatch,d),!1},n&&(f=[]),m.length&&this.addCommands(m)},start:function(c){k=!1,u(),c=c||{},e=c.autoRestart!==a?!!c.autoRestart:!0,c.continuous!==a&&(d.continuous=!!c.continuous),h=(new Date).getTime();try{d.start()}catch(f){i&&b.console.log(f.message)}},abort:function(){e=!1,t&&d.abort()},pause:function(){k=!0},resume:function(){b.annyang.start()},debug:function(a){i=arguments.length>0?!!a:!0},setLanguage:function(a){u(),d.lang=a},addCommands:function(a){var c;u();for(var d in a)if(a.hasOwnProperty(d))if(c=b[a[d]]||a[d],"function"==typeof c)v(r(d),c,d);else{if(!("object"==typeof c&&c.regexp instanceof RegExp)){i&&b.console.log("Can not register command: %c"+d,j);continue}v(new RegExp(c.regexp.source,"i"),c.callback,d)}},removeCommands:function(b){return b===a?void(f=[]):(b=Array.isArray(b)?b:[b],void(f=f.filter(function(a){for(var c=0;ca?setTimeout(b.annyang.start,1e3-a):b.annyang.start()}},d.onresult=function(a){if(k)return i&&b.console.log("Speech heard, but annyang is paused"),!1;for(var c=a.results[a.resultIndex],d=[],e=0;em;m++){var o=f[m],p=o.command.exec(h);if(p){var q=p.slice(1);return i&&(b.console.log("command matched: %c"+o.originalPhrase,j),q.length&&b.console.log("with parameters",q)),o.callback.apply(this,q),s(g.resultMatch,h,o.originalPhrase,d),!0}}}return s(g.resultNoMatch,d),!1},n&&(f=[]),m.length&&this.addCommands(m)},start:function(c){k=!1,u(),c=c||{},e=c.autoRestart!==a?!!c.autoRestart:!0,c.continuous!==a&&(d.continuous=!!c.continuous),h=(new Date).getTime();try{d.start()}catch(f){i&&b.console.log(f.message)}},abort:function(){e=!1,t&&d.abort()},pause:function(){k=!0},resume:function(){b.annyang.start()},debug:function(a){i=arguments.length>0?!!a:!0},setLanguage:function(a){u(),d.lang=a},addCommands:function(a){var c;u();for(var d in a)if(a.hasOwnProperty(d))if(c=b[a[d]]||a[d],"function"==typeof c)v(r(d),c,d);else{if(!("object"==typeof c&&c.regexp instanceof RegExp)){i&&b.console.log("Can not register command: %c"+d,j);continue}v(new RegExp(c.regexp.source,"i"),c.callback,d)}},removeCommands:function(b){return b===a?void(f=[]):(b=Array.isArray(b)?b:[b],void(f=f.filter(function(a){for(var c=0;ca?setTimeout(b.annyang.start,1e3-a):b.annyang.start()}},d.onresult=function(a){if(k)return i&&b.console.log("Speech heard, but annyang is paused"),!1;for(var c=a.results[a.resultIndex],d=[],e=0;em;m++){var o=f[m],p=o.command.exec(h);if(p){var q=p.slice(1);return i&&(b.console.log("command matched: %c"+o.originalPhrase,j),q.length&&b.console.log("with parameters",q)),o.callback.apply(this,q),s(g.resultMatch,h,o.originalPhrase,d),!0}}}return s(g.resultNoMatch,d),!1},n&&(f=[]),m.length&&this.addCommands(m)},start:function(c){k=!1,u(),c=c||{},e=c.autoRestart!==a?!!c.autoRestart:!0,c.continuous!==a&&(d.continuous=!!c.continuous),h=(new Date).getTime();try{d.start()}catch(f){i&&b.console.log(f.message)}},abort:function(){e=!1,t&&d.abort()},pause:function(){k=!0},resume:function(){b.annyang.start()},debug:function(a){i=arguments.length>0?!!a:!0},setLanguage:function(a){u(),d.lang=a},addCommands:function(a){var c;u();for(var d in a)if(a.hasOwnProperty(d))if(c=b[a[d]]||a[d],"function"==typeof c)v(r(d),c,d);else{if(!("object"==typeof c&&c.regexp instanceof RegExp)){i&&b.console.log("Can not register command: %c"+d,j);continue}v(new RegExp(c.regexp.source,"i"),c.callback,d)}},removeCommands:function(b){return b===a?void(f=[]):(b=Array.isArray(b)?b:[b],void(f=f.filter(function(a){for(var c=0;ca?setTimeout(b.annyang.start,1e3-a):b.annyang.start()}},d.onresult=function(a){if(k)return i&&b.console.log("Speech heard, but annyang is paused"),!1;for(var c=a.results[a.resultIndex],d=[],e=0;em;m++){var o=f[m],p=o.command.exec(h);if(p){var q=p.slice(1);return i&&(b.console.log("command matched: %c"+o.originalPhrase,j),q.length&&b.console.log("with parameters",q)),o.callback.apply(this,q),s(g.resultMatch,h,o.originalPhrase,d),!0}}}return s(g.resultNoMatch,d),!1},n&&(f=[]),m.length&&this.addCommands(m)},start:function(c){k=!1,u(),c=c||{},e=c.autoRestart!==a?!!c.autoRestart:!0,c.continuous!==a&&(d.continuous=!!c.continuous),h=(new Date).getTime();try{d.start()}catch(f){i&&b.console.log(f.message)}},abort:function(){e=!1,t&&d.abort()},pause:function(){k=!0},resume:function(){b.annyang.start()},debug:function(a){i=arguments.length>0?!!a:!0},setLanguage:function(a){u(),d.lang=a},addCommands:function(a){var c;u();for(var d in a)if(a.hasOwnProperty(d))if(c=b[a[d]]||a[d],"function"==typeof c)v(r(d),c,d);else{if(!("object"==typeof c&&c.regexp instanceof RegExp)){i&&b.console.log("Can not register command: %c"+d,j);continue}v(new RegExp(c.regexp.source,"i"),c.callback,d)}},removeCommands:function(b){return b===a?void(f=[]):(b=Array.isArray(b)?b:[b],void(f=f.filter(function(a){for(var c=0;c
- 82.35% + 83.23% Statements - 126/153 + 134/161
- 65.48% + 67.39% Branches - 55/84 + 62/92
- 96% + 96.3% Functions - 24/25 + 26/27
- 82.35% + 83.23% Lines - 126/153 + 134/161
@@ -704,7 +704,58 @@

659 660 661 -662  +662 +663 +664 +665 +666 +667 +668 +669 +670 +671 +672 +673 +674 +675 +676 +677 +678 +679 +680 +681 +682 +683 +684 +685 +686 +687 +688 +689 +690 +691 +692 +693 +694 +695 +696 +697 +698 +699 +700 +701 +702 +703 +704 +705 +706 +707 +708 +709 +710 +711 +712 +713        @@ -769,18 +820,18 @@

    -183× -183× -488× +191× +191× +273×       -94× +98×     -94× +98×     @@ -843,8 +894,8 @@

  -33× -33× +37× +37×     @@ -868,10 +919,10 @@

    -32× -32× +36× +36×   -32× +36×       @@ -958,21 +1009,21 @@

      -40× -40× -40× -40× +44× +44× +44× +44×     -40× +44×   -40× +44×       -40× -40× -40× +44× +44× +44×   @@ -989,9 +1040,9 @@

      -60× -60× -60× +69× +69× +69×       @@ -1162,14 +1213,65 @@

      -20× +36×   -18× -18× +34× +34×     -18× +34× +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + +11× +  +  + +63× +  +63× +  +30× +19× +  +  +11× +  +  +  +        @@ -1832,6 +1934,57 @@

} callbacks[type].push({callback: cb, context: context || this}); }, +  + /** + * Remove callbacks from events. + * + * - Pass an event name and a callback command to remove that callback command from that event type. + * - Pass just an event name to remove all callback commands from that event type. + * - Pass undefined as event name and a callback command to remove that callback command from all event types. + * - Pass no params to remove all callback commands from all event types. + * + * #### Examples: + * ````javascript + * annyang.addCallback('start', myFunction1); + * annyang.addCallback('start', myFunction2); + * annyang.addCallback('end', myFunction1); + * annyang.addCallback('end', myFunction2); + * + * // Remove myFunction2 from being called on start: + * annyang.removeCallback('start', myFunction2); + * + * // Remove all callbacks attached to end event: + * annyang.removeCallback('end'); + * + * // Remove all callbacks from all events: + * annyang.removeCallback(); + * ```` + * + * @param type Name of event type to remove callback from + * @param callback The callback function to remove + * @returns undefined + * @method removeCallback + */ + removeCallback: function(type, callback) { + var compareWithCallbackParameter = function(cb) { + return cb.callback !== callback; + }; + // Go over each callback type in callbacks store object + for (var callbackType in callbacks) { + Eif (callbacks.hasOwnProperty(callbackType)) { + // if this is the type user asked to delete, or he asked to delete all, go ahead. + if (type === undefined || type === callbackType) { + // If user asked to delete all callbacks in this type or all types + if (callback === undefined) { + callbacks[callbackType] = []; + } else { + // Remove all matching callbacks + callbacks[callbackType] = callbacks[callbackType].filter(compareWithCallbackParameter); + } + } + } + } + },   /** * Returns true if speech recognition is currently on. @@ -2032,7 +2185,7 @@

diff --git a/test/coverage/__root__/index.html b/test/coverage/__root__/index.html index 71208ee..f1e417c 100644 --- a/test/coverage/__root__/index.html +++ b/test/coverage/__root__/index.html @@ -20,24 +20,24 @@

- 82.35% + 83.23% Statements - 126/153 + 134/161
- 65.48% + 67.39% Branches - 55/84 + 62/92
- 96% + 96.3% Functions - 24/25 + 26/27
- 82.35% + 83.23% Lines - 126/153 + 134/161
@@ -60,15 +60,15 @@

annyang.js -
- 82.35% - 126/153 - 65.48% - 55/84 - 96% - 24/25 - 82.35% - 126/153 +
+ 83.23% + 134/161 + 67.39% + 62/92 + 96.3% + 26/27 + 83.23% + 134/161 @@ -77,7 +77,7 @@

diff --git a/test/coverage/coverage.json b/test/coverage/coverage.json index dad9022..73aeb76 100644 --- a/test/coverage/coverage.json +++ b/test/coverage/coverage.json @@ -1 +1 @@ -{"annyang.js":{"path":"annyang.js","s":{"1":1,"2":1,"3":1,"4":1,"5":0,"6":0,"7":1,"8":1,"9":1,"10":1,"11":1,"12":1,"13":1,"14":1,"15":1,"16":1,"17":1,"18":1,"19":1,"20":1,"21":1,"22":72,"23":21,"24":72,"25":1,"26":183,"27":183,"28":488,"29":1,"30":94,"31":1,"32":94,"33":1,"34":1,"35":82,"36":82,"37":6,"38":1,"39":1,"40":0,"41":1,"42":1,"43":0,"44":1,"45":1,"46":1,"47":1,"48":1,"49":33,"50":33,"51":1,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":1,"62":32,"63":32,"64":32,"65":0,"66":0,"67":0,"68":0,"69":1,"70":60,"71":1,"72":0,"73":1,"74":59,"75":59,"76":59,"77":295,"78":59,"79":59,"80":59,"81":128,"82":128,"83":0,"84":128,"85":232,"86":232,"87":232,"88":42,"89":42,"90":0,"91":0,"92":0,"93":42,"94":42,"95":42,"96":17,"97":17,"98":1,"99":0,"100":1,"101":0,"102":40,"103":40,"104":40,"105":40,"106":0,"107":40,"108":40,"109":0,"110":40,"111":40,"112":40,"113":7,"114":1,"115":60,"116":60,"117":60,"118":9,"119":8,"120":49,"121":48,"122":1,"123":2,"124":2,"125":52,"126":52,"127":52,"128":83,"129":83,"130":83,"131":72,"132":11,"133":10,"134":1,"135":1,"136":1,"137":52,"138":45,"139":45,"140":7,"141":7,"142":32,"143":36,"144":8,"145":24,"146":20,"147":2,"148":18,"149":18,"150":0,"151":18,"152":22,"153":45},"b":{"1":[1,0,0,0,0],"2":[0,1],"3":[10,11],"4":[1,93],"5":[6,76],"6":[0,1],"7":[0,1],"8":[1,0],"9":[0,0,0],"10":[0,0],"11":[0,32],"12":[0,0],"13":[1,59],"14":[0,1],"15":[0,128],"16":[42,190],"17":[0,42],"18":[0,0],"19":[0,1],"20":[0,1],"21":[40,40],"22":[0,40],"23":[0,40],"24":[1,6],"25":[60,0],"26":[48,1],"27":[83,0],"28":[83,82],"29":[72,11],"30":[10,1],"31":[11,10],"32":[1,0],"33":[45,7],"34":[1,6],"35":[8,28],"36":[2,18],"37":[18,18],"38":[0,18],"39":[18,16],"40":[22,15]},"f":{"1":1,"2":72,"3":21,"4":183,"5":488,"6":94,"7":94,"8":82,"9":1,"10":33,"11":0,"12":32,"13":60,"14":40,"15":60,"16":9,"17":8,"18":49,"19":2,"20":52,"21":52,"22":32,"23":20,"24":22,"25":45},"fnMap":{"1":{"name":"(anonymous_1)","line":7,"loc":{"start":{"line":7,"column":1},"end":{"line":7,"column":22}}},"2":{"name":"(anonymous_2)","line":53,"loc":{"start":{"line":53,"column":24},"end":{"line":53,"column":42}}},"3":{"name":"(anonymous_3)","line":56,"loc":{"start":{"line":56,"column":39},"end":{"line":56,"column":65}}},"4":{"name":"(anonymous_4)","line":65,"loc":{"start":{"line":65,"column":24},"end":{"line":65,"column":44}}},"5":{"name":"(anonymous_5)","line":67,"loc":{"start":{"line":67,"column":22},"end":{"line":67,"column":41}}},"6":{"name":"(anonymous_6)","line":72,"loc":{"start":{"line":72,"column":22},"end":{"line":72,"column":33}}},"7":{"name":"(anonymous_7)","line":76,"loc":{"start":{"line":76,"column":21},"end":{"line":76,"column":32}}},"8":{"name":"(anonymous_8)","line":82,"loc":{"start":{"line":82,"column":24},"end":{"line":82,"column":54}}},"9":{"name":"(anonymous_9)","line":112,"loc":{"start":{"line":112,"column":10},"end":{"line":112,"column":44}}},"10":{"name":"(anonymous_10)","line":139,"loc":{"start":{"line":139,"column":30},"end":{"line":139,"column":41}}},"11":{"name":"(anonymous_11)","line":144,"loc":{"start":{"line":144,"column":30},"end":{"line":144,"column":46}}},"12":{"name":"(anonymous_12)","line":164,"loc":{"start":{"line":164,"column":30},"end":{"line":164,"column":41}}},"13":{"name":"(anonymous_13)","line":179,"loc":{"start":{"line":179,"column":30},"end":{"line":179,"column":46}}},"14":{"name":"(anonymous_14)","line":254,"loc":{"start":{"line":254,"column":11},"end":{"line":254,"column":29}}},"15":{"name":"(anonymous_15)","line":285,"loc":{"start":{"line":285,"column":11},"end":{"line":285,"column":22}}},"16":{"name":"(anonymous_16)","line":300,"loc":{"start":{"line":300,"column":11},"end":{"line":300,"column":22}}},"17":{"name":"(anonymous_17)","line":310,"loc":{"start":{"line":310,"column":12},"end":{"line":310,"column":23}}},"18":{"name":"(anonymous_18)","line":320,"loc":{"start":{"line":320,"column":11},"end":{"line":320,"column":30}}},"19":{"name":"(anonymous_19)","line":335,"loc":{"start":{"line":335,"column":17},"end":{"line":335,"column":36}}},"20":{"name":"(anonymous_20)","line":357,"loc":{"start":{"line":357,"column":17},"end":{"line":357,"column":36}}},"21":{"name":"(anonymous_21)","line":403,"loc":{"start":{"line":403,"column":20},"end":{"line":403,"column":47}}},"22":{"name":"(anonymous_22)","line":409,"loc":{"start":{"line":409,"column":41},"end":{"line":409,"column":59}}},"23":{"name":"(anonymous_23)","line":458,"loc":{"start":{"line":458,"column":17},"end":{"line":458,"column":51}}},"24":{"name":"(anonymous_24)","line":476,"loc":{"start":{"line":476,"column":17},"end":{"line":476,"column":28}}},"25":{"name":"(anonymous_25)","line":487,"loc":{"start":{"line":487,"column":25},"end":{"line":487,"column":36}}}},"statementMap":{"1":{"start":{"line":7,"column":0},"end":{"line":492,"column":14}},"2":{"start":{"line":21,"column":2},"end":{"line":21,"column":18}},"3":{"start":{"line":24,"column":2},"end":{"line":28,"column":50}},"4":{"start":{"line":32,"column":2},"end":{"line":35,"column":3}},"5":{"start":{"line":33,"column":4},"end":{"line":33,"column":24}},"6":{"start":{"line":34,"column":4},"end":{"line":34,"column":21}},"7":{"start":{"line":37,"column":2},"end":{"line":37,"column":24}},"8":{"start":{"line":38,"column":2},"end":{"line":38,"column":18}},"9":{"start":{"line":39,"column":2},"end":{"line":39,"column":173}},"10":{"start":{"line":40,"column":2},"end":{"line":40,"column":18}},"11":{"start":{"line":41,"column":2},"end":{"line":41,"column":24}},"12":{"start":{"line":42,"column":2},"end":{"line":42,"column":25}},"13":{"start":{"line":43,"column":2},"end":{"line":43,"column":53}},"14":{"start":{"line":44,"column":2},"end":{"line":44,"column":29}},"15":{"start":{"line":45,"column":2},"end":{"line":45,"column":26}},"16":{"start":{"line":48,"column":2},"end":{"line":48,"column":41}},"17":{"start":{"line":49,"column":2},"end":{"line":49,"column":42}},"18":{"start":{"line":50,"column":2},"end":{"line":50,"column":37}},"19":{"start":{"line":51,"column":2},"end":{"line":51,"column":31}},"20":{"start":{"line":52,"column":2},"end":{"line":52,"column":47}},"21":{"start":{"line":53,"column":2},"end":{"line":62,"column":4}},"22":{"start":{"line":54,"column":4},"end":{"line":60,"column":57}},"23":{"start":{"line":57,"column":20},"end":{"line":57,"column":58}},"24":{"start":{"line":61,"column":4},"end":{"line":61,"column":48}},"25":{"start":{"line":65,"column":2},"end":{"line":70,"column":4}},"26":{"start":{"line":66,"column":4},"end":{"line":66,"column":56}},"27":{"start":{"line":67,"column":4},"end":{"line":69,"column":7}},"28":{"start":{"line":68,"column":6},"end":{"line":68,"column":54}},"29":{"start":{"line":72,"column":2},"end":{"line":74,"column":4}},"30":{"start":{"line":73,"column":4},"end":{"line":73,"column":37}},"31":{"start":{"line":76,"column":2},"end":{"line":80,"column":4}},"32":{"start":{"line":77,"column":4},"end":{"line":79,"column":5}},"33":{"start":{"line":78,"column":6},"end":{"line":78,"column":35}},"34":{"start":{"line":82,"column":2},"end":{"line":87,"column":4}},"35":{"start":{"line":83,"column":4},"end":{"line":83,"column":82}},"36":{"start":{"line":84,"column":4},"end":{"line":86,"column":5}},"37":{"start":{"line":85,"column":6},"end":{"line":85,"column":77}},"38":{"start":{"line":89,"column":2},"end":{"line":490,"column":4}},"39":{"start":{"line":115,"column":6},"end":{"line":119,"column":7}},"40":{"start":{"line":116,"column":8},"end":{"line":116,"column":29}},"41":{"start":{"line":118,"column":8},"end":{"line":118,"column":40}},"42":{"start":{"line":122,"column":6},"end":{"line":124,"column":7}},"43":{"start":{"line":123,"column":8},"end":{"line":123,"column":28}},"44":{"start":{"line":127,"column":6},"end":{"line":127,"column":44}},"45":{"start":{"line":130,"column":6},"end":{"line":130,"column":38}},"46":{"start":{"line":134,"column":6},"end":{"line":134,"column":66}},"47":{"start":{"line":137,"column":6},"end":{"line":137,"column":33}},"48":{"start":{"line":139,"column":6},"end":{"line":142,"column":8}},"49":{"start":{"line":140,"column":8},"end":{"line":140,"column":27}},"50":{"start":{"line":141,"column":8},"end":{"line":141,"column":41}},"51":{"start":{"line":144,"column":6},"end":{"line":162,"column":8}},"52":{"start":{"line":145,"column":8},"end":{"line":145,"column":41}},"53":{"start":{"line":146,"column":8},"end":{"line":161,"column":9}},"54":{"start":{"line":148,"column":10},"end":{"line":148,"column":50}},"55":{"start":{"line":149,"column":10},"end":{"line":149,"column":16}},"56":{"start":{"line":153,"column":10},"end":{"line":153,"column":30}},"57":{"start":{"line":155,"column":10},"end":{"line":159,"column":11}},"58":{"start":{"line":156,"column":12},"end":{"line":156,"column":62}},"59":{"start":{"line":158,"column":12},"end":{"line":158,"column":61}},"60":{"start":{"line":160,"column":10},"end":{"line":160,"column":16}},"61":{"start":{"line":164,"column":6},"end":{"line":177,"column":8}},"62":{"start":{"line":165,"column":8},"end":{"line":165,"column":28}},"63":{"start":{"line":166,"column":8},"end":{"line":166,"column":39}},"64":{"start":{"line":168,"column":8},"end":{"line":176,"column":9}},"65":{"start":{"line":170,"column":10},"end":{"line":170,"column":70}},"66":{"start":{"line":171,"column":10},"end":{"line":175,"column":11}},"67":{"start":{"line":172,"column":12},"end":{"line":172,"column":68}},"68":{"start":{"line":174,"column":12},"end":{"line":174,"column":33}},"69":{"start":{"line":179,"column":6},"end":{"line":225,"column":8}},"70":{"start":{"line":180,"column":8},"end":{"line":185,"column":9}},"71":{"start":{"line":181,"column":10},"end":{"line":183,"column":11}},"72":{"start":{"line":182,"column":12},"end":{"line":182,"column":68}},"73":{"start":{"line":184,"column":10},"end":{"line":184,"column":23}},"74":{"start":{"line":188,"column":8},"end":{"line":188,"column":71}},"75":{"start":{"line":189,"column":8},"end":{"line":189,"column":25}},"76":{"start":{"line":190,"column":8},"end":{"line":192,"column":9}},"77":{"start":{"line":191,"column":10},"end":{"line":191,"column":61}},"78":{"start":{"line":194,"column":8},"end":{"line":194,"column":51}},"79":{"start":{"line":195,"column":8},"end":{"line":195,"column":24}},"80":{"start":{"line":197,"column":8},"end":{"line":222,"column":9}},"81":{"start":{"line":199,"column":10},"end":{"line":199,"column":42}},"82":{"start":{"line":200,"column":10},"end":{"line":202,"column":11}},"83":{"start":{"line":201,"column":12},"end":{"line":201,"column":78}},"84":{"start":{"line":205,"column":10},"end":{"line":221,"column":11}},"85":{"start":{"line":206,"column":12},"end":{"line":206,"column":49}},"86":{"start":{"line":207,"column":12},"end":{"line":207,"column":66}},"87":{"start":{"line":208,"column":12},"end":{"line":220,"column":13}},"88":{"start":{"line":209,"column":14},"end":{"line":209,"column":47}},"89":{"start":{"line":210,"column":14},"end":{"line":215,"column":15}},"90":{"start":{"line":211,"column":16},"end":{"line":211,"column":98}},"91":{"start":{"line":212,"column":16},"end":{"line":214,"column":17}},"92":{"start":{"line":213,"column":18},"end":{"line":213,"column":66}},"93":{"start":{"line":217,"column":14},"end":{"line":217,"column":62}},"94":{"start":{"line":218,"column":14},"end":{"line":218,"column":106}},"95":{"start":{"line":219,"column":14},"end":{"line":219,"column":26}},"96":{"start":{"line":223,"column":8},"end":{"line":223,"column":58}},"97":{"start":{"line":224,"column":8},"end":{"line":224,"column":21}},"98":{"start":{"line":228,"column":6},"end":{"line":230,"column":7}},"99":{"start":{"line":229,"column":8},"end":{"line":229,"column":26}},"100":{"start":{"line":231,"column":6},"end":{"line":233,"column":7}},"101":{"start":{"line":232,"column":8},"end":{"line":232,"column":35}},"102":{"start":{"line":255,"column":6},"end":{"line":255,"column":29}},"103":{"start":{"line":256,"column":6},"end":{"line":256,"column":21}},"104":{"start":{"line":257,"column":6},"end":{"line":257,"column":30}},"105":{"start":{"line":258,"column":6},"end":{"line":262,"column":7}},"106":{"start":{"line":259,"column":8},"end":{"line":259,"column":44}},"107":{"start":{"line":261,"column":8},"end":{"line":261,"column":27}},"108":{"start":{"line":263,"column":6},"end":{"line":265,"column":7}},"109":{"start":{"line":264,"column":8},"end":{"line":264,"column":54}},"110":{"start":{"line":267,"column":6},"end":{"line":267,"column":43}},"111":{"start":{"line":268,"column":6},"end":{"line":274,"column":7}},"112":{"start":{"line":269,"column":8},"end":{"line":269,"column":28}},"113":{"start":{"line":271,"column":8},"end":{"line":273,"column":9}},"114":{"start":{"line":272,"column":10},"end":{"line":272,"column":38}},"115":{"start":{"line":286,"column":6},"end":{"line":286,"column":26}},"116":{"start":{"line":287,"column":6},"end":{"line":289,"column":7}},"117":{"start":{"line":288,"column":8},"end":{"line":288,"column":28}},"118":{"start":{"line":301,"column":6},"end":{"line":301,"column":28}},"119":{"start":{"line":311,"column":6},"end":{"line":311,"column":27}},"120":{"start":{"line":321,"column":6},"end":{"line":325,"column":7}},"121":{"start":{"line":322,"column":8},"end":{"line":322,"column":32}},"122":{"start":{"line":324,"column":8},"end":{"line":324,"column":26}},"123":{"start":{"line":336,"column":6},"end":{"line":336,"column":21}},"124":{"start":{"line":337,"column":6},"end":{"line":337,"column":34}},"125":{"start":{"line":358,"column":6},"end":{"line":358,"column":13}},"126":{"start":{"line":360,"column":6},"end":{"line":360,"column":21}},"127":{"start":{"line":362,"column":6},"end":{"line":378,"column":7}},"128":{"start":{"line":363,"column":8},"end":{"line":377,"column":9}},"129":{"start":{"line":364,"column":10},"end":{"line":364,"column":58}},"130":{"start":{"line":365,"column":10},"end":{"line":376,"column":11}},"131":{"start":{"line":367,"column":12},"end":{"line":367,"column":65}},"132":{"start":{"line":368,"column":17},"end":{"line":376,"column":11}},"133":{"start":{"line":370,"column":12},"end":{"line":370,"column":84}},"134":{"start":{"line":372,"column":12},"end":{"line":374,"column":13}},"135":{"start":{"line":373,"column":14},"end":{"line":373,"column":82}},"136":{"start":{"line":375,"column":12},"end":{"line":375,"column":21}},"137":{"start":{"line":404,"column":6},"end":{"line":407,"column":7}},"138":{"start":{"line":405,"column":8},"end":{"line":405,"column":26}},"139":{"start":{"line":406,"column":8},"end":{"line":406,"column":15}},"140":{"start":{"line":408,"column":6},"end":{"line":408,"column":97}},"141":{"start":{"line":409,"column":6},"end":{"line":416,"column":9}},"142":{"start":{"line":410,"column":8},"end":{"line":414,"column":9}},"143":{"start":{"line":411,"column":10},"end":{"line":413,"column":11}},"144":{"start":{"line":412,"column":12},"end":{"line":412,"column":25}},"145":{"start":{"line":415,"column":8},"end":{"line":415,"column":20}},"146":{"start":{"line":459,"column":6},"end":{"line":461,"column":7}},"147":{"start":{"line":460,"column":8},"end":{"line":460,"column":15}},"148":{"start":{"line":462,"column":6},"end":{"line":462,"column":42}},"149":{"start":{"line":463,"column":6},"end":{"line":465,"column":7}},"150":{"start":{"line":464,"column":8},"end":{"line":464,"column":15}},"151":{"start":{"line":466,"column":6},"end":{"line":466,"column":69}},"152":{"start":{"line":477,"column":6},"end":{"line":477,"column":44}},"153":{"start":{"line":488,"column":6},"end":{"line":488,"column":25}}},"branchMap":{"1":{"line":24,"type":"binary-expr","locations":[{"start":{"line":24,"column":26},"end":{"line":24,"column":48}},{"start":{"line":25,"column":26},"end":{"line":25,"column":54}},{"start":{"line":26,"column":26},"end":{"line":26,"column":51}},{"start":{"line":27,"column":26},"end":{"line":27,"column":50}},{"start":{"line":28,"column":26},"end":{"line":28,"column":49}}]},"2":{"line":32,"type":"if","locations":[{"start":{"line":32,"column":2},"end":{"line":32,"column":2}},{"start":{"line":32,"column":2},"end":{"line":32,"column":2}}]},"3":{"line":57,"type":"cond-expr","locations":[{"start":{"line":57,"column":38},"end":{"line":57,"column":43}},{"start":{"line":57,"column":46},"end":{"line":57,"column":57}}]},"4":{"line":77,"type":"if","locations":[{"start":{"line":77,"column":4},"end":{"line":77,"column":4}},{"start":{"line":77,"column":4},"end":{"line":77,"column":4}}]},"5":{"line":84,"type":"if","locations":[{"start":{"line":84,"column":4},"end":{"line":84,"column":4}},{"start":{"line":84,"column":4},"end":{"line":84,"column":4}}]},"6":{"line":115,"type":"if","locations":[{"start":{"line":115,"column":6},"end":{"line":115,"column":6}},{"start":{"line":115,"column":6},"end":{"line":115,"column":6}}]},"7":{"line":122,"type":"if","locations":[{"start":{"line":122,"column":6},"end":{"line":122,"column":6}},{"start":{"line":122,"column":6},"end":{"line":122,"column":6}}]},"8":{"line":122,"type":"binary-expr","locations":[{"start":{"line":122,"column":10},"end":{"line":122,"column":21}},{"start":{"line":122,"column":25},"end":{"line":122,"column":42}}]},"9":{"line":146,"type":"switch","locations":[{"start":{"line":147,"column":8},"end":{"line":149,"column":16}},{"start":{"line":150,"column":8},"end":{"line":150,"column":27}},{"start":{"line":151,"column":8},"end":{"line":160,"column":16}}]},"10":{"line":155,"type":"if","locations":[{"start":{"line":155,"column":10},"end":{"line":155,"column":10}},{"start":{"line":155,"column":10},"end":{"line":155,"column":10}}]},"11":{"line":168,"type":"if","locations":[{"start":{"line":168,"column":8},"end":{"line":168,"column":8}},{"start":{"line":168,"column":8},"end":{"line":168,"column":8}}]},"12":{"line":171,"type":"if","locations":[{"start":{"line":171,"column":10},"end":{"line":171,"column":10}},{"start":{"line":171,"column":10},"end":{"line":171,"column":10}}]},"13":{"line":180,"type":"if","locations":[{"start":{"line":180,"column":8},"end":{"line":180,"column":8}},{"start":{"line":180,"column":8},"end":{"line":180,"column":8}}]},"14":{"line":181,"type":"if","locations":[{"start":{"line":181,"column":10},"end":{"line":181,"column":10}},{"start":{"line":181,"column":10},"end":{"line":181,"column":10}}]},"15":{"line":200,"type":"if","locations":[{"start":{"line":200,"column":10},"end":{"line":200,"column":10}},{"start":{"line":200,"column":10},"end":{"line":200,"column":10}}]},"16":{"line":208,"type":"if","locations":[{"start":{"line":208,"column":12},"end":{"line":208,"column":12}},{"start":{"line":208,"column":12},"end":{"line":208,"column":12}}]},"17":{"line":210,"type":"if","locations":[{"start":{"line":210,"column":14},"end":{"line":210,"column":14}},{"start":{"line":210,"column":14},"end":{"line":210,"column":14}}]},"18":{"line":212,"type":"if","locations":[{"start":{"line":212,"column":16},"end":{"line":212,"column":16}},{"start":{"line":212,"column":16},"end":{"line":212,"column":16}}]},"19":{"line":228,"type":"if","locations":[{"start":{"line":228,"column":6},"end":{"line":228,"column":6}},{"start":{"line":228,"column":6},"end":{"line":228,"column":6}}]},"20":{"line":231,"type":"if","locations":[{"start":{"line":231,"column":6},"end":{"line":231,"column":6}},{"start":{"line":231,"column":6},"end":{"line":231,"column":6}}]},"21":{"line":257,"type":"binary-expr","locations":[{"start":{"line":257,"column":16},"end":{"line":257,"column":23}},{"start":{"line":257,"column":27},"end":{"line":257,"column":29}}]},"22":{"line":258,"type":"if","locations":[{"start":{"line":258,"column":6},"end":{"line":258,"column":6}},{"start":{"line":258,"column":6},"end":{"line":258,"column":6}}]},"23":{"line":263,"type":"if","locations":[{"start":{"line":263,"column":6},"end":{"line":263,"column":6}},{"start":{"line":263,"column":6},"end":{"line":263,"column":6}}]},"24":{"line":271,"type":"if","locations":[{"start":{"line":271,"column":8},"end":{"line":271,"column":8}},{"start":{"line":271,"column":8},"end":{"line":271,"column":8}}]},"25":{"line":287,"type":"if","locations":[{"start":{"line":287,"column":6},"end":{"line":287,"column":6}},{"start":{"line":287,"column":6},"end":{"line":287,"column":6}}]},"26":{"line":321,"type":"if","locations":[{"start":{"line":321,"column":6},"end":{"line":321,"column":6}},{"start":{"line":321,"column":6},"end":{"line":321,"column":6}}]},"27":{"line":363,"type":"if","locations":[{"start":{"line":363,"column":8},"end":{"line":363,"column":8}},{"start":{"line":363,"column":8},"end":{"line":363,"column":8}}]},"28":{"line":364,"type":"binary-expr","locations":[{"start":{"line":364,"column":15},"end":{"line":364,"column":37}},{"start":{"line":364,"column":41},"end":{"line":364,"column":57}}]},"29":{"line":365,"type":"if","locations":[{"start":{"line":365,"column":10},"end":{"line":365,"column":10}},{"start":{"line":365,"column":10},"end":{"line":365,"column":10}}]},"30":{"line":368,"type":"if","locations":[{"start":{"line":368,"column":17},"end":{"line":368,"column":17}},{"start":{"line":368,"column":17},"end":{"line":368,"column":17}}]},"31":{"line":368,"type":"binary-expr","locations":[{"start":{"line":368,"column":21},"end":{"line":368,"column":43}},{"start":{"line":368,"column":47},"end":{"line":368,"column":74}}]},"32":{"line":372,"type":"if","locations":[{"start":{"line":372,"column":12},"end":{"line":372,"column":12}},{"start":{"line":372,"column":12},"end":{"line":372,"column":12}}]},"33":{"line":404,"type":"if","locations":[{"start":{"line":404,"column":6},"end":{"line":404,"column":6}},{"start":{"line":404,"column":6},"end":{"line":404,"column":6}}]},"34":{"line":408,"type":"cond-expr","locations":[{"start":{"line":408,"column":59},"end":{"line":408,"column":75}},{"start":{"line":408,"column":78},"end":{"line":408,"column":96}}]},"35":{"line":411,"type":"if","locations":[{"start":{"line":411,"column":10},"end":{"line":411,"column":10}},{"start":{"line":411,"column":10},"end":{"line":411,"column":10}}]},"36":{"line":459,"type":"if","locations":[{"start":{"line":459,"column":6},"end":{"line":459,"column":6}},{"start":{"line":459,"column":6},"end":{"line":459,"column":6}}]},"37":{"line":462,"type":"binary-expr","locations":[{"start":{"line":462,"column":15},"end":{"line":462,"column":29}},{"start":{"line":462,"column":33},"end":{"line":462,"column":41}}]},"38":{"line":463,"type":"if","locations":[{"start":{"line":463,"column":6},"end":{"line":463,"column":6}},{"start":{"line":463,"column":6},"end":{"line":463,"column":6}}]},"39":{"line":466,"type":"binary-expr","locations":[{"start":{"line":466,"column":51},"end":{"line":466,"column":58}},{"start":{"line":466,"column":62},"end":{"line":466,"column":66}}]},"40":{"line":477,"type":"binary-expr","locations":[{"start":{"line":477,"column":13},"end":{"line":477,"column":24}},{"start":{"line":477,"column":28},"end":{"line":477,"column":43}}]}}}} \ No newline at end of file +{"annyang.js":{"path":"annyang.js","s":{"1":1,"2":1,"3":1,"4":1,"5":0,"6":0,"7":1,"8":1,"9":1,"10":1,"11":1,"12":1,"13":1,"14":1,"15":1,"16":1,"17":1,"18":1,"19":1,"20":1,"21":1,"22":72,"23":21,"24":72,"25":1,"26":191,"27":191,"28":273,"29":1,"30":98,"31":1,"32":98,"33":1,"34":1,"35":82,"36":82,"37":6,"38":1,"39":1,"40":0,"41":1,"42":1,"43":0,"44":1,"45":1,"46":1,"47":1,"48":1,"49":37,"50":37,"51":1,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":1,"62":36,"63":36,"64":36,"65":0,"66":0,"67":0,"68":0,"69":1,"70":60,"71":1,"72":0,"73":1,"74":59,"75":59,"76":59,"77":295,"78":59,"79":59,"80":59,"81":128,"82":128,"83":0,"84":128,"85":232,"86":232,"87":232,"88":42,"89":42,"90":0,"91":0,"92":0,"93":42,"94":42,"95":42,"96":17,"97":17,"98":1,"99":0,"100":1,"101":0,"102":44,"103":44,"104":44,"105":44,"106":0,"107":44,"108":44,"109":0,"110":44,"111":44,"112":44,"113":7,"114":1,"115":69,"116":69,"117":69,"118":9,"119":8,"120":49,"121":48,"122":1,"123":2,"124":2,"125":52,"126":52,"127":52,"128":83,"129":83,"130":83,"131":72,"132":11,"133":10,"134":1,"135":1,"136":1,"137":52,"138":45,"139":45,"140":7,"141":7,"142":32,"143":36,"144":8,"145":24,"146":36,"147":2,"148":34,"149":34,"150":0,"151":34,"152":7,"153":11,"154":7,"155":63,"156":63,"157":30,"158":19,"159":11,"160":22,"161":45},"b":{"1":[1,0,0,0,0],"2":[0,1],"3":[10,11],"4":[1,97],"5":[6,76],"6":[0,1],"7":[0,1],"8":[1,0],"9":[0,0,0],"10":[0,0],"11":[0,36],"12":[0,0],"13":[1,59],"14":[0,1],"15":[0,128],"16":[42,190],"17":[0,42],"18":[0,0],"19":[0,1],"20":[0,1],"21":[44,44],"22":[0,44],"23":[0,44],"24":[1,6],"25":[69,0],"26":[48,1],"27":[83,0],"28":[83,82],"29":[72,11],"30":[10,1],"31":[11,10],"32":[1,0],"33":[45,7],"34":[1,6],"35":[8,28],"36":[2,34],"37":[34,34],"38":[0,34],"39":[34,32],"40":[63,0],"41":[30,33],"42":[63,36],"43":[19,11],"44":[22,15]},"f":{"1":1,"2":72,"3":21,"4":191,"5":273,"6":98,"7":98,"8":82,"9":1,"10":37,"11":0,"12":36,"13":60,"14":44,"15":69,"16":9,"17":8,"18":49,"19":2,"20":52,"21":52,"22":32,"23":36,"24":7,"25":11,"26":22,"27":45},"fnMap":{"1":{"name":"(anonymous_1)","line":7,"loc":{"start":{"line":7,"column":1},"end":{"line":7,"column":22}}},"2":{"name":"(anonymous_2)","line":53,"loc":{"start":{"line":53,"column":24},"end":{"line":53,"column":42}}},"3":{"name":"(anonymous_3)","line":56,"loc":{"start":{"line":56,"column":39},"end":{"line":56,"column":65}}},"4":{"name":"(anonymous_4)","line":65,"loc":{"start":{"line":65,"column":24},"end":{"line":65,"column":44}}},"5":{"name":"(anonymous_5)","line":67,"loc":{"start":{"line":67,"column":22},"end":{"line":67,"column":41}}},"6":{"name":"(anonymous_6)","line":72,"loc":{"start":{"line":72,"column":22},"end":{"line":72,"column":33}}},"7":{"name":"(anonymous_7)","line":76,"loc":{"start":{"line":76,"column":21},"end":{"line":76,"column":32}}},"8":{"name":"(anonymous_8)","line":82,"loc":{"start":{"line":82,"column":24},"end":{"line":82,"column":54}}},"9":{"name":"(anonymous_9)","line":112,"loc":{"start":{"line":112,"column":10},"end":{"line":112,"column":44}}},"10":{"name":"(anonymous_10)","line":139,"loc":{"start":{"line":139,"column":30},"end":{"line":139,"column":41}}},"11":{"name":"(anonymous_11)","line":144,"loc":{"start":{"line":144,"column":30},"end":{"line":144,"column":46}}},"12":{"name":"(anonymous_12)","line":164,"loc":{"start":{"line":164,"column":30},"end":{"line":164,"column":41}}},"13":{"name":"(anonymous_13)","line":179,"loc":{"start":{"line":179,"column":30},"end":{"line":179,"column":46}}},"14":{"name":"(anonymous_14)","line":254,"loc":{"start":{"line":254,"column":11},"end":{"line":254,"column":29}}},"15":{"name":"(anonymous_15)","line":285,"loc":{"start":{"line":285,"column":11},"end":{"line":285,"column":22}}},"16":{"name":"(anonymous_16)","line":300,"loc":{"start":{"line":300,"column":11},"end":{"line":300,"column":22}}},"17":{"name":"(anonymous_17)","line":310,"loc":{"start":{"line":310,"column":12},"end":{"line":310,"column":23}}},"18":{"name":"(anonymous_18)","line":320,"loc":{"start":{"line":320,"column":11},"end":{"line":320,"column":30}}},"19":{"name":"(anonymous_19)","line":335,"loc":{"start":{"line":335,"column":17},"end":{"line":335,"column":36}}},"20":{"name":"(anonymous_20)","line":357,"loc":{"start":{"line":357,"column":17},"end":{"line":357,"column":36}}},"21":{"name":"(anonymous_21)","line":403,"loc":{"start":{"line":403,"column":20},"end":{"line":403,"column":47}}},"22":{"name":"(anonymous_22)","line":409,"loc":{"start":{"line":409,"column":41},"end":{"line":409,"column":59}}},"23":{"name":"(anonymous_23)","line":458,"loc":{"start":{"line":458,"column":17},"end":{"line":458,"column":51}}},"24":{"name":"(anonymous_24)","line":499,"loc":{"start":{"line":499,"column":20},"end":{"line":499,"column":45}}},"25":{"name":"(anonymous_25)","line":500,"loc":{"start":{"line":500,"column":41},"end":{"line":500,"column":54}}},"26":{"name":"(anonymous_26)","line":527,"loc":{"start":{"line":527,"column":17},"end":{"line":527,"column":28}}},"27":{"name":"(anonymous_27)","line":538,"loc":{"start":{"line":538,"column":25},"end":{"line":538,"column":36}}}},"statementMap":{"1":{"start":{"line":7,"column":0},"end":{"line":543,"column":14}},"2":{"start":{"line":21,"column":2},"end":{"line":21,"column":18}},"3":{"start":{"line":24,"column":2},"end":{"line":28,"column":50}},"4":{"start":{"line":32,"column":2},"end":{"line":35,"column":3}},"5":{"start":{"line":33,"column":4},"end":{"line":33,"column":24}},"6":{"start":{"line":34,"column":4},"end":{"line":34,"column":21}},"7":{"start":{"line":37,"column":2},"end":{"line":37,"column":24}},"8":{"start":{"line":38,"column":2},"end":{"line":38,"column":18}},"9":{"start":{"line":39,"column":2},"end":{"line":39,"column":173}},"10":{"start":{"line":40,"column":2},"end":{"line":40,"column":18}},"11":{"start":{"line":41,"column":2},"end":{"line":41,"column":24}},"12":{"start":{"line":42,"column":2},"end":{"line":42,"column":25}},"13":{"start":{"line":43,"column":2},"end":{"line":43,"column":53}},"14":{"start":{"line":44,"column":2},"end":{"line":44,"column":29}},"15":{"start":{"line":45,"column":2},"end":{"line":45,"column":26}},"16":{"start":{"line":48,"column":2},"end":{"line":48,"column":41}},"17":{"start":{"line":49,"column":2},"end":{"line":49,"column":42}},"18":{"start":{"line":50,"column":2},"end":{"line":50,"column":37}},"19":{"start":{"line":51,"column":2},"end":{"line":51,"column":31}},"20":{"start":{"line":52,"column":2},"end":{"line":52,"column":47}},"21":{"start":{"line":53,"column":2},"end":{"line":62,"column":4}},"22":{"start":{"line":54,"column":4},"end":{"line":60,"column":57}},"23":{"start":{"line":57,"column":20},"end":{"line":57,"column":58}},"24":{"start":{"line":61,"column":4},"end":{"line":61,"column":48}},"25":{"start":{"line":65,"column":2},"end":{"line":70,"column":4}},"26":{"start":{"line":66,"column":4},"end":{"line":66,"column":56}},"27":{"start":{"line":67,"column":4},"end":{"line":69,"column":7}},"28":{"start":{"line":68,"column":6},"end":{"line":68,"column":54}},"29":{"start":{"line":72,"column":2},"end":{"line":74,"column":4}},"30":{"start":{"line":73,"column":4},"end":{"line":73,"column":37}},"31":{"start":{"line":76,"column":2},"end":{"line":80,"column":4}},"32":{"start":{"line":77,"column":4},"end":{"line":79,"column":5}},"33":{"start":{"line":78,"column":6},"end":{"line":78,"column":35}},"34":{"start":{"line":82,"column":2},"end":{"line":87,"column":4}},"35":{"start":{"line":83,"column":4},"end":{"line":83,"column":82}},"36":{"start":{"line":84,"column":4},"end":{"line":86,"column":5}},"37":{"start":{"line":85,"column":6},"end":{"line":85,"column":77}},"38":{"start":{"line":89,"column":2},"end":{"line":541,"column":4}},"39":{"start":{"line":115,"column":6},"end":{"line":119,"column":7}},"40":{"start":{"line":116,"column":8},"end":{"line":116,"column":29}},"41":{"start":{"line":118,"column":8},"end":{"line":118,"column":40}},"42":{"start":{"line":122,"column":6},"end":{"line":124,"column":7}},"43":{"start":{"line":123,"column":8},"end":{"line":123,"column":28}},"44":{"start":{"line":127,"column":6},"end":{"line":127,"column":44}},"45":{"start":{"line":130,"column":6},"end":{"line":130,"column":38}},"46":{"start":{"line":134,"column":6},"end":{"line":134,"column":66}},"47":{"start":{"line":137,"column":6},"end":{"line":137,"column":33}},"48":{"start":{"line":139,"column":6},"end":{"line":142,"column":8}},"49":{"start":{"line":140,"column":8},"end":{"line":140,"column":27}},"50":{"start":{"line":141,"column":8},"end":{"line":141,"column":41}},"51":{"start":{"line":144,"column":6},"end":{"line":162,"column":8}},"52":{"start":{"line":145,"column":8},"end":{"line":145,"column":41}},"53":{"start":{"line":146,"column":8},"end":{"line":161,"column":9}},"54":{"start":{"line":148,"column":10},"end":{"line":148,"column":50}},"55":{"start":{"line":149,"column":10},"end":{"line":149,"column":16}},"56":{"start":{"line":153,"column":10},"end":{"line":153,"column":30}},"57":{"start":{"line":155,"column":10},"end":{"line":159,"column":11}},"58":{"start":{"line":156,"column":12},"end":{"line":156,"column":62}},"59":{"start":{"line":158,"column":12},"end":{"line":158,"column":61}},"60":{"start":{"line":160,"column":10},"end":{"line":160,"column":16}},"61":{"start":{"line":164,"column":6},"end":{"line":177,"column":8}},"62":{"start":{"line":165,"column":8},"end":{"line":165,"column":28}},"63":{"start":{"line":166,"column":8},"end":{"line":166,"column":39}},"64":{"start":{"line":168,"column":8},"end":{"line":176,"column":9}},"65":{"start":{"line":170,"column":10},"end":{"line":170,"column":70}},"66":{"start":{"line":171,"column":10},"end":{"line":175,"column":11}},"67":{"start":{"line":172,"column":12},"end":{"line":172,"column":68}},"68":{"start":{"line":174,"column":12},"end":{"line":174,"column":33}},"69":{"start":{"line":179,"column":6},"end":{"line":225,"column":8}},"70":{"start":{"line":180,"column":8},"end":{"line":185,"column":9}},"71":{"start":{"line":181,"column":10},"end":{"line":183,"column":11}},"72":{"start":{"line":182,"column":12},"end":{"line":182,"column":68}},"73":{"start":{"line":184,"column":10},"end":{"line":184,"column":23}},"74":{"start":{"line":188,"column":8},"end":{"line":188,"column":71}},"75":{"start":{"line":189,"column":8},"end":{"line":189,"column":25}},"76":{"start":{"line":190,"column":8},"end":{"line":192,"column":9}},"77":{"start":{"line":191,"column":10},"end":{"line":191,"column":61}},"78":{"start":{"line":194,"column":8},"end":{"line":194,"column":51}},"79":{"start":{"line":195,"column":8},"end":{"line":195,"column":24}},"80":{"start":{"line":197,"column":8},"end":{"line":222,"column":9}},"81":{"start":{"line":199,"column":10},"end":{"line":199,"column":42}},"82":{"start":{"line":200,"column":10},"end":{"line":202,"column":11}},"83":{"start":{"line":201,"column":12},"end":{"line":201,"column":78}},"84":{"start":{"line":205,"column":10},"end":{"line":221,"column":11}},"85":{"start":{"line":206,"column":12},"end":{"line":206,"column":49}},"86":{"start":{"line":207,"column":12},"end":{"line":207,"column":66}},"87":{"start":{"line":208,"column":12},"end":{"line":220,"column":13}},"88":{"start":{"line":209,"column":14},"end":{"line":209,"column":47}},"89":{"start":{"line":210,"column":14},"end":{"line":215,"column":15}},"90":{"start":{"line":211,"column":16},"end":{"line":211,"column":98}},"91":{"start":{"line":212,"column":16},"end":{"line":214,"column":17}},"92":{"start":{"line":213,"column":18},"end":{"line":213,"column":66}},"93":{"start":{"line":217,"column":14},"end":{"line":217,"column":62}},"94":{"start":{"line":218,"column":14},"end":{"line":218,"column":106}},"95":{"start":{"line":219,"column":14},"end":{"line":219,"column":26}},"96":{"start":{"line":223,"column":8},"end":{"line":223,"column":58}},"97":{"start":{"line":224,"column":8},"end":{"line":224,"column":21}},"98":{"start":{"line":228,"column":6},"end":{"line":230,"column":7}},"99":{"start":{"line":229,"column":8},"end":{"line":229,"column":26}},"100":{"start":{"line":231,"column":6},"end":{"line":233,"column":7}},"101":{"start":{"line":232,"column":8},"end":{"line":232,"column":35}},"102":{"start":{"line":255,"column":6},"end":{"line":255,"column":29}},"103":{"start":{"line":256,"column":6},"end":{"line":256,"column":21}},"104":{"start":{"line":257,"column":6},"end":{"line":257,"column":30}},"105":{"start":{"line":258,"column":6},"end":{"line":262,"column":7}},"106":{"start":{"line":259,"column":8},"end":{"line":259,"column":44}},"107":{"start":{"line":261,"column":8},"end":{"line":261,"column":27}},"108":{"start":{"line":263,"column":6},"end":{"line":265,"column":7}},"109":{"start":{"line":264,"column":8},"end":{"line":264,"column":54}},"110":{"start":{"line":267,"column":6},"end":{"line":267,"column":43}},"111":{"start":{"line":268,"column":6},"end":{"line":274,"column":7}},"112":{"start":{"line":269,"column":8},"end":{"line":269,"column":28}},"113":{"start":{"line":271,"column":8},"end":{"line":273,"column":9}},"114":{"start":{"line":272,"column":10},"end":{"line":272,"column":38}},"115":{"start":{"line":286,"column":6},"end":{"line":286,"column":26}},"116":{"start":{"line":287,"column":6},"end":{"line":289,"column":7}},"117":{"start":{"line":288,"column":8},"end":{"line":288,"column":28}},"118":{"start":{"line":301,"column":6},"end":{"line":301,"column":28}},"119":{"start":{"line":311,"column":6},"end":{"line":311,"column":27}},"120":{"start":{"line":321,"column":6},"end":{"line":325,"column":7}},"121":{"start":{"line":322,"column":8},"end":{"line":322,"column":32}},"122":{"start":{"line":324,"column":8},"end":{"line":324,"column":26}},"123":{"start":{"line":336,"column":6},"end":{"line":336,"column":21}},"124":{"start":{"line":337,"column":6},"end":{"line":337,"column":34}},"125":{"start":{"line":358,"column":6},"end":{"line":358,"column":13}},"126":{"start":{"line":360,"column":6},"end":{"line":360,"column":21}},"127":{"start":{"line":362,"column":6},"end":{"line":378,"column":7}},"128":{"start":{"line":363,"column":8},"end":{"line":377,"column":9}},"129":{"start":{"line":364,"column":10},"end":{"line":364,"column":58}},"130":{"start":{"line":365,"column":10},"end":{"line":376,"column":11}},"131":{"start":{"line":367,"column":12},"end":{"line":367,"column":65}},"132":{"start":{"line":368,"column":17},"end":{"line":376,"column":11}},"133":{"start":{"line":370,"column":12},"end":{"line":370,"column":84}},"134":{"start":{"line":372,"column":12},"end":{"line":374,"column":13}},"135":{"start":{"line":373,"column":14},"end":{"line":373,"column":82}},"136":{"start":{"line":375,"column":12},"end":{"line":375,"column":21}},"137":{"start":{"line":404,"column":6},"end":{"line":407,"column":7}},"138":{"start":{"line":405,"column":8},"end":{"line":405,"column":26}},"139":{"start":{"line":406,"column":8},"end":{"line":406,"column":15}},"140":{"start":{"line":408,"column":6},"end":{"line":408,"column":97}},"141":{"start":{"line":409,"column":6},"end":{"line":416,"column":9}},"142":{"start":{"line":410,"column":8},"end":{"line":414,"column":9}},"143":{"start":{"line":411,"column":10},"end":{"line":413,"column":11}},"144":{"start":{"line":412,"column":12},"end":{"line":412,"column":25}},"145":{"start":{"line":415,"column":8},"end":{"line":415,"column":20}},"146":{"start":{"line":459,"column":6},"end":{"line":461,"column":7}},"147":{"start":{"line":460,"column":8},"end":{"line":460,"column":15}},"148":{"start":{"line":462,"column":6},"end":{"line":462,"column":42}},"149":{"start":{"line":463,"column":6},"end":{"line":465,"column":7}},"150":{"start":{"line":464,"column":8},"end":{"line":464,"column":15}},"151":{"start":{"line":466,"column":6},"end":{"line":466,"column":69}},"152":{"start":{"line":500,"column":6},"end":{"line":502,"column":8}},"153":{"start":{"line":501,"column":8},"end":{"line":501,"column":40}},"154":{"start":{"line":504,"column":6},"end":{"line":517,"column":7}},"155":{"start":{"line":505,"column":8},"end":{"line":516,"column":9}},"156":{"start":{"line":507,"column":10},"end":{"line":515,"column":11}},"157":{"start":{"line":509,"column":12},"end":{"line":514,"column":13}},"158":{"start":{"line":510,"column":16},"end":{"line":510,"column":45}},"159":{"start":{"line":513,"column":16},"end":{"line":513,"column":103}},"160":{"start":{"line":528,"column":6},"end":{"line":528,"column":44}},"161":{"start":{"line":539,"column":6},"end":{"line":539,"column":25}}},"branchMap":{"1":{"line":24,"type":"binary-expr","locations":[{"start":{"line":24,"column":26},"end":{"line":24,"column":48}},{"start":{"line":25,"column":26},"end":{"line":25,"column":54}},{"start":{"line":26,"column":26},"end":{"line":26,"column":51}},{"start":{"line":27,"column":26},"end":{"line":27,"column":50}},{"start":{"line":28,"column":26},"end":{"line":28,"column":49}}]},"2":{"line":32,"type":"if","locations":[{"start":{"line":32,"column":2},"end":{"line":32,"column":2}},{"start":{"line":32,"column":2},"end":{"line":32,"column":2}}]},"3":{"line":57,"type":"cond-expr","locations":[{"start":{"line":57,"column":38},"end":{"line":57,"column":43}},{"start":{"line":57,"column":46},"end":{"line":57,"column":57}}]},"4":{"line":77,"type":"if","locations":[{"start":{"line":77,"column":4},"end":{"line":77,"column":4}},{"start":{"line":77,"column":4},"end":{"line":77,"column":4}}]},"5":{"line":84,"type":"if","locations":[{"start":{"line":84,"column":4},"end":{"line":84,"column":4}},{"start":{"line":84,"column":4},"end":{"line":84,"column":4}}]},"6":{"line":115,"type":"if","locations":[{"start":{"line":115,"column":6},"end":{"line":115,"column":6}},{"start":{"line":115,"column":6},"end":{"line":115,"column":6}}]},"7":{"line":122,"type":"if","locations":[{"start":{"line":122,"column":6},"end":{"line":122,"column":6}},{"start":{"line":122,"column":6},"end":{"line":122,"column":6}}]},"8":{"line":122,"type":"binary-expr","locations":[{"start":{"line":122,"column":10},"end":{"line":122,"column":21}},{"start":{"line":122,"column":25},"end":{"line":122,"column":42}}]},"9":{"line":146,"type":"switch","locations":[{"start":{"line":147,"column":8},"end":{"line":149,"column":16}},{"start":{"line":150,"column":8},"end":{"line":150,"column":27}},{"start":{"line":151,"column":8},"end":{"line":160,"column":16}}]},"10":{"line":155,"type":"if","locations":[{"start":{"line":155,"column":10},"end":{"line":155,"column":10}},{"start":{"line":155,"column":10},"end":{"line":155,"column":10}}]},"11":{"line":168,"type":"if","locations":[{"start":{"line":168,"column":8},"end":{"line":168,"column":8}},{"start":{"line":168,"column":8},"end":{"line":168,"column":8}}]},"12":{"line":171,"type":"if","locations":[{"start":{"line":171,"column":10},"end":{"line":171,"column":10}},{"start":{"line":171,"column":10},"end":{"line":171,"column":10}}]},"13":{"line":180,"type":"if","locations":[{"start":{"line":180,"column":8},"end":{"line":180,"column":8}},{"start":{"line":180,"column":8},"end":{"line":180,"column":8}}]},"14":{"line":181,"type":"if","locations":[{"start":{"line":181,"column":10},"end":{"line":181,"column":10}},{"start":{"line":181,"column":10},"end":{"line":181,"column":10}}]},"15":{"line":200,"type":"if","locations":[{"start":{"line":200,"column":10},"end":{"line":200,"column":10}},{"start":{"line":200,"column":10},"end":{"line":200,"column":10}}]},"16":{"line":208,"type":"if","locations":[{"start":{"line":208,"column":12},"end":{"line":208,"column":12}},{"start":{"line":208,"column":12},"end":{"line":208,"column":12}}]},"17":{"line":210,"type":"if","locations":[{"start":{"line":210,"column":14},"end":{"line":210,"column":14}},{"start":{"line":210,"column":14},"end":{"line":210,"column":14}}]},"18":{"line":212,"type":"if","locations":[{"start":{"line":212,"column":16},"end":{"line":212,"column":16}},{"start":{"line":212,"column":16},"end":{"line":212,"column":16}}]},"19":{"line":228,"type":"if","locations":[{"start":{"line":228,"column":6},"end":{"line":228,"column":6}},{"start":{"line":228,"column":6},"end":{"line":228,"column":6}}]},"20":{"line":231,"type":"if","locations":[{"start":{"line":231,"column":6},"end":{"line":231,"column":6}},{"start":{"line":231,"column":6},"end":{"line":231,"column":6}}]},"21":{"line":257,"type":"binary-expr","locations":[{"start":{"line":257,"column":16},"end":{"line":257,"column":23}},{"start":{"line":257,"column":27},"end":{"line":257,"column":29}}]},"22":{"line":258,"type":"if","locations":[{"start":{"line":258,"column":6},"end":{"line":258,"column":6}},{"start":{"line":258,"column":6},"end":{"line":258,"column":6}}]},"23":{"line":263,"type":"if","locations":[{"start":{"line":263,"column":6},"end":{"line":263,"column":6}},{"start":{"line":263,"column":6},"end":{"line":263,"column":6}}]},"24":{"line":271,"type":"if","locations":[{"start":{"line":271,"column":8},"end":{"line":271,"column":8}},{"start":{"line":271,"column":8},"end":{"line":271,"column":8}}]},"25":{"line":287,"type":"if","locations":[{"start":{"line":287,"column":6},"end":{"line":287,"column":6}},{"start":{"line":287,"column":6},"end":{"line":287,"column":6}}]},"26":{"line":321,"type":"if","locations":[{"start":{"line":321,"column":6},"end":{"line":321,"column":6}},{"start":{"line":321,"column":6},"end":{"line":321,"column":6}}]},"27":{"line":363,"type":"if","locations":[{"start":{"line":363,"column":8},"end":{"line":363,"column":8}},{"start":{"line":363,"column":8},"end":{"line":363,"column":8}}]},"28":{"line":364,"type":"binary-expr","locations":[{"start":{"line":364,"column":15},"end":{"line":364,"column":37}},{"start":{"line":364,"column":41},"end":{"line":364,"column":57}}]},"29":{"line":365,"type":"if","locations":[{"start":{"line":365,"column":10},"end":{"line":365,"column":10}},{"start":{"line":365,"column":10},"end":{"line":365,"column":10}}]},"30":{"line":368,"type":"if","locations":[{"start":{"line":368,"column":17},"end":{"line":368,"column":17}},{"start":{"line":368,"column":17},"end":{"line":368,"column":17}}]},"31":{"line":368,"type":"binary-expr","locations":[{"start":{"line":368,"column":21},"end":{"line":368,"column":43}},{"start":{"line":368,"column":47},"end":{"line":368,"column":74}}]},"32":{"line":372,"type":"if","locations":[{"start":{"line":372,"column":12},"end":{"line":372,"column":12}},{"start":{"line":372,"column":12},"end":{"line":372,"column":12}}]},"33":{"line":404,"type":"if","locations":[{"start":{"line":404,"column":6},"end":{"line":404,"column":6}},{"start":{"line":404,"column":6},"end":{"line":404,"column":6}}]},"34":{"line":408,"type":"cond-expr","locations":[{"start":{"line":408,"column":59},"end":{"line":408,"column":75}},{"start":{"line":408,"column":78},"end":{"line":408,"column":96}}]},"35":{"line":411,"type":"if","locations":[{"start":{"line":411,"column":10},"end":{"line":411,"column":10}},{"start":{"line":411,"column":10},"end":{"line":411,"column":10}}]},"36":{"line":459,"type":"if","locations":[{"start":{"line":459,"column":6},"end":{"line":459,"column":6}},{"start":{"line":459,"column":6},"end":{"line":459,"column":6}}]},"37":{"line":462,"type":"binary-expr","locations":[{"start":{"line":462,"column":15},"end":{"line":462,"column":29}},{"start":{"line":462,"column":33},"end":{"line":462,"column":41}}]},"38":{"line":463,"type":"if","locations":[{"start":{"line":463,"column":6},"end":{"line":463,"column":6}},{"start":{"line":463,"column":6},"end":{"line":463,"column":6}}]},"39":{"line":466,"type":"binary-expr","locations":[{"start":{"line":466,"column":51},"end":{"line":466,"column":58}},{"start":{"line":466,"column":62},"end":{"line":466,"column":66}}]},"40":{"line":505,"type":"if","locations":[{"start":{"line":505,"column":8},"end":{"line":505,"column":8}},{"start":{"line":505,"column":8},"end":{"line":505,"column":8}}]},"41":{"line":507,"type":"if","locations":[{"start":{"line":507,"column":10},"end":{"line":507,"column":10}},{"start":{"line":507,"column":10},"end":{"line":507,"column":10}}]},"42":{"line":507,"type":"binary-expr","locations":[{"start":{"line":507,"column":14},"end":{"line":507,"column":32}},{"start":{"line":507,"column":36},"end":{"line":507,"column":57}}]},"43":{"line":509,"type":"if","locations":[{"start":{"line":509,"column":12},"end":{"line":509,"column":12}},{"start":{"line":509,"column":12},"end":{"line":509,"column":12}}]},"44":{"line":528,"type":"binary-expr","locations":[{"start":{"line":528,"column":13},"end":{"line":528,"column":24}},{"start":{"line":528,"column":28},"end":{"line":528,"column":43}}]}}}} \ No newline at end of file diff --git a/test/coverage/index.html b/test/coverage/index.html index 9e03865..ba36346 100644 --- a/test/coverage/index.html +++ b/test/coverage/index.html @@ -20,24 +20,24 @@

- 82.35% + 83.23% Statements - 126/153 + 134/161
- 65.48% + 67.39% Branches - 55/84 + 62/92
- 96% + 96.3% Functions - 24/25 + 26/27
- 82.35% + 83.23% Lines - 126/153 + 134/161
@@ -60,15 +60,15 @@

__root__/ -
- 82.35% - 126/153 - 65.48% - 55/84 - 96% - 24/25 - 82.35% - 126/153 +
+ 83.23% + 134/161 + 67.39% + 62/92 + 96.3% + 26/27 + 83.23% + 134/161 @@ -77,7 +77,7 @@

diff --git a/test/spec/BasicSpec.js b/test/spec/BasicSpec.js index b5d6382..bd5aee2 100644 --- a/test/spec/BasicSpec.js +++ b/test/spec/BasicSpec.js @@ -51,6 +51,10 @@ expect(annyang.addCallback).toEqual(jasmine.any(Function)); }); + it('should expose removeCallback method', function () { + expect(annyang.removeCallback).toEqual(jasmine.any(Function)); + }); + it('should expose isListening method', function () { expect(annyang.isListening).toEqual(jasmine.any(Function)); }); @@ -353,6 +357,83 @@ }); + describe('annyang.removeCallback', function() { + + var spy1; + var spy2; + var spy3; + var spy4; + + beforeEach(function() { + annyang.abort(); + spy1 = jasmine.createSpy(); + spy2 = jasmine.createSpy(); + spy3 = jasmine.createSpy(); + spy4 = jasmine.createSpy(); + }); + + it('should always return undefined', function () { + expect(annyang.removeCallback()).toEqual(undefined); + expect(annyang.removeCallback('blergh')).toEqual(undefined); + expect(annyang.removeCallback('start', function() {})).toEqual(undefined); + }); + + it('should delete all callbacks on all event types if passed undefined as the first parameter', function () { + annyang.addCallback('start', spy1); + annyang.addCallback('start', spy2); + annyang.addCallback('end', spy3); + annyang.addCallback('end', spy4); + annyang.removeCallback(); + annyang.start(); + annyang.abort(); + expect(spy1).not.toHaveBeenCalled(); + expect(spy2).not.toHaveBeenCalled(); + expect(spy3).not.toHaveBeenCalled(); + expect(spy4).not.toHaveBeenCalled(); + }); + + it('should delete all callbacks on an event type if passed the event name as the first parameter and undefined as the second parameter', function () { + annyang.addCallback('start', spy1); + annyang.addCallback('start', spy2); + annyang.addCallback('end', spy3); + annyang.addCallback('end', spy4); + annyang.removeCallback('start'); + annyang.start(); + annyang.abort(); + expect(spy1).not.toHaveBeenCalled(); + expect(spy2).not.toHaveBeenCalled(); + expect(spy3).toHaveBeenCalledTimes(1); + expect(spy4).toHaveBeenCalledTimes(1); + }); + + it('should delete all callbacks on an event type passed as first parameter, and matching a function passed as the second parameter', function () { + annyang.addCallback('start', spy1); + annyang.addCallback('start', spy2); + annyang.addCallback('end', spy3); + annyang.addCallback('end', spy4); + annyang.removeCallback('start', spy2); + annyang.start(); + annyang.abort(); + expect(spy1).toHaveBeenCalledTimes(1); + expect(spy2).not.toHaveBeenCalled(); + expect(spy3).toHaveBeenCalledTimes(1); + expect(spy4).toHaveBeenCalledTimes(1); + }); + + it('should delete all callbacks matching a function passed as the second parameter on all event types if first parameter is undefined', function () { + annyang.addCallback('start', spy1); + annyang.addCallback('start', spy2); + annyang.addCallback('end', spy1); + annyang.addCallback('end', spy2); + annyang.removeCallback(undefined, spy1); + annyang.start(); + annyang.abort(); + expect(spy1).not.toHaveBeenCalled(); + expect(spy2).toHaveBeenCalledTimes(2); + }); + + }); + describe("annyang.getSpeechRecognizer", function() { beforeEach(function() {