From ee9364e011e17439daca1e60a393291f576c2a78 Mon Sep 17 00:00:00 2001 From: Timothy McClure Date: Mon, 22 Jul 2019 09:20:57 -0400 Subject: [PATCH] Reuse getter/setter template --- .../src/fields.js | 38 +++++-------------- .../get-only-setter/output.js | 1 + .../set-only-getter/output.js | 3 +- 3 files changed, 12 insertions(+), 30 deletions(-) diff --git a/packages/babel-helper-create-class-features-plugin/src/fields.js b/packages/babel-helper-create-class-features-plugin/src/fields.js index d52213a92189..0dff4304cd9b 100644 --- a/packages/babel-helper-create-class-features-plugin/src/fields.js +++ b/packages/babel-helper-create-class-features-plugin/src/fields.js @@ -314,35 +314,15 @@ function buildPrivateStaticFieldInitSpec(prop, privateNamesMap) { initAdded: true, }); - if (getId && setId) { - return template.statement.ast` - var ${id.name} = { - // configurable is false by default - // enumerable is false by default - // writable is false by default - get: ${getId.name}, - set: ${setId.name} - } - `; - } else if (getId && !setId) { - return template.statement.ast` - var ${id.name} = { - // configurable is false by default - // enumerable is false by default - // writable is false by default - get: ${getId.name} - } - `; - } else if (!getId && setId) { - return template.statement.ast` - var ${id.name} = { - // configurable is false by default - // enumerable is false by default - // writable is false by default - set: ${setId.name} - } - `; - } + return template.statement.ast` + var ${id.name} = { + // configurable is false by default + // enumerable is false by default + // writable is false by default + get: ${getId ? getId.name : "null"}, + set: ${setId ? setId.name : "null"} + } + `; } const value = prop.node.value || prop.scope.buildUndefinedNode(); diff --git a/packages/babel-plugin-proposal-private-methods/test/fixtures/static-accessors/get-only-setter/output.js b/packages/babel-plugin-proposal-private-methods/test/fixtures/static-accessors/get-only-setter/output.js index 36075fd22e62..aff5135c8ed5 100644 --- a/packages/babel-plugin-proposal-private-methods/test/fixtures/static-accessors/get-only-setter/output.js +++ b/packages/babel-plugin-proposal-private-methods/test/fixtures/static-accessors/get-only-setter/output.js @@ -14,5 +14,6 @@ var _PRIVATE_STATIC_FIELD = { value: 0 }; var _privateStaticFieldValue = { + get: null, set: _set_privateStaticFieldValue }; diff --git a/packages/babel-plugin-proposal-private-methods/test/fixtures/static-accessors/set-only-getter/output.js b/packages/babel-plugin-proposal-private-methods/test/fixtures/static-accessors/set-only-getter/output.js index 7160682ebe44..b58651007e0d 100644 --- a/packages/babel-plugin-proposal-private-methods/test/fixtures/static-accessors/set-only-getter/output.js +++ b/packages/babel-plugin-proposal-private-methods/test/fixtures/static-accessors/set-only-getter/output.js @@ -14,5 +14,6 @@ var _PRIVATE_STATIC_FIELD = { value: 0 }; var _privateStaticFieldValue = { - get: _get_privateStaticFieldValue + get: _get_privateStaticFieldValue, + set: null };