• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

source-academy / js-slang / 35713762180
86%

Build:
DEFAULT BRANCH: master
Ran 22 Sep 2026 10:06AM UTC
Jobs 1
Files 164
Run time 1min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

22 Sep 2026 10:02AM UTC coverage: 85.681% (-0.002%) from 85.683%
35713762180

push

github

web-flow
feat: add set_timeout(f, t) / clear_all_timeout() builtins (#2091)

* feat: add set_timeout(f, t) / clear_all_timeout() builtins (#2025)

Mirrors py-slang's Py2JS implementation: a compiled Source function is
already a plain JS closure, so a real setTimeout firing later can call
it directly, no cold-re-entry machinery needed. Scoped to the
transpiler evaluator (SourceEvaluator) only, via the existing
CustomBuiltIns per-evaluator-hook pattern — the CSE machine and
stepper fall through to defaultBuiltIns, which throws a clear "not
supported" error instead of silently doing nothing.

Errors thrown by the scheduled closure are reported through the
conductor error channel rather than dropped, unlike the matrix
module's own set_timeout reimplementation this is meant to retire
(source-academy/modules#831). beginPendingWork()/endPendingWork()
keep the host from tearing the evaluator down while a timer is still
outstanding (source-academy/py-slang#329).

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>

* fix: add set_timeout/clear_all_timeout to autocomplete and syntax highlighting

Codex review on #2091: set_timeout/clear_all_timeout are registered as
chapter 3+ builtins in createContext.ts, but resolver.ts's getBuiltins
and highlight-rules.ts's builtinsByMeta only pull chapter-3 builtins
from stream.json/array.json/pairmutator.json - none of which contained
these two, so the Conductor editor neither suggested nor highlighted
them despite them being part of the language.

Neither belongs in an existing docs/lib file semantically (misc.js is
chapter-1 only; stream/array/pairmutator are domain-specific), so this
adds docs/lib/timing.js as their jsdoc home, wires it into
scripts/autocomplete.mjs's libFiles (generates
src/conductor/plugins/autocomplete/builtins/timing.json) and into both
getBuiltins and builtinsByMeta's chapter>=3 push, and - for docs site
completeness - into scripts/docs.mjs's §3/§4 configs (not the
deprecated Typed/WASM/Explicit-Control... (continued)

2517 of 3052 branches covered (82.47%)

Branch coverage included in aggregate %.

26 of 28 new or added lines in 5 files covered. (92.86%)

4915 of 5622 relevant lines covered (87.42%)

277670.59 hits per line

Uncovered Changes

Lines Coverage ∆ File
1
90.08
-0.17% src/createContext.ts
1
79.55
-2.38% src/utils/testing/index.ts
Jobs
ID Job ID Ran Files Coverage
1 35713762180.1 22 Sep 2026 10:06AM UTC 164
85.68
GitHub Action Run
Source Files on build 35713762180
  • Tree
  • List 164
  • Changed 6
  • Source Changed 0
  • Coverage Changed 6
Coverage ∆ File Lines Relevant Covered Missed Hits/Line Branch Hits Branch Misses
  • Back to Repo
  • 228f459e on github
  • Prev Build on master (#35698076645)
  • Next Build on master (#35714387614)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE TRIAL · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc