S11.13.2_A7.6_T4.js (703B)
1 // Copyright (C) 2015 André Bargull. All rights reserved. 2 // This code is governed by the BSD license found in the LICENSE file. 3 4 /*--- 5 info: Compound Assignment Operator evaluates its operands from left to right. 6 description: > 7 The left-hand side expression is evaluated before the right-hand side. 8 Left-hand side expression is MemberExpression: base[prop]. ToPropertyKey(prop) 9 is only called once. 10 Check operator is "x <<= y". 11 ---*/ 12 13 var propKeyEvaluated = false; 14 var base = {}; 15 var prop = { 16 toString: function() { 17 assert(!propKeyEvaluated); 18 propKeyEvaluated = true; 19 return ""; 20 } 21 }; 22 var expr = function() { 23 return 0; 24 }; 25 26 base[prop] <<= expr(); 27 28 reportCompare(0, 0);