// 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]. base is the undefined value. ---*/ function DummyError() { } assert.throws(DummyError, function() { var base = undefined; var prop = function() { throw new DummyError(); }; --base[prop()]; }); assert.throws(TypeError, function() { var base = undefined; var prop = { toString: function() { $ERROR("property key evaluated"); } }; --base[prop]; });