You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@royale.apache.org by gr...@apache.org on 2019/05/24 22:39:14 UTC

[royale-asjs] branch improvements/Language updated: Last commit was empty...this time with changes!:Fix coercion of undefined value in Vector., added more specific tests for Vector. and Vector.

This is an automated email from the ASF dual-hosted git repository.

gregdove pushed a commit to branch improvements/Language
in repository https://gitbox.apache.org/repos/asf/royale-asjs.git


The following commit(s) were added to refs/heads/improvements/Language by this push:
     new c16f580  Last commit was empty...this time with changes!:Fix coercion of undefined value in Vector.<String>, added more specific tests for Vector.<String> and Vector.<Boolean>
c16f580 is described below

commit c16f5800549eb5db6363ecc19f351f88f284509d
Author: greg-dove <gr...@gmail.com>
AuthorDate: Sat May 25 10:38:47 2019 +1200

    Last commit was empty...this time with changes!:Fix coercion of undefined value in Vector.<String>, added more specific tests for Vector.<String> and Vector.<Boolean>
---
 .../royale/org/apache/royale/utils/Language.as     |  2 +-
 .../language/LanguageTesterTestVector.as           | 51 ++++++++++++++++++++++
 2 files changed, 52 insertions(+), 1 deletion(-)

diff --git a/frameworks/projects/Language/src/main/royale/org/apache/royale/utils/Language.as b/frameworks/projects/Language/src/main/royale/org/apache/royale/utils/Language.as
index 796cdc6..ee2e1a5 100644
--- a/frameworks/projects/Language/src/main/royale/org/apache/royale/utils/Language.as
+++ b/frameworks/projects/Language/src/main/royale/org/apache/royale/utils/Language.as
@@ -723,7 +723,7 @@ class VectorSupport {
             'int': Language._int,
             'uint': Language.uint,
             'Number': Number,
-            'String': String,
+            'String': Language.string,
             'Boolean': Boolean,
             "*": identity,
             "Object": identity
diff --git a/manualtests/UnitTests/src/main/royale/flexUnitTests/language/LanguageTesterTestVector.as b/manualtests/UnitTests/src/main/royale/flexUnitTests/language/LanguageTesterTestVector.as
index 3a14564..ee8ceca 100644
--- a/manualtests/UnitTests/src/main/royale/flexUnitTests/language/LanguageTesterTestVector.as
+++ b/manualtests/UnitTests/src/main/royale/flexUnitTests/language/LanguageTesterTestVector.as
@@ -293,6 +293,57 @@ package flexUnitTests.language
         }
     
         [Test]
+        public function testString():void
+        {
+            var inst:Vector.<String> = new Vector.<String>();
+            var something:* = undefined;
+            inst[0] = null;
+            inst[1] = undefined;
+            inst[2] = '';
+            inst[3] = new String();
+            inst[4] = something;
+            Assert.assertTrue('unexpected coercion result', inst[0] === null);
+            Assert.assertTrue('unexpected coercion result', inst[1] === null);
+            Assert.assertTrue('unexpected coercion result', inst[2] === '');
+            Assert.assertTrue('unexpected coercion result', inst[3] === '');
+            Assert.assertTrue('unexpected coercion result', inst[4] === null);
+        
+            inst.push(undefined);
+            Assert.assertTrue('unexpected coercion result', inst.pop() === null);
+            inst.push(something);
+            Assert.assertTrue('unexpected coercion result', inst.pop() === null);
+        }
+    
+        [Test]
+        public function testBoolean():void
+        {
+            var inst:Vector.<Boolean> = new Vector.<Boolean>();
+            var nothing:* = undefined;
+            var something:* = {};
+            inst[0] = null;
+            inst[1] = undefined;
+            inst[2] = '';
+            inst[3] = new String();
+            inst[4] = nothing;
+            inst[5] = something;
+            Assert.assertTrue('unexpected coercion result', inst[0] === false);
+            Assert.assertTrue('unexpected coercion result', inst[1] === false);
+            Assert.assertTrue('unexpected coercion result', inst[2] === false);
+            Assert.assertTrue('unexpected coercion result', inst[3] === false);
+            Assert.assertTrue('unexpected coercion result', inst[4] === false);
+            Assert.assertTrue('unexpected coercion result', inst[5] === true);
+            
+            inst.push(undefined);
+            Assert.assertTrue('unexpected coercion result', inst.pop() === false);
+            inst.push(nothing);
+            Assert.assertTrue('unexpected coercion result', inst.pop() === false);
+            inst.push(something);
+            Assert.assertTrue('unexpected coercion result', inst.pop() === true);
+        }
+        
+        
+    
+        [Test]
         public function testFixedVectorMutationMethodCoercion():void
         {
             var tc1Vec:Vector.<TestClass1> = new Vector.<TestClass1>();