Странный вывод странного кода

выведет

Почему?
Вкратце — судя по всему, eval работает с контекстом корректно только при прямом вызове. А если вызвать его ненапрямую, например

то и в этом случае контекст сбросится на глобальный.
Тут есть попытки объяснения:
http://stackoverflow.com/questions/19357978/indirect-eval-call-in-strict-mode
http://stackoverflow.com/questions/9107240/1-evalthis-vs-evalthis-in-javascript

LEAVE A COMMENT