michael@0: try { michael@0: (function() { michael@0: Object.defineProperty(this, "x", { michael@0: get: function() { michael@0: Object.defineProperty(this, "y", { michael@0: configurable: true, michael@0: get: function() { michael@0: return Proxy(this.y) michael@0: } michael@0: }); michael@0: x; michael@0: } michael@0: }) michael@0: })() michael@0: x michael@0: } catch (e) {} michael@0: try { michael@0: x michael@0: } catch (e) {} michael@0: try { michael@0: x michael@0: } catch (e) {} michael@0: try { michael@0: y michael@0: } catch (e) {} michael@0: try { michael@0: y michael@0: } catch (e) {} michael@0: try { michael@0: y michael@0: } catch (e) {}