Как всё-таки происходит нестрогое сравнение?
с помощью valueOf или toString?
если что-то из вышеперечисленного, то как объяснить вот это?

Код:
trace(this.start_date);
trace(this.end_date);
trace(this.start_date.valueOf()==this.end_date.valueOf());
trace(this.start_date.toString()==this.end_date.toString());
trace(this.start_date==this.end_date);
выводится соответственно:

Код:
Wed Feb 1 00:00:00 GMT+0800 2006
Wed Feb 1 00:00:00 GMT+0800 2006
true
true
false
this.start_date - Date
this.end_date - Date
т.е. и при valueOf, и при toString значения одинаковые, однако когда произвожу сравнение start_date и end_date напрямую, выводится false.
Причем методы valueOf и toString у класса Date есть.