Commit 81d24bd
committed
BridgeJS: Add bulk copy for JS-to-Swift typed array parameters
Use the string-lowering retain-allocate-callback pattern for typed
array parameters: JS retains the TypedArray, passes (id, count) as
WASM params, Swift allocates via Array(unsafeUninitializedCapacity:),
then calls swift_js_init_typed_array_memory to bulk copy the data.
This completes bidirectional typed array optimization. Both Swift->JS
and JS->Swift now use bulk memory copy instead of element-by-element
stack serialization for top-level typed array parameters and returns.
Nested contexts (struct fields, dictionary values) continue using
element-by-element as a safe fallback.1 parent d4fbbbf commit 81d24bd
67 files changed
Lines changed: 787 additions & 124 deletions
File tree
- Plugins/BridgeJS
- Sources
- BridgeJSCore
- BridgeJSLink
- BridgeJSSkeleton
- Tests/BridgeJSToolTests
- Inputs/MacroSwift
- __Snapshots__
- BridgeJSCodegenTests
- BridgeJSLinkTests
- Sources/JavaScriptKit
Some content is hidden
Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
137 | 137 | | |
138 | 138 | | |
139 | 139 | | |
140 | | - | |
| 140 | + | |
141 | 141 | | |
142 | 142 | | |
| 143 | + | |
| 144 | + | |
| 145 | + | |
| 146 | + | |
| 147 | + | |
143 | 148 | | |
144 | 149 | | |
145 | 150 | | |
| |||
831 | 836 | | |
832 | 837 | | |
833 | 838 | | |
| 839 | + | |
| 840 | + | |
834 | 841 | | |
835 | 842 | | |
836 | 843 | | |
| |||
1517 | 1524 | | |
1518 | 1525 | | |
1519 | 1526 | | |
1520 | | - | |
| 1527 | + | |
1521 | 1528 | | |
1522 | 1529 | | |
1523 | 1530 | | |
| |||
1577 | 1584 | | |
1578 | 1585 | | |
1579 | 1586 | | |
1580 | | - | |
| 1587 | + | |
1581 | 1588 | | |
| 1589 | + | |
| 1590 | + | |
1582 | 1591 | | |
1583 | 1592 | | |
1584 | 1593 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
397 | 397 | | |
398 | 398 | | |
399 | 399 | | |
| 400 | + | |
| 401 | + | |
| 402 | + | |
| 403 | + | |
| 404 | + | |
| 405 | + | |
| 406 | + | |
| 407 | + | |
| 408 | + | |
| 409 | + | |
| 410 | + | |
| 411 | + | |
| 412 | + | |
| 413 | + | |
| 414 | + | |
| 415 | + | |
400 | 416 | | |
401 | 417 | | |
402 | 418 | | |
| |||
480 | 496 | | |
481 | 497 | | |
482 | 498 | | |
483 | | - | |
| 499 | + | |
484 | 500 | | |
485 | | - | |
| 501 | + | |
486 | 502 | | |
487 | 503 | | |
488 | 504 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1325 | 1325 | | |
1326 | 1326 | | |
1327 | 1327 | | |
1328 | | - | |
| 1328 | + | |
1329 | 1329 | | |
1330 | 1330 | | |
1331 | 1331 | | |
| |||
1498 | 1498 | | |
1499 | 1499 | | |
1500 | 1500 | | |
| 1501 | + | |
| 1502 | + | |
1501 | 1503 | | |
1502 | 1504 | | |
1503 | 1505 | | |
| |||
1567 | 1569 | | |
1568 | 1570 | | |
1569 | 1571 | | |
1570 | | - | |
| 1572 | + | |
1571 | 1573 | | |
1572 | 1574 | | |
1573 | 1575 | | |
| |||
1964 | 1966 | | |
1965 | 1967 | | |
1966 | 1968 | | |
1967 | | - | |
1968 | | - | |
1969 | | - | |
1970 | | - | |
| 1969 | + | |
| 1970 | + | |
| 1971 | + | |
| 1972 | + | |
| 1973 | + | |
| 1974 | + | |
| 1975 | + | |
| 1976 | + | |
| 1977 | + | |
| 1978 | + | |
| 1979 | + | |
| 1980 | + | |
| 1981 | + | |
| 1982 | + | |
| 1983 | + | |
| 1984 | + | |
| 1985 | + | |
| 1986 | + | |
| 1987 | + | |
| 1988 | + | |
| 1989 | + | |
| 1990 | + | |
| 1991 | + | |
| 1992 | + | |
| 1993 | + | |
| 1994 | + | |
| 1995 | + | |
| 1996 | + | |
1971 | 1997 | | |
1972 | 1998 | | |
1973 | 1999 | | |
| |||
1978 | 2004 | | |
1979 | 2005 | | |
1980 | 2006 | | |
| 2007 | + | |
| 2008 | + | |
1981 | 2009 | | |
1982 | 2010 | | |
1983 | 2011 | | |
| |||
2146 | 2174 | | |
2147 | 2175 | | |
2148 | 2176 | | |
| 2177 | + | |
| 2178 | + | |
2149 | 2179 | | |
2150 | 2180 | | |
2151 | 2181 | | |
| |||
2270 | 2300 | | |
2271 | 2301 | | |
2272 | 2302 | | |
2273 | | - | |
| 2303 | + | |
2274 | 2304 | | |
2275 | 2305 | | |
2276 | 2306 | | |
| |||
Lines changed: 9 additions & 2 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
272 | 272 | | |
273 | 273 | | |
274 | 274 | | |
| 275 | + | |
| 276 | + | |
275 | 277 | | |
276 | 278 | | |
277 | 279 | | |
278 | 280 | | |
279 | 281 | | |
280 | 282 | | |
281 | 283 | | |
282 | | - | |
| 284 | + | |
283 | 285 | | |
284 | 286 | | |
285 | 287 | | |
| |||
294 | 296 | | |
295 | 297 | | |
296 | 298 | | |
| 299 | + | |
| 300 | + | |
297 | 301 | | |
298 | 302 | | |
299 | 303 | | |
| |||
313 | 317 | | |
314 | 318 | | |
315 | 319 | | |
| 320 | + | |
| 321 | + | |
316 | 322 | | |
317 | 323 | | |
318 | 324 | | |
| |||
327 | 333 | | |
328 | 334 | | |
329 | 335 | | |
330 | | - | |
| 336 | + | |
| 337 | + | |
331 | 338 | | |
332 | 339 | | |
333 | 340 | | |
| |||
Lines changed: 8 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
18 | 18 | | |
19 | 19 | | |
20 | 20 | | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
21 | 29 | | |
22 | 30 | | |
23 | 31 | | |
| |||
Lines changed: 6 additions & 6 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | 1 | | |
2 | 2 | | |
3 | | - | |
| 3 | + | |
4 | 4 | | |
5 | | - | |
| 5 | + | |
6 | 6 | | |
7 | 7 | | |
8 | 8 | | |
| |||
11 | 11 | | |
12 | 12 | | |
13 | 13 | | |
14 | | - | |
| 14 | + | |
15 | 15 | | |
16 | | - | |
| 16 | + | |
17 | 17 | | |
18 | 18 | | |
19 | 19 | | |
| |||
55 | 55 | | |
56 | 56 | | |
57 | 57 | | |
58 | | - | |
| 58 | + | |
59 | 59 | | |
60 | | - | |
| 60 | + | |
61 | 61 | | |
62 | 62 | | |
63 | 63 | | |
| |||
Lines changed: 50 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
133 | 133 | | |
134 | 134 | | |
135 | 135 | | |
| 136 | + | |
| 137 | + | |
| 138 | + | |
| 139 | + | |
| 140 | + | |
| 141 | + | |
| 142 | + | |
| 143 | + | |
| 144 | + | |
| 145 | + | |
| 146 | + | |
| 147 | + | |
| 148 | + | |
| 149 | + | |
| 150 | + | |
| 151 | + | |
| 152 | + | |
| 153 | + | |
| 154 | + | |
| 155 | + | |
| 156 | + | |
| 157 | + | |
| 158 | + | |
| 159 | + | |
| 160 | + | |
| 161 | + | |
| 162 | + | |
| 163 | + | |
| 164 | + | |
| 165 | + | |
| 166 | + | |
| 167 | + | |
| 168 | + | |
| 169 | + | |
| 170 | + | |
| 171 | + | |
| 172 | + | |
| 173 | + | |
| 174 | + | |
| 175 | + | |
| 176 | + | |
| 177 | + | |
| 178 | + | |
| 179 | + | |
| 180 | + | |
| 181 | + | |
| 182 | + | |
| 183 | + | |
| 184 | + | |
| 185 | + | |
136 | 186 | | |
137 | 187 | | |
138 | 188 | | |
| |||
0 commit comments