@@ -1 +1 @@
-{"version":3,"file":"fre-umd.js","sources":["../src/h.js","../src/dom.js","../src/hooks.js","../src/heapify.js","../src/scheduler.js","../src/reconciler.js"],"sourcesContent":["export function h (type, attrs) {\n let props = attrs || {}\n let key = props.key || null\n let ref = props.ref || null\n let children = []\n\n for (let i = 2; i < arguments.length; i++) {\n let vnode = arguments[i]\n if (vnode == null || vnode === true || vnode === false) {\n } else if (typeof vnode === 'number' || typeof vnode === 'string') {\n children.push({ type: 'text', props: { nodeValue: vnode } })\n } else {\n children.push(vnode)\n }\n }\n\n if (children.length) {\n props.children = children.length === 1 ? children[0] : children\n }\n\n delete props.key\n delete props.ref\n return { type, props, key, ref }\n}\n","import { SVG } from './reconciler'\n\nexport function updateElement (dom, oldProps, newProps) {\n for (let name in { ...oldProps, ...newProps }) {\n let oldValue = oldProps[name]\n let newValue = newProps[name]\n\n if (oldValue == newValue || name === 'children') {\n } else if (name === 'style') {\n for (const k in { ...oldValue, ...newValue }) {\n if (!(oldValue && newValue && oldValue[k] === newValue[k])) {\n dom[name][k] = newValue && newValue[k] || ''\n }\n }\n } else if (name[0] === 'o' && name[1] === 'n') {\n name = name.slice(2).toLowerCase()\n if (oldValue) dom.removeEventListener(name, oldValue)\n dom.addEventListener(name, newValue)\n } else if (name in dom && !(dom instanceof SVGElement)) {\n dom[name] = newValue == null ? '' : newValue\n } else if (newValue == null || newValue === false) {\n dom.removeAttribute(name)\n } else {\n dom.setAttribute(name, newValue)\n }\n }\n}\n\nexport function createElement (fiber) {\n const dom =\n fiber.type === 'text'\n ? document.createTextNode('')\n : fiber.tag === SVG\n ? document.createElementNS('http://www.w3.org/2000/svg', fiber.type)\n : document.createElement(fiber.type)\n updateElement(dom, {}, fiber.props)\n return dom\n}\n","import { scheduleWork, currentFiber } from './reconciler'\nlet cursor = 0\n\nfunction update (key, reducer, value) {\n value = reducer ? reducer(this.state[key], value) : value\n this.state[key] = value\n scheduleWork(this, true)\n}\nexport function resetCursor () {\n cursor = 0\n}\nexport function useState (initState) {\n return useReducer(null, initState)\n}\nexport function useReducer (reducer, initState) {\n let { wip, key } = getCurrent()\n let setter = update.bind(wip, key, reducer)\n if (key in wip.state) {\n return [wip.state[key], setter]\n } else {\n wip.state[key] = initState\n return [initState, setter]\n }\n}\n\nexport function useEffect (cb, deps) {\n let { wip, key } = getCurrent()\n if (isChanged(wip.deps[key], deps)) {\n wip.effect[key] = useCallback(cb, deps)\n wip.deps[key] = deps\n }\n}\n\nexport function useMemo (cb, deps) {\n let { wip, key } = getCurrent()\n if (isChanged(wip.deps[key], deps)) {\n wip.deps[key] = deps\n return (wip.memo[key] = cb())\n }\n return wip.memo[key]\n}\n\nexport function useCallback (cb, deps) {\n return useMemo(() => cb, deps)\n}\n\nexport function useRef (current) {\n return { current }\n}\n\nfunction isChanged (a, b) {\n return !a || b.some((arg, index) => arg !== a[index])\n}\n\nfunction getCurrent () {\n return {\n wip: currentFiber,\n key: '$' + cursor && cursor++\n }\n}\n","function push (heap, node) {\r\n let index = heap.length\r\n heap.push(node)\r\n\r\n while (true) {\r\n let parentIndex = Math.floor((index - 1) / 2)\r\n let parent = heap[parentIndex]\r\n\r\n if (parent && compare(parent, node) > 0) {\r\n heap[parentIndex] = node\r\n heap[index] = parent\r\n index = parentIndex\r\n } else return\r\n }\r\n}\r\n\r\nfunction pop (heap) {\r\n let first = heap[0]\r\n if (first) {\r\n let last = heap.pop()\r\n if (first !== last) {\r\n heap[0] = last\r\n let index = 0\r\n let length = heap.length\r\n\r\n while (index < length) {\r\n let leftIndex = (index + 1) * 2 - 1\r\n let left = heap[leftIndex]\r\n let rightIndex = leftIndex + 1\r\n let right = heap[rightIndex]\r\n\r\n if (left && compare(left, last) < 0) {\r\n if (right && compare(right, left) < 0) {\r\n heap[index] = right\r\n heap[rightIndex] = last\r\n index = rightIndex\r\n } else {\r\n heap[index] = left\r\n heap[leftIndex] = last\r\n index = leftIndex\r\n }\r\n } else if (right && compare(right, last) < 0) {\r\n heap[index] = right\r\n heap[rightIndex] = last\r\n index = rightIndex\r\n } else return\r\n }\r\n }\r\n return first\r\n } else return null\r\n}\r\n\r\nfunction compare (a, b) {\r\n return a.dueTime - b.dueTime\r\n}\r\n\r\nfunction peek (heap) {\r\n return heap[0] || null\r\n}\r\n\r\nexport { push, peek, pop }\r\n","import { push, pop, peek } from './heapify'\n\nlet taskQueue = []\nlet currentTask = null\nlet currentCallback = null\nlet inMC = false\nlet frameDeadline = 0\nconst frameLength = 5\n\nexport function scheduleCallback (callback) {\n const currentTime = getTime()\n let startTime = currentTime\n let timeout = 5000 // idle\n let dueTime = startTime + timeout\n\n let newTask = {\n callback,\n startTime,\n dueTime\n }\n\n push(taskQueue, newTask)\n\n currentCallback = flushWork\n\n if (!inMC) planWork() && (inMC = true)\n\n return newTask\n}\n\nfunction flushWork (iniTime) {\n try {\n return workLoop(iniTime)\n } finally {\n currentTask = null\n }\n}\n\nfunction workLoop (iniTime) {\n let currentTime = iniTime\n currentTask = peek(taskQueue)\n\n while (currentTask) {\n if (currentTask.dueTime > currentTime && shouldYeild()) break\n let callback = currentTask.callback\n if (callback) {\n currentTask.callback = null\n let next = callback()\n if (next) {\n currentTask.callback = next\n } else {\n if (currentTask === peek(taskQueue)) {\n pop(taskQueue)\n }\n }\n } else pop(taskQueue)\n currentTask = peek(taskQueue)\n }\n\n if (currentTask) {\n return true\n } else {\n return false\n }\n\n // return !!currentTask\n}\n\nfunction performWork () {\n if (currentCallback) {\n let currentTime = getTime()\n frameDeadline = currentTime + frameLength\n let moreWork = currentCallback(currentTime)\n if (!moreWork) {\n inMC = false\n currentCallback = null\n } else {\n planWork()\n }\n } else inMC = false\n}\n\nconst planWork = (() => {\n if (typeof MessageChannel !== 'undefined') {\n const channel = new MessageChannel()\n const port = channel.port2\n channel.port1.onmessage = performWork\n\n return () => port.postMessage(null)\n }\n\n return () => setTimeout(performWork, 0)\n})()\n\nexport function shouldYeild () {\n return getTime() > frameDeadline\n}\n\nconst getTime = () => performance.now()\n","import { createElement, updateElement } from './dom'\r\nimport { resetCursor } from './hooks'\r\nimport { scheduleCallback, shouldYeild } from './scheduler'\r\n\r\nconst options = {}\r\nexport const [ROOT, HOST, HOOK, SVG, PLACE, UPDATE, DELETE] = [0, 1, 2, 3, 4, 5, 6]\r\n\r\nlet pendingCommit = null\r\nexport let WIP = null\r\nexport let currentFiber = null\r\n\r\nfunction render (vnode, node, done) {\r\n let rootFiber = {\r\n tag: ROOT,\r\n node,\r\n props: { children: vnode },\r\n done\r\n }\r\n scheduleWork(rootFiber)\r\n}\r\n\r\nfunction scheduleWork (fiber, lock) {\r\n fiber.lock = lock\r\n WIP = fiber\r\n scheduleCallback(performWork)\r\n}\r\n\r\nfunction performWork () {\r\n while (WIP && !shouldYeild()) {\r\n WIP = performWIP(WIP)\r\n }\r\n\r\n if (pendingCommit) {\r\n commitWork(pendingCommit)\r\n return null\r\n }\r\n\r\n return performWork.bind(null)\r\n}\r\n\r\nfunction performWIP (WIP) {\r\n WIP.patches = []\r\n WIP.parentNode = getParentNode(WIP)\r\n WIP.tag == HOOK ? updateHOOK(WIP) : updateHost(WIP)\r\n if (WIP.child) return WIP.child\r\n while (WIP) {\r\n completeWork(WIP)\r\n if (WIP.sibling && WIP.lock == null) return WIP.sibling\r\n WIP = WIP.parent\r\n }\r\n}\r\n\r\nfunction updateHOOK (WIP) {\r\n WIP.props = WIP.props || {}\r\n WIP.state = WIP.state || {}\r\n WIP.effect = {}\r\n WIP.deps = {}\r\n WIP.memo = {}\r\n currentFiber = WIP\r\n resetCursor()\r\n reconcileChildren(WIP, WIP.type(WIP.props))\r\n}\r\n\r\nfunction updateHost (WIP) {\r\n if (!WIP.node) {\r\n if (WIP.type === 'svg') WIP.tag = SVG\r\n WIP.node = createElement(WIP)\r\n }\r\n let p = WIP.parentNode || {}\r\n WIP.insertPoint = p.last || null\r\n p.last = WIP\r\n WIP.node.last = null\r\n reconcileChildren(WIP, WIP.props.children)\r\n}\r\nfunction getParentNode (fiber) {\r\n while ((fiber = fiber.parent)) {\r\n if (fiber.tag < HOOK) return fiber.node\r\n }\r\n}\r\n\r\nfunction reconcileChildren (WIP, children) {\r\n const oldFibers = WIP.kids\r\n const newFibers = (WIP.kids = hashfy(children, WIP.kids))\r\n let reused = {}\r\n\r\n for (const k in oldFibers) {\r\n let newFiber = newFibers[k]\r\n let oldFiber = oldFibers[k]\r\n\r\n if (newFiber && newFiber.type === oldFiber.type) {\r\n reused[k] = oldFiber\r\n } else {\r\n oldFiber.patchTag = DELETE\r\n WIP.patches.push(oldFiber)\r\n }\r\n }\r\n\r\n let prevFiber = null\r\n let alternate = null\r\n\r\n for (const k in newFibers) {\r\n let newFiber = newFibers[k]\r\n let oldFiber = reused[k]\r\n\r\n if (oldFiber) {\r\n alternate = createFiber(oldFiber, UPDATE)\r\n newFiber.patchTag = UPDATE\r\n newFiber = { ...alternate, ...newFiber }\r\n newFiber.alternate = alternate\r\n if (shouldPlace(newFiber)) {\r\n newFiber.patchTag = PLACE\r\n }\r\n } else {\r\n newFiber = createFiber(newFiber, PLACE)\r\n }\r\n\r\n newFibers[k] = newFiber\r\n newFiber.parent = WIP\r\n\r\n if (prevFiber) {\r\n prevFiber.sibling = newFiber\r\n } else {\r\n if (WIP.tag === SVG) newFiber.tag = SVG\r\n WIP.child = newFiber\r\n }\r\n prevFiber = newFiber\r\n }\r\n if (prevFiber) prevFiber.sibling = null\r\n if (WIP.lock) WIP.lock = false\r\n}\r\n\r\nfunction shouldPlace (fiber) {\r\n let p = fiber.parent\r\n if (p.tag === HOOK) return p.key && !p.lock\r\n return fiber.key\r\n}\r\n\r\nfunction completeWork (fiber) {\r\n if (fiber.parent) {\r\n fiber.parent.patches.push(...fiber.patches, fiber)\r\n } else {\r\n pendingCommit = fiber\r\n }\r\n}\r\n\r\nfunction commitWork (WIP) {\r\n WIP.patches.forEach(p => commit(p))\r\n WIP.done && WIP.done()\r\n WIP = pendingCommit = null\r\n}\r\n\r\nfunction applyEffect (fiber) {\r\n fiber.pending = fiber.pending || {}\r\n for (const k in fiber.effect) {\r\n const pend = fiber.pending[k]\r\n pend && pend()\r\n const after = fiber.effect[k]()\r\n after && (fiber.pending[k] = after)\r\n }\r\n fiber.effect = null\r\n}\r\n\r\nfunction commit (fiber) {\r\n let tag = fiber.patchTag\r\n let parent = fiber.parentNode\r\n let dom = fiber.node\r\n let ref = fiber.ref\r\n\r\n if (tag === DELETE) {\r\n cleanup(fiber)\r\n while (fiber.tag === HOOK) fiber = fiber.child\r\n parent.removeChild(fiber.node)\r\n } else if (fiber.tag === HOOK) {\r\n applyEffect(fiber)\r\n } else if (tag === UPDATE) {\r\n updateElement(dom, fiber.alternate.props, fiber.props)\r\n } else {\r\n let point = fiber.insertPoint ? fiber.insertPoint.node : null\r\n let after = point ? point.nextSibling : parent.firstChild\r\n if (after === dom) return\r\n if (after === null && dom === parent.lastChild) return\r\n parent.insertBefore(dom, after)\r\n }\r\n\r\n if (ref) isFn(ref) ? ref(dom) : (ref.current = dom)\r\n fiber.patches = fiber.parent.patches = []\r\n}\r\n\r\nfunction cleanup (fiber) {\r\n let pend = fiber.pending\r\n for (const k in pend) pend[k]()\r\n fiber.pending = null\r\n}\r\n\r\nfunction createFiber (vnode, tag) {\r\n vnode.tag = isFn(vnode.type) ? HOOK : HOST\r\n vnode.patchTag = tag\r\n return vnode\r\n}\r\n\r\nconst arrayfy = arr => (!arr ? [] : arr.pop ? arr : [arr])\r\n\r\nfunction hashfy (arr) {\r\n let out = {}\r\n let i = 0\r\n let j = 0\r\n arrayfy(arr).forEach(item => {\r\n if (item.pop) {\r\n item.forEach(item => {\r\n item.key ? (out['.' + i + '.' + item.key] = item) : (out['.' + i + '.' + j] = item) && j++\r\n })\r\n i++\r\n } else {\r\n item.key ? (out['.' + item.key] = item) : (out['.' + i] = item) && i++\r\n }\r\n })\r\n return out\r\n}\r\n\r\nconst isFn = fn => typeof fn === 'function'\r\n\r\nexport { render, scheduleWork, options }\r\n"],"names":["performWork"],"mappings":"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"}
\ No newline at end of file
+{"version":3,"file":"fre-umd.js","sources":["../src/h.js","../src/dom.js","../src/hooks.js","../src/heapify.js","../src/scheduler.js","../src/reconciler.js"],"sourcesContent":["export function h (type, attrs) {\n let props = attrs || {}\n let key = props.key || null\n let ref = props.ref || null\n let children = []\n\n for (let i = 2; i < arguments.length; i++) {\n let vnode = arguments[i]\n if (vnode == null || vnode === true || vnode === false) {\n } else if (typeof vnode === 'number' || typeof vnode === 'string') {\n children.push({ type: 'text', props: { nodeValue: vnode } })\n } else {\n children.push(vnode)\n }\n }\n\n if (children.length) {\n props.children = children.length === 1 ? children[0] : children\n }\n\n delete props.key\n delete props.ref\n return { type, props, key, ref }\n}\n","import { SVG } from './reconciler'\n\nexport function updateElement (dom, oldProps, newProps) {\n for (let name in { ...oldProps, ...newProps }) {\n let oldValue = oldProps[name]\n let newValue = newProps[name]\n\n if (oldValue == newValue || name === 'children') {\n } else if (name === 'style') {\n for (const k in { ...oldValue, ...newValue }) {\n if (!(oldValue && newValue && oldValue[k] === newValue[k])) {\n dom[name][k] = newValue && newValue[k] || ''\n }\n }\n } else if (name[0] === 'o' && name[1] === 'n') {\n name = name.slice(2).toLowerCase()\n if (oldValue) dom.removeEventListener(name, oldValue)\n dom.addEventListener(name, newValue)\n } else if (name in dom && !(dom instanceof SVGElement)) {\n dom[name] = newValue == null ? '' : newValue\n } else if (newValue == null || newValue === false) {\n dom.removeAttribute(name)\n } else {\n dom.setAttribute(name, newValue)\n }\n }\n}\n\nexport function createElement (fiber) {\n const dom =\n fiber.type === 'text'\n ? document.createTextNode('')\n : fiber.tag === SVG\n ? document.createElementNS('http://www.w3.org/2000/svg', fiber.type)\n : document.createElement(fiber.type)\n updateElement(dom, {}, fiber.props)\n return dom\n}\n","import { scheduleWork, getHook } from './reconciler'\nlet cursor = 0\n\nfunction update (key, reducer, value) {\n value = reducer ? reducer(this.state[key], value) : value\n this.state[key] = value\n scheduleWork(this, true)\n}\nexport function resetCursor () {\n cursor = 0\n}\nexport function useState (initState) {\n return useReducer(null, initState)\n}\nexport function useReducer (reducer, initState) {\n let wip = getHook()\n let key = getKey()\n let setter = update.bind(wip, key, reducer)\n if (key in wip.state) {\n return [wip.state[key], setter]\n } else {\n wip.state[key] = initState\n return [initState, setter]\n }\n}\n\nexport function useEffect (cb, deps) {\n let wip = getHook()\n let key = getKey()\n if (isChanged(wip.Edeps, deps)) {\n wip.effect[key] = useCallback(cb, deps)\n wip.Edeps = deps\n }\n}\n\nexport function useMemo (cb, deps) {\n let wip = getHook()\n let key = getKey()\n if (isChanged(wip.Mdeps, deps)) {\n wip.Mdeps = deps\n return (wip.memo[key] = cb())\n }\n return wip.memo[key]\n}\n\nexport function useCallback (cb, deps) {\n return useMemo(() => cb, deps)\n}\n\nexport function useRef (current) {\n return { current }\n}\n\nfunction isChanged (a, b) {\n return !a || b.some((arg, index) => arg !== a[index])\n}\n\nfunction getKey () {\n let key = '$' + cursor\n cursor ++\n return key\n}\n","function push (heap, node) {\r\n let index = heap.length\r\n heap.push(node)\r\n\r\n while (true) {\r\n let parentIndex = Math.floor((index - 1) / 2)\r\n let parent = heap[parentIndex]\r\n\r\n if (parent && compare(parent, node) > 0) {\r\n heap[parentIndex] = node\r\n heap[index] = parent\r\n index = parentIndex\r\n } else return\r\n }\r\n}\r\n\r\nfunction pop (heap) {\r\n let first = heap[0]\r\n if (first) {\r\n let last = heap.pop()\r\n if (first !== last) {\r\n heap[0] = last\r\n let index = 0\r\n let length = heap.length\r\n\r\n while (index < length) {\r\n let leftIndex = (index + 1) * 2 - 1\r\n let left = heap[leftIndex]\r\n let rightIndex = leftIndex + 1\r\n let right = heap[rightIndex]\r\n\r\n if (left && compare(left, last) < 0) {\r\n if (right && compare(right, left) < 0) {\r\n heap[index] = right\r\n heap[rightIndex] = last\r\n index = rightIndex\r\n } else {\r\n heap[index] = left\r\n heap[leftIndex] = last\r\n index = leftIndex\r\n }\r\n } else if (right && compare(right, last) < 0) {\r\n heap[index] = right\r\n heap[rightIndex] = last\r\n index = rightIndex\r\n } else return\r\n }\r\n }\r\n return first\r\n } else return null\r\n}\r\n\r\nfunction compare (a, b) {\r\n return a.dueTime - b.dueTime\r\n}\r\n\r\nfunction peek (heap) {\r\n return heap[0] || null\r\n}\r\n\r\nexport { push, peek, pop }\r\n","import { push, pop, peek } from './heapify'\n\nlet taskQueue = []\nlet currentTask = null\nlet currentCallback = null\nlet inMC = false\nlet frameDeadline = 0\nconst frameLength = 5\n\nexport function scheduleCallback (callback) {\n const currentTime = getTime()\n let startTime = currentTime\n let timeout = 5000 // idle\n let dueTime = startTime + timeout\n\n let newTask = {\n callback,\n startTime,\n dueTime\n }\n\n push(taskQueue, newTask)\n\n currentCallback = flushWork\n\n if (!inMC) planWork() && (inMC = true)\n\n return newTask\n}\n\nfunction flushWork (iniTime) {\n try {\n return workLoop(iniTime)\n } finally {\n currentTask = null\n }\n}\n\nfunction workLoop (iniTime) {\n let currentTime = iniTime\n currentTask = peek(taskQueue)\n\n while (currentTask) {\n if (currentTask.dueTime > currentTime && shouldYeild()) break\n let callback = currentTask.callback\n if (callback) {\n currentTask.callback = null\n let next = callback()\n if (next) {\n currentTask.callback = next\n } else {\n if (currentTask === peek(taskQueue)) {\n pop(taskQueue)\n }\n }\n } else pop(taskQueue)\n currentTask = peek(taskQueue)\n }\n\n if (currentTask) {\n return true\n } else {\n return false\n }\n\n // return !!currentTask\n}\n\nfunction performWork () {\n if (currentCallback) {\n let currentTime = getTime()\n frameDeadline = currentTime + frameLength\n let moreWork = currentCallback(currentTime)\n if (!moreWork) {\n inMC = false\n currentCallback = null\n } else {\n planWork()\n }\n } else inMC = false\n}\n\nconst planWork = (() => {\n if (typeof MessageChannel !== 'undefined') {\n const channel = new MessageChannel()\n const port = channel.port2\n channel.port1.onmessage = performWork\n\n return () => port.postMessage(null)\n }\n\n return () => setTimeout(performWork, 0)\n})()\n\nexport function shouldYeild () {\n return getTime() > frameDeadline\n}\n\nconst getTime = () => performance.now()\n","import { createElement, updateElement } from './dom'\r\nimport { resetCursor } from './hooks'\r\nimport { scheduleCallback, shouldYeild } from './scheduler'\r\n\r\nconst options = {}\r\nexport const [ROOT, HOST, HOOK, SVG, PLACE, UPDATE, DELETE] = [0, 1, 2, 3, 4, 5, 6]\r\n\r\nlet pendingCommit = null\r\nexport let WIP = null\r\nexport let currentFiber = null\r\n\r\nfunction render (vnode, node, done) {\r\n let rootFiber = {\r\n tag: ROOT,\r\n node,\r\n props: { children: vnode },\r\n done\r\n }\r\n scheduleWork(rootFiber)\r\n}\r\n\r\nfunction scheduleWork (fiber, lock) {\r\n fiber.lock = lock\r\n WIP = fiber\r\n scheduleCallback(performWork)\r\n}\r\n\r\nfunction performWork () {\r\n while (WIP && !shouldYeild()) {\r\n WIP = performWIP(WIP)\r\n }\r\n\r\n if (pendingCommit) {\r\n commitWork(pendingCommit)\r\n return null\r\n }\r\n\r\n return performWork.bind(null)\r\n}\r\n\r\nfunction performWIP (WIP) {\r\n WIP.patches = []\r\n WIP.parentNode = getParentNode(WIP)\r\n WIP.tag == HOOK ? updateHOOK(WIP) : updateHost(WIP)\r\n if (WIP.child) return WIP.child\r\n while (WIP) {\r\n completeWork(WIP)\r\n if (WIP.sibling && WIP.lock == null) return WIP.sibling\r\n WIP = WIP.parent\r\n }\r\n}\r\n\r\nfunction updateHOOK (WIP) {\r\n WIP.props = WIP.props || {}\r\n WIP.state = WIP.state || {}\r\n WIP.effect = {}\r\n WIP.deps = {}\r\n WIP.memo = {}\r\n currentFiber = WIP\r\n resetCursor()\r\n reconcileChildren(WIP, WIP.type(WIP.props))\r\n}\r\n\r\nfunction updateHost (WIP) {\r\n if (!WIP.node) {\r\n if (WIP.type === 'svg') WIP.tag = SVG\r\n WIP.node = createElement(WIP)\r\n }\r\n let p = WIP.parentNode || {}\r\n WIP.insertPoint = p.last || null\r\n p.last = WIP\r\n WIP.node.last = null\r\n reconcileChildren(WIP, WIP.props.children)\r\n}\r\nfunction getParentNode (fiber) {\r\n while ((fiber = fiber.parent)) {\r\n if (fiber.tag < HOOK) return fiber.node\r\n }\r\n}\r\n\r\nfunction reconcileChildren (WIP, children) {\r\n const oldFibers = WIP.kids\r\n const newFibers = (WIP.kids = hashfy(children, WIP.kids))\r\n let reused = {}\r\n\r\n for (const k in oldFibers) {\r\n let newFiber = newFibers[k]\r\n let oldFiber = oldFibers[k]\r\n\r\n if (newFiber && newFiber.type === oldFiber.type) {\r\n reused[k] = oldFiber\r\n } else {\r\n oldFiber.patchTag = DELETE\r\n WIP.patches.push(oldFiber)\r\n }\r\n }\r\n\r\n let prevFiber = null\r\n let alternate = null\r\n\r\n for (const k in newFibers) {\r\n let newFiber = newFibers[k]\r\n let oldFiber = reused[k]\r\n\r\n if (oldFiber) {\r\n alternate = createFiber(oldFiber, UPDATE)\r\n newFiber.patchTag = UPDATE\r\n newFiber = { ...alternate, ...newFiber }\r\n newFiber.alternate = alternate\r\n if (shouldPlace(newFiber)) {\r\n newFiber.patchTag = PLACE\r\n }\r\n } else {\r\n newFiber = createFiber(newFiber, PLACE)\r\n }\r\n\r\n newFibers[k] = newFiber\r\n newFiber.parent = WIP\r\n\r\n if (prevFiber) {\r\n prevFiber.sibling = newFiber\r\n } else {\r\n if (WIP.tag === SVG) newFiber.tag = SVG\r\n WIP.child = newFiber\r\n }\r\n prevFiber = newFiber\r\n }\r\n if (prevFiber) prevFiber.sibling = null\r\n if (WIP.lock) WIP.lock = false\r\n}\r\n\r\nfunction shouldPlace (fiber) {\r\n let p = fiber.parent\r\n if (p.tag === HOOK) return p.key && !p.lock\r\n return fiber.key\r\n}\r\n\r\nfunction completeWork (fiber) {\r\n if (fiber.parent) {\r\n fiber.parent.patches.push(...fiber.patches, fiber)\r\n } else {\r\n pendingCommit = fiber\r\n }\r\n}\r\n\r\nfunction commitWork (WIP) {\r\n WIP.patches.forEach(p => commit(p))\r\n WIP.done && WIP.done()\r\n WIP = pendingCommit = null\r\n}\r\n\r\nfunction applyEffect (fiber) {\r\n fiber.pending = fiber.pending || {}\r\n for (const k in fiber.effect) {\r\n const pend = fiber.pending[k]\r\n pend && pend()\r\n const after = fiber.effect[k]()\r\n after && (fiber.pending[k] = after)\r\n }\r\n fiber.effect = null\r\n}\r\n\r\nfunction commit (fiber) {\r\n let tag = fiber.patchTag\r\n let parent = fiber.parentNode\r\n let dom = fiber.node\r\n let ref = fiber.ref\r\n\r\n if (tag === DELETE) {\r\n cleanup(fiber)\r\n while (fiber.tag === HOOK) fiber = fiber.child\r\n parent.removeChild(fiber.node)\r\n } else if (fiber.tag === HOOK) {\r\n applyEffect(fiber)\r\n } else if (tag === UPDATE) {\r\n updateElement(dom, fiber.alternate.props, fiber.props)\r\n } else {\r\n let point = fiber.insertPoint ? fiber.insertPoint.node : null\r\n let after = point ? point.nextSibling : parent.firstChild\r\n if (after === dom) return\r\n if (after === null && dom === parent.lastChild) return\r\n parent.insertBefore(dom, after)\r\n }\r\n\r\n if (ref) isFn(ref) ? ref(dom) : (ref.current = dom)\r\n fiber.patches = fiber.parent.patches = []\r\n}\r\n\r\nfunction cleanup (fiber) {\r\n let pend = fiber.pending\r\n for (const k in pend) pend[k]()\r\n fiber.pending = null\r\n}\r\n\r\nfunction createFiber (vnode, tag) {\r\n vnode.tag = isFn(vnode.type) ? HOOK : HOST\r\n vnode.patchTag = tag\r\n return vnode\r\n}\r\n\r\nconst arrayfy = arr => (!arr ? [] : arr.pop ? arr : [arr])\r\n\r\nfunction hashfy (arr) {\r\n let out = {}\r\n let i = 0\r\n let j = 0\r\n arrayfy(arr).forEach(item => {\r\n if (item.pop) {\r\n item.forEach(item => {\r\n item.key ? (out['.' + i + '.' + item.key] = item) : (out['.' + i + '.' + j] = item) && j++\r\n })\r\n i++\r\n } else {\r\n item.key ? (out['.' + item.key] = item) : (out['.' + i] = item) && i++\r\n }\r\n })\r\n return out\r\n}\r\n\r\nconst isFn = fn => typeof fn === 'function'\r\n\r\nfunction getHook () {\r\n return currentFiber || {}\r\n}\r\n\r\nexport { render, scheduleWork, options, getHook }\r\n"],"names":["performWork"],"mappings":"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"}
\ No newline at end of file