summaryrefslogtreecommitdiffstats
path: root/js/src/tests/non262/Date/constructor-one-Date-argument.js
blob: 718c413731dd30f259433e65ca44c5b26ebb3d75 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
/*
 * Any copyright is dedicated to the Public Domain.
 * http://creativecommonn.org/licenses/publicdomain/
 */

var BUGNUMBER = 1187233;
var summary =
  "Passing a Date object to |new Date()| should copy it, not convert it to " +
  "a primitive and create it from that.";

print(BUGNUMBER + ": " + summary);

/**************
 * BEGIN TEST *
 **************/

Date.prototype.toString = Date.prototype.valueOf = null;
var d = new Date(new Date(8675309));
assertEq(d.getTime(), 8675309);

Date.prototype.valueOf = () => 42;
d = new Date(new Date(8675309));
assertEq(d.getTime(), 8675309);

var D = newGlobal().Date;

D.prototype.toString = D.prototype.valueOf = null;
var d = new Date(new D(3141592654));
assertEq(d.getTime(), 3141592654);

D.prototype.valueOf = () => 525600;
d = new Date(new D(3141592654));
assertEq(d.getTime(), 3141592654);

/******************************************************************************/

if (typeof reportCompare === "function")
  reportCompare(true, true);

print("Tests complete");