fix(vue): do not add invalid semicolon for event attr (#5418)

master
Ika 2018-11-11 00:25:11 +08:00 committed by GitHub
parent 2bb95d8924
commit 1ce76290c0
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 41 additions and 1 deletions

View File

@ -910,7 +910,9 @@ function printEmbeddedAttributeValue(node, originalTextToDoc, options) {
const fnExpRE = /^([\w$_]+|\([^)]*?\))\s*=>|^function\s*\(/;
const simplePathRE = /^[A-Za-z_$][\w$]*(?:\.[A-Za-z_$][\w$]*|\['[^']*?']|\["[^"]*?"]|\[\d+]|\[[A-Za-z_$][\w$]*])*$/;
const value = getValue();
const value = getValue()
// https://github.com/vuejs/vue/blob/v2.5.17/src/compiler/helpers.js#L104
.trim();
return printMaybeHug(
simplePathRE.test(value) || fnExpRE.test(value)
? textToDoc(value, { parser: "__js_expression" })

View File

@ -25,6 +25,12 @@ exports[`attributes.vue - vue-verify 1`] = `
:class="(() => { return 'hello' })()"
:key="index /* hello */ "
:key="index // hello "
@click="() => {console.log(test)}"
@click="
() => {
console.log(test);
}
"
></div>
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
<div
@ -71,6 +77,16 @@ exports[`attributes.vue - vue-verify 1`] = `
:key="
index // hello
"
@click="
() => {
console.log(test);
}
"
@click="
() => {
console.log(test);
}
"
></div>
`;
@ -100,6 +116,12 @@ exports[`attributes.vue - vue-verify 2`] = `
:class="(() => { return 'hello' })()"
:key="index /* hello */ "
:key="index // hello "
@click="() => {console.log(test)}"
@click="
() => {
console.log(test);
}
"
></div>
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
<div
@ -146,6 +168,16 @@ exports[`attributes.vue - vue-verify 2`] = `
:key="
index // hello
"
@click="
() => {
console.log(test);
}
"
@click="
() => {
console.log(test);
}
"
></div>
`;

View File

@ -22,4 +22,10 @@
:class="(() => { return 'hello' })()"
:key="index /* hello */ "
:key="index // hello "
@click="() => {console.log(test)}"
@click="
() => {
console.log(test);
}
"
></div>