1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 1.2 +++ b/js/src/jit-test/tests/basic/bug744285.js Wed Dec 31 06:09:35 2014 +0100 1.3 @@ -0,0 +1,71 @@ 1.4 +// |jit-test| error: TypeError; 1.5 +var TZ_DIFF = getTimeZoneDiff(); 1.6 +var now = new Date; 1.7 +var TZ_DIFF = getTimeZoneDiff(); 1.8 +var now = new Date; 1.9 +var MAX_UNIX_TIMET = 2145859200; 1.10 +var RANGE_EXPANSION_AMOUNT = 60; 1.11 +function tzOffsetFromUnixTimestamp(timestamp) { 1.12 + new Date 1.13 + } 1.14 +function clearDSTOffsetCache(undesiredTimestamp) { 1.15 + tzOffsetFromUnixTimestamp() 1.16 + tzOffsetFromUnixTimestamp() 1.17 + tzOffsetFromUnixTimestamp() 1.18 + tzOffsetFromUnixTimestamp() 1.19 + tzOffsetFromUnixTimestamp() 1.20 + } 1.21 +function computeCanonicalTZOffset(timestamp) { 1.22 + clearDSTOffsetCache() 1.23 + tzOffsetFromUnixTimestamp() 1.24 + } 1.25 +var TEST_TIMESTAMPS_SECONDS = [ 1.26 + 0, 1.27 + RANGE_EXPANSION_AMOUNT, 1.28 + MAX_UNIX_TIMET, 1.29 + ]; 1.30 +var TEST_TIMESTAMPS = TEST_TIMESTAMPS_SECONDS.map(function(v) { }); 1.31 +var CORRECT_TZOFFSETS = TEST_TIMESTAMPS.map(computeCanonicalTZOffset); 1.32 +var TZ_DIFF = getTimeZoneDiff(); 1.33 +var now = new Date; 1.34 +var TZ_DIFF = getTimeZoneDiff(); 1.35 +var now = new Date;function getTimeZoneDiff() { 1.36 + new Date/60 1.37 +} 1.38 +function check(b, desc) { 1.39 + function classOf(obj) { 1.40 + return Object.prototype.toString.call(obj); 1.41 + } 1.42 + function ownProperties(obj) { 1.43 + return Object.getOwnPropertyNames(obj). 1.44 + map(function (p) { return [p, Object.getOwnPropertyDescriptor(obj, p)]; }); 1.45 + } 1.46 + function isCloneable(pair) { } 1.47 + function assertIsCloneOf(a, b, path) { 1.48 + ca = classOf(a) 1.49 + assertEq(ca, classOf(b), path) 1.50 + assertEq(Object.getPrototypeOf(a), ca == "[object Object]" ? Object.prototype : Array.prototype, path) 1.51 + pb = ownProperties(b).filter(isCloneable) 1.52 + pa = ownProperties(a) 1.53 + function byName(a, b) 0 1.54 + byName 1.55 + (pa.length, pb.length, "should see the same number of properties " + path) 1.56 + for (var i = 0; i < pa.length; i++) { 1.57 + gczeal(4) 1.58 + } 1.59 + } 1.60 + banner = desc || uneval() 1.61 + a = deserialize(serialize(b)) 1.62 + var queue = [[a, b, banner]]; 1.63 + while (queue.length) { 1.64 + var triple = queue.shift(); 1.65 + assertIsCloneOf(triple[0], triple[1], triple[2]) 1.66 + } 1.67 +} 1.68 +check({x: 0.7, p: "forty-two", y: null, z: undefined}); 1.69 +check(Object.prototype); 1.70 +b=[, , 2, 3]; 1.71 +b.expando=true; 1.72 +b[5]=5; 1.73 +b[0]=0;b[4]=4; 1.74 +check(b)([, , , , , , 6])