15.2.3.6-4-149.js (882B)
1 // Copyright (c) 2012 Ecma International. All rights reserved. 2 // This code is governed by the BSD license found in the LICENSE file. 3 4 /*--- 5 es5id: 15.2.3.6-4-149 6 description: > 7 Object.defineProperty - 'O' is an Array, 'name' is the length 8 property of 'O', test the [[Value]] field of 'desc' is an Object 9 which has an own toString and valueOf method (15.4.5.1 step 3.c) 10 ---*/ 11 12 var arrObj = []; 13 var toStringAccessed = false; 14 var valueOfAccessed = false; 15 16 Object.defineProperty(arrObj, "length", { 17 value: { 18 toString: function() { 19 toStringAccessed = true; 20 return '2'; 21 }, 22 23 valueOf: function() { 24 valueOfAccessed = true; 25 return 3; 26 } 27 } 28 }); 29 30 assert.sameValue(arrObj.length, 3, 'arrObj.length'); 31 assert.sameValue(toStringAccessed, false, 'toStringAccessed'); 32 assert(valueOfAccessed, 'valueOfAccessed !== true'); 33 34 reportCompare(0, 0);