tor-browser

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

property-order.js (797B)


      1 // Copyright 2019 Kevin Gibbons. All rights reserved.
      2 // This code is governed by the BSD license found in the LICENSE file.
      3 
      4 /*---
      5 esid: sec-serializejsonobject
      6 description: JSON.stringify property enumeration order
      7 features: [for-in-order]
      8 ---*/
      9 
     10 var o = {
     11  p1: 'p1',
     12  p2: 'p2',
     13  p3: 'p3',
     14 };
     15 
     16 // This getter will be triggered during enumeration, but the property it adds should not be enumerated.
     17 Object.defineProperty(o, 'add', {
     18  enumerable: true,
     19  get: function () {
     20    o.extra = 'extra';
     21    return 'add';
     22  }
     23 });
     24 
     25 o.p4 = 'p4';
     26 
     27 o[2] = '2';
     28 o[0] = '0';
     29 o[1] = '1';
     30 
     31 delete o.p1;
     32 delete o.p3;
     33 o.p1 = 'p1';
     34 
     35 var actual = JSON.stringify(o);
     36 
     37 var expected = '{"0":"0","1":"1","2":"2","p2":"p2","add":"add","p4":"p4","p1":"p1"}';
     38 
     39 assert.sameValue(actual, expected);
     40 
     41 reportCompare(0, 0);