Hi Justin

What will happen if some of those values will be null ? For example
styleable.style ?

Piotr

2017-06-01 7:58 GMT+02:00 <jmcl...@apache.org>:

> make getValue a lot faster - 30ms down to 5ms in a complex app for JS in
> Chrome
>
>
> Project: http://git-wip-us.apache.org/repos/asf/flex-asjs/repo
> Commit: http://git-wip-us.apache.org/repos/asf/flex-asjs/commit/5e0d3305
> Tree: http://git-wip-us.apache.org/repos/asf/flex-asjs/tree/5e0d3305
> Diff: http://git-wip-us.apache.org/repos/asf/flex-asjs/diff/5e0d3305
>
> Branch: refs/heads/develop
> Commit: 5e0d33052ad6105cd92b18e1ce800674ce1ccec9
> Parents: bdbffb8
> Author: Justin Mclean <jmcl...@apache.org>
> Authored: Thu Jun 1 15:58:01 2017 +1000
> Committer: Justin Mclean <jmcl...@apache.org>
> Committed: Thu Jun 1 15:58:01 2017 +1000
>
> ----------------------------------------------------------------------
>  .../org/apache/flex/core/SimpleCSSValuesImpl.as | 43 ++++++++------------
>  1 file changed, 18 insertions(+), 25 deletions(-)
> ----------------------------------------------------------------------
>
>
> http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/
> 5e0d3305/frameworks/projects/Core/src/main/flex/org/apache/
> flex/core/SimpleCSSValuesImpl.as
> ----------------------------------------------------------------------
> diff --git 
> a/frameworks/projects/Core/src/main/flex/org/apache/flex/core/SimpleCSSValuesImpl.as
> b/frameworks/projects/Core/src/main/flex/org/apache/flex/
> core/SimpleCSSValuesImpl.as
> index 6d4adec..a4e4e1d 100644
> --- a/frameworks/projects/Core/src/main/flex/org/apache/flex/
> core/SimpleCSSValuesImpl.as
> +++ b/frameworks/projects/Core/src/main/flex/org/apache/flex/
> core/SimpleCSSValuesImpl.as
> @@ -99,8 +99,8 @@ package org.apache.flex.core
>              while (true)
>              {
>                  var ffName:String = "factoryFunctions" + i.toString();
> -                var ff:Object = c[ffName];
> -                if (ff === null)
> +                var ff:* = c[ffName];
> +                if (ff === undefined)
>                      break;
>                  generateCSSStyleDeclarations(c[ffName], c["data" +
> i.toString()]);
>                  if (hasEventListener("init"))
> @@ -164,9 +164,7 @@ package org.apache.flex.core
>          COMPILE::SWF
>          public function generateCSSStyleDeclarations(factoryFunctions:Object,
> arr:Array):void
>          {
> -                       if (factoryFunctions === null)
> -                               return;
> -                       if (arr === null)
> +                       if (factoryFunctions === null || arr === null)
>                                 return;
>
>              var declarationName:String = "";
> @@ -331,30 +329,25 @@ package org.apache.flex.core
>              }
>
>              var value:*;
> -                       var o:Object;
> +                       var o:*;
>                         var className:String;
>                         var selectorName:String;
>
>                         if (thisObject is IStyleableObject)
>                         {
>                  var styleable:IStyleableObject =
> IStyleableObject(thisObject);
> -                if (styleable.style !== null)
> +                if (styleable.style !== undefined)
>                  {
> -                    try {
> -                        value = styleable.style[valueName];
> -                    }
> -                    catch (e:Error) {
> -                        value = undefined;
> -                    }
> +                    value = styleable.style[valueName];
>                      if (value === INHERIT)
>                          return getInheritingValue(thisObject, valueName,
> state, attrs);
>                      if (value !== undefined)
>                          return value;
>                  }
> -                if (styleable.id !== null)
> +                if (styleable.id !== undefined)
>                  {
>                      o = values["#" + styleable.id];
> -                    if (o)
> +                    if (o !== undefined)
>                      {
>                          value = o[valueName];
>                          if (value === INHERIT)
> @@ -364,16 +357,16 @@ package org.apache.flex.core
>                      }
>                  }
>                                 var classNames:String =
> styleable.className;
> -                if (classNames)
> +                if (classNames !== undefined)
>                  {
>                      var classNameList:Array = classNames.split(" ");
>                      for each (className in classNameList)
>                      {
> -                        if (state)
> +                        if (state !== null)
>                          {
>                              selectorName = className + ":" + state;
>                              o = values["." + selectorName];
> -                            if (o)
> +                            if (o !== undefined)
>                              {
>                                  value = o[valueName];
>                                  if (value === INHERIT)
> @@ -384,7 +377,7 @@ package org.apache.flex.core
>                          }
>
>                          o = values["." + className];
> -                        if (o)
> +                        if (o !== undefined)
>                          {
>                              value = o[valueName];
>                              if (value === INHERIT)
> @@ -407,11 +400,11 @@ package org.apache.flex.core
>              var thisInstance:Object = thisObject;
>                         while (className !== "Object")
>                         {
> -                               if (state)
> +                               if (state !== null)
>                                 {
>                                         selectorName = className + ":" +
> state;
>                                         o = values[selectorName];
> -                                       if (o)
> +                                       if (o !== undefined)
>                                         {
>                                                 value = o[valueName];
>                          if (value === INHERIT)
> @@ -422,7 +415,7 @@ package org.apache.flex.core
>                                 }
>
>                     o = values[className];
> -                   if (o)
> +                   if (o !== undefined)
>                     {
>                         value = o[valueName];
>                      if (value === INHERIT)
> @@ -446,7 +439,7 @@ package org.apache.flex.core
>                  }
>                         }
>
> -            if (inheritingStyles[valueName] != null &&
> +            if (inheritingStyles[valueName] !== undefined &&
>                  thisObject is IChild)
>              {
>                  var parentObject:Object = IChild(thisObject).parent;
> @@ -455,14 +448,14 @@ package org.apache.flex.core
>              }
>
>              o = values["global"];
> -            if (o)
> +            if (o !== undefined)
>              {
>                         value = o[valueName];
>                         if (value !== undefined)
>                                 return value;
>              }
>                         o = values["*"];
> -                       if(o)
> +                       if (o !== undefined)
>                         {
>                                 return o[valueName];
>                         }
>
>

Reply via email to