window.name имеет специальную цель и предполагается, что это строка. Кажется, что Chrome явно передал его в строку, поэтому var name = {};
фактически заканчивает тем, что дает глобальную переменную name
(т.е. window.name
) значение "[object Object]"
. Поскольку это примитив, свойства (name.FirstName
) не будут «прилипать».
Чтобы обойти эту проблему, не используйте name
в качестве глобальной переменной.