1// Copyright JS Foundation and other contributors, http://js.foundation 2// 3// Licensed under the Apache License, Version 2.0 (the "License"); 4// you may not use this file except in compliance with the License. 5// You may obtain a copy of the License at 6// 7// http://www.apache.org/licenses/LICENSE-2.0 8// 9// Unless required by applicable law or agreed to in writing, software 10// distributed under the License is distributed on an "AS IS" BASIS 11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12// See the License for the specific language governing permissions and 13// limitations under the License. 14 15function parse(txt) { 16 try { 17 eval(txt) 18 assert(false) 19 } catch (e) { 20 assert(e instanceof SyntaxError) 21 } 22} 23 24parse("for (;;;) print('hello')") 25parse("for (,,) print('hello')") 26parse("for (i = 0; i < 10; i++; ) print('i: ' + i)") 27parse("for (i = 0; i < 10; i++)") 28parse("for i = 0; i < 10; i++ {}") 29parse("for (i = 0;; i < 10; i++) {}") 30parse("for (i = 0; j = 1; i < 10; i++) print('i: '+ i + ' j: ' + j)") 31parse("for (i = 0 j = 5;i<10 || j<10; i++, j++) {}") 32parse("for (i = 0, j = 5; i < 10 || j < 10; i++ j++) {}") 33parse("for (i = 0, j = 5; i < 10 j < 10; i++, j++) {}") 34 35var doubleFor = 36"for (i = 0; i < 5; i++) { "+ 37" for (j = 0; j < 5; j++) { print('i: ' + i + ' j: ' + j) }"; 38parse(doubleFor) 39 40var doubleFor2 = 41"for (i = 0; i < 5; i++) { "+ 42" for (j = 0; j < 5; j++) { print('i: ' + i + ' j: ' + j)"; 43parse(doubleFor2) 44