Author: gordonsmith
Date: Fri Jan 25 23:58:15 2013
New Revision: 1438781

URL: http://svn.apache.org/viewvc?rev=1438781&view=rev
Log: (empty)

Added:
    flex/falcon/trunk/compiler.tests/feature-tests/properties/
    
flex/falcon/trunk/compiler.tests/feature-tests/properties/MXMLPropertyBooleanTests.java
   (with props)
    
flex/falcon/trunk/compiler.tests/feature-tests/properties/MXMLPropertyClassTests.java
   (with props)
    
flex/falcon/trunk/compiler.tests/feature-tests/properties/MXMLPropertyIntTests.java
   (with props)
    
flex/falcon/trunk/compiler.tests/feature-tests/properties/MXMLPropertyNumberTests.java
   (with props)
    
flex/falcon/trunk/compiler.tests/feature-tests/properties/MXMLPropertyStringTests.java
   (with props)
    
flex/falcon/trunk/compiler.tests/feature-tests/properties/MXMLPropertyTestsBase.java
   (with props)
    
flex/falcon/trunk/compiler.tests/feature-tests/properties/MXMLPropertyUintTests.java
   (with props)
Modified:
    
flex/falcon/trunk/compiler/src/org/apache/flex/compiler/internal/as/codegen/MXMLClassDirectiveProcessor.java
    
flex/falcon/trunk/compiler/src/org/apache/flex/compiler/internal/tree/mxml/MXMLInstanceNode.java

Added: 
flex/falcon/trunk/compiler.tests/feature-tests/properties/MXMLPropertyBooleanTests.java
URL: 
http://svn.apache.org/viewvc/flex/falcon/trunk/compiler.tests/feature-tests/properties/MXMLPropertyBooleanTests.java?rev=1438781&view=auto
==============================================================================
--- 
flex/falcon/trunk/compiler.tests/feature-tests/properties/MXMLPropertyBooleanTests.java
 (added)
+++ 
flex/falcon/trunk/compiler.tests/feature-tests/properties/MXMLPropertyBooleanTests.java
 Fri Jan 25 23:58:15 2013
@@ -0,0 +1,100 @@
+/*
+ *
+ *  Licensed to the Apache Software Foundation (ASF) under one or more
+ *  contributor license agreements.  See the NOTICE file distributed with
+ *  this work for additional information regarding copyright ownership.
+ *  The ASF licenses this file to You under the Apache License, Version 2.0
+ *  (the "License"); you may not use this file except in compliance with
+ *  the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *  See the License for the specific language governing permissions and
+ *  limitations under the License.
+ *
+ */
+
+package properties;
+
+import org.junit.Test;
+
+/**
+ * Feature tests for MXML property tags and attributes of type {@code 
<Boolean>}.
+ * 
+ * @author Gordon Smith
+ */
+public class MXMLPropertyBooleanTests extends MXMLPropertyTestsBase
+{
+    @Override
+    protected String getPropertyType()
+    {
+        return "Boolean";
+    }
+    
+    @Test
+    public void MXMLPropertyBooleanTests_default()
+    {
+        String[] declarations = new String[]
+        {
+            "<MyComp id='mc1'/>"
+        };
+        String[] asserts = new String[]
+        {
+            "assertEqual('mc1.p', mc1.p, false);"   
+        };
+        String mxml = getMXML(declarations, asserts);
+        compileAndRun(mxml, true, false, false, null);
+    }
+    
+    @Test
+    public void MXMLPropertyBooleanTests_attribute()
+    {
+        String[] declarations = new String[]
+        {
+            "<MyComp id='mc1' p=' true '/>"
+        };
+        String[] asserts = new String[]
+        {
+            "assertEqual('mc1.p', mc1.p, true);"  
+        };
+        String mxml = getMXML(declarations, asserts);
+        compileAndRun(mxml, true, false, false, null);
+    }
+    
+    @Test
+    public void MXMLPropertyBooleanTests_tag_text()
+    {
+        String[] declarations = new String[]
+        {
+            "<MyComp id='mc1'>",
+            "    <p> true </p>",
+            "</MyComp>"
+        };
+        String[] asserts = new String[]
+        {
+            "assertEqual('mc1.p', mc1.p, true);"  
+        };
+        String mxml = getMXML(declarations, asserts);
+        compileAndRun(mxml, true, false, false, null);
+    }
+    
+    @Test
+    public void MXMLPropertyBooleanTests_tag_tag()
+    {
+        String[] declarations = new String[]
+        {
+            "<MyComp id='mc1'>",
+            "    <p><fx:Boolean> true </fx:Boolean></p>",
+            "</MyComp>"
+        };
+        String[] asserts = new String[]
+        {
+            "assertEqual('mc1.p', mc1.p, true);"  
+        };
+        String mxml = getMXML(declarations, asserts);
+        compileAndRun(mxml, true, false, false, null);
+    }
+}

