// Copyright (C) 2015 André Bargull. All rights reserved. // This code is governed by the BSD license found in the LICENSE file. /*--- info: Operator x-- evaluates its reference expression once. description: > The operand expression is evaluated exactly once. Operand expression is MemberExpression: base[prop]. ToPropertyKey(prop) is not called multiple times. ---*/ var propKeyEvaluated = false; var base = {}; var prop = { toString: function() { assert(!propKeyEvaluated); propKeyEvaluated = true; return 1; } }; base[prop]--; reportCompare(0, 0);