mirror of
https://gitee.com/vuejs/vue.git
synced 2024-12-02 03:57:36 +08:00
fix(compiler): set end location for incomplete elements (#9598)
This commit is contained in:
parent
1574ade607
commit
cbad54aa52
@ -279,7 +279,7 @@ export function parseHTML (html, options) {
|
||||
) {
|
||||
options.warn(
|
||||
`tag <${stack[i].tag}> has no matching end tag.`,
|
||||
{ start: stack[i].start }
|
||||
{ start: stack[i].start, end: stack[i].end }
|
||||
)
|
||||
}
|
||||
if (options.end) {
|
||||
|
@ -210,7 +210,7 @@ export function parse (
|
||||
shouldDecodeNewlinesForHref: options.shouldDecodeNewlinesForHref,
|
||||
shouldKeepComment: options.comments,
|
||||
outputSourceRange: options.outputSourceRange,
|
||||
start (tag, attrs, unary, start) {
|
||||
start (tag, attrs, unary, start, end) {
|
||||
// check namespace.
|
||||
// inherit parent ns if there is one
|
||||
const ns = (currentParent && currentParent.ns) || platformGetTagNamespace(tag)
|
||||
@ -229,6 +229,7 @@ export function parse (
|
||||
if (process.env.NODE_ENV !== 'production') {
|
||||
if (options.outputSourceRange) {
|
||||
element.start = start
|
||||
element.end = end
|
||||
element.rawAttrsMap = element.attrsList.reduce((cumulated, attr) => {
|
||||
cumulated[attr.name] = attr
|
||||
return cumulated
|
||||
|
@ -140,6 +140,11 @@ describe('compile options', () => {
|
||||
expect(compiled.errors[0].end).toBe(17)
|
||||
expect(compiled.errors[1].start).toBe(18)
|
||||
expect(compiled.errors[1].end).toBe(29)
|
||||
|
||||
compiled = compile('<div><span></div>', { outputSourceRange: true })
|
||||
expect(compiled.errors.length).toBe(1)
|
||||
expect(compiled.errors[0].start).toBe(5)
|
||||
expect(compiled.errors[0].end).toBe(11)
|
||||
})
|
||||
|
||||
it('should collect source range for binding keys', () => {
|
||||
|
Loading…
Reference in New Issue
Block a user