aboutsummaryrefslogtreecommitdiffstats
path: root/website/resources/scripts/testcases2/15.3.2.1.json
diff options
context:
space:
mode:
Diffstat (limited to 'website/resources/scripts/testcases2/15.3.2.1.json')
-rw-r--r--website/resources/scripts/testcases2/15.3.2.1.json92
1 files changed, 92 insertions, 0 deletions
diff --git a/website/resources/scripts/testcases2/15.3.2.1.json b/website/resources/scripts/testcases2/15.3.2.1.json
new file mode 100644
index 000000000..d3853e2df
--- /dev/null
+++ b/website/resources/scripts/testcases2/15.3.2.1.json
@@ -0,0 +1,92 @@
+{
+ "testCollection": {
+ "name": "15.3.2.1",
+ "numTests": 12,
+ "tests": [
+ {
+ "id": "15.3.2.1-11-1-s",
+ "path": "TestCases/chapter15/15.3/15.3.2/15.3.2.1/15.3.2.1-11-1-s.js",
+ "description": "Duplicate seperate parameter name in Function constructor throws SyntaxError in strict mode",
+ "test": "assertTrue((function testcase() { \n try {\n Function('a','a','\"use strict\";');\n return false;\n }\n catch (e) {\n return (e instanceof SyntaxError);\n }\n \n }).call(this));\n",
+ "precondition": "(fnSupportsStrict())",
+ "strict_only": ""
+ },
+ {
+ "id": "15.3.2.1-11-1",
+ "path": "TestCases/chapter15/15.3/15.3.2/15.3.2.1/15.3.2.1-11-1.js",
+ "description": "Duplicate separate parameter name in Function constructor allowed if body not strict",
+ "test": "assertTrue((function testcase()\n{ \n Function('a','a','return;');\n return true;\n }).call(this));\n"
+ },
+ {
+ "id": "15.3.2.1-11-2-s",
+ "path": "TestCases/chapter15/15.3/15.3.2/15.3.2.1/15.3.2.1-11-2-s.js",
+ "description": "Duplicate seperate parameter name in Function constructor called from strict mode allowed if body not strict",
+ "test": "assertTrue((function testcase()\n{ \n \"use strict\"; \n try {\n Function('a','a','return;');\n return true;\n } catch (e) {\n return false;\n }\n }).call(this));\n",
+ "strict_only": ""
+ },
+ {
+ "id": "15.3.2.1-11-3-s",
+ "path": "TestCases/chapter15/15.3/15.3.2/15.3.2.1/15.3.2.1-11-3-s.js",
+ "description": "Function constructor having a formal parameter named 'eval' throws SyntaxError if function body is strict mode",
+ "test": "assertTrue((function testcase() {\n \n\n try {\n Function('eval', '\"use strict\";');\n\treturn false;\n }\n catch (e) {\n return (e instanceof SyntaxError);\n }\n }).call(this));\n",
+ "precondition": "(fnSupportsStrict())",
+ "strict_only": ""
+ },
+ {
+ "id": "15.3.2.1-11-3",
+ "path": "TestCases/chapter15/15.3/15.3.2/15.3.2.1/15.3.2.1-11-3.js",
+ "description": "Function constructor may have a formal parameter named 'eval' if body is not strict mode",
+ "test": "assertTrue((function testcase() {\n Function('eval', 'return;');\n return true;\n }).call(this));\n"
+ },
+ {
+ "id": "15.3.2.1-11-4-s",
+ "path": "TestCases/chapter15/15.3/15.3.2/15.3.2.1/15.3.2.1-11-4-s.js",
+ "description": "Function constructor call from strict code with formal parameter named 'eval' does not throws SyntaxError if function body is not strict mode",
+ "test": "assertTrue((function testcase() {\n \"use strict\";\n try { \n Function('eval', 'return;');\n\t return true;\n } catch (e) {\n return false;\n }\n \n }).call(this));\n",
+ "strict_only": ""
+ },
+ {
+ "id": "15.3.2.1-11-5-s",
+ "path": "TestCases/chapter15/15.3/15.3.2/15.3.2.1/15.3.2.1-11-5-s.js",
+ "description": "Duplicate combined parameter name in Function constructor throws SyntaxError in strict mode",
+ "test": "assertTrue((function testcase()\n{ \n try \n {\n Function('a,a','\"use strict\";');\n\treturn false;\n }\n catch (e) {\n return(e instanceof SyntaxError);\n }\n }).call(this));\n",
+ "precondition": "(fnSupportsStrict())",
+ "strict_only": ""
+ },
+ {
+ "id": "15.3.2.1-11-5",
+ "path": "TestCases/chapter15/15.3/15.3.2/15.3.2.1/15.3.2.1-11-5.js",
+ "description": "Duplicate combined parameter name in Function constructor allowed if body is not strict",
+ "test": "assertTrue((function testcase()\n{ \n Function('a,a','return;');\n return true;\n }).call(this));\n"
+ },
+ {
+ "id": "15.3.2.1-11-6-s",
+ "path": "TestCases/chapter15/15.3/15.3.2/15.3.2.1/15.3.2.1-11-6-s.js",
+ "description": "Duplicate combined parameter name allowed in Function constructor called in strict mode if body not strict",
+ "test": "assertTrue((function testcase()\n{ \n \"use strict\"; \n try {\n Function('a,a','return a;');\n\t return true;\n } catch (e) {\n return false;\n }\n \n }).call(this));\n",
+ "strict_only": ""
+ },
+ {
+ "id": "15.3.2.1-11-7-s",
+ "path": "TestCases/chapter15/15.3/15.3.2/15.3.2.1/15.3.2.1-11-7-s.js",
+ "description": "Function constructor call from strict code with formal parameter named arguments does not throws SyntaxError if function body is not strict mode",
+ "test": "assertTrue((function testcase() {\n \"use strict\";\n try {\n Function('arguments', 'return;');\n return true;\n\t \n } catch (e) {\n return false;\n }\n }).call(this));\n",
+ "strict_only": ""
+ },
+ {
+ "id": "15.3.2.1-11-8-s",
+ "path": "TestCases/chapter15/15.3/15.3.2/15.3.2.1/15.3.2.1-11-8-s.js",
+ "description": "Strict Mode - SyntaxError is not thrown if a function is created using a Function constructor that has two identical parameters, which are separated by a unique parameter name and there is no explicit 'use strict' in the function constructor's body",
+ "test": "assertTrue((function testcase() {\n \"use strict\";\n\n var foo = new Function(\"baz\", \"qux\", \"baz\", \"return 0;\");\n return true;\n\n }).call(this));\n",
+ "strict_only": ""
+ },
+ {
+ "id": "15.3.2.1-11-9-s",
+ "path": "TestCases/chapter15/15.3/15.3.2/15.3.2.1/15.3.2.1-11-9-s.js",
+ "description": "Strict Mode - SyntaxError is thrown if a function is created using the Function constructor that has three identical parameters and there is no explicit 'use strict' in the function constructor's body",
+ "test": "assertTrue((function testcase() {\n \"use strict\";\n\n var foo = new Function(\"baz\", \"baz\", \"baz\", \"return 0;\");\n return true;\n }).call(this));\n",
+ "strict_only": ""
+ }
+ ]
+ }
+}