FLEX-34853, FLEX-34879
CAUSE:
ListCollectionView.getItemIndex() uses findItem() which, along with 
findFirst(), findAny() and findLast(), always use the Sort to do the searching 
if the collection is already sorted. However, this assumes that all the current 
properties of Sort (including the properties of its SortFields) accurately 
represent the current sorting order in the collection, which is not the case. 
The reason is that one can change any property of Sort and SortField without 
the collection noticing. This leads to the error.

SOLUTION:
After discussing it with Alex H, I decided to implement a step-by-step 
transformation of SortField and Sort into true (i.e. immutable) value objects. 
They are suited to this design pattern because they have no identity, and the 
fact that they are now mutable has allowed this bug to exist. This way, no 
property will be changeable on SortField and Sort without recreating an object 
(and potentially cloning an existing one).
This first step (FLEX-34879) is to mark the setters and the reverse() functions 
as deprecated for the next release, and to ensure that users can specify all 
the state fields directly in the constructors.


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

Branch: refs/heads/develop
Commit: 94dd74615f96bea5dd7ead274810d8548d4506fc
Parents: 8dae0da
Author: Mihai Chira <[email protected]>
Authored: Sun Jun 7 17:51:08 2015 +0200
Committer: Mihai Chira <[email protected]>
Committed: Sun Jun 7 17:51:08 2015 +0200

----------------------------------------------------------------------
 .../framework/src/mx/collections/ISort.as       | 22 +++++++-
 .../framework/src/mx/collections/ISortField.as  | 34 +++++++++++-
 .../framework/src/mx/collections/Sort.as        | 33 ++++++-----
 .../framework/src/mx/collections/SortField.as   | 57 ++++++++++++-------
 .../spark/src/spark/collections/Sort.as         | 50 +++++++++--------
 .../spark/src/spark/collections/SortField.as    | 58 +++++++++++---------
 6 files changed, 171 insertions(+), 83 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/flex-sdk/blob/94dd7461/frameworks/projects/framework/src/mx/collections/ISort.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/framework/src/mx/collections/ISort.as 
b/frameworks/projects/framework/src/mx/collections/ISort.as
index 14e3b74..640b49a 100644
--- a/frameworks/projects/framework/src/mx/collections/ISort.as
+++ b/frameworks/projects/framework/src/mx/collections/ISort.as
@@ -128,10 +128,16 @@ public interface ISort
      *  @productversion Flex 4.5
      */
     function get compareFunction():Function;
+
+    /**
+     *  @deprecated A future release of Apache Flex SDK will remove this 
function. Please use the constructor
+     *  argument instead.
+     */
     function set compareFunction(value:Function):void;
 
     /**
-     *  An <code>Array</code> of <code>ISortField</code> objects that 
specifies the fields to compare.
+     *  An <code>Array</code> of <code>ISortField</code> objects that
+     *  specifies the fields to compare.
      *  The order of the ISortField objects in the array determines
      *  field priority order when sorting.
      *  The default sort comparator checks the sort fields in array
@@ -148,6 +154,11 @@ public interface ISort
      *  @productversion Flex 4.5
      */
     function get fields():Array;
+
+    /**
+     *  @deprecated A future release of Apache Flex SDK will remove this 
function. Please use the constructor
+     *  argument instead.
+     */
     function set fields(value:Array):void;
 
     /**
@@ -169,6 +180,11 @@ public interface ISort
      *  @productversion Flex 4.5
      */
     function get unique():Boolean;
+
+    /**
+     *  @deprecated A future release of Apache Flex SDK will remove this 
function. Please use the constructor
+     *  argument instead.
+     */
     function set unique(value:Boolean):void;
 
     
//--------------------------------------------------------------------------
@@ -305,6 +321,10 @@ public interface ISort
      *  update when the objects in the <code>fields</code> array are modified; 
      *  call its <code>refresh()</code> method to update the view.</p>
      *
+     *  <p>Note: a future release of Apache Flex SDK will change the signature
+     *  of this function to return a reversed clone of this Sort instance. See
+     *  FLEX-34853.</p>
+     *
      *  @langversion 3.0
      *  @playerversion Flash 9
      *  @playerversion AIR 1.1

