diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-07 19:33:14 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-07 19:33:14 +0000 |
commit | 36d22d82aa202bb199967e9512281e9a53db42c9 (patch) | |
tree | 105e8c98ddea1c1e4784a60a5a6410fa416be2de /js/src/jit-test/tests/basic/bug744285.js | |
parent | Initial commit. (diff) | |
download | firefox-esr-upstream.tar.xz firefox-esr-upstream.zip |
Adding upstream version 115.7.0esr.upstream/115.7.0esrupstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'js/src/jit-test/tests/basic/bug744285.js')
-rw-r--r-- | js/src/jit-test/tests/basic/bug744285.js | 71 |
1 files changed, 71 insertions, 0 deletions
diff --git a/js/src/jit-test/tests/basic/bug744285.js b/js/src/jit-test/tests/basic/bug744285.js new file mode 100644 index 0000000000..a1033f764a --- /dev/null +++ b/js/src/jit-test/tests/basic/bug744285.js @@ -0,0 +1,71 @@ +// |jit-test| error: TypeError; +var TZ_DIFF = getTimeZoneDiff(); +var now = new Date; +var TZ_DIFF = getTimeZoneDiff(); +var now = new Date; +var MAX_UNIX_TIMET = 2145859200; +var RANGE_EXPANSION_AMOUNT = 60; +function tzOffsetFromUnixTimestamp(timestamp) { + new Date + } +function clearDSTOffsetCache(undesiredTimestamp) { + tzOffsetFromUnixTimestamp() + tzOffsetFromUnixTimestamp() + tzOffsetFromUnixTimestamp() + tzOffsetFromUnixTimestamp() + tzOffsetFromUnixTimestamp() + } +function computeCanonicalTZOffset(timestamp) { + clearDSTOffsetCache() + tzOffsetFromUnixTimestamp() + } +var TEST_TIMESTAMPS_SECONDS = [ + 0, + RANGE_EXPANSION_AMOUNT, + MAX_UNIX_TIMET, + ]; +var TEST_TIMESTAMPS = TEST_TIMESTAMPS_SECONDS.map(function(v) { }); +var CORRECT_TZOFFSETS = TEST_TIMESTAMPS.map(computeCanonicalTZOffset); +var TZ_DIFF = getTimeZoneDiff(); +var now = new Date; +var TZ_DIFF = getTimeZoneDiff(); +var now = new Date;function getTimeZoneDiff() { + new Date/60 +} +function check(b, desc) { + function classOf(obj) { + return Object.prototype.toString.call(obj); + } + function ownProperties(obj) { + return Object.getOwnPropertyNames(obj). + map(function (p) { return [p, Object.getOwnPropertyDescriptor(obj, p)]; }); + } + function isCloneable(pair) { } + function assertIsCloneOf(a, b, path) { + ca = classOf(a) + assertEq(ca, classOf(b), path) + assertEq(Object.getPrototypeOf(a), ca == "[object Object]" ? Object.prototype : Array.prototype, path) + pb = ownProperties(b).filter(isCloneable) + pa = ownProperties(a) + function byName(a, b) { return 0; } + byName + (pa.length, pb.length, "should see the same number of properties " + path) + for (var i = 0; i < pa.length; i++) { + gczeal(4) + } + } + banner = desc || String() + a = deserialize(serialize(b)) + var queue = [[a, b, banner]]; + while (queue.length) { + var triple = queue.shift(); + assertIsCloneOf(triple[0], triple[1], triple[2]) + } +} +check({x: 0.7, p: "forty-two", y: null, z: undefined}); +check(Object.prototype); +b=[, , 2, 3]; +b.expando=true; +b[5]=5; +b[0]=0;b[4]=4; +check(b)([, , , , , , 6]) |