Class JSStructuredControlflowCodeGenerator
java.lang.Object
de.mirkosertic.bytecoder.core.backend.js.JSStructuredControlflowCodeGenerator
- All Implemented Interfaces:
StructuredControlflowCodeGenerator
public class JSStructuredControlflowCodeGenerator
extends Object
implements StructuredControlflowCodeGenerator
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescription(package private) static class -
Field Summary
FieldsModifier and TypeFieldDescriptionprivate final ResolvedClassprivate final CompileUnitprivate final GeneratedMethodsRegistry(package private) intprivate final PrintWriterprivate final Map<AbstractVar, String> -
Constructor Summary
ConstructorsConstructorDescriptionJSStructuredControlflowCodeGenerator(CompileUnit compileUnit, ResolvedClass cl, PrintWriter pw, GeneratedMethodsRegistry generatedMethodsRegistry) -
Method Summary
Modifier and TypeMethodDescriptionvoidfinishBlock(Sequencer.Block block, boolean stackEmpty) voidvoidvoidvoidvoidvoidvoidvoidprivate voidgenerateInvokeDynamicLambdaMetaFactoryInvocation(InvokeDynamicExpression node, ResolveCallsite resolveCallsite) private voidgenerateInvokeDynamicObjectMethodsEquals(InvokeDynamicExpression node, ResolveCallsite resolveCallsite) private voidgenerateInvokeDynamicObjectMethodsHashCode(InvokeDynamicExpression node, ResolveCallsite resolveCallsite) private voidgenerateInvokeDynamicObjectMethodsToString(InvokeDynamicExpression node, ResolveCallsite resolveCallsite) private voidgenerateInvokeDynamicStringMakeConcatWithConstants(InvokeDynamicExpression node, ResolveCallsite resolveCallsite) voidvoidstartBlock(Sequencer.Block block) voidvoidstartCatchHandler(org.objectweb.asm.Type type) voidstartIfElseBlock(If node) voidstartIfWithTrueBlock(If node) voidvoidstartTableSwitch(TableSwitch node) voidvoidstartTryCatch(String label) voidwrite(ArrayStore node) voidwrite(ClassInitialization node) voidvoidwrite(FrameDebugInfo node) voidvoidwrite(LineNumberDebugInfo node) voidwrite(MethodInvocation invocation) voidwrite(MonitorEnter node) voidwrite(MonitorExit node) voidvoidwrite(ReturnValue node) voidwrite(SetClassField node) voidwrite(SetInstanceField node) voidvoidwriteBreakTo(String label) voidwriteContinueTo(String label) private voidwriteDirect(MethodInvocation node) private voidwriteExpression(AbstractVar node) private voidwriteExpression(Add node) private voidwriteExpression(And node) private voidwriteExpression(ArrayLength node) private voidwriteExpression(ArrayLoad node) private voidwriteExpression(Cast node) private voidprivate voidwriteExpression(CMP node) private voidwriteExpression(Div node) private voidwriteExpression(EnumValuesOf enumValuesOf) private voidwriteExpression(InstanceOf node) private voidprivate voidprivate voidprivate voidwriteExpression(MethodType node) private voidwriteExpression(Mul node) private voidwriteExpression(Neg node) private voidwriteExpression(New node) private voidwriteExpression(NewArray node) private voidwriteExpression(Node node) private voidwriteExpression(NullReference node) private voidwriteExpression(NullTest node) private voidwriteExpression(NumericalTest node) private voidwriteExpression(ObjectString node) private voidwriteExpression(Or node) private voidwriteExpression(PrimitiveClassReference reference) private voidprivate voidprivate voidwriteExpression(PrimitiveInt node) private voidwriteExpression(PrimitiveLong node) private voidprivate voidprivate voidprivate voidwriteExpression(ReferenceTest node) private voidwriteExpression(Rem node) private voidwriteExpression(RuntimeClass node) private voidwriteExpression(RuntimeClassOf runtimeClassOf) private voidwriteExpression(SHL node) private voidwriteExpression(SHR node) private voidwriteExpression(Sub node) private voidwriteExpression(This node) private voidprivate voidwriteExpression(TypeReference node) private voidwriteExpression(USHR node) private voidwriteExpression(XOr node) private voidprivate voidprivate voidprivate voidprivate voidprivate voidvoidprivate voidwriteStatic(MethodInvocation node) voidwriteSwitchCase(int index) voidprivate voidwriteType(org.objectweb.asm.Type type) private voidwriteVirtual(MethodInvocation node)
-
Field Details
-
level
int level -
variableToName
-
pw
-
cl
-
compileUnit
-
generatedMethodsRegistry
-
-
Constructor Details
-
JSStructuredControlflowCodeGenerator
public JSStructuredControlflowCodeGenerator(CompileUnit compileUnit, ResolvedClass cl, PrintWriter pw, GeneratedMethodsRegistry generatedMethodsRegistry)
-
-
Method Details
-
registerVariables
- Specified by:
registerVariablesin interfaceStructuredControlflowCodeGenerator
-
writeIndent
private void writeIndent() -
write
- Specified by:
writein interfaceStructuredControlflowCodeGenerator
-
write
- Specified by:
writein interfaceStructuredControlflowCodeGenerator
-
write
- Specified by:
writein interfaceStructuredControlflowCodeGenerator
-
write
- Specified by:
writein interfaceStructuredControlflowCodeGenerator
-
write
- Specified by:
writein interfaceStructuredControlflowCodeGenerator
-
write
- Specified by:
writein interfaceStructuredControlflowCodeGenerator
-
write
- Specified by:
writein interfaceStructuredControlflowCodeGenerator
-
writeDirect
-
writeExpression
-
write
- Specified by:
writein interfaceStructuredControlflowCodeGenerator
-
writeExpressionDirectInvocation
-
writeExpression
-
generateInvokeDynamicStringMakeConcatWithConstants
private void generateInvokeDynamicStringMakeConcatWithConstants(InvokeDynamicExpression node, ResolveCallsite resolveCallsite) -
generateInvokeDynamicObjectMethodsToString
private void generateInvokeDynamicObjectMethodsToString(InvokeDynamicExpression node, ResolveCallsite resolveCallsite) -
generateInvokeDynamicObjectMethodsHashCode
private void generateInvokeDynamicObjectMethodsHashCode(InvokeDynamicExpression node, ResolveCallsite resolveCallsite) -
generateInvokeDynamicObjectMethodsEquals
private void generateInvokeDynamicObjectMethodsEquals(InvokeDynamicExpression node, ResolveCallsite resolveCallsite) -
generateInvokeDynamicLambdaMetaFactoryInvocation
private void generateInvokeDynamicLambdaMetaFactoryInvocation(InvokeDynamicExpression node, ResolveCallsite resolveCallsite) -
writeExpression
-
writeExpression
-
writeExpression
-
writeExpression
-
writeExpression
-
writeExpression
-
writeExpression
-
writeExpression
-
writeExpression
-
writeExpression
-
writeExpression
-
writeExpression
-
writeExpression
-
writeExpression
-
writeExpression
-
writeExpression
-
writeExpression
-
writeExpression
-
writeExpression
-
writeExpression
-
writeType
private void writeType(org.objectweb.asm.Type type) -
writeExpression
-
writeExpression
-
writeExpression
-
writeExpression
-
writeExpression
-
writeExpression
-
writeExpression
-
writeExpression
-
writeExpression
-
writeExpression
-
writeExpression
-
writeExpression
-
writeExpression
-
write
- Specified by:
writein interfaceStructuredControlflowCodeGenerator
-
write
- Specified by:
writein interfaceStructuredControlflowCodeGenerator
-
write
- Specified by:
writein interfaceStructuredControlflowCodeGenerator
-
writeVirtual
-
writeExpressionVirtualInvocation
-
writeInterface
-
writeExpressionInterfaceInvocation
-
writeStatic
-
writeExpressionStaticInvocation
-
write
- Specified by:
writein interfaceStructuredControlflowCodeGenerator
-
writeExpression
-
writeExpression
-
writeExpression
-
writeExpression
-
writeExpression
-
writeExpression
-
writeExpression
-
writeExpression
-
writeExpression
-
writeExpression
-
startIfWithTrueBlock
- Specified by:
startIfWithTrueBlockin interfaceStructuredControlflowCodeGenerator
-
startIfElseBlock
- Specified by:
startIfElseBlockin interfaceStructuredControlflowCodeGenerator
-
finishIfBlock
public void finishIfBlock()- Specified by:
finishIfBlockin interfaceStructuredControlflowCodeGenerator
-
startBlock
- Specified by:
startBlockin interfaceStructuredControlflowCodeGenerator
-
finishBlock
- Specified by:
finishBlockin interfaceStructuredControlflowCodeGenerator
-
startTryCatch
- Specified by:
startTryCatchin interfaceStructuredControlflowCodeGenerator
-
startCatchBlock
public void startCatchBlock()- Specified by:
startCatchBlockin interfaceStructuredControlflowCodeGenerator
-
startCatchHandler
public void startCatchHandler(org.objectweb.asm.Type type) - Specified by:
startCatchHandlerin interfaceStructuredControlflowCodeGenerator
-
finishCatchHandler
public void finishCatchHandler()- Specified by:
finishCatchHandlerin interfaceStructuredControlflowCodeGenerator
-
writeRethrowException
public void writeRethrowException()- Specified by:
writeRethrowExceptionin interfaceStructuredControlflowCodeGenerator
-
finishTryCatch
public void finishTryCatch()- Specified by:
finishTryCatchin interfaceStructuredControlflowCodeGenerator
-
write
- Specified by:
writein interfaceStructuredControlflowCodeGenerator
-
write
- Specified by:
writein interfaceStructuredControlflowCodeGenerator
-
writeBreakTo
- Specified by:
writeBreakToin interfaceStructuredControlflowCodeGenerator
-
writeContinueTo
- Specified by:
writeContinueToin interfaceStructuredControlflowCodeGenerator
-
startTableSwitch
- Specified by:
startTableSwitchin interfaceStructuredControlflowCodeGenerator
-
startTableSwitchDefaultBlock
public void startTableSwitchDefaultBlock()- Specified by:
startTableSwitchDefaultBlockin interfaceStructuredControlflowCodeGenerator
-
finishTableSwitchDefaultBlock
public void finishTableSwitchDefaultBlock()- Specified by:
finishTableSwitchDefaultBlockin interfaceStructuredControlflowCodeGenerator
-
startLookupSwitch
- Specified by:
startLookupSwitchin interfaceStructuredControlflowCodeGenerator
-
writeSwitchCase
public void writeSwitchCase(int index) - Specified by:
writeSwitchCasein interfaceStructuredControlflowCodeGenerator
-
writeSwitchDefaultCase
public void writeSwitchDefaultCase()- Specified by:
writeSwitchDefaultCasein interfaceStructuredControlflowCodeGenerator
-
finishSwitchDefault
public void finishSwitchDefault()- Specified by:
finishSwitchDefaultin interfaceStructuredControlflowCodeGenerator
-
finishSwitchCase
public void finishSwitchCase()- Specified by:
finishSwitchCasein interfaceStructuredControlflowCodeGenerator
-
finishLookupSwitch
public void finishLookupSwitch()- Specified by:
finishLookupSwitchin interfaceStructuredControlflowCodeGenerator
-
finishTableSwitch
public void finishTableSwitch()- Specified by:
finishTableSwitchin interfaceStructuredControlflowCodeGenerator
-