http://git-wip-us.apache.org/repos/asf/flex-sdk/blob/94dd7461/frameworks/projects/framework/src/mx/collections/ISortField.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/framework/src/mx/collections/ISortField.as 
b/frameworks/projects/framework/src/mx/collections/ISortField.as
index be4bdc8..8ce3228 100644
--- a/frameworks/projects/framework/src/mx/collections/ISortField.as
+++ b/frameworks/projects/framework/src/mx/collections/ISortField.as
@@ -42,7 +42,7 @@ public interface ISortField
      *  and <code>sort()</code> methods. Other uses of this property are not 
      *  supported.
      *  Returns -1 if this ISortField shouldn't be used by the 
<code>Sort</code>
-     *  class to sort the field (there is no compareFunction or no name). 
Otherwise, returns a bitmask of sort options..
+     *  class to sort the field (there is no compareFunction or no name). 
Otherwise, returns a bitmask of sort options.
      * 
      *  @langversion 3.0
      *  @playerversion Flash 9
@@ -77,6 +77,11 @@ public interface ISortField
      *  @productversion Flex 4.5
      */
     function get compareFunction():Function;
+
+    /**
+     *  @deprecated A future release of Apache Flex SDK will remove this 
function. Please use the constructor
+     *  argument instead.
+     */
     function set compareFunction(c:Function):void;
 
     /**
@@ -91,6 +96,11 @@ public interface ISortField
      *  @productversion Flex 4.5
      */
     function get descending():Boolean;
+
+    /**
+     *  @deprecated A future release of Apache Flex SDK will remove this 
function. Please use the constructor
+     *  argument instead.
+     */
     function set descending(value:Boolean):void;
 
     /**
@@ -102,6 +112,11 @@ public interface ISortField
      *  @productversion Flex 4.5
      */
     function get name():String;
+
+    /**
+     *  @deprecated A future release of Apache Flex SDK will remove this 
function. Please use the constructor
+     *  argument instead.
+     */
     function set name(n:String):void;
 
     /**
@@ -137,6 +152,11 @@ public interface ISortField
      *  @productversion Flex 4.5
      */
     function get numeric():Object;
+
+    /**
+     *  @deprecated A future release of Apache Flex SDK will remove this 
function. Please use the constructor
+     *  argument instead.
+     */
     function set numeric(value:Object):void;
 
 
@@ -152,6 +172,11 @@ public interface ISortField
      *  @productversion Flex 4.11
      */
     function get sortCompareType():String;
+
+    /**
+     *  @deprecated A future release of Apache Flex SDK will remove this 
function. Please use the constructor
+     *  argument instead.
+     */
     function set sortCompareType(value:String):void;
 
 
@@ -202,6 +227,10 @@ public interface ISortField
      *  update when the <code>ISortFields</code> are modified; call its 
      *  <code>refresh()</code> method to update the view.</p>
      *
+     *  <p>Note: a future release of Apache Flex SDK will change the signature
+     *  of this function to return a reversed clone of this SortField instance.
+     *  See FLEX-34853 for more details.</p>
+     *
      *  @langversion 3.0
      *  @playerversion Flash 9
      *  @playerversion AIR 1.1
