tor-browser

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

verifyProperty-string-prop.js (1719B)


      1 // Copyright (C) 2017 Leo Balter. All rights reserved.
      2 // This code is governed by the BSD license found in the LICENSE file.
      3 
      4 /*---
      5 description: >
      6  Verify property descriptor
      7 includes: [propertyHelper.js]
      8 ---*/
      9 
     10 var obj;
     11 var prop = 'prop';
     12 
     13 function reset(desc) {
     14  obj = {};
     15  Object.defineProperty(obj, prop, desc);
     16 }
     17 
     18 function checkDesc(desc) {
     19  reset(desc);
     20  assert(verifyProperty(obj, prop, desc));
     21 
     22  reset(desc);
     23  assert(verifyProperty(obj, prop, { enumerable: desc.enumerable }));
     24 
     25  reset(desc);
     26  assert(verifyProperty(obj, prop, { writable: desc.writable }));
     27 
     28  reset(desc);
     29  assert(verifyProperty(obj, prop, { configurable: desc.configurable }));
     30 
     31  reset(desc);
     32  assert(verifyProperty(obj, prop, { configurable: desc.configurable, enumerable: desc.enumerable }));
     33 
     34  reset(desc);
     35  assert(verifyProperty(obj, prop, { configurable: desc.configurable, writable: desc.writable }));
     36 
     37  reset(desc);
     38  assert(verifyProperty(obj, prop, { writable: desc.writable, enumerable: desc.enumerable }));
     39 
     40  reset(desc);
     41  assert(verifyProperty(obj, prop, { enumerable: desc.enumerable, configurable: desc.configurable }));
     42 }
     43 
     44 checkDesc({ enumerable: true, configurable: true, writable: true });
     45 checkDesc({ enumerable: false, writable: false, configurable: false });
     46 checkDesc({ enumerable: true, writable: false, configurable: false });
     47 checkDesc({ enumerable: false, writable: true, configurable: false });
     48 checkDesc({ enumerable: false, writable: false, configurable: true });
     49 checkDesc({ enumerable: true, writable: false, configurable: true });
     50 checkDesc({ enumerable: true, writable: true, configurable: false });
     51 checkDesc({ enumerable: false, writable: true, configurable: true });
     52 
     53 reportCompare(0, 0);