mirror of https://github.com/vuejs/core.git
fix(compiler): clone loc to `ifNode` (#12131)
fix vuejs/language-tools#4911
This commit is contained in:
parent
4474c113d1
commit
cde2c0671b
|
@ -933,6 +933,10 @@ function getLoc(start: number, end?: number): SourceLocation {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export function cloneLoc(loc: SourceLocation): SourceLocation {
|
||||||
|
return getLoc(loc.start.offset, loc.end.offset)
|
||||||
|
}
|
||||||
|
|
||||||
function setLocEnd(loc: SourceLocation, end: number) {
|
function setLocEnd(loc: SourceLocation, end: number) {
|
||||||
loc.end = tokenizer.getPos(end)
|
loc.end = tokenizer.getPos(end)
|
||||||
loc.source = getSlice(loc.start.offset, end)
|
loc.source = getSlice(loc.start.offset, end)
|
||||||
|
|
|
@ -30,6 +30,7 @@ import {
|
||||||
import { ErrorCodes, createCompilerError } from '../errors'
|
import { ErrorCodes, createCompilerError } from '../errors'
|
||||||
import { processExpression } from './transformExpression'
|
import { processExpression } from './transformExpression'
|
||||||
import { validateBrowserExpression } from '../validateExpression'
|
import { validateBrowserExpression } from '../validateExpression'
|
||||||
|
import { cloneLoc } from '../parser'
|
||||||
import { CREATE_COMMENT, FRAGMENT } from '../runtimeHelpers'
|
import { CREATE_COMMENT, FRAGMENT } from '../runtimeHelpers'
|
||||||
import { findDir, findProp, getMemoedVNodeCall, injectProp } from '../utils'
|
import { findDir, findProp, getMemoedVNodeCall, injectProp } from '../utils'
|
||||||
import { PatchFlags } from '@vue/shared'
|
import { PatchFlags } from '@vue/shared'
|
||||||
|
@ -110,7 +111,7 @@ export function processIf(
|
||||||
const branch = createIfBranch(node, dir)
|
const branch = createIfBranch(node, dir)
|
||||||
const ifNode: IfNode = {
|
const ifNode: IfNode = {
|
||||||
type: NodeTypes.IF,
|
type: NodeTypes.IF,
|
||||||
loc: node.loc,
|
loc: cloneLoc(node.loc),
|
||||||
branches: [branch],
|
branches: [branch],
|
||||||
}
|
}
|
||||||
context.replaceNode(ifNode)
|
context.replaceNode(ifNode)
|
||||||
|
|
Loading…
Reference in New Issue