A replacement prototype for `Object.prototype` with all the same functions
npm install object-prototypeA replacement prototype for Object.prototype with all the same
functions.



```
npm install object-prototype --save
`js
const { create, ObjectPrototype } = require('object-prototype')
const obj1 = create()
const obj2 = {}
console.log(Object.prototype.isPrototypeOf(obj1)) // false
console.log(ObjectPrototype.isPrototypeOf(obj1)) // true
console.log(Object.prototype.isPrototypeOf(obj2)) // true
console.log(ObjectPrototype.isPrototypeOf(obj2)) // false
Object.prototype.foo = 42
console.log(obj1.foo) // undefined
console.log(obj2.foo) // 42
`
The ObjectPrototype property exposed by this module is ment as aObject.prototype
replacement to and has the following ECMAScript
spec'd functions:
- ObjectPrototype.hasOwnProperty()
- ObjectPrototype.isPrototypeOf()
- ObjectPrototype.propertyIsEnumerable()
- ObjectPrototype.toLocaleString()
- ObjectPrototype.toString()
- ObjectPrototype.valueOf()
And the following functions which are considered deprecated according to
the ECMAScript specification:
- ObjectPrototype.__defineGetter__()
- ObjectPrototype.__defineSetter__()
- ObjectPrototype.__lookupGetter__()
- ObjectPrototype.__lookupSetter__()
The create function is a convenience function that returns a newObjectPrototype
object with as its prototype.
This is equivalent to writing Object.create(ObjectPrototype).
The assign function is a convenience function that returns a newObjectPrototype
object with all the same properties as the provided objects, but with as its prototype.
This is equivalent to writing
Object.assign(Object.create(ObjectPrototype), ...objects).
The FunctionPrototype property exposed by this module is ment as aFunction.prototype
replacement to and exposes the same properties.
Given a function as the first argument, safePrototypeFunction willObject.prototype`.
return another function which wraps the given function in a way so that
it doesn't leak