| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960 |
- //-------------------------------------------------------------------------------------------------------
- // Copyright (C) Microsoft. All rights reserved.
- // Licensed under the MIT license. See LICENSE.txt file in the project root for full license information.
- //-------------------------------------------------------------------------------------------------------
- function print(x) { WScript.Echo(x) }
- let a = 'global';
- for (let a = 'for'; f = function() { a += ' loop' }; ) {
- f();
- print(a);
- break;
- }
- print(a);
- for (let a in this) {
- let f = function() { a = 'for-in loop'; };
- f();
- print(a);
- break;
- }
- print(a);
- try { eval('for (let a = 123 in this) { }'); print('fail'); } catch (e) { print(e); }
- try { eval('for (const a = 123 in this) { }'); print('fail'); } catch (e) { print(e); }
- try { eval('function foo() { for (let a = 123 in this) { } } foo();'); print('fail'); } catch (e) { print(e); }
- try { eval('function foo() { for (const a = 123 in this) { } } foo();'); print('fail'); } catch (e) { print(e); }
- try { eval('function foo() { { for (var a = 123 in []) { } let a; } } foo();'); print('fail'); } catch (e) { print(e); }
- function test3() {
- eval('');
- v2;
- let v1;
- for (let v2; false;) {
- // this var should get a slot before v1 via EnsureScopeSlot
- // to ensure that the slot order is the same as the SlotArray
- var v2 = 0;
- }
- }
- test3();
- // Should allow (implicit) initialization of const in for-in/for-of
- function for_in() {
- for (const x in {a:'a',b:'b'}) {
- WScript.Echo(x);
- }
- }
- for_in();
- function for_of() {
- for (const x of ['a', 'b']) {
- WScript.Echo(x);
- }
- }
- for_of();
- // Should not allow const without initializer in standard for loop header
- try { eval('for (const x; x < 0;) { WScript.Echo(x); }'); } catch (e) { print(e); }
|