tor-browser

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

replacer-array-undefined.js (885B)


      1 // Copyright (C) 2019 Aleksey Shvayka. All rights reserved.
      2 // This code is governed by the BSD license found in the LICENSE file.
      3 /*---
      4 esid: sec-json.stringify
      5 description: >
      6  Undefined values in replacer array are ignored.
      7 info: |
      8  JSON.stringify ( value [ , replacer [ , space ] ] )
      9 
     10  [...]
     11  4. If Type(replacer) is Object, then
     12    [...]
     13    4. Repeat, while k < len,
     14      a. Let v be ? Get(replacer, ! ToString(k)).
     15      [...]
     16      f. If item is not undefined and item is not currently an element of PropertyList, then
     17        i. Append item to the end of PropertyList.
     18 ---*/
     19 
     20 assert.sameValue(JSON.stringify({undefined: 1}, [undefined]), '{}');
     21 assert.sameValue(JSON.stringify({key: 1, undefined: 2}, [,,,]), '{}');
     22 
     23 var sparse = new Array(3);
     24 sparse[1] = 'key';
     25 
     26 assert.sameValue(
     27  JSON.stringify({undefined: 1, key: 2}, sparse),
     28  '{"key":2}'
     29 );
     30 
     31 reportCompare(0, 0);