1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 1.2 +++ b/js/src/tests/test262/ch11/11.5/11.5.3/S11.5.3_A2.3_T1.js Wed Dec 31 06:09:35 2014 +0100 1.3 @@ -0,0 +1,26 @@ 1.4 +// Copyright 2009 the Sputnik authors. All rights reserved. 1.5 +// This code is governed by the BSD license found in the LICENSE file. 1.6 + 1.7 +/** 1.8 + * ToNumber(first expression) is called first, and then ToNumber(second expression) 1.9 + * 1.10 + * @path ch11/11.5/11.5.3/S11.5.3_A2.3_T1.js 1.11 + * @description Checking with "throw" 1.12 + */ 1.13 + 1.14 +//CHECK#1 1.15 +var x = { valueOf: function () { throw "x"; } }; 1.16 +var y = { valueOf: function () { throw "y"; } }; 1.17 +try { 1.18 + x % y; 1.19 + $ERROR('#1.1: var x = { valueOf: function () { throw "x"; } }; var y = { valueOf: function () { throw "y"; } }; x % y throw "x". Actual: ' + (x % y)); 1.20 +} catch (e) { 1.21 + if (e === "y") { 1.22 + $ERROR('#1.2: ToNumber(first expression) is called first, and then ToNumber(second expression)'); 1.23 + } else { 1.24 + if (e !== "x") { 1.25 + $ERROR('#1.3: var x = { valueOf: function () { throw "x"; } }; var y = { valueOf: function () { throw "y"; } }; x % y throw "x". Actual: ' + (e)); 1.26 + } 1.27 + } 1.28 +} 1.29 +