Yeah it's a shame, but understandable. Backwards compatibility should be top priority for the web, and you just know somewhere out there someone is relying on that oddball behaviour!

By the way, another way to test for Object-ness could be:
```js
Object.prototype.toString.call(target) === "[object Object]"
```

But I'm not convinced that's better either! I think I'll just leave it as is :)