Chris Tate
71deae1acf
Read dyn array elements and lengths by number without a key string
...
Indexing a value typed unknown with a number, such as `items[i]` on an
unknown[], converted the index to a string and looked it up as a property
key, and `items.length` read the property by name and boxed the result.
In a loop over an unknown[] that costs a string allocation, a key parse
and a number box per iteration.
The computed-read and `length` helpers the class dispatch generates are
now marked for a numeric fast path. A call to one of them with a number
index first asks the runtime for the element of a dyn array or a live
array capsule (scr_dyn_index_get), and a `length` read checked as a number
asks for the array's length (scr_dyn_array_length). The key string is
built and the helper runs only when the receiver is anything else, so
objects, strings, proxies, class instances, holes and out-of-range or
non-index numbers keep the keyed path.
2026-10-15 01:21:46 -05:00
..
2026-10-12 12:25:30 -05:00
2026-10-15 01:21:46 -05:00
2026-10-06 01:05:40 -05:00
2026-10-13 12:36:06 -05:00
2026-10-13 07:55:53 -05:00
2026-10-13 12:36:06 -05:00
2026-10-13 10:26:49 -05:00
2026-10-14 21:17:46 -05:00
2026-10-12 12:25:30 -05:00
2026-10-13 12:36:06 -05:00
2026-10-13 12:36:06 -05:00
2026-10-13 12:36:06 -05:00
2026-10-13 12:36:06 -05:00
2026-10-13 12:36:06 -05:00
2026-10-14 11:43:44 -05:00
2026-10-05 17:51:24 -05:00
2026-10-05 17:51:24 -05:00
2026-10-12 12:25:30 -05:00
2026-10-10 09:01:04 -07:00
2026-10-12 12:25:30 -05:00
2026-10-07 13:55:11 -05:00
2026-10-12 12:25:30 -05:00
2026-10-12 12:25:30 -05:00
2026-10-09 20:26:57 -05:00
2026-10-11 13:08:08 -07:00
2026-10-12 17:58:04 -05:00
2026-10-13 12:36:06 -05:00
2026-10-12 12:25:30 -05:00
2026-10-05 17:51:24 -05:00
2026-10-12 12:25:30 -05:00
2026-10-12 12:25:30 -05:00
2026-10-12 12:25:30 -05:00
2026-10-12 12:25:30 -05:00
2026-10-05 17:51:24 -05:00
2026-10-14 08:34:53 -05:00
2026-10-12 12:25:30 -05:00
2026-10-13 18:19:29 -05:00
2026-10-08 11:00:13 -05:00
2026-10-07 11:47:54 -05:00
2026-10-13 12:36:06 -05:00
2026-10-05 17:51:24 -05:00
2026-10-05 17:51:24 -05:00
2026-10-13 12:36:06 -05:00
2026-10-13 11:41:04 -05:00
2026-10-13 12:36:06 -05:00
2026-10-13 12:36:06 -05:00
2026-10-13 12:36:06 -05:00
2026-10-13 12:36:06 -05:00
2026-09-29 20:54:09 -05:00
2026-10-12 12:25:30 -05:00
2026-10-12 12:25:30 -05:00
2026-10-14 11:43:44 -05:00
2026-10-13 12:36:06 -05:00
2026-10-05 17:51:24 -05:00
2026-10-05 17:51:24 -05:00
2026-10-12 12:25:30 -05:00
2026-10-13 12:36:06 -05:00
2026-10-14 11:43:44 -05:00
2026-10-13 12:36:06 -05:00
2026-10-05 17:51:24 -05:00
2026-10-12 23:05:43 -05:00
2026-10-12 12:25:30 -05:00
2026-10-08 11:00:13 -05:00
2026-10-12 12:25:30 -05:00
2026-10-12 12:25:30 -05:00
2026-10-14 04:53:07 -05:00
2026-10-14 11:43:44 -05:00
2026-10-13 12:36:06 -05:00
2026-10-05 17:51:24 -05:00
2026-10-14 18:12:09 -05:00
2026-10-05 17:51:24 -05:00
2026-10-07 15:39:05 -05:00
2026-10-14 09:58:18 -05:00
2026-10-12 12:25:30 -05:00
2026-10-13 20:30:01 -05:00
2026-10-13 12:36:06 -05:00
2026-10-05 17:51:24 -05:00
2026-10-12 12:25:30 -05:00
2026-10-12 12:25:30 -05:00
2026-10-05 17:51:24 -05:00
2026-10-11 07:05:29 -07:00
2026-10-13 20:26:38 -05:00
2026-10-05 17:51:24 -05:00
2026-10-05 17:51:24 -05:00
2026-10-13 12:36:06 -05:00
2026-10-13 12:36:06 -05:00
2026-10-13 21:24:38 -05:00
2026-10-12 12:25:30 -05:00
2026-10-12 12:25:30 -05:00
2026-10-12 12:25:30 -05:00
2026-10-10 14:03:20 -07:00
2026-10-12 12:25:30 -05:00
2026-10-12 12:25:30 -05:00
2026-10-13 12:36:06 -05:00
2026-10-13 12:36:06 -05:00
2026-10-05 17:51:24 -05:00
2026-10-13 18:51:09 -05:00
2026-10-05 17:51:24 -05:00
2026-10-14 21:28:04 -05:00