Array Flash ActionScript

CASEINSENSITIVE
DESCENDING
NUMERIC
RETURNINDEXEDARRAY
UNIQUESORT
package{
  import flash.display.Sprite;
  
  public class Main extends Sprite{
    public function Main(){
        var bookshelf:Array = new Array(3);
        bookshelf[0] = new Book("A","a",1999);
        bookshelf[1] = new Book("B","b",2000);
        bookshelf[2] = new Book("C","c",2001);
        bookshelf.sort(byDate, Array.NUMERIC | Array.DESCENDING);
        trace(bookshelf.join("\n"));
    }
    function byDate(valueA:Book, valueB:Book):Number {
       if (valueA.year == valueB.year) {return 0;}
       else if (valueA.year < valueB.year) {return -1;}
       else {return 1;}
    }
  }
}
class Book {
        public var title:String;
        public var author:String;
        public var year:int;
        public function Book (title:String, author:String, year:int) {
            this.title = title;
            this.author = author;
            this.year = year;
        }
        public function toString():String {
            return '"' + title + '", ' + author + ' (' + year + ')';
        }
    }