michael@0: var loop1 = '', loop2 = '', actual = ''; michael@0: michael@0: var obj = {}; michael@0: for (var i = 0; i < 10; i++) { michael@0: obj['a' + i] = i; michael@0: loop1 += i; michael@0: loop2 += 'a' + i; michael@0: } michael@0: michael@0: Object.defineProperty(obj, 'z', {enumerable: true, get: function () { michael@0: for (var y in obj) michael@0: actual += y; michael@0: }}); michael@0: (function() { michael@0: for each (var e in obj) michael@0: actual += e; michael@0: })(); michael@0: michael@0: assertEq(actual, loop1 + loop2 + "z" + "undefined");