Просмотр исходного кода

refactor: remove unncessary condition

Evan You 7 лет назад
Родитель
Сommit
03c13de38e

+ 2 - 2
src/core/vdom/helpers/resolve-async-component.js

@@ -65,8 +65,8 @@ export function resolveAsyncComponent (
   if (!isDef(factory.owners)) {
     const owners = factory.owners = [owner]
     let sync = true
- 
-    if (owner) owner.$on('hook:destroyed', () => remove(owners, owner))
+
+    ;(owner: any).$on('hook:destroyed', () => remove(owners, owner))
 
     const forceRender = (renderCompleted: boolean) => {
       for (let i = 0, l = owners.length; i < l; i++) {

+ 6 - 0
test/unit/modules/vdom/create-component.spec.js

@@ -93,7 +93,9 @@ describe('create-component', () => {
         props: ['msg']
       })
     }
+    setCurrentRenderingInstance(vm)
     const vnode = createComponent(async, data, vm, vm)
+    setCurrentRenderingInstance(null)
     expect(vnode.asyncFactory).toBe(async)
     expect(vnode.asyncFactory.owners.length).toEqual(0)
     expect(vnode.tag).toMatch(/vue-component-[0-9]+-child/)
@@ -121,11 +123,15 @@ describe('create-component', () => {
       }, 0)
     }
     function go () {
+      setCurrentRenderingInstance(vm)
       vnode = createComponent(async, data, vm, vm)
+      setCurrentRenderingInstance(null)
       expect(vnode.isComment).toBe(true) // not to be loaded yet.
     }
     function failed () {
+      setCurrentRenderingInstance(vm)
       vnode = createComponent(async, data, vm, vm)
+      setCurrentRenderingInstance(null)
       expect(vnode.isComment).toBe(true) // failed, still a comment node
       expect(`Failed to resolve async component: ${async}\nReason: ${reason}`).toHaveBeenWarned()
       done()