@@ -213,6 +242,9 @@ public interface ISortField
     /**
      *  This changes the internal compare function used by the 
<code>SortField</code> based
      *  on the value of <code>sortCompareType</code>.
+     *
+     *  @deprecated A future release of Apache Flex SDK will remove this 
function in favour of
+     *  making ISortField instances immutable.
      * 
      *  @return true for successfully matched or false for failure to match 
the <code>sortCompareType</code>.
      * 

http://git-wip-us.apache.org/repos/asf/flex-sdk/blob/94dd7461/frameworks/projects/framework/src/mx/collections/Sort.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/framework/src/mx/collections/Sort.as 
b/frameworks/projects/framework/src/mx/collections/Sort.as
index 14f1d64..fa52f2f 100644
--- a/frameworks/projects/framework/src/mx/collections/Sort.as
+++ b/frameworks/projects/framework/src/mx/collections/Sort.as
@@ -20,18 +20,15 @@
 package mx.collections
 {
 
-import flash.events.Event;
-import flash.events.EventDispatcher;
-import mx.collections.ISort;
-import mx.collections.ISortField;
-import mx.collections.errors.SortError;
-import mx.managers.ISystemManager;
-import mx.managers.SystemManager;
-import mx.resources.IResourceManager;
-import mx.resources.ResourceManager;
-import mx.utils.ObjectUtil;
-
-[DefaultProperty("fields")]
+    import flash.events.Event;
+    import flash.events.EventDispatcher;
+
+    import mx.collections.errors.SortError;
+    import mx.resources.IResourceManager;
+    import mx.resources.ResourceManager;
+    import mx.utils.ObjectUtil;
+
+    [DefaultProperty("fields")]
 [ResourceBundle("collections")]
 [Alternative(replacement="spark.collections.Sort", since="4.5")]
 
@@ -180,14 +177,24 @@ public class Sort extends EventDispatcher implements ISort
      *
      *  <p>Creates a new Sort with no fields set and no custom comparator.</p>
      *
+     *  @param fields An <code>Array</code> of <code>ISortField</code> objects 
that
+     *  specifies the fields to compare.
+     *  @param customCompareFunction Use a custom function to compare the
+     *  objects in the collection to which this sort will be applied.
+     *  @param unique Indicates if the sort should be unique.
+     *
      *  @langversion 3.0
      *  @playerversion Flash 9
      *  @playerversion AIR 1.1
      *  @productversion Flex 3
      */
-    public function Sort()
+    public function Sort(fields:Array = null, customCompareFunction:Function = 
null, unique:Boolean = false)
     {
         super();
+
+        this.fields = fields;
+        this.compareFunction = customCompareFunction;
+        this.unique = unique;
     }
 
     
//--------------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/flex-sdk/blob/94dd7461/frameworks/projects/framework/src/mx/collections/SortField.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/framework/src/mx/collections/SortField.as 
b/frameworks/projects/framework/src/mx/collections/SortField.as
index d8780f1..71712ea 100644
--- a/frameworks/projects/framework/src/mx/collections/SortField.as
+++ b/frameworks/projects/framework/src/mx/collections/SortField.as
@@ -24,6 +24,7 @@ package mx.collections
     import flash.events.EventDispatcher;
 
     import mx.collections.errors.SortError;
+    import mx.core.mx_internal;
     import mx.resources.IResourceManager;
     import mx.resources.ResourceManager;
     import mx.utils.ObjectUtil;
@@ -67,10 +68,10 @@ package mx.collections
  *
  *  <p>By default the comparison provided by the SortField class does
  *  not provide correct language specific
- *  sorting for strings.  For this type of sorting please see the 
- *  <code>spark.collections.Sort</code> and 
+ *  sorting for strings.  For this type of sorting please see the
+ *  <code>spark.collections.Sort</code> and
  *  <code>spark.collections.SortField</code> classes.</p>
- * 
+ *
  *  @mxml
  *
  *  <p>The <code>&lt;mx:SortField&gt;</code> tag has the following 
attributes:</p>
@@ -118,6 +119,10 @@ public class SortField extends EventDispatcher implements 
ISortField
      *              descending order.
      *  @param numeric Tells the comparator whether to compare sort items as
      *              numbers, instead of alphabetically.
+     *  @param sortCompareType Gives an indication to SortField which of the
+     *              default compare functions to use.
+     *  @param customCompareFunction Use a custom function to compare the
+     *              objects based on this SortField.
      *
      *  @langversion 3.0
      *  @playerversion Flash 9
@@ -127,7 +132,9 @@ public class SortField extends EventDispatcher implements 
ISortField
     public function SortField(name:String = null,
                               caseInsensitive:Boolean = false,
                               descending:Boolean = false,
-                              numeric:Object = null)
+                              numeric:Object = null,
+                              sortCompareType:String = null,
+                              customCompareFunction:Function = null)
     {
         super();
 
@@ -135,8 +142,13 @@ public class SortField extends EventDispatcher implements 
ISortField
         _caseInsensitive = caseInsensitive;
         _descending = descending;
         _numeric = numeric;
+        _sortCompareType = sortCompareType;
 
-        if (updateSortCompareType() == false)
+        if(customCompareFunction != null)
+        {
+            compareFunction = customCompareFunction;
+        }
+        else if (updateSortCompareType() == false)
         {
             _compareFunction = stringCompare;
         }
@@ -218,9 +230,10 @@ public class SortField extends EventDispatcher implements 
ISortField
     }
 
     /**
-     *  @private
+     *  @deprecated A future release of Apache Flex SDK will remove this 
function. Please use the constructor
+     *  argument instead.
      */
