Test case details

Preparation Code

window.t = get("https://unpkg.com/@sthir/runtime-checker/dist/sthir-runtime-checker.cjs.prod.js") window.z = get("https://unpkg.com/zod/lib/index.umd.js") window.input = Array.from({ length: 500 }, () => seed(Object)) function seed(t = Number) { if (t === Number) return Math.floor(Math.random() * 10) if (t === String) return (Math.random() + 1).toString(36).slice(2) if (t === Object) { return Object.fromEntries( Array.from( { length: seed() }, () => [seed(String), seed() > 5 ? seed(String) : seed()] ) ) } throw new Error("invariant: unreachable") } function get(url) { let req = new XMLHttpRequest(); req.open("GET", url, false); req.send() return new Function("let module = { exports: {} };\nlet exports = module.exports;\n" + req.response + ";\nreturn module.exports")() }

Test cases

Test #1

const t = window.t const errors = function* (x, n) { for (let y of t.array(t.record(t.string, t.string))(x)) { if (y?.type === "error") { yield y.value; n-- } if (n === 0) return } } ;[...errors(window.input, 5)]

Test #2

const z = window.z const errors = (x, n) => (z.array(z.record(z.string(), z.string())).safeParse(x)?.error?.errors ?? []).slice(0, n) errors(window.input, 5)