diff -r 000000000000 -r 6474c204b198 js/src/tests/ecma_5/extensions/arguments-property-access-in-function.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/js/src/tests/ecma_5/extensions/arguments-property-access-in-function.js Wed Dec 31 06:09:35 2014 +0100 @@ -0,0 +1,58 @@ +/* + * Any copyright is dedicated to the Public Domain. + * http://creativecommons.org/licenses/publicdomain/ + * Contributor: + * Jeff Walden + */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 721322; +var summary = + 'f.arguments must trigger an arguments object in non-strict mode functions'; + +print(BUGNUMBER + ": " + summary); + +/************** + * BEGIN TEST * + **************/ + +var obj = + { + test: function() + { + var args = obj.test.arguments; + assertEq(args !== null, true); + assertEq(args[0], 5); + assertEq(args[1], undefined); + assertEq(args.length, 2); + } + }; +obj.test(5, undefined); + +var sobj = + { + test: function() + { + "use strict"; + + try + { + var args = sobj.test.arguments; + throw new Error("access to arguments property of strict mode " + + "function didn't throw"); + } + catch (e) + { + assertEq(e instanceof TypeError, true, + "should have thrown TypeError, instead got: " + e); + } + } + }; +sobj.test(5, undefined); + +/******************************************************************************/ + +if (typeof reportCompare === "function") + reportCompare(true, true); + +print("Tests complete");