Правильная цепочка прототипов для функции
Каков правильный вывод (то есть правильный в стандарте ECMA) следующей программы?
function nl(x) { document.write(x + "<br>"); }
nl(Function.prototype);
nl(Function.prototype.prototype);
nl(Function.prototype.prototype == Object.prototype);
nl(Function.prototype.prototype.prototype);
Chrome и IE6 согласны в том, что:
function Empty() {}
null for Chrome / undefined for IE6
false
а затем сбой.
Выходы Mozilla:
function () { }
[object Object]
false
undefined
Правильны ли они? Кажется, что Mozilla делает лучше, но что лучший выход
function () { }
[object Object]
true
undefined