-    public function set caseInsensitive(value:Boolean):void
+    mx_internal function setCaseInsensitive(value:Boolean):void
     {
         if (value != _caseInsensitive)
         {
@@ -244,7 +257,7 @@ public class SortField extends EventDispatcher implements 
ISortField
     /**
      *  The function that compares two items during a sort of items for the
      *  associated collection. If you specify a <code>compareFunction</code>
-     *  property in an ISort object, Flex ignores any 
+     *  property in an ISort object, Flex ignores any
      *  <code>compareFunction</code> properties of the ISort's SortField
      *  objects.
      *  <p>The compare function must have the following signature:</p>
@@ -260,19 +273,19 @@ public class SortField extends EventDispatcher implements 
ISortField
      *        <li>1, if <code>a</code> should appear after <code>b</code> in 
the
      *        sorted sequence</li>
      *  </ul>
-     * 
+     *
      *  <p>The default value is an internal compare function that can perform
      *  a string, numeric, or date comparison in ascending or descending order,
      *  with case-sensitive or case-insensitive string comparisons.
      *  Specify your own function only if you need a need a custom comparison
      *  algorithm. This is normally only the case if a calculated field is
      *  used in a display.</p>
-     *  
-     *  Note if you need, language specific sorting then consider using the
+     *
+     *  Note if you need language-specific sorting then consider using the
      *  <code>spark.collections.SortField</code> class.
-     * 
+     *
      *  @see spark.collections.SortField
-     * 
+     *
      *  @langversion 3.0
      *  @playerversion Flash 9
      *  @playerversion AIR 1.1
@@ -284,7 +297,8 @@ public class SortField extends EventDispatcher implements 
ISortField
     }
 
     /**
-     *  @private
+     *  @deprecated A future release of Apache Flex SDK will remove this 
function. Please use the constructor
+     *  argument instead.
      */
     public function set compareFunction(c:Function):void
     {
@@ -319,7 +333,8 @@ public class SortField extends EventDispatcher implements 
ISortField
     }
 
     /**
-     *  @private
+     *  @deprecated A future release of Apache Flex SDK will remove this 
function. Please use the constructor
+     *  argument instead.
      */
     public function set descending(value:Boolean):void
     {
@@ -359,7 +374,8 @@ public class SortField extends EventDispatcher implements 
ISortField
     }
 
     /**
-     *  @private
+     *  @deprecated A future release of Apache Flex SDK will remove this 
function. Please use the constructor
+     *  argument instead.
      */
     public function set name(n:String):void
     {
@@ -396,7 +412,8 @@ public class SortField extends EventDispatcher implements 
ISortField
     }
 
     /**
-     *  @private
+     *  @deprecated A future release of Apache Flex SDK will remove this 
function. Please use the constructor
+     *  argument instead.
      */
     public function set numeric(value:Object):void
     {
@@ -432,7 +449,8 @@ public class SortField extends EventDispatcher implements 
ISortField
     }
 
     /**
-     *  @private
+     *  @deprecated A future release of Apache Flex SDK will remove this 
function. Please use the constructor
+     *  argument instead.
      */
     public function set sortCompareType(value:String):void
     {
@@ -442,7 +460,6 @@ public class SortField extends EventDispatcher implements 
ISortField
             dispatchEvent(new Event("sortCompareTypeChanged"));
         }
 
-
         updateSortCompareType();
     }
 
@@ -585,7 +602,7 @@ public class SortField extends EventDispatcher implements 
ISortField
 
     /**
      *  @inheritDoc
-     * 
+     *
      *  @langversion 3.0
      *  @playerversion Flash 11.8
      *  @playerversion AIR 3.8

http://git-wip-us.apache.org/repos/asf/flex-sdk/blob/94dd7461/frameworks/projects/spark/src/spark/collections/Sort.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/spark/src/spark/collections/Sort.as 
b/frameworks/projects/spark/src/spark/collections/Sort.as
index ec85d67..a01ebf6 100644
--- a/frameworks/projects/spark/src/spark/collections/Sort.as
+++ b/frameworks/projects/spark/src/spark/collections/Sort.as
@@ -20,24 +20,18 @@
 package spark.collections
 {
 
-import flash.errors.IllegalOperationError;
-import flash.events.Event;
-import flash.events.EventDispatcher;
-
-import mx.collections.ISort;
-import mx.collections.ISortField;
-import mx.collections.errors.SortError;
-import mx.core.FlexGlobals;
-import mx.core.UIComponent;
-import mx.managers.ISystemManager;
-import mx.managers.SystemManager;
-import mx.resources.IResourceManager;
-import mx.resources.ResourceManager;
-import mx.styles.AdvancedStyleClient;
-import mx.styles.IAdvancedStyleClient;
-import mx.utils.ObjectUtil;
-
-[DefaultProperty("fields")]
+    import flash.events.Event;
+
+    import mx.collections.ISort;
+    import mx.collections.ISortField;
+    import mx.collections.errors.SortError;
+    import mx.core.FlexGlobals;
+    import mx.resources.IResourceManager;
+    import mx.resources.ResourceManager;
+    import mx.styles.AdvancedStyleClient;
+    import mx.utils.ObjectUtil;
+
+    [DefaultProperty("fields")]
 [ResourceBundle("collections")]
 
 //--------------------------------------
@@ -250,14 +244,24 @@ public class Sort extends AdvancedStyleClient implements 
ISort
      *
      *  <p>Creates a new Sort with no fields set and no custom comparator.</p>
      *
+     *  @param fields An <code>Array</code> of <code>ISortField</code> objects 
that
+     *  specifies the fields to compare.
+     *  @param customCompareFunction Use a custom function to compare the
+     *  objects in the collection to which this sort will be applied.
+     *  @param unique Indicates if the sort should be unique.
+     *
      *  @langversion 3.0
      *  @playerversion Flash 10.1
      *  @playerversion AIR 2.5
      *  @productversion Flex 4.5
      */
-    public function Sort()
+    public function Sort(fields:Array = null, customCompareFunction:Function = 
null, unique:Boolean = false)
     {
         super();
+
+        this.fields = fields;
+        this.compareFunction = customCompareFunction;
+        this.unique = unique;
     }
 
     
//--------------------------------------------------------------------------
@@ -342,7 +346,7 @@ public class Sort extends AdvancedStyleClient implements 
ISort
      */
     private var fieldList:Array = [];
 
-    [Inspectable(category="General", 
arrayType="spark.globalization.ISortField")]
+    [Inspectable(category="General", arrayType="mx.collections.ISortField")]
     [Bindable("fieldsChanged")]
 
     /**
@@ -992,12 +996,12 @@ public class Sort extends AdvancedStyleClient implements 
ISort
      */
     private function localeChanged():void
     {
-        const newlocaleStyle:* = super.getStyle("locale");
+        const newLocaleStyle:* = super.getStyle("locale");
 
-        if (localeStyle === newlocaleStyle)
+        if (localeStyle === newLocaleStyle)
             return;
 
-        localeStyle = newlocaleStyle;
+        localeStyle = newLocaleStyle;
         if (defaultEmptyField)
             defaultEmptyField.setStyle("locale", localeStyle);
 

http://git-wip-us.apache.org/repos/asf/flex-sdk/blob/94dd7461/frameworks/projects/spark/src/spark/collections/SortField.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/spark/src/spark/collections/SortField.as 
b/frameworks/projects/spark/src/spark/collections/SortField.as
index 38d81e6..44e8fec 100644
--- a/frameworks/projects/spark/src/spark/collections/SortField.as
+++ b/frameworks/projects/spark/src/spark/collections/SortField.as
@@ -20,26 +20,19 @@
 package spark.collections
 {
 
-import flash.errors.IllegalOperationError;
-import flash.events.Event;
-import flash.events.EventDispatcher;
+    import flash.events.Event;
 
-import mx.collections.ISortField;
-import mx.collections.errors.SortError;
-import mx.core.FlexGlobals;
-import mx.core.UIComponent;
-import mx.managers.ISystemManager;
-import mx.managers.SystemManager;
-import mx.resources.IResourceManager;
-import mx.resources.ResourceManager;
-import mx.styles.AdvancedStyleClient;
-import mx.utils.ObjectUtil;
+    import mx.collections.ISortField;
+    import mx.collections.errors.SortError;
+    import mx.core.FlexGlobals;
+    import mx.resources.IResourceManager;
+    import mx.resources.ResourceManager;
+    import mx.styles.AdvancedStyleClient;
+    import mx.utils.ObjectUtil;
 
-import spark.globalization.SortingCollator;
-import spark.collections.SortFieldCompareTypes;
+    import spark.globalization.SortingCollator;
 
-
-[ResourceBundle("collections")]
+    [ResourceBundle("collections")]
 
 //--------------------------------------
 //  Styles
@@ -184,6 +177,10 @@ public class SortField extends AdvancedStyleClient 
implements ISortField
      *              descending order.
      *  @param numeric Tells the comparator whether to compare sort items as
      *              numbers, instead of alphabetically.
+     *  @param sortCompareType Gives an indication to SortField which of the
+     *              default compare functions to use.
+     *  @param customCompareFunction Use a custom function to compare the
+     *              objects based on this SortField.
      *
      *  @langversion 3.0
      *  @playerversion Flash 10.1
@@ -192,15 +189,22 @@ public class SortField extends AdvancedStyleClient 
implements ISortField
      */
     public function SortField(name:String = null,
                               descending:Boolean = false,
-                              numeric:Object = null)
+                              numeric:Object = null,
+                              sortCompareType:String = null,
+                              customCompareFunction:Function = null)
     {
         super();
 
         _name = name;
         _descending = descending;
         _numeric = numeric;
+        _sortCompareType = sortCompareType;
 
-        if (updateSortCompareType() == false)
+        if(customCompareFunction != null)
+        {
+            compareFunction = customCompareFunction;
+        }
+        else if (updateSortCompareType() == false)
         {
             _compareFunction = stringCompare;
         }
@@ -312,7 +316,8 @@ public class SortField extends AdvancedStyleClient 
implements ISortField
     }
 
     /**
-     *  @private
+     *  @deprecated A future release of Apache Flex SDK will remove this 
function. Please use the constructor
+     *  argument instead.
      */
     public function set compareFunction(c:Function):void
     {
@@ -347,7 +352,8 @@ public class SortField extends AdvancedStyleClient 
implements ISortField
     }
 
     /**
-     *  @private
+     *  @deprecated A future release of Apache Flex SDK will remove this 
function. Please use the constructor
+     *  argument instead.
      */
     public function set descending(value:Boolean):void
     {
@@ -387,7 +393,8 @@ public class SortField extends AdvancedStyleClient 
implements ISortField
     }
 
     /**
-     *  @private
+     *  @deprecated A future release of Apache Flex SDK will remove this 
function. Please use the constructor
+     *  argument instead.
      */
     public function set name(n:String):void
     {
@@ -424,7 +431,8 @@ public class SortField extends AdvancedStyleClient 
implements ISortField
     }
 
     /**
-     *  @private
+     *  @deprecated A future release of Apache Flex SDK will remove this 
function. Please use the constructor
+     *  argument instead.
      */
     public function set numeric(value:Object):void
     {
@@ -461,7 +469,8 @@ public class SortField extends AdvancedStyleClient 
implements ISortField
     }
 
     /**
-     *  @private
+     *  @deprecated A future release of Apache Flex SDK will remove this 
function. Please use the constructor
+     *  argument instead.
      */
     public function set sortCompareType(value:String):void
     {
@@ -822,7 +831,6 @@ public class SortField extends AdvancedStyleClient 
implements ISortField
 
     private function nullCompare(a:Object, b:Object):int
     {
-        var value:Object;
         var left:Object;
         var right:Object;
 

Reply via email to