forked from: プリミティブな値の扱い getter、setterと a = c, b = c  OR a = (b = c)

getter が呼ばれない…変数の参照なしにプリミティブな値の代入が行われてる？
->
=演算子は右結合だから、a = (b = c)と評価されて、
aに代入されるのはcの値ではなく、b = cという式を評価した値なので、getterは呼ばれない。

From http://www.ecma-international.org/publications/files/ECMA-ST/ECMA-262.pdf
11.13.1 Simple Assignment ( = ) 
The production AssignmentExpression : LeftHandSideExpression = AssignmentExpression is evaluated as follows: 
1. Let lref be the result of evaluating LeftHandSideExpression. 
2. Let rref be the result of evaluating AssignmentExpression. 
3. Let rval be GetValue(rref). 
4. Throw a SyntaxError exception if the following conditions are all true: 
• Type(lref) is Reference is true
• IsStrictReference(lref) is true
• Type(GetBase(lref)) is Enviroment Record 
• GetReferencedName(lref) is either "eval" or "arguments"
5. Call PutValue(lref, rval). 
6. Return rval.