melky,
А чего верить на слово то? Просто движок внутри себя вызывает функцию toString у объектов попадающих в квадратные скобки, когда таким образом обращаешься к массиву/объекту. А вот как раз туда передаётся то, что приходит по reference. Далее примерно такой псевдокод:
get function getByIndex(object){
return this[object.toString()] // ну или valueOf().toString()
}
set function setByIndex(object, value){
return (this[object.toString()] = value);
}
Так что я не прав скорее с тем, что сразу передаётся valueOf, оно просто вычисляется во внутренней функции.
А конструкция тогда - ObjectWrapNumber[ObjectWrapNumber].
П.С. Что ключ в итоге всегда строка это и так понятно