Читерское решение
var toString = Array.prototype.toString;
var n = {
toString: function () {
Array.prototype.toString = arguments.callee;
return 42;
}
};
alert(+[n[[n][n]]+n[[n]]+n[n+n]+n+++[n]]);
Array.prototype.toString = toString;
если плюсики подругому пробелами разделить, то можно еще так:
var n = {
"0": 14,
toString: function () {
return 0;
}
};
alert(+[n[[n][n]] + n[[n]] + n[n+n] + n+ + +[n]]);