BindingInfo: fixed that destination string was missing this. when binding directly to MXML primitives like Array/String/Number
diff --git a/compiler/src/main/java/org/apache/royale/compiler/internal/codegen/databinding/BindingInfo.java b/compiler/src/main/java/org/apache/royale/compiler/internal/codegen/databinding/BindingInfo.java
index d312941..fc907de 100644
--- a/compiler/src/main/java/org/apache/royale/compiler/internal/codegen/databinding/BindingInfo.java
+++ b/compiler/src/main/java/org/apache/royale/compiler/internal/codegen/databinding/BindingInfo.java
@@ -303,14 +303,36 @@
// We are an MXML primitive (like sf:String), so the dest string is just our ID
String id = ((IMXMLExpressionNode)parent).getEffectiveID();
assert id != null;
- destString = id;
+
+ IMXMLClassReferenceNode propertyParent = (IMXMLClassReferenceNode)
+ parent.getAncestorOfType(IMXMLClassReferenceNode.class);
+ assert propertyParent != null;
+ if (propertyParent instanceof IMXMLClassDefinitionNode)
+ {
+ destString = "this." + id;
+ }
+ else
+ {
+ destString = id;
+ }
}
else if (parent instanceof IMXMLArrayNode)
{
// We are an MXML primitive, so the dest string is just our ID
String id = ((IMXMLArrayNode)parent).getEffectiveID();
assert id != null;
- destString = id;
+
+ IMXMLClassReferenceNode propertyParent = (IMXMLClassReferenceNode)
+ parent.getAncestorOfType(IMXMLClassReferenceNode.class);
+ assert propertyParent != null;
+ if (propertyParent instanceof IMXMLClassDefinitionNode)
+ {
+ destString = "this." + id;
+ }
+ else
+ {
+ destString = id;
+ }
}
else if (parent instanceof IMXMLModelPropertyNode)
{