| function test(s) { | |
| for (let i = 0; i < 100; i++) { | |
| let threw = false; | |
| try { | |
| let evalString = `try { throw new Error } catch(${s}) { }`; | |
| eval(evalString); | |
| } catch(e) { | |
| threw = e instanceof ReferenceError; | |
| } | |
| if (!threw) | |
| throw new Error("Bad test!"); | |
| } | |
| } | |
| test("{a = a}"); | |
| test("{a = eval('a')}"); | |
| test("{a = eval('a + a')}"); | |
| test("{a = eval('b'), b}"); | |
| test("{a = eval('b + b'), b}"); | |
| test("{a = eval('b + b'), b = 20}"); | |
| test("{a = b+b, b = 20}"); |