diff options
Diffstat (limited to 'js/src/tests/test262/language/expressions/compound-assignment/S11.13.2_A7.4_T3.js')
-rw-r--r-- | js/src/tests/test262/language/expressions/compound-assignment/S11.13.2_A7.4_T3.js | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/js/src/tests/test262/language/expressions/compound-assignment/S11.13.2_A7.4_T3.js b/js/src/tests/test262/language/expressions/compound-assignment/S11.13.2_A7.4_T3.js new file mode 100644 index 0000000000..4342e1f8be --- /dev/null +++ b/js/src/tests/test262/language/expressions/compound-assignment/S11.13.2_A7.4_T3.js @@ -0,0 +1,29 @@ +// Copyright (C) 2015 André Bargull. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +info: Compound Assignment Operator evaluates its operands from left to right. +description: > + The left-hand side expression is evaluated before the right-hand side. + Left-hand side expression is MemberExpression: base[prop]. Evaluating + ToPropertyKey(prop) throws an error. + Check operator is "x += y". +---*/ + +function DummyError() { } + +assert.throws(DummyError, function() { + var base = {}; + var prop = { + toString: function() { + throw new DummyError(); + } + }; + var expr = function() { + throw new Test262Error("right-hand side expression evaluated"); + }; + + base[prop] += expr(); +}); + +reportCompare(0, 0); |