Propchange: 
flex/falcon/trunk/compiler.tests/feature-tests/properties/MXMLPropertyBooleanTests.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: 
flex/falcon/trunk/compiler.tests/feature-tests/properties/MXMLPropertyClassTests.java
URL: 
http://svn.apache.org/viewvc/flex/falcon/trunk/compiler.tests/feature-tests/properties/MXMLPropertyClassTests.java?rev=1438781&view=auto
==============================================================================
--- 
flex/falcon/trunk/compiler.tests/feature-tests/properties/MXMLPropertyClassTests.java
 (added)
+++ 
flex/falcon/trunk/compiler.tests/feature-tests/properties/MXMLPropertyClassTests.java
 Fri Jan 25 23:58:15 2013
@@ -0,0 +1,100 @@
+/*
+ *
+ *  Licensed to the Apache Software Foundation (ASF) under one or more
+ *  contributor license agreements.  See the NOTICE file distributed with
+ *  this work for additional information regarding copyright ownership.
+ *  The ASF licenses this file to You under the Apache License, Version 2.0
+ *  (the "License"); you may not use this file except in compliance with
+ *  the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *  See the License for the specific language governing permissions and
+ *  limitations under the License.
+ *
+ */
+
+package properties;
+
+import org.junit.Test;
+
+/**
+ * Feature tests for MXML property tags and attributes of type {@code <Class>}.
+ * 
+ * @author Gordon Smith
+ */
+public class MXMLPropertyClassTests extends MXMLPropertyTestsBase
+{
+    @Override
+    protected String getPropertyType()
+    {
+        return "Class";
+    }
+    
+    @Test
+    public void MXMLPropertyClassTests_default()
+    {
+        String[] declarations = new String[]
+        {
+            "<MyComp id='mc1'/>"
+        };
+        String[] asserts = new String[]
+        {
+            "assertEqual('mc1.p', mc1.p, null);"   
+        };
+        String mxml = getMXML(declarations, asserts);
+        compileAndRun(mxml, true, false, false, null);
+    }
+    
+    @Test
+    public void MXMLPropertyClassTests_attribute()
+    {
+        String[] declarations = new String[]
+        {
+            "<MyComp id='mc1' p=' flash.display.Sprite '/>"
+        };
+        String[] asserts = new String[]
+        {
+            "assertEqual('mc1.p', mc1.p, flash.display.Sprite);"  
+        };
+        String mxml = getMXML(declarations, asserts);
+        compileAndRun(mxml, true, false, false, null);
+    }
+    
+    @Test
+    public void MXMLPropertyClassTests_tag_text()
+    {
+        String[] declarations = new String[]
+        {
+            "<MyComp id='mc1'>",
+            "    <p> flash.display.Sprite </p>",
+            "</MyComp>"
+        };
+        String[] asserts = new String[]
+        {
+            "assertEqual('mc1.p', mc1.p, flash.display.Sprite);"  
+        };
+        String mxml = getMXML(declarations, asserts);
+        compileAndRun(mxml, true, false, false, null);
+    }
+    
+    @Test
+    public void MXMLPropertyClassTests_tag_tag()
+    {
+        String[] declarations = new String[]
+        {
+            "<MyComp id='mc1'>",
+            "    <p><fx:Class> flash.display.Sprite </fx:Class></p>",
+            "</MyComp>"
+        };
+        String[] asserts = new String[]
+        {
+            "assertEqual('mc1.p', mc1.p, flash.display.Sprite);"  
+        };
+        String mxml = getMXML(declarations, asserts);
+        compileAndRun(mxml, true, false, false, null);
+    }
+}

