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

Kikobeats / isolated-function / 29566733637
95%

Build:
DEFAULT BRANCH: master
Ran 17 Jul 2026 08:32AM UTC
Jobs 1
Files 11
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

17 Jul 2026 08:31AM UTC coverage: 95.012% (-0.05%) from 95.062%
29566733637

push

github

web-flow
Report memory as a breakdown, and fix OOM detection (#70)

* fix: detect heap OOM at production-sized memory limits

V8 only traps (SIGTRAP) when the heap limit is too small to boot,
which is why `memory: 1` was detected. Every realistic limit
exhausts the heap through the normal OOM path and exits with
SIGABRT, so it escaped as a raw ChildProcessError and never
surfaced as MemoryError.

The existing test only covered `memory: 1`, the single value that
traps, so it passed while every production limit was broken.

Gate the abort on V8's own "out of memory" message so an unrelated
abort is not mislabelled.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01CTJQQb6p1UWdkireDjCVri

* feat!: report memory as a detailed breakdown

profiling.memory was a single RSS sample taken when the function
returned. No single number is correct: RSS over-reports (a no-op
function reported ~43MB of Node.js baseline) and under-reports
(300MB of untouched typed arrays stayed invisible, because pages
that are never written to never become resident).

Report the fields that answer different questions instead:

  total    RSS of the isolate process, baseline included
  used     total minus the pre-execution baseline
  heap     V8 heap, the only field the `memory` limit bounds
  external off-heap Buffer/ArrayBuffer, which the limit misses

Also correct the README resource-limit example, which claimed 78MB
of Uint8Array trips `memory: 64`. It does not: typed arrays are
off-heap, so it returns cleanly with external=79.7MB. Replaced with
on-heap growth, which the limit does bound.

BREAKING CHANGE: profiling.memory is an object instead of a number.
Callers reading it as a number should read profiling.memory.used
for the memory attributable to the function, or .total for the
previous RSS value.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01CT... (continued)

109 of 119 branches covered (91.6%)

Branch coverage included in aggregate %.

672 of 703 relevant lines covered (95.59%)

24.26 hits per line

Jobs
ID Job ID Ran Files Coverage
1 29566733637.1 17 Jul 2026 08:32AM UTC 11
95.01
GitHub Action Run
Source Files on build 29566733637
  • Tree
  • List 11
  • Changed 2
  • Source Changed 2
  • Coverage Changed 2
Coverage ∆ File Lines Relevant Covered Missed Hits/Line Branch Hits Branch Misses
  • Back to Repo
  • Github Actions Build #29566733637
  • fda9eb92 on github
  • Prev Build on master (#27829383643)
  • Next Build on master (#30459402911)
  • Delete
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