Your assumption that every prototype is Objectwrong.
console.log(String.prototype)
console.log(Number.prototype)
console.log(Boolean.prototype)
console.log(Array.prototype)
console.log(Object.prototype)
Output:
String {}
Number {}
Boolean {}
[]
Object {}
From ECMAScript Language Specification - 15.4.4 Properties of the Array Prototype Object (highlighted by me)
The value of the [[Prototype]] internal property of an Array prototype object is the standard built-in object of the prototype object (15.2.4).
- ; [[]] "", length ( +0) [[DefineOwnProperty]], 15.4.5.1.