UNPKG

marko

Version:

Optimized runtime for Marko templates.

25 lines (24 loc) • 1 kB
let deferToPendingTry = (fn, scope, branch) => { for (; branch;) { if (branch.O?.i) return (scope.J ||= ((branch.JS ||= (branch.O.m && ((complete) => branch.O.c = () => complete() || queueAsyncRender(branch, queueEffect, runPendingEffects))(branch.O.c), [])).push(scope), /* @__PURE__ */ new Set())).add(fn); branch = branch.N; } }; import { ln as queueAsyncRender, sn as installCatch, un as queueEffect, v as renderCatch, y as runPendingEffects } from "../dom-Ci2W4l1P.mjs"; //#region src/dom/catch.feat.ts installCatch((effects) => { let i = 0, fn, scope, branch; for (; i < effects.length;) fn = effects[i++], scope = effects[i++], (branch = scope.F)?.H !== 0 && !deferToPendingTry(fn, scope, branch) && fn(scope); }, (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