js/src/jit-test/tests/basic/bug744285.js

changeset 0
6474c204b198
     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])

mercurial