// 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]--; |