public override void Evaluate(IScriptContext context) { condition.Evaluate(context); object lastResult = RuntimeHost.NullValue; while ((bool)context.Result) { statement.Evaluate(context); lastResult = context.Result; if (context.IsBreak() || context.IsReturn()) { context.SetBreak(false); break; } if (context.IsContinue()) { context.SetContinue(false); } condition.Evaluate(context); } context.Result = lastResult; }
public override void Evaluate(IScriptContext context) { condition.Evaluate(context); if ((bool)context.Result) { statement.Evaluate(context); } else if (elseStatement != null) { elseStatement.Evaluate(context); } }