|
1 // Any copyright is dedicated to the Public Domain. |
|
2 // http://creativecommons.org/licenses/publicdomain/ |
|
3 // Contributor: Jason Orendorff <jorendorff@mozilla.com> |
|
4 |
|
5 var obj = {a: 0, b: 1, c: 2}; |
|
6 delete obj.b; // switch to dictionary mode |
|
7 Object.defineProperty(obj, 'g', |
|
8 {get: function () { return -1; }, configurable: true}); |
|
9 for (var i = 3; i < 20; i++) |
|
10 obj['x' + i] = i; // get property table |
|
11 for (var i = 3; i < 20; i++) |
|
12 delete obj['x' + i]; // add to freelist |
|
13 delete obj.g; // must update lastProp->freeslot, to avoid assertion |
|
14 |
|
15 // extra junk to try to hit the assertion, if freeslot is not updated |
|
16 gc(); |
|
17 obj.d = 3; |
|
18 obj.e = 4; |
|
19 |
|
20 reportCompare(0, 0, 'ok'); |