| 6077 | } |
| 6078 | |
| 6079 | void runVoid(CppiaCtx *ctx) HXCPP_OVERRIDE |
| 6080 | { |
| 6081 | if (isWhileDo && !condition->runInt(ctx)) |
| 6082 | return; |
| 6083 | |
| 6084 | BCR_VCHECK; |
| 6085 | |
| 6086 | while(true) |
| 6087 | { |
| 6088 | loop->runVoid(ctx); |
| 6089 | |
| 6090 | if (ctx->exception) |
| 6091 | break; |
| 6092 | |
| 6093 | if (ctx->breakContReturn) |
| 6094 | { |
| 6095 | if (ctx->breakContReturn & (bcrBreak|bcrReturn)) |
| 6096 | break; |
| 6097 | // clear Continue |
| 6098 | ctx->breakContReturn = 0; |
| 6099 | } |
| 6100 | |
| 6101 | if (!condition->runInt(ctx) || ctx->breakContReturn || ctx->exception) |
| 6102 | break; |
| 6103 | } |
| 6104 | ctx->breakContReturn &= ~bcrLoop; |
| 6105 | } |
| 6106 | #ifdef CPPIA_JIT |
| 6107 | void genCode(CppiaCompiler *compiler, const JitVal &inDest, ExprType destType) HXCPP_OVERRIDE |
| 6108 | { |