michael@0: // |jit-test| error: TypeError; michael@0: var TZ_DIFF = getTimeZoneDiff(); michael@0: var now = new Date; michael@0: var TZ_DIFF = getTimeZoneDiff(); michael@0: var now = new Date; michael@0: var MAX_UNIX_TIMET = 2145859200; michael@0: var RANGE_EXPANSION_AMOUNT = 60; michael@0: function tzOffsetFromUnixTimestamp(timestamp) { michael@0: new Date michael@0: } michael@0: function clearDSTOffsetCache(undesiredTimestamp) { michael@0: tzOffsetFromUnixTimestamp() michael@0: tzOffsetFromUnixTimestamp() michael@0: tzOffsetFromUnixTimestamp() michael@0: tzOffsetFromUnixTimestamp() michael@0: tzOffsetFromUnixTimestamp() michael@0: } michael@0: function computeCanonicalTZOffset(timestamp) { michael@0: clearDSTOffsetCache() michael@0: tzOffsetFromUnixTimestamp() michael@0: } michael@0: var TEST_TIMESTAMPS_SECONDS = [ michael@0: 0, michael@0: RANGE_EXPANSION_AMOUNT, michael@0: MAX_UNIX_TIMET, michael@0: ]; michael@0: var TEST_TIMESTAMPS = TEST_TIMESTAMPS_SECONDS.map(function(v) { }); michael@0: var CORRECT_TZOFFSETS = TEST_TIMESTAMPS.map(computeCanonicalTZOffset); michael@0: var TZ_DIFF = getTimeZoneDiff(); michael@0: var now = new Date; michael@0: var TZ_DIFF = getTimeZoneDiff(); michael@0: var now = new Date;function getTimeZoneDiff() { michael@0: new Date/60 michael@0: } michael@0: function check(b, desc) { michael@0: function classOf(obj) { michael@0: return Object.prototype.toString.call(obj); michael@0: } michael@0: function ownProperties(obj) { michael@0: return Object.getOwnPropertyNames(obj). michael@0: map(function (p) { return [p, Object.getOwnPropertyDescriptor(obj, p)]; }); michael@0: } michael@0: function isCloneable(pair) { } michael@0: function assertIsCloneOf(a, b, path) { michael@0: ca = classOf(a) michael@0: assertEq(ca, classOf(b), path) michael@0: assertEq(Object.getPrototypeOf(a), ca == "[object Object]" ? Object.prototype : Array.prototype, path) michael@0: pb = ownProperties(b).filter(isCloneable) michael@0: pa = ownProperties(a) michael@0: function byName(a, b) 0 michael@0: byName michael@0: (pa.length, pb.length, "should see the same number of properties " + path) michael@0: for (var i = 0; i < pa.length; i++) { michael@0: gczeal(4) michael@0: } michael@0: } michael@0: banner = desc || uneval() michael@0: a = deserialize(serialize(b)) michael@0: var queue = [[a, b, banner]]; michael@0: while (queue.length) { michael@0: var triple = queue.shift(); michael@0: assertIsCloneOf(triple[0], triple[1], triple[2]) michael@0: } michael@0: } michael@0: check({x: 0.7, p: "forty-two", y: null, z: undefined}); michael@0: check(Object.prototype); michael@0: b=[, , 2, 3]; michael@0: b.expando=true; michael@0: b[5]=5; michael@0: b[0]=0;b[4]=4; michael@0: check(b)([, , , , , , 6])