У топик стартера скорее проблема с регистро зависимостью языка.
<br><input type=button onclick="eval(this.value)" value="alert (history == History)"/>
<br><input type=button onclick="eval(this.value)" value="alert (typeof History)"/>
<br><input type=button onclick="eval(this.value)" value="alert (typeof history)"/>
<br><input type=button onclick="eval(this.value)" value="alert (history.__proto__)"/>
<br><input type=button onclick="eval(this.value)" value="alert (History.__proto__)"/>
<br><input type=button onclick="eval(this.value)" value="alert (window.History.pushState)"/>
<br><input type=button onclick="eval(this.value)" value="alert (window.history.pushState)"/>
В случае history это объект. в случае History это конструктор объектов типа History