michael@0: // vim: set ts=8 sts=4 et sw=4 tw=99: michael@0: michael@0: function testBadSetElems(obj, key) { michael@0: obj[key] = 5; michael@0: obj[-1] = 5; michael@0: var L = obj; michael@0: L[L] = L; michael@0: obj = []; michael@0: obj.K = 5; michael@0: obj[2] = 5; michael@0: var T = "a"; michael@0: obj[T] = 12; michael@0: obj = []; michael@0: obj[Object] = key; michael@0: } michael@0: michael@0: function testDenseSets(L) { michael@0: var obj = [,,,,,,,,,,]; michael@0: obj[2] = 2; michael@0: assertEq(obj[2], 2); michael@0: var T = L; michael@0: assertEq(obj[T], 2); michael@0: assertEq(obj.length, 10); michael@0: obj[10] = T; michael@0: assertEq(obj[10], T); michael@0: assertEq(obj.length, 11); michael@0: var K = T + 9; michael@0: obj[K] = K; michael@0: assertEq(obj[K], K); michael@0: assertEq(obj.length, 12); michael@0: obj[K + 1] = obj; michael@0: assertEq(obj[K + 1], obj); michael@0: assertEq(obj.length, 13); michael@0: } michael@0: michael@0: for (var i = 0; i < 10; i++) { michael@0: testBadSetElems([], -1); michael@0: testDenseSets(2); michael@0: } michael@0: michael@0: