forked from enviPath/enviPy
Current Dev State
This commit is contained in:
33
static/js/ketcher2/node_modules/bind-obj-methods/bind-obj-methods.js
generated
vendored
Normal file
33
static/js/ketcher2/node_modules/bind-obj-methods/bind-obj-methods.js
generated
vendored
Normal file
@ -0,0 +1,33 @@
|
||||
module.exports = bindObj
|
||||
|
||||
function bindObj (obj, proto, bound) {
|
||||
bound = bound || Object.create(null)
|
||||
if (Array.isArray(bound))
|
||||
bound = bound.reduce(function (set, k) {
|
||||
set[k] = true
|
||||
return set
|
||||
}, Object.create(null))
|
||||
|
||||
// don't try to bind constructors, it's weird
|
||||
bound.constructor = true
|
||||
proto = proto || obj
|
||||
|
||||
Object.keys(proto).forEach(function (k) {
|
||||
if (typeof obj[k] === 'function' && !bound[k]) {
|
||||
bound[k] = true
|
||||
obj[k] = proto[k].bind(obj)
|
||||
}
|
||||
})
|
||||
|
||||
Object.getOwnPropertyNames(proto).forEach(function (k) {
|
||||
if (typeof obj[k] === 'function' && !bound[k]) {
|
||||
bound[k] = true
|
||||
Object.defineProperty(obj, k, {
|
||||
value: obj[k].bind(obj),
|
||||
enumerable: false,
|
||||
configurable: true,
|
||||
writable: true
|
||||
})
|
||||
}
|
||||
})
|
||||
}
|
||||
Reference in New Issue
Block a user