Commit 0b8922a
committed
BridgeJS: Use direct string retain + encodeInto() for stack ABI paths
For arrays, struct fields, enum payloads, and dictionary entries, the
stack ABI now retains the JS string directly (instead of encoding to a
Uint8Array first) and passes string.length * 3 as worst-case buffer
capacity.
_swift_js_init_memory detects the string via typeof and writes UTF-8
directly into the WASM linear memory buffer using encodeInto(). It now
returns the actual byte count written (Int32 instead of Void) so
String(unsafeUninitializedCapacity:) uses the correct length.
This eliminates the intermediate Uint8Array allocation for every string
element in arrays and struct fields.1 parent acf7d9e commit 0b8922a
53 files changed
Lines changed: 320 additions & 149 deletions
File tree
- Plugins/BridgeJS
- Sources/BridgeJSLink
- Tests/BridgeJSToolTests/__Snapshots__/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 | |
|---|---|---|---|
| |||
396 | 396 | | |
397 | 397 | | |
398 | 398 | | |
| 399 | + | |
| 400 | + | |
| 401 | + | |
| 402 | + | |
| 403 | + | |
| 404 | + | |
| 405 | + | |
| 406 | + | |
| 407 | + | |
| 408 | + | |
399 | 409 | | |
| 410 | + | |
400 | 411 | | |
401 | 412 | | |
402 | 413 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
2122 | 2122 | | |
2123 | 2123 | | |
2124 | 2124 | | |
2125 | | - | |
2126 | 2125 | | |
| 2126 | + | |
| 2127 | + | |
| 2128 | + | |
2127 | 2129 | | |
2128 | | - | |
2129 | | - | |
2130 | | - | |
2131 | | - | |
| 2130 | + | |
2132 | 2131 | | |
2133 | | - | |
| 2132 | + | |
2134 | 2133 | | |
2135 | 2134 | | |
2136 | 2135 | | |
| |||
Lines changed: 18 additions & 21 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
73 | 73 | | |
74 | 74 | | |
75 | 75 | | |
| 76 | + | |
| 77 | + | |
| 78 | + | |
76 | 79 | | |
| 80 | + | |
77 | 81 | | |
78 | 82 | | |
79 | 83 | | |
| |||
304 | 308 | | |
305 | 309 | | |
306 | 310 | | |
307 | | - | |
308 | | - | |
309 | | - | |
| 311 | + | |
| 312 | + | |
310 | 313 | | |
311 | 314 | | |
312 | 315 | | |
| |||
414 | 417 | | |
415 | 418 | | |
416 | 419 | | |
417 | | - | |
418 | | - | |
419 | | - | |
| 420 | + | |
| 421 | + | |
420 | 422 | | |
421 | 423 | | |
422 | 424 | | |
| |||
469 | 471 | | |
470 | 472 | | |
471 | 473 | | |
472 | | - | |
473 | | - | |
474 | | - | |
| 474 | + | |
| 475 | + | |
475 | 476 | | |
476 | 477 | | |
477 | 478 | | |
| |||
654 | 655 | | |
655 | 656 | | |
656 | 657 | | |
657 | | - | |
658 | | - | |
659 | | - | |
| 658 | + | |
| 659 | + | |
660 | 660 | | |
661 | 661 | | |
662 | 662 | | |
| |||
810 | 810 | | |
811 | 811 | | |
812 | 812 | | |
813 | | - | |
814 | | - | |
815 | | - | |
| 813 | + | |
| 814 | + | |
816 | 815 | | |
817 | 816 | | |
818 | 817 | | |
| |||
979 | 978 | | |
980 | 979 | | |
981 | 980 | | |
982 | | - | |
983 | | - | |
984 | | - | |
| 981 | + | |
| 982 | + | |
985 | 983 | | |
986 | 984 | | |
987 | 985 | | |
| |||
1000 | 998 | | |
1001 | 999 | | |
1002 | 1000 | | |
1003 | | - | |
1004 | | - | |
1005 | | - | |
| 1001 | + | |
| 1002 | + | |
1006 | 1003 | | |
1007 | 1004 | | |
1008 | 1005 | | |
| |||
Lines changed: 4 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
48 | 48 | | |
49 | 49 | | |
50 | 50 | | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
51 | 54 | | |
| 55 | + | |
52 | 56 | | |
53 | 57 | | |
54 | 58 | | |
| |||
Lines changed: 4 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
163 | 163 | | |
164 | 164 | | |
165 | 165 | | |
| 166 | + | |
| 167 | + | |
| 168 | + | |
166 | 169 | | |
| 170 | + | |
167 | 171 | | |
168 | 172 | | |
169 | 173 | | |
| |||
Lines changed: 4 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
162 | 162 | | |
163 | 163 | | |
164 | 164 | | |
| 165 | + | |
| 166 | + | |
| 167 | + | |
165 | 168 | | |
| 169 | + | |
166 | 170 | | |
167 | 171 | | |
168 | 172 | | |
| |||
Lines changed: 8 additions & 6 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
41 | 41 | | |
42 | 42 | | |
43 | 43 | | |
44 | | - | |
45 | | - | |
46 | | - | |
| 44 | + | |
| 45 | + | |
47 | 46 | | |
48 | 47 | | |
49 | 48 | | |
| |||
90 | 89 | | |
91 | 90 | | |
92 | 91 | | |
| 92 | + | |
| 93 | + | |
| 94 | + | |
93 | 95 | | |
| 96 | + | |
94 | 97 | | |
95 | 98 | | |
96 | 99 | | |
| |||
563 | 566 | | |
564 | 567 | | |
565 | 568 | | |
566 | | - | |
567 | | - | |
568 | | - | |
| 569 | + | |
| 570 | + | |
569 | 571 | | |
570 | 572 | | |
571 | 573 | | |
| |||
Lines changed: 22 additions & 27 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
35 | 35 | | |
36 | 36 | | |
37 | 37 | | |
38 | | - | |
39 | | - | |
40 | | - | |
| 38 | + | |
| 39 | + | |
41 | 40 | | |
42 | 41 | | |
43 | 42 | | |
44 | 43 | | |
45 | | - | |
46 | | - | |
47 | | - | |
| 44 | + | |
| 45 | + | |
48 | 46 | | |
49 | 47 | | |
50 | 48 | | |
| |||
89 | 87 | | |
90 | 88 | | |
91 | 89 | | |
| 90 | + | |
| 91 | + | |
| 92 | + | |
92 | 93 | | |
| 94 | + | |
93 | 95 | | |
94 | 96 | | |
95 | 97 | | |
| |||
261 | 263 | | |
262 | 264 | | |
263 | 265 | | |
264 | | - | |
265 | | - | |
266 | | - | |
| 266 | + | |
| 267 | + | |
267 | 268 | | |
268 | 269 | | |
269 | 270 | | |
| |||
352 | 353 | | |
353 | 354 | | |
354 | 355 | | |
355 | | - | |
356 | | - | |
357 | | - | |
| 356 | + | |
| 357 | + | |
358 | 358 | | |
359 | 359 | | |
360 | 360 | | |
| |||
375 | 375 | | |
376 | 376 | | |
377 | 377 | | |
378 | | - | |
379 | | - | |
380 | | - | |
| 378 | + | |
| 379 | + | |
381 | 380 | | |
382 | | - | |
383 | | - | |
384 | | - | |
| 381 | + | |
| 382 | + | |
385 | 383 | | |
386 | 384 | | |
387 | 385 | | |
| |||
408 | 406 | | |
409 | 407 | | |
410 | 408 | | |
411 | | - | |
412 | | - | |
413 | | - | |
| 409 | + | |
| 410 | + | |
414 | 411 | | |
415 | 412 | | |
416 | 413 | | |
| |||
438 | 435 | | |
439 | 436 | | |
440 | 437 | | |
441 | | - | |
442 | | - | |
443 | | - | |
| 438 | + | |
| 439 | + | |
444 | 440 | | |
445 | 441 | | |
446 | 442 | | |
| |||
460 | 456 | | |
461 | 457 | | |
462 | 458 | | |
463 | | - | |
464 | | - | |
465 | | - | |
| 459 | + | |
| 460 | + | |
466 | 461 | | |
467 | 462 | | |
468 | 463 | | |
| |||
0 commit comments