Propchange: 
flex/falcon/trunk/compiler.tests/feature-tests/properties/MXMLPropertyClassTests.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: 
flex/falcon/trunk/compiler.tests/feature-tests/properties/MXMLPropertyIntTests.java
URL: 
http://svn.apache.org/viewvc/flex/falcon/trunk/compiler.tests/feature-tests/properties/MXMLPropertyIntTests.java?rev=1438781&view=auto
==============================================================================
--- 
flex/falcon/trunk/compiler.tests/feature-tests/properties/MXMLPropertyIntTests.java
 (added)
+++ 
flex/falcon/trunk/compiler.tests/feature-tests/properties/MXMLPropertyIntTests.java
 Fri Jan 25 23:58:15 2013
@@ -0,0 +1,100 @@
+/*
+ *
+ *  Licensed to the Apache Software Foundation (ASF) under one or more
+ *  contributor license agreements.  See the NOTICE file distributed with
+ *  this work for additional information regarding copyright ownership.
+ *  The ASF licenses this file to You under the Apache License, Version 2.0
+ *  (the "License"); you may not use this file except in compliance with
+ *  the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *  See the License for the specific language governing permissions and
+ *  limitations under the License.
+ *
+ */
+
+package properties;
+
+import org.junit.Test;
+
+/**
+ * Feature tests for MXML property tags and attributes of type {@code <int>}.
+ * 
+ * @author Gordon Smith
+ */
+public class MXMLPropertyIntTests extends MXMLPropertyTestsBase
+{
+       @Override
+       protected String getPropertyType()
+       {
+               return "int";
+       }
+       
+       @Test
+       public void MXMLPropertyIntTests_default()
+       {
+               String[] declarations = new String[]
+               {
+                   "<MyComp id='mc1'/>"
+               };
+        String[] asserts = new String[]
+        {
+               "assertEqual('mc1.p', mc1.p, 0);"       
+        };
+        String mxml = getMXML(declarations, asserts);
+        compileAndRun(mxml, true, false, false, null);
+       }
+       
+       @Test
+       public void MXMLPropertyIntTests_attribute()
+       {
+               String[] declarations = new String[]
+               {
+                   "<MyComp id='mc1' p=' -1 '/>"
+               };
+        String[] asserts = new String[]
+        {
+               "assertEqual('mc1.p', mc1.p, -1);"      
+        };
+        String mxml = getMXML(declarations, asserts);
+        compileAndRun(mxml, true, false, false, null);
+       }
+       
+       @Test
+       public void MXMLPropertyIntTests_tag_text()
+       {
+               String[] declarations = new String[]
+               {
+                       "<MyComp id='mc1'>",
+                       "    <p> -1 </p>",
+                       "</MyComp>"
+               };
+        String[] asserts = new String[]
+        {
+               "assertEqual('mc1.p', mc1.p, -1);"      
+        };
+        String mxml = getMXML(declarations, asserts);
+        compileAndRun(mxml, true, false, false, null);
+       }
+       
+       @Test
+       public void MXMLPropertyIntTests_tag_tag()
+       {
+               String[] declarations = new String[]
+               {
+                       "<MyComp id='mc1'>",
+                       "    <p><fx:int> -1 </fx:int></p>",
+                       "</MyComp>"
+               };
+        String[] asserts = new String[]
+        {
+               "assertEqual('mc1.p', mc1.p, -1);"      
+        };
+        String mxml = getMXML(declarations, asserts);
+        compileAndRun(mxml, true, false, false, null);
+       }
+}

Propchange: 
flex/falcon/trunk/compiler.tests/feature-tests/properties/MXMLPropertyIntTests.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: 
flex/falcon/trunk/compiler.tests/feature-tests/properties/MXMLPropertyNumberTests.java
URL: 
http://svn.apache.org/viewvc/flex/falcon/trunk/compiler.tests/feature-tests/properties/MXMLPropertyNumberTests.java?rev=1438781&view=auto
==============================================================================
--- 
flex/falcon/trunk/compiler.tests/feature-tests/properties/MXMLPropertyNumberTests.java
 (added)
