Chris Tate
317162af78
Count repeated calls through constructors, apply and per-value callbacks
...
The constant-graph pass treats a function whose call edges all run once
at initialization as init-only. Some calls recorded no edge or a
once-only one:
- `new F()` of an ES5 constructor and `f.apply(thisArg, args)` bound the
arguments without a call edge, so a function also called directly once
was init-only even when a loop constructed or applied it.
- Callbacks of Array.from, toSorted, replace and replaceAll run once per
element, comparison or match, but those methods were missing from the
repeating callback set.
- JSON.parse revivers, JSON.stringify replacers and toJSON methods run
once per value; their edges at the JSON call site now count as
repeated, including toJSON calls resolved after the call's handling.
Objects these functions write or allocate were reported as constant, and
their reads as foldable. constant-graphs.test.ts covers each case.
2026-10-24 16:13:05 -05:00
..
2026-10-18 15:11:32 -07:00
2026-10-24 14:51:03 -05:00
2026-10-22 13:11:34 -05:00
2026-10-20 00:21:45 -05:00
2026-10-20 00:21:45 -05:00
2026-10-22 03:44:38 -05:00
2026-10-22 03:00:21 -05:00
2026-10-14 21:17:46 -05:00
2026-10-15 06:12:23 -07:00
2026-10-22 04:44:34 -05:00
2026-10-22 02:09:43 -05:00
2026-10-20 17:56:44 -05:00
2026-10-22 09:55:01 -05:00
2026-10-21 20:07:00 -05:00
2026-10-21 21:55:47 -05:00
2026-10-23 22:31:08 -05:00
2026-10-20 17:56:44 -05:00
2026-10-23 21:34:14 -05:00
2026-10-17 19:11:33 -05:00
2026-10-22 20:33:09 -05:00
2026-10-22 06:11:52 -05:00
2026-10-24 16:13:05 -05:00
2026-10-16 06:54:44 -07:00
2026-10-22 20:36:52 -05:00
2026-10-23 20:45:37 -05:00
2026-10-18 15:11:32 -07:00
2026-10-22 22:56:12 -05:00
2026-10-22 03:44:38 -05:00
2026-10-18 15:11:32 -07:00
2026-10-15 07:59:19 -05:00
2026-10-18 15:19:39 -07:00
2026-10-16 06:59:43 -07:00
2026-10-22 03:44:38 -05:00
2026-10-17 12:08:06 -07:00
2026-10-21 21:28:46 -05:00
2026-10-23 10:42:51 -05:00
2026-10-15 05:07:10 -07:00
2026-10-16 01:10:45 -05:00
2026-10-23 16:16:43 -05:00
2026-10-22 20:33:09 -05:00
2026-10-23 17:41:28 -07:00
2026-10-24 08:22:30 -05:00
2026-10-20 16:42:01 -07:00
2026-10-17 11:10:43 -07:00
2026-10-23 13:20:59 -05:00
2026-10-16 04:45:45 -05:00
2026-10-18 15:11:32 -07:00
2026-10-17 12:28:03 -07:00
2026-10-18 15:11:32 -07:00
2026-10-20 17:56:44 -05:00
2026-10-19 07:55:06 -05:00
2026-10-18 07:31:43 -07:00
2026-10-18 07:31:43 -07:00
2026-10-20 17:56:44 -05:00
2026-10-20 17:56:44 -05:00
2026-10-23 01:19:49 -05:00
2026-10-23 18:11:49 -05:00
2026-10-24 00:34:25 -05:00
2026-10-21 08:40:46 -05:00
2026-10-23 06:22:00 -05:00
2026-10-14 21:09:51 -05:00
2026-10-23 00:05:57 -05:00
2026-10-22 19:32:49 -07:00
2026-10-22 11:46:21 -05:00
2026-10-14 09:58:18 -05:00
2026-10-23 22:59:39 -05:00
2026-10-16 20:13:00 -05:00
2026-10-16 05:12:23 -05:00
2026-10-13 20:30:01 -05:00
2026-10-22 08:03:32 -05:00
2026-10-22 08:16:36 -05:00
2026-10-17 16:00:54 -05:00
2026-10-24 13:20:02 -05:00
2026-10-15 13:39:03 -05:00
2026-10-23 10:32:15 -05:00
2026-10-20 17:56:44 -05:00
2026-10-24 13:47:17 -05:00
2026-10-13 20:26:38 -05:00
2026-10-22 09:39:07 -05:00
2026-10-18 15:11:32 -07:00
2026-10-21 13:12:24 -05:00
2026-10-22 19:22:20 -05:00
2026-10-13 21:24:38 -05:00
2026-10-16 14:02:02 -07:00
2026-10-23 18:26:12 -05:00
2026-10-17 13:32:48 -07:00
2026-10-22 03:44:38 -05:00
2026-10-23 19:28:30 -05:00
2026-10-20 11:00:03 -05:00
2026-10-19 23:38:15 -05:00
2026-10-22 09:32:19 -05:00
2026-10-24 00:43:56 -05:00
2026-10-13 18:51:09 -05:00
2026-10-18 15:19:39 -07:00
2026-10-18 15:19:39 -07:00
2026-10-24 12:37:29 -05:00
2026-10-14 21:28:04 -05:00