| //@ if $jitTests then runDefault("--useLLInt=0") else skip end | |
| const o = {}; | |
| const handler = { | |
| get(target, prop, receiver) { | |
| o.__proto__ = receiver; | |
| }, | |
| has(target, prop) { | |
| o.__proto__ = undefined; | |
| return 1; | |
| } | |
| }; | |
| const p = new Proxy({}, handler); | |
| handler.__proto__ = p; | |
| try { | |
| with (p) { | |
| a = 0 | |
| } | |
| throw new Error("Should throw RangeError"); | |
| } catch (error) { | |
| if (error.message !== "Maximum call stack size exceeded.") | |
| throw new Error("Expected stack overflow, but got: " + error); | |
| } |