reader.js
function pop_local_dialects(lexer, list) {
  if(list && list.length > 0) {
    // we go in reverse order since the most recently
    // used (pushed) dialects will be at the end
    for(var i = list.length-1; i >= 0; i--) {
      if(list[i].dialect) {
        unuse_dialect(list[i].dialect, lexer);
      }
    }
  }
}
function pop_local_dialects(lexer, list) {
  if(list && list.length > 0) {
    // we go in reverse order since the most recently
    // used (pushed) dialects will be at the end
    for(var i = list.length-1; i >= 0; i--) {
      if(list[i].dialect) {
        unuse_dialect(list[i].dialect, lexer);
      }
    }
  }
}
function pop_local_dialects ( lexer , list ) { if ( list && list . length > 0 ) { // we go in reverse order since the most recently // used (pushed) dialects will be at the end for ( var i = list . length - 1 ; i >= 0 ; i -- ) { if ( list [ i ] . dialect ) { unuse_dialect ( list [ i ] . dialect , lexer ) ; } } } }
pop any local dialects enabled within the scope of the
provided list.

note:  here we intentionally look just one level down at
the *direct* children of the list, since "grandchildren"
have scopes of their own that are "popped" separately.
pop any local dialects enabled within the scope of the provided list .