monolithed, мне просто вспомнилось, как когда-то мне надо было эвалить ( я был молод, горяч и любил эвалить
) скрипты. Но так как эвал происходит в текущем контексте, переменные оказывались не там, где надо:
(function(){
eval("var test = true;");
}());
alert("test" in window);
Тогда я решил проблему так:
(function(){
eval.call(window, 'var test = true;');
}());
alert("test" in window);
А потом я неожиданно узнал, что в ie так не получится. Тогда мне помог execScript, но с тех пор я понял: нашел "скрытый бонус", первым делом опробуй его в ie!