--- !ditz.rubyforge.org,2008-03-06/issue title: "assertion failed: act->var_env == NULL (duk_js_var.c:506) with execution step limit" desc: |- Running a modified test-dev-coroutine-basic.js (add a few try-catches and an infinite loop to the resumed function): diff --git a/ecmascript-testcases/test-dev-coroutine-basic.js b/ecmascript-testcases/test-dev-coroutine-basic.js index 7feb632..1a1e542 100644 --- a/ecmascript-testcases/test-dev-coroutine-basic.js +++ b/ecmascript-testcases/test-dev-coroutine-basic.js @@ -29,6 +29,14 @@ function yielder(x) { print('resumed with', yield(2)); print('resumed with', yield(3)); +try { + try { + for (;;) {} + } catch (e2) { + } +} catch (e) { +} + print('yielder ending'); return 123; } type: :bugfix component: duk release: v0.9 reporter: sva status: :closed disposition: :fixed creation_time: 2014-01-05 14:16:33.480847 Z references: [] id: 3a01b3350abf46207f6d0da69c9873710b700045 log_events: - - 2014-01-05 14:16:33.656938 Z - sva - created - "" - - 2014-01-05 14:31:03.153259 Z - sva - commented - "See: test-dev-bug-throw-in-catch.js" - - 2014-01-05 14:31:09.921268 Z - sva - changed status from unstarted to in_progress - "" - - 2014-01-05 22:30:05.035887 Z - sva - commented - |- Thread termination function unwound call and catch stacks in an incorrect order. This was not usually triggered, because the catch stack is usually empty when the call stack is unwound. - - 2014-01-05 22:43:39.661509 Z - sva - closed with disposition fixed - ""