tor-browser

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

15.2.3.6-4-540-7.js (1595B)


      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-540-7
      6 description: >
      7    Object.defineProperty fails to update [[Get]] and [[Set]]
      8    attributes of a named property 'P' whose [[Configurable]]
      9    attribute is false and throws TypeError exception, 'A' is an Array
     10    object (8.12.9 step 11.a)
     11 includes: [propertyHelper.js]
     12 ---*/
     13 
     14 var obj = [];
     15 
     16 obj.verifySetFunction = "data";
     17 var getFunc = function() {
     18  return obj.verifySetFunction;
     19 };
     20 var setFunc = function(value) {
     21  obj.verifySetFunction = value;
     22 };
     23 Object.defineProperty(obj, "prop", {
     24  get: getFunc,
     25  set: setFunc,
     26  configurable: false
     27 });
     28 
     29 var result = false;
     30 try {
     31  Object.defineProperty(obj, "prop", {
     32    get: function() {
     33      return 100;
     34    }
     35  });
     36 } catch (e) {
     37  result = e instanceof TypeError;
     38  verifyEqualTo(obj, "prop", getFunc());
     39 
     40  verifyWritable(obj, "prop", "verifySetFunction");
     41 }
     42 
     43 verifyProperty(obj, "prop", {
     44  enumerable: false,
     45  configurable: false,
     46 });
     47 
     48 try {
     49  Object.defineProperty(obj, "prop", {
     50    set: function(value) {
     51      obj.verifySetFunction1 = value;
     52    }
     53  });
     54 } catch (e1) {
     55  if (!result) {
     56    throw new Test262Error('Expected result to be true, actually ' + result);
     57  }
     58 
     59 
     60  verifyEqualTo(obj, "prop", getFunc());
     61 
     62  verifyWritable(obj, "prop", "verifySetFunction");
     63 
     64  if (!(e1 instanceof TypeError)) {
     65    throw new Test262Error("Expected TypeError, got " + e1);
     66  }
     67 }
     68 
     69 verifyProperty(obj, "prop", {
     70  enumerable: false,
     71  configurable: false,
     72 });
     73 
     74 reportCompare(0, 0);