From 2923f1bd401fc6fef5f1699f6ab55e1857a973c7 Mon Sep 17 00:00:00 2001 From: Robin Ricard Date: Fri, 20 Jul 2018 17:29:08 -0400 Subject: [PATCH] Rework helpers --- packages/babel-helpers/src/helpers.js | 14 +++--- .../src/index.js | 50 ++++++++++--------- 2 files changed, 34 insertions(+), 30 deletions(-) diff --git a/packages/babel-helpers/src/helpers.js b/packages/babel-helpers/src/helpers.js index b2d3b893e17a..59fe66557dc2 100644 --- a/packages/babel-helpers/src/helpers.js +++ b/packages/babel-helpers/src/helpers.js @@ -1030,8 +1030,8 @@ helpers.classPrivateFieldSet = () => template.program.ast` } `; -helpers.classStaticPrivateFieldBase = () => template.program.ast` - export default function _classStaticPrivateFieldBase(receiver, classConstructor, privateClass) { +helpers.classStaticPrivateFieldLooseBase = () => template.program.ast` + export default function _classStaticPrivateFieldLooseBase(receiver, classConstructor) { if (receiver !== classConstructor && receiver.constructor !== classConstructor) { throw new TypeError("Private static access of wrong provenance"); } @@ -1039,8 +1039,10 @@ helpers.classStaticPrivateFieldBase = () => template.program.ast` } `; -helpers.classStaticPrivateFieldGet = () => template.program.ast` - export default function _classStaticPrivateFieldGet(receiver, classConstructor, privateClass, privateId) { +helpers.classStaticPrivateFieldSpecGet = () => template.program.ast` + export default function _classStaticPrivateFieldSpecGet( + receiver, classConstructor, privateClass, privateId + ) { if (receiver !== classConstructor && receiver.constructor !== classConstructor) { throw new TypeError("Private static access of wrong provenance"); } @@ -1048,8 +1050,8 @@ helpers.classStaticPrivateFieldGet = () => template.program.ast` } `; -helpers.classStaticPrivateFieldSet = () => template.program.ast` - export default function _classStaticPrivateFieldSet( +helpers.classStaticPrivateFieldSpecSet = () => template.program.ast` + export default function _classStaticPrivateFieldSpecSet( receiver, classConstructor, privateClass, privateId, value ) { if (receiver !== classConstructor && receiver.constructor !== classConstructor) { diff --git a/packages/babel-plugin-proposal-class-properties/src/index.js b/packages/babel-plugin-proposal-class-properties/src/index.js index 46d0ef2fd032..436df686d7a5 100644 --- a/packages/babel-plugin-proposal-class-properties/src/index.js +++ b/packages/babel-plugin-proposal-class-properties/src/index.js @@ -163,24 +163,30 @@ export default declare((api, options) => { get(member) { const { file, privateId, privateClassId, classRef } = this; - return t.callExpression(file.addHelper("classStaticPrivateFieldGet"), [ - this.receiver(member), - classRef, - privateClassId, - t.stringLiteral(privateId.name), - ]); + return t.callExpression( + file.addHelper("classStaticPrivateFieldSpecGet"), + [ + this.receiver(member), + classRef, + privateClassId, + t.stringLiteral(privateId.name), + ], + ); }, set(member, value) { const { file, privateId, privateClassId, classRef } = this; - return t.callExpression(file.addHelper("classStaticPrivateFieldSet"), [ - this.receiver(member), - classRef, - privateClassId, - t.stringLiteral(privateId.name), - value, - ]); + return t.callExpression( + file.addHelper("classStaticPrivateFieldSpecSet"), + [ + this.receiver(member), + classRef, + privateClassId, + t.stringLiteral(privateId.name), + value, + ], + ); }, call(member, args) { @@ -193,17 +199,14 @@ export default declare((api, options) => { const staticPrivatePropertyHandlerLoose = { handle(member) { - const { file, privateId, privateClassId, classRef } = this; + const { file, privateId, classRef } = this; member.replaceWith( - template.expression`BASE(RECEIVER, CLASS, PRIVATE_CLASS_ID).PRIVATE_ID`( - { - BASE: file.addHelper("classStaticPrivateFieldBase"), - RECEIVER: member.node.object, - CLASS: classRef, - PRIVATE_CLASS_ID: privateClassId, - PRIVATE_ID: privateId, - }, - ), + template.expression`BASE(RECEIVER, CLASS).PRIVATE_ID`({ + BASE: file.addHelper("classStaticPrivateFieldLooseBase"), + RECEIVER: member.node.object, + CLASS: classRef, + PRIVATE_ID: privateId, + }), ); }, }; @@ -349,7 +352,6 @@ export default declare((api, options) => { parentPath.traverse(privateNameVisitor, { name, privateId, - privateClassId: ref, classRef: ref, file: state, ...staticPrivatePropertyHandlerLoose,