Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

It looks exactly like eval is causing the reference to be maintained.

If you change the inner function call parameter 'foo' to ('alert("hi")') you'll see the reference to foo='bar' is still maintained in the inner function. So there is no -direct- reference to foo in the inner function, but there isn't even an -indirect- reference being made in the call to eval. The reference to foo is being maintained purely because eval "might" require it. Or so it appears.

If the return eval(_var) statement is replaced with alert('blah') we're back to foo being undefined in the inner function. So I've definitely got my finger pointed at eval on this one.



Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: