From 14b0dc527456674a1f705e0afd4e10d413e9406c Mon Sep 17 00:00:00 2001 From: Rich Harris Date: Fri, 27 Apr 2018 09:09:54 -0400 Subject: [PATCH] handle shorthand properties in expressions --- src/generators/nodes/shared/Expression.ts | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/generators/nodes/shared/Expression.ts b/src/generators/nodes/shared/Expression.ts index 465b0385d7..bbc4c96a32 100644 --- a/src/generators/nodes/shared/Expression.ts +++ b/src/generators/nodes/shared/Expression.ts @@ -42,7 +42,10 @@ export default class Expression { const { thisReferences } = this; walk(info, { - enter(node: any, parent: any) { + enter(node: any, parent: any, key: string) { + // don't manipulate shorthand props twice + if (key === 'value' && parent.shorthand) return; + code.addSourcemapLocation(node.start); code.addSourcemapLocation(node.end); @@ -69,7 +72,9 @@ export default class Expression { return; } - code.prependRight(node.start, 'ctx.'); + code.prependRight(node.start, key === 'key' && parent.shorthand + ? `${name}: ctx.` + : 'ctx.'); if (scope.names.has(name)) { scope.dependenciesForName.get(name).forEach(dependency => {