michael@0: // Basic getOwnPropertyNames tests. michael@0: michael@0: var g = newGlobal(); michael@0: var dbg = Debugger(); michael@0: var gobj = dbg.addDebuggee(g); michael@0: michael@0: function test(code) { michael@0: code = "(" + code + ");"; michael@0: var expected = Object.getOwnPropertyNames(eval(code)); michael@0: g.eval("obj = " + code); michael@0: var actual = gobj.getOwnPropertyDescriptor("obj").value.getOwnPropertyNames(); michael@0: assertEq(JSON.stringify(actual.sort()), JSON.stringify(expected.sort())); michael@0: } michael@0: michael@0: test("{}"); michael@0: test("{a: 0, b: 1}"); michael@0: test("{'name with space': 0}"); michael@0: test("{get x() {}, set y(v) {}}"); michael@0: test("{get x() { throw 'fit'; }}"); michael@0: test("Object.create({a: 1})"); michael@0: test("Object.create({get a() {}, set a(v) {}})"); michael@0: test("(function () { var x = {a: 0, b: 1}; delete a; return x; })()"); michael@0: test("Object.create(null, {x: {value: 0}})"); michael@0: test("[]"); michael@0: test("[0, 1, 2]"); michael@0: test("[,,,,,]"); michael@0: test("/a*a/"); michael@0: test("function () {}");