michael@0: // Test that we can save stacks with getter and setter function frames. michael@0: michael@0: function assertStackLengthEq(stack, expectedLength) { michael@0: let actual = 0; michael@0: while (stack) { michael@0: actual++; michael@0: stack = stack.parent; michael@0: } michael@0: assertEq(actual, expectedLength); michael@0: } michael@0: michael@0: const get = { get s() { return saveStack(); } }.s; michael@0: assertStackLengthEq(get, 2); michael@0: michael@0: let set; michael@0: try { michael@0: ({ michael@0: set s(v) { michael@0: throw saveStack(); michael@0: } michael@0: }).s = 1; michael@0: } catch (s) { michael@0: set = s; michael@0: } michael@0: assertStackLengthEq(set, 2);