| // Copyright (c) 2012 Ecma International. All rights reserved. |
| // This code is governed by the BSD license found in the LICENSE file. |
| |
| /*--- |
| es5id: 15.2.3.5-4-311 |
| description: > |
| Object.create - [[Set]] is set as undefined if it is absent in |
| accessor descriptor of one property in 'Properties' (8.12.9 step |
| 4.b) |
| ---*/ |
| |
| var newObj = Object.create({}, { |
| prop: { |
| get: function() { |
| return "verifyCreate"; |
| }, |
| enumerable: true, |
| configurable: true |
| } |
| }); |
| |
| var desc = Object.getOwnPropertyDescriptor(newObj, "prop"); |
| var verifySet = desc.hasOwnProperty("set") && typeof desc.set === "undefined"; |
| |
| var verifyGet = false; |
| if (newObj.prop === "verifyCreate") { |
| verifyGet = true; |
| } |
| |
| var verifyEnumerable = false; |
| for (var p in newObj) { |
| if (p === "prop") { |
| verifyEnumerable = true; |
| } |
| } |
| |
| var verifyConfigurable = false; |
| var hasProperty = newObj.hasOwnProperty("prop"); |
| delete newObj.prop; |
| verifyConfigurable = !newObj.hasOwnProperty("prop") && hasProperty; |
| |
| assert(verifySet, 'verifySet !== true'); |
| assert(verifyGet, 'verifyGet !== true'); |
| assert(verifyEnumerable, 'verifyEnumerable !== true'); |
| assert(verifyConfigurable, 'verifyConfigurable !== true'); |