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 check_syntax_error(code) 16{ 17 try { 18 eval(code) 19 assert(false) 20 } catch (e) { 21 assert(e instanceof SyntaxError) 22 } 23} 24 25function check_strict_syntax_error(code) 26{ 27 "use strict" 28 29 try { 30 eval(code) 31 assert(false) 32 } catch (e) { 33 assert(e instanceof SyntaxError) 34 } 35} 36 37check_syntax_error("d\\u006f {} while (false)") 38check_syntax_error("\\u0076\\u0061\\u0072 var = 5") 39check_syntax_error("wit\\u0068 ({}) {}") 40check_syntax_error("\\u0066alse") 41check_syntax_error("type\\006ff 3.14") 42check_syntax_error("try {} fin\\u0061lly {}") 43check_syntax_error("f\\u0075nction f() {}") 44check_syntax_error("a instanc\\u0065of b") 45 46check_strict_syntax_error("\\u006c\\u0065\\u0074 _let = 5"); 47check_strict_syntax_error("\\u0070rotecte\\u0064"); 48