michael@0: // Copyright 2009 the Sputnik authors. All rights reserved. michael@0: // This code is governed by the BSD license found in the LICENSE file. michael@0: michael@0: /** michael@0: * ToNumber(first expression) is called first, and then ToNumber(second expression) michael@0: * michael@0: * @path ch11/11.5/11.5.3/S11.5.3_A2.3_T1.js michael@0: * @description Checking with "throw" michael@0: */ michael@0: michael@0: //CHECK#1 michael@0: var x = { valueOf: function () { throw "x"; } }; michael@0: var y = { valueOf: function () { throw "y"; } }; michael@0: try { michael@0: x % y; michael@0: $ERROR('#1.1: var x = { valueOf: function () { throw "x"; } }; var y = { valueOf: function () { throw "y"; } }; x % y throw "x". Actual: ' + (x % y)); michael@0: } catch (e) { michael@0: if (e === "y") { michael@0: $ERROR('#1.2: ToNumber(first expression) is called first, and then ToNumber(second expression)'); michael@0: } else { michael@0: if (e !== "x") { michael@0: $ERROR('#1.3: var x = { valueOf: function () { throw "x"; } }; var y = { valueOf: function () { throw "y"; } }; x % y throw "x". Actual: ' + (e)); michael@0: } michael@0: } michael@0: } michael@0: