From: Rahul Kadyan Date: Fri, 27 Sep 2019 13:19:03 +0000 (+0530) Subject: fix(compiler): generate correct mappings for v-for and object properties (#69) X-Git-Tag: v3.0.0-alpha.0~682 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=a407b16b2b19276f6a5e8a722a109d9fa4d36677;p=thirdparty%2Fvuejs%2Fcore.git fix(compiler): generate correct mappings for v-for and object properties (#69) --- diff --git a/packages/compiler-core/src/codegen.ts b/packages/compiler-core/src/codegen.ts index a7e0727b3a..a0a72c1f27 100644 --- a/packages/compiler-core/src/codegen.ts +++ b/packages/compiler-core/src/codegen.ts @@ -130,7 +130,7 @@ function createCodegenContext( } }) } - advancePositionWithMutation(context, code) + if (code) advancePositionWithMutation(context, code) if (node && !openOnly) { context.map.addMapping({ source: context.filename, @@ -518,7 +518,8 @@ function genObjectExpression(node: ObjectExpression, context: CodegenContext) { push(multilines ? `{` : `{ `) multilines && indent() for (let i = 0; i < properties.length; i++) { - const { key, value } = properties[i] + const { key, value, loc } = properties[i] + push('', { loc } as any, true) // resets source mapping for every property. // key genExpressionAsPropertyKey(key, context) push(`: `) diff --git a/packages/compiler-core/src/transforms/transformElement.ts b/packages/compiler-core/src/transforms/transformElement.ts index e346afbd1e..0d5cdd049d 100644 --- a/packages/compiler-core/src/transforms/transformElement.ts +++ b/packages/compiler-core/src/transforms/transformElement.ts @@ -25,6 +25,7 @@ import { MERGE_PROPS, TO_HANDLERS } from '../runtimeConstants' +import { getInnerRange } from '../utils' const toValidId = (str: string): string => str.replace(/[^\w]/g, '') @@ -121,7 +122,7 @@ function buildProps( const { loc, name, value } = prop properties.push( createObjectProperty( - createExpression(name, true, loc), + createExpression(name, true, getInnerRange(loc, 0, name.length)), createExpression( value ? value.content : '', true, diff --git a/packages/compiler-core/src/transforms/vFor.ts b/packages/compiler-core/src/transforms/vFor.ts index 9c6b315eba..8e436dc431 100644 --- a/packages/compiler-core/src/transforms/vFor.ts +++ b/packages/compiler-core/src/transforms/vFor.ts @@ -25,7 +25,7 @@ export const transformFor = createStructuralDirectiveTransform( context.replaceNode({ type: NodeTypes.FOR, - loc: node.loc, + loc: dir.loc, source, valueAlias: value, keyAlias: key,