Commit 17ca6a1
fix(hermes-base): treat operand-width opcode variants and switch jump-table offsets as equivalent in the verification
With a base whose string set differs from the new bundle (e.g. the newest legacy
version of an app), the new code's hot strings get large ids and hermesc emits
GetById/LoadConstStringLongIndex instead of the Short forms, and switch jump
tables move with instruction widths. The disassembly compare reported those
as non-equivalent and dropped a perfectly good delta build. Fold the
Short/Long/LongIndex suffix (and hermesc's column padding) and the switch
table offsets; unit-tested, and verified on a real production base (v98) and
on the RN 0.77 (v96) chain.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>1 parent 2d6f597 commit 17ca6a1
2 files changed
Lines changed: 38 additions & 2 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
622 | 622 | | |
623 | 623 | | |
624 | 624 | | |
625 | | - | |
| 625 | + | |
| 626 | + | |
| 627 | + | |
| 628 | + | |
| 629 | + | |
| 630 | + | |
| 631 | + | |
| 632 | + | |
| 633 | + | |
| 634 | + | |
| 635 | + | |
| 636 | + | |
| 637 | + | |
626 | 638 | | |
627 | 639 | | |
628 | 640 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
415 | 415 | | |
416 | 416 | | |
417 | 417 | | |
| 418 | + | |
| 419 | + | |
| 420 | + | |
| 421 | + | |
| 422 | + | |
| 423 | + | |
| 424 | + | |
| 425 | + | |
| 426 | + | |
| 427 | + | |
| 428 | + | |
| 429 | + | |
| 430 | + | |
| 431 | + | |
| 432 | + | |
| 433 | + | |
| 434 | + | |
| 435 | + | |
| 436 | + | |
| 437 | + | |
| 438 | + | |
| 439 | + | |
| 440 | + | |
| 441 | + | |
418 | 442 | | |
419 | 443 | | |
420 | | - | |
| 444 | + | |
421 | 445 | | |
422 | 446 | | |
423 | 447 | | |
| |||
0 commit comments