Pragma-file functions declared (): number[] or (): string[] currently fall through to opaque JSHandle. Native caller can't iterate.
Ask
Marshal synth (src/marshal-wrapper.ts) detects array return types. Emits loop:
cs_v8_handle_array_length(handle) -> number
- For each index
cs_v8_handle_array_get(handle, i) -> JSHandle
- Unmarshal each element per element type
- Build native
number[] / string[] array
New bridge fns (c_bridges/node-bridge.cc)
double cs_v8_handle_array_length(double h)
double cs_v8_handle_array_get(double h, double i)
Scope
- Supported element types v1: number, string, boolean
- Nested arrays (number[][]): later
- Fixture: pragma exports
() => [1,2,3], native sums it
Est
~200-300 LOC. ~1 day.
Pragma-file functions declared
(): number[]or(): string[]currently fall through to opaque JSHandle. Native caller can't iterate.Ask
Marshal synth (src/marshal-wrapper.ts) detects array return types. Emits loop:
cs_v8_handle_array_length(handle) -> numbercs_v8_handle_array_get(handle, i) -> JSHandlenumber[]/string[]arrayNew bridge fns (c_bridges/node-bridge.cc)
double cs_v8_handle_array_length(double h)double cs_v8_handle_array_get(double h, double i)Scope
() => [1,2,3], native sums itEst
~200-300 LOC. ~1 day.