From 26f5d25243f349ef9429d6000ed92452b8df86c9 Mon Sep 17 00:00:00 2001 From: Jonathan Turner Date: Mon, 6 Jul 2009 13:01:28 +0000 Subject: [PATCH] Bug fix to returning values inside of a loop --- chaiscript/chaiscript_eval.hpp | 3 ++- chaiscript/chaiscript_prelude.hpp | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/chaiscript/chaiscript_eval.hpp b/chaiscript/chaiscript_eval.hpp index 3a72fc9..12b1f3f 100644 --- a/chaiscript/chaiscript_eval.hpp +++ b/chaiscript/chaiscript_eval.hpp @@ -556,8 +556,9 @@ namespace chaiscript retval = eval_token(ss, node->children[i]); } catch (const chaiscript::ReturnValue &rv) { + ss.pop_scope(); retval = rv.retval; - break; + throw; } catch (...) { ss.pop_scope(); diff --git a/chaiscript/chaiscript_prelude.hpp b/chaiscript/chaiscript_prelude.hpp index 1b93082..8a5d6f3 100644 --- a/chaiscript/chaiscript_prelude.hpp +++ b/chaiscript/chaiscript_prelude.hpp @@ -139,7 +139,7 @@ def generate_range(x, y) { \n\ var i = x; \n\ var retval = Vector(); \n\ while (i <= y) { \n\ - retval.push_back(clone(i)); \n\ + retval.push_back(i); \n\ ++i; \n\ } \n\ retval \n\