Imported Upstream version 1.0.0
[platform/upstream/js.git] / js / src / tests / ecma_5 / strict / 12.14.1.js
1 /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
2
3 /*
4  * Any copyright is dedicated to the Public Domain.
5  * http://creativecommons.org/licenses/publicdomain/
6  */
7
8 /*
9  * In strict mode, the identifier bound by a 'catch' clause may not
10  * be 'eval' or 'arguments'.
11  */
12 assertEq(testLenientAndStrict('try{}catch(eval){}',
13                               parsesSuccessfully,
14                               parseRaisesException(SyntaxError)),
15          true);
16 assertEq(testLenientAndStrict('try{}catch([eval]){}',
17                               parsesSuccessfully,
18                               parseRaisesException(SyntaxError)),
19          true);
20 assertEq(testLenientAndStrict('try{}catch({x:eval}){}',
21                               parsesSuccessfully,
22                               parseRaisesException(SyntaxError)),
23          true);
24 assertEq(testLenientAndStrict('try{}catch(arguments){}',
25                               parsesSuccessfully,
26                               parseRaisesException(SyntaxError)),
27          true);
28 assertEq(testLenientAndStrict('try{}catch([arguments]){}',
29                               parsesSuccessfully,
30                               parseRaisesException(SyntaxError)),
31          true);
32 assertEq(testLenientAndStrict('try{}catch({x:arguments}){}',
33                               parsesSuccessfully,
34                               parseRaisesException(SyntaxError)),
35          true);
36
37 reportCompare(true, true);