Suspense streaming
Edge cases
Popcorning plus the HTML, SVG, MathML, and style completions that DPU struggles with. Left column is the live stream; right column is the settled target.
Popcorning
Sixteen sibling boundaries with staggered delays. Completions should arrive independently — kernels pop in out of source order, not as one swap.
Expected: All 16 cells filled, labeled 0–15. They appear one-by-one as each delay resolves.
HTML — DPU works
A pending HTML shell, then a completion that swaps fallback for template content. This is the baseline that should succeed.
Expected: Fallback removed. Visible text is “Done — declarative DPU worked”.
Loading…
Done — declarative DPU worked
SVG — namespace
The boundary sits inside <svg>. Declarative <template for> is HTML-namespaced, so a revealed <circle> may not be an SVGElement and may not paint.
Expected: A tomato circle paints in the dashed frame (real SVG circle, svg namespace).
MathML — namespace
Same insertion issue: template content is HTML, so <mi>/<mo>/<mn> may lose the MathML namespace when placed into <math>.
Expected: The formula renders as x + 1 using MathML, not as unmatched HTML text.
Styles — hoist
Declarative completion only moves nodes. It does not run completeBoundaryWithStyles, so <style> may stay inline instead of hoisting to <head>.
Expected: “Styled hello” is tomato and bold. Ideally the <style> is in <head>, not left in the boundary.
Loading…
Styled hello