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-4.js (1588B)


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