Use CSSUtils.toNumber()

Project: http://git-wip-us.apache.org/repos/asf/flex-asjs/repo
Commit: http://git-wip-us.apache.org/repos/asf/flex-asjs/commit/de093c81
Tree: http://git-wip-us.apache.org/repos/asf/flex-asjs/tree/de093c81
Diff: http://git-wip-us.apache.org/repos/asf/flex-asjs/diff/de093c81

Branch: refs/heads/develop
Commit: de093c81727680a9bb1521d9258cd90d0c0b40cd
Parents: 4f09e30
Author: Harbs <[email protected]>
Authored: Thu Jun 22 12:50:26 2017 +0300
Committer: Harbs <[email protected]>
Committed: Thu Jun 22 12:50:26 2017 +0300

----------------------------------------------------------------------
 .../org/apache/flex/core/ApplicationBase.as     | 13 ++++++---
 .../main/flex/org/apache/flex/core/UIBase.as    | 29 ++++++++++----------
 .../main/flex/org/apache/flex/utils/CSSUtils.as |  7 +++--
 3 files changed, 28 insertions(+), 21 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/de093c81/frameworks/projects/Basic/src/main/flex/org/apache/flex/core/ApplicationBase.as
----------------------------------------------------------------------
diff --git 
a/frameworks/projects/Basic/src/main/flex/org/apache/flex/core/ApplicationBase.as
 
b/frameworks/projects/Basic/src/main/flex/org/apache/flex/core/ApplicationBase.as
index 8a54c91..da1aa16 100644
--- 
a/frameworks/projects/Basic/src/main/flex/org/apache/flex/core/ApplicationBase.as
+++ 
b/frameworks/projects/Basic/src/main/flex/org/apache/flex/core/ApplicationBase.as
@@ -23,6 +23,11 @@ package org.apache.flex.core
         import flash.system.ApplicationDomain;
         import flash.utils.getQualifiedClassName;
     }
+    COMPILE::JS
+    {
+        import org.apache.flex.utils.CSSUtils;
+    }
+
         
     /**
      *  This is a platform-dependent base class
@@ -116,10 +121,10 @@ package org.apache.flex.core
         {
             var pixels:Number;
             var strpixels:String = element.style.width as String;
-            if (strpixels !== null && strpixels.indexOf('%') != -1)
+            if(strpixels == null)
                 pixels = NaN;
             else
-                pixels = parseFloat(strpixels);
+                pixels = CSSUtils.toNumber(strpixels);
             if (isNaN(pixels)) {
                 pixels = element.offsetWidth;
                 if (pixels === 0 && element.scrollWidth !== 0) {
@@ -154,10 +159,10 @@ package org.apache.flex.core
         {
             var pixels:Number;
             var strpixels:String = element.style.height as String;
-            if (strpixels !== null && strpixels.indexOf('%') != -1)
+            if(strpixels == null)
                 pixels = NaN;
             else
-                pixels = parseFloat(strpixels);
+                pixels = CSSUtils.toNumber(strpixels);
             if (isNaN(pixels)) {
                 pixels = element.offsetHeight;
                 if (pixels === 0 && element.scrollHeight !== 0) {

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/de093c81/frameworks/projects/Basic/src/main/flex/org/apache/flex/core/UIBase.as
----------------------------------------------------------------------
diff --git 
a/frameworks/projects/Basic/src/main/flex/org/apache/flex/core/UIBase.as 
b/frameworks/projects/Basic/src/main/flex/org/apache/flex/core/UIBase.as
index 8d08465..07dffa5 100644
--- a/frameworks/projects/Basic/src/main/flex/org/apache/flex/core/UIBase.as
+++ b/frameworks/projects/Basic/src/main/flex/org/apache/flex/core/UIBase.as
@@ -22,17 +22,20 @@ package org.apache.flex.core
     {
         import flash.display.DisplayObject;
         import flash.display.Sprite;
-        import flash.display.Stage;            
+        import flash.display.Stage;
+        import org.apache.flex.events.utils.MouseEventConverter;
     }
        
        import org.apache.flex.events.Event;
        import org.apache.flex.events.IEventDispatcher;
        import org.apache.flex.events.MouseEvent;
        import org.apache.flex.events.ValueChangeEvent;
-       COMPILE::SWF {
-           import org.apache.flex.events.utils.MouseEventConverter;
-       }
     import org.apache.flex.utils.StringUtil;
+
+    COMPILE::JS
+    {
+        import org.apache.flex.utils.CSSUtils;
+    }
        
        /**
         *  Set a different class for click events so that
@@ -368,13 +371,11 @@ package org.apache.flex.core
         public function get width():Number
         {
             var pixels:Number;
-            var strpixels:String = positioner.style.width as String;
-            if (strpixels !== null && strpixels.indexOf('%') != -1)
+            var strpixels:String = element.style.width as String;
+            if(strpixels == null)
                 pixels = NaN;
-            else if (strpixels === "")
-               pixels = NaN;
             else
-                pixels = parseFloat(strpixels);
+                pixels = CSSUtils.toNumber(strpixels);
             if (isNaN(pixels)) {
                 pixels = positioner.offsetWidth;
                 if (pixels == 0 && positioner.scrollWidth != 0) {
@@ -462,13 +463,11 @@ package org.apache.flex.core
         public function get height():Number
         {
             var pixels:Number;
-            var strpixels:String = positioner.style.height as String;
-            if (strpixels !== null && strpixels.indexOf('%') !== -1)
+            var strpixels:String = element.style.height as String;
+            if(strpixels == null)
                 pixels = NaN;
-            else if (strpixels === "")
-               pixels = NaN;
             else
-                pixels = parseFloat(strpixels);
+                pixels = CSSUtils.toNumber(strpixels);
             if (isNaN(pixels)) {
                 pixels = positioner.offsetHeight;
                 if (pixels == 0 && positioner.scrollHeight != 0) {
@@ -1316,7 +1315,7 @@ package org.apache.flex.core
                                        if (value is String)
                     {
                         var s:String = String(value);
-                        if (s.indexOf("%") !== -1)
+                        if (s.indexOf("%") > -1)
                                                _percentWidth = 
Number(s.substring(0, s.length - 1));
                         else
                         {

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/de093c81/frameworks/projects/Core/src/main/flex/org/apache/flex/utils/CSSUtils.as
----------------------------------------------------------------------
diff --git 
a/frameworks/projects/Core/src/main/flex/org/apache/flex/utils/CSSUtils.as 
b/frameworks/projects/Core/src/main/flex/org/apache/flex/utils/CSSUtils.as
index 39dc818..0cce361 100644
--- a/frameworks/projects/Core/src/main/flex/org/apache/flex/utils/CSSUtils.as
+++ b/frameworks/projects/Core/src/main/flex/org/apache/flex/utils/CSSUtils.as
@@ -69,12 +69,15 @@ package org.apache.flex.utils
          */
         public static function toNumber(str:String, reference:Number = 
0):Number
         {
+            //str must be non-null
+            if(str === "")
+                return NaN;
             var c:int = str.indexOf("px");
-            if (c !== -1)
+            if (c > -1)
                 return Number(str.substr(0, c));
             
             c = str.indexOf("%");
-            if (c !== -1)
+            if (c > -1)
                 return Number(str.substr(0, c)) * reference / 100;
             
             return Number(str);

Reply via email to