public class ABCGeneratingReducer extends Object
Modifier and Type | Class and Description |
---|---|
static class |
ABCGeneratingReducer.CatchPrototype
A struct for the decoded pieces of a catch block.
|
class |
ABCGeneratingReducer.ConditionalFragment
ConditionalFragment holds the disparate elements of a conditional statement fragment.
|
Modifier and Type | Field and Description |
---|---|
static Name |
namespaceType
A shared name for the Namespace type.
|
static Name |
regexType
A shared name for the RegExp type.
|
static Instruction |
synthesizedReturnVoid
This returnvoid instruction is used when the reducer injects a returnvoid at
the end of a method body; the caller (with access to the MethodBodyInfo) can
create a control flow graph and search it to emit a diagnostic as appropriate.
|
static Name |
voidType
A shared name for the void type.
|
static Name |
xmlListType
A shared name for the XMLList type.
|
static Name |
xmlType
A shared name for the XML type.
|
Constructor and Description |
---|
ABCGeneratingReducer() |
public static final Name namespaceType
public static final Name xmlType
public static final Name xmlListType
public static final Name regexType
public static final Name voidType
public static final Instruction synthesizedReturnVoid
public static void pushNumericConstant(long value, InstructionList result_list)
public void pushNumericConstant(InstructionList result_list, Number value, IDefinition type)
result_list
- IL to add the instruction.value
- the numeric value to pushtype
- the type of the expression that produced the value.public Collection<ICompilerProblem> getProblems()
public void checkBinaryOp(IASNode iNode, int opcode)
public InstructionList createInstructionList(IASNode iNode)
iNode
- - the current AST node.public InstructionList createInstructionList(IASNode iNode, int capacity)
iNode
- - the current AST node.capacity
- - requested capacity of the new list.
May be adjusted to accomodate debug instructions.public Binding error_namespaceAccess(IASNode iNode, IASNode raw_qualifier, Binding qualified_name)
public InstructionList error_reduce_Op_AssignId(IASNode iNode, InstructionList non_lvalue, InstructionList rvalue)
public InstructionList reduce_typeNameParameter(IASNode iNode, Binding param_name)
iNode
- the nodeparam_name
- the name to reducepublic void prologue_anonymousFunction(IASNode iNode)
public void prologue_functionObject(IASNode iNode)
public void prologue_blockStmt(IASNode iNode)
public void prologue_blockStmt_to_finally_clause(IASNode iNode)
public void prologue_catchBlock(IASNode iNode)
public void prologue_countedForStmt(IASNode iNode)
public void prologue_doStmt(IASNode iNode)
public void prologue_forEachStmt(IASNode iNode)
public void prologue_forInStmt(IASNode iNode)
public void prologue_labeledStmt(IASNode iNode)
public void prologue_mxmlEventSpecifier(IASNode iNode)
public void prologue_switchStmt(IASNode iNode)
public void prologue_tryCatchFinallyStmt(IASNode iNode)
public void prologue_tryCatchStmt(IASNode iNode)
public void prologue_tryFinallyStmt(IASNode iNode)
public void prologue_typedFunction_to_statement(IASNode iNode)
public void prologue_typelessFunction_to_statement(IASNode iNode)
public void prologue_typeof(IASNode iNode)
public void prologue_whileStmt(IASNode iNode)
public void prologue_withStmt(IASNode iNode)
public InstructionList reduce_anonymousFunction(IASNode iNode, InstructionList function_body)
public InstructionList reduce_functionObject(IASNode iNode, IASNode function_name, InstructionList plist, Binding return_binding, InstructionList function_body)
public InstructionList reduce_arrayIndexExpr(IASNode iNode, InstructionList stem, boolean is_super, InstructionList index)
public InstructionList reduce_arrayLiteral(IASNode iNode, Vector<InstructionList> elements)
public InstructionList reduce_assignToBracketExpr_to_expression(IASNode iNode, InstructionList stem, InstructionList index, InstructionList r, boolean is_super)
public InstructionList reduce_assignToBracketExpr_to_void_expression(IASNode iNode, InstructionList stem, InstructionList index, InstructionList r, boolean is_super)
public InstructionList reduce_assignToMemberExpr_to_expression(IASNode iNode, InstructionList stem, Binding member, InstructionList r)
public InstructionList reduce_assignToMemberExpr_to_void_expression(IASNode iNode, InstructionList stem, Binding member, InstructionList r)
public InstructionList reduce_assignToDescendantsExpr(IASNode iNode, InstructionList stem, Binding member, InstructionList r, boolean need_value)
public InstructionList reduce_assignToNameExpr_to_void_expression(IASNode iNode, Binding lvalue, InstructionList r)
public InstructionList reduce_assignToNameExpr_to_expression(IASNode iNode, Binding lvalue, InstructionList r)
public InstructionList reduce_assignToQualifiedMemberExpr(IASNode iNode, InstructionList stem, Binding qualifier, Binding member, InstructionList rhs, boolean need_value)
public InstructionList reduce_assignToQualifiedRuntimeMemberExpr(IASNode iNode, InstructionList stem, Binding qualifier, InstructionList runtime_member_selector, InstructionList rhs, boolean need_value)
public InstructionList reduce_assignToQualifiedAttributeExpr(IASNode iNode, InstructionList stem, Binding qualifier, Binding member, InstructionList rhs, boolean need_value)
public InstructionList reduce_assignToQualifiedRuntimeAttributeExpr(IASNode iNode, InstructionList stem, Binding qualifier, InstructionList runtime_member_selector, InstructionList rhs, boolean need_value)
public InstructionList reduce_assignToRuntimeNameExpr(IASNode iNode, org.apache.flex.compiler.internal.as.codegen.ABCGeneratingReducer.RuntimeMultiname lval, InstructionList r, boolean need_value)
public InstructionList reduce_assignToUnqualifiedRuntimeAttributeExpr(IASNode iNode, InstructionList stem, InstructionList rt_attr, InstructionList rhs, boolean need_value)
public InstructionList reduce_blockStmt_to_finally_clause(IASNode iNode, Vector<InstructionList> stmts)
public InstructionList reduce_blockStmt_to_statement(IASNode iNode, Vector<InstructionList> stmts)
public InstructionList reduce_breakStmt(IASNode iNode)
public String reduce_by_concatenation(IASNode iNode, String first, String second)
public ABCGeneratingReducer.CatchPrototype reduce_catchBlockTyped(IASNode iNode, Binding var_name, Binding exception, InstructionList action)
public ABCGeneratingReducer.CatchPrototype reduce_catchBlockUntyped(IASNode iNode, Binding var_name, InstructionList action)
public InstructionList reduce_commaExpr(IASNode iNode, InstructionList payload_expr, Vector<InstructionList> exprs)
public ABCGeneratingReducer.ConditionalFragment reduce_conditionalFragment(IASNode iNode, InstructionList condition, Vector<InstructionList> consequents)
public ABCGeneratingReducer.ConditionalFragment reduce_constantConditionalFragment(IASNode iNode, Object constantCondition, Vector<InstructionList> consequents)
public String reduce_constantStringConcatenation(IASNode iNode, String l, String r)
iNode
- the nodel
- the left stringr
- the right stringpublic String reduce_constantStringConcatenation(IASNode iNode, String l, Object r)
iNode
- the nodel
- the left stringr
- the right valuepublic String reduce_constantStringConcatenation(IASNode iNode, Object l, String r)
iNode
- the nodel
- the left valuer
- the right stringpublic Object reduce_constantAddition(IASNode iNode, Object l, Object r)
iNode
- the nodel
- the left valuer
- the right valuepublic InstructionList reduce_continueStmt(IASNode iNode)
public InstructionList reduce_countedForStmt(IASNode iNode, InstructionList init, InstructionList test_insns, InstructionList incr, InstructionList body)
public InstructionList reduce_defaultXMLNamespace(IASNode iNode, InstructionList ns_expr)
public InstructionList reduce_deleteBracketExpr(IASNode iNode, InstructionList stem, InstructionList index)
delete o[p]
iNode
- Tree node for the delete
statement.stem
- Instructions for creating a DynamicAccessNode
.index
- Instructions for initializing the index expression.delete
statement.public InstructionList reduce_deleteAtBracketExpr(IASNode iNode, InstructionList stem, InstructionList index)
delete x.@[foo]
iNode
- Tree node for the delete
statement.stem
- Instructions for creating a
MemberAccessExpressionNode
.index
- Instructions for initializing the array index expression.delete
statement.public InstructionList reduce_deleteDescendantsExpr(IASNode iNode, InstructionList stem, Binding field)
public InstructionList reduce_deleteExprExprExpr(IASNode iNode, InstructionList expr)
public InstructionList reduce_deleteMemberExpr(IASNode iNode, InstructionList stem, Binding field)
public InstructionList reduce_deleteRuntimeNameExpr(IASNode iNode, InstructionList stem, org.apache.flex.compiler.internal.as.codegen.ABCGeneratingReducer.RuntimeMultiname rt_name)
public InstructionList reduce_deleteNameExpr(IASNode iNode, Binding n)
public InstructionList reduce_doStmt(IASNode iNode, InstructionList body, InstructionList cond)
public InstructionList reduce_e4xFilter(IASNode iNode, InstructionList stem, InstructionList filter)
public InstructionList reduce_embed(IASNode iNode)
public InstructionList reduce_forKeyValueStmt(IASNode iNode, Binding it, InstructionList base, InstructionList body, int opcode)
public InstructionList reduce_forVarDeclInStmt(IASNode iNode, InstructionList single_decl, InstructionList base, InstructionList body, int opcode)
for(it in base)
or for each(it in base)
loop with
variable initializer.iNode
- ForLoopNode
single_decl
- Instructions to initialize a loop variable.base
- Instructions to create a loop base.body
- For loop body instructions.opcode
- Use OP_nextname
for "for" loops; use
OP_nextvalue
for "for each" loops.public InstructionList reduce_forKeyValueArrayStmt(IASNode iNode, InstructionList stem, InstructionList index, InstructionList base, InstructionList body, int opcode, boolean is_super)
for (a[it] in base) body;
iNode
- Tree node for the for-in loop.stem
- Instructions for creating a DynamicAccessNode
.index
- Instructions for initializing the index expression.base
- Instructions for initializing the base object of the in
expression.body
- Instructions for initializing the body of the for-loop.opcode
- Opcode for nextname
or ,code>nextvalue instruction.is_super
- Flag indicating whether the stem of the array index expression is super
.for-in
statement.public InstructionList reduce_forKeyValueMemberStmt(IASNode iNode, InstructionList stem, Binding member, InstructionList base, InstructionList body, int opcode, boolean is_super)
public InstructionList reduce_functionAsBracketExpr(IASNode iNode, InstructionList stem, InstructionList index, Vector<InstructionList> args)
a[i]()
iNode
- Tree node for the function call.stem
- Instructions for creating a DynamicAccessNode
.index
- Instructions for initializing the index expression.function call
statement.public InstructionList reduce_functionAsMemberExpr(IASNode iNode, InstructionList stem, Binding method_name, Vector<InstructionList> args)
public InstructionList reduce_functionAsRandomExpr(IASNode iNode, InstructionList random_expr, Vector<InstructionList> args)
public InstructionList reduce_functionCallExpr_to_expression(IASNode iNode, Binding method_name, Vector<InstructionList> args)
public InstructionList reduce_functionCallExpr_to_void_expression(IASNode iNode, Binding method_name, Vector<InstructionList> args)
public InstructionList reduce_functionCallOfSuperclassMethod_to_expression(IASNode iNode, InstructionList stem, Binding method_name, Vector<InstructionList> args)
public InstructionList reduce_functionCallOfSuperclassMethod_to_void_expression(IASNode iNode, InstructionList stem, Binding method_name, Vector<InstructionList> args)
public InstructionList reduce_groupedVoidExpression(IASNode iNode, Vector<InstructionList> contents)
public InstructionList reduce_ifElseIf(IASNode iNode, InstructionList test, InstructionList then, Vector<ABCGeneratingReducer.ConditionalFragment> if_elseif)
public InstructionList reduce_importDirective(IASNode iNode)
public InstructionList reduce_labeledBreakStmt(IASNode iNode)
public InstructionList reduce_labeledContinueStmt(IASNode iNode)
public InstructionList reduce_gotoStmt(IASNode iNode)
public InstructionList reduce_labeledStmt(IASNode iNode, String label, InstructionList substatement)
public ABCGeneratingReducer.ConditionalFragment reduce_lastElse(IASNode iNode, InstructionList else_clause)
public InstructionList reduce_logicalAndExpr(IASNode iNode, InstructionList l, InstructionList r)
public InstructionList reduce_logicalNotExpr(IASNode iNode, InstructionList expr)
public InstructionList reduce_logicalOrExpr(IASNode iNode, InstructionList l, InstructionList r)
public InstructionList reduce_memberAccessExpr(IASNode iNode, InstructionList stem, Binding member, int opcode)
public InstructionList reduce_qualifiedMemberAccessExpr(IASNode iNode, InstructionList stem, Binding qualifier, Binding member, int opcode)
public InstructionList reduce_qualifiedAttributeRuntimeMemberExpr(IASNode iNode, InstructionList stem, Binding qualifier, InstructionList runtime_member_selector, int opcode)
public InstructionList reduce_qualifiedMemberRuntimeNameExpr(IASNode iNode, InstructionList stem, Binding qualifier, InstructionList runtime_member_selector)
public InstructionList reduce_qualifiedAttributeExpr(IASNode iNode, InstructionList stem, Binding qualifier, Binding member, int opcode)
public InstructionList reduce_unqualifiedAttributeExpr(IASNode iNode, InstructionList stem, InstructionList rt_attr, int opcode)
public InstructionList reduce_runtimeAttributeExp(IASNode iNode, InstructionList rt_attr)
@[exp]
.iNode
- Node for @[...]
. It is a
ArrayIndexExpressionID(Op_AtID, ...)
.rt_attr
- Instructions generated for the runtime name expression.public InstructionList reduce_mxmlEventSpecifier(IASNode iNode, Vector<InstructionList> stmts)
public Binding reduce_namespaceAccess(IASNode iNode, IASNode qualifier, Binding qualified_name)
public org.apache.flex.compiler.internal.as.codegen.ABCGeneratingReducer.RuntimeMultiname reduce_namespaceAccess_to_runtime_name(IASNode iNode, Binding qualified_name)
public InstructionList reduce_namespaceAsName_to_expression(IASNode iNode)
public Name reduce_namespaceAsName_to_multinameL(IASNode iNode)
public Name reduce_namespaceAsName_to_multinameL(IASNode iNode, boolean is_attribute)
public InstructionList reduce_namespaceDeclaration(IASNode iNode, Binding ns_name)
public InstructionList reduce_namespaceDeclarationConstantInitializer(IASNode iNode, Binding ns_name, String uri)
public InstructionList reduce_namespaceDeclarationConstantInitializer(IASNode iNode, Binding ns_name, Namespace initializer)
public InstructionList reduce_namespaceDeclarationInitializer(IASNode iNode, Binding ns_name, Binding second_ns)
public org.apache.flex.compiler.internal.as.codegen.ABCGeneratingReducer.RuntimeMultiname reduce_namespaceMultinameL(IASNode iNode, IASNode qualifier_node, InstructionList expr)
public org.apache.flex.compiler.internal.as.codegen.ABCGeneratingReducer.RuntimeMultiname reduce_namespaceRTQName(IASNode iNode, InstructionList qualifier, Binding qualified_name)
public org.apache.flex.compiler.internal.as.codegen.ABCGeneratingReducer.RuntimeMultiname reduce_namespaceRTQNameL(IASNode iNode, InstructionList qualifier, InstructionList expr)
public InstructionList reduce_neqExpr(IASNode iNode, InstructionList l, InstructionList r)
public InstructionList reduce_newMemberProperty(IASNode iNode, InstructionList stem, Binding member, Vector<InstructionList> args)
public InstructionList reduce_newAsRandomExpr(IASNode iNode, InstructionList random_expr, Vector<InstructionList> args)
public InstructionList reduce_newEmptyArray(IASNode iNode)
public InstructionList reduce_newEmptyObject(IASNode iNode)
public InstructionList reduce_newExpr(IASNode iNode, Binding class_binding, Vector<InstructionList> args)
public InstructionList reduce_newVectorLiteral(IASNode iNode, InstructionList literal)
public InstructionList reduce_nilExpr_to_conditionalJump(IASNode iNode)
public InstructionList reduce_nilExpr_to_expression(IASNode iNode)
public Object reduce_nullLiteral_to_constant_value(IASNode iNode)
public InstructionList reduce_nullLiteral_to_object_literal(IASNode iNode)
public InstructionList reduce_objectLiteral(IASNode iNode, Vector<InstructionList> elements)
public InstructionList reduce_objectLiteralElement(IASNode iNode, InstructionList id, InstructionList value)
public InstructionList reduce_optionalParameter(IASNode iNode, Name param_name, Binding param_type, Object raw_default_value)
public Binding reduce_parameterizedName(IASNode iNode, Binding base, Binding param)
public InstructionList reduce_parameterizedTypeExpression(IASNode iNode, InstructionList base, InstructionList param)
public InstructionList reduce_plist(IASNode iNode, Vector<InstructionList> pdecl)
public InstructionList reduce_postDecBracketExpr(IASNode iNode, InstructionList stem, InstructionList index, boolean need_result)
public InstructionList reduce_postDecMemberExpr(IASNode iNode, InstructionList stem, Binding field, boolean need_result)
public InstructionList reduce_postDecNameExpr(IASNode iNode, Binding unary, boolean need_result)
public InstructionList reduce_postIncBracketExpr(IASNode iNode, InstructionList stem, InstructionList index, boolean need_result)
public InstructionList reduce_postIncMemberExpr(IASNode iNode, InstructionList stem, Binding field, boolean need_result)
public InstructionList reduce_postIncNameExpr(IASNode iNode, Binding unary, boolean need_result)
public InstructionList reduce_preDecBracketExpr(IASNode iNode, InstructionList stem, InstructionList index, boolean need_result)
public InstructionList reduce_preDecMemberExpr(IASNode iNode, InstructionList stem, Binding field, boolean need_result)
public InstructionList reduce_preDecNameExpr(IASNode iNode, Binding unary, boolean need_result)
public InstructionList reduce_preIncBracketExpr(IASNode iNode, InstructionList stem, InstructionList index, boolean need_result)
public InstructionList reduce_preIncMemberExpr(IASNode iNode, InstructionList stem, Binding field, boolean need_result)
public InstructionList reduce_preIncNameExpr(IASNode iNode, Binding unary, boolean need_result)
public void coerce(InstructionList il, IDefinition toType)
il
- the InstructionList to add the instruction totoType
- the type you want to coerce the top stack value topublic InstructionList reduce_regexLiteral(IASNode iNode)
public InstructionList reduce_requiredParameter(IASNode iNode, Name param_name, Binding param_type)
public InstructionList reduce_restParameter(IASNode iNode, Name param_name, Binding param_type)
public InstructionList reduce_returnVoidSideEffect(IASNode iNode, InstructionList value)
public InstructionList reduce_returnValue(IASNode iNode, InstructionList value)
public InstructionList reduce_returnVoidValue(IASNode iNode, InstructionList no_value)
public InstructionList reduce_returnVoid(IASNode iNode)
public InstructionList reduce_runtimeNameExpression(IASNode iNode, InstructionList expr)
public InstructionList reduce_strictneqExpr(IASNode iNode, InstructionList l, InstructionList r)
public InstructionList reduce_superCallExpr(IASNode iNode, Vector<InstructionList> args)
public InstructionList reduce_switchStmt(IASNode iNode, InstructionList switch_expr, Vector<ABCGeneratingReducer.ConditionalFragment> cases)
public InstructionList reduce_ternaryExpr(IASNode iNode, InstructionList test, InstructionList when_true, InstructionList when_false)
public InstructionList reduce_throwStmt(IASNode iNode, InstructionList tossable)
public InstructionList reduce_tryCatchFinallyStmt(IASNode iNode, InstructionList try_stmt, InstructionList finally_stmt, Vector<ABCGeneratingReducer.CatchPrototype> catch_blocks)
public InstructionList reduce_tryCatchStmt(IASNode iNode, InstructionList try_stmt, Vector<ABCGeneratingReducer.CatchPrototype> catch_blocks)
public InstructionList reduce_tryFinallyStmt(IASNode iNode, InstructionList try_stmt, InstructionList finally_stmt)
public InstructionList reduce_typedFunction_to_statement(IASNode iNode, InstructionList plist, Binding return_type, InstructionList block)
public InstructionList reduce_typedVariableDecl(IASNode iNode, Name var_name, Binding var_type, Vector<InstructionList> chained_decls)
public InstructionList reduce_typedVariableDeclWithInitializer(IASNode iNode, Name var_name, Binding var_type, InstructionList var_initializer, Vector<InstructionList> chained_decls)
public InstructionList reduce_typedVariableDeclWithConstantInitializer(IASNode iNode, Name var_name, Binding var_type, Object constant_var_initializer, Vector<InstructionList> chained_decls)
public InstructionList reduce_typedBindableVariableDecl(IASNode iNode, Name name, Binding var_type, Vector<InstructionList> chained_decls)
public InstructionList reduce_typedBindableVariableDeclWithInitializer(IASNode iNode, Name var_name, Binding var_type, InstructionList var_initializer, Vector<InstructionList> chained_decls)
public Binding reduce_typedVariableExpression(IASNode iNode, Name var_name, Binding var_type)
public InstructionList reduce_typelessFunction(IASNode iNode, InstructionList plist, InstructionList block)
public InstructionList reduce_typeof_expr(IASNode iNode, InstructionList operand)
public InstructionList reduce_typeof_name(IASNode iNode, Binding binding)
public InstructionList reduce_useNamespaceDirective(IASNode iNode, Binding ns_name)
public InstructionList reduce_variableExpression(IASNode iNode, Vector<InstructionList> decls)
public InstructionList reduce_vectorLiteral(IASNode iNode, Binding type_param, Vector<InstructionList> elements)
public InstructionList reduce_voidExpr_to_expression(IASNode iNode)
public Binding reduce_voidExpr_to_return_type_name(IASNode node)
public Object reduce_void0Literal_to_constant_value(IASNode iNode)
public InstructionList reduce_void0Literal_to_object_literal(IASNode iNode)
public InstructionList reduce_instructionListExpression(IASNode iNode)
public InstructionList reduce_void0Operator(IASNode iNode)
public Object reduce_voidOperator_to_constant_value(IASNode iNode, Object constant_value)
public InstructionList reduce_voidOperator_to_expression(IASNode iNode, InstructionList expr)
public InstructionList reduce_whileStmt(IASNode iNode, InstructionList cond, InstructionList body)
public InstructionList reduce_withStmt(IASNode iNode, InstructionList new_scope, InstructionList body)
public InstructionList reduce_XMLContent(IASNode iNode, Vector<InstructionList> exprs)
public InstructionList reduce_XMLList(IASNode iNode, Vector<InstructionList> exprs)
public InstructionList reduce_XMLListConst(IASNode iNode, Vector<String> elements)
public void setInstanceInitializers(InstructionList insns)
public void setCurrentscope(LexicalScope scope)
public InstructionList transform_boolean_constant(IASNode iNode, Boolean boolean_constant)
public InstructionList transform_double_constant(IASNode iNode, Double double_constant)
public InstructionList transform_numeric_constant(IASNode iNode, Number numeric_constant)
public InstructionList transform_pooled_value(IASNode iNode, PooledValue pooled_value)
iNode
- the node that generated the constant_valuepooled_value
- the pooled valuepublic InstructionList transform_constant_value(IASNode iNode, Object constant_value)
iNode
- the node that generated the constant_valueconstant_value
- the constant valuepublic Object transform_string_constant_to_constant(IASNode iNode, String string_constant)
public Object transform_boolean_constant_to_constant(IASNode iNode, Boolean boolean_constant)
public Object transform_numeric_constant_to_constant(IASNode iNode, Number numeric_constant)
public InstructionList transform_expression_to_conditionalJump(IASNode iNode, InstructionList expression)
public Object transform_expression_to_constant_value(IASNode iNode, InstructionList expression)
public InstructionList transform_expression_to_void_expression(IASNode iNode, InstructionList expression)
public InstructionList transform_integer_constant(IASNode iNode, Integer integer_constant)
public InstructionList transform_long_constant(IASNode iNode, Long long_constant)
public InstructionList transform_name_to_expression(IASNode iNode, Binding name)
public InstructionList transform_non_resolving_identifier(IASNode iNode, String non_resolving_identifier)
public InstructionList transform_runtime_name_expression(IASNode iNode, org.apache.flex.compiler.internal.as.codegen.ABCGeneratingReducer.RuntimeMultiname runtime_name_expression)
public InstructionList transform_string_constant(IASNode iNode, String string_constant)
public InstructionList transform_uint_constant(IASNode iNode, Long uint_constant)
public void checkUnaryOp(IASNode iNode, int opcode)
public static boolean isStringLiteral(InstructionList insns)
public static String getStringLiteral(InstructionList insns)
insns
- - the InstructionList of interest.public InstructionList reduce_arrayIndexExpr_to_mxmlDataBindingSetter(IASNode iNode, InstructionList stem, InstructionList index, boolean isSuper)
public InstructionList reduce_memberAccessExpr_to_mxmlDataBindingSetter(IASNode memberAccessExpr, InstructionList stem, Binding member)
public InstructionList reduce_qualifiedMemberAccessExpr_to_mxmlDataBindingSetter(IASNode qualifiedMemberAccessExpr, InstructionList stem, Binding qualifier, Binding member)
public InstructionList reduce_qualifiedMemberRuntimeNameExpr_to_mxmlDataBindingSetter(IASNode qualifiedMemberRuntimeExpr, InstructionList stem, Binding qualifier, InstructionList runtime_member)
public InstructionList reduceRuntimeName_to_mxmlDataBindingSetter(IASNode runtimeNameNode, org.apache.flex.compiler.internal.as.codegen.ABCGeneratingReducer.RuntimeMultiname runtime_name_expression)
This reduction is used when the qualifer is not a compiler time constant namespace.
public InstructionList reduceName_to_mxmlDataBindingSetter(IASNode nameNode, Binding name)
Copyright © 2016 The Apache Software Foundation. All rights reserved.