define-properties
Define multiple non-enumerable properties at once. Uses `Object.defineProperty` when available; falls back to standard assignment in older engines.
object-keys
An Object.keys replacement, in case Object.keys is not available. From https://github.com/es-shims/es5-shim