X-Git-Url: http://git.asbjorn.biz/?a=blobdiff_plain;f=lib%2Fas3%2Fparser.y;h=0c6cfc12b19a55bb02261bcb43553ad561c79151;hb=146ed4a58cdf5c2c786f20aace4d20afd5802ba5;hp=1364b0e380d8b8ffc3f17b8956e5ac29fccc7a5a;hpb=0fb5f216b69c3385216d4038a7caffaecc0100b9;p=swftools.git diff --git a/lib/as3/parser.y b/lib/as3/parser.y index 1364b0e..0c6cfc1 100644 --- a/lib/as3/parser.y +++ b/lib/as3/parser.y @@ -1343,12 +1343,13 @@ WHILE : MAYBELABEL "while" '(' {new_state();} EXPRESSION ')' CODEBLOCK { code_t*myjmp = $$ = abc_jump($$, 0); code_t*loopstart = $$ = abc_label($$); $$ = code_append($$, $7); - myjmp->branch = $$ = abc_nop($$); + code_t*cont = $$ = abc_nop($$); + myjmp->branch = cont; $$ = code_append($$, $5.c); $$ = abc_iftrue($$, loopstart); code_t*out = $$ = abc_nop($$); breakjumpsto($$, $1, out); - continuejumpsto($$, $1, loopstart); + continuejumpsto($$, $1, cont); $$ = killvars($$); old_state();