How to implement private isn't a totally obvious design choice, but if private properties are going to be implemented as properties hanging off 'this', I wonder if it wouldn't at least make sense to define them as non-enumerable.
In ES5 - probably yes, however is non enumerable make them non-callable?
The thing with the closed-over properties is that it takes too much memory: I personally have seen this in lots of libraries especially ones that want to provide as many functionality as possible into one. Each instance make a closure and often not one.
The idea in the implementation is that if the method/property is marked as private at compile time calling it from an instance is not allowed. At run time it does not matter really, because 'nice third party' is assumed (i.e. that no one will touch it even
spilled as result of the class pattern they selected is the best in regard of memory consumption and this is important as they are targeting
large application for the web.