super_deep.js
925 Bytes
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
41
42
43
44
45
46
47
48
49
50
51
52
53
54
var assert = require('assert');
var traverse = require('traverse');
exports.super_deep = function () {
var util = require('util');
var a0 = make();
var a1 = make();
assert.ok(traverse.deepEqual(a0, a1));
a0.c.d.moo = true;
assert.ok(!traverse.deepEqual(a0, a1));
a1.c.d.moo = true;
assert.ok(traverse.deepEqual(a0, a1));
// TODO: this one
//a0.c.a = a1;
//assert.ok(!traverse.deepEqual(a0, a1));
};
function make () {
var a = { self : 'a' };
var b = { self : 'b' };
var c = { self : 'c' };
var d = { self : 'd' };
var e = { self : 'e' };
a.a = a;
a.b = b;
a.c = c;
b.a = a;
b.b = b;
b.c = c;
c.a = a;
c.b = b;
c.c = c;
c.d = d;
d.a = a;
d.b = b;
d.c = c;
d.d = d;
d.e = e;
e.a = a;
e.b = b;
e.c = c;
e.d = d;
e.e = e;
return a;
}