@web-atoms/core
Version:
43 lines (42 loc) • 1.18 kB
JavaScript
System.register([], function (_export, _context) {
"use strict";
var Disposable;
return {
setters: [],
execute: function () {
Disposable = (target, key) => {
const iVal = target[key];
const keyName = "_" + key;
const disposableKey = "_$_disposable" + key;
target[keyName] = iVal;
if (iVal) {
target[disposableKey] = target.registerDisposable(iVal);
}
const getter = function () {
return this[keyName];
};
const setter = function (newVal) {
const oldValue = this[keyName];
if (oldValue == newVal) {
return;
}
const oldDisposable = this[disposableKey];
if (oldDisposable && oldDisposable.dispose) {
oldDisposable.dispose();
}
this[keyName] = newVal;
};
if (delete target[key]) {
Object.defineProperty(target, key, {
get: getter,
set: setter,
enumerable: true,
configurable: true
});
}
};
_export("default", Disposable);
}
};
});
//# sourceMappingURL=Disposable.js.map