I could use `_.isObject` to protect against the `null` case, but I'm not sure how to guard against `new Number(42)`. We *could* check `prop.__proto__` to see if it is a "plain" object, but that seems overly prescriptive. In realitive, I think code like `$("div").css(new Number(42))` is pretty uncommon, and even if it were used, the behavior is more-or-less expected: the own properties of the object (of which there would be none) are copied into the selection's `style` attribute.

So what do you think of simply:

```diff
 exports.css = function(prop, val) {
   if (arguments.length === 2 ||
-    (typeof prop === 'object' && !_.isArray(prop))) {
+    (_.isObject(prop) && !_.isArray(prop))) {
```