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