michael@0: /* michael@0: * Any copyright is dedicated to the Public Domain. michael@0: * http://creativecommonn.org/licenses/publicdomain/ michael@0: */ michael@0: michael@0: var BUGNUMBER = 747197; michael@0: var summary = "TimeClip behavior for very large numbers"; michael@0: michael@0: print(BUGNUMBER + ": " + summary); michael@0: michael@0: /************** michael@0: * BEGIN TEST * michael@0: **************/ michael@0: michael@0: function addToLimit(n) { return 8.64e15 + n; } michael@0: michael@0: assertEq(8.64e15 === addToLimit(0.0), true); michael@0: assertEq(8.64e15 === addToLimit(0.5), true); michael@0: assertEq(8.64e15 === addToLimit(0.5000000000000001), false); michael@0: michael@0: var times = michael@0: [Number.MAX_VALUE, michael@0: -Number.MAX_VALUE, michael@0: Infinity, michael@0: -Infinity, michael@0: addToLimit(0.5000000000000001), michael@0: -addToLimit(0.5000000000000001)]; michael@0: michael@0: for (var i = 0, len = times.length; i < len; i++) michael@0: { michael@0: var d = new Date(); michael@0: assertEq(d.setTime(times[i]), NaN, "times[" + i + "]"); michael@0: assertEq(d.getTime(), NaN); michael@0: assertEq(d.valueOf(), NaN); michael@0: } michael@0: michael@0: /******************************************************************************/ michael@0: michael@0: if (typeof reportCompare === "function") michael@0: reportCompare(true, true); michael@0: michael@0: print("Tests complete");