From 05dfb6068389333329dfb0527ffff02d18a9916f Mon Sep 17 00:00:00 2001 From: Miel Truyen Date: Tue, 21 Jan 2020 16:57:39 +0100 Subject: [PATCH] Improved InitializeDefinerProperty (babel-helper) to correctly handle properties with get/setters. (This is revision 2 of a fix...) --- packages/babel-helpers/src/helpers.js | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/packages/babel-helpers/src/helpers.js b/packages/babel-helpers/src/helpers.js index 9212dfb2c2..6e9a1b287c 100644 --- a/packages/babel-helpers/src/helpers.js +++ b/packages/babel-helpers/src/helpers.js @@ -1056,12 +1056,27 @@ helpers.initializerDefineProperty = helper("7.0.0-beta.0")` export default function _initializerDefineProperty(target, property, descriptor, context){ 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, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0, - }); + }); + } } `;