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