tor-browser

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

reviver-wrapper.js (1080B)


      1 // Copyright (C) 2019 Alexey Shvayka. All rights reserved.
      2 // This code is governed by the BSD license found in the LICENSE file.
      3 /*---
      4 esid: sec-json.parse
      5 description: >
      6  Wrapper is plain extensible object with single data property.
      7 info: |
      8  JSON.parse ( text [ , reviver ] )
      9 
     10  [...]
     11  7. If IsCallable(reviver) is true, then
     12    a. Let root be ObjectCreate(%Object.prototype%).
     13    b. Let rootName be the empty String.
     14    c. Perform ! CreateDataPropertyOrThrow(root, rootName, unfiltered).
     15 includes: [propertyHelper.js]
     16 ---*/
     17 
     18 Object.defineProperty(Object.prototype, '', {
     19  set: function() {
     20    throw new Test262Error('[[Set]] should not be called.');
     21  },
     22 });
     23 
     24 var wrapper;
     25 JSON.parse('2', function() {
     26  wrapper = this;
     27 });
     28 
     29 assert.sameValue(typeof wrapper, 'object');
     30 assert.sameValue(Object.getPrototypeOf(wrapper), Object.prototype);
     31 assert.sameValue(Object.getOwnPropertyNames(wrapper).length, 1);
     32 assert(Object.isExtensible(wrapper));
     33 
     34 verifyProperty(wrapper, '', {
     35  value: 2,
     36  writable: true,
     37  enumerable: true,
     38  configurable: true,
     39 });
     40 
     41 reportCompare(0, 0);