~ubuntu-branches/ubuntu/saucy/mozjs17/saucy

« back to all changes in this revision

Viewing changes to js/src/tests/js1_8_5/extensions/clone-leaf-object.js

  • Committer: Package Import Robot
  • Author(s): Rico Tzschichholz
  • Date: 2013-05-25 12:24:23 UTC
  • Revision ID: package-import@ubuntu.com-20130525122423-zmxucrhtensw90xy
Tags: upstream-17.0.0
ImportĀ upstreamĀ versionĀ 17.0.0

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
// |reftest| skip-if(!xulRuntime.shell)
 
2
// -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*-
 
3
// Any copyright is dedicated to the Public Domain.
 
4
// http://creativecommons.org/licenses/publicdomain/
 
5
 
 
6
var a = [new Boolean(true),
 
7
         new Boolean(false),
 
8
         new Number(0),
 
9
         new Number(-0),
 
10
         new Number(Math.PI),
 
11
         new Number(0x7fffffff),
 
12
         new Number(-0x7fffffff),
 
13
         new Number(0x80000000),
 
14
         new Number(-0x80000000),
 
15
         new Number(0xffffffff),
 
16
         new Number(-0xffffffff),
 
17
         new Number(0x100000000),
 
18
         new Number(-0x100000000),
 
19
         new Number(Number.MIN_VALUE),
 
20
         new Number(-Number.MIN_VALUE),
 
21
         new Number(Number.MAX_VALUE),
 
22
         new Number(-Number.MAX_VALUE),
 
23
         new Number(1/0),
 
24
         new Number(-1/0),
 
25
         new Number(0/0),
 
26
         new String(""),
 
27
         new String("\0123\u4567"),
 
28
         new Date(0),
 
29
         new Date(-0),
 
30
         new Date(0x7fffffff),
 
31
         new Date(-0x7fffffff),
 
32
         new Date(0x80000000),
 
33
         new Date(-0x80000000),
 
34
         new Date(0xffffffff),
 
35
         new Date(-0xffffffff),
 
36
         new Date(0x100000000),
 
37
         new Date(-0x100000000),
 
38
         new Date(1286523948674),
 
39
         new Date(8.64e15), // hard-coded in ES5 spec, hard-coded here
 
40
         new Date(-8.64e15),
 
41
         new Date(NaN)];
 
42
 
 
43
function primitive(a) {
 
44
    return a instanceof Date ? +a : a.constructor(a);
 
45
}
 
46
 
 
47
for (var i = 0; i < a.length; i++) {
 
48
    var x = a[i];
 
49
    var expectedSource = x.toSource();
 
50
    var expectedPrimitive = primitive(x);
 
51
    var expectedProto = x.__proto__;
 
52
    var expectedString = Object.prototype.toString.call(x);
 
53
    x.expando = 1;
 
54
    x.__proto__ = {};
 
55
 
 
56
    var y = deserialize(serialize(x));
 
57
    assertEq(y.toSource(), expectedSource);
 
58
    assertEq(primitive(y), expectedPrimitive);
 
59
    assertEq(y.__proto__, expectedProto);
 
60
    assertEq(Object.prototype.toString.call(y), expectedString);
 
61
    assertEq("expando" in y, false);
 
62
}
 
63
 
 
64
reportCompare(0, 0);