| //------------------------------------------------------------------------------------------------------- |
| // 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) } |
| |