Bug 1892041 - Part 2: Update test262. r=spidermonkey-reviewers,dminor
[gecko.git] / js / src / tests / test262 / built-ins / Object / defineProperty / 15.2.3.6-4-538-5.js
blob146f5c421b4ef8ba40106e9516a3e0faf937f367
1 // Copyright (c) 2012 Ecma International.  All rights reserved.
2 // This code is governed by the BSD license found in the LICENSE file.
4 /*---
5 es5id: 15.2.3.6-4-538-5
6 description: >
7     ES5 Attributes - Updating a named accessor property 'P' whose
8     [[Configurable]] attribute is true to a data property is
9     successful, 'A' is an Array object (8.12.9 - step 9.c.i)
10 includes: [propertyHelper.js]
11 ---*/
13 var obj = [];
15 obj.verifySetFunc = "data";
16 var getFunc = function() {
17   return obj.verifySetFunc;
20 var setFunc = function(value) {
21   obj.verifySetFunc = value;
24 Object.defineProperty(obj, "prop", {
25   get: getFunc,
26   set: setFunc,
27   enumerable: true,
28   configurable: true
29 });
30 var desc1 = Object.getOwnPropertyDescriptor(obj, "prop");
32 Object.defineProperty(obj, "prop", {
33   value: 1001
34 });
35 var desc2 = Object.getOwnPropertyDescriptor(obj, "prop");
37 if (!desc1.hasOwnProperty("get")) {
38   throw new Test262Error('Expected desc1.hasOwnProperty("get") to be true, actually ' + desc1.hasOwnProperty("get"));
41 if (!desc2.hasOwnProperty("value")) {
42   throw new Test262Error('Expected desc2.hasOwnProperty("value") to be true, actually ' + desc2.hasOwnProperty("value"));
45 if (typeof desc2.get !== "undefined") {
46   throw new Test262Error('Expected typeof desc2.get === "undefined" , actually ' + typeof desc2.get);
49 if (typeof desc2.set !== "undefined") {
50   throw new Test262Error('Expected typeof desc2.set === "undefined" , actually ' + typeof desc2.set);
54 verifyEqualTo(obj, "prop", 1001);
56 verifyNotWritable(obj, "prop");
58 verifyProperty(obj, "prop", {
59   enumerable: true,
60   configurable: true,
61 });
63 reportCompare(0, 0);