From: underfin <2218301630@qq.com> Date: Mon, 15 Jun 2020 15:20:00 +0000 (+0800) Subject: fix(compiler-core): should not prefix object method (#1375) X-Git-Tag: v3.0.0-beta.16~67 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=35dbef268ca43234aa8544a62dfa4240dcc2974e;p=thirdparty%2Fvuejs%2Fcore.git fix(compiler-core): should not prefix object method (#1375) --- diff --git a/packages/compiler-core/__tests__/transforms/transformExpressions.spec.ts b/packages/compiler-core/__tests__/transforms/transformExpressions.spec.ts index 4bab03c00f..870024a4b9 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 0d3f145e77..b1da05b458 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 (