diff options
Diffstat (limited to '')
-rw-r--r-- | js/src/tests/test262/built-ins/Object/create/15.2.3.5-4-311.js | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/js/src/tests/test262/built-ins/Object/create/15.2.3.5-4-311.js b/js/src/tests/test262/built-ins/Object/create/15.2.3.5-4-311.js new file mode 100644 index 0000000000..169e7a69b9 --- /dev/null +++ b/js/src/tests/test262/built-ins/Object/create/15.2.3.5-4-311.js @@ -0,0 +1,47 @@ +// 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'); + +reportCompare(0, 0); |