tor-browser

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

15.2.3.5-4-40.js (903B)


      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.5-4-40
      6 description: >
      7    Object.create - ensure that if an exception is thrown it occurs in
      8    the correct order relative to prior and subsequent side-effects
      9    (15.2.3.7 step 5.a)
     10 ---*/
     11 
     12 var newObj = {};
     13 var props = {};
     14 var i = 0;
     15 
     16 Object.defineProperty(props, "prop1", {
     17  get: function() {
     18    i++;
     19    return {};
     20  },
     21  enumerable: true
     22 });
     23 
     24 Object.defineProperty(props, "prop2", {
     25  get: function() {
     26    if (1 === i++) {
     27      throw new RangeError();
     28    } else {
     29      return {};
     30    }
     31  },
     32  enumerable: true
     33 });
     34 assert.throws(RangeError, function() {
     35  newObj = Object.create({}, props);
     36 });
     37 assert.sameValue(newObj.hasOwnProperty("prop1"), false, 'newObj.hasOwnProperty("prop1")');
     38 assert.sameValue(i, 2, 'i');
     39 
     40 reportCompare(0, 0);