fix(compiler-core): fix multiline member expression check (#2436)
fix #2426
This commit is contained in:
parent
288c764e52
commit
6d2a1cb64d
@ -36,9 +36,13 @@ return function render(_ctx, _cache) {
|
||||
return (_openBlock(), _createBlock(\\"input\\", {
|
||||
modelValue:
|
||||
model
|
||||
.
|
||||
foo
|
||||
,
|
||||
\\"onUpdate:modelValue\\": $event => (
|
||||
model
|
||||
.
|
||||
foo
|
||||
= $event)
|
||||
}, null, 8 /* PROPS */, [\\"modelValue\\", \\"onUpdate:modelValue\\"]))
|
||||
}
|
||||
|
@ -115,8 +115,9 @@ describe('compiler: transform v-model', () => {
|
||||
expect(generate(root, { mode: 'module' }).code).toMatchSnapshot()
|
||||
})
|
||||
|
||||
// #2426
|
||||
test('simple expression (with multilines)', () => {
|
||||
const root = parseWithVModel('<input v-model="\n model \n" />')
|
||||
const root = parseWithVModel('<input v-model="\n model\n.\nfoo \n" />')
|
||||
const node = root.children[0] as ElementNode
|
||||
const props = ((node.codegenNode as VNodeCall).props as ObjectExpression)
|
||||
.properties
|
||||
@ -127,7 +128,7 @@ describe('compiler: transform v-model', () => {
|
||||
isStatic: true
|
||||
},
|
||||
value: {
|
||||
content: '\n model \n',
|
||||
content: '\n model\n.\nfoo \n',
|
||||
isStatic: false
|
||||
}
|
||||
})
|
||||
@ -141,7 +142,7 @@ describe('compiler: transform v-model', () => {
|
||||
children: [
|
||||
'$event => (',
|
||||
{
|
||||
content: '\n model \n',
|
||||
content: '\n model\n.\nfoo \n',
|
||||
isStatic: false
|
||||
},
|
||||
' = $event)'
|
||||
|
@ -56,7 +56,7 @@ const nonIdentifierRE = /^\d|[^\$\w]/
|
||||
export const isSimpleIdentifier = (name: string): boolean =>
|
||||
!nonIdentifierRE.test(name)
|
||||
|
||||
const memberExpRE = /^[A-Za-z_$][\w$]*(?:\.[A-Za-z_$][\w$]*|\[[^\]]+\])*$/
|
||||
const memberExpRE = /^[A-Za-z_$][\w$]*(?:\s*\.\s*[A-Za-z_$][\w$]*|\[[^\]]+\])*$/
|
||||
export const isMemberExpression = (path: string): boolean => {
|
||||
if (!path) return false
|
||||
return memberExpRE.test(path.trim())
|
||||
|
Loading…
Reference in New Issue
Block a user