Commit 97ae9c5
committed
[TS] Resolver: guard cyclic object graphs; look fake objects up by both key forms
- resolveTsClass now cuts cycles in object graphs (linked nodes made the
recursive field resolution overflow the stack: the last 2 of 68
input-resolution failures on the datastructures corpus, now 0)
- the fake-object bookkeeping in prepareForResolve stores lvalues with
model-evaluated refs, while the lookup queried with the raw symbolic ref
only; query by both key forms
Diagnosis note: the residual replay divergence on the datastructures corpus
is dominated by paths that go through engine-mocked calls (e.g.
Object.prototype.hasOwnProperty.call), where the model legitimately leaves
the object fields unconstrained — the replay correctly refuses to credit
such branches; the number is the measured price of the remaining mocks.1 parent 668cfaf commit 97ae9c5
1 file changed
Lines changed: 18 additions & 2 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
478 | 478 | | |
479 | 479 | | |
480 | 480 | | |
| 481 | + | |
| 482 | + | |
| 483 | + | |
481 | 484 | | |
482 | 485 | | |
483 | 486 | | |
| |||
489 | 492 | | |
490 | 493 | | |
491 | 494 | | |
| 495 | + | |
| 496 | + | |
| 497 | + | |
| 498 | + | |
| 499 | + | |
| 500 | + | |
492 | 501 | | |
493 | 502 | | |
494 | 503 | | |
| |||
498 | 507 | | |
499 | 508 | | |
500 | 509 | | |
| 510 | + | |
| 511 | + | |
| 512 | + | |
| 513 | + | |
501 | 514 | | |
502 | 515 | | |
503 | | - | |
| 516 | + | |
504 | 517 | | |
505 | | - | |
| 518 | + | |
506 | 519 | | |
507 | 520 | | |
508 | 521 | | |
| |||
529 | 542 | | |
530 | 543 | | |
531 | 544 | | |
| 545 | + | |
| 546 | + | |
| 547 | + | |
532 | 548 | | |
533 | 549 | | |
534 | 550 | | |
| |||
0 commit comments