Improved InitializeDefinerProperty (babel-helper) to correctly handle properties with get/setters. (This is revision 2 of a fix...)

This commit is contained in:
Miel Truyen 2020-01-21 16:57:39 +01:00
parent a8e859bb05
commit 05dfb60683

View File

@ -1056,12 +1056,27 @@ helpers.initializerDefineProperty = helper("7.0.0-beta.0")`
export default function _initializerDefineProperty(target, property, descriptor, context){ export default function _initializerDefineProperty(target, property, descriptor, context){
if (!descriptor) return; if (!descriptor) return;
Object.defineProperty(target, property, { if(descriptor.set){
Object.defineProperty(target, property, {
get: descriptor.get,
set: descriptor.set,
configurable: descriptor.configurable,
enumerable: descriptor.enumerable
});
if(descriptor.initializer){
descriptor.set.call(target, descriptor.initializer.call(context));
}else if(descriptor.value!==undefined){
descriptor.set.call(target, descriptor.value);
}
}else{
Object.defineProperty(target, property, {
enumerable: descriptor.enumerable, enumerable: descriptor.enumerable,
configurable: descriptor.configurable, configurable: descriptor.configurable,
writable: descriptor.writable, writable: descriptor.writable,
value: descriptor.initializer ? descriptor.initializer.call(context) : void 0, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0,
}); });
}
} }
`; `;