| // Copyright 2009 the Sputnik authors. All rights reserved. |
| // This code is governed by the BSD license found in the LICENSE file. |
| |
| /*--- |
| info: "Arguments : (ArgumentList : ArgumentList, AssignmentExpression)" |
| es5id: 11.2.4_A1.4_T4 |
| description: > |
| Return an internal list whose length is one greater than the |
| length of ArgumentList and whose items are the items of |
| ArgumentList, in order, followed at the end by |
| GetValue(AssignmentExpression), which is the last item of the new |
| list |
| ---*/ |
| |
| var x = function () { throw "x"; }; |
| var y = function () { throw "y"; }; |
| |
| function f_arg() { |
| } |
| |
| //CHECK#1 |
| try { |
| f_arg(x(),y()); |
| $ERROR('#1.1: var x = { valueOf: function () { throw "x"; } }; var y = { valueOf: function () { throw "y"; } }; function f_arg() {} f_arg(x(),y()) throw "x". Actual: ' + (f_arg(x(),y()))); |
| } |
| catch (e) { |
| if (e === "y") { |
| $ERROR('#1.2: First argument is evaluated first, and then second argument'); |
| } else { |
| if (e !== "x") { |
| $ERROR('#1.3: var x = { valueOf: function () { throw "x"; } }; var y = { valueOf: function () { throw "y"; } }; function f_arg() {} f_arg(x(),y()) throw "x". Actual: ' + (e)); |
| } |
| } |
| } |