I pushed a very simple patch for this bug. It still isn't correct, because the resulting code generates a warning, but it's a lot closer to correct than not returning a return value at all. I wasn't sure how to make a correct fix, but I badly need this return value, and this can serve as an interim compromise. On a positive note, this shows how valuable the feature is! (Vladimir, when you get to this, feel free to undo my oversimplified change.)<div>

<br></div><div>Daniel<br><div><br></div><div><div><br><div class="gmail_quote">On Mon, Aug 29, 2011 at 11:56 AM, Daniel Gackle <span dir="ltr"><<a href="mailto:danielgackle@gmail.com">danielgackle@gmail.com</a>></span> wrote:<br>

<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;"><div>I thought this was working at some point, but it doesn't seem to now. FOO() returns undefined in JS, when it should return 123:</div>

<div><br></div><div><div>(defun bar (fn)</div><div>  (funcall fn))</div><div><br>
</div><div>(defun foo ()</div><div>  (bar (lambda () (return-from foo 123))))</div></div><div><br></div><div>It seems the value stored under the name "ps-return-value" isn't actually returned:</div><div><br>


</div><div><div>function foo() {</div><div>    try {</div><div>        return bar(function () {</div><div>            throw { 'ps-block-tag' : 'foo', 'ps-return-value' : 123 };</div><div>        });</div>


<div>    } catch (err) {</div><div>        if (err && 'foo' === err['ps-block-tag']) {</div><div>            err['ps-return-value'];</div><div>        } else {</div><div>            throw err;</div>


<div>        };</div><div>    };</div><div>};</div></div>
</blockquote></div><br></div></div></div>