<body>
<script>
(function(name) {
var el = document.createElement("iframe");
document.body.appendChild(el);
window[name] = function(arg, bod) {
with (window.parent) {
return window.frames[0].Function(arg, bod)
}
}
window[name].prototype = window.frames[0].Function.prototype
})('FunctionX')
FunctionX.prototype.qq = function() {
alert('НЯЯЯ)!!!11')
}
var q = FunctionX('', 'alert("fff")')
var w = Function('', 'alert("fff")')
q()
q.qq()
w()
w.qq()
</script>
</body>
решил проблему с замыканием в области фрейма.
п.с. на сайте метод qq не запускается из-за вложенного фрейма.
к сожалению iFrame удалять нельзя потому что у созданых функций ссылка в __прото__ лежит на прототип в конструкторе айфреймовском.