15.2.3.6-4-592.js (1555B)
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-592 6 description: > 7 ES5 Attributes - Inherited property is non-enumerable 8 (Object.create) 9 ---*/ 10 11 var appointment = {}; 12 13 var data1 = 1001; 14 Object.defineProperty(appointment, "startTime", { 15 get: function() { 16 return data1; 17 }, 18 enumerable: false, 19 configurable: true 20 }); 21 var data2 = "NAME"; 22 Object.defineProperty(appointment, "name", { 23 get: function() { 24 return data2; 25 }, 26 enumerable: false, 27 configurable: false 28 }); 29 30 var meeting = Object.create(appointment); 31 var data3 = "In-person meeting"; 32 Object.defineProperty(meeting, "conferenceCall", { 33 get: function() { 34 return data3; 35 }, 36 enumerable: false, 37 configurable: true 38 }); 39 40 var teamMeeting = Object.create(meeting); 41 42 var verifyTimeProp = false; 43 var verifyNameProp = false; 44 var verifyCallProp = false; 45 for (var p in teamMeeting) { 46 if (p === "startTime") { 47 verifyTimeProp = true; 48 } 49 if (p === "name") { 50 verifyNameProp = true; 51 } 52 if (p === "conferenceCall") { 53 verifyCallProp = true; 54 } 55 } 56 57 var hasOwnProperty = !teamMeeting.hasOwnProperty("name") && 58 !teamMeeting.hasOwnProperty("startTime") && 59 !teamMeeting.hasOwnProperty('conferenceCall'); 60 61 assert(hasOwnProperty, 'hasOwnProperty !== true'); 62 assert.sameValue(verifyTimeProp, false, 'verifyTimeProp'); 63 assert.sameValue(verifyNameProp, false, 'verifyNameProp'); 64 assert.sameValue(verifyCallProp, false, 'verifyCallProp'); 65 66 reportCompare(0, 0);