| null
export interface VNode<HostNode = any, HostElement = any> {
+ _isVNode: true
type: VNodeTypes
props: Record<any, any> | null
key: string | number | null
return vnode
}
-const knownVNodes = new WeakSet<VNode>()
-
export function isVNode(value: any): boolean {
- return knownVNodes.has(value)
+ return value && value._isVNode
}
export function createVNode(
: 0
const vnode: VNode = {
+ _isVNode: true,
type,
props,
key: (props && props.key) || null,
trackDynamicNode(vnode)
}
- if (__DEV__) {
- knownVNodes.add(vnode)
- }
-
return vnode
}
export function cloneVNode(vnode: VNode): VNode {
return {
+ _isVNode: true,
type: vnode.type,
props: vnode.props,
key: vnode.key,