Намесили вы тут лишнего.
Убивает геттер не присвоение
_SomeValue_buffer
, а то что входящий тип отличается от текущего. Попробуйте после
TestObj.SomeValue = 15;
сделать
TestObj.SomeValue = true; // or anything except numbers
— геттер сразу же отваливается. Попробуйте сделать по другому, например, сразу присвоить
true
, а потом, что угодно отличное от boolean — опять не стало геттера.
Я вот зашел сейчас на MDN почитать про
__defineGetter__
, а
там предупреждения:
Non-standard
This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.
Deprecated
This feature has been removed from the Web. Though some browsers may still support it, it is in the process of being dropped. Do not use it in old or new projects. Pages or Web apps using it may break at any time.
Я так полагаю — это уже не баг.
P.S. Судя по именам переменных — ваш основной язык C#?