|
1 /// Copyright (c) 2012 Ecma International. All rights reserved. |
|
2 /// Ecma International makes this code available under the terms and conditions set |
|
3 /// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the |
|
4 /// "Use Terms"). Any redistribution of this code must retain the above |
|
5 /// copyright and this notice and otherwise comply with the Use Terms. |
|
6 /** |
|
7 * @path ch12/12.14/12.14.1/12.14.1-3-s.js |
|
8 * @description Strict Mode - SyntaxError isn't thrown if a TryStatement with a Catch occurs within strict code and the Identifier of the Catch production is EVAL but throws SyntaxError if it is eval |
|
9 * @onlyStrict |
|
10 */ |
|
11 |
|
12 |
|
13 function testcase() { |
|
14 "use strict"; |
|
15 |
|
16 try{ eval(" try { \ |
|
17 throw new Error(\"...\");\ |
|
18 return false;\ |
|
19 } catch (EVAL) {\ |
|
20 try\ |
|
21 {\ |
|
22 throw new Error(\"...\");\ |
|
23 }catch(eval)\ |
|
24 {\ |
|
25 return EVAL instanceof Error;\ |
|
26 }\ |
|
27 }"); |
|
28 return false; |
|
29 } catch(e) { |
|
30 return e instanceof SyntaxError; |
|
31 } |
|
32 } |
|
33 runTestCase(testcase); |