Not sure if the following is exactly how we'd want it to be, but it would be useful:
```js class Foo { // calculatedValue is intended to have read-only properties calculatedValue = { #x: 0, get x() { return this.#x }, #y: 0, get y() { return this.#y }, #z: 0, get z() { return this.#z }, } update() { this.calculatedValue.#x = 42 // ok this.calculatedValue.#y = 42 // ok this.calculatedValue.#z = 42 // ok } } ``` End user: ```js const foo = new Foo foo.calculatedValue.x // ok foo.calculatedValue.#x // syntax error ``` We could currently do something like this: ```js class Foo { #calcX = 0 #calcY = 0 #calcZ = 0 // calculatedValue is intended to have read-only properties calculatedValue = (() => { const self = this return { get x() { return self.#calcX }, get y() { return self.#calcY }, get z() { return self.#calcZ }, } })() update() { this.#calcX = 42 // ok this.#calcY = 42 // ok this.#calcZ = 42 // ok } } ``` Any plans for something like this? Is there a plan for private fields for object literals? If so, maybe that can somehow tie into usage within class bodies with WeakMap-ish semantics. #!/JoePea _______________________________________________ es-discuss mailing list es-discuss@mozilla.org https://mail.mozilla.org/listinfo/es-discuss