Struct コードみてみた。
let anekos = { set meow (value) 'gyahahaha' }; liberator.log(anekos.meow = 'neko'); // => gyahahaha
罠っぽい。
setter もまっとうな値を返しておけばいいと思うよ!!
Ruby の場合は、右辺を返すのでそういうのになれてるとやらかしそうだ。
class ANekoS def meow= (value) "gyahahaha" end end anekos = ANekoS.new p(anekos.meow = 'neko') # => neko
パッチはこちら
一応。
diff -r 7e4f280c0e60 src/content/util.js --- a/src/content/util.js Fri Nov 21 07:35:27 2008 +0100 +++ b/src/content/util.js Fri Nov 21 19:16:04 2008 +0900 @@ -524,6 +524,7 @@ let value = val; this.__defineGetter__(i, function () value); this.__defineSetter__(i, function (val) { value = val }); + return value; }); }; return self.constructor = ConStructor;