2.1.21 [ECMA-262/5] Section 188.8.131.52, Array.prototype.unshift ([item1 [ , item2 [ , ... ]]])
The specification states:
NOTE The unshift function is intentionally generic; it does not require that its this value be an Array object. Therefore it can be transferred to other kinds of objects for use as a method. Whether the unshift function can be applied successfully to a host object is implementation-dependent.
IE9 Mode, IE10 Mode, and IE11 Mode (All Versions)
The unshift method can be applied to a host object; however, some host objects may reject such an application.