| //------------------------------------------------------------------------------------------------------- | |
| // Copyright (C) Microsoft. All rights reserved. | |
| // Licensed under the MIT license. See LICENSE.txt file in the project root for full license information. | |
| //------------------------------------------------------------------------------------------------------- | |
| const a = 1; | |
| with({a:2}) { | |
| a++; | |
| print(a); // 3 | |
| } | |
| try { | |
| with({b:2}) { | |
| a++; | |
| print(a); | |
| } | |
| } | |
| catch(e) { | |
| print(e); // TypeError: Assignment to const | |
| } | |
| let foo1 = new Function( | |
| "with({a:2}) {" + | |
| " a++;" + | |
| " print(a);" + | |
| "}"); | |
| foo1(); // 3 | |
| let foo2 = new Function( | |
| "with({b:2}) {" + | |
| " a++;" + | |
| " print(a);" + | |
| "}"); | |
| try { | |
| foo2(); | |
| } | |
| catch(e) { | |
| print(e); // TypeError: Assignment to const | |
| } | |
| try { | |
| eval('let b = 3'); | |
| a++; | |
| print(a); | |
| } | |
| catch(e) { | |
| print(e); // TypeError: Assignment to const | |
| } | |
| (function() { | |
| const a = 1; | |
| with({a:2}) { | |
| a++; | |
| print(a); // 3 | |
| } | |
| try { | |
| with({b:2}) { | |
| a++; | |
| print(a); | |
| } | |
| } | |
| catch(e) { | |
| print(e); // TypeError: Assignment to const | |
| } | |
| try { | |
| eval('let b = 3'); | |
| a++; | |
| print(a); | |
| } | |
| catch(e) { | |
| print(e); // TypeError: Assignment to const | |
| } | |
| })(); | |
| function print(x) { WScript.Echo(x) } | |