+++ 
flex/falcon/trunk/compiler.tests/feature-tests/properties/MXMLPropertyNumberTests.java
 Fri Jan 25 23:58:15 2013
@@ -0,0 +1,100 @@
+/*
+ *
+ *  Licensed to the Apache Software Foundation (ASF) under one or more
+ *  contributor license agreements.  See the NOTICE file distributed with
+ *  this work for additional information regarding copyright ownership.
+ *  The ASF licenses this file to You under the Apache License, Version 2.0
+ *  (the "License"); you may not use this file except in compliance with
+ *  the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *  See the License for the specific language governing permissions and
+ *  limitations under the License.
+ *
+ */
+
+package properties;
+
+import org.junit.Test;
+
+/**
+ * Feature tests for MXML property tags and attributes of type {@code 
<Number>}.
+ * 
+ * @author Gordon Smith
+ */
+public class MXMLPropertyNumberTests extends MXMLPropertyTestsBase
+{
+    @Override
+    protected String getPropertyType()
+    {
+        return "Number";
+    }
+    
+    @Test
+    public void MXMLPropertyNumberTests_default()
+    {
+        String[] declarations = new String[]
+        {
+            "<MyComp id='mc1'/>"
+        };
+        String[] asserts = new String[]
+        {
+            "assertEqual('isNaN(mc1.p)', isNaN(mc1.p), true);"   
+        };
+        String mxml = getMXML(declarations, asserts);
+        compileAndRun(mxml, true, false, false, null);
+    }
+    
+    @Test
+    public void MXMLPropertyNumberTests_attribute()
+    {
+        String[] declarations = new String[]
+        {
+            "<MyComp id='mc1' p=' 1.5 '/>"
+        };
+        String[] asserts = new String[]
+        {
+            "assertEqual('mc1.p', mc1.p, 1.5);"  
+        };
+        String mxml = getMXML(declarations, asserts);
+        compileAndRun(mxml, true, false, false, null);
+    }
+    
+    @Test
+    public void MXMLPropertyNumberTests_tag_text()
+    {
+        String[] declarations = new String[]
+        {
+            "<MyComp id='mc1'>",
+            "    <p> 1.5 </p>",
+            "</MyComp>"
+        };
+        String[] asserts = new String[]
+        {
+            "assertEqual('mc1.p', mc1.p, 1.5);"  
+        };
+        String mxml = getMXML(declarations, asserts);
+        compileAndRun(mxml, true, false, false, null);
+    }
+    
+    @Test
+    public void MXMLPropertyNumberTests_tag_tag()
+    {
+        String[] declarations = new String[]
+        {
+            "<MyComp id='mc1'>",
+            "    <p><fx:Number> 1.5 </fx:Number></p>",
+            "</MyComp>"
+        };
+        String[] asserts = new String[]
+        {
+            "assertEqual('mc1.p', mc1.p, 1.5);"  
+        };
+        String mxml = getMXML(declarations, asserts);
+        compileAndRun(mxml, true, false, false, null);
+    }
+}

Propchange: 
flex/falcon/trunk/compiler.tests/feature-tests/properties/MXMLPropertyNumberTests.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: 
flex/falcon/trunk/compiler.tests/feature-tests/properties/MXMLPropertyStringTests.java
URL: 
http://svn.apache.org/viewvc/flex/falcon/trunk/compiler.tests/feature-tests/properties/MXMLPropertyStringTests.java?rev=1438781&view=auto
==============================================================================
--- 
flex/falcon/trunk/compiler.tests/feature-tests/properties/MXMLPropertyStringTests.java
 (added)
+++ 
flex/falcon/trunk/compiler.tests/feature-tests/properties/MXMLPropertyStringTests.java
 Fri Jan 25 23:58:15 2013
