// Copyright JS Foundation and other contributors, http://js.foundation // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at // // http://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. function parse(txt) { try { eval(txt) assert(false) } catch (e) { assert(e instanceof SyntaxError) } } parse("for (;;;) print('hello')") parse("for (,,) print('hello')") parse("for (i = 0; i < 10; i++; ) print('i: ' + i)") parse("for (i = 0; i < 10; i++)") parse("for i = 0; i < 10; i++ {}") parse("for (i = 0;; i < 10; i++) {}") parse("for (i = 0; j = 1; i < 10; i++) print('i: '+ i + ' j: ' + j)") parse("for (i = 0 j = 5;i<10 || j<10; i++, j++) {}") parse("for (i = 0, j = 5; i < 10 || j < 10; i++ j++) {}") parse("for (i = 0, j = 5; i < 10 j < 10; i++, j++) {}") var doubleFor = "for (i = 0; i < 5; i++) { "+ " for (j = 0; j < 5; j++) { print('i: ' + i + ' j: ' + j) }"; parse(doubleFor) var doubleFor2 = "for (i = 0; i < 5; i++) { "+ " for (j = 0; j < 5; j++) { print('i: ' + i + ' j: ' + j)"; parse(doubleFor2)