tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

15.2.3.6-4-547-3.js (1569B)


      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-547-3
      6 description: >
      7    ES5 Attributes - Updating a named accessor property 'P' whose
      8    [[Configurable]] attribute is false to a data property does not
      9    succeed, 'A' is an Array object (8.12.9 step 9.a)
     10 includes: [propertyHelper.js]
     11 ---*/
     12 
     13 var obj = [];
     14 
     15 obj.verifySetFunc = "data";
     16 var getFunc = function() {
     17  return obj.verifySetFunc;
     18 };
     19 
     20 var setFunc = function(value) {
     21  obj.verifySetFunc = value;
     22 };
     23 
     24 Object.defineProperty(obj, "prop", {
     25  get: getFunc,
     26  set: setFunc,
     27  enumerable: true,
     28  configurable: false
     29 });
     30 var desc1 = Object.getOwnPropertyDescriptor(obj, "prop");
     31 
     32 try {
     33  Object.defineProperty(obj, "prop", {
     34    value: 1001
     35  });
     36 
     37  throw new Test262Error("Expected an exception.");
     38 } catch (e) {
     39  var desc2 = Object.getOwnPropertyDescriptor(obj, "prop");
     40 
     41  if (!desc1.hasOwnProperty("get")) {
     42    throw new Test262Error('Expected desc1.hasOwnProperty("get") to be true, actually ' + desc1.hasOwnProperty("get"));
     43  }
     44 
     45  if (desc2.hasOwnProperty("value")) {
     46    throw new Test262Error('Expected !desc2.hasOwnProperty("value") to be true, actually ' + !desc2.hasOwnProperty("value"));
     47  }
     48 
     49 
     50  verifyEqualTo(obj, "prop", getFunc());
     51 
     52  verifyWritable(obj, "prop", "verifySetFunc");
     53 
     54  if (!(e instanceof TypeError)) {
     55    throw new Test262Error("Expected TypeError, got " + e);
     56  }
     57 
     58 }
     59 
     60 verifyProperty(obj, "prop", {
     61  enumerable: true,
     62  configurable: false,
     63 });
     64 
     65 reportCompare(0, 0);