> Object.create(null) (I'm paranoid)

Assuming nobody adds a property starting with `--` to `Object.prototype`, we should be okay here. That doesn't mean it can't happen, but it's a lot less likely. Now if I hadn't had the `--` and someone wanted to parse a `--freeze` or `--keys` option, that would have been problematic.

I've definitely learned from commander.js's mistakes there.

----

On the other hand, `Object.create(null)` is definitely the weapon of choice, when you absolutely, positively got to remove every single possible object property from your new object. I actually wasn't previously aware of this capability, by the way, so thanks for bringing this up.

Argh, pay homage to SLJ, or save chars?

----

Okay, this is probably the only way to really be sure. This has the feel of a security hole, even though once someone can control `Object.prototype`, they can do much worse already. Let's do it anyway.

No matter how rare it may be, it does prevent a corner case, and that's always a good thing.

Do you mind if I add a little quote to the comment for this? Though the source code might get a little idiosyncratic if these things start building up.