tor-browser

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

verifyProperty-symbol-prop.js (1754B)


      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 symbol named property descriptor
      7 includes: [propertyHelper.js]
      8 features: [Symbol]
      9 ---*/
     10 
     11 var obj;
     12 var prop = Symbol(1);
     13 
     14 function reset(desc) {
     15  obj = {};
     16  Object.defineProperty(obj, prop, desc);
     17 }
     18 
     19 function checkDesc(desc) {
     20  reset(desc);
     21  assert(verifyProperty(obj, prop, desc));
     22 
     23  reset(desc);
     24  assert(verifyProperty(obj, prop, { enumerable: desc.enumerable }));
     25 
     26  reset(desc);
     27  assert(verifyProperty(obj, prop, { writable: desc.writable }));
     28 
     29  reset(desc);
     30  assert(verifyProperty(obj, prop, { configurable: desc.configurable }));
     31 
     32  reset(desc);
     33  assert(verifyProperty(obj, prop, { configurable: desc.configurable, enumerable: desc.enumerable }));
     34 
     35  reset(desc);
     36  assert(verifyProperty(obj, prop, { configurable: desc.configurable, writable: desc.writable }));
     37 
     38  reset(desc);
     39  assert(verifyProperty(obj, prop, { writable: desc.writable, enumerable: desc.enumerable }));
     40 
     41  reset(desc);
     42  assert(verifyProperty(obj, prop, { enumerable: desc.enumerable, configurable: desc.configurable }));
     43 }
     44 
     45 checkDesc({ enumerable: true, configurable: true, writable: true });
     46 checkDesc({ enumerable: false, writable: false, configurable: false });
     47 checkDesc({ enumerable: true, writable: false, configurable: false });
     48 checkDesc({ enumerable: false, writable: true, configurable: false });
     49 checkDesc({ enumerable: false, writable: false, configurable: true });
     50 checkDesc({ enumerable: true, writable: false, configurable: true });
     51 checkDesc({ enumerable: true, writable: true, configurable: false });
     52 checkDesc({ enumerable: false, writable: true, configurable: true });
     53 
     54 reportCompare(0, 0);