class OptimizeReturns extends java.lang.Object implements OptimizeCalls.CallGraphCompilerPass, CompilerPass
| Modifier and Type | Field and Description |
|---|---|
private AbstractCompiler |
compiler |
| Constructor and Description |
|---|
OptimizeReturns(AbstractCompiler compiler) |
| Modifier and Type | Method and Description |
|---|---|
private static boolean |
callResultsMaybeUsed(SimpleDefinitionFinder defFinder,
DefinitionSite definitionSite)
Determines if a function result might be used.
|
private static boolean |
isCall(UseSite site)
Determines if the name node acts as the function name in a call expression.
|
void |
process(Node externs,
Node root)
Process the JS with root node root.
|
void |
process(Node externs,
Node root,
SimpleDefinitionFinder definitions) |
private void |
rewriteReturns(SimpleDefinitionFinder defFinder,
Node fnNode)
For the supplied function node, rewrite all the return expressions so that:
return foo();
becomes:
foo(); return;
Useless return will be removed later by the peephole optimization passes.
|
private AbstractCompiler compiler
OptimizeReturns(AbstractCompiler compiler)
public void process(Node externs, Node root)
CompilerPassprocess in interface CompilerPassexterns - Top of external JS treeroot - Top of JS treepublic void process(Node externs, Node root, SimpleDefinitionFinder definitions)
process in interface OptimizeCalls.CallGraphCompilerPassprivate static boolean callResultsMaybeUsed(SimpleDefinitionFinder defFinder, DefinitionSite definitionSite)
private void rewriteReturns(SimpleDefinitionFinder defFinder, Node fnNode)
private static boolean isCall(UseSite site)