| //------------------------------------------------------------------------------------------------------- | |
| // Copyright (C) Microsoft. All rights reserved. | |
| // Licensed under the MIT license. See LICENSE.txt file in the project root for full license information. | |
| //------------------------------------------------------------------------------------------------------- | |
| // Tests for ERRDeclOutOfBlock "Const and let must be declared inside of block" | |
| var a = 1; | |
| (function () { | |
| try { eval( | |
| "if (a) \ | |
| let b = 5;" // error | |
| );} catch (e) { WScript.Echo(e); } | |
| try { eval( | |
| "if (a) \ | |
| const b = 5;" // error | |
| );} catch (e) { WScript.Echo(e); } | |
| })(); | |
| (function () { | |
| try { eval( | |
| "if (a) { \ | |
| let c = 3; /* no error */ \ | |
| const x = 42; /* no error */ \ | |
| }" | |
| );} catch (e) { WScript.Echo(e); } | |
| })(); | |
| (function () { | |
| try { eval( | |
| "while (a) \ | |
| let d = 5;" // error | |
| );} catch (e) { WScript.Echo(e); } | |
| try { eval( | |
| "while (a) \ | |
| let d = 5;" // error | |
| );} catch (e) { WScript.Echo(e); } | |
| })(); | |
| (function () { | |
| try { eval( | |
| "while (a) { \ | |
| let e = 10; /* no error */ \ | |
| const y = 10; /* no error */ \ | |
| break; \ | |
| }" | |
| );} catch (e) { WScript.Echo(e); } | |
| })(); | |
| (function () { | |
| try { eval( | |
| "if (a) \ | |
| while (a) \ | |
| if (a) { \ | |
| let x = 3; /* no error */ \ | |
| const z = x; /* no error */ \ | |
| while (a) \ | |
| let f = 5; /* error */ \ | |
| }" | |
| );} catch (e) { WScript.Echo(e); } | |
| })(); | |
| function test() { | |
| if (a) | |
| for (let x in [1]) { /* no error */ | |
| break; | |
| }; | |
| for (var y in [1]) | |
| for (let x in [1]) { /* no error */ | |
| break; | |
| }; | |
| do | |
| for (let x in [1]) { /* no error */ | |
| break; | |
| } | |
| while (!a); | |
| if (a) | |
| for (let x = 0; x < 1; x++) { /* no error */ | |
| break; | |
| }; | |
| for (var y in [1]) | |
| for (let x = 0; x < 1; x++) { /* no error */ | |
| break; | |
| }; | |
| do | |
| for (let x = 0; x < 1; x++) { /* no error */ | |
| break; | |
| } | |
| while (!a); | |
| WScript.Echo('success'); | |
| }; | |
| test(); | |