summaryrefslogtreecommitdiffstats
path: root/js/src/tests/non262/regress/regress-592556-c35.js
blob: c2ceb4a321213cd56470d9457d4e12798b412cf8 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
// Any copyright is dedicated to the Public Domain.
// http://creativecommons.org/licenses/publicdomain/
// Contributor: Jason Orendorff <jorendorff@mozilla.com>

var obj = {a: 0, b: 1, c: 2};
delete obj.b;  // switch to dictionary mode
Object.defineProperty(obj, 'g',
                      {get: function () { return -1; }, configurable: true});
for (var i = 3; i < 20; i++)
    obj['x' + i] = i;  // get property table
for (var i = 3; i < 20; i++)
    delete obj['x' + i];  // add to freelist
delete obj.g;  // must update lastProp->freeslot, to avoid assertion

// extra junk to try to hit the assertion, if freeslot is not updated
gc();
obj.d = 3;
obj.e = 4;

reportCompare(0, 0, 'ok');