diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/lj_parse.c | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/src/lj_parse.c b/src/lj_parse.c index 26300ab5..9e5976f7 100644 --- a/src/lj_parse.c +++ b/src/lj_parse.c | |||
| @@ -1280,12 +1280,14 @@ static void fscope_end(FuncState *fs) | |||
| 1280 | MSize idx = gola_new(ls, NAME_BREAK, VSTACK_LABEL, fs->pc); | 1280 | MSize idx = gola_new(ls, NAME_BREAK, VSTACK_LABEL, fs->pc); |
| 1281 | ls->vtop = idx; /* Drop break label immediately. */ | 1281 | ls->vtop = idx; /* Drop break label immediately. */ |
| 1282 | gola_resolve(ls, bl, idx); | 1282 | gola_resolve(ls, bl, idx); |
| 1283 | } else { /* Need the fixup step to propagate the breaks. */ | ||
| 1284 | gola_fixup(ls, bl); | ||
| 1283 | return; | 1285 | return; |
| 1284 | } /* else: need the fixup step to propagate the breaks. */ | 1286 | } |
| 1285 | } else if (!(bl->flags & FSCOPE_GOLA)) { | 1287 | } |
| 1286 | return; | 1288 | if ((bl->flags & FSCOPE_GOLA)) { |
| 1289 | gola_fixup(ls, bl); | ||
| 1287 | } | 1290 | } |
| 1288 | gola_fixup(ls, bl); | ||
| 1289 | } | 1291 | } |
| 1290 | 1292 | ||
| 1291 | /* Mark scope as having an upvalue. */ | 1293 | /* Mark scope as having an upvalue. */ |
