Когда я это сделаю:
Object.prototype.toString.call( null )
или это:
Object.prototype.toString.call( )
браузеры возвращают следующее строковое значение (в обоих случаях):
Chrome 9: [object global]
Safari 5: [object DOMWindow]
Firefox 3.6: [object Window]
Opera 11: [object Window]
Однако в IE9 RC значения возврата [object Null]
и [object Undefined]
соответственно.
В спецификации ES5 указано:
ПРИМЕЧАНИЕ Значение thisArg передается без изменений, поскольку это стоимость. Это изменение от версии 3, где a undefined или null thisArg заменяется глобальным объектом и ToObject применяется ко всем другим значения, и этот результат передается как это значение.
Смотрите здесь: http://es5.github.com/#x15.3.4.4
Означает ли это, что IE9 является единственным браузером, который следует за этим вновь введенным правилом?