* Adds source positions for given code.
(start, scriptId, startPos, endPos, sourcePositionTable,
inliningPositions, inlinedSFIs)
| 592 | * Adds source positions for given code. |
| 593 | */ |
| 594 | addSourcePositions(start, scriptId, startPos, endPos, sourcePositionTable, |
| 595 | inliningPositions, inlinedSFIs) { |
| 596 | const script = this.getOrCreateScript(scriptId); |
| 597 | const entry = this.codeMap_.findDynamicEntryByStartAddress(start); |
| 598 | if (entry === null) return; |
| 599 | // Resolve the inlined SharedFunctionInfo list. |
| 600 | if (inlinedSFIs.length > 0) { |
| 601 | inlinedSFIs = inlinedSFIs.substring(1).split("S"); |
| 602 | for (let i = 0; i < inlinedSFIs.length; i++) { |
| 603 | const sfiAddr = parseInt(inlinedSFIs[i]); |
| 604 | const sfi = this.codeMap_.findDynamicEntryByStartAddress(sfiAddr); |
| 605 | if (sfi === null || sfi.funcId === undefined) { |
| 606 | // TODO: fix |
| 607 | this.warnings.add(`Could not find function ${inlinedSFIs[i]}`); |
| 608 | inlinedSFIs[i] = null; |
| 609 | } else { |
| 610 | inlinedSFIs[i] = sfi.funcId; |
| 611 | } |
| 612 | } |
| 613 | } else { |
| 614 | inlinedSFIs = []; |
| 615 | } |
| 616 | |
| 617 | this.getOrCreateSourceInfo(entry).setSourcePositionInfo( |
| 618 | script, startPos, endPos, sourcePositionTable, inliningPositions, |
| 619 | inlinedSFIs); |
| 620 | } |
| 621 | |
| 622 | addDisassemble(start, kind, disassemble) { |
| 623 | const entry = this.codeMap_.findDynamicEntryByStartAddress(start); |
no test coverage detected