} {
type HostVNode = VNode<HostNode, HostElement>
type HostVNodeChildren = VNodeChildren<HostNode, HostElement>
- type HostSuspsenseBoundary = SuspenseBoundary<HostNode, HostElement>
+ type HostSuspenseBoundary = SuspenseBoundary<HostNode, HostElement>
const {
insert: hostInsert,
container: HostElement,
anchor: HostNode | null = null,
parentComponent: ComponentInternalInstance | null = null,
- parentSuspense: HostSuspsenseBoundary | null = null,
+ parentSuspense: HostSuspenseBoundary | null = null,
isSVG: boolean = false,
optimized: boolean = false
) {
container: HostElement,
anchor: HostNode | null,
parentComponent: ComponentInternalInstance | null,
- parentSuspense: HostSuspsenseBoundary | null,
+ parentSuspense: HostSuspenseBoundary | null,
isSVG: boolean,
optimized: boolean
) {
container: HostElement,
anchor: HostNode | null,
parentComponent: ComponentInternalInstance | null,
- parentSuspense: HostSuspsenseBoundary | null,
+ parentSuspense: HostSuspenseBoundary | null,
isSVG: boolean
) {
const tag = vnode.type as string
container: HostElement,
anchor: HostNode | null,
parentComponent: ComponentInternalInstance | null,
- parentSuspense: HostSuspsenseBoundary | null,
+ parentSuspense: HostSuspenseBoundary | null,
isSVG: boolean,
start: number = 0
) {
n1: HostVNode,
n2: HostVNode,
parentComponent: ComponentInternalInstance | null,
- parentSuspense: HostSuspsenseBoundary | null,
+ parentSuspense: HostSuspenseBoundary | null,
isSVG: boolean,
optimized: boolean
) {
if (dynamicChildren != null) {
// children fast path
- const olddynamicChildren = n1.dynamicChildren!
+ const oldDynamicChildren = n1.dynamicChildren!
for (let i = 0; i < dynamicChildren.length; i++) {
patch(
- olddynamicChildren[i],
+ oldDynamicChildren[i],
dynamicChildren[i],
el,
null,
oldProps: any,
newProps: any,
parentComponent: ComponentInternalInstance | null,
- parentSuspense: HostSuspsenseBoundary | null,
+ parentSuspense: HostSuspenseBoundary | null,
isSVG: boolean
) {
if (oldProps !== newProps) {
container: HostElement,
anchor: HostNode | null,
parentComponent: ComponentInternalInstance | null,
- parentSuspense: HostSuspsenseBoundary | null,
+ parentSuspense: HostSuspenseBoundary | null,
isSVG: boolean,
optimized: boolean
) {
container: HostElement,
anchor: HostNode | null,
parentComponent: ComponentInternalInstance | null,
- parentSuspense: HostSuspsenseBoundary | null,
+ parentSuspense: HostSuspenseBoundary | null,
isSVG: boolean,
optimized: boolean
) {
container: HostElement,
anchor: HostNode | null,
parentComponent: ComponentInternalInstance | null,
- parentSuspense: HostSuspsenseBoundary | null,
+ parentSuspense: HostSuspenseBoundary | null,
isSVG: boolean,
optimized: boolean
) {
container: HostElement,
anchor: HostNode | null,
parentComponent: ComponentInternalInstance | null,
- parentSuspense: HostSuspsenseBoundary | null,
+ parentSuspense: HostSuspenseBoundary | null,
isSVG: boolean,
optimized: boolean
) {
suspense.fallbackTree = fallback
}
- function resolveSuspense(suspense: HostSuspsenseBoundary) {
+ function resolveSuspense(suspense: HostSuspenseBoundary) {
if (__DEV__) {
if (suspense.isResolved) {
throw new Error(
}
// move content from off-dom container to actual container
move(subTree as HostVNode, container, anchor)
- const el = (vnode.el = (subTree as HostVNode).el as HostNode)
+ const el = (vnode.el = (subTree as HostVNode).el!)
// suspense as the root node of a component...
if (parentComponent && parentComponent.subTree === vnode) {
parentComponent.vnode.el = el
}
}
- function restartSuspense(suspense: HostSuspsenseBoundary) {
+ function restartSuspense(suspense: HostSuspenseBoundary) {
suspense.isResolved = false
const {
vnode,
isSVG,
optimized
)
- const el = (vnode.el = (fallbackTree as HostVNode).el as HostNode)
+ const el = (vnode.el = (fallbackTree as HostVNode).el!)
// suspense as the root node of a component...
if (parentComponent && parentComponent.subTree === vnode) {
parentComponent.vnode.el = el
container: HostElement,
anchor: HostNode | null,
parentComponent: ComponentInternalInstance | null,
- parentSuspense: HostSuspsenseBoundary | null,
+ parentSuspense: HostSuspenseBoundary | null,
isSVG: boolean,
optimized: boolean
) {
container: HostElement,
anchor: HostNode | null,
parentComponent: ComponentInternalInstance | null,
- parentSuspense: HostSuspsenseBoundary | null,
+ parentSuspense: HostSuspenseBoundary | null,
isSVG: boolean
) {
const instance: ComponentInternalInstance = (initialVNode.component = createComponentInstance(
function retryAsyncComponent(
instance: ComponentInternalInstance,
asyncSetupResult: unknown,
- parentSuspense: HostSuspsenseBoundary,
+ parentSuspense: HostSuspenseBoundary,
isSVG: boolean
) {
parentSuspense.deps--
function setupRenderEffect(
instance: ComponentInternalInstance,
- parentSuspense: HostSuspsenseBoundary | null,
+ parentSuspense: HostSuspenseBoundary | null,
initialVNode: HostVNode,
container: HostElement,
anchor: HostNode | null,
// to child component's vnode
updateHOCHostEl(instance, nextTree.el)
}
- // upated hook
+ // updated hook
if (instance.u !== null) {
queuePostRenderEffect(instance.u, parentSuspense)
}
container: HostElement,
anchor: HostNode | null,
parentComponent: ComponentInternalInstance | null,
- parentSuspense: HostSuspsenseBoundary | null,
+ parentSuspense: HostSuspenseBoundary | null,
isSVG: boolean,
optimized: boolean = false
) {
container: HostElement,
anchor: HostNode | null,
parentComponent: ComponentInternalInstance | null,
- parentSuspense: HostSuspsenseBoundary | null,
+ parentSuspense: HostSuspenseBoundary | null,
isSVG: boolean,
optimized: boolean
) {
container: HostElement,
parentAnchor: HostNode | null,
parentComponent: ComponentInternalInstance | null,
- parentSuspense: HostSuspsenseBoundary | null,
+ parentSuspense: HostSuspenseBoundary | null,
isSVG: boolean,
optimized: boolean
) {
const s2 = i // next starting index
// 5.1 build key:index map for newChildren
- const keyToNewIndexMap: Map<any, number> = new Map()
+ const keyToNewIndexMap: Map<string | number, number> = new Map()
for (i = s2; i <= e2; i++) {
const nextChild = (c2[i] = normalizeVNode(c2[i]))
if (nextChild.key != null) {
function unmount(
vnode: HostVNode,
parentComponent: ComponentInternalInstance | null,
- parentSuspense: HostSuspsenseBoundary | null,
+ parentSuspense: HostSuspenseBoundary | null,
doRemove?: boolean
) {
const {
function unmountComponent(
instance: ComponentInternalInstance,
- parentSuspense: HostSuspsenseBoundary | null,
+ parentSuspense: HostSuspenseBoundary | null,
doRemove?: boolean
) {
const { bum, effects, update, subTree, um } = instance
}
function unmountSuspense(
- suspense: HostSuspsenseBoundary,
+ suspense: HostSuspenseBoundary,
parentComponent: ComponentInternalInstance | null,
- parentSuspense: HostSuspsenseBoundary | null,
+ parentSuspense: HostSuspenseBoundary | null,
doRemove?: boolean
) {
suspense.isUnmounted = true
function unmountChildren(
children: HostVNode[],
parentComponent: ComponentInternalInstance | null,
- parentSuspense: HostSuspsenseBoundary | null,
+ parentSuspense: HostSuspenseBoundary | null,
doRemove?: boolean,
start: number = 0
) {