/* "export" pending gotos to outer level, to check them against outer labels; if the block being exited has upvalues, and the goto exits the scope of any variable (which can be the upvalue), close those variables being exited.  */
static void movegotosout(FuncState *fs, BlockCnt *bl)
/* "export" pending gotos to outer level, to check them against outer labels; if the block being exited has upvalues, and the goto exits the scope of any variable (which can be the upvalue), close those variables being exited.  */
static void movegotosout(FuncState *fs, BlockCnt *bl)
{
    Labeldesc *gt = &gl->arr[i];
    if (gt->nactvar > bl->nactvar) {
      if (bl->upval)
        luaK_patchclose(fs, gt->pc, bl->nactvar);
      gt->nactvar = bl->nactvar;
    }
    if (!findlabel(fs->ls, i))
      i++;
  }
}