@@ -13,18 +13,18 @@ import JSON
13 'use strict';
13 'use strict';
15 function eq(x,y) {
15 function eq(x,y) {
16+ if (x === y) return true;
16 if (typeof x === "object") {
17 if (typeof x === "object") {
17− if (x !== null && '_' in x) {
18+ if ('_' in x) {
18− for (var i in x) { if (x[i] != y[i]) return false; }
19− for (var i in y) { if (!(i in x)) return false; }
22− if (x === y) return true;
23− if (x.length !== y.length) return false;
24− for (var i = x.length; i--; ) {
25− if (!eq(x[i],y[i])) return false;
19+ for (var i in x) { if (!eq(x[i],y[i])) return false; }
26− }
20+ for (var i in y) { if (!(i in x)) return false; }
27 return true;
21 return true;
23+ if (x.ctor !== y.ctor) return false;
24+ for (var i = x.length; i--; ) {
25+ if (!eq(x[i],y[i])) return false;
29 return x === y;
29 return x === y;