From 26a09f08cf1ed43c640879f23fdad56c5c9282f7 Mon Sep 17 00:00:00 2001 From: HelenHuang <LinHuang@pollex.com.tw> Date: 星期四, 09 六月 2022 15:02:38 +0800 Subject: [PATCH] TODO#139884 Banner 1 文案調整 --- PAMapp/node_modules/@babel/generator/lib/generators/expressions.js | 77 ++++++++++++++++++++++++++++---------- 1 files changed, 57 insertions(+), 20 deletions(-) diff --git a/PAMapp/node_modules/@babel/generator/lib/generators/expressions.js b/PAMapp/node_modules/@babel/generator/lib/generators/expressions.js index a0f293f..c1caf0d 100644 --- a/PAMapp/node_modules/@babel/generator/lib/generators/expressions.js +++ b/PAMapp/node_modules/@babel/generator/lib/generators/expressions.js @@ -3,31 +3,32 @@ Object.defineProperty(exports, "__esModule", { value: true }); -exports.UnaryExpression = UnaryExpression; -exports.DoExpression = DoExpression; -exports.ParenthesizedExpression = ParenthesizedExpression; -exports.UpdateExpression = UpdateExpression; -exports.ConditionalExpression = ConditionalExpression; -exports.NewExpression = NewExpression; -exports.SequenceExpression = SequenceExpression; -exports.ThisExpression = ThisExpression; -exports.Super = Super; -exports.Decorator = Decorator; -exports.OptionalMemberExpression = OptionalMemberExpression; -exports.OptionalCallExpression = OptionalCallExpression; +exports.LogicalExpression = exports.BinaryExpression = exports.AssignmentExpression = AssignmentExpression; +exports.AssignmentPattern = AssignmentPattern; +exports.AwaitExpression = void 0; +exports.BindExpression = BindExpression; exports.CallExpression = CallExpression; -exports.Import = Import; +exports.ConditionalExpression = ConditionalExpression; +exports.Decorator = Decorator; +exports.DoExpression = DoExpression; exports.EmptyStatement = EmptyStatement; exports.ExpressionStatement = ExpressionStatement; -exports.AssignmentPattern = AssignmentPattern; -exports.LogicalExpression = exports.BinaryExpression = exports.AssignmentExpression = AssignmentExpression; -exports.BindExpression = BindExpression; +exports.Import = Import; exports.MemberExpression = MemberExpression; exports.MetaProperty = MetaProperty; -exports.PrivateName = PrivateName; -exports.V8IntrinsicIdentifier = V8IntrinsicIdentifier; exports.ModuleExpression = ModuleExpression; -exports.AwaitExpression = exports.YieldExpression = void 0; +exports.NewExpression = NewExpression; +exports.OptionalCallExpression = OptionalCallExpression; +exports.OptionalMemberExpression = OptionalMemberExpression; +exports.ParenthesizedExpression = ParenthesizedExpression; +exports.PrivateName = PrivateName; +exports.SequenceExpression = SequenceExpression; +exports.Super = Super; +exports.ThisExpression = ThisExpression; +exports.UnaryExpression = UnaryExpression; +exports.UpdateExpression = UpdateExpression; +exports.V8IntrinsicIdentifier = V8IntrinsicIdentifier; +exports.YieldExpression = void 0; var _t = require("@babel/types"); @@ -127,9 +128,45 @@ this.word("super"); } +function isDecoratorMemberExpression(node) { + switch (node.type) { + case "Identifier": + return true; + + case "MemberExpression": + return !node.computed && node.property.type === "Identifier" && isDecoratorMemberExpression(node.object); + + default: + return false; + } +} + +function shouldParenthesizeDecoratorExpression(node) { + if (node.type === "CallExpression") { + node = node.callee; + } + + if (node.type === "ParenthesizedExpression") { + return false; + } + + return !isDecoratorMemberExpression(node); +} + function Decorator(node) { this.token("@"); - this.print(node.expression, node); + const { + expression + } = node; + + if (shouldParenthesizeDecoratorExpression(expression)) { + this.token("("); + this.print(expression, node); + this.token(")"); + } else { + this.print(expression, node); + } + this.newline(); } -- Gitblit v1.8.0