void |
BranchManager.BranchNode.add(int index,
BranchManager.BranchNode node) |
boolean |
BranchManager.BranchNode.add(BranchManager.BranchNode node) |
private boolean |
BranchManager.addBreakIfLoopContinue(BranchManager.BranchNode parent,
BranchManager.ParsedBlock startBlock) |
Add a break to the node if the block jump to the continue position of an outer loop.
|
private void |
BranchManager.addUnboxExnref(BranchManager.BranchNode catchNode,
TryCatchFinally tryCatch) |
Add an unboxing of the WASm exnref on the stack
|
private void |
BranchManager.calculate(BranchManager.BranchNode parent,
java.util.List<BranchManager.ParsedBlock> parsedOperations) |
Calculate the branch tree for the given branch and parsed sub operations.
|
private int |
BranchManager.calculateBreakDeep(BranchManager.BranchNode parent,
int endPos) |
Calculate the deep of a break.
|
private int |
BranchManager.calculateContinueDeep(BranchManager.BranchNode parent,
int startPos) |
Calculate the break deep for a continue in a do while(condition) loop.
|
private void |
BranchManager.calculateGoto(BranchManager.BranchNode parent,
BranchManager.ParsedBlock gotoBlock,
java.util.List<BranchManager.ParsedBlock> parsedOperations) |
The not consumed GOTO operators of IF THEN ELSE must be break or continue in a loop.
|
private void |
BranchManager.calculateIf(BranchManager.BranchNode parent,
BranchManager.IfParsedBlock startBlock,
java.util.List<BranchManager.ParsedBlock> parsedOperations) |
Calculate the ELSE and END position of an IF control structure.
|
private void |
BranchManager.calculateLoop(BranchManager.BranchNode parent,
BranchManager.ParsedBlock loopBlock,
java.util.List<BranchManager.ParsedBlock> parsedOperations) |
Calculate the needed nodes for a loop.
|
private void |
BranchManager.calculateSwitch(BranchManager.BranchNode parent,
BranchManager.SwitchParsedBlock switchBlock,
java.util.List<BranchManager.ParsedBlock> parsedOperations) |
Calculate the blocks of a switch.
|
private void |
BranchManager.calculateTry(BranchManager.BranchNode parent,
BranchManager.TryCatchParsedBlock tryBlock,
java.util.List<BranchManager.ParsedBlock> parsedOperations) |
Calculate the needed nodes for try/catch
Sample: The follow Java code:
|
private void |
BranchManager.calculateTrySubOperations(BranchManager.BranchNode catchNode,
BranchManager.BranchNode node,
java.util.List<BranchManager.ParsedBlock> parsedOperations) |
Calculate branch operations inside the CATCH/FINALLY blocks.
|
private void |
BranchManager.patchBrDeep(BranchManager.BranchNode newNode) |
Patch the existing BR instructions after a new BLOCK node was injected in the hierarchy.
|
private void |
BranchManager.patchBrDeepInTree(BranchManager.BranchNode newNode,
int deep) |
Patch the existing BR instructions in the tree after a new BLOCK node was injected in the hierarchy.
|