summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--mrbgems/mruby-compiler/core/codegen.c4
-rw-r--r--test/t/syntax.rb7
2 files changed, 6 insertions, 5 deletions
diff --git a/mrbgems/mruby-compiler/core/codegen.c b/mrbgems/mruby-compiler/core/codegen.c
index a17dbf972..4d7c5fa8c 100644
--- a/mrbgems/mruby-compiler/core/codegen.c
+++ b/mrbgems/mruby-compiler/core/codegen.c
@@ -2355,7 +2355,7 @@ codegen(codegen_scope *s, node *tree, int val)
case NODE_YIELD:
{
codegen_scope *s2 = s;
- int lv = 0, ainfo = 0;
+ int lv = 0, ainfo = -1;
int n = 0, sendv = 0;
while (!s2->mscope) {
@@ -2365,8 +2365,8 @@ codegen(codegen_scope *s, node *tree, int val)
}
if (s2) {
ainfo = s2->ainfo;
- if (ainfo < 0) codegen_error(s, "invalid yield (SyntaxError)");
}
+ if (ainfo < 0) codegen_error(s, "invalid yield (SyntaxError)");
push();
if (tree) {
n = gen_values(s, tree, VAL, 0);
diff --git a/test/t/syntax.rb b/test/t/syntax.rb
index 3b6de6c18..b3ee2d438 100644
--- a/test/t/syntax.rb
+++ b/test/t/syntax.rb
@@ -35,9 +35,10 @@ assert('super', '11.3.4') do
end
assert('yield', '11.3.5') do
- assert_raise LocalJumpError do
- yield
- end
+# it's syntax error now
+# assert_raise LocalJumpError do
+# yield
+# end
assert_raise LocalJumpError do
o = Object.new
def o.foo