As of Chrome 43, per spec, the innerHTML
property is on Element.prototype
(as a getter/setter pair), not on element instances. Firefox and IE implement the spec properly. Chrome violates the spec, because they claim the call from JS to C++ would be slower if they put it on the prototype (though in practice, SpiderMonkey manages to make the call faster than V8 for DOM property getters).
For more info about this change see: https://developers.google.com/web/updates/2015/04/DOM-attributes-now-on-the-prototype?hl=en