@@ -0,0 +1,100 @@
+/*
+ *
+ *  Licensed to the Apache Software Foundation (ASF) under one or more
+ *  contributor license agreements.  See the NOTICE file distributed with
+ *  this work for additional information regarding copyright ownership.
+ *  The ASF licenses this file to You under the Apache License, Version 2.0
+ *  (the "License"); you may not use this file except in compliance with
+ *  the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *  See the License for the specific language governing permissions and
+ *  limitations under the License.
+ *
+ */
+
+package properties;
+
+import org.junit.Test;
+
+/**
+ * Feature tests for MXML property tags and attributes of type {@code 
<String>}.
+ * 
+ * @author Gordon Smith
+ */
+public class MXMLPropertyStringTests extends MXMLPropertyTestsBase
+{
+    @Override
+    protected String getPropertyType()
+    {
+        return "String";
+    }
+    
+    @Test
+    public void MXMLPropertyStringTests_default()
+    {
+        String[] declarations = new String[]
+        {
+            "<MyComp id='mc1'/>"
+        };
+        String[] asserts = new String[]
+        {
+            "assertEqual('mc1.p', mc1.p, null);"   
+        };
+        String mxml = getMXML(declarations, asserts);
+        compileAndRun(mxml, true, false, false, null);
+    }
+    
+    @Test
+    public void MXMLPropertyStringTests_attribute()
+    {
+        String[] declarations = new String[]
+        {
+            "<MyComp id='mc1' p=' abc '/>"
+        };
+        String[] asserts = new String[]
+        {
+            "assertEqual('mc1.p', mc1.p, ' abc ');"  
+        };
+        String mxml = getMXML(declarations, asserts);
+        compileAndRun(mxml, true, false, false, null);
+    }
+    
+    @Test
+    public void MXMLPropertyStringTests_tag_text()
+    {
+        String[] declarations = new String[]
+        {
+            "<MyComp id='mc1'>",
+            "    <p> abc </p>",
+            "</MyComp>"
+        };
+        String[] asserts = new String[]
+        {
+            "assertEqual('mc1.p', mc1.p, ' abc ');"  
+        };
+        String mxml = getMXML(declarations, asserts);
+        compileAndRun(mxml, true, false, false, null);
+    }
+    
+    @Test
+    public void MXMLPropertyStringTests_tag_tag()
+    {
+        String[] declarations = new String[]
+        {
+            "<MyComp id='mc1'>",
+            "    <p><fx:String> abc </fx:String></p>",
+            "</MyComp>"
+        };
+        String[] asserts = new String[]
+        {
+            "assertEqual('mc1.p', mc1.p, ' abc ');"  
+        };
+        String mxml = getMXML(declarations, asserts);
+        compileAndRun(mxml, true, false, false, null);
+    }
+}

Propchange: 
flex/falcon/trunk/compiler.tests/feature-tests/properties/MXMLPropertyStringTests.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: 
flex/falcon/trunk/compiler.tests/feature-tests/properties/MXMLPropertyTestsBase.java
URL: 
http://svn.apache.org/viewvc/flex/falcon/trunk/compiler.tests/feature-tests/properties/MXMLPropertyTestsBase.java?rev=1438781&view=auto
==============================================================================
--- 
flex/falcon/trunk/compiler.tests/feature-tests/properties/MXMLPropertyTestsBase.java
 (added)
+++ 
flex/falcon/trunk/compiler.tests/feature-tests/properties/MXMLPropertyTestsBase.java
 Fri Jan 25 23:58:15 2013
