x && !Array.isArray(x) && typeof x === 'object'.
its typical to start off with `var &&` to avoid operations on null & undefined values
its typical to start off with `var &&` to avoid operations on null & undefined values
!!(x && x.__proto__ === [].__proto__)