blob: a1cc85f9ab429b636595b4534d15eae4051104a7 [file] [log] [blame]
keith_miller@apple.combcc77f22016-07-15 06:03:25 +00001// Copyright (c) 2012 Ecma International. All rights reserved.
2// This code is governed by the BSD license found in the LICENSE file.
3
4/*---
5es5id: 15.2.3.6-4-527
6description: >
7 ES5 Attributes - fail to update [[Enumerable]] attribute of
8 accessor property ([[Get]] is a Function, [[Set]] is undefined,
9 [[Enumerable]] is false, [[Configurable]] is false) to different
10 value
11---*/
12
13 var obj = {};
14
15 var getFunc = function () {
16 return 1001;
17 };
18
19 Object.defineProperty(obj, "prop", {
20 get: getFunc,
21 set: undefined,
22 enumerable: false,
23 configurable: false
24 });
25 var result1 = false;
26 var desc1 = Object.getOwnPropertyDescriptor(obj, "prop");
27 for (var p1 in obj) {
28 if (p1 === "prop") {
29 result1 = true;
30 }
31 }
32assert.throws(TypeError, function() {
33 Object.defineProperty(obj, "prop", {
34 enumerable: true
35 });
36});
37 var result2 = false;
38 var desc2 = Object.getOwnPropertyDescriptor(obj, "prop");
39 for (var p2 in obj) {
40 if (p2 === "prop") {
41 result2 = true;
42 }
43 }
44
45assert.sameValue(result1, false, 'result1');
46assert.sameValue(result2, false, 'result2');
47assert.sameValue(desc1.enumerable, false, 'desc1.enumerable');
48assert.sameValue(desc2.enumerable, false, 'desc2.enumerable');