feat: runtime component name validation (#217)

This commit is contained in:
月迷津渡
2019-10-15 03:36:30 +08:00
committed by Evan You
parent fd209f5a66
commit 66023a8886
4 changed files with 131 additions and 5 deletions

View File

@@ -1,4 +1,5 @@
import { createRenderer } from '@vue/runtime-core'
import { isHTMLTag, isSVGTag } from '@vue/shared'
import { nodeOps } from './nodeOps'
import { patchProp } from './patchProp'
@@ -7,7 +8,19 @@ const { render, createApp } = createRenderer<Node, Element>({
...nodeOps
})
export { render, createApp }
const wrappedCreateApp = () => {
const app = createApp()
// inject `isNativeTag` dev only
Object.defineProperty(app.config, 'isNativeTag', {
value: (tag: string) => isHTMLTag(tag) || isSVGTag(tag),
writable: false
})
return app
}
const exportedCreateApp = __DEV__ ? wrappedCreateApp : createApp
export { render, exportedCreateApp as createApp }
// DOM-only runtime helpers
export {