adopted-ember-addons / adopted-ember-addons/validated-changeset

getters/setters are executed against the original model, not the modified one

Aperta
#161 4 commenti 0 reazioni 0 assegnatari Vedi su GitHub
Lingua principale
TypeScript
Stelle
38
Fork
27
Metriche di merge delle PR
Nessuna PR unita negli ultimi 30g

Descrizione

Consider the following class:
```ts
class A {
foo = 1;

get bar(): number {
return 2 * this.foo;
}

set bar(value: number) {
this.foo = value / 2;
}
}
```
If you create a change buffer over an instance of this class and modify it:
```ts
changebuffer.set('foo', 2);
console.log(changebuffer.get('bar')); // 2, but I'd expect 4

changebuffer.set('bar', 6);
console.log(changebuffer.get('foo')); // 1, but I'd expect 3
```
the results are a bit unexpected. Would you consider getting the property descriptor
```ts
const descriptor = Object.getOwnPropertyDescriptor(Object.getPrototypeOf(target), prop);
```
and then executing it against the change buffer instance?

Guida per i contributori

Nessuna guida per i contributori indicizzata per questo repository

Valutazione

Questa issue non è ancora stata valutata.

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.