src/utils/bindMethods.js
/** @private */
export function bindMethods(instance, methods, appendEmitter = true) {
methods.forEach((method) => {
if (appendEmitter) {
instance[method] = function(...args) {
args.push(this);
return Object.getPrototypeOf(instance)[method].apply(instance, args);
};
} else {
instance[method] = Object.getPrototypeOf(instance)[method].bind(instance);
}
});
}