org.mozilla.javascript.optimizer
Class Codegen
java.lang.Object
|
+--org.mozilla.javascript.LabelTable
|
+--org.mozilla.javascript.Interpreter
|
+--org.mozilla.javascript.optimizer.Codegen
- public class Codegen
- extends Interpreter
This class generates code for a given IR tree.
- Author:
- Norris Boyd, Roger Lawrence
Method Summary |
int |
acquireLabel()
|
java.lang.Object |
compile(Context cx,
Scriptable scope,
Node tree,
java.lang.Object securityDomain,
SecuritySupport securitySupport,
ClassNameHelper nameHelper)
|
IRFactory |
createIRFactory(TokenStream ts,
ClassNameHelper nameHelper,
Scriptable scope)
|
void |
emitDirectConstructor(OptFunctionNode fnNode)
|
java.lang.String |
generateCode(Node tree,
java.util.Vector names,
java.util.Vector classFiles,
ClassNameHelper nameHelper)
|
int |
markLabel(int label)
|
int |
markLabel(int label,
short stackheight)
|
Node |
transform(Node tree,
TokenStream ts,
Scriptable scope)
|
Methods inherited from class java.lang.Object |
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Codegen
public Codegen()
createIRFactory
public IRFactory createIRFactory(TokenStream ts,
ClassNameHelper nameHelper,
Scriptable scope)
- Overrides:
createIRFactory
in class Interpreter
transform
public Node transform(Node tree,
TokenStream ts,
Scriptable scope)
- Overrides:
transform
in class Interpreter
compile
public java.lang.Object compile(Context cx,
Scriptable scope,
Node tree,
java.lang.Object securityDomain,
SecuritySupport securitySupport,
ClassNameHelper nameHelper)
throws java.io.IOException
- Overrides:
compile
in class Interpreter
markLabel
public int markLabel(int label)
markLabel
public int markLabel(int label,
short stackheight)
acquireLabel
public int acquireLabel()
- Overrides:
acquireLabel
in class LabelTable
emitDirectConstructor
public void emitDirectConstructor(OptFunctionNode fnNode)
generateCode
public java.lang.String generateCode(Node tree,
java.util.Vector names,
java.util.Vector classFiles,
ClassNameHelper nameHelper)