tor-browser

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

15.2.3.7-6-a-147.js (1073B)


      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.7-6-a-147
      6 description: >
      7    Object.defineProperties - 'O' is an Array, 'name' is the length
      8    property of 'O', test using inherited valueOf method when the
      9    [[Value]] field of 'desc' is an Objec with an own toString and
     10    inherited valueOf methods (15.4.5.1 step 3.c)
     11 ---*/
     12 
     13 var arr = [];
     14 var toStringAccessed = false;
     15 var valueOfAccessed = false;
     16 
     17 var proto = {
     18  value: {
     19    valueOf: function() {
     20      valueOfAccessed = true;
     21      return 2;
     22    }
     23  }
     24 };
     25 
     26 var Con = function() {};
     27 Con.prototype = proto;
     28 
     29 var child = new Con();
     30 Object.defineProperty(child, "value", {
     31  value: {
     32    toString: function() {
     33      toStringAccessed = true;
     34      return 3;
     35    }
     36  }
     37 });
     38 
     39 Object.defineProperties(arr, {
     40  length: child
     41 });
     42 
     43 assert.sameValue(arr.length, 3, 'arr.length');
     44 assert(toStringAccessed, 'toStringAccessed !== true');
     45 assert.sameValue(valueOfAccessed, false, 'valueOfAccessed');
     46 
     47 reportCompare(0, 0);