From 35dbef268ca43234aa8544a62dfa4240dcc2974e Mon Sep 17 00:00:00 2001 From: underfin <2218301630@qq.com> Date: Mon, 15 Jun 2020 23:20:00 +0800 Subject: [PATCH] fix(compiler-core): should not prefix object method (#1375) --- .../__tests__/transforms/transformExpressions.spec.ts | 11 ++++++++--- .../src/transforms/transformExpression.ts | 4 +++- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/packages/compiler-core/__tests__/transforms/transformExpressions.spec.ts b/packages/compiler-core/__tests__/transforms/transformExpressions.spec.ts index 4bab03c00f3..870024a4b9c 100644 --- a/packages/compiler-core/__tests__/transforms/transformExpressions.spec.ts +++ b/packages/compiler-core/__tests__/transforms/transformExpressions.spec.ts @@ -306,14 +306,19 @@ describe('compiler: expression transform', () => { ] }) }) - test('should not prefix an object property key', () => { const node = parseWithExpressionTransform( - `{{ { foo: bar } }}` + `{{ { foo() { baz() }, value: bar } }}` ) as InterpolationNode expect(node.content).toMatchObject({ type: NodeTypes.COMPOUND_EXPRESSION, - children: [`{ foo: `, { content: `_ctx.bar` }, ` }`] + children: [ + `{ foo() { `, + { content: `_ctx.baz` }, + `() }, value: `, + { content: `_ctx.bar` }, + ` }` + ] }) }) diff --git a/packages/compiler-core/src/transforms/transformExpression.ts b/packages/compiler-core/src/transforms/transformExpression.ts index 0d3f145e77b..b1da05b4589 100644 --- a/packages/compiler-core/src/transforms/transformExpression.ts +++ b/packages/compiler-core/src/transforms/transformExpression.ts @@ -271,7 +271,9 @@ const isFunction = (node: Node): node is Function => /Function(Expression|Declaration)$/.test(node.type) const isStaticProperty = (node: Node): node is ObjectProperty => - node && node.type === 'ObjectProperty' && !node.computed + node && + (node.type === 'ObjectProperty' || node.type === 'ObjectMethod') && + !node.computed const isPropertyShorthand = (node: Node, parent: Node) => { return (