wip: compiler should default to v3 behavior

This commit is contained in:
Evan You 2021-04-17 15:55:14 -04:00
parent 3528ced0b4
commit c5c304af14
3 changed files with 13 additions and 5 deletions

View File

@ -306,6 +306,7 @@ describe('compiler: v-if', () => {
code: ErrorCodes.X_V_IF_SAME_KEY
}
])
expect('unnecessary key usage on v-if').toHaveBeenWarned()
})
})

View File

@ -96,13 +96,18 @@ const deprecationData: Record<CompilerDeprecationTypes, DeprecationData> = {
}
function getCompatValue(
key: CompilerDeprecationTypes,
key: CompilerDeprecationTypes | 'MODE',
context: ParserContext | TransformContext
) {
const config = (context as ParserContext).options
? (context as ParserContext).options.compatConfig
: (context as TransformContext).compatConfig
return config && config[key]
const value = config && config[key]
if (key === 'MODE') {
return value || 3 // compiler defaults to v3 behavior
} else {
return value
}
}
export function checkCompatEnabled(
@ -111,9 +116,11 @@ export function checkCompatEnabled(
loc: SourceLocation | null,
...args: any[]
): boolean {
const mode = getCompatValue('MODE', context)
const value = getCompatValue(key, context)
// during tests, only enable when value is explicitly true
const enabled = __TEST__ ? value === true : value !== false
// in v3 mode, only enable if explicitly set to true
// otherwise enable for any non-false value
const enabled = mode === 3 ? value === true : value !== false
if (__DEV__ && enabled) {
warnDeprecation(key, context, loc, ...args)
}

View File

@ -14,7 +14,7 @@ export function defaultOnError(error: CompilerError) {
}
export function defaultOnWarn(msg: CompilerError) {
__DEV__ && console.warn(`[Vue warn]`, msg.message)
__DEV__ && console.warn(`[Vue warn] ${msg.message}`)
}
export function createCompilerError<T extends number>(