diff --git a/src/addon/java/lua/addon/luacompat/CoroutinesLib.java b/src/addon/java/lua/addon/luacompat/CoroutinesLib.java index 9017c2b6..be2f6ef4 100644 --- a/src/addon/java/lua/addon/luacompat/CoroutinesLib.java +++ b/src/addon/java/lua/addon/luacompat/CoroutinesLib.java @@ -85,7 +85,10 @@ public class CoroutinesLib extends LFunction { case 7: { // wrapped resume LThread t = this.thread; t.resumeFrom( vm, vm.gettop()-1 ); - vm.remove(1); + if ( vm.toboolean(1) ) + vm.remove(1); + else + vm.error( vm.tostring(2), 0 ); return false; } } diff --git a/src/test/res/coroutines.lua b/src/test/res/coroutines.lua index cf3c2196..2cfa3dbc 100644 --- a/src/test/res/coroutines.lua +++ b/src/test/res/coroutines.lua @@ -5,7 +5,7 @@ function printrunning() print("running is not nil") end end - + function foo (a) print("foo", a) return coroutine.yield(2*a)