diff options
Diffstat (limited to 'js/src/tests/ecma_5/strict/12.14.1.js')
-rw-r--r-- | js/src/tests/ecma_5/strict/12.14.1.js | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/js/src/tests/ecma_5/strict/12.14.1.js b/js/src/tests/ecma_5/strict/12.14.1.js new file mode 100644 index 000000000..e7f9b303b --- /dev/null +++ b/js/src/tests/ecma_5/strict/12.14.1.js @@ -0,0 +1,37 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ + +/* + * Any copyright is dedicated to the Public Domain. + * http://creativecommons.org/licenses/publicdomain/ + */ + +/* + * In strict mode, the identifier bound by a 'catch' clause may not + * be 'eval' or 'arguments'. + */ +assertEq(testLenientAndStrict('try{}catch(eval){}', + parsesSuccessfully, + parseRaisesException(SyntaxError)), + true); +assertEq(testLenientAndStrict('try{}catch([eval]){}', + parsesSuccessfully, + parseRaisesException(SyntaxError)), + true); +assertEq(testLenientAndStrict('try{}catch({x:eval}){}', + parsesSuccessfully, + parseRaisesException(SyntaxError)), + true); +assertEq(testLenientAndStrict('try{}catch(arguments){}', + parsesSuccessfully, + parseRaisesException(SyntaxError)), + true); +assertEq(testLenientAndStrict('try{}catch([arguments]){}', + parsesSuccessfully, + parseRaisesException(SyntaxError)), + true); +assertEq(testLenientAndStrict('try{}catch({x:arguments}){}', + parsesSuccessfully, + parseRaisesException(SyntaxError)), + true); + +reportCompare(true, true); |