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 */ 15 16function check_syntax_error (code) 17{ 18 try { 19 eval (code); 20 assert (false); 21 } catch (e) { 22 assert (e instanceof SyntaxError); 23 } 24} 25 26check_syntax_error ("let a; let b; let a"); 27check_syntax_error ("let a, b, a"); 28check_syntax_error ("var a; let a;"); 29check_syntax_error ("var a; const a = 3;"); 30check_syntax_error ("let a; var a;"); 31check_syntax_error ("const a = 3; var x, y, a;"); 32check_syntax_error ("const a"); 33check_syntax_error ("{ const a }"); 34check_syntax_error ("const a, b"); 35check_syntax_error ("let a; { let b; { var a; } }"); 36check_syntax_error ("{ { var a = 4; } }; let a = 3"); 37check_syntax_error ("function a() {}; let a;"); 38check_syntax_error ("let a; function a() {};"); 39check_syntax_error ("{ { function a() {}; let a; } }"); 40check_syntax_error ("{ { let a; function a() {}; } }"); 41check_syntax_error ("let a = 1; const b = 5; const a = 2;"); 42check_syntax_error ("try {} catch (e) { let e; }"); 43check_syntax_error ("try {} catch (e) { const e = 1; }"); 44check_syntax_error ("let A; class A {}"); 45check_syntax_error ("const A; class A {}"); 46check_syntax_error ("class A {}; let A"); 47check_syntax_error ("class A {}; const A = 1"); 48