UNPKG

marko

Version:

Optimized runtime for Marko templates.

27 lines (26 loc) 956 B
let handlePendingTry = (fn, scope, branch) => { for (; branch;) { if (branch.O?.i) return (branch.J ||= []).push(fn, scope); branch = branch.N; } }; import { Jt as caughtError, Xt as placeholderShown, Yt as installCatch, h as renderCatch } from "../dom-Cj4HQ7T_.mjs"; //#region src/dom/catch.feat.ts installCatch((runEffects) => (effects, checkPending = placeholderShown.has(effects)) => { if (checkPending || caughtError.has(effects)) { let i = 0, fn, scope, branch; for (; i < effects.length;) fn = effects[i++], scope = effects[i++], (branch = scope.F)?.H !== 0 && !(checkPending && handlePendingTry(fn, scope, branch)) && fn(scope); } else runEffects(effects); }, (runRender) => (render) => { try { let branch = render.b.F; for (; branch;) { if (branch.W) return render.f = 1, branch.W.push(render); branch = branch.N; } render.f = 0, runRender(render); } catch (error) { renderCatch(render.b, error); } }); //#endregion