export default function (target, key, descriptor) { const fn = descriptor.value || descriptor.get; return { configurable: true, get() { const bound = fn.bind(this); Object.defineProperty(this, key, { configurable: true, writable: true, value: bound }); return bound; } }; } ;