Andrea Giammarchi (2014-01-10T21:23:01.000Z)
domenic at domenicdenicola.com (2014-01-17T23:48:05.630Z)
I hope this won't be considered spam and slightly OT but you can already happily serialize with an enumerable parent via reviver and serializer functions or simply using [CircularJSON][1] which seems to be ideal for your very specific case so that you don't have to do anything once deserialized in order to have exactly same structure back. I mostly agree with Axel, specially on the "class" side. I have a redefine utility that indeed defines by default all class properties and methods not enumerable since *own* property is usually what matters, the class should not affect for/in at all as we expect with any other native class. +1 for non enumerable by default ... class are a new thing in any case, these could desugar to Object.defineProperties in the class prototype instead of simply assigning them. I know TypeScript chaps will hate me for such idea [1]: https://github.com/WebReflection/circular-json#circularjson