@@ -0,0 +1,91 @@
+/*
+ *
+ *  Licensed to the Apache Software Foundation (ASF) under one or more
+ *  contributor license agreements.  See the NOTICE file distributed with
+ *  this work for additional information regarding copyright ownership.
+ *  The ASF licenses this file to You under the Apache License, Version 2.0
+ *  (the "License"); you may not use this file except in compliance with
+ *  the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *  See the License for the specific language governing permissions and
+ *  limitations under the License.
+ *
+ */
+
+package properties;
+
+import mxml.tags.MXMLFeatureTestsBase;
+
+import org.apache.flex.utils.StringUtils;
+
+/**
+ * Base class for feature tests for MXML property tags and attributes.
+ * 
+ * @author Gordon Smith
+ */
+public abstract class MXMLPropertyTestsBase extends MXMLFeatureTestsBase
+{
+    protected String[] getTemplate()
+    {
+           // Property-node tests use this template, which declares a component
+               // with a property of a particular type. The tests then set the
+               // property on a <MyComp> tag inside the <Declarations> tag.
+        return new String[]
+        {
+           "<d:Sprite xmlns:fx='http://ns.adobe.com/mxml/2009'",
+           "          xmlns:d='flash.display.*'",
+           "          xmlns='*'",
+            "          enterFrame='enterFrameHandler(event)'>",
+           "    <fx:Declarations>",
+               "        <fx:Component className='MyComp'>",
+               "            <d:Sprite>",
+           "                <fx:Script>",
+               "                    public var p:%1;",
+           "                </fx:Script>",
+               "            </d:Sprite>",
+               "        </fx:Component>",
+               "        %2",
+           "    </fx:Declarations>",
+            "    <fx:Script>",
+            "    <![CDATA[",
+            "        private function assertEqual(message:String, 
actualValue:*, expectedValue:*):void",
+            "        {",
+            "            if (actualValue !== expectedValue)",
+            "            {",
+            "                trace(message, actualValue, expectedValue);",
+            "                System.exit(1);",
+            "            }",
+            "        }",
+            "        private function enterFrameHandler(event:Event):void",
+            "        {",
+            "            %3",
+            "            System.exit(0);",
+            "        }",
+            "    ]]>",
+            "    </fx:Script>",
+           "</d:Sprite>"
+        };
+    }
+    
+       // Note: The presence of <fx:Component> means that these tests must 
compile against framework.swc
+    // in order to find mx.core.ClassFactory.
+    
+    // TODO: When mx.core.ClassFactory isn't found, we currently don't report 
a compilation error
+    // and instead compile a SWF that doesn't verify.
+    
+    protected String getMXML(String[] declarations, String[] asserts)
+    {
+        String mxml = StringUtils.join(getTemplate(), "\n");
+        mxml = mxml.replace("%1", getPropertyType());
+        mxml = mxml.replace("%2", StringUtils.join(declarations, "\n        
"));
+        mxml = mxml.replace("%3", StringUtils.join(asserts, "\n            "));
+        return mxml;
+    }
+       
+       abstract protected String getPropertyType();
+}

Propchange: 
flex/falcon/trunk/compiler.tests/feature-tests/properties/MXMLPropertyTestsBase.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: 
flex/falcon/trunk/compiler.tests/feature-tests/properties/MXMLPropertyUintTests.java
URL: 
http://svn.apache.org/viewvc/flex/falcon/trunk/compiler.tests/feature-tests/properties/MXMLPropertyUintTests.java?rev=1438781&view=auto
==============================================================================
--- 
flex/falcon/trunk/compiler.tests/feature-tests/properties/MXMLPropertyUintTests.java
 (added)
+++ 
flex/falcon/trunk/compiler.tests/feature-tests/properties/MXMLPropertyUintTests.java
 Fri Jan 25 23:58:15 2013
@@ -0,0 +1,100 @@
+/*
+ *
+ *  Licensed to the Apache Software Foundation (ASF) under one or more
+ *  contributor license agreements.  See the NOTICE file distributed with
+ *  this work for additional information regarding copyright ownership.
+ *  The ASF licenses this file to You under the Apache License, Version 2.0
+ *  (the "License"); you may not use this file except in compliance with
+ *  the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *  See the License for the specific language governing permissions and
+ *  limitations under the License.
+ *
+ */
+
+package properties;
+
+import org.junit.Test;
+
+/**
+ * Feature tests for MXML property tags and attributes of type {@code <uint>}.
+ * 
+ * @author Gordon Smith
+ */
+public class MXMLPropertyUintTests extends MXMLPropertyTestsBase
+{
+    @Override
+    protected String getPropertyType()
+    {
+        return "uint";
+    }
+    
+    @Test
+    public void MXMLPropertyUintTests_default()
+    {
+        String[] declarations = new String[]
+        {
+            "<MyComp id='mc1'/>"
+        };
+        String[] asserts = new String[]
+        {
+            "assertEqual('mc1.p', mc1.p, 0);"   
+        };
+        String mxml = getMXML(declarations, asserts);
+        compileAndRun(mxml, true, false, false, null);
+    }
+    
+    @Test
+    public void MXMLPropertyUintTests_attribute()
+    {
+        String[] declarations = new String[]
+        {
+            "<MyComp id='mc1' p=' 4000000000 '/>"
+        };
+        String[] asserts = new String[]
+        {
+            "assertEqual('mc1.p', mc1.p, 4000000000);"  
+        };
+        String mxml = getMXML(declarations, asserts);
+        compileAndRun(mxml, true, false, false, null);
+    }
+    
+    @Test
+    public void MXMLPropertyUintTests_tag_text()
+    {
+        String[] declarations = new String[]
+        {
+            "<MyComp id='mc1'>",
+            "    <p> 4000000000 </p>",
+            "</MyComp>"
+        };
+        String[] asserts = new String[]
+        {
+            "assertEqual('mc1.p', mc1.p, 4000000000);"  
+        };
+        String mxml = getMXML(declarations, asserts);
+        compileAndRun(mxml, true, false, false, null);
+    }
+    
+    @Test
+    public void MXMLPropertyUintTests_tag_tag()
+    {
+        String[] declarations = new String[]
+        {
+            "<MyComp id='mc1'>",
+            "    <p><fx:uint> 4000000000 </fx:uint></p>",
+            "</MyComp>"
+        };
+        String[] asserts = new String[]
+        {
+            "assertEqual('mc1.p', mc1.p, 4000000000);"  
+        };
+        String mxml = getMXML(declarations, asserts);
+        compileAndRun(mxml, true, false, false, null);
+    }
+}

Propchange: 
flex/falcon/trunk/compiler.tests/feature-tests/properties/MXMLPropertyUintTests.java
------------------------------------------------------------------------------
    svn:eol-style = native

Modified: 
flex/falcon/trunk/compiler/src/org/apache/flex/compiler/internal/as/codegen/MXMLClassDirectiveProcessor.java
URL: 
http://svn.apache.org/viewvc/flex/falcon/trunk/compiler/src/org/apache/flex/compiler/internal/as/codegen/MXMLClassDirectiveProcessor.java?rev=1438781&r1=1438780&r2=1438781&view=diff
==============================================================================
--- 
flex/falcon/trunk/compiler/src/org/apache/flex/compiler/internal/as/codegen/MXMLClassDirectiveProcessor.java
 (original)
+++ 
flex/falcon/trunk/compiler/src/org/apache/flex/compiler/internal/as/codegen/MXMLClassDirectiveProcessor.java
 Fri Jan 25 23:58:15 2013
@@ -3127,7 +3127,7 @@ public class MXMLClassDirectiveProcessor
         // Get the Name for the mx.core.ClassFactory class.
         ICompilerProject project = getProject();
         ClassDefinition classReference = 
(ClassDefinition)factoryNode.getClassReference(project);
-        Name factoryClassName = classReference.getMName(project);
+        Name factoryClassName = classReference != null ? 
classReference.getMName(project) : null;
         
         // Push this class.
         context.addInstruction(OP_finddef, factoryClassName);

Modified: 
flex/falcon/trunk/compiler/src/org/apache/flex/compiler/internal/tree/mxml/MXMLInstanceNode.java
URL: 
http://svn.apache.org/viewvc/flex/falcon/trunk/compiler/src/org/apache/flex/compiler/internal/tree/mxml/MXMLInstanceNode.java?rev=1438781&r1=1438780&r2=1438781&view=diff
==============================================================================
--- 
flex/falcon/trunk/compiler/src/org/apache/flex/compiler/internal/tree/mxml/MXMLInstanceNode.java
 (original)
+++ 
flex/falcon/trunk/compiler/src/org/apache/flex/compiler/internal/tree/mxml/MXMLInstanceNode.java
 Fri Jan 25 23:58:15 2013
@@ -295,10 +295,13 @@ class MXMLInstanceNode extends MXMLClass
 
         FlexProject project = builder.getProject();
         IClassDefinition classReference = getClassReference(project);
-        String qname = classReference.getQualifiedName();
-        builder.addDependency(qname, DependencyType.EXPRESSION);
-        if (id != null)
-            builder.addDependency(qname, DependencyType.SIGNATURE);
+        if (classReference != null)
+        {
+            String qname = classReference.getQualifiedName();
+            builder.addDependency(qname, DependencyType.EXPRESSION);
+            if (id != null)
+                builder.addDependency(qname, DependencyType.SIGNATURE);
+        }
     }
 
     @Override


Reply via email to