Imported Upstream version 1.0.0
[platform/upstream/js.git] / js / src / tests / js1_8_5 / extensions / clone-forge.js
1 // -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*-
2 // Any copyright is dedicated to the Public Domain.
3 // http://creativecommons.org/licenses/publicdomain/
4
5 function assertThrows(f) {
6     var ok = false;
7     try {
8         f();
9     } catch (exc) {
10         ok = true;
11     }
12     if (!ok)
13         throw new TypeError("Assertion failed: " + f + " did not throw as expected");
14 }
15
16 // Don't allow forging bogus Date objects.
17 var buf = serialize(new Date(NaN));
18 var a = [1/0, -1/0,
19          Number.MIN_VALUE, -Number.MIN_VALUE,
20          Math.PI, 1286523948674.5,
21          Number.MAX_VALUE, -Number.MAX_VALUE,
22          8.64e15 + 1, -(8.64e15 + 1)];
23 for (var i = 0; i < a.length; i++) {
24     var n = a[i];
25     var nbuf = serialize(n);
26     for (var j = 0; j < 8; j++)
27         buf[j + 8] = nbuf[j];
28     assertThrows(function () { deserialize(buf); });
29 }
30
31 reportCompare(0, 0);