!function(mod){"object"==typeof exports&&"object"==typeof module?mod(exports):"function"==typeof define&&define.amd?define(["exports"],mod):mod(tern.comment||(tern.comment={}))}(function(exports){function isSpace(ch){return ch<14&&ch>8||32===ch||160===ch}function onOwnLine(text,pos){for(;pos>0;--pos){var ch=text.charCodeAt(pos-1);if(10==ch)break;if(!isSpace(ch))return!1}return!0}exports.commentsBefore=function(text,pos){var found=null,emptyLines=0,topIsLineComment;out:for(;pos>0;){var prev=text.charCodeAt(pos-1);if(10==prev)for(var scan=--pos,sawNonWS=!1;scan>0;--scan){if(47==(prev=text.charCodeAt(scan-1))&&47==text.charCodeAt(scan-2)){if(!onOwnLine(text,scan-2))break out;var content=text.slice(scan,pos);!emptyLines&&topIsLineComment?found[0]=content+"\n"+found[0]:(found||(found=[])).unshift(content),topIsLineComment=!0,emptyLines=0,pos=scan-2;break}if(10==prev){if(!sawNonWS&&++emptyLines>1)break out;break}sawNonWS||isSpace(prev)||(sawNonWS=!0)}else if(47==prev&&42==text.charCodeAt(pos-2)){for(var scan=pos-2;scan>1;--scan)if(42==text.charCodeAt(scan-1)&&47==text.charCodeAt(scan-2)){if(!onOwnLine(text,scan-2))break out;(found||(found=[])).unshift(text.slice(scan,pos-2)),topIsLineComment=!1,emptyLines=0;break}pos=scan-2}else{if(!isSpace(prev))break;--pos}}return found},exports.commentAfter=function(text,pos){for(;pos