mirror of https://github.com/vuejs/core.git
Merge bb76e0f762
into 56be3dd4db
This commit is contained in:
commit
def4079a9f
|
@ -188,7 +188,9 @@ function createCodegenContext(
|
||||||
name = content
|
name = content
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
addMapping(node.loc.start, name)
|
if (node.loc.source) {
|
||||||
|
addMapping(node.loc.start, name)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if (newlineIndex === NewlineType.Unknown) {
|
if (newlineIndex === NewlineType.Unknown) {
|
||||||
// multiple newlines, full iteration
|
// multiple newlines, full iteration
|
||||||
|
@ -225,7 +227,7 @@ function createCodegenContext(
|
||||||
context.column = code.length - newlineIndex
|
context.column = code.length - newlineIndex
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (node && node.loc !== locStub) {
|
if (node && node.loc !== locStub && node.loc.source) {
|
||||||
addMapping(node.loc.end)
|
addMapping(node.loc.end)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -157,6 +157,35 @@ test('source map', () => {
|
||||||
).toMatchObject(getPositionInCode(template.content, `foobar`))
|
).toMatchObject(getPositionInCode(template.content, `foobar`))
|
||||||
})
|
})
|
||||||
|
|
||||||
|
test('source map: v-if generated comment should not have original position', () => {
|
||||||
|
const template = parse(
|
||||||
|
`
|
||||||
|
<template>
|
||||||
|
<div v-if="true"></div>
|
||||||
|
</template>
|
||||||
|
`,
|
||||||
|
{ filename: 'example.vue', sourceMap: true },
|
||||||
|
).descriptor.template!
|
||||||
|
|
||||||
|
const { code, map } = compile({
|
||||||
|
filename: 'example.vue',
|
||||||
|
source: template.content,
|
||||||
|
})
|
||||||
|
|
||||||
|
expect(map!.sources).toEqual([`example.vue`])
|
||||||
|
expect(map!.sourcesContent).toEqual([template.content])
|
||||||
|
|
||||||
|
const consumer = new SourceMapConsumer(map as RawSourceMap)
|
||||||
|
const commentNode = code.match(/_createCommentVNode\("v-if", true\)/)
|
||||||
|
expect(commentNode).not.toBeNull()
|
||||||
|
const commentPosition = getPositionInCode(code, commentNode![0])
|
||||||
|
const originalPosition = consumer.originalPositionFor(commentPosition)
|
||||||
|
// the comment node should not be mapped to the original source
|
||||||
|
expect(originalPosition.column).toBeNull()
|
||||||
|
expect(originalPosition.line).toBeNull()
|
||||||
|
expect(originalPosition.source).toBeNull()
|
||||||
|
})
|
||||||
|
|
||||||
test('should work w/ AST from descriptor', () => {
|
test('should work w/ AST from descriptor', () => {
|
||||||
const source = `
|
const source = `
|
||||||
<template>
|
<template>
|
||||||
|
|
Loading…
Reference in New Issue