Instance properties are generated as non-enumerable in JavaScript
As @mfalkvidd pointed out [on Gitter](https://gitter.im/kaitai_struct/Lobby?at=61a4f7e16104ea63b6bfc130), KSC currently produces JavaScript code in which `instances` are non-enumerable. This means that instances **don't** show up during property enumeration ([`for...in`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/for...in) loop or [`Object.keys`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/keys) method), which makes tasks such as dumping a generic Kaitai Struct object (without knowing the particular names of all attributes in advance) more complicated and annoying.

The fact that instances are non-enumerable is a result of the method compiler uses to represent them. They are added to the parser (prototype) object using the [`Object.defineProperty()`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/defineProperty) method, which creates non-enumerable properties by default (for example, [`compiled/javascript/Expr1.js:24-31`](https://github.com/kaitai-io/ci_targets/blob/fc8748076384243aa4c48950f39a648926801eae/compiled/javascript/Expr1.js#L24-L31)):

```javascript
  Object.defineProperty(Expr1.prototype, 'lenOf1Mod', {
    get: function() {
      if (this._m_lenOf1Mod !== undefined)
        return this._m_lenOf1Mod;
      this._m_lenOf1Mod = (this.lenOf1 - 2);
      return this._m_lenOf1Mod;
    }
  });
```

As I understand, we always want to keep the generated API for `seq` fields and `instances` as close as possible (ideally the same) so that the application using the parser module doesn't have to care about what properties are implemented in `seq` or `instances`. Consequently, also the implementer of the .ksy spec is free to move attributes from one section to other, without fearing that it may break any application code.

`seq` fields are always enumerable, because they're added by the conventional method of just assigning to a particular property of `this` object - [`compiled/javascript/Expr1.js:20-21`](https://github.com/kaitai-io/ci_targets/blob/fc8748076384243aa4c48950f39a648926801eae/compiled/javascript/Expr1.js#L20-L21):

```javascript
  Expr1.prototype._read = function() {
    this.lenOf1 = this._io.readU2le();
```

So I don't see a reason why `instances` should behave differently - that's a discrepancy between the APIs of `seq` fields and `instances`.