S11.13.1_A7_T4.js (659B)
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: 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 ---*/ 11 12 var propKeyEvaluated = false; 13 var base = {}; 14 var prop = { 15 toString: function() { 16 assert(!propKeyEvaluated); 17 propKeyEvaluated = true; 18 return ""; 19 } 20 }; 21 var expr = function() { 22 return 0; 23 }; 24 25 base[prop] = expr(); 26 27 reportCompare(0, 0);