function(type, content, textAfter, state) {
                  if (this.jsonMode) {
                    return /^[\[,{]$/.test(content) || /^}/.test(textAfter);
                  } else {
                    if (content == ";" && state.lexical && state.lexical.type == ")") return false;
                    return /^[;{}]$/.test(content) && !/^;/.test(textAfter);
                  }
                }
function(type, content, textAfter, state) {
                  if (this.jsonMode) {
                    return /^[\[,{]$/.test(content) || /^}/.test(textAfter);
                  } else {
                    if (content == ";" && state.lexical && state.lexical.type == ")") return false;
                    return /^[;{}]$/.test(content) && !/^;/.test(textAfter);
                  }
                }
function ( type , content , textAfter , state ) { if ( this . jsonMode ) { return / ^[\[,{]$ / . test ( content ) || / ^} / . test ( textAfter ) ; } else { if ( content == ";" && state . lexical && state . lexical . type == ")" ) return false ; return / ^[;{}]$ / . test ( content ) && ! / ^; / . test ( textAfter ) ; } }
FIXME semicolons inside of for
FIXME semicolons inside of for