mapped-arguments-nonwritable-nonconfigurable-3.js (919B)
1 // Copyright (C) 2015 André Bargull. All rights reserved. 2 // This code is governed by the BSD license found in the LICENSE file. 3 4 /*--- 5 info: Mapped arguments object with non-configurable property 6 description: > 7 Mapped arguments property is changed to non-writable and 8 non-configurable. Perform property attribute changes with two 9 [[DefineOwnProperty]] calls. Add intervening call to [[Set]]. 10 flags: [noStrict] 11 ---*/ 12 13 function argumentsNonWritableThenNonConfigurableWithInterveningSet(a) { 14 Object.defineProperty(arguments, "0", {writable: false}); 15 arguments[0] = 2; 16 Object.defineProperty(arguments, "0", {configurable: false}); 17 assert.sameValue(a, 1); 18 assert.sameValue(arguments[0], 1); 19 20 // Postcondition: Arguments mapping is removed. 21 a = 3; 22 assert.sameValue(a, 3); 23 assert.sameValue(arguments[0], 1); 24 } 25 argumentsNonWritableThenNonConfigurableWithInterveningSet(1); 26 27 reportCompare(0, 0);