Package org.teavm.backend.wasm.generate
Class WasmGenerationVisitor
java.lang.Object
org.teavm.backend.wasm.generate.common.methods.BaseWasmGenerationVisitor
org.teavm.backend.wasm.generate.WasmGenerationVisitor
- All Implemented Interfaces:
ExprVisitor,StatementVisitor
-
Nested Class Summary
Nested classes/interfaces inherited from class org.teavm.backend.wasm.generate.common.methods.BaseWasmGenerationVisitor
BaseWasmGenerationVisitor.CallSiteIdentifier -
Field Summary
Fields inherited from class org.teavm.backend.wasm.generate.common.methods.BaseWasmGenerationVisitor
blockLevel, currentMethod, exprCache, function, result, resultConsumer, tempVars, typeInference -
Constructor Summary
ConstructorsConstructorDescriptionWasmGenerationVisitor(WasmGenerationContext context, WasmClassGenerator classGenerator, BinaryWriter binaryWriter, WasmFunction function, MethodReference currentMethod, int firstVariable, boolean async) -
Method Summary
Modifier and TypeMethodDescriptionprotected WasmExpressionallocateMultiArray(List<WasmExpression> target, ValueType arrayType, Supplier<List<WasmExpression>> dimensions, TextLocation location) protected voidallocateObject(String className, TextLocation location, WasmLocal local, List<WasmExpression> target) protected WasmExpressionclassLiteral(ValueType type) voidgenerate(Statement statement, List<WasmExpression> target) protected WasmExpressiongenerateCallSiteId(TextLocation location) protected WasmExpressiongenerateClassInitializer(String className, TextLocation location) protected WasmExpressiongenerateInstanceOf(WasmExpression expression, ValueType type) protected voidgenerateThrow(WasmExpression expression, TextLocation location, List<WasmExpression> target) protected voidgenerateThrowAIOOBE(TextLocation location, List<WasmExpression> target) protected voidgenerateThrowCCE(TextLocation location, List<WasmExpression> target) protected voidgenerateThrowNPE(TextLocation location, List<WasmExpression> target) protected voidgenerateTry(List<TryCatchStatement> tryCatchStatements, List<Statement> protectedBody) protected WasmExpressiongenerateVirtualCall(WasmLocal instance, MethodReference method, List<WasmExpression> arguments) protected WasmExpressiongenIsNull(WasmExpression value) protected WasmExpressioninvocation(InvocationExpr expr, List<WasmExpression> resultConsumer, boolean willDrop) booleanprotected booleanisManagedCall(MethodReference method) protected WasmTypeprotected booleanneedsClassInitializer(String className) protected WasmExpressionnullLiteral(Expr expr) protected WasmExpressionnullLiteral(WasmType type) protected WasmExpressionstoreArrayItem(WasmExpression array, WasmExpression index, Expr value, ArrayType type) protected voidstoreField(Expr qualified, FieldReference field, Expr value, TextLocation location) protected WasmExpressionvoidvisit(ArrayFromDataExpr expr) voidvoidvisit(InstanceOfExpr expr) voidvisit(InvocationExpr expr) voidvisit(NewArrayExpr expr) voidvisit(QualificationExpr expr) voidvisit(SubscriptExpr expr) Methods inherited from class org.teavm.backend.wasm.generate.common.methods.BaseWasmGenerationVisitor
accept, accept, accept, acceptWithType, checkExceptionType, condBlockType, forceType, generateInvocation, isAsync, isAsyncSplit, localVar, mapFirstArgumentForCall, mapTypeToBlock, monitorEnter, monitorExit, needsCallSiteId, nullCheck, setReturnBlock, unwrapArray, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit
-
Constructor Details
-
WasmGenerationVisitor
public WasmGenerationVisitor(WasmGenerationContext context, WasmClassGenerator classGenerator, BinaryWriter binaryWriter, WasmFunction function, MethodReference currentMethod, int firstVariable, boolean async)
-
-
Method Details
-
generate
- Overrides:
generatein classBaseWasmGenerationVisitor
-
generateThrowNPE
- Specified by:
generateThrowNPEin classBaseWasmGenerationVisitor
-
visit
- Specified by:
visitin interfaceExprVisitor- Overrides:
visitin classBaseWasmGenerationVisitor
-
mapType
- Specified by:
mapTypein classBaseWasmGenerationVisitor
-
generateArrayLength
- Specified by:
generateArrayLengthin classBaseWasmGenerationVisitor
-
storeField
- Specified by:
storeFieldin classBaseWasmGenerationVisitor
-
storeArrayItem
protected WasmExpression storeArrayItem(WasmExpression array, WasmExpression index, Expr value, ArrayType type) - Specified by:
storeArrayItemin classBaseWasmGenerationVisitor
-
stringLiteral
- Specified by:
stringLiteralin classBaseWasmGenerationVisitor
-
classLiteral
- Specified by:
classLiteralin classBaseWasmGenerationVisitor
-
nullLiteral
- Specified by:
nullLiteralin classBaseWasmGenerationVisitor
-
nullLiteral
- Specified by:
nullLiteralin classBaseWasmGenerationVisitor
-
genIsNull
- Specified by:
genIsNullin classBaseWasmGenerationVisitor
-
visit
-
invocation
protected WasmExpression invocation(InvocationExpr expr, List<WasmExpression> resultConsumer, boolean willDrop) - Overrides:
invocationin classBaseWasmGenerationVisitor
-
generateVirtualCall
protected WasmExpression generateVirtualCall(WasmLocal instance, MethodReference method, List<WasmExpression> arguments) - Specified by:
generateVirtualCallin classBaseWasmGenerationVisitor
-
generateCallSiteId
- Specified by:
generateCallSiteIdin classBaseWasmGenerationVisitor
-
isManaged
public boolean isManaged()- Specified by:
isManagedin classBaseWasmGenerationVisitor
-
isManagedCall
- Specified by:
isManagedCallin classBaseWasmGenerationVisitor
-
generateThrow
protected void generateThrow(WasmExpression expression, TextLocation location, List<WasmExpression> target) - Specified by:
generateThrowin classBaseWasmGenerationVisitor
-
visit
-
allocateObject
protected void allocateObject(String className, TextLocation location, WasmLocal local, List<WasmExpression> target) - Specified by:
allocateObjectin classBaseWasmGenerationVisitor
-
visit
-
visit
-
allocateMultiArray
protected WasmExpression allocateMultiArray(List<WasmExpression> target, ValueType arrayType, Supplier<List<WasmExpression>> dimensions, TextLocation location) - Specified by:
allocateMultiArrayin classBaseWasmGenerationVisitor
-
visit
-
visit
- Specified by:
visitin interfaceExprVisitor- Overrides:
visitin classBaseWasmGenerationVisitor
-
generateInstanceOf
- Specified by:
generateInstanceOfin classBaseWasmGenerationVisitor
-
generateThrowCCE
- Specified by:
generateThrowCCEin classBaseWasmGenerationVisitor
-
generateClassInitializer
- Specified by:
generateClassInitializerin classBaseWasmGenerationVisitor
-
needsClassInitializer
- Specified by:
needsClassInitializerin classBaseWasmGenerationVisitor
-
generateTry
protected void generateTry(List<TryCatchStatement> tryCatchStatements, List<Statement> protectedBody) - Overrides:
generateTryin classBaseWasmGenerationVisitor
-
generateThrowAIOOBE
- Specified by:
generateThrowAIOOBEin classBaseWasmGenerationVisitor
-