michael@0: // Copyright 2009 the Sputnik authors. All rights reserved. michael@0: // This code is governed by the BSD license found in the LICENSE file. michael@0: michael@0: /** michael@0: * LineTerminator between return and Identifier_opt yields return without Identifier_opt michael@0: * michael@0: * @path ch12/12.9/S12.9_A2.js michael@0: * @description Checking by using eval, inserting LineTerminator between return and Variable michael@0: */ michael@0: michael@0: //CHECK#1 michael@0: try{ michael@0: if (eval("(function(){var x = 1;return\u000Ax;var y=2;})()") !== undefined) { michael@0: $ERROR("#1: LineTerminator(U-000A) between return and Identifier_opt yields return without Identifier_opt"); michael@0: } michael@0: } catch(e){ michael@0: $ERROR('#1: eval("(function(){var x = 1;return\\u000Ax;var y=2;})()") does not lead to throwing exception'); michael@0: } michael@0: michael@0: michael@0: michael@0: michael@0: //CHECK#2 michael@0: try{ michael@0: if (eval("(function(){var x = 1;return\u000Dx;var y=2;})()") !== undefined) { michael@0: $ERROR("#1: LineTerminator(U-000D) between return and Identifier_opt yields return without Identifier_opt"); michael@0: } michael@0: } catch(e){ michael@0: $ERROR('#2: eval("(function(){var x = 1;return\\u000Dx;var y=2;})()") does not lead to throwing exception'); michael@0: } michael@0: michael@0: michael@0: michael@0: michael@0: //CHECK#3 michael@0: try{ michael@0: if (eval("(function(){var x = 1;return\u2028x;var y=2;})()") !== undefined) { michael@0: $ERROR("#1: LineTerminator(U-2028) between return and Identifier_opt yields return without Identifier_opt"); michael@0: } michael@0: } catch(e){ michael@0: $ERROR('#3: eval("(function(){var x = 1;return\\u2028x;var y=2;})()") does not lead to throwing exception'); michael@0: } michael@0: michael@0: michael@0: michael@0: michael@0: //CHECK#4 michael@0: try{ michael@0: if (eval("(function(){var x =1;return\u2029x;var y=2;})()") !== undefined) { michael@0: $ERROR("#1: LineTerminator(U-2029) between return and Identifier_opt yields return without Identifier_opt"); michael@0: } michael@0: } catch(e){ michael@0: $ERROR('#4: eval("(function(){var x =1;return\\u2029x;var y=2;})()") does not lead to throwing exception'); michael@0: } michael@0: