feat(compiler): hoist static trees

This commit is contained in:
Evan You
2019-10-03 23:30:25 -04:00
parent 2e2b6924da
commit 095f5edf8d
11 changed files with 149 additions and 21 deletions

View File

@@ -185,8 +185,15 @@ export function generate(
if (prefixIdentifiers) {
push(`const { ${ast.imports.join(', ')} } = Vue\n`)
} else {
// "with" mode.
// save Vue in a separate variable to avoid collision
push(`const _Vue = Vue\n`)
// in "with" mode, helpers are declared inside the with block to avoid
// has check cost, but hosits are lifted out of the function - we need
// to provide the helper here.
if (ast.hoists.length) {
push(`const _${CREATE_VNODE} = Vue.createVNode\n`)
}
}
}
genHoists(ast.hoists, context)