aboutsummaryrefslogtreecommitdiffstats
path: root/website/resources/scripts/testcases2/12.10_The_with_Statement.json
diff options
context:
space:
mode:
Diffstat (limited to 'website/resources/scripts/testcases2/12.10_The_with_Statement.json')
-rw-r--r--website/resources/scripts/testcases2/12.10_The_with_Statement.json968
1 files changed, 968 insertions, 0 deletions
diff --git a/website/resources/scripts/testcases2/12.10_The_with_Statement.json b/website/resources/scripts/testcases2/12.10_The_with_Statement.json
new file mode 100644
index 000000000..6bcfa74ac
--- /dev/null
+++ b/website/resources/scripts/testcases2/12.10_The_with_Statement.json
@@ -0,0 +1,968 @@
+{
+ "testCollection": {
+ "name": "12.10_The_with_Statement",
+ "numTests": 120,
+ "tests": [
+ {
+ "section": "12.10",
+ "description": "Using interation statement within \"with\" statement leading to normal completion",
+ "strict_mode_negative": "",
+ "test": "this.p1 = 1;\nthis.p2 = 2;\nthis.p3 = 3;\nvar result = \"result\";\nvar myObj = {p1: 'a', \n p2: 'b', \n p3: 'c',\n value: 'myObj_value',\n valueOf : function(){return 'obj_valueOf';},\n parseInt : function(){return 'obj_parseInt';},\n NaN : 'obj_NaN',\n Infinity : 'obj_Infinity',\n eval : function(){return 'obj_eval';},\n parseFloat : function(){return 'obj_parseFloat';},\n isNaN : function(){return 'obj_isNaN';},\n isFinite : function(){return 'obj_isFinite';}\n}\nvar del;\nvar st_p1 = \"p1\";\nvar st_p2 = \"p2\";\nvar st_p3 = \"p3\";\nvar st_parseInt = \"parseInt\";\nvar st_NaN = \"NaN\";\nvar st_Infinity = \"Infinity\";\nvar st_eval = \"eval\";\nvar st_parseFloat = \"parseFloat\";\nvar st_isNaN = \"isNaN\";\nvar st_isFinite = \"isFinite\";\n\nwith(myObj){\n do{\n st_p1 = p1;\n st_p2 = p2;\n st_p3 = p3;\n st_parseInt = parseInt;\n st_NaN = NaN;\n st_Infinity = Infinity;\n st_eval = eval;\n st_parseFloat = parseFloat;\n st_isNaN = isNaN;\n st_isFinite = isFinite;\n p1 = 'x1';\n this.p2 = 'x2';\n del = delete p3;\n var p4 = 'x4';\n p5 = 'x5';\n var value = 'value';\n }\n while(false);\n}\n\nif(!(p1 === 1)){\n $ERROR('#1: p1 === 1. Actual: p1 ==='+ p1 );\n}\n\nif(!(p2 === \"x2\")){\n $ERROR('#2: p2 === \"x2\". Actual: p2 ==='+ p2 );\n}\n\nif(!(p3 === 3)){\n $ERROR('#3: p3 === 3. Actual: p3 ==='+ p3 );\n}\n\nif(!(p4 === \"x4\")){\n $ERROR('#4: p4 === \"x4\". Actual: p4 ==='+ p4 );\n}\n\nif(!(p5 === \"x5\")){\n $ERROR('#5: p5 === \"x5\". Actual: p5 ==='+ p5 );\n}\n\nif(!(myObj.p1 === \"x1\")){\n $ERROR('#6: myObj.p1 === \"x1\". Actual: myObj.p1 ==='+ myObj.p1 );\n}\n\nif(!(myObj.p2 === \"b\")){\n $ERROR('#7: myObj.p2 === \"b\". Actual: myObj.p2 ==='+ myObj.p2 );\n}\n\nif(!(myObj.p3 === undefined)){\n $ERROR('#8: myObj.p3 === undefined. Actual: myObj.p3 ==='+ myObj.p3 );\n}\n\nif(!(myObj.p4 === undefined)){\n $ERROR('#9: myObj.p4 === undefined. Actual: myObj.p4 ==='+ myObj.p4 );\n}\n\nif(!(myObj.p5 === undefined)){\n $ERROR('#10: myObj.p5 === undefined. Actual: myObj.p5 ==='+ myObj.p5 );\n}\n\nif(!(st_parseInt !== parseInt)){\n $ERROR('#11: myObj.parseInt !== parseInt');\n}\n\nif(!(st_NaN === \"obj_NaN\")){\n $ERROR('#12: myObj.NaN !== NaN');\n}\n\nif(!(st_Infinity !== Infinity)){\n $ERROR('#13: myObj.Infinity !== Infinity');\n}\n\nif(!(st_eval !== eval)){\n $ERROR('#14: myObj.eval !== eval');\n}\n\nif(!(st_parseFloat !== parseFloat)){\n $ERROR('#15: myObj.parseFloat !== parseFloat');\n}\n\nif(!(st_isNaN !== isNaN)){\n $ERROR('#16: myObj.isNaN !== isNaN');\n}\n\nif(!(st_isFinite !== isFinite)){\n $ERROR('#17: myObj.isFinite !== isFinite');\n}\n\nif(!(value === undefined)){\n $ERROR('#18: value === undefined. Actual: value ==='+ value );\n}\n\nif(!(myObj.value === \"value\")){\n $ERROR('#19: myObj.value === \"value\". Actual: myObj.value ==='+ myObj.value );\n}\n",
+ "id": "S12.10_A1.10_T1",
+ "strict_only": ""
+ },
+ {
+ "section": "12.10",
+ "description": "Using iteration statement within \"with\" statement leading to completion by exception",
+ "strict_mode_negative": "",
+ "test": "this.p1 = 1;\nthis.p2 = 2;\nthis.p3 = 3;\nvar result = \"result\";\nvar myObj = {p1: 'a', \n p2: 'b', \n p3: 'c',\n value: 'myObj_value',\n valueOf : function(){return 'obj_valueOf';},\n parseInt : function(){return 'obj_parseInt';},\n NaN : 'obj_NaN',\n Infinity : 'obj_Infinity',\n eval : function(){return 'obj_eval';},\n parseFloat : function(){return 'obj_parseFloat';},\n isNaN : function(){return 'obj_isNaN';},\n isFinite : function(){return 'obj_isFinite';}\n}\nvar del;\nvar st_p1 = \"p1\";\nvar st_p2 = \"p2\";\nvar st_p3 = \"p3\";\nvar st_parseInt = \"parseInt\";\nvar st_NaN = \"NaN\";\nvar st_Infinity = \"Infinity\";\nvar st_eval = \"eval\";\nvar st_parseFloat = \"parseFloat\";\nvar st_isNaN = \"isNaN\";\nvar st_isFinite = \"isFinite\";\n\ntry {\n with(myObj){\n do{\n st_p1 = p1;\n st_p2 = p2;\n st_p3 = p3;\n st_parseInt = parseInt;\n st_NaN = NaN;\n st_Infinity = Infinity;\n st_eval = eval;\n st_parseFloat = parseFloat;\n st_isNaN = isNaN;\n st_isFinite = isFinite;\n p1 = 'x1';\n this.p2 = 'x2';\n del = delete p3;\n var p4 = 'x4';\n p5 = 'x5';\n var value = 'value';\n throw value;\n }\n while(false);\n }\n} catch(e){\n result = e;\n}\n\nif(!(result === \"value\")){\n $ERROR('#0: result === \"value\". Actual: result ==='+ result );\n}\n\nif(!(p1 === 1)){\n $ERROR('#1: p1 === 1. Actual: p1 ==='+ p1 );\n}\n\nif(!(p2 === \"x2\")){\n $ERROR('#2: p2 === \"x2\". Actual: p2 ==='+ p2 );\n}\n\nif(!(p3 === 3)){\n $ERROR('#3: p3 === 3. Actual: p3 ==='+ p3 );\n}\n\nif(!(p4 === \"x4\")){\n $ERROR('#4: p4 === \"x4\". Actual: p4 ==='+ p4 );\n}\n\nif(!(p5 === \"x5\")){\n $ERROR('#5: p5 === \"x5\". Actual: p5 ==='+ p5 );\n}\n\nif(!(myObj.p1 === \"x1\")){\n $ERROR('#6: myObj.p1 === \"x1\". Actual: myObj.p1 ==='+ myObj.p1 );\n}\n\nif(!(myObj.p2 === \"b\")){\n $ERROR('#7: myObj.p2 === \"b\". Actual: myObj.p2 ==='+ myObj.p2 );\n}\n\nif(!(myObj.p3 === undefined)){\n $ERROR('#8: myObj.p3 === undefined. Actual: myObj.p3 ==='+ myObj.p3 );\n}\n\nif(!(myObj.p4 === undefined)){\n $ERROR('#9: myObj.p4 === undefined. Actual: myObj.p4 ==='+ myObj.p4 );\n}\n\nif(!(myObj.p5 === undefined)){\n $ERROR('#10: myObj.p5 === undefined. Actual: myObj.p5 ==='+ myObj.p5 );\n}\n\nif(!(st_parseInt !== parseInt)){\n $ERROR('#11: myObj.parseInt !== parseInt');\n}\n\nif(!(st_NaN === \"obj_NaN\")){\n $ERROR('#12: myObj.NaN !== NaN');\n}\n\nif(!(st_Infinity !== Infinity)){\n $ERROR('#13: myObj.Infinity !== Infinity');\n}\n\nif(!(st_eval !== eval)){\n $ERROR('#14: myObj.eval !== eval');\n}\n\nif(!(st_parseFloat !== parseFloat)){\n $ERROR('#15: myObj.parseFloat !== parseFloat');\n}\n\nif(!(st_isNaN !== isNaN)){\n $ERROR('#16: myObj.isNaN !== isNaN');\n}\n\nif(!(st_isFinite !== isFinite)){\n $ERROR('#17: myObj.isFinite !== isFinite');\n}\n\nif(!(value === undefined)){\n $ERROR('#18: value === undefined. Actual: value ==='+ value );\n}\n\nif(!(myObj.value === \"value\")){\n $ERROR('#19: myObj.value === \"value\". Actual: myObj.value ==='+ myObj.value );\n}\n",
+ "id": "S12.10_A1.10_T2",
+ "strict_only": ""
+ },
+ {
+ "section": "12.10",
+ "description": "Using iteration statment withing \"with\" statement leading to completion by exception\niteration statement inside with statement - exception completion",
+ "strict_mode_negative": "",
+ "test": "this.p1 = 1;\nthis.p2 = 2;\nthis.p3 = 3;\nvar result = \"result\";\nvar myObj = {p1: 'a', \n p2: 'b', \n p3: 'c',\n value: 'myObj_value',\n valueOf : function(){return 'obj_valueOf';},\n parseInt : function(){return 'obj_parseInt';},\n NaN : 'obj_NaN',\n Infinity : 'obj_Infinity',\n eval : function(){return 'obj_eval';},\n parseFloat : function(){return 'obj_parseFloat';},\n isNaN : function(){return 'obj_isNaN';},\n isFinite : function(){return 'obj_isFinite';}\n}\nvar del;\nvar st_p1 = \"p1\";\nvar st_p2 = \"p2\";\nvar st_p3 = \"p3\";\nvar st_parseInt = \"parseInt\";\nvar st_NaN = \"NaN\";\nvar st_Infinity = \"Infinity\";\nvar st_eval = \"eval\";\nvar st_parseFloat = \"parseFloat\";\nvar st_isNaN = \"isNaN\";\nvar st_isFinite = \"isFinite\";\n\ntry {\n with(myObj){\n do{\n throw value;\n st_p1 = p1;\n st_p2 = p2;\n st_p3 = p3;\n st_parseInt = parseInt;\n st_NaN = NaN;\n st_Infinity = Infinity;\n st_eval = eval;\n st_parseFloat = parseFloat;\n st_isNaN = isNaN;\n st_isFinite = isFinite;\n p1 = 'x1';\n this.p2 = 'x2';\n del = delete p3;\n var p4 = 'x4';\n p5 = 'x5';\n var value = 'value';\n }\n while(false);\n }\n} catch(e){\n result = e;\n}\n\nif(!(result === \"myObj_value\")){\n $ERROR('#0: result === \"myObj_value\". Actual: result ==='+ result );\n}\n\nif(!(p1 === 1)){\n $ERROR('#1: p1 === 1. Actual: p1 ==='+ p1 );\n}\n\nif(!(p2 === 2)){\n $ERROR('#2: p2 === 2. Actual: p2 ==='+ p2 );\n}\n\nif(!(p3 === 3)){\n $ERROR('#3: p3 === 3. Actual: p3 ==='+ p3 );\n}\n\nif(!(p4 === undefined)){\n $ERROR('#4: p4 === undefined. Actual: p4 ==='+ p4 );\n}\n\ntry {\n p5;\n $ERROR('#5: p5 is not defined');\n} catch(e) { \n}\n\nif(!(myObj.p1 === \"a\")){\n $ERROR('#6: myObj.p1 === \"a\". Actual: myObj.p1 ==='+ myObj.p1 );\n}\n\nif(!(myObj.p2 === \"b\")){\n $ERROR('#7: myObj.p2 === \"b\". Actual: myObj.p2 ==='+ myObj.p2 );\n}\n\nif(!(myObj.p3 === \"c\")){\n $ERROR('#8: myObj.p3 === \"c\". Actual: myObj.p3 ==='+ myObj.p3 );\n}\n\nif(!(myObj.p4 === undefined)){\n $ERROR('#9: myObj.p4 === undefined. Actual: myObj.p4 ==='+ myObj.p4 );\n}\n\nif(!(myObj.p5 === undefined)){\n $ERROR('#10: myObj.p5 === undefined. Actual: myObj.p5 ==='+ myObj.p5 );\n}\n\nif(!(st_parseInt === \"parseInt\")){\n $ERROR('#11: myObj.parseInt === \"parseInt\". Actual: myObj.parseInt ==='+ myObj.parseInt );\n}\n\nif(!(st_NaN === \"NaN\")){\n $ERROR('#12: st_NaN === \"NaN\". Actual: st_NaN ==='+ st_NaN );\n}\n\nif(!(st_Infinity === \"Infinity\")){\n $ERROR('#13: st_Infinity === \"Infinity\". Actual: st_Infinity ==='+ st_Infinity );\n}\n\nif(!(st_eval === \"eval\")){\n $ERROR('#14: st_eval === \"eval\". Actual: st_eval ==='+ st_eval );\n}\n\nif(!(st_parseFloat === \"parseFloat\")){\n $ERROR('#15: st_parseFloat === \"parseFloat\". Actual: st_parseFloat ==='+ st_parseFloat );\n}\n\nif(!(st_isNaN === \"isNaN\")){\n $ERROR('#16: st_isNaN === \"isNaN\". Actual: st_isNaN ==='+ st_isNaN );\n}\n\nif(!(st_isFinite === \"isFinite\")){\n $ERROR('#17: st_isFinite === \"isFinite\". Actual: st_isFinite ==='+ st_isFinite );\n}\n\nif(!(value === undefined)){\n $ERROR('#18: value === undefined. Actual: value ==='+ value );\n}\n\nif(!(myObj.value === \"myObj_value\")){\n $ERROR('#19: myObj.value === \"myObj_value\". Actual: myObj.value ==='+ myObj.value );\n}\n",
+ "id": "S12.10_A1.10_T3",
+ "strict_only": ""
+ },
+ {
+ "section": "12.10",
+ "description": "Using iteration statement witthin \"with\" staement leading to completion by break\niteration statement inside with statement - break completion",
+ "strict_mode_negative": "",
+ "test": "this.p1 = 1;\nthis.p2 = 2;\nthis.p3 = 3;\nvar result = \"result\";\nvar myObj = {p1: 'a', \n p2: 'b', \n p3: 'c',\n value: 'myObj_value',\n valueOf : function(){return 'obj_valueOf';},\n parseInt : function(){return 'obj_parseInt';},\n NaN : 'obj_NaN',\n Infinity : 'obj_Infinity',\n eval : function(){return 'obj_eval';},\n parseFloat : function(){return 'obj_parseFloat';},\n isNaN : function(){return 'obj_isNaN';},\n isFinite : function(){return 'obj_isFinite';}\n}\nvar del;\nvar st_p1 = \"p1\";\nvar st_p2 = \"p2\";\nvar st_p3 = \"p3\";\nvar st_parseInt = \"parseInt\";\nvar st_NaN = \"NaN\";\nvar st_Infinity = \"Infinity\";\nvar st_eval = \"eval\";\nvar st_parseFloat = \"parseFloat\";\nvar st_isNaN = \"isNaN\";\nvar st_isFinite = \"isFinite\";\n\nwith(myObj){\n do{\n st_p1 = p1;\n st_p2 = p2;\n st_p3 = p3;\n st_parseInt = parseInt;\n st_NaN = NaN;\n st_Infinity = Infinity;\n st_eval = eval;\n st_parseFloat = parseFloat;\n st_isNaN = isNaN;\n st_isFinite = isFinite;\n p1 = 'x1';\n this.p2 = 'x2';\n del = delete p3;\n var p4 = 'x4';\n p5 = 'x5';\n var value = 'value';\n break;\n }\n while(false);\n}\n\nif(!(p1 === 1)){\n $ERROR('#1: p1 === 1. Actual: p1 ==='+ p1 );\n}\n\nif(!(p2 === \"x2\")){\n $ERROR('#2: p2 === \"x2\". Actual: p2 ==='+ p2 );\n}\n\nif(!(p3 === 3)){\n $ERROR('#3: p3 === 3. Actual: p3 ==='+ p3 );\n}\n\nif(!(p4 === \"x4\")){\n $ERROR('#4: p4 === \"x4\". Actual: p4 ==='+ p4 );\n}\n\nif(!(p5 === \"x5\")){\n $ERROR('#5: p5 === \"x5\". Actual: p5 ==='+ p5 );\n}\n\nif(!(myObj.p1 === \"x1\")){\n $ERROR('#6: myObj.p1 === \"x1\". Actual: myObj.p1 ==='+ myObj.p1 );\n}\n\nif(!(myObj.p2 === \"b\")){\n $ERROR('#7: myObj.p2 === \"b\". Actual: myObj.p2 ==='+ myObj.p2 );\n}\n\nif(!(myObj.p3 === undefined)){\n $ERROR('#8: myObj.p3 === undefined. Actual: myObj.p3 ==='+ myObj.p3 );\n}\n\nif(!(myObj.p4 === undefined)){\n $ERROR('#9: myObj.p4 === undefined. Actual: myObj.p4 ==='+ myObj.p4 );\n}\n\nif(!(myObj.p5 === undefined)){\n $ERROR('#10: myObj.p5 === undefined. Actual: myObj.p5 ==='+ myObj.p5 );\n}\n\nif(!(st_parseInt !== parseInt)){\n $ERROR('#11: myObj.parseInt !== parseInt');\n}\n\nif(!(st_NaN === \"obj_NaN\")){\n $ERROR('#12: myObj.NaN !== NaN');\n}\n\nif(!(st_Infinity !== Infinity)){\n $ERROR('#13: myObj.Infinity !== Infinity');\n}\n\nif(!(st_eval !== eval)){\n $ERROR('#14: myObj.eval !== eval');\n}\n\nif(!(st_parseFloat !== parseFloat)){\n $ERROR('#15: myObj.parseFloat !== parseFloat');\n}\n\nif(!(st_isNaN !== isNaN)){\n $ERROR('#16: myObj.isNaN !== isNaN');\n}\n\nif(!(st_isFinite !== isFinite)){\n $ERROR('#17: myObj.isFinite !== isFinite');\n}\n\nif(!(value === undefined)){\n $ERROR('#18: value === undefined. Actual: value ==='+ value );\n}\n\nif(!(myObj.value === \"value\")){\n $ERROR('#19: myObj.value === \"value\". Actual: myObj.value ==='+ myObj.value );\n}\n",
+ "id": "S12.10_A1.10_T4",
+ "strict_only": ""
+ },
+ {
+ "section": "12.10",
+ "description": "Using iteration statement within \"with\" statement leading to completion by break",
+ "strict_mode_negative": "",
+ "test": "this.p1 = 1;\nthis.p2 = 2;\nthis.p3 = 3;\nvar result = \"result\";\nvar myObj = {p1: 'a', \n p2: 'b', \n p3: 'c',\n value: 'myObj_value',\n valueOf : function(){return 'obj_valueOf';},\n parseInt : function(){return 'obj_parseInt';},\n NaN : 'obj_NaN',\n Infinity : 'obj_Infinity',\n eval : function(){return 'obj_eval';},\n parseFloat : function(){return 'obj_parseFloat';},\n isNaN : function(){return 'obj_isNaN';},\n isFinite : function(){return 'obj_isFinite';}\n}\nvar del;\nvar st_p1 = \"p1\";\nvar st_p2 = \"p2\";\nvar st_p3 = \"p3\";\nvar st_parseInt = \"parseInt\";\nvar st_NaN = \"NaN\";\nvar st_Infinity = \"Infinity\";\nvar st_eval = \"eval\";\nvar st_parseFloat = \"parseFloat\";\nvar st_isNaN = \"isNaN\";\nvar st_isFinite = \"isFinite\";\n\nwith(myObj){\n do{\n break;\n st_p1 = p1;\n st_p2 = p2;\n st_p3 = p3;\n st_parseInt = parseInt;\n st_NaN = NaN;\n st_Infinity = Infinity;\n st_eval = eval;\n st_parseFloat = parseFloat;\n st_isNaN = isNaN;\n st_isFinite = isFinite;\n p1 = 'x1';\n this.p2 = 'x2';\n del = delete p3;\n var p4 = 'x4';\n p5 = 'x5';\n var value = 'value';\n }\n while(false);\n}\n\nif(!(p1 === 1)){\n $ERROR('#1: p1 === 1. Actual: p1 ==='+ p1 );\n}\n\nif(!(p2 === 2)){\n $ERROR('#2: p2 === 2. Actual: p2 ==='+ p2 );\n}\n\nif(!(p3 === 3)){\n $ERROR('#3: p3 === 3. Actual: p3 ==='+ p3 );\n}\n\nif(!(p4 === undefined)){\n $ERROR('#4: p4 === undefined. Actual: p4 ==='+ p4 );\n}\n\ntry {\n p5;\n $ERROR('#5: p5 is not defined');\n} catch(e) { \n}\n\nif(!(myObj.p1 === \"a\")){\n $ERROR('#6: myObj.p1 === \"a\". Actual: myObj.p1 ==='+ myObj.p1 );\n}\n\nif(!(myObj.p2 === \"b\")){\n $ERROR('#7: myObj.p2 === \"b\". Actual: myObj.p2 ==='+ myObj.p2 );\n}\n\nif(!(myObj.p3 === \"c\")){\n $ERROR('#8: myObj.p3 === \"c\". Actual: myObj.p3 ==='+ myObj.p3 );\n}\n\nif(!(myObj.p4 === undefined)){\n $ERROR('#9: myObj.p4 === undefined. Actual: myObj.p4 ==='+ myObj.p4 );\n}\n\nif(!(myObj.p5 === undefined)){\n $ERROR('#10: myObj.p5 === undefined. Actual: myObj.p5 ==='+ myObj.p5 );\n}\n\nif(!(st_parseInt === \"parseInt\")){\n $ERROR('#11: myObj.parseInt === \"parseInt\". Actual: myObj.parseInt ==='+ myObj.parseInt );\n}\n\nif(!(st_NaN === \"NaN\")){\n $ERROR('#12: st_NaN === \"NaN\". Actual: st_NaN ==='+ st_NaN );\n}\n\nif(!(st_Infinity === \"Infinity\")){\n $ERROR('#13: st_Infinity === \"Infinity\". Actual: st_Infinity ==='+ st_Infinity );\n}\n\nif(!(st_eval === \"eval\")){\n $ERROR('#14: st_eval === \"eval\". Actual: st_eval ==='+ st_eval );\n}\n\nif(!(st_parseFloat === \"parseFloat\")){\n $ERROR('#15: st_parseFloat === \"parseFloat\". Actual: st_parseFloat ==='+ st_parseFloat );\n}\n\nif(!(st_isNaN === \"isNaN\")){\n $ERROR('#16: st_isNaN === \"isNaN\". Actual: st_isNaN ==='+ st_isNaN );\n}\n\nif(!(st_isFinite === \"isFinite\")){\n $ERROR('#17: st_isFinite === \"isFinite\". Actual: st_isFinite ==='+ st_isFinite );\n}\n\nif(!(value === undefined)){\n $ERROR('#18: value === undefined. Actual: value ==='+ value );\n}\n\nif(!(myObj.value === \"myObj_value\")){\n $ERROR('#19: myObj.value === \"myObj_value\". Actual: myObj.value ==='+ myObj.value );\n}\n",
+ "id": "S12.10_A1.10_T5",
+ "strict_only": ""
+ },
+ {
+ "section": "12.10",
+ "description": "Calling a function within \"with\" statement declared without the statement, leading to normal completion",
+ "strict_mode_negative": "",
+ "test": "this.p1 = 1;\nthis.p2 = 2;\nthis.p3 = 3;\nvar result = \"result\";\nvar myObj = {p1: 'a', \n p2: 'b', \n p3: 'c',\n value: 'myObj_value',\n valueOf : function(){return 'obj_valueOf';},\n parseInt : function(){return 'obj_parseInt';},\n NaN : 'obj_NaN',\n Infinity : 'obj_Infinity',\n eval : function(){return 'obj_eval';},\n parseFloat : function(){return 'obj_parseFloat';},\n isNaN : function(){return 'obj_isNaN';},\n isFinite : function(){return 'obj_isFinite';}\n}\nvar del;\nvar st_p1 = \"p1\";\nvar st_p2 = \"p2\";\nvar st_p3 = \"p3\";\nvar st_parseInt = \"parseInt\";\nvar st_NaN = \"NaN\";\nvar st_Infinity = \"Infinity\";\nvar st_eval = \"eval\";\nvar st_parseFloat = \"parseFloat\";\nvar st_isNaN = \"isNaN\";\nvar st_isFinite = \"isFinite\";\n\nvar f = function(){\n st_p1 = p1;\n st_p2 = p2;\n st_p3 = p3;\n st_parseInt = parseInt;\n st_NaN = NaN;\n st_Infinity = Infinity;\n st_eval = eval;\n st_parseFloat = parseFloat;\n st_isNaN = isNaN;\n st_isFinite = isFinite;\n p1 = 'x1';\n this.p2 = 'x2';\n del = delete p3;\n var p4 = 'x4';\n p5 = 'x5';\n var value = 'value';\n}\n\nwith(myObj){\n f();\n}\n\nif(!(p1 === \"x1\")){\n $ERROR('#1: p1 === \"x1\". Actual: p1 ==='+ p1 );\n}\n\nif(!(p2 === \"x2\")){\n $ERROR('#2: p2 === \"x2\". Actual: p2 ==='+ p2 );\n}\n\ntry{\n p3;\n $ERROR('#3: p3 is nod defined');\n}\ncatch(e){\n}\n\ntry {\n p4;\n $ERROR('#4: p4 is not defined');\n} catch(e) { \n}\n\nif(!(p5 === \"x5\")){\n $ERROR('#5: p5 === \"x5\". Actual: p5 ==='+ p5 );\n}\n\nif(!(myObj.p1 === \"a\")){\n $ERROR('#6: myObj.p1 === \"a\". Actual: myObj.p1 ==='+ myObj.p1 );\n}\n\nif(!(myObj.p2 === \"b\")){\n $ERROR('#7: myObj.p2 === \"b\". Actual: myObj.p2 ==='+ myObj.p2 );\n}\n\nif(!(myObj.p3 === \"c\")){\n $ERROR('#8: myObj.p3 === \"c\". Actual: myObj.p3 ==='+ myObj.p3 );\n}\n\nif(!(myObj.p4 === undefined)){\n $ERROR('#9: myObj.p4 === undefined. Actual: myObj.p4 ==='+ myObj.p4 );\n}\n\nif(!(myObj.p5 === undefined)){\n $ERROR('#10: myObj.p5 === undefined. Actual: myObj.p5 ==='+ myObj.p5 );\n}\n\nif(!(st_parseInt === parseInt)){\n $ERROR('#11: st_parseInt === parseInt. Actual: st_parseInt ==='+ st_parseInt );\n}\n\nif(!isNaN(st_NaN)){\n $ERROR('#12: st_NaN === NaN. Actual: st_NaN ==='+ st_NaN );\n}\n\nif(!(st_Infinity === Infinity)){\n $ERROR('#13: st_Infinity === Infinity. Actual: st_Infinity ==='+ st_Infinity );\n}\n\nif(!(st_eval === eval)){\n $ERROR('#14: st_eval === eval. Actual: st_eval ==='+ st_eval );\n}\n\nif(!(st_parseFloat === parseFloat)){\n $ERROR('#15: st_parseFloat === parseFloat. Actual: st_parseFloat ==='+ st_parseFloat );\n}\n\nif(!(st_isNaN === isNaN)){\n $ERROR('#16: st_isNaN === isNaN. Actual: st_isNaN ==='+ st_isNaN );\n}\n\nif(!(st_isFinite === isFinite)){\n $ERROR('#17: st_isFinite === isFinite. Actual: st_isFinite ==='+ st_isFinite );\n}\n\ntry {\n value;\n $ERROR('#18: value is not defined');\n} catch(e) { \n}\n\nif(!(myObj.value === \"myObj_value\")){\n $ERROR('#19: myObj.value === \"myObj_value\". Actual: myObj.value ==='+ myObj.value );\n}\n",
+ "id": "S12.10_A1.11_T1",
+ "strict_only": ""
+ },
+ {
+ "section": "12.10",
+ "description": "Calling a function within \"with\" statement declared without the statement, leading to normal completion by \"return\"",
+ "strict_mode_negative": "",
+ "test": "this.p1 = 1;\nthis.p2 = 2;\nthis.p3 = 3;\nvar result = \"result\";\nvar myObj = {p1: 'a', \n p2: 'b', \n p3: 'c',\n value: 'myObj_value',\n valueOf : function(){return 'obj_valueOf';},\n parseInt : function(){return 'obj_parseInt';},\n NaN : 'obj_NaN',\n Infinity : 'obj_Infinity',\n eval : function(){return 'obj_eval';},\n parseFloat : function(){return 'obj_parseFloat';},\n isNaN : function(){return 'obj_isNaN';},\n isFinite : function(){return 'obj_isFinite';}\n}\nvar del;\nvar st_p1 = \"p1\";\nvar st_p2 = \"p2\";\nvar st_p3 = \"p3\";\nvar st_parseInt = \"parseInt\";\nvar st_NaN = \"NaN\";\nvar st_Infinity = \"Infinity\";\nvar st_eval = \"eval\";\nvar st_parseFloat = \"parseFloat\";\nvar st_isNaN = \"isNaN\";\nvar st_isFinite = \"isFinite\";\n\nvar f = function(){\n st_p1 = p1;\n st_p2 = p2;\n st_p3 = p3;\n st_parseInt = parseInt;\n st_NaN = NaN;\n st_Infinity = Infinity;\n st_eval = eval;\n st_parseFloat = parseFloat;\n st_isNaN = isNaN;\n st_isFinite = isFinite;\n p1 = 'x1';\n this.p2 = 'x2';\n del = delete p3;\n var p4 = 'x4';\n p5 = 'x5';\n var value = 'value';\n return value;\n}\n\nwith(myObj){\n result = f();\n}\n\nif(!(result === \"value\")){\n $ERROR('#0: result === \"value\". Actual: result ==='+ result );\n}\n\nif(!(p1 === \"x1\")){\n $ERROR('#1: p1 === \"x1\". Actual: p1 ==='+ p1 );\n}\n\nif(!(p2 === \"x2\")){\n $ERROR('#2: p2 === \"x2\". Actual: p2 ==='+ p2 );\n}\n\ntry{\n p3;\n $ERROR('#3: p3 is nod defined');\n}\ncatch(e){\n}\n\ntry {\n p4;\n $ERROR('#4: p4 is not defined');\n} catch(e) { \n}\n\nif(!(p5 === \"x5\")){\n $ERROR('#5: p5 === \"x5\". Actual: p5 ==='+ p5 );\n}\n\nif(!(myObj.p1 === \"a\")){\n $ERROR('#6: myObj.p1 === \"a\". Actual: myObj.p1 ==='+ myObj.p1 );\n}\n\nif(!(myObj.p2 === \"b\")){\n $ERROR('#7: myObj.p2 === \"b\". Actual: myObj.p2 ==='+ myObj.p2 );\n}\n\nif(!(myObj.p3 === \"c\")){\n $ERROR('#8: myObj.p3 === \"c\". Actual: myObj.p3 ==='+ myObj.p3 );\n}\n\nif(!(myObj.p4 === undefined)){\n $ERROR('#9: myObj.p4 === undefined. Actual: myObj.p4 ==='+ myObj.p4 );\n}\n\nif(!(myObj.p5 === undefined)){\n $ERROR('#10: myObj.p5 === undefined. Actual: myObj.p5 ==='+ myObj.p5 );\n}\n\nif(!(st_parseInt === parseInt)){\n $ERROR('#11: st_parseInt === parseInt. Actual: st_parseInt ==='+ st_parseInt );\n}\n\nif(!isNaN(st_NaN)){\n $ERROR('#12: st_NaN === NaN. Actual: st_NaN ==='+ st_NaN );\n}\n\nif(!(st_Infinity === Infinity)){\n $ERROR('#13: st_Infinity === Infinity. Actual: st_Infinity ==='+ st_Infinity );\n}\n\nif(!(st_eval === eval)){\n $ERROR('#14: st_eval === eval. Actual: st_eval ==='+ st_eval );\n}\n\nif(!(st_parseFloat === parseFloat)){\n $ERROR('#15: st_parseFloat === parseFloat. Actual: st_parseFloat ==='+ st_parseFloat );\n}\n\nif(!(st_isNaN === isNaN)){\n $ERROR('#16: st_isNaN === isNaN. Actual: st_isNaN ==='+ st_isNaN );\n}\n\nif(!(st_isFinite === isFinite)){\n $ERROR('#17: st_isFinite === isFinite. Actual: st_isFinite ==='+ st_isFinite );\n}\n\ntry {\n value;\n $ERROR('#18: value is not defined');\n} catch(e) { \n}\n\nif(!(myObj.value === \"myObj_value\")){\n $ERROR('#19: myObj.value === \"myObj_value\". Actual: myObj.value ==='+ myObj.value );\n}\n",
+ "id": "S12.10_A1.11_T2",
+ "strict_only": ""
+ },
+ {
+ "section": "12.10",
+ "description": "Calling a function within \"with\" statement declared without the statement, leading to normal completion by \"return\"",
+ "strict_mode_negative": "",
+ "test": "this.p1 = 1;\nthis.p2 = 2;\nthis.p3 = 3;\nvar result = \"result\";\nvar myObj = {p1: 'a', \n p2: 'b', \n p3: 'c',\n value: 'myObj_value',\n valueOf : function(){return 'obj_valueOf';},\n parseInt : function(){return 'obj_parseInt';},\n NaN : 'obj_NaN',\n Infinity : 'obj_Infinity',\n eval : function(){return 'obj_eval';},\n parseFloat : function(){return 'obj_parseFloat';},\n isNaN : function(){return 'obj_isNaN';},\n isFinite : function(){return 'obj_isFinite';}\n}\nvar del;\nvar st_p1 = \"p1\";\nvar st_p2 = \"p2\";\nvar st_p3 = \"p3\";\nvar st_parseInt = \"parseInt\";\nvar st_NaN = \"NaN\";\nvar st_Infinity = \"Infinity\";\nvar st_eval = \"eval\";\nvar st_parseFloat = \"parseFloat\";\nvar st_isNaN = \"isNaN\";\nvar st_isFinite = \"isFinite\";\n\nvar f = function(){\n return value;\n st_p1 = p1;\n st_p2 = p2;\n st_p3 = p3;\n st_parseInt = parseInt;\n st_NaN = NaN;\n st_Infinity = Infinity;\n st_eval = eval;\n st_parseFloat = parseFloat;\n st_isNaN = isNaN;\n st_isFinite = isFinite;\n p1 = 'x1';\n this.p2 = 'x2';\n del = delete p3;\n var p4 = 'x4';\n p5 = 'x5';\n var value = 'value';\n}\n\nwith(myObj){\n result = f();\n}\n\nif(!(result === undefined)){\n $ERROR('#0: result === undefined. Actual: result ==='+ result );\n}\n\nif(!(p1 === 1)){\n $ERROR('#1: p1 === 1. Actual: p1 ==='+ p1 );\n}\n\nif(!(p2 === 2)){\n $ERROR('#2: p2 === 2. Actual: p2 ==='+ p2 );\n}\n\nif(!(p3 === 3)){\n $ERROR('#3: p3 === 3. Actual: p3 ==='+ p3 );\n}\n\ntry{\n p4;\n $ERROR('#4: p4 doesn\\'t exists');\n}\ncatch(e){\n}\n\ntry {\n p5;\n $ERROR('#5: p5 is not defined');\n} catch(e) { \n}\n\nif(!(myObj.p1 === \"a\")){\n $ERROR('#6: myObj.p1 === \"a\". Actual: myObj.p1 ==='+ myObj.p1 );\n}\n\nif(!(myObj.p2 === \"b\")){\n $ERROR('#7: myObj.p2 === \"b\". Actual: myObj.p2 ==='+ myObj.p2 );\n}\n\nif(!(myObj.p3 === \"c\")){\n $ERROR('#8: myObj.p3 === \"c\". Actual: myObj.p3 ==='+ myObj.p3 );\n}\n\nif(!(myObj.p4 === undefined)){\n $ERROR('#9: myObj.p4 === undefined. Actual: myObj.p4 ==='+ myObj.p4 );\n}\n\nif(!(myObj.p5 === undefined)){\n $ERROR('#10: myObj.p5 === undefined. Actual: myObj.p5 ==='+ myObj.p5 );\n}\n\nif(!(st_parseInt === \"parseInt\")){\n $ERROR('#11: myObj.parseInt === \"parseInt\". Actual: myObj.parseInt ==='+ myObj.parseInt );\n}\n\nif(!(st_NaN === \"NaN\")){\n $ERROR('#12: st_NaN === \"NaN\". Actual: st_NaN ==='+ st_NaN );\n}\n\nif(!(st_Infinity === \"Infinity\")){\n $ERROR('#13: st_Infinity === \"Infinity\". Actual: st_Infinity ==='+ st_Infinity );\n}\n\nif(!(st_eval === \"eval\")){\n $ERROR('#14: st_eval === \"eval\". Actual: st_eval ==='+ st_eval );\n}\n\nif(!(st_parseFloat === \"parseFloat\")){\n $ERROR('#15: st_parseFloat === \"parseFloat\". Actual: st_parseFloat ==='+ st_parseFloat );\n}\n\nif(!(st_isNaN === \"isNaN\")){\n $ERROR('#16: st_isNaN === \"isNaN\". Actual: st_isNaN ==='+ st_isNaN );\n}\n\nif(!(st_isFinite === \"isFinite\")){\n $ERROR('#17: st_isFinite === \"isFinite\". Actual: st_isFinite ==='+ st_isFinite );\n}\n\ntry {\n value;\n $ERROR('#18: value is not defined');\n} catch(e) { \n}\n\nif(!(myObj.value === \"myObj_value\")){\n $ERROR('#19: myObj.value === \"myObj_value\". Actual: myObj.value ==='+ myObj.value );\n}\n",
+ "id": "S12.10_A1.11_T3",
+ "strict_only": ""
+ },
+ {
+ "section": "12.10",
+ "description": "Calling a function within \"with\" statement declared without the statement, leading to completion by exception",
+ "strict_mode_negative": "",
+ "test": "this.p1 = 1;\nthis.p2 = 2;\nthis.p3 = 3;\nvar result = \"result\";\nvar myObj = {p1: 'a', \n p2: 'b', \n p3: 'c',\n value: 'myObj_value',\n valueOf : function(){return 'obj_valueOf';},\n parseInt : function(){return 'obj_parseInt';},\n NaN : 'obj_NaN',\n Infinity : 'obj_Infinity',\n eval : function(){return 'obj_eval';},\n parseFloat : function(){return 'obj_parseFloat';},\n isNaN : function(){return 'obj_isNaN';},\n isFinite : function(){return 'obj_isFinite';}\n}\nvar del;\nvar st_p1 = \"p1\";\nvar st_p2 = \"p2\";\nvar st_p3 = \"p3\";\nvar st_parseInt = \"parseInt\";\nvar st_NaN = \"NaN\";\nvar st_Infinity = \"Infinity\";\nvar st_eval = \"eval\";\nvar st_parseFloat = \"parseFloat\";\nvar st_isNaN = \"isNaN\";\nvar st_isFinite = \"isFinite\";\n\ntry {\n var f = function(){\n st_p1 = p1;\n st_p2 = p2;\n st_p3 = p3;\n st_parseInt = parseInt;\n st_NaN = NaN;\n st_Infinity = Infinity;\n st_eval = eval;\n st_parseFloat = parseFloat;\n st_isNaN = isNaN;\n st_isFinite = isFinite;\n p1 = 'x1';\n this.p2 = 'x2';\n del = delete p3;\n var p4 = 'x4';\n p5 = 'x5';\n var value = 'value';\n throw value;\n }\n with(myObj){\n f();\n }\n} catch(e){\n result = e;\n}\n\nif(!(result === \"value\")){\n $ERROR('#0: result === \"value\". Actual: result ==='+ result );\n}\n\nif(!(p1 === \"x1\")){\n $ERROR('#1: p1 === \"x1\". Actual: p1 ==='+ p1 );\n}\n\nif(!(p2 === \"x2\")){\n $ERROR('#2: p2 === \"x2\". Actual: p2 ==='+ p2 );\n}\n\ntry{\n p3;\n $ERROR('#3: p3 is nod defined');\n}\ncatch(e){\n}\n\ntry {\n p4;\n $ERROR('#4: p4 is not defined');\n} catch(e) { \n}\n\nif(!(p5 === \"x5\")){\n $ERROR('#5: p5 === \"x5\". Actual: p5 ==='+ p5 );\n}\n\nif(!(myObj.p1 === \"a\")){\n $ERROR('#6: myObj.p1 === \"a\". Actual: myObj.p1 ==='+ myObj.p1 );\n}\n\nif(!(myObj.p2 === \"b\")){\n $ERROR('#7: myObj.p2 === \"b\". Actual: myObj.p2 ==='+ myObj.p2 );\n}\n\nif(!(myObj.p3 === \"c\")){\n $ERROR('#8: myObj.p3 === \"c\". Actual: myObj.p3 ==='+ myObj.p3 );\n}\n\nif(!(myObj.p4 === undefined)){\n $ERROR('#9: myObj.p4 === undefined. Actual: myObj.p4 ==='+ myObj.p4 );\n}\n\nif(!(myObj.p5 === undefined)){\n $ERROR('#10: myObj.p5 === undefined. Actual: myObj.p5 ==='+ myObj.p5 );\n}\n\nif(!(st_parseInt === parseInt)){\n $ERROR('#11: st_parseInt === parseInt. Actual: st_parseInt ==='+ st_parseInt );\n}\n\nif(!isNaN(st_NaN)){\n $ERROR('#12: st_NaN === NaN. Actual: st_NaN ==='+ st_NaN );\n}\n\nif(!(st_Infinity === Infinity)){\n $ERROR('#13: st_Infinity === Infinity. Actual: st_Infinity ==='+ st_Infinity );\n}\n\nif(!(st_eval === eval)){\n $ERROR('#14: st_eval === eval. Actual: st_eval ==='+ st_eval );\n}\n\nif(!(st_parseFloat === parseFloat)){\n $ERROR('#15: st_parseFloat === parseFloat. Actual: st_parseFloat ==='+ st_parseFloat );\n}\n\nif(!(st_isNaN === isNaN)){\n $ERROR('#16: st_isNaN === isNaN. Actual: st_isNaN ==='+ st_isNaN );\n}\n\nif(!(st_isFinite === isFinite)){\n $ERROR('#17: st_isFinite === isFinite. Actual: st_isFinite ==='+ st_isFinite );\n}\n\ntry {\n value;\n $ERROR('#18: value is not defined');\n} catch(e) { \n}\n\nif(!(myObj.value === \"myObj_value\")){\n $ERROR('#19: myObj.value === \"myObj_value\". Actual: myObj.value ==='+ myObj.value );\n}\n",
+ "id": "S12.10_A1.11_T4",
+ "strict_only": ""
+ },
+ {
+ "section": "12.10",
+ "description": "Calling a function within \"with\" statement declared without the statement, leading to completion by exception",
+ "strict_mode_negative": "",
+ "test": "this.p1 = 1;\nthis.p2 = 2;\nthis.p3 = 3;\nvar result = \"result\";\nvar myObj = {p1: 'a', \n p2: 'b', \n p3: 'c',\n value: 'myObj_value',\n valueOf : function(){return 'obj_valueOf';},\n parseInt : function(){return 'obj_parseInt';},\n NaN : 'obj_NaN',\n Infinity : 'obj_Infinity',\n eval : function(){return 'obj_eval';},\n parseFloat : function(){return 'obj_parseFloat';},\n isNaN : function(){return 'obj_isNaN';},\n isFinite : function(){return 'obj_isFinite';}\n}\nvar del;\nvar st_p1 = \"p1\";\nvar st_p2 = \"p2\";\nvar st_p3 = \"p3\";\nvar st_parseInt = \"parseInt\";\nvar st_NaN = \"NaN\";\nvar st_Infinity = \"Infinity\";\nvar st_eval = \"eval\";\nvar st_parseFloat = \"parseFloat\";\nvar st_isNaN = \"isNaN\";\nvar st_isFinite = \"isFinite\";\n\ntry {\n var f = function(){\n throw value;\n st_p1 = p1;\n st_p2 = p2;\n st_p3 = p3;\n st_parseInt = parseInt;\n st_NaN = NaN;\n st_Infinity = Infinity;\n st_eval = eval;\n st_parseFloat = parseFloat;\n st_isNaN = isNaN;\n st_isFinite = isFinite;\n p1 = 'x1';\n this.p2 = 'x2';\n del = delete p3;\n var p4 = 'x4';\n p5 = 'x5';\n var value = 'value';\n }\n with(myObj){\n f();\n }\n} catch(e){\n result = e;\n}\n\nif(!(result === undefined)){\n $ERROR('#0: result === undefined. Actual: result ==='+ result );\n}\n\nif(!(p1 === 1)){\n $ERROR('#1: p1 === 1. Actual: p1 ==='+ p1 );\n}\n\nif(!(p2 === 2)){\n $ERROR('#2: p2 === 2. Actual: p2 ==='+ p2 );\n}\n\nif(!(p3 === 3)){\n $ERROR('#3: p3 === 3. Actual: p3 ==='+ p3 );\n}\n\ntry{\n p4;\n $ERROR('#4: p4 doesn\\'t exists');\n}\ncatch(e){\n}\n\ntry {\n p5;\n $ERROR('#5: p5 is not defined');\n} catch(e) { \n}\n\nif(!(myObj.p1 === \"a\")){\n $ERROR('#6: myObj.p1 === \"a\". Actual: myObj.p1 ==='+ myObj.p1 );\n}\n\nif(!(myObj.p2 === \"b\")){\n $ERROR('#7: myObj.p2 === \"b\". Actual: myObj.p2 ==='+ myObj.p2 );\n}\n\nif(!(myObj.p3 === \"c\")){\n $ERROR('#8: myObj.p3 === \"c\". Actual: myObj.p3 ==='+ myObj.p3 );\n}\n\nif(!(myObj.p4 === undefined)){\n $ERROR('#9: myObj.p4 === undefined. Actual: myObj.p4 ==='+ myObj.p4 );\n}\n\nif(!(myObj.p5 === undefined)){\n $ERROR('#10: myObj.p5 === undefined. Actual: myObj.p5 ==='+ myObj.p5 );\n}\n\nif(!(st_parseInt === \"parseInt\")){\n $ERROR('#11: myObj.parseInt === \"parseInt\". Actual: myObj.parseInt ==='+ myObj.parseInt );\n}\n\nif(!(st_NaN === \"NaN\")){\n $ERROR('#12: st_NaN === \"NaN\". Actual: st_NaN ==='+ st_NaN );\n}\n\nif(!(st_Infinity === \"Infinity\")){\n $ERROR('#13: st_Infinity === \"Infinity\". Actual: st_Infinity ==='+ st_Infinity );\n}\n\nif(!(st_eval === \"eval\")){\n $ERROR('#14: st_eval === \"eval\". Actual: st_eval ==='+ st_eval );\n}\n\nif(!(st_parseFloat === \"parseFloat\")){\n $ERROR('#15: st_parseFloat === \"parseFloat\". Actual: st_parseFloat ==='+ st_parseFloat );\n}\n\nif(!(st_isNaN === \"isNaN\")){\n $ERROR('#16: st_isNaN === \"isNaN\". Actual: st_isNaN ==='+ st_isNaN );\n}\n\nif(!(st_isFinite === \"isFinite\")){\n $ERROR('#17: st_isFinite === \"isFinite\". Actual: st_isFinite ==='+ st_isFinite );\n}\n\ntry {\n value;\n $ERROR('#18: value is not defined');\n} catch(e) { \n}\n\nif(!(myObj.value === \"myObj_value\")){\n $ERROR('#19: myObj.value === \"myObj_value\". Actual: myObj.value ==='+ myObj.value );\n}\n",
+ "id": "S12.10_A1.11_T5",
+ "strict_only": ""
+ },
+ {
+ "section": "12.10",
+ "description": "Calling a function without \"with\" statement declared within the statement, leading to normal completion",
+ "strict_mode_negative": "",
+ "test": "this.p1 = 1;\nthis.p2 = 2;\nthis.p3 = 3;\nvar result = \"result\";\nvar myObj = {p1: 'a', \n p2: 'b', \n p3: 'c',\n value: 'myObj_value',\n valueOf : function(){return 'obj_valueOf';},\n parseInt : function(){return 'obj_parseInt';},\n NaN : 'obj_NaN',\n Infinity : 'obj_Infinity',\n eval : function(){return 'obj_eval';},\n parseFloat : function(){return 'obj_parseFloat';},\n isNaN : function(){return 'obj_isNaN';},\n isFinite : function(){return 'obj_isFinite';}\n}\nvar del;\nvar st_p1 = \"p1\";\nvar st_p2 = \"p2\";\nvar st_p3 = \"p3\";\nvar st_parseInt = \"parseInt\";\nvar st_NaN = \"NaN\";\nvar st_Infinity = \"Infinity\";\nvar st_eval = \"eval\";\nvar st_parseFloat = \"parseFloat\";\nvar st_isNaN = \"isNaN\";\nvar st_isFinite = \"isFinite\";\n\nwith(myObj){\n var f = function(){\n st_p1 = p1;\n st_p2 = p2;\n st_p3 = p3;\n st_parseInt = parseInt;\n st_NaN = NaN;\n st_Infinity = Infinity;\n st_eval = eval;\n st_parseFloat = parseFloat;\n st_isNaN = isNaN;\n st_isFinite = isFinite;\n p1 = 'x1';\n this.p2 = 'x2';\n del = delete p3;\n var p4 = 'x4';\n p5 = 'x5';\n var value = 'value';\n }\n}\nf();\n\nif(!(p1 === 1)){\n $ERROR('#1: p1 === 1. Actual: p1 ==='+ p1 );\n}\n\nif(!(p2 === \"x2\")){\n $ERROR('#2: p2 === \"x2\". Actual: p2 ==='+ p2 );\n}\n\nif(!(p3 === 3)){\n $ERROR('#3: p3 === 3. Actual: p3 ==='+ p3 );\n}\n\ntry{\n p4;\n $ERROR('#4: p4 doesn\\'t exists');\n}\ncatch(e){\n}\n\nif(!(p5 === \"x5\")){\n $ERROR('#5: p5 === \"x5\". Actual: p5 ==='+ p5 );\n}\n\nif(!(myObj.p1 === \"x1\")){\n $ERROR('#6: myObj.p1 === \"x1\". Actual: myObj.p1 ==='+ myObj.p1 );\n}\n\nif(!(myObj.p2 === \"b\")){\n $ERROR('#7: myObj.p2 === \"b\". Actual: myObj.p2 ==='+ myObj.p2 );\n}\n\nif(!(myObj.p3 === undefined)){\n $ERROR('#8: myObj.p3 === undefined. Actual: myObj.p3 ==='+ myObj.p3 );\n}\n\nif(!(myObj.p4 === undefined)){\n $ERROR('#9: myObj.p4 === undefined. Actual: myObj.p4 ==='+ myObj.p4 );\n}\n\nif(!(myObj.p5 === undefined)){\n $ERROR('#10: myObj.p5 === undefined. Actual: myObj.p5 ==='+ myObj.p5 );\n}\n\nif(!(st_parseInt !== parseInt)){\n $ERROR('#11: myObj.parseInt !== parseInt');\n}\n\nif(!(st_NaN === \"obj_NaN\")){\n $ERROR('#12: myObj.NaN !== NaN');\n}\n\nif(!(st_Infinity !== Infinity)){\n $ERROR('#13: myObj.Infinity !== Infinity');\n}\n\nif(!(st_eval !== eval)){\n $ERROR('#14: myObj.eval !== eval');\n}\n\nif(!(st_parseFloat !== parseFloat)){\n $ERROR('#15: myObj.parseFloat !== parseFloat');\n}\n\nif(!(st_isNaN !== isNaN)){\n $ERROR('#16: myObj.isNaN !== isNaN');\n}\n\nif(!(st_isFinite !== isFinite)){\n $ERROR('#17: myObj.isFinite !== isFinite');\n}\n\ntry {\n value;\n $ERROR('#18: value is not defined');\n} catch(e) { \n}\n\nif(!(myObj.value === \"myObj_value\")){\n $ERROR('#19: myObj.value === \"myObj_value\". Actual: myObj.value ==='+ myObj.value );\n}\n",
+ "id": "S12.10_A1.12_T1",
+ "strict_only": ""
+ },
+ {
+ "section": "12.10",
+ "description": "Calling a function without \"with\" statement declared within the statement, leading to normal completion by \"return\"",
+ "strict_mode_negative": "",
+ "test": "this.p1 = 1;\nthis.p2 = 2;\nthis.p3 = 3;\nvar result = \"result\";\nvar myObj = {p1: 'a', \n p2: 'b', \n p3: 'c',\n value: 'myObj_value',\n valueOf : function(){return 'obj_valueOf';},\n parseInt : function(){return 'obj_parseInt';},\n NaN : 'obj_NaN',\n Infinity : 'obj_Infinity',\n eval : function(){return 'obj_eval';},\n parseFloat : function(){return 'obj_parseFloat';},\n isNaN : function(){return 'obj_isNaN';},\n isFinite : function(){return 'obj_isFinite';}\n}\nvar del;\nvar st_p1 = \"p1\";\nvar st_p2 = \"p2\";\nvar st_p3 = \"p3\";\nvar st_parseInt = \"parseInt\";\nvar st_NaN = \"NaN\";\nvar st_Infinity = \"Infinity\";\nvar st_eval = \"eval\";\nvar st_parseFloat = \"parseFloat\";\nvar st_isNaN = \"isNaN\";\nvar st_isFinite = \"isFinite\";\n\nwith(myObj){\n var f = function(){\n st_p1 = p1;\n st_p2 = p2;\n st_p3 = p3;\n st_parseInt = parseInt;\n st_NaN = NaN;\n st_Infinity = Infinity;\n st_eval = eval;\n st_parseFloat = parseFloat;\n st_isNaN = isNaN;\n st_isFinite = isFinite;\n p1 = 'x1';\n this.p2 = 'x2';\n del = delete p3;\n var p4 = 'x4';\n p5 = 'x5';\n var value = 'value';\n return value;\n }\n}\nresult = f();\n\nif(!(result === \"value\")){\n $ERROR('#0: result === \"value\". Actual: result ==='+ result );\n}\n\nif(!(p1 === 1)){\n $ERROR('#1: p1 === 1. Actual: p1 ==='+ p1 );\n}\n\nif(!(p2 === \"x2\")){\n $ERROR('#2: p2 === \"x2\". Actual: p2 ==='+ p2 );\n}\n\nif(!(p3 === 3)){\n $ERROR('#3: p3 === 3. Actual: p3 ==='+ p3 );\n}\n\ntry{\n p4;\n $ERROR('#4: p4 doesn\\'t exists');\n}\ncatch(e){\n}\n\nif(!(p5 === \"x5\")){\n $ERROR('#5: p5 === \"x5\". Actual: p5 ==='+ p5 );\n}\n\nif(!(myObj.p1 === \"x1\")){\n $ERROR('#6: myObj.p1 === \"x1\". Actual: myObj.p1 ==='+ myObj.p1 );\n}\n\nif(!(myObj.p2 === \"b\")){\n $ERROR('#7: myObj.p2 === \"b\". Actual: myObj.p2 ==='+ myObj.p2 );\n}\n\nif(!(myObj.p3 === undefined)){\n $ERROR('#8: myObj.p3 === undefined. Actual: myObj.p3 ==='+ myObj.p3 );\n}\n\nif(!(myObj.p4 === undefined)){\n $ERROR('#9: myObj.p4 === undefined. Actual: myObj.p4 ==='+ myObj.p4 );\n}\n\nif(!(myObj.p5 === undefined)){\n $ERROR('#10: myObj.p5 === undefined. Actual: myObj.p5 ==='+ myObj.p5 );\n}\n\nif(!(st_parseInt !== parseInt)){\n $ERROR('#11: myObj.parseInt !== parseInt');\n}\n\nif(!(st_NaN === \"obj_NaN\")){\n $ERROR('#12: myObj.NaN !== NaN');\n}\n\nif(!(st_Infinity !== Infinity)){\n $ERROR('#13: myObj.Infinity !== Infinity');\n}\n\nif(!(st_eval !== eval)){\n $ERROR('#14: myObj.eval !== eval');\n}\n\nif(!(st_parseFloat !== parseFloat)){\n $ERROR('#15: myObj.parseFloat !== parseFloat');\n}\n\nif(!(st_isNaN !== isNaN)){\n $ERROR('#16: myObj.isNaN !== isNaN');\n}\n\nif(!(st_isFinite !== isFinite)){\n $ERROR('#17: myObj.isFinite !== isFinite');\n}\n\ntry{\n value;\n $ERROR('#18: value is not defined');\n}\ncatch(e){\n}\n\nif(!(myObj.value === \"myObj_value\")){\n $ERROR('#19: myObj.value === \"myObj_value\". Actual: myObj.value ==='+ myObj.value );\n}\n",
+ "id": "S12.10_A1.12_T2",
+ "strict_only": ""
+ },
+ {
+ "section": "12.10",
+ "description": "Calling a function without \"with\" statement declared within the statement, leading to normal completion by \"return\"",
+ "strict_mode_negative": "",
+ "test": "this.p1 = 1;\nthis.p2 = 2;\nthis.p3 = 3;\nvar result = \"result\";\nvar myObj = {p1: 'a', \n p2: 'b', \n p3: 'c',\n value: 'myObj_value',\n valueOf : function(){return 'obj_valueOf';},\n parseInt : function(){return 'obj_parseInt';},\n NaN : 'obj_NaN',\n Infinity : 'obj_Infinity',\n eval : function(){return 'obj_eval';},\n parseFloat : function(){return 'obj_parseFloat';},\n isNaN : function(){return 'obj_isNaN';},\n isFinite : function(){return 'obj_isFinite';}\n}\nvar del;\nvar st_p1 = \"p1\";\nvar st_p2 = \"p2\";\nvar st_p3 = \"p3\";\nvar st_parseInt = \"parseInt\";\nvar st_NaN = \"NaN\";\nvar st_Infinity = \"Infinity\";\nvar st_eval = \"eval\";\nvar st_parseFloat = \"parseFloat\";\nvar st_isNaN = \"isNaN\";\nvar st_isFinite = \"isFinite\";\n\nwith(myObj){\n var f = function(){\n return value;\n st_p1 = p1;\n st_p2 = p2;\n st_p3 = p3;\n st_parseInt = parseInt;\n st_NaN = NaN;\n st_Infinity = Infinity;\n st_eval = eval;\n st_parseFloat = parseFloat;\n st_isNaN = isNaN;\n st_isFinite = isFinite;\n p1 = 'x1';\n this.p2 = 'x2';\n del = delete p3;\n var p4 = 'x4';\n p5 = 'x5';\n var value = 'value';\n }\n}\nresult = f();\n\nif(!(result === undefined)){\n $ERROR('#0: result === undefined. Actual: result ==='+ result );\n}\n\nif(!(p1 === 1)){\n $ERROR('#1: p1 === 1. Actual: p1 ==='+ p1 );\n}\n\nif(!(p2 === 2)){\n $ERROR('#2: p2 === 2. Actual: p2 ==='+ p2 );\n}\n\nif(!(p3 === 3)){\n $ERROR('#3: p3 === 3. Actual: p3 ==='+ p3 );\n}\n\ntry {\n p4;\n $ERROR('#4: p4 is not defined');\n} catch(e) { \n}\n\ntry {\n p5;\n $ERROR('#5: p5 is not defined');\n} catch(e) { \n}\n\nif(!(myObj.p1 === \"a\")){\n $ERROR('#6: myObj.p1 === \"a\". Actual: myObj.p1 ==='+ myObj.p1 );\n}\n\nif(!(myObj.p2 === \"b\")){\n $ERROR('#7: myObj.p2 === \"b\". Actual: myObj.p2 ==='+ myObj.p2 );\n}\n\nif(!(myObj.p3 === \"c\")){\n $ERROR('#8: myObj.p3 === \"c\". Actual: myObj.p3 ==='+ myObj.p3 );\n}\n\nif(!(myObj.p4 === undefined)){\n $ERROR('#9: myObj.p4 === undefined. Actual: myObj.p4 ==='+ myObj.p4 );\n}\n\nif(!(myObj.p5 === undefined)){\n $ERROR('#10: myObj.p5 === undefined. Actual: myObj.p5 ==='+ myObj.p5 );\n}\n\nif(!(st_parseInt === \"parseInt\")){\n $ERROR('#11: myObj.parseInt === \"parseInt\". Actual: myObj.parseInt ==='+ myObj.parseInt );\n}\n\nif(!(st_NaN === \"NaN\")){\n $ERROR('#12: st_NaN === \"NaN\". Actual: st_NaN ==='+ st_NaN );\n}\n\nif(!(st_Infinity === \"Infinity\")){\n $ERROR('#13: st_Infinity === \"Infinity\". Actual: st_Infinity ==='+ st_Infinity );\n}\n\nif(!(st_eval === \"eval\")){\n $ERROR('#14: st_eval === \"eval\". Actual: st_eval ==='+ st_eval );\n}\n\nif(!(st_parseFloat === \"parseFloat\")){\n $ERROR('#15: st_parseFloat === \"parseFloat\". Actual: st_parseFloat ==='+ st_parseFloat );\n}\n\nif(!(st_isNaN === \"isNaN\")){\n $ERROR('#16: st_isNaN === \"isNaN\". Actual: st_isNaN ==='+ st_isNaN );\n}\n\nif(!(st_isFinite === \"isFinite\")){\n $ERROR('#17: st_isFinite === \"isFinite\". Actual: st_isFinite ==='+ st_isFinite );\n}\n\ntry{\n value;\n $ERROR('#18: value is not defined');\n}\ncatch(e){\n}\n\nif(!(myObj.value === \"myObj_value\")){\n $ERROR('#19: myObj.value === \"myObj_value\". Actual: myObj.value ==='+ myObj.value );\n}\n\n",
+ "id": "S12.10_A1.12_T3",
+ "strict_only": ""
+ },
+ {
+ "section": "12.10",
+ "description": "Calling a function without \"with\" statement declared within the statement, leading to completion by exception",
+ "strict_mode_negative": "",
+ "test": "this.p1 = 1;\nthis.p2 = 2;\nthis.p3 = 3;\nvar result = \"result\";\nvar myObj = {p1: 'a', \n p2: 'b', \n p3: 'c',\n value: 'myObj_value',\n valueOf : function(){return 'obj_valueOf';},\n parseInt : function(){return 'obj_parseInt';},\n NaN : 'obj_NaN',\n Infinity : 'obj_Infinity',\n eval : function(){return 'obj_eval';},\n parseFloat : function(){return 'obj_parseFloat';},\n isNaN : function(){return 'obj_isNaN';},\n isFinite : function(){return 'obj_isFinite';}\n}\nvar del;\nvar st_p1 = \"p1\";\nvar st_p2 = \"p2\";\nvar st_p3 = \"p3\";\nvar st_parseInt = \"parseInt\";\nvar st_NaN = \"NaN\";\nvar st_Infinity = \"Infinity\";\nvar st_eval = \"eval\";\nvar st_parseFloat = \"parseFloat\";\nvar st_isNaN = \"isNaN\";\nvar st_isFinite = \"isFinite\";\n\ntry {\n with(myObj){\n var f = function(){\n st_p1 = p1;\n st_p2 = p2;\n st_p3 = p3;\n st_parseInt = parseInt;\n st_NaN = NaN;\n st_Infinity = Infinity;\n st_eval = eval;\n st_parseFloat = parseFloat;\n st_isNaN = isNaN;\n st_isFinite = isFinite;\n p1 = 'x1';\n this.p2 = 'x2';\n del = delete p3;\n var p4 = 'x4';\n p5 = 'x5';\n var value = 'value';\n throw value;\n }\n }\n f();\n} catch(e){\n result = e;\n}\n\nif(!(result === \"value\")){\n $ERROR('#0: result === \"value\". Actual: result ==='+ result );\n}\n\nif(!(p1 === 1)){\n $ERROR('#1: p1 === 1. Actual: p1 ==='+ p1 );\n}\n\nif(!(p2 === \"x2\")){\n $ERROR('#2: p2 === \"x2\". Actual: p2 ==='+ p2 );\n}\n\nif(!(p3 === 3)){\n $ERROR('#3: p3 === 3. Actual: p3 ==='+ p3 );\n}\n\ntry {\n p4;\n $ERROR('#4: p4 is not defined');\n} catch(e) { \n}\n\nif(!(p5 === \"x5\")){\n $ERROR('#5: p5 === \"x5\". Actual: p5 ==='+ p5 );\n}\n\nif(!(myObj.p1 === \"x1\")){\n $ERROR('#6: myObj.p1 === \"x1\". Actual: myObj.p1 ==='+ myObj.p1 );\n}\n\nif(!(myObj.p2 === \"b\")){\n $ERROR('#7: myObj.p2 === \"b\". Actual: myObj.p2 ==='+ myObj.p2 );\n}\n\nif(!(myObj.p3 === undefined)){\n $ERROR('#8: myObj.p3 === undefined. Actual: myObj.p3 ==='+ myObj.p3 );\n}\n\nif(!(myObj.p4 === undefined)){\n $ERROR('#9: myObj.p4 === undefined. Actual: myObj.p4 ==='+ myObj.p4 );\n}\n\nif(!(myObj.p5 === undefined)){\n $ERROR('#10: myObj.p5 === undefined. Actual: myObj.p5 ==='+ myObj.p5 );\n}\n\nif(!(st_parseInt !== parseInt)){\n $ERROR('#11: myObj.parseInt !== parseInt');\n}\n\nif(!(st_NaN === \"obj_NaN\")){\n $ERROR('#12: myObj.NaN !== NaN');\n}\n\nif(!(st_Infinity !== Infinity)){\n $ERROR('#13: myObj.Infinity !== Infinity');\n}\n\nif(!(st_eval !== eval)){\n $ERROR('#14: myObj.eval !== eval');\n}\n\nif(!(st_parseFloat !== parseFloat)){\n $ERROR('#15: myObj.parseFloat !== parseFloat');\n}\n\nif(!(st_isNaN !== isNaN)){\n $ERROR('#16: myObj.isNaN !== isNaN');\n}\n\nif(!(st_isFinite !== isFinite)){\n $ERROR('#17: myObj.isFinite !== isFinite');\n}\n\ntry {\n value;\n $ERROR('#18: value is not defined');\n} catch(e) { \n}\n\nif(!(myObj.value === \"myObj_value\")){\n $ERROR('#19: myObj.value === \"myObj_value\". Actual: myObj.value ==='+ myObj.value );\n}\n",
+ "id": "S12.10_A1.12_T4",
+ "strict_only": ""
+ },
+ {
+ "section": "12.10",
+ "description": "Calling a function without \"with\" statement declared within the statement, leading to completion by exception",
+ "strict_mode_negative": "",
+ "test": "this.p1 = 1;\nthis.p2 = 2;\nthis.p3 = 3;\nvar result = \"result\";\nvar myObj = {p1: 'a', \n p2: 'b', \n p3: 'c',\n value: 'myObj_value',\n valueOf : function(){return 'obj_valueOf';},\n parseInt : function(){return 'obj_parseInt';},\n NaN : 'obj_NaN',\n Infinity : 'obj_Infinity',\n eval : function(){return 'obj_eval';},\n parseFloat : function(){return 'obj_parseFloat';},\n isNaN : function(){return 'obj_isNaN';},\n isFinite : function(){return 'obj_isFinite';}\n}\nvar del;\nvar st_p1 = \"p1\";\nvar st_p2 = \"p2\";\nvar st_p3 = \"p3\";\nvar st_parseInt = \"parseInt\";\nvar st_NaN = \"NaN\";\nvar st_Infinity = \"Infinity\";\nvar st_eval = \"eval\";\nvar st_parseFloat = \"parseFloat\";\nvar st_isNaN = \"isNaN\";\nvar st_isFinite = \"isFinite\";\n\ntry {\n with(myObj){\n var f = function(){\n throw value;\n st_p1 = p1;\n st_p2 = p2;\n st_p3 = p3;\n st_parseInt = parseInt;\n st_NaN = NaN;\n st_Infinity = Infinity;\n st_eval = eval;\n st_parseFloat = parseFloat;\n st_isNaN = isNaN;\n st_isFinite = isFinite;\n p1 = 'x1';\n this.p2 = 'x2';\n del = delete p3;\n var p4 = 'x4';\n p5 = 'x5';\n var value = 'value';\n }\n }\n f();\n} catch(e){\n result = e;\n}\n\nif(!(result === undefined)){\n $ERROR('#0: result === undefined. Actual: result ==='+ result );\n}\n\nif(!(p1 === 1)){\n $ERROR('#1: p1 === 1. Actual: p1 ==='+ p1 );\n}\n\nif(!(p2 === 2)){\n $ERROR('#2: p2 === 2. Actual: p2 ==='+ p2 );\n}\n\nif(!(p3 === 3)){\n $ERROR('#3: p3 === 3. Actual: p3 ==='+ p3 );\n}\n\ntry {\n p4;\n $ERROR('#4: p4 is not defined');\n} catch(e) { \n}\n\ntry {\n p5;\n $ERROR('#5: p5 is not defined');\n} catch(e) { \n}\n\nif(!(myObj.p1 === \"a\")){\n $ERROR('#6: myObj.p1 === \"a\". Actual: myObj.p1 ==='+ myObj.p1 );\n}\n\nif(!(myObj.p2 === \"b\")){\n $ERROR('#7: myObj.p2 === \"b\". Actual: myObj.p2 ==='+ myObj.p2 );\n}\n\nif(!(myObj.p3 === \"c\")){\n $ERROR('#8: myObj.p3 === \"c\". Actual: myObj.p3 ==='+ myObj.p3 );\n}\n\nif(!(myObj.p4 === undefined)){\n $ERROR('#9: myObj.p4 === undefined. Actual: myObj.p4 ==='+ myObj.p4 );\n}\n\nif(!(myObj.p5 === undefined)){\n $ERROR('#10: myObj.p5 === undefined. Actual: myObj.p5 ==='+ myObj.p5 );\n}\n\nif(!(st_parseInt === \"parseInt\")){\n $ERROR('#11: myObj.parseInt === \"parseInt\". Actual: myObj.parseInt ==='+ myObj.parseInt );\n}\n\nif(!(st_NaN === \"NaN\")){\n $ERROR('#12: st_NaN === \"NaN\". Actual: st_NaN ==='+ st_NaN );\n}\n\nif(!(st_Infinity === \"Infinity\")){\n $ERROR('#13: st_Infinity === \"Infinity\". Actual: st_Infinity ==='+ st_Infinity );\n}\n\nif(!(st_eval === \"eval\")){\n $ERROR('#14: st_eval === \"eval\". Actual: st_eval ==='+ st_eval );\n}\n\nif(!(st_parseFloat === \"parseFloat\")){\n $ERROR('#15: st_parseFloat === \"parseFloat\". Actual: st_parseFloat ==='+ st_parseFloat );\n}\n\nif(!(st_isNaN === \"isNaN\")){\n $ERROR('#16: st_isNaN === \"isNaN\". Actual: st_isNaN ==='+ st_isNaN );\n}\n\nif(!(st_isFinite === \"isFinite\")){\n $ERROR('#17: st_isFinite === \"isFinite\". Actual: st_isFinite ==='+ st_isFinite );\n}\n\ntry{\n value;\n $ERROR('#18: value is not defined');\n}\ncatch(e){\n}\n\nif(!(myObj.value === \"myObj_value\")){\n $ERROR('#19: myObj.value === \"myObj_value\". Actual: myObj.value ==='+ myObj.value );\n}\n\n",
+ "id": "S12.10_A1.12_T5",
+ "strict_only": ""
+ },
+ {
+ "section": "12.10",
+ "description": "Using \"with\" inside of global context leading to normal completion",
+ "strict_mode_negative": "",
+ "test": "this.p1 = 1;\nthis.p2 = 2;\nthis.p3 = 3;\nvar result = \"result\";\nvar myObj = {p1: 'a', \n p2: 'b', \n p3: 'c',\n value: 'myObj_value',\n valueOf : function(){return 'obj_valueOf';},\n parseInt : function(){return 'obj_parseInt';},\n NaN : 'obj_NaN',\n Infinity : 'obj_Infinity',\n eval : function(){return 'obj_eval';},\n parseFloat : function(){return 'obj_parseFloat';},\n isNaN : function(){return 'obj_isNaN';},\n isFinite : function(){return 'obj_isFinite';}\n}\nvar del;\nvar st_p1 = \"p1\";\nvar st_p2 = \"p2\";\nvar st_p3 = \"p3\";\nvar st_parseInt = \"parseInt\";\nvar st_NaN = \"NaN\";\nvar st_Infinity = \"Infinity\";\nvar st_eval = \"eval\";\nvar st_parseFloat = \"parseFloat\";\nvar st_isNaN = \"isNaN\";\nvar st_isFinite = \"isFinite\";\n\nwith(myObj){\n st_p1 = p1;\n st_p2 = p2;\n st_p3 = p3;\n st_parseInt = parseInt;\n st_NaN = NaN;\n st_Infinity = Infinity;\n st_eval = eval;\n st_parseFloat = parseFloat;\n st_isNaN = isNaN;\n st_isFinite = isFinite;\n p1 = 'x1';\n this.p2 = 'x2';\n del = delete p3;\n var p4 = 'x4';\n p5 = 'x5';\n var value = 'value';\n}\n\nif(!(p1 === 1)){\n $ERROR('#1: p1 === 1. Actual: p1 ==='+ p1 );\n}\n\nif(!(p2 === \"x2\")){\n $ERROR('#2: p2 === \"x2\". Actual: p2 ==='+ p2 );\n}\n\nif(!(p3 === 3)){\n $ERROR('#3: p3 === 3. Actual: p3 ==='+ p3 );\n}\n\nif(!(p4 === \"x4\")){\n $ERROR('#4: p4 === \"x4\". Actual: p4 ==='+ p4 );\n}\n\nif(!(p5 === \"x5\")){\n $ERROR('#5: p5 === \"x5\". Actual: p5 ==='+ p5 );\n}\n\nif(!(myObj.p1 === \"x1\")){\n $ERROR('#6: myObj.p1 === \"x1\". Actual: myObj.p1 ==='+ myObj.p1 );\n}\n\nif(!(myObj.p2 === \"b\")){\n $ERROR('#7: myObj.p2 === \"b\". Actual: myObj.p2 ==='+ myObj.p2 );\n}\n\nif(!(myObj.p3 === undefined)){\n $ERROR('#8: myObj.p3 === undefined. Actual: myObj.p3 ==='+ myObj.p3 );\n}\n\nif(!(myObj.p4 === undefined)){\n $ERROR('#9: myObj.p4 === undefined. Actual: myObj.p4 ==='+ myObj.p4 );\n}\n\nif(!(myObj.p5 === undefined)){\n $ERROR('#10: myObj.p5 === undefined. Actual: myObj.p5 ==='+ myObj.p5 );\n}\n\nif(!(st_parseInt !== parseInt)){\n $ERROR('#11: myObj.parseInt !== parseInt');\n}\n\nif(!(st_NaN === \"obj_NaN\")){\n $ERROR('#12: myObj.NaN !== NaN');\n}\n\nif(!(st_Infinity !== Infinity)){\n $ERROR('#13: myObj.Infinity !== Infinity');\n}\n\nif(!(st_eval !== eval)){\n $ERROR('#14: myObj.eval !== eval');\n}\n\nif(!(st_parseFloat !== parseFloat)){\n $ERROR('#15: myObj.parseFloat !== parseFloat');\n}\n\nif(!(st_isNaN !== isNaN)){\n $ERROR('#16: myObj.isNaN !== isNaN');\n}\n\nif(!(st_isFinite !== isFinite)){\n $ERROR('#17: myObj.isFinite !== isFinite');\n}\n\nif(!(value === undefined)){\n $ERROR('#18: value === undefined. Actual: value ==='+ value );\n}\n\nif(!(myObj.value === \"value\")){\n $ERROR('#19: myObj.value === \"value\". Actual: myObj.value ==='+ myObj.value );\n}\n",
+ "id": "S12.10_A1.1_T1",
+ "strict_only": ""
+ },
+ {
+ "section": "12.10",
+ "description": "Using \"with\" inside of global context leading to completion by exception",
+ "strict_mode_negative": "",
+ "test": "this.p1 = 1;\nthis.p2 = 2;\nthis.p3 = 3;\nvar result = \"result\";\nvar myObj = {p1: 'a', \n p2: 'b', \n p3: 'c',\n value: 'myObj_value',\n valueOf : function(){return 'obj_valueOf';},\n parseInt : function(){return 'obj_parseInt';},\n NaN : 'obj_NaN',\n Infinity : 'obj_Infinity',\n eval : function(){return 'obj_eval';},\n parseFloat : function(){return 'obj_parseFloat';},\n isNaN : function(){return 'obj_isNaN';},\n isFinite : function(){return 'obj_isFinite';}\n}\nvar del;\nvar st_p1 = \"p1\";\nvar st_p2 = \"p2\";\nvar st_p3 = \"p3\";\nvar st_parseInt = \"parseInt\";\nvar st_NaN = \"NaN\";\nvar st_Infinity = \"Infinity\";\nvar st_eval = \"eval\";\nvar st_parseFloat = \"parseFloat\";\nvar st_isNaN = \"isNaN\";\nvar st_isFinite = \"isFinite\";\n\ntry {\n with(myObj){\n st_p1 = p1;\n st_p2 = p2;\n st_p3 = p3;\n st_parseInt = parseInt;\n st_NaN = NaN;\n st_Infinity = Infinity;\n st_eval = eval;\n st_parseFloat = parseFloat;\n st_isNaN = isNaN;\n st_isFinite = isFinite;\n p1 = 'x1';\n this.p2 = 'x2';\n del = delete p3;\n var p4 = 'x4';\n p5 = 'x5';\n var value = 'value';\n throw value;\n }\n} catch(e){\n result = e;\n}\n\nif(!(result === \"value\")){\n $ERROR('#0: result === \"value\". Actual: result ==='+ result );\n}\n\nif(!(p1 === 1)){\n $ERROR('#1: p1 === 1. Actual: p1 ==='+ p1 );\n}\n\nif(!(p2 === \"x2\")){\n $ERROR('#2: p2 === \"x2\". Actual: p2 ==='+ p2 );\n}\n\nif(!(p3 === 3)){\n $ERROR('#3: p3 === 3. Actual: p3 ==='+ p3 );\n}\n\nif(!(p4 === \"x4\")){\n $ERROR('#4: p4 === \"x4\". Actual: p4 ==='+ p4 );\n}\n\nif(!(p5 === \"x5\")){\n $ERROR('#5: p5 === \"x5\". Actual: p5 ==='+ p5 );\n}\n\nif(!(myObj.p1 === \"x1\")){\n $ERROR('#6: myObj.p1 === \"x1\". Actual: myObj.p1 ==='+ myObj.p1 );\n}\n\nif(!(myObj.p2 === \"b\")){\n $ERROR('#7: myObj.p2 === \"b\". Actual: myObj.p2 ==='+ myObj.p2 );\n}\n\nif(!(myObj.p3 === undefined)){\n $ERROR('#8: myObj.p3 === undefined. Actual: myObj.p3 ==='+ myObj.p3 );\n}\n\nif(!(myObj.p4 === undefined)){\n $ERROR('#9: myObj.p4 === undefined. Actual: myObj.p4 ==='+ myObj.p4 );\n}\n\nif(!(myObj.p5 === undefined)){\n $ERROR('#10: myObj.p5 === undefined. Actual: myObj.p5 ==='+ myObj.p5 );\n}\n\nif(!(st_parseInt !== parseInt)){\n $ERROR('#11: myObj.parseInt !== parseInt');\n}\n\nif(!(st_NaN === \"obj_NaN\")){\n $ERROR('#12: myObj.NaN !== NaN');\n}\n\nif(!(st_Infinity !== Infinity)){\n $ERROR('#13: myObj.Infinity !== Infinity');\n}\n\nif(!(st_eval !== eval)){\n $ERROR('#14: myObj.eval !== eval');\n}\n\nif(!(st_parseFloat !== parseFloat)){\n $ERROR('#15: myObj.parseFloat !== parseFloat');\n}\n\nif(!(st_isNaN !== isNaN)){\n $ERROR('#16: myObj.isNaN !== isNaN');\n}\n\nif(!(st_isFinite !== isFinite)){\n $ERROR('#17: myObj.isFinite !== isFinite');\n}\n\nif(!(value === undefined)){\n $ERROR('#18: value === undefined. Actual: value ==='+ value );\n}\n\nif(!(myObj.value === \"value\")){\n $ERROR('#19: myObj.value === \"value\". Actual: myObj.value ==='+ myObj.value );\n}\n",
+ "id": "S12.10_A1.1_T2",
+ "strict_only": ""
+ },
+ {
+ "section": "12.10",
+ "description": "Using \"with\" inside of global context leading to completion by exception",
+ "strict_mode_negative": "",
+ "test": "this.p1 = 1;\nthis.p2 = 2;\nthis.p3 = 3;\nvar result = \"result\";\nvar myObj = {p1: 'a', \n p2: 'b', \n p3: 'c',\n value: 'myObj_value',\n valueOf : function(){return 'obj_valueOf';},\n parseInt : function(){return 'obj_parseInt';},\n NaN : 'obj_NaN',\n Infinity : 'obj_Infinity',\n eval : function(){return 'obj_eval';},\n parseFloat : function(){return 'obj_parseFloat';},\n isNaN : function(){return 'obj_isNaN';},\n isFinite : function(){return 'obj_isFinite';}\n}\nvar del;\nvar st_p1 = \"p1\";\nvar st_p2 = \"p2\";\nvar st_p3 = \"p3\";\nvar st_parseInt = \"parseInt\";\nvar st_NaN = \"NaN\";\nvar st_Infinity = \"Infinity\";\nvar st_eval = \"eval\";\nvar st_parseFloat = \"parseFloat\";\nvar st_isNaN = \"isNaN\";\nvar st_isFinite = \"isFinite\";\n\ntry {\n with(myObj){\n throw value;\n st_p1 = p1;\n st_p2 = p2;\n st_p3 = p3;\n st_parseInt = parseInt;\n st_NaN = NaN;\n st_Infinity = Infinity;\n st_eval = eval;\n st_parseFloat = parseFloat;\n st_isNaN = isNaN;\n st_isFinite = isFinite;\n p1 = 'x1';\n this.p2 = 'x2';\n del = delete p3;\n var p4 = 'x4';\n p5 = 'x5';\n var value = 'value';\n }\n} catch(e){\n result = e;\n}\n\nif(!(result === \"myObj_value\")){\n $ERROR('#0: result === \"myObj_value\". Actual: result ==='+ result );\n}\n\nif(!(p1 === 1)){\n $ERROR('#1: p1 === 1. Actual: p1 ==='+ p1 );\n}\n\nif(!(p2 === 2)){\n $ERROR('#2: p2 === 2. Actual: p2 ==='+ p2 );\n}\n\nif(!(p3 === 3)){\n $ERROR('#3: p3 === 3. Actual: p3 ==='+ p3 );\n}\n\nif(!(p4 === undefined)){\n $ERROR('#4: p4 === undefined. Actual: p4 ==='+ p4 );\n}\n\ntry {\n p5;\n $ERROR('#5: p5 is not defined');\n} catch(e) { \n}\n\nif(!(myObj.p1 === \"a\")){\n $ERROR('#6: myObj.p1 === \"a\". Actual: myObj.p1 ==='+ myObj.p1 );\n}\n\nif(!(myObj.p2 === \"b\")){\n $ERROR('#7: myObj.p2 === \"b\". Actual: myObj.p2 ==='+ myObj.p2 );\n}\n\nif(!(myObj.p3 === \"c\")){\n $ERROR('#8: myObj.p3 === \"c\". Actual: myObj.p3 ==='+ myObj.p3 );\n}\n\nif(!(myObj.p4 === undefined)){\n $ERROR('#9: myObj.p4 === undefined. Actual: myObj.p4 ==='+ myObj.p4 );\n}\n\nif(!(myObj.p5 === undefined)){\n $ERROR('#10: myObj.p5 === undefined. Actual: myObj.p5 ==='+ myObj.p5 );\n}\n\nif(!(st_parseInt === \"parseInt\")){\n $ERROR('#11: myObj.parseInt === \"parseInt\". Actual: myObj.parseInt ==='+ myObj.parseInt );\n}\n\nif(!(st_NaN === \"NaN\")){\n $ERROR('#12: st_NaN === \"NaN\". Actual: st_NaN ==='+ st_NaN );\n}\n\nif(!(st_Infinity === \"Infinity\")){\n $ERROR('#13: st_Infinity === \"Infinity\". Actual: st_Infinity ==='+ st_Infinity );\n}\n\nif(!(st_eval === \"eval\")){\n $ERROR('#14: st_eval === \"eval\". Actual: st_eval ==='+ st_eval );\n}\n\nif(!(st_parseFloat === \"parseFloat\")){\n $ERROR('#15: st_parseFloat === \"parseFloat\". Actual: st_parseFloat ==='+ st_parseFloat );\n}\n\nif(!(st_isNaN === \"isNaN\")){\n $ERROR('#16: st_isNaN === \"isNaN\". Actual: st_isNaN ==='+ st_isNaN );\n}\n\nif(!(st_isFinite === \"isFinite\")){\n $ERROR('#17: st_isFinite === \"isFinite\". Actual: st_isFinite ==='+ st_isFinite );\n}\n\nif(!(value === undefined)){\n $ERROR('#18: value === undefined. Actual: value ==='+ value );\n}\n\nif(!(myObj.value === \"myObj_value\")){\n $ERROR('#19: myObj.value === \"myObj_value\". Actual: myObj.value ==='+ myObj.value );\n}\n",
+ "id": "S12.10_A1.1_T3",
+ "strict_only": ""
+ },
+ {
+ "section": "12.10",
+ "description": "Calling a function without \"with\" statement when the statement itself is declared within the function declaration, leading to normal completion",
+ "strict_mode_negative": "",
+ "test": "this.p1 = 1;\nthis.p2 = 2;\nthis.p3 = 3;\nvar result = \"result\";\nvar myObj = {p1: 'a', \n p2: 'b', \n p3: 'c',\n value: 'myObj_value',\n valueOf : function(){return 'obj_valueOf';},\n parseInt : function(){return 'obj_parseInt';},\n NaN : 'obj_NaN',\n Infinity : 'obj_Infinity',\n eval : function(){return 'obj_eval';},\n parseFloat : function(){return 'obj_parseFloat';},\n isNaN : function(){return 'obj_isNaN';},\n isFinite : function(){return 'obj_isFinite';}\n}\nvar del;\nvar st_p1 = \"p1\";\nvar st_p2 = \"p2\";\nvar st_p3 = \"p3\";\nvar st_parseInt = \"parseInt\";\nvar st_NaN = \"NaN\";\nvar st_Infinity = \"Infinity\";\nvar st_eval = \"eval\";\nvar st_parseFloat = \"parseFloat\";\nvar st_isNaN = \"isNaN\";\nvar st_isFinite = \"isFinite\";\n\nvar f = function(){\n with(myObj){\n st_p1 = p1;\n st_p2 = p2;\n st_p3 = p3;\n st_parseInt = parseInt;\n st_NaN = NaN;\n st_Infinity = Infinity;\n st_eval = eval;\n st_parseFloat = parseFloat;\n st_isNaN = isNaN;\n st_isFinite = isFinite;\n p1 = 'x1';\n this.p2 = 'x2';\n del = delete p3;\n var p4 = 'x4';\n p5 = 'x5';\n var value = 'value';\n }\n}\nf();\n\nif(!(p1 === 1)){\n $ERROR('#1: p1 === 1. Actual: p1 ==='+ p1 );\n}\n\nif(!(p2 === \"x2\")){\n $ERROR('#2: p2 === \"x2\". Actual: p2 ==='+ p2 );\n}\n\nif(!(p3 === 3)){\n $ERROR('#3: p3 === 3. Actual: p3 ==='+ p3 );\n}\n\ntry {\n p4;\n $ERROR('#4: p4 is not defined');\n} catch(e) { \n}\n\nif(!(p5 === \"x5\")){\n $ERROR('#5: p5 === \"x5\". Actual: p5 ==='+ p5 );\n}\n\nif(!(myObj.p1 === \"x1\")){\n $ERROR('#6: myObj.p1 === \"x1\". Actual: myObj.p1 ==='+ myObj.p1 );\n}\n\nif(!(myObj.p2 === \"b\")){\n $ERROR('#7: myObj.p2 === \"b\". Actual: myObj.p2 ==='+ myObj.p2 );\n}\n\nif(!(myObj.p3 === undefined)){\n $ERROR('#8: myObj.p3 === undefined. Actual: myObj.p3 ==='+ myObj.p3 );\n}\n\nif(!(myObj.p4 === undefined)){\n $ERROR('#9: myObj.p4 === undefined. Actual: myObj.p4 ==='+ myObj.p4 );\n}\n\nif(!(myObj.p5 === undefined)){\n $ERROR('#10: myObj.p5 === undefined. Actual: myObj.p5 ==='+ myObj.p5 );\n}\n\nif(!(st_parseInt !== parseInt)){\n $ERROR('#11: myObj.parseInt !== parseInt');\n}\n\nif(!(st_NaN === \"obj_NaN\")){\n $ERROR('#12: myObj.NaN !== NaN');\n}\n\nif(!(st_Infinity !== Infinity)){\n $ERROR('#13: myObj.Infinity !== Infinity');\n}\n\nif(!(st_eval !== eval)){\n $ERROR('#14: myObj.eval !== eval');\n}\n\nif(!(st_parseFloat !== parseFloat)){\n $ERROR('#15: myObj.parseFloat !== parseFloat');\n}\n\nif(!(st_isNaN !== isNaN)){\n $ERROR('#16: myObj.isNaN !== isNaN');\n}\n\nif(!(st_isFinite !== isFinite)){\n $ERROR('#17: myObj.isFinite !== isFinite');\n}\n\ntry{\n value;\n $ERROR('#18: value is not defined');\n}\ncatch(e){\n}\n\nif(!(myObj.value === \"value\")){\n $ERROR('#19: myObj.value === \"value\". Actual: myObj.value ==='+ myObj.value );\n}\n",
+ "id": "S12.10_A1.2_T1",
+ "strict_only": ""
+ },
+ {
+ "section": "12.10",
+ "description": "Calling a function without \"with\" statement when the statement itself is declared within the function declaration, leading to normal completion by \"return\"",
+ "strict_mode_negative": "",
+ "test": "this.p1 = 1;\nthis.p2 = 2;\nthis.p3 = 3;\nvar result = \"result\";\nvar myObj = {p1: 'a', \n p2: 'b', \n p3: 'c',\n value: 'myObj_value',\n valueOf : function(){return 'obj_valueOf';},\n parseInt : function(){return 'obj_parseInt';},\n NaN : 'obj_NaN',\n Infinity : 'obj_Infinity',\n eval : function(){return 'obj_eval';},\n parseFloat : function(){return 'obj_parseFloat';},\n isNaN : function(){return 'obj_isNaN';},\n isFinite : function(){return 'obj_isFinite';}\n}\nvar del;\nvar st_p1 = \"p1\";\nvar st_p2 = \"p2\";\nvar st_p3 = \"p3\";\nvar st_parseInt = \"parseInt\";\nvar st_NaN = \"NaN\";\nvar st_Infinity = \"Infinity\";\nvar st_eval = \"eval\";\nvar st_parseFloat = \"parseFloat\";\nvar st_isNaN = \"isNaN\";\nvar st_isFinite = \"isFinite\";\n\nvar f = function(){\n with(myObj){\n st_p1 = p1;\n st_p2 = p2;\n st_p3 = p3;\n st_parseInt = parseInt;\n st_NaN = NaN;\n st_Infinity = Infinity;\n st_eval = eval;\n st_parseFloat = parseFloat;\n st_isNaN = isNaN;\n st_isFinite = isFinite;\n p1 = 'x1';\n this.p2 = 'x2';\n del = delete p3;\n var p4 = 'x4';\n p5 = 'x5';\n var value = 'value';\n return value;\n }\n}\nresult = f();\n\nif(!(result === \"value\")){\n $ERROR('#0: result === \"value\". Actual: result ==='+ result );\n}\n\nif(!(p1 === 1)){\n $ERROR('#1: p1 === 1. Actual: p1 ==='+ p1 );\n}\n\nif(!(p2 === \"x2\")){\n $ERROR('#2: p2 === \"x2\". Actual: p2 ==='+ p2 );\n}\n\nif(!(p3 === 3)){\n $ERROR('#3: p3 === 3. Actual: p3 ==='+ p3 );\n}\n\ntry {\n p4;\n $ERROR('#4: p4 is not defined');\n} catch(e) { \n}\n\nif(!(p5 === \"x5\")){\n $ERROR('#5: p5 === \"x5\". Actual: p5 ==='+ p5 );\n}\n\nif(!(myObj.p1 === \"x1\")){\n $ERROR('#6: myObj.p1 === \"x1\". Actual: myObj.p1 ==='+ myObj.p1 );\n}\n\nif(!(myObj.p2 === \"b\")){\n $ERROR('#7: myObj.p2 === \"b\". Actual: myObj.p2 ==='+ myObj.p2 );\n}\n\nif(!(myObj.p3 === undefined)){\n $ERROR('#8: myObj.p3 === undefined. Actual: myObj.p3 ==='+ myObj.p3 );\n}\n\nif(!(myObj.p4 === undefined)){\n $ERROR('#9: myObj.p4 === undefined. Actual: myObj.p4 ==='+ myObj.p4 );\n}\n\nif(!(myObj.p5 === undefined)){\n $ERROR('#10: myObj.p5 === undefined. Actual: myObj.p5 ==='+ myObj.p5 );\n}\n\nif(!(st_parseInt !== parseInt)){\n $ERROR('#11: myObj.parseInt !== parseInt');\n}\n\nif(!(st_NaN === \"obj_NaN\")){\n $ERROR('#12: myObj.NaN !== NaN');\n}\n\nif(!(st_Infinity !== Infinity)){\n $ERROR('#13: myObj.Infinity !== Infinity');\n}\n\nif(!(st_eval !== eval)){\n $ERROR('#14: myObj.eval !== eval');\n}\n\nif(!(st_parseFloat !== parseFloat)){\n $ERROR('#15: myObj.parseFloat !== parseFloat');\n}\n\nif(!(st_isNaN !== isNaN)){\n $ERROR('#16: myObj.isNaN !== isNaN');\n}\n\nif(!(st_isFinite !== isFinite)){\n $ERROR('#17: myObj.isFinite !== isFinite');\n}\n\ntry{\n value;\n $ERROR('#18: value is not defined');\n}\ncatch(e){\n}\n\nif(!(myObj.value === \"value\")){\n $ERROR('#19: myObj.value === \"value\". Actual: myObj.value ==='+ myObj.value );\n}\n",
+ "id": "S12.10_A1.2_T2",
+ "strict_only": ""
+ },
+ {
+ "section": "12.10",
+ "description": "Calling a function without \"with\" statement when the statement itself is declared within the function declaration, leading to normal completion by \"return\"",
+ "strict_mode_negative": "",
+ "test": "this.p1 = 1;\nthis.p2 = 2;\nthis.p3 = 3;\nvar result = \"result\";\nvar myObj = {p1: 'a', \n p2: 'b', \n p3: 'c',\n value: 'myObj_value',\n valueOf : function(){return 'obj_valueOf';},\n parseInt : function(){return 'obj_parseInt';},\n NaN : 'obj_NaN',\n Infinity : 'obj_Infinity',\n eval : function(){return 'obj_eval';},\n parseFloat : function(){return 'obj_parseFloat';},\n isNaN : function(){return 'obj_isNaN';},\n isFinite : function(){return 'obj_isFinite';}\n}\nvar del;\nvar st_p1 = \"p1\";\nvar st_p2 = \"p2\";\nvar st_p3 = \"p3\";\nvar st_parseInt = \"parseInt\";\nvar st_NaN = \"NaN\";\nvar st_Infinity = \"Infinity\";\nvar st_eval = \"eval\";\nvar st_parseFloat = \"parseFloat\";\nvar st_isNaN = \"isNaN\";\nvar st_isFinite = \"isFinite\";\n\nvar f = function(){\n with(myObj){\n return value;\n st_p1 = p1;\n st_p2 = p2;\n st_p3 = p3;\n st_parseInt = parseInt;\n st_NaN = NaN;\n st_Infinity = Infinity;\n st_eval = eval;\n st_parseFloat = parseFloat;\n st_isNaN = isNaN;\n st_isFinite = isFinite;\n p1 = 'x1';\n this.p2 = 'x2';\n del = delete p3;\n var p4 = 'x4';\n p5 = 'x5';\n var value = 'value';\n }\n}\nresult = f();\n\nif(!(result === \"myObj_value\")){\n $ERROR('#0: result === \"myObj_value\". Actual: result ==='+ result );\n}\n\nif(!(p1 === 1)){\n $ERROR('#1: p1 === 1. Actual: p1 ==='+ p1 );\n}\n\nif(!(p2 === 2)){\n $ERROR('#2: p2 === 2. Actual: p2 ==='+ p2 );\n}\n\nif(!(p3 === 3)){\n $ERROR('#3: p3 === 3. Actual: p3 ==='+ p3 );\n}\n\ntry {\n p4;\n $ERROR('#4: p4 is not defined');\n} catch(e) { \n}\n\ntry {\n p5;\n $ERROR('#5: p5 is not defined');\n} catch(e) { \n}\n\nif(!(myObj.p1 === \"a\")){\n $ERROR('#6: myObj.p1 === \"a\". Actual: myObj.p1 ==='+ myObj.p1 );\n}\n\nif(!(myObj.p2 === \"b\")){\n $ERROR('#7: myObj.p2 === \"b\". Actual: myObj.p2 ==='+ myObj.p2 );\n}\n\nif(!(myObj.p3 === \"c\")){\n $ERROR('#8: myObj.p3 === \"c\". Actual: myObj.p3 ==='+ myObj.p3 );\n}\n\nif(!(myObj.p4 === undefined)){\n $ERROR('#9: myObj.p4 === undefined. Actual: myObj.p4 ==='+ myObj.p4 );\n}\n\nif(!(myObj.p5 === undefined)){\n $ERROR('#10: myObj.p5 === undefined. Actual: myObj.p5 ==='+ myObj.p5 );\n}\n\nif(!(st_parseInt === \"parseInt\")){\n $ERROR('#11: myObj.parseInt === \"parseInt\". Actual: myObj.parseInt ==='+ myObj.parseInt );\n}\n\nif(!(st_NaN === \"NaN\")){\n $ERROR('#12: st_NaN === \"NaN\". Actual: st_NaN ==='+ st_NaN );\n}\n\nif(!(st_Infinity === \"Infinity\")){\n $ERROR('#13: st_Infinity === \"Infinity\". Actual: st_Infinity ==='+ st_Infinity );\n}\n\nif(!(st_eval === \"eval\")){\n $ERROR('#14: st_eval === \"eval\". Actual: st_eval ==='+ st_eval );\n}\n\nif(!(st_parseFloat === \"parseFloat\")){\n $ERROR('#15: st_parseFloat === \"parseFloat\". Actual: st_parseFloat ==='+ st_parseFloat );\n}\n\nif(!(st_isNaN === \"isNaN\")){\n $ERROR('#16: st_isNaN === \"isNaN\". Actual: st_isNaN ==='+ st_isNaN );\n}\n\nif(!(st_isFinite === \"isFinite\")){\n $ERROR('#17: st_isFinite === \"isFinite\". Actual: st_isFinite ==='+ st_isFinite );\n}\n\ntry{\n value;\n $ERROR('#18: value is not defined');\n}\ncatch(e){\n}\n\nif(!(myObj.value === \"myObj_value\")){\n $ERROR('#19: myObj.value === \"myObj_value\". Actual: myObj.value ==='+ myObj.value );\n}\n\n",
+ "id": "S12.10_A1.2_T3",
+ "strict_only": ""
+ },
+ {
+ "section": "12.10",
+ "description": "Calling a function without \"with\" statement when the statement itself is declared within the function declaration, leading to completion by exception",
+ "strict_mode_negative": "",
+ "test": "this.p1 = 1;\nthis.p2 = 2;\nthis.p3 = 3;\nvar result = \"result\";\nvar myObj = {p1: 'a', \n p2: 'b', \n p3: 'c',\n value: 'myObj_value',\n valueOf : function(){return 'obj_valueOf';},\n parseInt : function(){return 'obj_parseInt';},\n NaN : 'obj_NaN',\n Infinity : 'obj_Infinity',\n eval : function(){return 'obj_eval';},\n parseFloat : function(){return 'obj_parseFloat';},\n isNaN : function(){return 'obj_isNaN';},\n isFinite : function(){return 'obj_isFinite';}\n}\nvar del;\nvar st_p1 = \"p1\";\nvar st_p2 = \"p2\";\nvar st_p3 = \"p3\";\nvar st_parseInt = \"parseInt\";\nvar st_NaN = \"NaN\";\nvar st_Infinity = \"Infinity\";\nvar st_eval = \"eval\";\nvar st_parseFloat = \"parseFloat\";\nvar st_isNaN = \"isNaN\";\nvar st_isFinite = \"isFinite\";\n\ntry {\n var f = function(){\n with(myObj){\n st_p1 = p1;\n st_p2 = p2;\n st_p3 = p3;\n st_parseInt = parseInt;\n st_NaN = NaN;\n st_Infinity = Infinity;\n st_eval = eval;\n st_parseFloat = parseFloat;\n st_isNaN = isNaN;\n st_isFinite = isFinite;\n p1 = 'x1';\n this.p2 = 'x2';\n del = delete p3;\n var p4 = 'x4';\n p5 = 'x5';\n var value = 'value';\n throw value;\n }\n }\n f();\n} catch(e){\n result = e;\n}\n\nif(!(result === \"value\")){\n $ERROR('#0: result === \"value\". Actual: result ==='+ result );\n}\n\nif(!(p1 === 1)){\n $ERROR('#1: p1 === 1. Actual: p1 ==='+ p1 );\n}\n\nif(!(p2 === \"x2\")){\n $ERROR('#2: p2 === \"x2\". Actual: p2 ==='+ p2 );\n}\n\nif(!(p3 === 3)){\n $ERROR('#3: p3 === 3. Actual: p3 ==='+ p3 );\n}\n\ntry {\n p4;\n $ERROR('#4: p4 is not defined');\n} catch(e) { \n}\n\nif(!(p5 === \"x5\")){\n $ERROR('#5: p5 === \"x5\". Actual: p5 ==='+ p5 );\n}\n\nif(!(myObj.p1 === \"x1\")){\n $ERROR('#6: myObj.p1 === \"x1\". Actual: myObj.p1 ==='+ myObj.p1 );\n}\n\nif(!(myObj.p2 === \"b\")){\n $ERROR('#7: myObj.p2 === \"b\". Actual: myObj.p2 ==='+ myObj.p2 );\n}\n\nif(!(myObj.p3 === undefined)){\n $ERROR('#8: myObj.p3 === undefined. Actual: myObj.p3 ==='+ myObj.p3 );\n}\n\nif(!(myObj.p4 === undefined)){\n $ERROR('#9: myObj.p4 === undefined. Actual: myObj.p4 ==='+ myObj.p4 );\n}\n\nif(!(myObj.p5 === undefined)){\n $ERROR('#10: myObj.p5 === undefined. Actual: myObj.p5 ==='+ myObj.p5 );\n}\n\nif(!(st_parseInt !== parseInt)){\n $ERROR('#11: myObj.parseInt !== parseInt');\n}\n\nif(!(st_NaN === \"obj_NaN\")){\n $ERROR('#12: myObj.NaN !== NaN');\n}\n\nif(!(st_Infinity !== Infinity)){\n $ERROR('#13: myObj.Infinity !== Infinity');\n}\n\nif(!(st_eval !== eval)){\n $ERROR('#14: myObj.eval !== eval');\n}\n\nif(!(st_parseFloat !== parseFloat)){\n $ERROR('#15: myObj.parseFloat !== parseFloat');\n}\n\nif(!(st_isNaN !== isNaN)){\n $ERROR('#16: myObj.isNaN !== isNaN');\n}\n\nif(!(st_isFinite !== isFinite)){\n $ERROR('#17: myObj.isFinite !== isFinite');\n}\n\ntry{\n value;\n $ERROR('#18: value is not defined');\n}\ncatch(e){\n}\n\nif(!(myObj.value === \"value\")){\n $ERROR('#19: myObj.value === \"value\". Actual: myObj.value ==='+ myObj.value );\n}\n",
+ "id": "S12.10_A1.2_T4",
+ "strict_only": ""
+ },
+ {
+ "section": "12.10",
+ "description": "Calling a function without \"with\" statement when the statement itself is declared within the function declaration, leading to completion by exception",
+ "strict_mode_negative": "",
+ "test": "this.p1 = 1;\nthis.p2 = 2;\nthis.p3 = 3;\nvar result = \"result\";\nvar myObj = {p1: 'a', \n p2: 'b', \n p3: 'c',\n value: 'myObj_value',\n valueOf : function(){return 'obj_valueOf';},\n parseInt : function(){return 'obj_parseInt';},\n NaN : 'obj_NaN',\n Infinity : 'obj_Infinity',\n eval : function(){return 'obj_eval';},\n parseFloat : function(){return 'obj_parseFloat';},\n isNaN : function(){return 'obj_isNaN';},\n isFinite : function(){return 'obj_isFinite';}\n}\nvar del;\nvar st_p1 = \"p1\";\nvar st_p2 = \"p2\";\nvar st_p3 = \"p3\";\nvar st_parseInt = \"parseInt\";\nvar st_NaN = \"NaN\";\nvar st_Infinity = \"Infinity\";\nvar st_eval = \"eval\";\nvar st_parseFloat = \"parseFloat\";\nvar st_isNaN = \"isNaN\";\nvar st_isFinite = \"isFinite\";\n\ntry {\n var f = function(){\n with(myObj){\n throw value;\n st_p1 = p1;\n st_p2 = p2;\n st_p3 = p3;\n st_parseInt = parseInt;\n st_NaN = NaN;\n st_Infinity = Infinity;\n st_eval = eval;\n st_parseFloat = parseFloat;\n st_isNaN = isNaN;\n st_isFinite = isFinite;\n p1 = 'x1';\n this.p2 = 'x2';\n del = delete p3;\n var p4 = 'x4';\n p5 = 'x5';\n var value = 'value';\n }\n }\n f();\n} catch(e){\n result = e;\n}\n\nif(!(result === \"myObj_value\")){\n $ERROR('#0: result === \"myObj_value\". Actual: result ==='+ result );\n}\n\nif(!(p2 === 2)){\n $ERROR('#2: p2 === 2. Actual: p2 ==='+ p2 );\n}\n\nif(!(p3 === 3)){\n $ERROR('#3: p3 === 3. Actual: p3 ==='+ p3 );\n}\n\ntry {\n p4;\n $ERROR('#4: p4 is not defined');\n} catch(e) { \n}\n\ntry {\n p5;\n $ERROR('#5: p5 is not defined');\n} catch(e) { \n}\n\nif(!(myObj.p1 === \"a\")){\n $ERROR('#6: myObj.p1 === \"a\". Actual: myObj.p1 ==='+ myObj.p1 );\n}\n\nif(!(myObj.p2 === \"b\")){\n $ERROR('#7: myObj.p2 === \"b\". Actual: myObj.p2 ==='+ myObj.p2 );\n}\n\nif(!(myObj.p3 === \"c\")){\n $ERROR('#8: myObj.p3 === \"c\". Actual: myObj.p3 ==='+ myObj.p3 );\n}\n\nif(!(myObj.p4 === undefined)){\n $ERROR('#9: myObj.p4 === undefined. Actual: myObj.p4 ==='+ myObj.p4 );\n}\n\nif(!(myObj.p5 === undefined)){\n $ERROR('#10: myObj.p5 === undefined. Actual: myObj.p5 ==='+ myObj.p5 );\n}\n\nif(!(st_parseInt === \"parseInt\")){\n $ERROR('#11: myObj.parseInt === \"parseInt\". Actual: myObj.parseInt ==='+ myObj.parseInt );\n}\n\nif(!(st_NaN === \"NaN\")){\n $ERROR('#12: st_NaN === \"NaN\". Actual: st_NaN ==='+ st_NaN );\n}\n\nif(!(st_Infinity === \"Infinity\")){\n $ERROR('#13: st_Infinity === \"Infinity\". Actual: st_Infinity ==='+ st_Infinity );\n}\n\nif(!(st_eval === \"eval\")){\n $ERROR('#14: st_eval === \"eval\". Actual: st_eval ==='+ st_eval );\n}\n\nif(!(st_parseFloat === \"parseFloat\")){\n $ERROR('#15: st_parseFloat === \"parseFloat\". Actual: st_parseFloat ==='+ st_parseFloat );\n}\n\nif(!(st_isNaN === \"isNaN\")){\n $ERROR('#16: st_isNaN === \"isNaN\". Actual: st_isNaN ==='+ st_isNaN );\n}\n\nif(!(st_isFinite === \"isFinite\")){\n $ERROR('#17: st_isFinite === \"isFinite\". Actual: st_isFinite ==='+ st_isFinite );\n}\n\ntry{\n value;\n $ERROR('#18: value is not defined');\n}\ncatch(e){\n}\n\nif(!(myObj.value === \"myObj_value\")){\n $ERROR('#19: myObj.value === \"myObj_value\". Actual: myObj.value ==='+ myObj.value );\n}\n",
+ "id": "S12.10_A1.2_T5",
+ "strict_only": ""
+ },
+ {
+ "section": "12.10",
+ "description": "Using \"with\" statement within function constructor, leading to normal completition",
+ "strict_mode_negative": "",
+ "test": "this.p1 = 1;\nthis.p2 = 2;\nthis.p3 = 3;\nvar result = \"result\";\nvar myObj = {p1: 'a', \n p2: 'b', \n p3: 'c',\n value: 'myObj_value',\n valueOf : function(){return 'obj_valueOf';},\n parseInt : function(){return 'obj_parseInt';},\n NaN : 'obj_NaN',\n Infinity : 'obj_Infinity',\n eval : function(){return 'obj_eval';},\n parseFloat : function(){return 'obj_parseFloat';},\n isNaN : function(){return 'obj_isNaN';},\n isFinite : function(){return 'obj_isFinite';}\n}\nvar del;\nvar st_p1 = \"p1\";\nvar st_p2 = \"p2\";\nvar st_p3 = \"p3\";\nvar st_parseInt = \"parseInt\";\nvar st_NaN = \"NaN\";\nvar st_Infinity = \"Infinity\";\nvar st_eval = \"eval\";\nvar st_parseFloat = \"parseFloat\";\nvar st_isNaN = \"isNaN\";\nvar st_isFinite = \"isFinite\";\n\nvar f = function(){\n with(myObj){\n st_p1 = p1;\n st_p2 = p2;\n st_p3 = p3;\n st_parseInt = parseInt;\n st_NaN = NaN;\n st_Infinity = Infinity;\n st_eval = eval;\n st_parseFloat = parseFloat;\n st_isNaN = isNaN;\n st_isFinite = isFinite;\n p1 = 'x1';\n this.p2 = 'x2';\n del = delete p3;\n var p4 = 'x4';\n p5 = 'x5';\n var value = 'value';\n }\n}\nvar obj = new f();\n\nif(!(p1 === 1)){\n $ERROR('#1: p1 === 1. Actual: p1 ==='+ p1 );\n}\n\nif(!(p2 === 2)){\n $ERROR('#2: p2 === 2. Actual: p2 ==='+ p2 );\n}\n\nif(!(p3 === 3)){\n $ERROR('#3: p3 === 3. Actual: p3 ==='+ p3 );\n}\n\ntry {\n p4;\n $ERROR('#4: p4 is not defined');\n} catch(e) { \n}\n\nif(!(p5 === \"x5\")){\n $ERROR('#5: p5 === \"x5\". Actual: p5 ==='+ p5 );\n}\n\nif(!(myObj.p1 === \"x1\")){\n $ERROR('#6: myObj.p1 === \"x1\". Actual: myObj.p1 ==='+ myObj.p1 );\n}\n\nif(!(myObj.p2 === \"b\")){\n $ERROR('#7: myObj.p2 === \"b\". Actual: myObj.p2 ==='+ myObj.p2 );\n}\n\nif(!(myObj.p3 === undefined)){\n $ERROR('#8: myObj.p3 === undefined. Actual: myObj.p3 ==='+ myObj.p3 );\n}\n\nif(!(myObj.p4 === undefined)){\n $ERROR('#9: myObj.p4 === undefined. Actual: myObj.p4 ==='+ myObj.p4 );\n}\n\nif(!(myObj.p5 === undefined)){\n $ERROR('#10: myObj.p5 === undefined. Actual: myObj.p5 ==='+ myObj.p5 );\n}\n\nif(!(st_parseInt !== parseInt)){\n $ERROR('#11: myObj.parseInt !== parseInt');\n}\n\nif(!(st_NaN === \"obj_NaN\")){\n $ERROR('#12: myObj.NaN !== NaN');\n}\n\nif(!(st_Infinity !== Infinity)){\n $ERROR('#13: myObj.Infinity !== Infinity');\n}\n\nif(!(st_eval !== eval)){\n $ERROR('#14: myObj.eval !== eval');\n}\n\nif(!(st_parseFloat !== parseFloat)){\n $ERROR('#15: myObj.parseFloat !== parseFloat');\n}\n\nif(!(st_isNaN !== isNaN)){\n $ERROR('#16: myObj.isNaN !== isNaN');\n}\n\nif(!(st_isFinite !== isFinite)){\n $ERROR('#17: myObj.isFinite !== isFinite');\n}\n\ntry{\n value;\n $ERROR('#18: value is not defined');\n}\ncatch(e){\n}\n\nif(!(myObj.value === \"value\")){\n $ERROR('#19: myObj.value === \"value\". Actual: myObj.value ==='+ myObj.value );\n}\n",
+ "id": "S12.10_A1.3_T1",
+ "strict_only": ""
+ },
+ {
+ "section": "12.10",
+ "description": "Using \"with\" statement within function constructor, leading to normal completition by \"return\"",
+ "strict_mode_negative": "",
+ "test": "this.p1 = 1;\nthis.p2 = 2;\nthis.p3 = 3;\nvar result = \"result\";\nvar myObj = {p1: 'a', \n p2: 'b', \n p3: 'c',\n value: 'myObj_value',\n valueOf : function(){return 'obj_valueOf';},\n parseInt : function(){return 'obj_parseInt';},\n NaN : 'obj_NaN',\n Infinity : 'obj_Infinity',\n eval : function(){return 'obj_eval';},\n parseFloat : function(){return 'obj_parseFloat';},\n isNaN : function(){return 'obj_isNaN';},\n isFinite : function(){return 'obj_isFinite';}\n}\nvar del;\nvar st_p1 = \"p1\";\nvar st_p2 = \"p2\";\nvar st_p3 = \"p3\";\nvar st_parseInt = \"parseInt\";\nvar st_NaN = \"NaN\";\nvar st_Infinity = \"Infinity\";\nvar st_eval = \"eval\";\nvar st_parseFloat = \"parseFloat\";\nvar st_isNaN = \"isNaN\";\nvar st_isFinite = \"isFinite\";\n\nvar f = function(){\n with(myObj){\n st_p1 = p1;\n st_p2 = p2;\n st_p3 = p3;\n st_parseInt = parseInt;\n st_NaN = NaN;\n st_Infinity = Infinity;\n st_eval = eval;\n st_parseFloat = parseFloat;\n st_isNaN = isNaN;\n st_isFinite = isFinite;\n p1 = 'x1';\n this.p2 = 'x2';\n del = delete p3;\n var p4 = 'x4';\n p5 = 'x5';\n var value = 'value';\n return value;\n }\n}\nvar obj = new f();\n\nif(!(p1 === 1)){\n $ERROR('#1: p1 === 1. Actual: p1 ==='+ p1 );\n}\n\nif(!(p2 === 2)){\n $ERROR('#2: p2 === 2. Actual: p2 ==='+ p2 );\n}\n\nif(!(p3 === 3)){\n $ERROR('#3: p3 === 3. Actual: p3 ==='+ p3 );\n}\n\ntry {\n p4;\n $ERROR('#4: p4 is not defined');\n} catch(e) { \n}\n\nif(!(p5 === \"x5\")){\n $ERROR('#5: p5 === \"x5\". Actual: p5 ==='+ p5 );\n}\n\nif(!(myObj.p1 === \"x1\")){\n $ERROR('#6: myObj.p1 === \"x1\". Actual: myObj.p1 ==='+ myObj.p1 );\n}\n\nif(!(myObj.p2 === \"b\")){\n $ERROR('#7: myObj.p2 === \"b\". Actual: myObj.p2 ==='+ myObj.p2 );\n}\n\nif(!(myObj.p3 === undefined)){\n $ERROR('#8: myObj.p3 === undefined. Actual: myObj.p3 ==='+ myObj.p3 );\n}\n\nif(!(myObj.p4 === undefined)){\n $ERROR('#9: myObj.p4 === undefined. Actual: myObj.p4 ==='+ myObj.p4 );\n}\n\nif(!(myObj.p5 === undefined)){\n $ERROR('#10: myObj.p5 === undefined. Actual: myObj.p5 ==='+ myObj.p5 );\n}\n\nif(!(st_parseInt !== parseInt)){\n $ERROR('#11: myObj.parseInt !== parseInt');\n}\n\nif(!(st_NaN === \"obj_NaN\")){\n $ERROR('#12: myObj.NaN !== NaN');\n}\n\nif(!(st_Infinity !== Infinity)){\n $ERROR('#13: myObj.Infinity !== Infinity');\n}\n\nif(!(st_eval !== eval)){\n $ERROR('#14: myObj.eval !== eval');\n}\n\nif(!(st_parseFloat !== parseFloat)){\n $ERROR('#15: myObj.parseFloat !== parseFloat');\n}\n\nif(!(st_isNaN !== isNaN)){\n $ERROR('#16: myObj.isNaN !== isNaN');\n}\n\nif(!(st_isFinite !== isFinite)){\n $ERROR('#17: myObj.isFinite !== isFinite');\n}\n\ntry{\n value;\n $ERROR('#18: value is not defined');\n}\ncatch(e){\n}\n\nif(!(myObj.value === \"value\")){\n $ERROR('#19: myObj.value === \"value\". Actual: myObj.value ==='+ myObj.value );\n}\n",
+ "id": "S12.10_A1.3_T2",
+ "strict_only": ""
+ },
+ {
+ "section": "12.10",
+ "description": "Using \"with\" statement within function constructor, leading to normal completition by \"return\"",
+ "strict_mode_negative": "",
+ "test": "this.p1 = 1;\nthis.p2 = 2;\nthis.p3 = 3;\nvar result = \"result\";\nvar myObj = {p1: 'a', \n p2: 'b', \n p3: 'c',\n value: 'myObj_value',\n valueOf : function(){return 'obj_valueOf';},\n parseInt : function(){return 'obj_parseInt';},\n NaN : 'obj_NaN',\n Infinity : 'obj_Infinity',\n eval : function(){return 'obj_eval';},\n parseFloat : function(){return 'obj_parseFloat';},\n isNaN : function(){return 'obj_isNaN';},\n isFinite : function(){return 'obj_isFinite';}\n}\nvar del;\nvar st_p1 = \"p1\";\nvar st_p2 = \"p2\";\nvar st_p3 = \"p3\";\nvar st_parseInt = \"parseInt\";\nvar st_NaN = \"NaN\";\nvar st_Infinity = \"Infinity\";\nvar st_eval = \"eval\";\nvar st_parseFloat = \"parseFloat\";\nvar st_isNaN = \"isNaN\";\nvar st_isFinite = \"isFinite\";\n\nvar f = function(){\n with(myObj){\n return value;\n st_p1 = p1;\n st_p2 = p2;\n st_p3 = p3;\n st_parseInt = parseInt;\n st_NaN = NaN;\n st_Infinity = Infinity;\n st_eval = eval;\n st_parseFloat = parseFloat;\n st_isNaN = isNaN;\n st_isFinite = isFinite;\n p1 = 'x1';\n this.p2 = 'x2';\n del = delete p3;\n var p4 = 'x4';\n p5 = 'x5';\n var value = 'value';\n }\n}\nvar obj = new f();\n\nif(!(p1 === 1)){\n $ERROR('#1: p1 === 1. Actual: p1 ==='+ p1 );\n}\n\nif(!(p2 === 2)){\n $ERROR('#2: p2 === 2. Actual: p2 ==='+ p2 );\n}\n\nif(!(p3 === 3)){\n $ERROR('#3: p3 === 3. Actual: p3 ==='+ p3 );\n}\n\ntry {\n p4;\n $ERROR('#4: p4 is not defined');\n} catch(e) { \n}\n\ntry {\n p5;\n $ERROR('#5: p5 is not defined');\n} catch(e) { \n}\n\nif(!(myObj.p1 === \"a\")){\n $ERROR('#6: myObj.p1 === \"a\". Actual: myObj.p1 ==='+ myObj.p1 );\n}\n\nif(!(myObj.p2 === \"b\")){\n $ERROR('#7: myObj.p2 === \"b\". Actual: myObj.p2 ==='+ myObj.p2 );\n}\n\nif(!(myObj.p3 === \"c\")){\n $ERROR('#8: myObj.p3 === \"c\". Actual: myObj.p3 ==='+ myObj.p3 );\n}\n\nif(!(myObj.p4 === undefined)){\n $ERROR('#9: myObj.p4 === undefined. Actual: myObj.p4 ==='+ myObj.p4 );\n}\n\nif(!(myObj.p5 === undefined)){\n $ERROR('#10: myObj.p5 === undefined. Actual: myObj.p5 ==='+ myObj.p5 );\n}\n\nif(!(st_parseInt === \"parseInt\")){\n $ERROR('#11: myObj.parseInt === \"parseInt\". Actual: myObj.parseInt ==='+ myObj.parseInt );\n}\n\nif(!(st_NaN === \"NaN\")){\n $ERROR('#12: st_NaN === \"NaN\". Actual: st_NaN ==='+ st_NaN );\n}\n\nif(!(st_Infinity === \"Infinity\")){\n $ERROR('#13: st_Infinity === \"Infinity\". Actual: st_Infinity ==='+ st_Infinity );\n}\n\nif(!(st_eval === \"eval\")){\n $ERROR('#14: st_eval === \"eval\". Actual: st_eval ==='+ st_eval );\n}\n\nif(!(st_parseFloat === \"parseFloat\")){\n $ERROR('#15: st_parseFloat === \"parseFloat\". Actual: st_parseFloat ==='+ st_parseFloat );\n}\n\nif(!(st_isNaN === \"isNaN\")){\n $ERROR('#16: st_isNaN === \"isNaN\". Actual: st_isNaN ==='+ st_isNaN );\n}\n\nif(!(st_isFinite === \"isFinite\")){\n $ERROR('#17: st_isFinite === \"isFinite\". Actual: st_isFinite ==='+ st_isFinite );\n}\n\ntry{\n value;\n $ERROR('#18: value is not defined');\n}\ncatch(e){\n}\n\nif(!(myObj.value === \"myObj_value\")){\n $ERROR('#19: myObj.value === \"myObj_value\". Actual: myObj.value ==='+ myObj.value );\n}\n\n",
+ "id": "S12.10_A1.3_T3",
+ "strict_only": ""
+ },
+ {
+ "section": "12.10",
+ "description": "Using \"with\" statement within function constructor, leading to completition by exception",
+ "strict_mode_negative": "",
+ "test": "this.p1 = 1;\nthis.p2 = 2;\nthis.p3 = 3;\nvar result = \"result\";\nvar myObj = {p1: 'a', \n p2: 'b', \n p3: 'c',\n value: 'myObj_value',\n valueOf : function(){return 'obj_valueOf';},\n parseInt : function(){return 'obj_parseInt';},\n NaN : 'obj_NaN',\n Infinity : 'obj_Infinity',\n eval : function(){return 'obj_eval';},\n parseFloat : function(){return 'obj_parseFloat';},\n isNaN : function(){return 'obj_isNaN';},\n isFinite : function(){return 'obj_isFinite';}\n}\nvar del;\nvar st_p1 = \"p1\";\nvar st_p2 = \"p2\";\nvar st_p3 = \"p3\";\nvar st_parseInt = \"parseInt\";\nvar st_NaN = \"NaN\";\nvar st_Infinity = \"Infinity\";\nvar st_eval = \"eval\";\nvar st_parseFloat = \"parseFloat\";\nvar st_isNaN = \"isNaN\";\nvar st_isFinite = \"isFinite\";\n\ntry {\n var f = function(){\n with(myObj){\n st_p1 = p1;\n st_p2 = p2;\n st_p3 = p3;\n st_parseInt = parseInt;\n st_NaN = NaN;\n st_Infinity = Infinity;\n st_eval = eval;\n st_parseFloat = parseFloat;\n st_isNaN = isNaN;\n st_isFinite = isFinite;\n p1 = 'x1';\n this.p2 = 'x2';\n del = delete p3;\n var p4 = 'x4';\n p5 = 'x5';\n var value = 'value';\n throw value;\n }\n }\n var obj = new f();\n} catch(e){\n result = e;\n}\n\nif(!(result === \"value\")){\n $ERROR('#0: result === \"value\". Actual: result ==='+ result );\n}\n\nif(!(p1 === 1)){\n $ERROR('#1: p1 === 1. Actual: p1 ==='+ p1 );\n}\n\nif(!(p2 === 2)){\n $ERROR('#2: p2 === 2. Actual: p2 ==='+ p2 );\n}\n\ntry {\n p4;\n $ERROR('#4: p4 is not defined');\n} catch(e) { \n}\n\nif(!(p5 === \"x5\")){\n $ERROR('#5: p5 === \"x5\". Actual: p5 ==='+ p5 );\n}\n\nif(!(myObj.p1 === \"x1\")){\n $ERROR('#6: myObj.p1 === \"x1\". Actual: myObj.p1 ==='+ myObj.p1 );\n}\n\nif(!(myObj.p2 === \"b\")){\n $ERROR('#7: myObj.p2 === \"b\". Actual: myObj.p2 ==='+ myObj.p2 );\n}\n\nif(!(myObj.p3 === undefined)){\n $ERROR('#8: myObj.p3 === undefined. Actual: myObj.p3 ==='+ myObj.p3 );\n}\n\nif(!(myObj.p4 === undefined)){\n $ERROR('#9: myObj.p4 === undefined. Actual: myObj.p4 ==='+ myObj.p4 );\n}\n\nif(!(myObj.p5 === undefined)){\n $ERROR('#10: myObj.p5 === undefined. Actual: myObj.p5 ==='+ myObj.p5 );\n}\n\nif(!(st_parseInt !== parseInt)){\n $ERROR('#11: myObj.parseInt !== parseInt');\n}\n\nif(!(st_NaN === \"obj_NaN\")){\n $ERROR('#12: myObj.NaN !== NaN');\n}\n\nif(!(st_Infinity !== Infinity)){\n $ERROR('#13: myObj.Infinity !== Infinity');\n}\n\nif(!(st_eval !== eval)){\n $ERROR('#14: myObj.eval !== eval');\n}\n\nif(!(st_parseFloat !== parseFloat)){\n $ERROR('#15: myObj.parseFloat !== parseFloat');\n}\n\nif(!(st_isNaN !== isNaN)){\n $ERROR('#16: myObj.isNaN !== isNaN');\n}\n\nif(!(st_isFinite !== isFinite)){\n $ERROR('#17: myObj.isFinite !== isFinite');\n}\n\ntry{\n value;\n $ERROR('#18: value is not defined');\n}\ncatch(e){\n}\n\nif(!(myObj.value === \"value\")){\n $ERROR('#19: myObj.value === \"value\". Actual: myObj.value ==='+ myObj.value );\n}\n",
+ "id": "S12.10_A1.3_T4",
+ "strict_only": ""
+ },
+ {
+ "section": "12.10",
+ "description": "Using \"with\" statement within function constructor, leading to completition by exception",
+ "strict_mode_negative": "",
+ "test": "this.p1 = 1;\nthis.p2 = 2;\nthis.p3 = 3;\nvar result = \"result\";\nvar myObj = {p1: 'a', \n p2: 'b', \n p3: 'c',\n value: 'myObj_value',\n valueOf : function(){return 'obj_valueOf';},\n parseInt : function(){return 'obj_parseInt';},\n NaN : 'obj_NaN',\n Infinity : 'obj_Infinity',\n eval : function(){return 'obj_eval';},\n parseFloat : function(){return 'obj_parseFloat';},\n isNaN : function(){return 'obj_isNaN';},\n isFinite : function(){return 'obj_isFinite';}\n}\nvar del;\nvar st_p1 = \"p1\";\nvar st_p2 = \"p2\";\nvar st_p3 = \"p3\";\nvar st_parseInt = \"parseInt\";\nvar st_NaN = \"NaN\";\nvar st_Infinity = \"Infinity\";\nvar st_eval = \"eval\";\nvar st_parseFloat = \"parseFloat\";\nvar st_isNaN = \"isNaN\";\nvar st_isFinite = \"isFinite\";\n\ntry {\n var f = function(){\n with(myObj){\n throw value;\n st_p1 = p1;\n st_p2 = p2;\n st_p3 = p3;\n st_parseInt = parseInt;\n st_NaN = NaN;\n st_Infinity = Infinity;\n st_eval = eval;\n st_parseFloat = parseFloat;\n st_isNaN = isNaN;\n st_isFinite = isFinite;\n p1 = 'x1';\n this.p2 = 'x2';\n del = delete p3;\n var p4 = 'x4';\n p5 = 'x5';\n var value = 'value';\n }\n }\n var obj = new f();\n} catch(e){\n result = e;\n}\n\nif(!(result === \"myObj_value\")){\n $ERROR('#0: result === \"myObj_value\". Actual: result ==='+ result );\n}\n\nif(!(p1 === 1)){\n $ERROR('#1: p1 === 1. Actual: p1 ==='+ p1 );\n}\n\nif(!(p2 === 2)){\n $ERROR('#2: p2 === 2. Actual: p2 ==='+ p2 );\n}\n\nif(!(p3 === 3)){\n $ERROR('#3: p3 === 3. Actual: p3 ==='+ p3 );\n}\n\ntry {\n p4;\n $ERROR('#4: p4 is not defined');\n} catch(e) { \n}\n\ntry {\n p5;\n $ERROR('#5: p5 is not defined');\n} catch(e) { \n}\n\nif(!(myObj.p1 === \"a\")){\n $ERROR('#6: myObj.p1 === \"a\". Actual: myObj.p1 ==='+ myObj.p1 );\n}\n\nif(!(myObj.p2 === \"b\")){\n $ERROR('#7: myObj.p2 === \"b\". Actual: myObj.p2 ==='+ myObj.p2 );\n}\n\nif(!(myObj.p3 === \"c\")){\n $ERROR('#8: myObj.p3 === \"c\". Actual: myObj.p3 ==='+ myObj.p3 );\n}\n\nif(!(myObj.p4 === undefined)){\n $ERROR('#9: myObj.p4 === undefined. Actual: myObj.p4 ==='+ myObj.p4 );\n}\n\nif(!(myObj.p5 === undefined)){\n $ERROR('#10: myObj.p5 === undefined. Actual: myObj.p5 ==='+ myObj.p5 );\n}\n\nif(!(st_parseInt === \"parseInt\")){\n $ERROR('#11: myObj.parseInt === \"parseInt\". Actual: myObj.parseInt ==='+ myObj.parseInt );\n}\n\nif(!(st_NaN === \"NaN\")){\n $ERROR('#12: st_NaN === \"NaN\". Actual: st_NaN ==='+ st_NaN );\n}\n\nif(!(st_Infinity === \"Infinity\")){\n $ERROR('#13: st_Infinity === \"Infinity\". Actual: st_Infinity ==='+ st_Infinity );\n}\n\nif(!(st_eval === \"eval\")){\n $ERROR('#14: st_eval === \"eval\". Actual: st_eval ==='+ st_eval );\n}\n\nif(!(st_parseFloat === \"parseFloat\")){\n $ERROR('#15: st_parseFloat === \"parseFloat\". Actual: st_parseFloat ==='+ st_parseFloat );\n}\n\nif(!(st_isNaN === \"isNaN\")){\n $ERROR('#16: st_isNaN === \"isNaN\". Actual: st_isNaN ==='+ st_isNaN );\n}\n\nif(!(st_isFinite === \"isFinite\")){\n $ERROR('#17: st_isFinite === \"isFinite\". Actual: st_isFinite ==='+ st_isFinite );\n}\n\ntry{\n value;\n $ERROR('#18: value is not defined');\n}\ncatch(e){\n}\n\nif(!(myObj.value === \"myObj_value\")){\n $ERROR('#19: myObj.value === \"myObj_value\". Actual: myObj.value ==='+ myObj.value );\n}\n\n",
+ "id": "S12.10_A1.3_T5",
+ "strict_only": ""
+ },
+ {
+ "section": "12.10",
+ "description": "Using \"with\" statement within iteration statement, leading to normal completion",
+ "strict_mode_negative": "",
+ "test": "this.p1 = 1;\nthis.p2 = 2;\nthis.p3 = 3;\nvar result = \"result\";\nvar myObj = {p1: 'a', \n p2: 'b', \n p3: 'c',\n value: 'myObj_value',\n valueOf : function(){return 'obj_valueOf';},\n parseInt : function(){return 'obj_parseInt';},\n NaN : 'obj_NaN',\n Infinity : 'obj_Infinity',\n eval : function(){return 'obj_eval';},\n parseFloat : function(){return 'obj_parseFloat';},\n isNaN : function(){return 'obj_isNaN';},\n isFinite : function(){return 'obj_isFinite';}\n}\nvar del;\nvar st_p1 = \"p1\";\nvar st_p2 = \"p2\";\nvar st_p3 = \"p3\";\nvar st_parseInt = \"parseInt\";\nvar st_NaN = \"NaN\";\nvar st_Infinity = \"Infinity\";\nvar st_eval = \"eval\";\nvar st_parseFloat = \"parseFloat\";\nvar st_isNaN = \"isNaN\";\nvar st_isFinite = \"isFinite\";\n\ndo{\n with(myObj){\n st_p1 = p1;\n st_p2 = p2;\n st_p3 = p3;\n st_parseInt = parseInt;\n st_NaN = NaN;\n st_Infinity = Infinity;\n st_eval = eval;\n st_parseFloat = parseFloat;\n st_isNaN = isNaN;\n st_isFinite = isFinite;\n p1 = 'x1';\n this.p2 = 'x2';\n del = delete p3;\n var p4 = 'x4';\n p5 = 'x5';\n var value = 'value';\n }\n}\nwhile(false);\n\nif(!(p1 === 1)){\n $ERROR('#1: p1 === 1. Actual: p1 ==='+ p1 );\n}\n\nif(!(p2 === \"x2\")){\n $ERROR('#2: p2 === \"x2\". Actual: p2 ==='+ p2 );\n}\n\nif(!(p3 === 3)){\n $ERROR('#3: p3 === 3. Actual: p3 ==='+ p3 );\n}\n\nif(!(p4 === \"x4\")){\n $ERROR('#4: p4 === \"x4\". Actual: p4 ==='+ p4 );\n}\n\nif(!(p5 === \"x5\")){\n $ERROR('#5: p5 === \"x5\". Actual: p5 ==='+ p5 );\n}\n\nif(!(myObj.p1 === \"x1\")){\n $ERROR('#6: myObj.p1 === \"x1\". Actual: myObj.p1 ==='+ myObj.p1 );\n}\n\nif(!(myObj.p2 === \"b\")){\n $ERROR('#7: myObj.p2 === \"b\". Actual: myObj.p2 ==='+ myObj.p2 );\n}\n\nif(!(myObj.p3 === undefined)){\n $ERROR('#8: myObj.p3 === undefined. Actual: myObj.p3 ==='+ myObj.p3 );\n}\n\nif(!(myObj.p4 === undefined)){\n $ERROR('#9: myObj.p4 === undefined. Actual: myObj.p4 ==='+ myObj.p4 );\n}\n\nif(!(myObj.p5 === undefined)){\n $ERROR('#10: myObj.p5 === undefined. Actual: myObj.p5 ==='+ myObj.p5 );\n}\n\nif(!(st_parseInt !== parseInt)){\n $ERROR('#11: myObj.parseInt !== parseInt');\n}\n\nif(!(st_NaN === \"obj_NaN\")){\n $ERROR('#12: myObj.NaN !== NaN');\n}\n\nif(!(st_Infinity !== Infinity)){\n $ERROR('#13: myObj.Infinity !== Infinity');\n}\n\nif(!(st_eval !== eval)){\n $ERROR('#14: myObj.eval !== eval');\n}\n\nif(!(st_parseFloat !== parseFloat)){\n $ERROR('#15: myObj.parseFloat !== parseFloat');\n}\n\nif(!(st_isNaN !== isNaN)){\n $ERROR('#16: myObj.isNaN !== isNaN');\n}\n\nif(!(st_isFinite !== isFinite)){\n $ERROR('#17: myObj.isFinite !== isFinite');\n}\n\nif(!(value === undefined)){\n $ERROR('#18: value === undefined. Actual: value ==='+ value );\n}\n\nif(!(myObj.value === \"value\")){\n $ERROR('#19: myObj.value === \"value\". Actual: myObj.value ==='+ myObj.value );\n}\n",
+ "id": "S12.10_A1.4_T1",
+ "strict_only": ""
+ },
+ {
+ "section": "12.10",
+ "description": "Using \"with\" statement within iteration statement, leading to completion by exception",
+ "strict_mode_negative": "",
+ "test": "this.p1 = 1;\nthis.p2 = 2;\nthis.p3 = 3;\nvar result = \"result\";\nvar myObj = {p1: 'a', \n p2: 'b', \n p3: 'c',\n value: 'myObj_value',\n valueOf : function(){return 'obj_valueOf';},\n parseInt : function(){return 'obj_parseInt';},\n NaN : 'obj_NaN',\n Infinity : 'obj_Infinity',\n eval : function(){return 'obj_eval';},\n parseFloat : function(){return 'obj_parseFloat';},\n isNaN : function(){return 'obj_isNaN';},\n isFinite : function(){return 'obj_isFinite';}\n}\nvar del;\nvar st_p1 = \"p1\";\nvar st_p2 = \"p2\";\nvar st_p3 = \"p3\";\nvar st_parseInt = \"parseInt\";\nvar st_NaN = \"NaN\";\nvar st_Infinity = \"Infinity\";\nvar st_eval = \"eval\";\nvar st_parseFloat = \"parseFloat\";\nvar st_isNaN = \"isNaN\";\nvar st_isFinite = \"isFinite\";\n\ntry {\n do{\n with(myObj){\n st_p1 = p1;\n st_p2 = p2;\n st_p3 = p3;\n st_parseInt = parseInt;\n st_NaN = NaN;\n st_Infinity = Infinity;\n st_eval = eval;\n st_parseFloat = parseFloat;\n st_isNaN = isNaN;\n st_isFinite = isFinite;\n p1 = 'x1';\n this.p2 = 'x2';\n del = delete p3;\n var p4 = 'x4';\n p5 = 'x5';\n var value = 'value';\n throw value;\n }\n }\n while(false);\n} catch(e){\n result = e;\n}\n\nif(!(result === \"value\")){\n $ERROR('#0: result === \"value\". Actual: result ==='+ result );\n}\n\nif(!(p1 === 1)){\n $ERROR('#1: p1 === 1. Actual: p1 ==='+ p1 );\n}\n\nif(!(p2 === \"x2\")){\n $ERROR('#2: p2 === \"x2\". Actual: p2 ==='+ p2 );\n}\n\nif(!(p3 === 3)){\n $ERROR('#3: p3 === 3. Actual: p3 ==='+ p3 );\n}\n\nif(!(p4 === \"x4\")){\n $ERROR('#4: p4 === \"x4\". Actual: p4 ==='+ p4 );\n}\n\nif(!(p5 === \"x5\")){\n $ERROR('#5: p5 === \"x5\". Actual: p5 ==='+ p5 );\n}\n\nif(!(myObj.p1 === \"x1\")){\n $ERROR('#6: myObj.p1 === \"x1\". Actual: myObj.p1 ==='+ myObj.p1 );\n}\n\nif(!(myObj.p2 === \"b\")){\n $ERROR('#7: myObj.p2 === \"b\". Actual: myObj.p2 ==='+ myObj.p2 );\n}\n\nif(!(myObj.p3 === undefined)){\n $ERROR('#8: myObj.p3 === undefined. Actual: myObj.p3 ==='+ myObj.p3 );\n}\n\nif(!(myObj.p4 === undefined)){\n $ERROR('#9: myObj.p4 === undefined. Actual: myObj.p4 ==='+ myObj.p4 );\n}\n\nif(!(myObj.p5 === undefined)){\n $ERROR('#10: myObj.p5 === undefined. Actual: myObj.p5 ==='+ myObj.p5 );\n}\n\nif(!(st_parseInt !== parseInt)){\n $ERROR('#11: myObj.parseInt !== parseInt');\n}\n\nif(!(st_NaN === \"obj_NaN\")){\n $ERROR('#12: myObj.NaN !== NaN');\n}\n\nif(!(st_Infinity !== Infinity)){\n $ERROR('#13: myObj.Infinity !== Infinity');\n}\n\nif(!(st_eval !== eval)){\n $ERROR('#14: myObj.eval !== eval');\n}\n\nif(!(st_parseFloat !== parseFloat)){\n $ERROR('#15: myObj.parseFloat !== parseFloat');\n}\n\nif(!(st_isNaN !== isNaN)){\n $ERROR('#16: myObj.isNaN !== isNaN');\n}\n\nif(!(st_isFinite !== isFinite)){\n $ERROR('#17: myObj.isFinite !== isFinite');\n}\n\nif(!(value === undefined)){\n $ERROR('#18: value === undefined. Actual: value ==='+ value );\n}\n\nif(!(myObj.value === \"value\")){\n $ERROR('#19: myObj.value === \"value\". Actual: myObj.value ==='+ myObj.value );\n}\n",
+ "id": "S12.10_A1.4_T2",
+ "strict_only": ""
+ },
+ {
+ "section": "12.10",
+ "description": "Using \"with\" statement within iteration statement, leading to completion by exception",
+ "strict_mode_negative": "",
+ "test": "this.p1 = 1;\nthis.p2 = 2;\nthis.p3 = 3;\nvar result = \"result\";\nvar myObj = {p1: 'a', \n p2: 'b', \n p3: 'c',\n value: 'myObj_value',\n valueOf : function(){return 'obj_valueOf';},\n parseInt : function(){return 'obj_parseInt';},\n NaN : 'obj_NaN',\n Infinity : 'obj_Infinity',\n eval : function(){return 'obj_eval';},\n parseFloat : function(){return 'obj_parseFloat';},\n isNaN : function(){return 'obj_isNaN';},\n isFinite : function(){return 'obj_isFinite';}\n}\nvar del;\nvar st_p1 = \"p1\";\nvar st_p2 = \"p2\";\nvar st_p3 = \"p3\";\nvar st_parseInt = \"parseInt\";\nvar st_NaN = \"NaN\";\nvar st_Infinity = \"Infinity\";\nvar st_eval = \"eval\";\nvar st_parseFloat = \"parseFloat\";\nvar st_isNaN = \"isNaN\";\nvar st_isFinite = \"isFinite\";\n\ntry {\n do{\n with(myObj){\n throw value;\n st_p1 = p1;\n st_p2 = p2;\n st_p3 = p3;\n st_parseInt = parseInt;\n st_NaN = NaN;\n st_Infinity = Infinity;\n st_eval = eval;\n st_parseFloat = parseFloat;\n st_isNaN = isNaN;\n st_isFinite = isFinite;\n p1 = 'x1';\n this.p2 = 'x2';\n del = delete p3;\n var p4 = 'x4';\n p5 = 'x5';\n var value = 'value';\n }\n }\n while(false);\n} catch(e){\n result = e;\n}\n\nif(!(result === \"myObj_value\")){\n $ERROR('#0: result === \"myObj_value\". Actual: result ==='+ result );\n}\n\nif(!(p1 === 1)){\n $ERROR('#1: p1 === 1. Actual: p1 ==='+ p1 );\n}\n\nif(!(p2 === 2)){\n $ERROR('#2: p2 === 2. Actual: p2 ==='+ p2 );\n}\n\nif(!(p3 === 3)){\n $ERROR('#3: p3 === 3. Actual: p3 ==='+ p3 );\n}\n\nif(!(p4 === undefined)){\n $ERROR('#4: p4 === undefined. Actual: p4 ==='+ p4 );\n}\n\ntry {\n p5;\n $ERROR('#5: p5 is not defined');\n} catch(e) { \n}\n\nif(!(myObj.p1 === \"a\")){\n $ERROR('#6: myObj.p1 === \"a\". Actual: myObj.p1 ==='+ myObj.p1 );\n}\n\nif(!(myObj.p2 === \"b\")){\n $ERROR('#7: myObj.p2 === \"b\". Actual: myObj.p2 ==='+ myObj.p2 );\n}\n\nif(!(myObj.p3 === \"c\")){\n $ERROR('#8: myObj.p3 === \"c\". Actual: myObj.p3 ==='+ myObj.p3 );\n}\n\nif(!(myObj.p4 === undefined)){\n $ERROR('#9: myObj.p4 === undefined. Actual: myObj.p4 ==='+ myObj.p4 );\n}\n\nif(!(myObj.p5 === undefined)){\n $ERROR('#10: myObj.p5 === undefined. Actual: myObj.p5 ==='+ myObj.p5 );\n}\n\nif(!(st_parseInt === \"parseInt\")){\n $ERROR('#11: myObj.parseInt === \"parseInt\". Actual: myObj.parseInt ==='+ myObj.parseInt );\n}\n\nif(!(st_NaN === \"NaN\")){\n $ERROR('#12: st_NaN === \"NaN\". Actual: st_NaN ==='+ st_NaN );\n}\n\nif(!(st_Infinity === \"Infinity\")){\n $ERROR('#13: st_Infinity === \"Infinity\". Actual: st_Infinity ==='+ st_Infinity );\n}\n\nif(!(st_eval === \"eval\")){\n $ERROR('#14: st_eval === \"eval\". Actual: st_eval ==='+ st_eval );\n}\n\nif(!(st_parseFloat === \"parseFloat\")){\n $ERROR('#15: st_parseFloat === \"parseFloat\". Actual: st_parseFloat ==='+ st_parseFloat );\n}\n\nif(!(st_isNaN === \"isNaN\")){\n $ERROR('#16: st_isNaN === \"isNaN\". Actual: st_isNaN ==='+ st_isNaN );\n}\n\nif(!(st_isFinite === \"isFinite\")){\n $ERROR('#17: st_isFinite === \"isFinite\". Actual: st_isFinite ==='+ st_isFinite );\n}\n\nif(!(value === undefined)){\n $ERROR('#18: value === undefined. Actual: value ==='+ value );\n}\n\nif(!(myObj.value === \"myObj_value\")){\n $ERROR('#19: myObj.value === \"myObj_value\". Actual: myObj.value ==='+ myObj.value );\n}\n",
+ "id": "S12.10_A1.4_T3",
+ "strict_only": ""
+ },
+ {
+ "section": "12.10",
+ "description": "Using \"with\" statement within iteration statement, leading to completion by break",
+ "strict_mode_negative": "",
+ "test": "this.p1 = 1;\nthis.p2 = 2;\nthis.p3 = 3;\nvar result = \"result\";\nvar myObj = {p1: 'a', \n p2: 'b', \n p3: 'c',\n value: 'myObj_value',\n valueOf : function(){return 'obj_valueOf';},\n parseInt : function(){return 'obj_parseInt';},\n NaN : 'obj_NaN',\n Infinity : 'obj_Infinity',\n eval : function(){return 'obj_eval';},\n parseFloat : function(){return 'obj_parseFloat';},\n isNaN : function(){return 'obj_isNaN';},\n isFinite : function(){return 'obj_isFinite';}\n}\nvar del;\nvar st_p1 = \"p1\";\nvar st_p2 = \"p2\";\nvar st_p3 = \"p3\";\nvar st_parseInt = \"parseInt\";\nvar st_NaN = \"NaN\";\nvar st_Infinity = \"Infinity\";\nvar st_eval = \"eval\";\nvar st_parseFloat = \"parseFloat\";\nvar st_isNaN = \"isNaN\";\nvar st_isFinite = \"isFinite\";\n\ndo{\n with(myObj){\n st_p1 = p1;\n st_p2 = p2;\n st_p3 = p3;\n st_parseInt = parseInt;\n st_NaN = NaN;\n st_Infinity = Infinity;\n st_eval = eval;\n st_parseFloat = parseFloat;\n st_isNaN = isNaN;\n st_isFinite = isFinite;\n p1 = 'x1';\n this.p2 = 'x2';\n del = delete p3;\n var p4 = 'x4';\n p5 = 'x5';\n var value = 'value';\n break;\n }\n}\nwhile(false);\n\nif(!(p1 === 1)){\n $ERROR('#1: p1 === 1. Actual: p1 ==='+ p1 );\n}\n\nif(!(p2 === \"x2\")){\n $ERROR('#2: p2 === \"x2\". Actual: p2 ==='+ p2 );\n}\n\nif(!(p3 === 3)){\n $ERROR('#3: p3 === 3. Actual: p3 ==='+ p3 );\n}\n\nif(!(p4 === \"x4\")){\n $ERROR('#4: p4 === \"x4\". Actual: p4 ==='+ p4 );\n}\n\nif(!(p5 === \"x5\")){\n $ERROR('#5: p5 === \"x5\". Actual: p5 ==='+ p5 );\n}\n\nif(!(myObj.p1 === \"x1\")){\n $ERROR('#6: myObj.p1 === \"x1\". Actual: myObj.p1 ==='+ myObj.p1 );\n}\n\nif(!(myObj.p2 === \"b\")){\n $ERROR('#7: myObj.p2 === \"b\". Actual: myObj.p2 ==='+ myObj.p2 );\n}\n\nif(!(myObj.p3 === undefined)){\n $ERROR('#8: myObj.p3 === undefined. Actual: myObj.p3 ==='+ myObj.p3 );\n}\n\nif(!(myObj.p4 === undefined)){\n $ERROR('#9: myObj.p4 === undefined. Actual: myObj.p4 ==='+ myObj.p4 );\n}\n\nif(!(myObj.p5 === undefined)){\n $ERROR('#10: myObj.p5 === undefined. Actual: myObj.p5 ==='+ myObj.p5 );\n}\n\nif(!(st_parseInt !== parseInt)){\n $ERROR('#11: myObj.parseInt !== parseInt');\n}\n\nif(!(st_NaN === \"obj_NaN\")){\n $ERROR('#12: myObj.NaN !== NaN');\n}\n\nif(!(st_Infinity !== Infinity)){\n $ERROR('#13: myObj.Infinity !== Infinity');\n}\n\nif(!(st_eval !== eval)){\n $ERROR('#14: myObj.eval !== eval');\n}\n\nif(!(st_parseFloat !== parseFloat)){\n $ERROR('#15: myObj.parseFloat !== parseFloat');\n}\n\nif(!(st_isNaN !== isNaN)){\n $ERROR('#16: myObj.isNaN !== isNaN');\n}\n\nif(!(st_isFinite !== isFinite)){\n $ERROR('#17: myObj.isFinite !== isFinite');\n}\n\nif(!(value === undefined)){\n $ERROR('#18: value === undefined. Actual: value ==='+ value );\n}\n\nif(!(myObj.value === \"value\")){\n $ERROR('#19: myObj.value === \"value\". Actual: myObj.value ==='+ myObj.value );\n}\n",
+ "id": "S12.10_A1.4_T4",
+ "strict_only": ""
+ },
+ {
+ "section": "12.10",
+ "description": "Using \"with\" statement within iteration statement, leading to completion by break",
+ "strict_mode_negative": "",
+ "test": "this.p1 = 1;\nthis.p2 = 2;\nthis.p3 = 3;\nvar result = \"result\";\nvar myObj = {p1: 'a', \n p2: 'b', \n p3: 'c',\n value: 'myObj_value',\n valueOf : function(){return 'obj_valueOf';},\n parseInt : function(){return 'obj_parseInt';},\n NaN : 'obj_NaN',\n Infinity : 'obj_Infinity',\n eval : function(){return 'obj_eval';},\n parseFloat : function(){return 'obj_parseFloat';},\n isNaN : function(){return 'obj_isNaN';},\n isFinite : function(){return 'obj_isFinite';}\n}\nvar del;\nvar st_p1 = \"p1\";\nvar st_p2 = \"p2\";\nvar st_p3 = \"p3\";\nvar st_parseInt = \"parseInt\";\nvar st_NaN = \"NaN\";\nvar st_Infinity = \"Infinity\";\nvar st_eval = \"eval\";\nvar st_parseFloat = \"parseFloat\";\nvar st_isNaN = \"isNaN\";\nvar st_isFinite = \"isFinite\";\n\ndo{\n with(myObj){\n break;\n st_p1 = p1;\n st_p2 = p2;\n st_p3 = p3;\n st_parseInt = parseInt;\n st_NaN = NaN;\n st_Infinity = Infinity;\n st_eval = eval;\n st_parseFloat = parseFloat;\n st_isNaN = isNaN;\n st_isFinite = isFinite;\n p1 = 'x1';\n this.p2 = 'x2';\n del = delete p3;\n var p4 = 'x4';\n p5 = 'x5';\n var value = 'value';\n }\n}\nwhile(false);\n\nif(!(p1 === 1)){\n $ERROR('#1: p1 === 1. Actual: p1 ==='+ p1 );\n}\n\nif(!(p2 === 2)){\n $ERROR('#2: p2 === 2. Actual: p2 ==='+ p2 );\n}\n\nif(!(p3 === 3)){\n $ERROR('#3: p3 === 3. Actual: p3 ==='+ p3 );\n}\n\nif(!(p4 === undefined)){\n $ERROR('#4: p4 ===undefined. Actual: p4 ==='+ p4 );\n}\n\ntry {\n p5;\n $ERROR('#5: p5 is not defined');\n} catch(e) { \n}\n\nif(!(myObj.p1 === \"a\")){\n $ERROR('#6: myObj.p1 === \"a\". Actual: myObj.p1 ==='+ myObj.p1 );\n}\n\nif(!(myObj.p2 === \"b\")){\n $ERROR('#7: myObj.p2 === \"b\". Actual: myObj.p2 ==='+ myObj.p2 );\n}\n\nif(!(myObj.p3 === \"c\")){\n $ERROR('#8: myObj.p3 === \"c\". Actual: myObj.p3 ==='+ myObj.p3 );\n}\n\nif(!(myObj.p4 === undefined)){\n $ERROR('#9: myObj.p4 === undefined. Actual: myObj.p4 ==='+ myObj.p4 );\n}\n\nif(!(myObj.p5 === undefined)){\n $ERROR('#10: myObj.p5 === undefined. Actual: myObj.p5 ==='+ myObj.p5 );\n}\n\nif(!(st_parseInt === \"parseInt\")){\n $ERROR('#11: myObj.parseInt === \"parseInt\". Actual: myObj.parseInt ==='+ myObj.parseInt );\n}\n\nif(!(st_NaN === \"NaN\")){\n $ERROR('#12: st_NaN === \"NaN\". Actual: st_NaN ==='+ st_NaN );\n}\n\nif(!(st_Infinity === \"Infinity\")){\n $ERROR('#13: st_Infinity === \"Infinity\". Actual: st_Infinity ==='+ st_Infinity );\n}\n\nif(!(st_eval === \"eval\")){\n $ERROR('#14: st_eval === \"eval\". Actual: st_eval ==='+ st_eval );\n}\n\nif(!(st_parseFloat === \"parseFloat\")){\n $ERROR('#15: st_parseFloat === \"parseFloat\". Actual: st_parseFloat ==='+ st_parseFloat );\n}\n\nif(!(st_isNaN === \"isNaN\")){\n $ERROR('#16: st_isNaN === \"isNaN\". Actual: st_isNaN ==='+ st_isNaN );\n}\n\nif(!(st_isFinite === \"isFinite\")){\n $ERROR('#17: st_isFinite === \"isFinite\". Actual: st_isFinite ==='+ st_isFinite );\n}\n\nif(!(value === undefined)){\n $ERROR('#18: value === undefined. Actual: value ==='+ value );\n}\n\nif(!(myObj.value === \"myObj_value\")){\n $ERROR('#19: myObj.value === \"myObj_value\". Actual: myObj.value ==='+ myObj.value );\n}\n",
+ "id": "S12.10_A1.4_T5",
+ "strict_only": ""
+ },
+ {
+ "section": "12.10",
+ "description": "Using \"with\" statement within \"for-in\" statement, leading to normal completion",
+ "strict_mode_negative": "",
+ "test": "this.p1 = 1;\nthis.p2 = 2;\nthis.p3 = 3;\nvar result = \"result\";\nvar myObj = {p1: 'a', \n p2: 'b', \n p3: 'c',\n value: 'myObj_value',\n valueOf : function(){return 'obj_valueOf';},\n parseInt : function(){return 'obj_parseInt';},\n NaN : 'obj_NaN',\n Infinity : 'obj_Infinity',\n eval : function(){return 'obj_eval';},\n parseFloat : function(){return 'obj_parseFloat';},\n isNaN : function(){return 'obj_isNaN';},\n isFinite : function(){return 'obj_isFinite';}\n}\nvar del;\nvar st_p1 = \"p1\";\nvar st_p2 = \"p2\";\nvar st_p3 = \"p3\";\nvar st_parseInt = \"parseInt\";\nvar st_NaN = \"NaN\";\nvar st_Infinity = \"Infinity\";\nvar st_eval = \"eval\";\nvar st_parseFloat = \"parseFloat\";\nvar st_isNaN = \"isNaN\";\nvar st_isFinite = \"isFinite\";\n\nfor(var prop in myObj){\n with(myObj){\n if(prop === 'p1') {\n st_p1 = p1;\n p1 = 'x1';\n }\n if(prop === 'p2') {\n st_p2 = p2;\n this.p2 = 'x2';\n }\n if(prop === 'p3') {\n st_p3 = p3;\n del = delete p3;\n }\n if(prop === 'parseInt') st_parseInt = parseInt;\n if(prop === 'NaN') st_NaN = NaN;\n if(prop === 'Infinity') st_Infinity = Infinity;\n if(prop === 'eval') st_eval = eval;\n if(prop === 'parseFloat') st_parseFloat = parseFloat;\n if(prop === 'isNaN') st_isNaN = isNaN;\n if(prop === 'isFinite') st_isFinite = isFinite;\n var p4 = 'x4';\n p5 = 'x5';\n var value = 'value';\n }\n}\n\nif(!(p1 === 1)){\n $ERROR('#1: p1 === 1. Actual: p1 ==='+ p1 );\n}\n\nif(!(p2 === \"x2\")){\n $ERROR('#2: p2 === \"x2\". Actual: p2 ==='+ p2 );\n}\n\nif(!(p3 === 3)){\n $ERROR('#3: p3 === 3. Actual: p3 ==='+ p3 );\n}\n\nif(!(p4 === \"x4\")){\n $ERROR('#4: p4 === \"x4\". Actual: p4 ==='+ p4 );\n}\n\nif(!(p5 === \"x5\")){\n $ERROR('#5: p5 === \"x5\". Actual: p5 ==='+ p5 );\n}\n\nif(!(myObj.p1 === \"x1\")){\n $ERROR('#6: myObj.p1 === \"x1\". Actual: myObj.p1 ==='+ myObj.p1 );\n}\n\nif(!(myObj.p2 === \"b\")){\n $ERROR('#7: myObj.p2 === \"b\". Actual: myObj.p2 ==='+ myObj.p2 );\n}\n\nif(!(myObj.p3 === undefined)){\n $ERROR('#8: myObj.p3 === undefined. Actual: myObj.p3 ==='+ myObj.p3 );\n}\n\nif(!(myObj.p4 === undefined)){\n $ERROR('#9: myObj.p4 === undefined. Actual: myObj.p4 ==='+ myObj.p4 );\n}\n\nif(!(myObj.p5 === undefined)){\n $ERROR('#10: myObj.p5 === undefined. Actual: myObj.p5 ==='+ myObj.p5 );\n}\n\nif(!(st_parseInt !== parseInt)){\n $ERROR('#11: myObj.parseInt !== parseInt');\n}\n\nif(!(st_NaN === \"obj_NaN\")){\n $ERROR('#12: myObj.NaN !== NaN');\n}\n\nif(!(st_Infinity !== Infinity)){\n $ERROR('#13: myObj.Infinity !== Infinity');\n}\n\nif(!(st_eval !== eval)){\n $ERROR('#14: myObj.eval !== eval');\n}\n\nif(!(st_parseFloat !== parseFloat)){\n $ERROR('#15: myObj.parseFloat !== parseFloat');\n}\n\nif(!(st_isNaN !== isNaN)){\n $ERROR('#16: myObj.isNaN !== isNaN');\n}\n\nif(!(st_isFinite !== isFinite)){\n $ERROR('#17: myObj.isFinite !== isFinite');\n}\n\nif(!(value === undefined)){\n $ERROR('#18: value === undefined. Actual: value ==='+ value );\n}\n\nif(!(myObj.value === \"value\")){\n $ERROR('#19: myObj.value === \"value\". Actual: myObj.value ==='+ myObj.value );\n}\n",
+ "id": "S12.10_A1.5_T1",
+ "strict_only": ""
+ },
+ {
+ "section": "12.10",
+ "description": "Using \"with\" statement within \"for-in\" statement, leading to completion by exception",
+ "strict_mode_negative": "",
+ "test": "this.p1 = 1;\nthis.p2 = 2;\nthis.p3 = 3;\nvar result = \"result\";\nvar myObj = {p1: 'a', \n p2: 'b', \n p3: 'c',\n value: 'myObj_value',\n valueOf : function(){return 'obj_valueOf';},\n parseInt : function(){return 'obj_parseInt';},\n NaN : 'obj_NaN',\n Infinity : 'obj_Infinity',\n eval : function(){return 'obj_eval';},\n parseFloat : function(){return 'obj_parseFloat';},\n isNaN : function(){return 'obj_isNaN';},\n isFinite : function(){return 'obj_isFinite';}\n}\nvar del;\nvar st_p1 = \"p1\";\nvar st_p2 = \"p2\";\nvar st_p3 = \"p3\";\nvar st_parseInt = \"parseInt\";\nvar st_NaN = \"NaN\";\nvar st_Infinity = \"Infinity\";\nvar st_eval = \"eval\";\nvar st_parseFloat = \"parseFloat\";\nvar st_isNaN = \"isNaN\";\nvar st_isFinite = \"isFinite\";\n\ntry {\n for(var prop in myObj){\n with(myObj){\n st_p1 = p1;\n p1 = 'x1';\n st_p2 = p2;\n this.p2 = 'x2';\n st_p3 = p3;\n del = delete p3;\n st_parseInt = parseInt;\n st_NaN = NaN;\n st_Infinity = Infinity;\n st_eval = eval;\n st_parseFloat = parseFloat;\n st_isNaN = isNaN;\n st_isFinite = isFinite;\n var p4 = 'x4';\n p5 = 'x5';\n var value = 'value';\n throw value;\n }\n }\n} catch(e){\n result = e;\n}\n\nif(!(result === \"value\")){\n $ERROR('#0: result === \"value\". Actual: result ==='+ result );\n}\n\nif(!(p1 === 1)){\n $ERROR('#1: p1 === 1. Actual: p1 ==='+ p1 );\n}\n\nif(!(p2 === \"x2\")){\n $ERROR('#2: p2 === \"x2\". Actual: p2 ==='+ p2 );\n}\n\nif(!(p3 === 3)){\n $ERROR('#3: p3 === 3. Actual: p3 ==='+ p3 );\n}\n\nif(!(p4 === \"x4\")){\n $ERROR('#4: p4 === \"x4\". Actual: p4 ==='+ p4 );\n}\n\nif(!(p5 === \"x5\")){\n $ERROR('#5: p5 === \"x5\". Actual: p5 ==='+ p5 );\n}\n\nif(!(myObj.p1 === \"x1\")){\n $ERROR('#6: myObj.p1 === \"x1\". Actual: myObj.p1 ==='+ myObj.p1 );\n}\n\nif(!(myObj.p2 === \"b\")){\n $ERROR('#7: myObj.p2 === \"b\". Actual: myObj.p2 ==='+ myObj.p2 );\n}\n\nif(!(myObj.p3 === undefined)){\n $ERROR('#8: myObj.p3 === undefined. Actual: myObj.p3 ==='+ myObj.p3 );\n}\n\nif(!(myObj.p4 === undefined)){\n $ERROR('#9: myObj.p4 === undefined. Actual: myObj.p4 ==='+ myObj.p4 );\n}\n\nif(!(myObj.p5 === undefined)){\n $ERROR('#10: myObj.p5 === undefined. Actual: myObj.p5 ==='+ myObj.p5 );\n}\n\nif(!(st_parseInt !== parseInt)){\n $ERROR('#11: myObj.parseInt !== parseInt');\n}\n\nif(!(st_NaN === \"obj_NaN\")){\n $ERROR('#12: myObj.NaN !== NaN');\n}\n\nif(!(st_Infinity !== Infinity)){\n $ERROR('#13: myObj.Infinity !== Infinity');\n}\n\nif(!(st_eval !== eval)){\n $ERROR('#14: myObj.eval !== eval');\n}\n\nif(!(st_parseFloat !== parseFloat)){\n $ERROR('#15: myObj.parseFloat !== parseFloat');\n}\n\nif(!(st_isNaN !== isNaN)){\n $ERROR('#16: myObj.isNaN !== isNaN');\n}\n\nif(!(st_isFinite !== isFinite)){\n $ERROR('#17: myObj.isFinite !== isFinite');\n}\n\nif(!(value === undefined)){\n $ERROR('#18: value === undefined. Actual: value ==='+ value );\n}\n\nif(!(myObj.value === \"value\")){\n $ERROR('#19: myObj.value === \"value\". Actual: myObj.value ==='+ myObj.value );\n}\n",
+ "id": "S12.10_A1.5_T2",
+ "strict_only": ""
+ },
+ {
+ "section": "12.10",
+ "description": "Using \"with\" statement within \"for-in\" statement, leading to completion by exception",
+ "strict_mode_negative": "",
+ "test": "this.p1 = 1;\nthis.p2 = 2;\nthis.p3 = 3;\nvar result = \"result\";\nvar myObj = {p1: 'a', \n p2: 'b', \n p3: 'c',\n value: 'myObj_value',\n valueOf : function(){return 'obj_valueOf';},\n parseInt : function(){return 'obj_parseInt';},\n NaN : 'obj_NaN',\n Infinity : 'obj_Infinity',\n eval : function(){return 'obj_eval';},\n parseFloat : function(){return 'obj_parseFloat';},\n isNaN : function(){return 'obj_isNaN';},\n isFinite : function(){return 'obj_isFinite';}\n}\nvar del;\nvar st_p1 = \"p1\";\nvar st_p2 = \"p2\";\nvar st_p3 = \"p3\";\nvar st_parseInt = \"parseInt\";\nvar st_NaN = \"NaN\";\nvar st_Infinity = \"Infinity\";\nvar st_eval = \"eval\";\nvar st_parseFloat = \"parseFloat\";\nvar st_isNaN = \"isNaN\";\nvar st_isFinite = \"isFinite\";\n\ntry {\n for(var prop in myObj){\n with(myObj){\n throw value;\n if(prop === 'p1') {\n st_p1 = p1;\n p1 = 'x1';\n }\n if(prop === 'p2') {\n st_p2 = p2;\n this.p2 = 'x2';\n }\n if(prop === 'p3') {\n st_p3 = p3;\n del = delete p3;\n }\n if(prop === 'parseInt') st_parseInt = parseInt;\n if(prop === 'NaN') st_NaN = NaN;\n if(prop === 'Infinity') st_Infinity = Infinity;\n if(prop === 'eval') st_eval = eval;\n if(prop === 'parseFloat') st_parseFloat = parseFloat;\n if(prop === 'isNaN') st_isNaN = isNaN;\n if(prop === 'isFinite') st_isFinite = isFinite;\n var p4 = 'x4';\n p5 = 'x5';\n var value = 'value';\n }\n }\n} catch(e){\n result = e;\n}\n\nif(!(result === \"myObj_value\")){\n $ERROR('#0: result === \"myObj_value\". Actual: result ==='+ result );\n}\n\nif(!(p1 === 1)){\n $ERROR('#1: p1 === 1. Actual: p1 ==='+ p1 );\n}\n\nif(!(p2 === 2)){\n $ERROR('#2: p2 === 2. Actual: p2 ==='+ p2 );\n}\n\nif(!(p3 === 3)){\n $ERROR('#3: p3 === 3. Actual: p3 ==='+ p3 );\n}\n\nif(!(p4 === undefined)){\n $ERROR('#4: p4 === undefined. Actual: p4 ==='+ p4 );\n}\n\ntry {\n p5;\n $ERROR('#5: p5 is not defined');\n} catch(e) { \n}\n\nif(!(myObj.p1 === \"a\")){\n $ERROR('#6: myObj.p1 === \"a\". Actual: myObj.p1 ==='+ myObj.p1 );\n}\n\nif(!(myObj.p2 === \"b\")){\n $ERROR('#7: myObj.p2 === \"b\". Actual: myObj.p2 ==='+ myObj.p2 );\n}\n\nif(!(myObj.p3 === \"c\")){\n $ERROR('#8: myObj.p3 === \"c\". Actual: myObj.p3 ==='+ myObj.p3 );\n}\n\nif(!(myObj.p4 === undefined)){\n $ERROR('#9: myObj.p4 === undefined. Actual: myObj.p4 ==='+ myObj.p4 );\n}\n\nif(!(myObj.p5 === undefined)){\n $ERROR('#10: myObj.p5 === undefined. Actual: myObj.p5 ==='+ myObj.p5 );\n}\n\nif(!(st_parseInt === \"parseInt\")){\n $ERROR('#11: myObj.parseInt === \"parseInt\". Actual: myObj.parseInt ==='+ myObj.parseInt );\n}\n\nif(!(st_NaN === \"NaN\")){\n $ERROR('#12: st_NaN === \"NaN\". Actual: st_NaN ==='+ st_NaN );\n}\n\nif(!(st_Infinity === \"Infinity\")){\n $ERROR('#13: st_Infinity === \"Infinity\". Actual: st_Infinity ==='+ st_Infinity );\n}\n\nif(!(st_eval === \"eval\")){\n $ERROR('#14: st_eval === \"eval\". Actual: st_eval ==='+ st_eval );\n}\n\nif(!(st_parseFloat === \"parseFloat\")){\n $ERROR('#15: st_parseFloat === \"parseFloat\". Actual: st_parseFloat ==='+ st_parseFloat );\n}\n\nif(!(st_isNaN === \"isNaN\")){\n $ERROR('#16: st_isNaN === \"isNaN\". Actual: st_isNaN ==='+ st_isNaN );\n}\n\nif(!(st_isFinite === \"isFinite\")){\n $ERROR('#17: st_isFinite === \"isFinite\". Actual: st_isFinite ==='+ st_isFinite );\n}\n\nif(!(value === undefined)){\n $ERROR('#18: value === undefined. Actual: value ==='+ value );\n}\n\nif(!(myObj.value === \"myObj_value\")){\n $ERROR('#19: myObj.value === \"myObj_value\". Actual: myObj.value ==='+ myObj.value );\n}\n",
+ "id": "S12.10_A1.5_T3",
+ "strict_only": ""
+ },
+ {
+ "section": "12.10",
+ "description": "Using \"with\" statement within \"for-in\" statement, leading to completion by break",
+ "strict_mode_negative": "",
+ "test": "this.p1 = 1;\nthis.p2 = 2;\nthis.p3 = 3;\nvar result = \"result\";\nvar myObj = {p1: 'a', \n p2: 'b', \n p3: 'c',\n value: 'myObj_value',\n valueOf : function(){return 'obj_valueOf';},\n parseInt : function(){return 'obj_parseInt';},\n NaN : 'obj_NaN',\n Infinity : 'obj_Infinity',\n eval : function(){return 'obj_eval';},\n parseFloat : function(){return 'obj_parseFloat';},\n isNaN : function(){return 'obj_isNaN';},\n isFinite : function(){return 'obj_isFinite';}\n}\nvar del;\nvar st_p1 = \"p1\";\nvar st_p2 = \"p2\";\nvar st_p3 = \"p3\";\nvar st_parseInt = \"parseInt\";\nvar st_NaN = \"NaN\";\nvar st_Infinity = \"Infinity\";\nvar st_eval = \"eval\";\nvar st_parseFloat = \"parseFloat\";\nvar st_isNaN = \"isNaN\";\nvar st_isFinite = \"isFinite\";\n\nfor(var prop in myObj){\n with(myObj){\n st_p1 = p1;\n p1 = 'x1';\n st_p2 = p2;\n this.p2 = 'x2';\n st_p3 = p3;\n del = delete p3;\n st_parseInt = parseInt;\n st_NaN = NaN;\n st_Infinity = Infinity;\n st_eval = eval;\n st_parseFloat = parseFloat;\n st_isNaN = isNaN;\n st_isFinite = isFinite;\n var p4 = 'x4';\n p5 = 'x5';\n var value = 'value';\n break;\n }\n}\n\nif(!(p1 === 1)){\n $ERROR('#1: p1 === 1. Actual: p1 ==='+ p1 );\n}\n\nif(!(p2 === \"x2\")){\n $ERROR('#2: p2 === \"x2\". Actual: p2 ==='+ p2 );\n}\n\nif(!(p3 === 3)){\n $ERROR('#3: p3 === 3. Actual: p3 ==='+ p3 );\n}\n\nif(!(p4 === \"x4\")){\n $ERROR('#4: p4 === \"x4\". Actual: p4 ==='+ p4 );\n}\n\nif(!(p5 === \"x5\")){\n $ERROR('#5: p5 === \"x5\". Actual: p5 ==='+ p5 );\n}\n\nif(!(myObj.p1 === \"x1\")){\n $ERROR('#6: myObj.p1 === \"x1\". Actual: myObj.p1 ==='+ myObj.p1 );\n}\n\nif(!(myObj.p2 === \"b\")){\n $ERROR('#7: myObj.p2 === \"b\". Actual: myObj.p2 ==='+ myObj.p2 );\n}\n\nif(!(myObj.p3 === undefined)){\n $ERROR('#8: myObj.p3 === undefined. Actual: myObj.p3 ==='+ myObj.p3 );\n}\n\nif(!(myObj.p4 === undefined)){\n $ERROR('#9: myObj.p4 === undefined. Actual: myObj.p4 ==='+ myObj.p4 );\n}\n\nif(!(myObj.p5 === undefined)){\n $ERROR('#10: myObj.p5 === undefined. Actual: myObj.p5 ==='+ myObj.p5 );\n}\n\nif(!(st_parseInt !== parseInt)){\n $ERROR('#11: myObj.parseInt !== parseInt');\n}\n\nif(!(st_NaN === \"obj_NaN\")){\n $ERROR('#12: myObj.NaN !== NaN');\n}\n\nif(!(st_Infinity !== Infinity)){\n $ERROR('#13: myObj.Infinity !== Infinity');\n}\n\nif(!(st_eval !== eval)){\n $ERROR('#14: myObj.eval !== eval');\n}\n\nif(!(st_parseFloat !== parseFloat)){\n $ERROR('#15: myObj.parseFloat !== parseFloat');\n}\n\nif(!(st_isNaN !== isNaN)){\n $ERROR('#16: myObj.isNaN !== isNaN');\n}\n\nif(!(st_isFinite !== isFinite)){\n $ERROR('#17: myObj.isFinite !== isFinite');\n}\n\nif(!(value === undefined)){\n $ERROR('#18: value === undefined. Actual: value ==='+ value );\n}\n\nif(!(myObj.value === \"value\")){\n $ERROR('#19: myObj.value === \"value\". Actual: myObj.value ==='+ myObj.value );\n}\n",
+ "id": "S12.10_A1.5_T4",
+ "strict_only": ""
+ },
+ {
+ "section": "12.10",
+ "description": "Using \"with\" statement within \"for-in\" statement, leading to completion by break",
+ "strict_mode_negative": "",
+ "test": "this.p1 = 1;\nthis.p2 = 2;\nthis.p3 = 3;\nvar result = \"result\";\nvar myObj = {p1: 'a', \n p2: 'b', \n p3: 'c',\n value: 'myObj_value',\n valueOf : function(){return 'obj_valueOf';},\n parseInt : function(){return 'obj_parseInt';},\n NaN : 'obj_NaN',\n Infinity : 'obj_Infinity',\n eval : function(){return 'obj_eval';},\n parseFloat : function(){return 'obj_parseFloat';},\n isNaN : function(){return 'obj_isNaN';},\n isFinite : function(){return 'obj_isFinite';}\n}\nvar del;\nvar st_p1 = \"p1\";\nvar st_p2 = \"p2\";\nvar st_p3 = \"p3\";\nvar st_parseInt = \"parseInt\";\nvar st_NaN = \"NaN\";\nvar st_Infinity = \"Infinity\";\nvar st_eval = \"eval\";\nvar st_parseFloat = \"parseFloat\";\nvar st_isNaN = \"isNaN\";\nvar st_isFinite = \"isFinite\";\n\nfor(var prop in myObj){\n with(myObj){\n break;\n if(prop === 'p1') {\n st_p1 = p1;\n p1 = 'x1';\n }\n if(prop === 'p2') {\n st_p2 = p2;\n this.p2 = 'x2';\n }\n if(prop === 'p3') {\n st_p3 = p3;\n del = delete p3;\n }\n if(prop === 'parseInt') st_parseInt = parseInt;\n if(prop === 'NaN') st_NaN = NaN;\n if(prop === 'Infinity') st_Infinity = Infinity;\n if(prop === 'eval') st_eval = eval;\n if(prop === 'parseFloat') st_parseFloat = parseFloat;\n if(prop === 'isNaN') st_isNaN = isNaN;\n if(prop === 'isFinite') st_isFinite = isFinite;\n var p4 = 'x4';\n p5 = 'x5';\n var value = 'value';\n }\n}\n\nif(!(p1 === 1)){\n $ERROR('#1: p1 === 1. Actual: p1 ==='+ p1 );\n}\n\nif(!(p2 === 2)){\n $ERROR('#2: p2 === 2. Actual: p2 ==='+ p2 );\n}\n\nif(!(p3 === 3)){\n $ERROR('#3: p3 === 3. Actual: p3 ==='+ p3 );\n}\n\nif(!(p4 === undefined)){\n $ERROR('#4: p4 === undefined. Actual: p4 ==='+ p4 );\n}\n\ntry {\n p5;\n $ERROR('#5: p5 is not defined');\n} catch(e) { \n}\n\nif(!(myObj.p1 === \"a\")){\n $ERROR('#6: myObj.p1 === \"a\". Actual: myObj.p1 ==='+ myObj.p1 );\n}\n\nif(!(myObj.p2 === \"b\")){\n $ERROR('#7: myObj.p2 === \"b\". Actual: myObj.p2 ==='+ myObj.p2 );\n}\n\nif(!(myObj.p3 === \"c\")){\n $ERROR('#8: myObj.p3 === \"c\". Actual: myObj.p3 ==='+ myObj.p3 );\n}\n\nif(!(myObj.p4 === undefined)){\n $ERROR('#9: myObj.p4 === undefined. Actual: myObj.p4 ==='+ myObj.p4 );\n}\n\nif(!(myObj.p5 === undefined)){\n $ERROR('#10: myObj.p5 === undefined. Actual: myObj.p5 ==='+ myObj.p5 );\n}\n\nif(!(st_parseInt === \"parseInt\")){\n $ERROR('#11: myObj.parseInt === \"parseInt\". Actual: myObj.parseInt ==='+ myObj.parseInt );\n}\n\nif(!(st_NaN === \"NaN\")){\n $ERROR('#12: st_NaN === \"NaN\". Actual: st_NaN ==='+ st_NaN );\n}\n\nif(!(st_Infinity === \"Infinity\")){\n $ERROR('#13: st_Infinity === \"Infinity\". Actual: st_Infinity ==='+ st_Infinity );\n}\n\nif(!(st_eval === \"eval\")){\n $ERROR('#14: st_eval === \"eval\". Actual: st_eval ==='+ st_eval );\n}\n\nif(!(st_parseFloat === \"parseFloat\")){\n $ERROR('#15: st_parseFloat === \"parseFloat\". Actual: st_parseFloat ==='+ st_parseFloat );\n}\n\nif(!(st_isNaN === \"isNaN\")){\n $ERROR('#16: st_isNaN === \"isNaN\". Actual: st_isNaN ==='+ st_isNaN );\n}\n\nif(!(st_isFinite === \"isFinite\")){\n $ERROR('#17: st_isFinite === \"isFinite\". Actual: st_isFinite ==='+ st_isFinite );\n}\n\nif(!(value === undefined)){\n $ERROR('#18: value === undefined. Actual: value ==='+ value );\n}\n\nif(!(myObj.value === \"myObj_value\")){\n $ERROR('#19: myObj.value === \"myObj_value\". Actual: myObj.value ==='+ myObj.value );\n}\n",
+ "id": "S12.10_A1.5_T5",
+ "strict_only": ""
+ },
+ {
+ "section": "12.10",
+ "description": "Using \"with\" statement within another \"with\" statement, leading to normal completion",
+ "strict_mode_negative": "",
+ "test": "this.p1 = 1;\nthis.p2 = 2;\nthis.p3 = 3;\nvar result = \"result\";\nvar myObj = {p1: 'a', \n p2: 'b', \n p3: 'c',\n value: 'myObj_value',\n valueOf : function(){return 'obj_valueOf';},\n parseInt : function(){return 'obj_parseInt';},\n NaN : 'obj_NaN',\n Infinity : 'obj_Infinity',\n eval : function(){return 'obj_eval';},\n parseFloat : function(){return 'obj_parseFloat';},\n isNaN : function(){return 'obj_isNaN';},\n isFinite : function(){return 'obj_isFinite';}\n}\nvar del;\nvar st_p1 = \"p1\";\nvar st_p2 = \"p2\";\nvar st_p3 = \"p3\";\nvar st_parseInt = \"parseInt\";\nvar st_NaN = \"NaN\";\nvar st_Infinity = \"Infinity\";\nvar st_eval = \"eval\";\nvar st_parseFloat = \"parseFloat\";\nvar st_isNaN = \"isNaN\";\nvar st_isFinite = \"isFinite\";\n\nwith(myObj){\n with(myObj){\n st_p1 = p1;\n st_p2 = p2;\n st_p3 = p3;\n st_parseInt = parseInt;\n st_NaN = NaN;\n st_Infinity = Infinity;\n st_eval = eval;\n st_parseFloat = parseFloat;\n st_isNaN = isNaN;\n st_isFinite = isFinite;\n p1 = 'x1';\n this.p2 = 'x2';\n del = delete p3;\n var p4 = 'x4';\n p5 = 'x5';\n var value = 'value';\n }\n}\n\nif(!(p1 === 1)){\n $ERROR('#1: p1 === 1. Actual: p1 ==='+ p1 );\n}\n\nif(!(p2 === \"x2\")){\n $ERROR('#2: p2 === \"x2\". Actual: p2 ==='+ p2 );\n}\n\nif(!(p3 === 3)){\n $ERROR('#3: p3 === 3. Actual: p3 ==='+ p3 );\n}\n\nif(!(p4 === \"x4\")){\n $ERROR('#4: p4 === \"x4\". Actual: p4 ==='+ p4 );\n}\n\nif(!(p5 === \"x5\")){\n $ERROR('#5: p5 === \"x5\". Actual: p5 ==='+ p5 );\n}\n\nif(!(myObj.p1 === \"x1\")){\n $ERROR('#6: myObj.p1 === \"x1\". Actual: myObj.p1 ==='+ myObj.p1 );\n}\n\nif(!(myObj.p2 === \"b\")){\n $ERROR('#7: myObj.p2 === \"b\". Actual: myObj.p2 ==='+ myObj.p2 );\n}\n\nif(!(myObj.p3 === undefined)){\n $ERROR('#8: myObj.p3 === undefined. Actual: myObj.p3 ==='+ myObj.p3 );\n}\n\nif(!(myObj.p4 === undefined)){\n $ERROR('#9: myObj.p4 === undefined. Actual: myObj.p4 ==='+ myObj.p4 );\n}\n\nif(!(myObj.p5 === undefined)){\n $ERROR('#10: myObj.p5 === undefined. Actual: myObj.p5 ==='+ myObj.p5 );\n}\n\nif(!(st_parseInt !== parseInt)){\n $ERROR('#11: myObj.parseInt !== parseInt');\n}\n\nif(!(st_NaN === \"obj_NaN\")){\n $ERROR('#12: myObj.NaN !== NaN');\n}\n\nif(!(st_Infinity !== Infinity)){\n $ERROR('#13: myObj.Infinity !== Infinity');\n}\n\nif(!(st_eval !== eval)){\n $ERROR('#14: myObj.eval !== eval');\n}\n\nif(!(st_parseFloat !== parseFloat)){\n $ERROR('#15: myObj.parseFloat !== parseFloat');\n}\n\nif(!(st_isNaN !== isNaN)){\n $ERROR('#16: myObj.isNaN !== isNaN');\n}\n\nif(!(st_isFinite !== isFinite)){\n $ERROR('#17: myObj.isFinite !== isFinite');\n}\n\nif(!(value === undefined)){\n $ERROR('#18: value === undefined. Actual: value ==='+ value );\n}\n\nif(!(myObj.value === \"value\")){\n $ERROR('#19: myObj.value === \"value\". Actual: myObj.value ==='+ myObj.value );\n}\n",
+ "id": "S12.10_A1.6_T1",
+ "strict_only": ""
+ },
+ {
+ "section": "12.10",
+ "description": "Using \"with\" statement within another \"with\" statement, leading to completion by exception",
+ "strict_mode_negative": "",
+ "test": "this.p1 = 1;\nthis.p2 = 2;\nthis.p3 = 3;\nvar result = \"result\";\nvar myObj = {p1: 'a', \n p2: 'b', \n p3: 'c',\n value: 'myObj_value',\n valueOf : function(){return 'obj_valueOf';},\n parseInt : function(){return 'obj_parseInt';},\n NaN : 'obj_NaN',\n Infinity : 'obj_Infinity',\n eval : function(){return 'obj_eval';},\n parseFloat : function(){return 'obj_parseFloat';},\n isNaN : function(){return 'obj_isNaN';},\n isFinite : function(){return 'obj_isFinite';}\n}\nvar del;\nvar st_p1 = \"p1\";\nvar st_p2 = \"p2\";\nvar st_p3 = \"p3\";\nvar st_parseInt = \"parseInt\";\nvar st_NaN = \"NaN\";\nvar st_Infinity = \"Infinity\";\nvar st_eval = \"eval\";\nvar st_parseFloat = \"parseFloat\";\nvar st_isNaN = \"isNaN\";\nvar st_isFinite = \"isFinite\";\n\ntry {\n with(myObj){\n with(myObj){\n st_p1 = p1;\n st_p2 = p2;\n st_p3 = p3;\n st_parseInt = parseInt;\n st_NaN = NaN;\n st_Infinity = Infinity;\n st_eval = eval;\n st_parseFloat = parseFloat;\n st_isNaN = isNaN;\n st_isFinite = isFinite;\n p1 = 'x1';\n this.p2 = 'x2';\n del = delete p3;\n var p4 = 'x4';\n p5 = 'x5';\n var value = 'value';\n throw value;\n }\n }\n} catch(e){\n result = e;\n}\n\nif(!(result === \"value\")){\n $ERROR('#0: result === \"value\". Actual: result ==='+ result );\n}\n\nif(!(p1 === 1)){\n $ERROR('#1: p1 === 1. Actual: p1 ==='+ p1 );\n}\n\nif(!(p2 === \"x2\")){\n $ERROR('#2: p2 === \"x2\". Actual: p2 ==='+ p2 );\n}\n\nif(!(p3 === 3)){\n $ERROR('#3: p3 === 3. Actual: p3 ==='+ p3 );\n}\n\nif(!(p4 === \"x4\")){\n $ERROR('#4: p4 === \"x4\". Actual: p4 ==='+ p4 );\n}\n\nif(!(p5 === \"x5\")){\n $ERROR('#5: p5 === \"x5\". Actual: p5 ==='+ p5 );\n}\n\nif(!(myObj.p1 === \"x1\")){\n $ERROR('#6: myObj.p1 === \"x1\". Actual: myObj.p1 ==='+ myObj.p1 );\n}\n\nif(!(myObj.p2 === \"b\")){\n $ERROR('#7: myObj.p2 === \"b\". Actual: myObj.p2 ==='+ myObj.p2 );\n}\n\nif(!(myObj.p3 === undefined)){\n $ERROR('#8: myObj.p3 === undefined. Actual: myObj.p3 ==='+ myObj.p3 );\n}\n\nif(!(myObj.p4 === undefined)){\n $ERROR('#9: myObj.p4 === undefined. Actual: myObj.p4 ==='+ myObj.p4 );\n}\n\nif(!(myObj.p5 === undefined)){\n $ERROR('#10: myObj.p5 === undefined. Actual: myObj.p5 ==='+ myObj.p5 );\n}\n\nif(!(st_parseInt !== parseInt)){\n $ERROR('#11: myObj.parseInt !== parseInt');\n}\n\nif(!(st_NaN === \"obj_NaN\")){\n $ERROR('#12: myObj.NaN !== NaN');\n}\n\nif(!(st_Infinity !== Infinity)){\n $ERROR('#13: myObj.Infinity !== Infinity');\n}\n\nif(!(st_eval !== eval)){\n $ERROR('#14: myObj.eval !== eval');\n}\n\nif(!(st_parseFloat !== parseFloat)){\n $ERROR('#15: myObj.parseFloat !== parseFloat');\n}\n\nif(!(st_isNaN !== isNaN)){\n $ERROR('#16: myObj.isNaN !== isNaN');\n}\n\nif(!(st_isFinite !== isFinite)){\n $ERROR('#17: myObj.isFinite !== isFinite');\n}\n\nif(!(value === undefined)){\n $ERROR('#18: value === undefined. Actual: value ==='+ value );\n}\n\nif(!(myObj.value === \"value\")){\n $ERROR('#19: myObj.value === \"value\". Actual: myObj.value ==='+ myObj.value );\n}\n",
+ "id": "S12.10_A1.6_T2",
+ "strict_only": ""
+ },
+ {
+ "section": "12.10",
+ "description": "Using \"with\" statement within another \"with\" statement, leading to completion by exception",
+ "strict_mode_negative": "",
+ "test": "this.p1 = 1;\nthis.p2 = 2;\nthis.p3 = 3;\nvar result = \"result\";\nvar myObj = {p1: 'a', \n p2: 'b', \n p3: 'c',\n value: 'myObj_value',\n valueOf : function(){return 'obj_valueOf';},\n parseInt : function(){return 'obj_parseInt';},\n NaN : 'obj_NaN',\n Infinity : 'obj_Infinity',\n eval : function(){return 'obj_eval';},\n parseFloat : function(){return 'obj_parseFloat';},\n isNaN : function(){return 'obj_isNaN';},\n isFinite : function(){return 'obj_isFinite';}\n}\nvar del;\nvar st_p1 = \"p1\";\nvar st_p2 = \"p2\";\nvar st_p3 = \"p3\";\nvar st_parseInt = \"parseInt\";\nvar st_NaN = \"NaN\";\nvar st_Infinity = \"Infinity\";\nvar st_eval = \"eval\";\nvar st_parseFloat = \"parseFloat\";\nvar st_isNaN = \"isNaN\";\nvar st_isFinite = \"isFinite\";\n\ntry {\n with(myObj){\n with(myObj){\n throw value;\n st_p1 = p1;\n st_p2 = p2;\n st_p3 = p3;\n st_parseInt = parseInt;\n st_NaN = NaN;\n st_Infinity = Infinity;\n st_eval = eval;\n st_parseFloat = parseFloat;\n st_isNaN = isNaN;\n st_isFinite = isFinite;\n p1 = 'x1';\n this.p2 = 'x2';\n del = delete p3;\n var p4 = 'x4';\n p5 = 'x5';\n var value = 'value';\n }\n }\n} catch(e){\n result = e;\n}\n\nif(!(result === \"myObj_value\")){\n $ERROR('#0: result === \"myObj_value\". Actual: result ==='+ result );\n}\n\nif(!(p1 === 1)){\n $ERROR('#1: p1 === 1. Actual: p1 ==='+ p1 );\n}\n\nif(!(p2 === 2)){\n $ERROR('#2: p2 === 2. Actual: p2 ==='+ p2 );\n}\n\nif(!(p3 === 3)){\n $ERROR('#3: p3 === 3. Actual: p3 ==='+ p3 );\n}\n\nif(!(p4 === undefined)){\n $ERROR('#4: p4 === undefined. Actual: p4 ==='+ p4 );\n}\n\ntry {\n p5;\n $ERROR('#5: p5 is not defined');\n} catch(e) { \n}\n\nif(!(myObj.p1 === \"a\")){\n $ERROR('#6: myObj.p1 === \"a\". Actual: myObj.p1 ==='+ myObj.p1 );\n}\n\nif(!(myObj.p2 === \"b\")){\n $ERROR('#7: myObj.p2 === \"b\". Actual: myObj.p2 ==='+ myObj.p2 );\n}\n\nif(!(myObj.p3 === \"c\")){\n $ERROR('#8: myObj.p3 === \"c\". Actual: myObj.p3 ==='+ myObj.p3 );\n}\n\nif(!(myObj.p4 === undefined)){\n $ERROR('#9: myObj.p4 === undefined. Actual: myObj.p4 ==='+ myObj.p4 );\n}\n\nif(!(myObj.p5 === undefined)){\n $ERROR('#10: myObj.p5 === undefined. Actual: myObj.p5 ==='+ myObj.p5 );\n}\n\nif(!(st_parseInt === \"parseInt\")){\n $ERROR('#11: myObj.parseInt === \"parseInt\". Actual: myObj.parseInt ==='+ myObj.parseInt );\n}\n\nif(!(st_NaN === \"NaN\")){\n $ERROR('#12: st_NaN === \"NaN\". Actual: st_NaN ==='+ st_NaN );\n}\n\nif(!(st_Infinity === \"Infinity\")){\n $ERROR('#13: st_Infinity === \"Infinity\". Actual: st_Infinity ==='+ st_Infinity );\n}\n\nif(!(st_eval === \"eval\")){\n $ERROR('#14: st_eval === \"eval\". Actual: st_eval ==='+ st_eval );\n}\n\nif(!(st_parseFloat === \"parseFloat\")){\n $ERROR('#15: st_parseFloat === \"parseFloat\". Actual: st_parseFloat ==='+ st_parseFloat );\n}\n\nif(!(st_isNaN === \"isNaN\")){\n $ERROR('#16: st_isNaN === \"isNaN\". Actual: st_isNaN ==='+ st_isNaN );\n}\n\nif(!(st_isFinite === \"isFinite\")){\n $ERROR('#17: st_isFinite === \"isFinite\". Actual: st_isFinite ==='+ st_isFinite );\n}\n\nif(!(value === undefined)){\n $ERROR('#18: value === undefined. Actual: value ==='+ value );\n}\n\nif(!(myObj.value === \"myObj_value\")){\n $ERROR('#19: myObj.value === \"myObj_value\". Actual: myObj.value ==='+ myObj.value );\n}\n",
+ "id": "S12.10_A1.6_T3",
+ "strict_only": ""
+ },
+ {
+ "section": "12.10",
+ "description": "Calling a function within \"with\" statement declared within the statement, leading to normal completion",
+ "strict_mode_negative": "",
+ "test": "this.p1 = 1;\nthis.p2 = 2;\nthis.p3 = 3;\nvar result = \"result\";\nvar myObj = {p1: 'a', \n p2: 'b', \n p3: 'c',\n value: 'myObj_value',\n valueOf : function(){return 'obj_valueOf';},\n parseInt : function(){return 'obj_parseInt';},\n NaN : 'obj_NaN',\n Infinity : 'obj_Infinity',\n eval : function(){return 'obj_eval';},\n parseFloat : function(){return 'obj_parseFloat';},\n isNaN : function(){return 'obj_isNaN';},\n isFinite : function(){return 'obj_isFinite';}\n}\nvar del;\nvar st_p1 = \"p1\";\nvar st_p2 = \"p2\";\nvar st_p3 = \"p3\";\nvar st_parseInt = \"parseInt\";\nvar st_NaN = \"NaN\";\nvar st_Infinity = \"Infinity\";\nvar st_eval = \"eval\";\nvar st_parseFloat = \"parseFloat\";\nvar st_isNaN = \"isNaN\";\nvar st_isFinite = \"isFinite\";\n\nwith(myObj){\n var f = function(){\n st_p1 = p1;\n st_p2 = p2;\n st_p3 = p3;\n st_parseInt = parseInt;\n st_NaN = NaN;\n st_Infinity = Infinity;\n st_eval = eval;\n st_parseFloat = parseFloat;\n st_isNaN = isNaN;\n st_isFinite = isFinite;\n p1 = 'x1';\n this.p2 = 'x2';\n del = delete p3;\n var p4 = 'x4';\n p5 = 'x5';\n var value = 'value';\n }\n f();\n}\n\nif(!(p1 === 1)){\n $ERROR('#1: p1 === 1. Actual: p1 ==='+ p1 );\n}\n\nif(!(p2 === \"x2\")){\n $ERROR('#2: p2 === \"x2\". Actual: p2 ==='+ p2 );\n}\n\nif(!(p3 === 3)){\n $ERROR('#3: p3 === 3. Actual: p3 ==='+ p3 );\n}\n\ntry {\n p4;\n $ERROR('#4: p4 is not defined');\n} catch(e) { \n}\n\nif(!(p5 === \"x5\")){\n $ERROR('#5: p5 === \"x5\". Actual: p5 ==='+ p5 );\n}\n\nif(!(myObj.p1 === \"x1\")){\n $ERROR('#6: myObj.p1 === \"x1\". Actual: myObj.p1 ==='+ myObj.p1 );\n}\n\nif(!(myObj.p2 === \"b\")){\n $ERROR('#7: myObj.p2 === \"b\". Actual: myObj.p2 ==='+ myObj.p2 );\n}\n\nif(!(myObj.p3 === undefined)){\n $ERROR('#8: myObj.p3 === undefined. Actual: myObj.p3 ==='+ myObj.p3 );\n}\n\nif(!(myObj.p4 === undefined)){\n $ERROR('#9: myObj.p4 === undefined. Actual: myObj.p4 ==='+ myObj.p4 );\n}\n\nif(!(myObj.p5 === undefined)){\n $ERROR('#10: myObj.p5 === undefined. Actual: myObj.p5 ==='+ myObj.p5 );\n}\n\nif(!(st_parseInt !== parseInt)){\n $ERROR('#11: myObj.parseInt !== parseInt');\n}\n\nif(!(st_NaN === \"obj_NaN\")){\n $ERROR('#12: myObj.NaN !== NaN');\n}\n\nif(!(st_Infinity !== Infinity)){\n $ERROR('#13: myObj.Infinity !== Infinity');\n}\n\nif(!(st_eval !== eval)){\n $ERROR('#14: myObj.eval !== eval');\n}\n\nif(!(st_parseFloat !== parseFloat)){\n $ERROR('#15: myObj.parseFloat !== parseFloat');\n}\n\nif(!(st_isNaN !== isNaN)){\n $ERROR('#16: myObj.isNaN !== isNaN');\n}\n\nif(!(st_isFinite !== isFinite)){\n $ERROR('#17: myObj.isFinite !== isFinite');\n}\n\ntry{\n value;\n $ERROR('#18: value is not defined');\n}\ncatch(e){\n}\n\nif(!(myObj.value === \"myObj_value\")){\n $ERROR('#19: myObj.value === \"myObj_value\". Actual: myObj.value ==='+ myObj.value );\n}\n",
+ "id": "S12.10_A1.7_T1",
+ "strict_only": ""
+ },
+ {
+ "section": "12.10",
+ "description": "Calling a function within \"with\" statement declared within the statement, leading to normal completion by \"return\"",
+ "strict_mode_negative": "",
+ "test": "this.p1 = 1;\nthis.p2 = 2;\nthis.p3 = 3;\nvar result = \"result\";\nvar myObj = {p1: 'a', \n p2: 'b', \n p3: 'c',\n value: 'myObj_value',\n valueOf : function(){return 'obj_valueOf';},\n parseInt : function(){return 'obj_parseInt';},\n NaN : 'obj_NaN',\n Infinity : 'obj_Infinity',\n eval : function(){return 'obj_eval';},\n parseFloat : function(){return 'obj_parseFloat';},\n isNaN : function(){return 'obj_isNaN';},\n isFinite : function(){return 'obj_isFinite';}\n}\nvar del;\nvar st_p1 = \"p1\";\nvar st_p2 = \"p2\";\nvar st_p3 = \"p3\";\nvar st_parseInt = \"parseInt\";\nvar st_NaN = \"NaN\";\nvar st_Infinity = \"Infinity\";\nvar st_eval = \"eval\";\nvar st_parseFloat = \"parseFloat\";\nvar st_isNaN = \"isNaN\";\nvar st_isFinite = \"isFinite\";\n\nwith(myObj){\n var f = function(){\n st_p1 = p1;\n st_p2 = p2;\n st_p3 = p3;\n st_parseInt = parseInt;\n st_NaN = NaN;\n st_Infinity = Infinity;\n st_eval = eval;\n st_parseFloat = parseFloat;\n st_isNaN = isNaN;\n st_isFinite = isFinite;\n p1 = 'x1';\n this.p2 = 'x2';\n del = delete p3;\n var p4 = 'x4';\n p5 = 'x5';\n var value = 'value';\n return value;\n }\n result = f();\n}\n\nif(!(result === \"value\")){\n $ERROR('#0: result === \"value\". Actual: result ==='+ result );\n}\n\nif(!(p1 === 1)){\n $ERROR('#1: p1 === 1. Actual: p1 ==='+ p1 );\n}\n\nif(!(p2 === \"x2\")){\n $ERROR('#2: p2 === \"x2\". Actual: p2 ==='+ p2 );\n}\n\nif(!(p3 === 3)){\n $ERROR('#3: p3 === 3. Actual: p3 ==='+ p3 );\n}\n\ntry {\n p4;\n $ERROR('#4: p4 is not defined');\n} catch(e) { \n}\n\nif(!(p5 === \"x5\")){\n $ERROR('#5: p5 === \"x5\". Actual: p5 ==='+ p5 );\n}\n\nif(!(myObj.p1 === \"x1\")){\n $ERROR('#6: myObj.p1 === \"x1\". Actual: myObj.p1 ==='+ myObj.p1 );\n}\n\nif(!(myObj.p2 === \"b\")){\n $ERROR('#7: myObj.p2 === \"b\". Actual: myObj.p2 ==='+ myObj.p2 );\n}\n\nif(!(myObj.p3 === undefined)){\n $ERROR('#8: myObj.p3 === undefined. Actual: myObj.p3 ==='+ myObj.p3 );\n}\n\nif(!(myObj.p4 === undefined)){\n $ERROR('#9: myObj.p4 === undefined. Actual: myObj.p4 ==='+ myObj.p4 );\n}\n\nif(!(myObj.p5 === undefined)){\n $ERROR('#10: myObj.p5 === undefined. Actual: myObj.p5 ==='+ myObj.p5 );\n}\n\nif(!(st_parseInt !== parseInt)){\n $ERROR('#11: myObj.parseInt !== parseInt');\n}\n\nif(!(st_NaN === \"obj_NaN\")){\n $ERROR('#12: myObj.NaN !== NaN');\n}\n\nif(!(st_Infinity !== Infinity)){\n $ERROR('#13: myObj.Infinity !== Infinity');\n}\n\nif(!(st_eval !== eval)){\n $ERROR('#14: myObj.eval !== eval');\n}\n\nif(!(st_parseFloat !== parseFloat)){\n $ERROR('#15: myObj.parseFloat !== parseFloat');\n}\n\nif(!(st_isNaN !== isNaN)){\n $ERROR('#16: myObj.isNaN !== isNaN');\n}\n\nif(!(st_isFinite !== isFinite)){\n $ERROR('#17: myObj.isFinite !== isFinite');\n}\n\ntry{\n value;\n $ERROR('#18: value is not defined');\n}\ncatch(e){\n}\n\nif(!(myObj.value === \"myObj_value\")){\n $ERROR('#19: myObj.value === \"myObj_value\". Actual: myObj.value ==='+ myObj.value );\n}\n",
+ "id": "S12.10_A1.7_T2",
+ "strict_only": ""
+ },
+ {
+ "section": "12.10",
+ "description": "Calling a function within \"with\" statement declared within the statement, leading to normal completion by \"return\"",
+ "strict_mode_negative": "",
+ "test": "this.p1 = 1;\nthis.p2 = 2;\nthis.p3 = 3;\nvar result = \"result\";\nvar myObj = {p1: 'a', \n p2: 'b', \n p3: 'c',\n value: 'myObj_value',\n valueOf : function(){return 'obj_valueOf';},\n parseInt : function(){return 'obj_parseInt';},\n NaN : 'obj_NaN',\n Infinity : 'obj_Infinity',\n eval : function(){return 'obj_eval';},\n parseFloat : function(){return 'obj_parseFloat';},\n isNaN : function(){return 'obj_isNaN';},\n isFinite : function(){return 'obj_isFinite';}\n}\nvar del;\nvar st_p1 = \"p1\";\nvar st_p2 = \"p2\";\nvar st_p3 = \"p3\";\nvar st_parseInt = \"parseInt\";\nvar st_NaN = \"NaN\";\nvar st_Infinity = \"Infinity\";\nvar st_eval = \"eval\";\nvar st_parseFloat = \"parseFloat\";\nvar st_isNaN = \"isNaN\";\nvar st_isFinite = \"isFinite\";\n\nwith(myObj){\n var f = function(){\n return value;\n st_p1 = p1;\n st_p2 = p2;\n st_p3 = p3;\n st_parseInt = parseInt;\n st_NaN = NaN;\n st_Infinity = Infinity;\n st_eval = eval;\n st_parseFloat = parseFloat;\n st_isNaN = isNaN;\n st_isFinite = isFinite;\n p1 = 'x1';\n this.p2 = 'x2';\n del = delete p3;\n var p4 = 'x4';\n p5 = 'x5';\n var value = 'value';\n }\n result = f();\n}\n\nif(!(result === undefined)){\n $ERROR('#0: result === undefined. Actual: result ==='+ result );\n}\n\nif(!(p1 === 1)){\n $ERROR('#1: p1 === 1. Actual: p1 ==='+ p1 );\n}\n\nif(!(p2 === 2)){\n $ERROR('#2: p2 === 2. Actual: p2 ==='+ p2 );\n}\n\nif(!(p3 === 3)){\n $ERROR('#3: p3 === 3. Actual: p3 ==='+ p3 );\n}\n\ntry {\n p4;\n $ERROR('#4: p4 is not defined');\n} catch(e) { \n}\n\ntry {\n p5;\n $ERROR('#5: p5 is not defined');\n} catch(e) { \n}\n\nif(!(myObj.p1 === \"a\")){\n $ERROR('#6: myObj.p1 === \"a\". Actual: myObj.p1 ==='+ myObj.p1 );\n}\n\nif(!(myObj.p2 === \"b\")){\n $ERROR('#7: myObj.p2 === \"b\". Actual: myObj.p2 ==='+ myObj.p2 );\n}\n\nif(!(myObj.p3 === \"c\")){\n $ERROR('#8: myObj.p3 === \"c\". Actual: myObj.p3 ==='+ myObj.p3 );\n}\n\nif(!(myObj.p4 === undefined)){\n $ERROR('#9: myObj.p4 === undefined. Actual: myObj.p4 ==='+ myObj.p4 );\n}\n\nif(!(myObj.p5 === undefined)){\n $ERROR('#10: myObj.p5 === undefined. Actual: myObj.p5 ==='+ myObj.p5 );\n}\n\nif(!(st_parseInt === \"parseInt\")){\n $ERROR('#11: myObj.parseInt === \"parseInt\". Actual: myObj.parseInt ==='+ myObj.parseInt );\n}\n\nif(!(st_NaN === \"NaN\")){\n $ERROR('#12: st_NaN === \"NaN\". Actual: st_NaN ==='+ st_NaN );\n}\n\nif(!(st_Infinity === \"Infinity\")){\n $ERROR('#13: st_Infinity === \"Infinity\". Actual: st_Infinity ==='+ st_Infinity );\n}\n\nif(!(st_eval === \"eval\")){\n $ERROR('#14: st_eval === \"eval\". Actual: st_eval ==='+ st_eval );\n}\n\nif(!(st_parseFloat === \"parseFloat\")){\n $ERROR('#15: st_parseFloat === \"parseFloat\". Actual: st_parseFloat ==='+ st_parseFloat );\n}\n\nif(!(st_isNaN === \"isNaN\")){\n $ERROR('#16: st_isNaN === \"isNaN\". Actual: st_isNaN ==='+ st_isNaN );\n}\n\nif(!(st_isFinite === \"isFinite\")){\n $ERROR('#17: st_isFinite === \"isFinite\". Actual: st_isFinite ==='+ st_isFinite );\n}\n\ntry{\n value;\n $ERROR('#18: value is not defined');\n}\ncatch(e){\n}\n\nif(!(myObj.value === \"myObj_value\")){\n $ERROR('#19: myObj.value === \"myObj_value\". Actual: myObj.value ==='+ myObj.value );\n}\n",
+ "id": "S12.10_A1.7_T3",
+ "strict_only": ""
+ },
+ {
+ "section": "12.10",
+ "description": "Calling a function within \"with\" statement declared within the statement, leading to completion by exception",
+ "strict_mode_negative": "",
+ "test": "this.p1 = 1;\nthis.p2 = 2;\nthis.p3 = 3;\nvar result = \"result\";\nvar myObj = {p1: 'a', \n p2: 'b', \n p3: 'c',\n value: 'myObj_value',\n valueOf : function(){return 'obj_valueOf';},\n parseInt : function(){return 'obj_parseInt';},\n NaN : 'obj_NaN',\n Infinity : 'obj_Infinity',\n eval : function(){return 'obj_eval';},\n parseFloat : function(){return 'obj_parseFloat';},\n isNaN : function(){return 'obj_isNaN';},\n isFinite : function(){return 'obj_isFinite';}\n}\nvar del;\nvar st_p1 = \"p1\";\nvar st_p2 = \"p2\";\nvar st_p3 = \"p3\";\nvar st_parseInt = \"parseInt\";\nvar st_NaN = \"NaN\";\nvar st_Infinity = \"Infinity\";\nvar st_eval = \"eval\";\nvar st_parseFloat = \"parseFloat\";\nvar st_isNaN = \"isNaN\";\nvar st_isFinite = \"isFinite\";\n\ntry {\n with(myObj){\n var f = function(){\n st_p1 = p1;\n st_p2 = p2;\n st_p3 = p3;\n st_parseInt = parseInt;\n st_NaN = NaN;\n st_Infinity = Infinity;\n st_eval = eval;\n st_parseFloat = parseFloat;\n st_isNaN = isNaN;\n st_isFinite = isFinite;\n p1 = 'x1';\n this.p2 = 'x2';\n del = delete p3;\n var p4 = 'x4';\n p5 = 'x5';\n var value = 'value';\n throw value;\n }\n f();\n }\n} catch(e){\n result = e;\n}\n\nif(!(result === \"value\")){\n $ERROR('#0: result === \"value\". Actual: result ==='+ result );\n}\n\nif(!(p1 === 1)){\n $ERROR('#1: p1 === 1. Actual: p1 ==='+ p1 );\n}\n\nif(!(p2 === \"x2\")){\n $ERROR('#2: p2 === \"x2\". Actual: p2 ==='+ p2 );\n}\n\nif(!(p3 === 3)){\n $ERROR('#3: p3 === 3. Actual: p3 ==='+ p3 );\n}\n\ntry {\n p4;\n $ERROR('#4: p4 is not defined');\n} catch(e) { \n}\n\nif(!(p5 === \"x5\")){\n $ERROR('#5: p5 === \"x5\". Actual: p5 ==='+ p5 );\n}\n\nif(!(myObj.p1 === \"x1\")){\n $ERROR('#6: myObj.p1 === \"x1\". Actual: myObj.p1 ==='+ myObj.p1 );\n}\n\nif(!(myObj.p2 === \"b\")){\n $ERROR('#7: myObj.p2 === \"b\". Actual: myObj.p2 ==='+ myObj.p2 );\n}\n\nif(!(myObj.p3 === undefined)){\n $ERROR('#8: myObj.p3 === undefined. Actual: myObj.p3 ==='+ myObj.p3 );\n}\n\nif(!(myObj.p4 === undefined)){\n $ERROR('#9: myObj.p4 === undefined. Actual: myObj.p4 ==='+ myObj.p4 );\n}\n\nif(!(myObj.p5 === undefined)){\n $ERROR('#10: myObj.p5 === undefined. Actual: myObj.p5 ==='+ myObj.p5 );\n}\n\nif(!(st_parseInt !== parseInt)){\n $ERROR('#11: myObj.parseInt !== parseInt');\n}\n\nif(!(st_NaN === \"obj_NaN\")){\n $ERROR('#12: myObj.NaN !== NaN');\n}\n\nif(!(st_Infinity !== Infinity)){\n $ERROR('#13: myObj.Infinity !== Infinity');\n}\n\nif(!(st_eval !== eval)){\n $ERROR('#14: myObj.eval !== eval');\n}\n\nif(!(st_parseFloat !== parseFloat)){\n $ERROR('#15: myObj.parseFloat !== parseFloat');\n}\n\nif(!(st_isNaN !== isNaN)){\n $ERROR('#16: myObj.isNaN !== isNaN');\n}\n\nif(!(st_isFinite !== isFinite)){\n $ERROR('#17: myObj.isFinite !== isFinite');\n}\n\ntry{\n value;\n $ERROR('#18: value is not defined');\n}\ncatch(e){\n}\n\nif(!(myObj.value === \"myObj_value\")){\n $ERROR('#19: myObj.value === \"myObj_value\". Actual: myObj.value ==='+ myObj.value );\n}\n",
+ "id": "S12.10_A1.7_T4",
+ "strict_only": ""
+ },
+ {
+ "section": "12.10",
+ "description": "Calling a function within \"with\" statement declared within the statement, leading to completion by exception",
+ "strict_mode_negative": "",
+ "test": "this.p1 = 1;\nthis.p2 = 2;\nthis.p3 = 3;\nvar result = \"result\";\nvar myObj = {p1: 'a', \n p2: 'b', \n p3: 'c',\n value: 'myObj_value',\n valueOf : function(){return 'obj_valueOf';},\n parseInt : function(){return 'obj_parseInt';},\n NaN : 'obj_NaN',\n Infinity : 'obj_Infinity',\n eval : function(){return 'obj_eval';},\n parseFloat : function(){return 'obj_parseFloat';},\n isNaN : function(){return 'obj_isNaN';},\n isFinite : function(){return 'obj_isFinite';}\n}\nvar del;\nvar st_p1 = \"p1\";\nvar st_p2 = \"p2\";\nvar st_p3 = \"p3\";\nvar st_parseInt = \"parseInt\";\nvar st_NaN = \"NaN\";\nvar st_Infinity = \"Infinity\";\nvar st_eval = \"eval\";\nvar st_parseFloat = \"parseFloat\";\nvar st_isNaN = \"isNaN\";\nvar st_isFinite = \"isFinite\";\n\ntry {\n with(myObj){\n var f = function(){\n throw value;\n st_p1 = p1;\n st_p2 = p2;\n st_p3 = p3;\n st_parseInt = parseInt;\n st_NaN = NaN;\n st_Infinity = Infinity;\n st_eval = eval;\n st_parseFloat = parseFloat;\n st_isNaN = isNaN;\n st_isFinite = isFinite;\n p1 = 'x1';\n this.p2 = 'x2';\n del = delete p3;\n var p4 = 'x4';\n p5 = 'x5';\n var value = 'value';\n }\n f();\n }\n} catch(e){\n result = e;\n}\n\nif(!(result === undefined)){\n $ERROR('#0: result === undefined. Actual: result ==='+ result );\n}\n\nif(!(p1 === 1)){\n $ERROR('#1: p1 === 1. Actual: p1 ==='+ p1 );\n}\n\nif(!(p2 === 2)){\n $ERROR('#2: p2 === 2. Actual: p2 ==='+ p2 );\n}\n\nif(!(p3 === 3)){\n $ERROR('#3: p3 === 3. Actual: p3 ==='+ p3 );\n}\n\ntry {\n p4;\n $ERROR('#4: p4 is not defined');\n} catch(e) { \n}\n\ntry {\n p5;\n $ERROR('#5: p5 is not defined');\n} catch(e) { \n}\n\nif(!(myObj.p1 === \"a\")){\n $ERROR('#6: myObj.p1 === \"a\". Actual: myObj.p1 ==='+ myObj.p1 );\n}\n\nif(!(myObj.p2 === \"b\")){\n $ERROR('#7: myObj.p2 === \"b\". Actual: myObj.p2 ==='+ myObj.p2 );\n}\n\nif(!(myObj.p3 === \"c\")){\n $ERROR('#8: myObj.p3 === \"c\". Actual: myObj.p3 ==='+ myObj.p3 );\n}\n\nif(!(myObj.p4 === undefined)){\n $ERROR('#9: myObj.p4 === undefined. Actual: myObj.p4 ==='+ myObj.p4 );\n}\n\nif(!(myObj.p5 === undefined)){\n $ERROR('#10: myObj.p5 === undefined. Actual: myObj.p5 ==='+ myObj.p5 );\n}\n\nif(!(st_parseInt === \"parseInt\")){\n $ERROR('#11: myObj.parseInt === \"parseInt\". Actual: myObj.parseInt ==='+ myObj.parseInt );\n}\n\nif(!(st_NaN === \"NaN\")){\n $ERROR('#12: st_NaN === \"NaN\". Actual: st_NaN ==='+ st_NaN );\n}\n\nif(!(st_Infinity === \"Infinity\")){\n $ERROR('#13: st_Infinity === \"Infinity\". Actual: st_Infinity ==='+ st_Infinity );\n}\n\nif(!(st_eval === \"eval\")){\n $ERROR('#14: st_eval === \"eval\". Actual: st_eval ==='+ st_eval );\n}\n\nif(!(st_parseFloat === \"parseFloat\")){\n $ERROR('#15: st_parseFloat === \"parseFloat\". Actual: st_parseFloat ==='+ st_parseFloat );\n}\n\nif(!(st_isNaN === \"isNaN\")){\n $ERROR('#16: st_isNaN === \"isNaN\". Actual: st_isNaN ==='+ st_isNaN );\n}\n\nif(!(st_isFinite === \"isFinite\")){\n $ERROR('#17: st_isFinite === \"isFinite\". Actual: st_isFinite ==='+ st_isFinite );\n}\n\ntry{\n value;\n $ERROR('#18: value is not defined');\n}\ncatch(e){\n}\n\nif(!(myObj.value === \"myObj_value\")){\n $ERROR('#19: myObj.value === \"myObj_value\". Actual: myObj.value ==='+ myObj.value );\n}\n",
+ "id": "S12.10_A1.7_T5",
+ "strict_only": ""
+ },
+ {
+ "section": "12.10",
+ "description": "Declaring function constructor within \"with\" statement, leading to normal completion",
+ "strict_mode_negative": "",
+ "test": "this.p1 = 1;\nthis.p2 = 2;\nthis.p3 = 3;\nvar result = \"result\";\nvar myObj = {p1: 'a', \n p2: 'b', \n p3: 'c',\n value: 'myObj_value',\n valueOf : function(){return 'obj_valueOf';},\n parseInt : function(){return 'obj_parseInt';},\n NaN : 'obj_NaN',\n Infinity : 'obj_Infinity',\n eval : function(){return 'obj_eval';},\n parseFloat : function(){return 'obj_parseFloat';},\n isNaN : function(){return 'obj_isNaN';},\n isFinite : function(){return 'obj_isFinite';}\n}\nvar del;\nvar st_p1 = \"p1\";\nvar st_p2 = \"p2\";\nvar st_p3 = \"p3\";\nvar st_parseInt = \"parseInt\";\nvar st_NaN = \"NaN\";\nvar st_Infinity = \"Infinity\";\nvar st_eval = \"eval\";\nvar st_parseFloat = \"parseFloat\";\nvar st_isNaN = \"isNaN\";\nvar st_isFinite = \"isFinite\";\n\nwith(myObj){\n var f = function(){\n st_p1 = p1;\n st_p2 = p2;\n st_p3 = p3;\n st_parseInt = parseInt;\n st_NaN = NaN;\n st_Infinity = Infinity;\n st_eval = eval;\n st_parseFloat = parseFloat;\n st_isNaN = isNaN;\n st_isFinite = isFinite;\n p1 = 'x1';\n this.p2 = 'x2';\n del = delete p3;\n var p4 = 'x4';\n p5 = 'x5';\n var value = 'value';\n }\n var obj = new f();\n}\n\nif(!(p1 === 1)){\n $ERROR('#1: p1 === 1. Actual: p1 ==='+ p1 );\n}\n\nif(!(p2 === 2)){\n $ERROR('#2: p2 === 2. Actual: p2 ==='+ p2 );\n}\n\nif(!(p3 === 3)){\n $ERROR('#3: p3 === 3. Actual: p3 ==='+ p3 );\n}\n\ntry {\n p4;\n $ERROR('#4: p4 is not defined');\n} catch(e) { \n}\n\nif(!(p5 === \"x5\")){\n $ERROR('#5: p5 === \"x5\". Actual: p5 ==='+ p5 );\n}\n\nif(!(myObj.p1 === \"x1\")){\n $ERROR('#6: myObj.p1 === \"x1\". Actual: myObj.p1 ==='+ myObj.p1 );\n}\n\nif(!(myObj.p2 === \"b\")){\n $ERROR('#7: myObj.p2 === \"b\". Actual: myObj.p2 ==='+ myObj.p2 );\n}\n\nif(!(myObj.p3 === undefined)){\n $ERROR('#8: myObj.p3 === undefined. Actual: myObj.p3 ==='+ myObj.p3 );\n}\n\nif(!(myObj.p4 === undefined)){\n $ERROR('#9: myObj.p4 === undefined. Actual: myObj.p4 ==='+ myObj.p4 );\n}\n\nif(!(myObj.p5 === undefined)){\n $ERROR('#10: myObj.p5 === undefined. Actual: myObj.p5 ==='+ myObj.p5 );\n}\n\nif(!(st_parseInt !== parseInt)){\n $ERROR('#11: myObj.parseInt !== parseInt');\n}\n\nif(!(st_NaN === \"obj_NaN\")){\n $ERROR('#12: myObj.NaN !== NaN');\n}\n\nif(!(st_Infinity !== Infinity)){\n $ERROR('#13: myObj.Infinity !== Infinity');\n}\n\nif(!(st_eval !== eval)){\n $ERROR('#14: myObj.eval !== eval');\n}\n\nif(!(st_parseFloat !== parseFloat)){\n $ERROR('#15: myObj.parseFloat !== parseFloat');\n}\n\nif(!(st_isNaN !== isNaN)){\n $ERROR('#16: myObj.isNaN !== isNaN');\n}\n\nif(!(st_isFinite !== isFinite)){\n $ERROR('#17: myObj.isFinite !== isFinite');\n}\n\ntry{\n value;\n $ERROR('#18: value is not defined');\n}\ncatch(e){\n}\n\nif(!(myObj.value === \"myObj_value\")){\n $ERROR('#19: myObj.value === \"myObj_value\". Actual: myObj.value ==='+ myObj.value );\n}\n",
+ "id": "S12.10_A1.8_T1",
+ "strict_only": ""
+ },
+ {
+ "section": "12.10",
+ "description": "Declaring function constructor within \"with\" statement, leading to normal completion by \"return\"",
+ "strict_mode_negative": "",
+ "test": "this.p1 = 1;\nthis.p2 = 2;\nthis.p3 = 3;\nvar result = \"result\";\nvar myObj = {p1: 'a', \n p2: 'b', \n p3: 'c',\n value: 'myObj_value',\n valueOf : function(){return 'obj_valueOf';},\n parseInt : function(){return 'obj_parseInt';},\n NaN : 'obj_NaN',\n Infinity : 'obj_Infinity',\n eval : function(){return 'obj_eval';},\n parseFloat : function(){return 'obj_parseFloat';},\n isNaN : function(){return 'obj_isNaN';},\n isFinite : function(){return 'obj_isFinite';}\n}\nvar del;\nvar st_p1 = \"p1\";\nvar st_p2 = \"p2\";\nvar st_p3 = \"p3\";\nvar st_parseInt = \"parseInt\";\nvar st_NaN = \"NaN\";\nvar st_Infinity = \"Infinity\";\nvar st_eval = \"eval\";\nvar st_parseFloat = \"parseFloat\";\nvar st_isNaN = \"isNaN\";\nvar st_isFinite = \"isFinite\";\n\nwith(myObj){\n var f = function(){\n st_p1 = p1;\n st_p2 = p2;\n st_p3 = p3;\n st_parseInt = parseInt;\n st_NaN = NaN;\n st_Infinity = Infinity;\n st_eval = eval;\n st_parseFloat = parseFloat;\n st_isNaN = isNaN;\n st_isFinite = isFinite;\n p1 = 'x1';\n this.p2 = 'x2';\n del = delete p3;\n var p4 = 'x4';\n p5 = 'x5';\n var value = 'value';\n return value;\n }\n var obj = new f();\n}\n\nif(!(p1 === 1)){\n $ERROR('#1: p1 === 1. Actual: p1 ==='+ p1 );\n}\n\nif(!(p2 === 2)){\n $ERROR('#2: p2 === 2. Actual: p2 ==='+ p2 );\n}\n\nif(!(p3 === 3)){\n $ERROR('#3: p3 === 3. Actual: p3 ==='+ p3 );\n}\ntry {\n p4;\n $ERROR('#4: p4 is not defined');\n} catch(e) { \n}\n\nif(!(p5 === \"x5\")){\n $ERROR('#5: p5 === \"x5\". Actual: p5 ==='+ p5 );\n}\n\nif(!(myObj.p1 === \"x1\")){\n $ERROR('#6: myObj.p1 === \"x1\". Actual: myObj.p1 ==='+ myObj.p1 );\n}\n\nif(!(myObj.p2 === \"b\")){\n $ERROR('#7: myObj.p2 === \"b\". Actual: myObj.p2 ==='+ myObj.p2 );\n}\n\nif(!(myObj.p3 === undefined)){\n $ERROR('#8: myObj.p3 === undefined. Actual: myObj.p3 ==='+ myObj.p3 );\n}\n\nif(!(myObj.p4 === undefined)){\n $ERROR('#9: myObj.p4 === undefined. Actual: myObj.p4 ==='+ myObj.p4 );\n}\n\nif(!(myObj.p5 === undefined)){\n $ERROR('#10: myObj.p5 === undefined. Actual: myObj.p5 ==='+ myObj.p5 );\n}\n\nif(!(st_parseInt !== parseInt)){\n $ERROR('#11: myObj.parseInt !== parseInt');\n}\n\nif(!(st_NaN === \"obj_NaN\")){\n $ERROR('#12: myObj.NaN !== NaN');\n}\n\nif(!(st_Infinity !== Infinity)){\n $ERROR('#13: myObj.Infinity !== Infinity');\n}\n\nif(!(st_eval !== eval)){\n $ERROR('#14: myObj.eval !== eval');\n}\n\nif(!(st_parseFloat !== parseFloat)){\n $ERROR('#15: myObj.parseFloat !== parseFloat');\n}\n\nif(!(st_isNaN !== isNaN)){\n $ERROR('#16: myObj.isNaN !== isNaN');\n}\n\nif(!(st_isFinite !== isFinite)){\n $ERROR('#17: myObj.isFinite !== isFinite');\n}\n\ntry{\n value;\n $ERROR('#18: value is not defined');\n}\ncatch(e){\n}\n\nif(!(myObj.value === \"myObj_value\")){\n $ERROR('#19: myObj.value === \"myObj_value\". Actual: myObj.value ==='+ myObj.value );\n}\n",
+ "id": "S12.10_A1.8_T2",
+ "strict_only": ""
+ },
+ {
+ "section": "12.10",
+ "description": "Declaring function constructor within \"with\" statement, leading to normal completion by \"return\"",
+ "strict_mode_negative": "",
+ "test": "this.p1 = 1;\nthis.p2 = 2;\nthis.p3 = 3;\nvar result = \"result\";\nvar myObj = {p1: 'a', \n p2: 'b', \n p3: 'c',\n value: 'myObj_value',\n valueOf : function(){return 'obj_valueOf';},\n parseInt : function(){return 'obj_parseInt';},\n NaN : 'obj_NaN',\n Infinity : 'obj_Infinity',\n eval : function(){return 'obj_eval';},\n parseFloat : function(){return 'obj_parseFloat';},\n isNaN : function(){return 'obj_isNaN';},\n isFinite : function(){return 'obj_isFinite';}\n}\nvar del;\nvar st_p1 = \"p1\";\nvar st_p2 = \"p2\";\nvar st_p3 = \"p3\";\nvar st_parseInt = \"parseInt\";\nvar st_NaN = \"NaN\";\nvar st_Infinity = \"Infinity\";\nvar st_eval = \"eval\";\nvar st_parseFloat = \"parseFloat\";\nvar st_isNaN = \"isNaN\";\nvar st_isFinite = \"isFinite\";\n\nwith(myObj){\n var f = function(){\n return value;\n st_p1 = p1;\n st_p2 = p2;\n st_p3 = p3;\n st_parseInt = parseInt;\n st_NaN = NaN;\n st_Infinity = Infinity;\n st_eval = eval;\n st_parseFloat = parseFloat;\n st_isNaN = isNaN;\n st_isFinite = isFinite;\n p1 = 'x1';\n this.p2 = 'x2';\n del = delete p3;\n var p4 = 'x4';\n p5 = 'x5';\n var value = 'value';\n }\n var obj = new f();\n}\n\nif(!(p1 === 1)){\n $ERROR('#1: p1 === 1. Actual: p1 ==='+ p1 );\n}\n\nif(!(p2 === 2)){\n $ERROR('#2: p2 === 2. Actual: p2 ==='+ p2 );\n}\n\nif(!(p3 === 3)){\n $ERROR('#3: p3 === 3. Actual: p3 ==='+ p3 );\n}\n\ntry {\n p4;\n $ERROR('#4: p4 is not defined');\n} catch(e) { \n}\n\ntry {\n p5;\n $ERROR('#5: p5 is not defined');\n} catch(e) { \n}\n\nif(!(myObj.p1 === \"a\")){\n $ERROR('#6: myObj.p1 === \"a\". Actual: myObj.p1 ==='+ myObj.p1 );\n}\n\nif(!(myObj.p2 === \"b\")){\n $ERROR('#7: myObj.p2 === \"b\". Actual: myObj.p2 ==='+ myObj.p2 );\n}\n\nif(!(myObj.p3 === \"c\")){\n $ERROR('#8: myObj.p3 === \"c\". Actual: myObj.p3 ==='+ myObj.p3 );\n}\n\nif(!(myObj.p4 === undefined)){\n $ERROR('#9: myObj.p4 === undefined. Actual: myObj.p4 ==='+ myObj.p4 );\n}\n\nif(!(myObj.p5 === undefined)){\n $ERROR('#10: myObj.p5 === undefined. Actual: myObj.p5 ==='+ myObj.p5 );\n}\n\nif(!(st_parseInt === \"parseInt\")){\n $ERROR('#11: myObj.parseInt === \"parseInt\". Actual: myObj.parseInt ==='+ myObj.parseInt );\n}\n\nif(!(st_NaN === \"NaN\")){\n $ERROR('#12: st_NaN === \"NaN\". Actual: st_NaN ==='+ st_NaN );\n}\n\nif(!(st_Infinity === \"Infinity\")){\n $ERROR('#13: st_Infinity === \"Infinity\". Actual: st_Infinity ==='+ st_Infinity );\n}\n\nif(!(st_eval === \"eval\")){\n $ERROR('#14: st_eval === \"eval\". Actual: st_eval ==='+ st_eval );\n}\n\nif(!(st_parseFloat === \"parseFloat\")){\n $ERROR('#15: st_parseFloat === \"parseFloat\". Actual: st_parseFloat ==='+ st_parseFloat );\n}\n\nif(!(st_isNaN === \"isNaN\")){\n $ERROR('#16: st_isNaN === \"isNaN\". Actual: st_isNaN ==='+ st_isNaN );\n}\n\nif(!(st_isFinite === \"isFinite\")){\n $ERROR('#17: st_isFinite === \"isFinite\". Actual: st_isFinite ==='+ st_isFinite );\n}\n\ntry{\n value;\n $ERROR('#18: value is not defined');\n}\ncatch(e){\n}\n\nif(!(myObj.value === \"myObj_value\")){\n $ERROR('#19: myObj.value === \"myObj_value\". Actual: myObj.value ==='+ myObj.value );\n}\n",
+ "id": "S12.10_A1.8_T3",
+ "strict_only": ""
+ },
+ {
+ "section": "12.10",
+ "description": "Declaring function constructor within \"with\" statement, leading to completion by exception",
+ "strict_mode_negative": "",
+ "test": "this.p1 = 1;\nthis.p2 = 2;\nthis.p3 = 3;\nvar result = \"result\";\nvar myObj = {p1: 'a', \n p2: 'b', \n p3: 'c',\n value: 'myObj_value',\n valueOf : function(){return 'obj_valueOf';},\n parseInt : function(){return 'obj_parseInt';},\n NaN : 'obj_NaN',\n Infinity : 'obj_Infinity',\n eval : function(){return 'obj_eval';},\n parseFloat : function(){return 'obj_parseFloat';},\n isNaN : function(){return 'obj_isNaN';},\n isFinite : function(){return 'obj_isFinite';}\n}\nvar del;\nvar st_p1 = \"p1\";\nvar st_p2 = \"p2\";\nvar st_p3 = \"p3\";\nvar st_parseInt = \"parseInt\";\nvar st_NaN = \"NaN\";\nvar st_Infinity = \"Infinity\";\nvar st_eval = \"eval\";\nvar st_parseFloat = \"parseFloat\";\nvar st_isNaN = \"isNaN\";\nvar st_isFinite = \"isFinite\";\n\ntry {\n with(myObj){\n var f = function(){\n st_p1 = p1;\n st_p2 = p2;\n st_p3 = p3;\n st_parseInt = parseInt;\n st_NaN = NaN;\n st_Infinity = Infinity;\n st_eval = eval;\n st_parseFloat = parseFloat;\n st_isNaN = isNaN;\n st_isFinite = isFinite;\n p1 = 'x1';\n this.p2 = 'x2';\n del = delete p3;\n var p4 = 'x4';\n p5 = 'x5';\n var value = 'value';\n throw value;\n }\n var obj = new f();\n }\n} catch(e){\n result = e;\n}\n\nif(!(result === \"value\")){\n $ERROR('#0: result === \"value\". Actual: result ==='+ result );\n}\n\nif(!(p1 === 1)){\n $ERROR('#1: p1 === 1. Actual: p1 ==='+ p1 );\n}\n\nif(!(p2 === 2)){\n $ERROR('#2: p2 === 2. Actual: p2 ==='+ p2 );\n}\n\nif(!(p3 === 3)){\n $ERROR('#3: p3 === 3. Actual: p3 ==='+ p3 );\n}\ntry {\n p4;\n $ERROR('#4: p4 is not defined');\n} catch(e) { \n}\n\nif(!(p5 === \"x5\")){\n $ERROR('#5: p5 === \"x5\". Actual: p5 ==='+ p5 );\n}\n\nif(!(myObj.p1 === \"x1\")){\n $ERROR('#6: myObj.p1 === \"x1\". Actual: myObj.p1 ==='+ myObj.p1 );\n}\n\nif(!(myObj.p2 === \"b\")){\n $ERROR('#7: myObj.p2 === \"b\". Actual: myObj.p2 ==='+ myObj.p2 );\n}\n\nif(!(myObj.p3 === undefined)){\n $ERROR('#8: myObj.p3 === undefined. Actual: myObj.p3 ==='+ myObj.p3 );\n}\n\nif(!(myObj.p4 === undefined)){\n $ERROR('#9: myObj.p4 === undefined. Actual: myObj.p4 ==='+ myObj.p4 );\n}\n\nif(!(myObj.p5 === undefined)){\n $ERROR('#10: myObj.p5 === undefined. Actual: myObj.p5 ==='+ myObj.p5 );\n}\n\nif(!(st_parseInt !== parseInt)){\n $ERROR('#11: myObj.parseInt !== parseInt');\n}\n\nif(!(st_NaN === \"obj_NaN\")){\n $ERROR('#12: myObj.NaN !== NaN');\n}\n\nif(!(st_Infinity !== Infinity)){\n $ERROR('#13: myObj.Infinity !== Infinity');\n}\n\nif(!(st_eval !== eval)){\n $ERROR('#14: myObj.eval !== eval');\n}\n\nif(!(st_parseFloat !== parseFloat)){\n $ERROR('#15: myObj.parseFloat !== parseFloat');\n}\n\nif(!(st_isNaN !== isNaN)){\n $ERROR('#16: myObj.isNaN !== isNaN');\n}\n\nif(!(st_isFinite !== isFinite)){\n $ERROR('#17: myObj.isFinite !== isFinite');\n}\n\ntry{\n value;\n $ERROR('#18: value is not defined');\n}\ncatch(e){\n}\n\nif(!(myObj.value === \"myObj_value\")){\n $ERROR('#19: myObj.value === \"myObj_value\". Actual: myObj.value ==='+ myObj.value );\n}\n",
+ "id": "S12.10_A1.8_T4",
+ "strict_only": ""
+ },
+ {
+ "section": "12.10",
+ "description": "Declaring function constructor within \"with\" statement, leading to completion by exception",
+ "strict_mode_negative": "",
+ "test": "this.p1 = 1;\nthis.p2 = 2;\nthis.p3 = 3;\nvar result = \"result\";\nvar myObj = {p1: 'a', \n p2: 'b', \n p3: 'c',\n value: 'myObj_value',\n valueOf : function(){return 'obj_valueOf';},\n parseInt : function(){return 'obj_parseInt';},\n NaN : 'obj_NaN',\n Infinity : 'obj_Infinity',\n eval : function(){return 'obj_eval';},\n parseFloat : function(){return 'obj_parseFloat';},\n isNaN : function(){return 'obj_isNaN';},\n isFinite : function(){return 'obj_isFinite';}\n}\nvar del;\nvar st_p1 = \"p1\";\nvar st_p2 = \"p2\";\nvar st_p3 = \"p3\";\nvar st_parseInt = \"parseInt\";\nvar st_NaN = \"NaN\";\nvar st_Infinity = \"Infinity\";\nvar st_eval = \"eval\";\nvar st_parseFloat = \"parseFloat\";\nvar st_isNaN = \"isNaN\";\nvar st_isFinite = \"isFinite\";\n\ntry {\n with(myObj){\n var f = function(){\n throw value;\n st_p1 = p1;\n st_p2 = p2;\n st_p3 = p3;\n st_parseInt = parseInt;\n st_NaN = NaN;\n st_Infinity = Infinity;\n st_eval = eval;\n st_parseFloat = parseFloat;\n st_isNaN = isNaN;\n st_isFinite = isFinite;\n p1 = 'x1';\n this.p2 = 'x2';\n del = delete p3;\n var p4 = 'x4';\n p5 = 'x5';\n var value = 'value';\n }\n var obj = new f();\n }\n} catch(e){\n result = e;\n}\n\nif(!(result === undefined)){\n $ERROR('#0: result === undefined. Actual: result ==='+ result );\n}\n\nif(!(p1 === 1)){\n $ERROR('#1: p1 === 1. Actual: p1 ==='+ p1 );\n}\n\nif(!(p2 === 2)){\n $ERROR('#2: p2 === 2. Actual: p2 ==='+ p2 );\n}\n\nif(!(p3 === 3)){\n $ERROR('#3: p3 === 3. Actual: p3 ==='+ p3 );\n}\n\ntry {\n p4;\n $ERROR('#4: p4 is not defined');\n} catch(e) { \n}\n\ntry {\n p5;\n $ERROR('#5: p5 is not defined');\n} catch(e) { \n}\n\nif(!(myObj.p1 === \"a\")){\n $ERROR('#6: myObj.p1 === \"a\". Actual: myObj.p1 ==='+ myObj.p1 );\n}\n\nif(!(myObj.p2 === \"b\")){\n $ERROR('#7: myObj.p2 === \"b\". Actual: myObj.p2 ==='+ myObj.p2 );\n}\n\nif(!(myObj.p3 === \"c\")){\n $ERROR('#8: myObj.p3 === \"c\". Actual: myObj.p3 ==='+ myObj.p3 );\n}\n\nif(!(myObj.p4 === undefined)){\n $ERROR('#9: myObj.p4 === undefined. Actual: myObj.p4 ==='+ myObj.p4 );\n}\n\nif(!(myObj.p5 === undefined)){\n $ERROR('#10: myObj.p5 === undefined. Actual: myObj.p5 ==='+ myObj.p5 );\n}\n\nif(!(st_parseInt === \"parseInt\")){\n $ERROR('#11: myObj.parseInt === \"parseInt\". Actual: myObj.parseInt ==='+ myObj.parseInt );\n}\n\nif(!(st_NaN === \"NaN\")){\n $ERROR('#12: st_NaN === \"NaN\". Actual: st_NaN ==='+ st_NaN );\n}\n\nif(!(st_Infinity === \"Infinity\")){\n $ERROR('#13: st_Infinity === \"Infinity\". Actual: st_Infinity ==='+ st_Infinity );\n}\n\nif(!(st_eval === \"eval\")){\n $ERROR('#14: st_eval === \"eval\". Actual: st_eval ==='+ st_eval );\n}\n\nif(!(st_parseFloat === \"parseFloat\")){\n $ERROR('#15: st_parseFloat === \"parseFloat\". Actual: st_parseFloat ==='+ st_parseFloat );\n}\n\nif(!(st_isNaN === \"isNaN\")){\n $ERROR('#16: st_isNaN === \"isNaN\". Actual: st_isNaN ==='+ st_isNaN );\n}\n\nif(!(st_isFinite === \"isFinite\")){\n $ERROR('#17: st_isFinite === \"isFinite\". Actual: st_isFinite ==='+ st_isFinite );\n}\n\ntry{\n value;\n $ERROR('#18: value is not defined');\n}\ncatch(e){\n}\n\nif(!(myObj.value === \"myObj_value\")){\n $ERROR('#19: myObj.value === \"myObj_value\". Actual: myObj.value ==='+ myObj.value );\n}\n",
+ "id": "S12.10_A1.8_T5",
+ "strict_only": ""
+ },
+ {
+ "section": "12.10",
+ "description": "Using \"for-in\" statement within \"with\" statement, leading to normal completion",
+ "strict_mode_negative": "",
+ "test": "this.p1 = 1;\nthis.p2 = 2;\nthis.p3 = 3;\nvar result = \"result\";\nvar myObj = {p1: 'a', \n p2: 'b', \n p3: 'c',\n value: 'myObj_value',\n valueOf : function(){return 'obj_valueOf';},\n parseInt : function(){return 'obj_parseInt';},\n NaN : 'obj_NaN',\n Infinity : 'obj_Infinity',\n eval : function(){return 'obj_eval';},\n parseFloat : function(){return 'obj_parseFloat';},\n isNaN : function(){return 'obj_isNaN';},\n isFinite : function(){return 'obj_isFinite';}\n}\nvar del;\nvar st_p1 = \"p1\";\nvar st_p2 = \"p2\";\nvar st_p3 = \"p3\";\nvar st_parseInt = \"parseInt\";\nvar st_NaN = \"NaN\";\nvar st_Infinity = \"Infinity\";\nvar st_eval = \"eval\";\nvar st_parseFloat = \"parseFloat\";\nvar st_isNaN = \"isNaN\";\nvar st_isFinite = \"isFinite\";\n\nwith(myObj){\n for(var prop in myObj){\n if(prop === 'p1') {\n st_p1 = p1;\n p1 = 'x1';\n }\n if(prop === 'p2') {\n st_p2 = p2;\n this.p2 = 'x2';\n }\n if(prop === 'p3') {\n st_p3 = p3;\n del = delete p3;\n }\n if(prop === 'parseInt') st_parseInt = parseInt;\n if(prop === 'NaN') st_NaN = NaN;\n if(prop === 'Infinity') st_Infinity = Infinity;\n if(prop === 'eval') st_eval = eval;\n if(prop === 'parseFloat') st_parseFloat = parseFloat;\n if(prop === 'isNaN') st_isNaN = isNaN;\n if(prop === 'isFinite') st_isFinite = isFinite;\n var p4 = 'x4';\n p5 = 'x5';\n var value = 'value';\n }\n}\n\nif(!(p1 === 1)){\n $ERROR('#1: p1 === 1. Actual: p1 ==='+ p1 );\n}\n\nif(!(p2 === \"x2\")){\n $ERROR('#2: p2 === \"x2\". Actual: p2 ==='+ p2 );\n}\n\nif(!(p3 === 3)){\n $ERROR('#3: p3 === 3. Actual: p3 ==='+ p3 );\n}\n\nif(!(p4 === \"x4\")){\n $ERROR('#4: p4 === \"x4\". Actual: p4 ==='+ p4 );\n}\n\nif(!(p5 === \"x5\")){\n $ERROR('#5: p5 === \"x5\". Actual: p5 ==='+ p5 );\n}\n\nif(!(myObj.p1 === \"x1\")){\n $ERROR('#6: myObj.p1 === \"x1\". Actual: myObj.p1 ==='+ myObj.p1 );\n}\n\nif(!(myObj.p2 === \"b\")){\n $ERROR('#7: myObj.p2 === \"b\". Actual: myObj.p2 ==='+ myObj.p2 );\n}\n\nif(!(myObj.p3 === undefined)){\n $ERROR('#8: myObj.p3 === undefined. Actual: myObj.p3 ==='+ myObj.p3 );\n}\n\nif(!(myObj.p4 === undefined)){\n $ERROR('#9: myObj.p4 === undefined. Actual: myObj.p4 ==='+ myObj.p4 );\n}\n\nif(!(myObj.p5 === undefined)){\n $ERROR('#10: myObj.p5 === undefined. Actual: myObj.p5 ==='+ myObj.p5 );\n}\n\nif(!(st_parseInt !== parseInt)){\n $ERROR('#11: myObj.parseInt !== parseInt');\n}\n\nif(!(st_NaN === \"obj_NaN\")){\n $ERROR('#12: myObj.NaN !== NaN');\n}\n\nif(!(st_Infinity !== Infinity)){\n $ERROR('#13: myObj.Infinity !== Infinity');\n}\n\nif(!(st_eval !== eval)){\n $ERROR('#14: myObj.eval !== eval');\n}\n\nif(!(st_parseFloat !== parseFloat)){\n $ERROR('#15: myObj.parseFloat !== parseFloat');\n}\n\nif(!(st_isNaN !== isNaN)){\n $ERROR('#16: myObj.isNaN !== isNaN');\n}\n\nif(!(st_isFinite !== isFinite)){\n $ERROR('#17: myObj.isFinite !== isFinite');\n}\n\nif(!(value === undefined)){\n $ERROR('#18: value === undefined. Actual: value ==='+ value );\n}\n\nif(!(myObj.value === \"value\")){\n $ERROR('#19: myObj.value === \"value\". Actual: myObj.value ==='+ myObj.value );\n}\n",
+ "id": "S12.10_A1.9_T1",
+ "strict_only": ""
+ },
+ {
+ "section": "12.10",
+ "description": "Using \"for-in\" statement within \"with\" statement, leading to completion by break",
+ "strict_mode_negative": "",
+ "test": "this.p1 = 1;\nthis.p2 = 2;\nthis.p3 = 3;\nvar result = \"result\";\nvar myObj = {p1: 'a', \n p2: 'b', \n p3: 'c',\n value: 'myObj_value',\n valueOf : function(){return 'obj_valueOf';},\n parseInt : function(){return 'obj_parseInt';},\n NaN : 'obj_NaN',\n Infinity : 'obj_Infinity',\n eval : function(){return 'obj_eval';},\n parseFloat : function(){return 'obj_parseFloat';},\n isNaN : function(){return 'obj_isNaN';},\n isFinite : function(){return 'obj_isFinite';}\n}\nvar del;\nvar st_p1 = \"p1\";\nvar st_p2 = \"p2\";\nvar st_p3 = \"p3\";\nvar st_parseInt = \"parseInt\";\nvar st_NaN = \"NaN\";\nvar st_Infinity = \"Infinity\";\nvar st_eval = \"eval\";\nvar st_parseFloat = \"parseFloat\";\nvar st_isNaN = \"isNaN\";\nvar st_isFinite = \"isFinite\";\n\nwith(myObj){\n for(var prop in myObj){\n st_p1 = p1;\n p1 = 'x1';\n st_p2 = p2;\n this.p2 = 'x2';\n st_p3 = p3;\n del = delete p3;\n st_parseInt = parseInt;\n st_NaN = NaN;\n st_Infinity = Infinity;\n st_eval = eval;\n st_parseFloat = parseFloat;\n st_isNaN = isNaN;\n st_isFinite = isFinite;\n var p4 = 'x4';\n p5 = 'x5';\n var value = 'value';\n break;\n }\n}\n\nif(!(p1 === 1)){\n $ERROR('#1: p1 === 1. Actual: p1 ==='+ p1 );\n}\n\nif(!(p2 === \"x2\")){\n $ERROR('#2: p2 === \"x2\". Actual: p2 ==='+ p2 );\n}\n\nif(!(p3 === 3)){\n $ERROR('#3: p3 === 3. Actual: p3 ==='+ p3 );\n}\n\nif(!(p4 === \"x4\")){\n $ERROR('#4: p4 === \"x4\". Actual: p4 ==='+ p4 );\n}\n\nif(!(p5 === \"x5\")){\n $ERROR('#5: p5 === \"x5\". Actual: p5 ==='+ p5 );\n}\n\nif(!(myObj.p1 === \"x1\")){\n $ERROR('#6: myObj.p1 === \"x1\". Actual: myObj.p1 ==='+ myObj.p1 );\n}\n\nif(!(myObj.p2 === \"b\")){\n $ERROR('#7: myObj.p2 === \"b\". Actual: myObj.p2 ==='+ myObj.p2 );\n}\n\nif(!(myObj.p3 === undefined)){\n $ERROR('#8: myObj.p3 === undefined. Actual: myObj.p3 ==='+ myObj.p3 );\n}\n\nif(!(myObj.p4 === undefined)){\n $ERROR('#9: myObj.p4 === undefined. Actual: myObj.p4 ==='+ myObj.p4 );\n}\n\nif(!(myObj.p5 === undefined)){\n $ERROR('#10: myObj.p5 === undefined. Actual: myObj.p5 ==='+ myObj.p5 );\n}\n\nif(!(st_parseInt !== parseInt)){\n $ERROR('#11: myObj.parseInt !== parseInt');\n}\n\nif(!(st_NaN === \"obj_NaN\")){\n $ERROR('#12: myObj.NaN !== NaN');\n}\n\nif(!(st_Infinity !== Infinity)){\n $ERROR('#13: myObj.Infinity !== Infinity');\n}\n\nif(!(st_eval !== eval)){\n $ERROR('#14: myObj.eval !== eval');\n}\n\nif(!(st_parseFloat !== parseFloat)){\n $ERROR('#15: myObj.parseFloat !== parseFloat');\n}\n\nif(!(st_isNaN !== isNaN)){\n $ERROR('#16: myObj.isNaN !== isNaN');\n}\n\nif(!(st_isFinite !== isFinite)){\n $ERROR('#17: myObj.isFinite !== isFinite');\n}\n\nif(!(value === undefined)){\n $ERROR('#18: value === undefined. Actual: value ==='+ value );\n}\n\nif(!(myObj.value === \"value\")){\n $ERROR('#19: myObj.value === \"value\". Actual: myObj.value ==='+ myObj.value );\n}\n",
+ "id": "S12.10_A1.9_T2",
+ "strict_only": ""
+ },
+ {
+ "section": "12.10",
+ "description": "Using \"for-in\" statement within \"with\" statement, leading to completion by break",
+ "strict_mode_negative": "",
+ "test": "this.p1 = 1;\nthis.p2 = 2;\nthis.p3 = 3;\nvar result = \"result\";\nvar myObj = {p1: 'a', \n p2: 'b', \n p3: 'c',\n value: 'myObj_value',\n valueOf : function(){return 'obj_valueOf';},\n parseInt : function(){return 'obj_parseInt';},\n NaN : 'obj_NaN',\n Infinity : 'obj_Infinity',\n eval : function(){return 'obj_eval';},\n parseFloat : function(){return 'obj_parseFloat';},\n isNaN : function(){return 'obj_isNaN';},\n isFinite : function(){return 'obj_isFinite';}\n}\nvar del;\nvar st_p1 = \"p1\";\nvar st_p2 = \"p2\";\nvar st_p3 = \"p3\";\nvar st_parseInt = \"parseInt\";\nvar st_NaN = \"NaN\";\nvar st_Infinity = \"Infinity\";\nvar st_eval = \"eval\";\nvar st_parseFloat = \"parseFloat\";\nvar st_isNaN = \"isNaN\";\nvar st_isFinite = \"isFinite\";\n\nwith(myObj){\n for(var prop in myObj){\n break;\n if(prop === 'p1') {\n st_p1 = p1;\n p1 = 'x1';\n }\n if(prop === 'p2') {\n st_p2 = p2;\n this.p2 = 'x2';\n }\n if(prop === 'p3') {\n st_p3 = p3;\n del = delete p3;\n }\n if(prop === 'parseInt') st_parseInt = parseInt;\n if(prop === 'NaN') st_NaN = NaN;\n if(prop === 'Infinity') st_Infinity = Infinity;\n if(prop === 'eval') st_eval = eval;\n if(prop === 'parseFloat') st_parseFloat = parseFloat;\n if(prop === 'isNaN') st_isNaN = isNaN;\n if(prop === 'isFinite') st_isFinite = isFinite;\n var p4 = 'x4';\n p5 = 'x5';\n var value = 'value';\n }\n}\n\nif(!(p1 === 1)){\n $ERROR('#1: p1 === 1. Actual: p1 ==='+ p1 );\n}\n\nif(!(p2 === 2)){\n $ERROR('#2: p2 === 2. Actual: p2 ==='+ p2 );\n}\n\nif(!(p3 === 3)){\n $ERROR('#3: p3 === 3. Actual: p3 ==='+ p3 );\n}\n\nif(!(p4 === undefined)){\n $ERROR('#4: p4 === undefined. Actual: p4 ==='+ p4 );\n}\n\ntry {\n p5;\n $ERROR('#5: p5 is not defined');\n} catch(e) { \n}\n\nif(!(myObj.p1 === \"a\")){\n $ERROR('#6: myObj.p1 === \"a\". Actual: myObj.p1 ==='+ myObj.p1 );\n}\n\nif(!(myObj.p2 === \"b\")){\n $ERROR('#7: myObj.p2 === \"b\". Actual: myObj.p2 ==='+ myObj.p2 );\n}\n\nif(!(myObj.p3 === \"c\")){\n $ERROR('#8: myObj.p3 === \"c\". Actual: myObj.p3 ==='+ myObj.p3 );\n}\n\nif(!(myObj.p4 === undefined)){\n $ERROR('#9: myObj.p4 === undefined. Actual: myObj.p4 ==='+ myObj.p4 );\n}\n\nif(!(myObj.p5 === undefined)){\n $ERROR('#10: myObj.p5 === undefined. Actual: myObj.p5 ==='+ myObj.p5 );\n}\n\nif(!(st_parseInt === \"parseInt\")){\n $ERROR('#11: myObj.parseInt === \"parseInt\". Actual: myObj.parseInt ==='+ myObj.parseInt );\n}\n\nif(!(st_NaN === \"NaN\")){\n $ERROR('#12: st_NaN === \"NaN\". Actual: st_NaN ==='+ st_NaN );\n}\n\nif(!(st_Infinity === \"Infinity\")){\n $ERROR('#13: st_Infinity === \"Infinity\". Actual: st_Infinity ==='+ st_Infinity );\n}\n\nif(!(st_eval === \"eval\")){\n $ERROR('#14: st_eval === \"eval\". Actual: st_eval ==='+ st_eval );\n}\n\nif(!(st_parseFloat === \"parseFloat\")){\n $ERROR('#15: st_parseFloat === \"parseFloat\". Actual: st_parseFloat ==='+ st_parseFloat );\n}\n\nif(!(st_isNaN === \"isNaN\")){\n $ERROR('#16: st_isNaN === \"isNaN\". Actual: st_isNaN ==='+ st_isNaN );\n}\n\nif(!(st_isFinite === \"isFinite\")){\n $ERROR('#17: st_isFinite === \"isFinite\". Actual: st_isFinite ==='+ st_isFinite );\n}\n\nif(!(value === undefined)){\n $ERROR('#18: value === undefined. Actual: value ==='+ value );\n}\n\nif(!(myObj.value === \"myObj_value\")){\n $ERROR('#19: myObj.value === \"myObj_value\". Actual: myObj.value ==='+ myObj.value );\n}\n",
+ "id": "S12.10_A1.9_T3",
+ "strict_only": ""
+ },
+ {
+ "section": "12.10",
+ "description": "Using iteration statement within \"with\" statement, leading to normal completion",
+ "strict_mode_negative": "",
+ "test": "this.p1 = 1;\n\nvar result = \"result\";\n\nvar myObj = {\n p1: 'a', \n value: 'myObj_value',\n valueOf : function(){return 'obj_valueOf';}\n}\n\nwith(myObj){\n do{\n p1 = 'x1';\n } while(false);\n}\n\n//////////////////////////////////////////////////////////////////////////////\n//CHECK#1\nif(p1 !== 1){\n $ERROR('#1: p1 === 1. Actual: p1 ==='+ p1 );\n}\n//\n//////////////////////////////////////////////////////////////////////////////\n\n//////////////////////////////////////////////////////////////////////////////\n//CHECK#2\nif(myObj.p1 !== \"x1\"){\n $ERROR('#2: myObj.p1 === \"x1\". Actual: myObj.p1 ==='+ myObj.p1 );\n}\n//\n//////////////////////////////////////////////////////////////////////////////\n\n\n\n",
+ "id": "S12.10_A3.10_T1",
+ "strict_only": ""
+ },
+ {
+ "section": "12.10",
+ "description": "Using iteration statement within \"with\" statement, leading completion by exception",
+ "strict_mode_negative": "",
+ "test": "this.p1 = 1;\n\nvar result = \"result\";\n\nvar myObj = {\n p1: 'a', \n value: 'myObj_value',\n valueOf : function(){return 'obj_valueOf';}\n}\n\ntry {\n with(myObj){\n do{\n p1 = 'x1';\n throw value;\n } while(false);\n }\n} catch(e){\n result = p1;\n}\n\n//////////////////////////////////////////////////////////////////////////////\n//CHECK#1\nif(result !== 1){\n $ERROR('#1: result === 1. Actual: result ==='+ result );\n}\n//\n//////////////////////////////////////////////////////////////////////////////\n\n//////////////////////////////////////////////////////////////////////////////\n//CHECK#2\nif(p1 !== 1){\n $ERROR('#2: p1 === 1. Actual: p1 ==='+ p1 );\n}\n//\n//////////////////////////////////////////////////////////////////////////////\n\n//////////////////////////////////////////////////////////////////////////////\n//CHECK#3\nif(myObj.p1 !== \"x1\"){\n $ERROR('#3: myObj.p1 === \"x1\". Actual: myObj.p1 ==='+ myObj.p1 );\n}\n//\n//////////////////////////////////////////////////////////////////////////////\n",
+ "id": "S12.10_A3.10_T2",
+ "strict_only": ""
+ },
+ {
+ "section": "12.10",
+ "description": "Using iteration statement within \"with\" statement, leading completion by exception",
+ "strict_mode_negative": "",
+ "test": "this.p1 = 1;\n\nvar result = \"result\";\n\nvar myObj = {\n p1: 'a', \n value: 'myObj_value',\n valueOf : function(){return 'obj_valueOf';}\n}\n\ntry {\n with(myObj){\n do{\n throw value;\n p1 = 'x1';\n } while(false);\n }\n} catch(e){\n result = p1;\n}\n\n//////////////////////////////////////////////////////////////////////////////\n//CHECK#1\nif(result !== 1){\n $ERROR('#1: result === 1. Actual: result ==='+ result );\n}\n//\n//////////////////////////////////////////////////////////////////////////////\n\n//////////////////////////////////////////////////////////////////////////////\n//CHECK#2\nif(p1 !== 1){\n $ERROR('#2: p1 === 1. Actual: p1 ==='+ p1 );\n}\n//\n//////////////////////////////////////////////////////////////////////////////\n\n//////////////////////////////////////////////////////////////////////////////\n//CHECK#3\nif(myObj.p1 !== \"a\"){\n $ERROR('#3: myObj.p1 === \"a\". Actual: myObj.p1 ==='+ myObj.p1 );\n}\n//\n//////////////////////////////////////////////////////////////////////////////\n",
+ "id": "S12.10_A3.10_T3",
+ "strict_only": ""
+ },
+ {
+ "section": "12.10",
+ "description": "Using iteration statement within \"with\" statement, leading completion be break",
+ "strict_mode_negative": "",
+ "test": "this.p1 = 1;\n\nvar result = \"result\";\n\nvar myObj = {\n p1: 'a', \n value: 'myObj_value',\n valueOf : function(){return 'obj_valueOf';}\n}\n\nwith(myObj){\n do{\n p1 = 'x1';\n break;\n } while(false);\n}\n\n//////////////////////////////////////////////////////////////////////////////\n//CHECK#1\nif(p1 !== 1){\n $ERROR('#1: p1 === 1. Actual: p1 ==='+ p1 );\n}\n//\n//////////////////////////////////////////////////////////////////////////////\n\n//////////////////////////////////////////////////////////////////////////////\n//CHECK#2\nif(myObj.p1 !== \"x1\"){\n $ERROR('#2: myObj.p1 === \"x1\". Actual: myObj.p1 ==='+ myObj.p1 );\n}\n//\n//////////////////////////////////////////////////////////////////////////////\n\n\n",
+ "id": "S12.10_A3.10_T4",
+ "strict_only": ""
+ },
+ {
+ "section": "12.10",
+ "description": "Using iteration statement within \"with\" statement, leading completion be break",
+ "strict_mode_negative": "",
+ "test": "this.p1 = 1;\n\nvar result = \"result\";\n\nvar myObj = {\n p1: 'a', \n value: 'myObj_value',\n valueOf : function(){return 'obj_valueOf';}\n}\n\nwith(myObj){\n do{\n break;\n p1 = 'x1';\n } while(false);\n}\n\n//////////////////////////////////////////////////////////////////////////////\n//CHECK#1\nif(p1 !== 1){\n $ERROR('#1: p1 === 1. Actual: p1 ==='+ p1 );\n}\n//\n//////////////////////////////////////////////////////////////////////////////\n\n//////////////////////////////////////////////////////////////////////////////\n//CHECK#2\nif(myObj.p1 !== \"a\"){\n $ERROR('#2: myObj.p1 === \"a\". Actual: myObj.p1 ==='+ myObj.p1 );\n}\n//\n//////////////////////////////////////////////////////////////////////////////\n",
+ "id": "S12.10_A3.10_T5",
+ "strict_only": ""
+ },
+ {
+ "section": "12.10",
+ "description": "Calling a function within \"with\" statement declared without the statement, leading to normal completion",
+ "strict_mode_negative": "",
+ "test": "this.p1 = 1;\nvar result = \"result\";\nvar myObj = {p1: 'a', \n value: 'myObj_value',\n valueOf : function(){return 'obj_valueOf';}\n}\n\nvar f = function(){\n p1 = 'x1';\n}\n\nwith(myObj){\n f();\n}\n\nif(!(p1 === \"x1\")){\n $ERROR('#1: p1 === \"x1\". Actual: p1 ==='+ p1 );\n}\n\nif(!(myObj.p1 === \"a\")){\n $ERROR('#2: myObj.p1 === \"a\". Actual: myObj.p1 ==='+ myObj.p1 );\n}\n",
+ "id": "S12.10_A3.11_T1",
+ "strict_only": ""
+ },
+ {
+ "section": "12.10",
+ "description": "Calling a function within \"with\" statement declared without the statement, leading to normal completion by \"return\"",
+ "strict_mode_negative": "",
+ "test": "this.p1 = 1;\nvar result = \"result\";\nvar value = \"value\";\nvar myObj = {p1: 'a', \n value: 'myObj_value',\n valueOf : function(){return 'obj_valueOf';}\n}\n\nvar f = function(){\n p1 = 'x1';\n return value;\n}\n\nwith(myObj){\n result = f();\n}\n\nif(!(p1 === \"x1\")){\n $ERROR('#1: p1 === \"x1\". Actual: p1 ==='+ p1 );\n}\n\nif(!(myObj.p1 === \"a\")){\n $ERROR('#2: myObj.p1 === \"a\". Actual: myObj.p1 ==='+ myObj.p1 );\n}\n\nif(!(result === \"value\")){\n $ERROR('#3: result === \"value\". Actual: result ==='+ result );\n}\n",
+ "id": "S12.10_A3.11_T2",
+ "strict_only": ""
+ },
+ {
+ "section": "12.10",
+ "description": "Calling a function within \"with\" statement declared without the statement, leading to normal completion by \"return\"",
+ "strict_mode_negative": "",
+ "test": "this.p1 = 1;\nvar result = \"result\";\nvar value = \"value\";\nvar myObj = {p1: 'a', \n value: 'myObj_value',\n valueOf : function(){return 'obj_valueOf';}\n}\n\nvar f = function(){\n return value;\n p1 = 'x1';\n}\n\nwith(myObj){\n result = f();\n}\n\nif(!(p1 === 1)){\n $ERROR('#1: p1 === 1. Actual: p1 ==='+ p1 );\n}\n\nif(!(myObj.p1 === \"a\")){\n $ERROR('#2: myObj.p1 === \"a\". Actual: myObj.p1 ==='+ myObj.p1 );\n}\n\nif(!(result === \"value\")){\n $ERROR('#3: result === \"value\". Actual: result ==='+ result );\n}\n\n",
+ "id": "S12.10_A3.11_T3",
+ "strict_only": ""
+ },
+ {
+ "section": "12.10",
+ "description": "Calling a function within \"with\" statement declared without the statement, leading to completion by exception",
+ "strict_mode_negative": "",
+ "test": "this.p1 = 1;\nvar result = \"result\";\nvar value = \"value\";\nvar myObj = {p1: 'a', \n value: 'myObj_value',\n valueOf : function(){return 'obj_valueOf';}\n}\n\ntry {\n var f = function(){\n p1 = 'x1';\n throw value;\n }\n \n with(myObj){\n f();\n }\n} catch(e){\n result = e;\n}\n\nif(!(p1 === \"x1\")){\n $ERROR('#1: p1 === \"x1\". Actual: p1 ==='+ p1 );\n}\n\nif(!(myObj.p1 === \"a\")){\n $ERROR('#2: myObj.p1 === \"a\". Actual: myObj.p1 ==='+ myObj.p1 );\n}\n\nif(!(result === \"value\")){\n $ERROR('#3: result === \"value\". Actual: result ==='+ result );\n}\n\n\n",
+ "id": "S12.10_A3.11_T4",
+ "strict_only": ""
+ },
+ {
+ "section": "12.10",
+ "description": "Calling a function within \"with\" statement declared without the statement, leading to completion by exception",
+ "strict_mode_negative": "",
+ "test": "this.p1 = 1;\nvar result = \"result\";\nvar value = \"value\";\nvar myObj = {p1: 'a', \n value: 'myObj_value',\n valueOf : function(){return 'obj_valueOf';}\n}\n\ntry {\n var f = function(){\n throw value;\n p1 = 'x1';\n }\n with(myObj){\n f();\n }\n} catch(e){\n result = e;\n}\n\nif(!(p1 === 1)){\n $ERROR('#1: p1 === 1. Actual: p1 ==='+ p1 );\n}\n\nif(!(myObj.p1 === \"a\")){\n $ERROR('#2: myObj.p1 === \"a\". Actual: myObj.p1 ==='+ myObj.p1 );\n}\n\nif(!(result === \"value\")){\n $ERROR('#3: result === \"value\". Actual: result ==='+ result );\n}\n\n",
+ "id": "S12.10_A3.11_T5",
+ "strict_only": ""
+ },
+ {
+ "section": "12.10",
+ "description": "Calling a function without \"with\" statement declared within the statement, leading to normal completion",
+ "strict_mode_negative": "",
+ "test": "this.p1 = 1;\nvar result = \"result\";\nvar myObj = {p1: 'a', \n value: 'myObj_value',\n valueOf : function(){return 'obj_valueOf';}\n}\n\nwith(myObj){\n var f = function(){\n p1 = 'x1';\n }\n}\n\nf();\n\nif(!(p1 === 1)){\n $ERROR('#1: p1 === 1. Actual: p1 ==='+ p1 );\n}\n\nif(!(myObj.p1 === \"x1\")){\n $ERROR('#2: myObj.p1 === \"x1\". Actual: myObj.p1 ==='+ myObj.p1 );\n}\n",
+ "id": "S12.10_A3.12_T1",
+ "strict_only": ""
+ },
+ {
+ "section": "12.10",
+ "description": "Calling a function without \"with\" statement declared within the statement, leading to normal completion by \"return\"",
+ "strict_mode_negative": "",
+ "test": "this.p1 = 1;\nvar result = \"result\";\nvar value = \"value\";\nvar myObj = {p1: 'a', \n value: 'myObj_value',\n valueOf : function(){return 'obj_valueOf';}\n}\n\nwith(myObj){\n var f = function(){\n p1 = 'x1'\n return value;\n }\n}\n\nresult = f();\n\nif(!(p1 === 1)){\n $ERROR('#1: p1 === 1. Actual: p1 ==='+ p1 );\n}\n\nif(!(myObj.p1 === \"x1\")){\n $ERROR('#2: myObj.p1 === \"x1\". Actual: myObj.p1 ==='+ myObj.p1 );\n}\n\nif(!(result === \"myObj_value\")){\n $ERROR('#3: result === \"myObj_value\". Actual: result ==='+ result );\n}\n",
+ "id": "S12.10_A3.12_T2",
+ "strict_only": ""
+ },
+ {
+ "section": "12.10",
+ "description": "Calling a function without \"with\" statement declared within the statement, leading to normal completion by \"return\"",
+ "strict_mode_negative": "",
+ "test": "this.p1 = 1;\nvar result = \"result\";\nvar value = \"value\";\nvar myObj = {p1: 'a', \n value: 'myObj_value',\n valueOf : function(){return 'obj_valueOf';}\n}\n\nwith(myObj){\n var f = function(){\n return value;\n p1 = 'x1';\n }\n}\nresult = f();\n\nif(!(p1 === 1)){\n $ERROR('#1: p1 === 1. Actual: p1 ==='+ p1 );\n}\n\nif(!(myObj.p1 === \"a\")){\n $ERROR('#2: myObj.p1 === \"a\". Actual: myObj.p1 ==='+ myObj.p1 );\n}\n\nif(!(result === \"myObj_value\")){\n $ERROR('#3: result === \"myObj_value\". Actual: result ==='+ result );\n}\n",
+ "id": "S12.10_A3.12_T3",
+ "strict_only": ""
+ },
+ {
+ "section": "12.10",
+ "description": "Calling a function without \"with\" statement declared within the statement, leading to completion by exception",
+ "strict_mode_negative": "",
+ "test": "this.p1 = 1;\nvar result = \"result\";\nvar value = \"value\";\nvar myObj = {p1: 'a', \n value: 'myObj_value',\n valueOf : function(){return 'obj_valueOf';}\n}\n\ntry {\n with(myObj){\n var f = function(){\n p1 = 'x1';\n throw value;\n }\n }\n f();\n} catch(e){\n result = e;\n}\n\nif(!(p1 === 1)){\n $ERROR('#1: p1 === 1. Actual: p1 ==='+ p1 );\n}\n\nif(!(myObj.p1 === \"x1\")){\n $ERROR('#2: myObj.p1 === \"x1\". Actual: myObj.p1 ==='+ myObj.p1 );\n}\n\nif(!(result === \"myObj_value\")){\n $ERROR('#3: result === \"myObj_value\". Actual: result ==='+ result );\n}\n\n",
+ "id": "S12.10_A3.12_T4",
+ "strict_only": ""
+ },
+ {
+ "section": "12.10",
+ "description": "Calling a function without \"with\" statement declared within the statement, leading to completion by exception",
+ "strict_mode_negative": "",
+ "test": "this.p1 = 1;\nvar result = \"result\";\nvar value = \"value\";\nvar myObj = {p1: 'a', \n value: 'myObj_value',\n valueOf : function(){return 'obj_valueOf';}\n}\n\ntry {\n with(myObj){\n var f = function(){\n throw value;\n p1 = 'x1';\n }\n }\n f();\n} catch(e){\n result = e;\n}\n\nif(!(p1 === 1)){\n $ERROR('#1: p1 === 1. Actual: p1 ==='+ p1 );\n}\n\nif(!(myObj.p1 === \"a\")){\n $ERROR('#2: myObj.p1 === \"a\". Actual: myObj.p1 ==='+ myObj.p1 );\n}\n\nif(!(result === \"myObj_value\")){\n $ERROR('#3: result === \"myObj_value\". Actual: result ==='+ result );\n}\n",
+ "id": "S12.10_A3.12_T5",
+ "strict_only": ""
+ },
+ {
+ "section": "12.10",
+ "description": "Using \"with\" statement within global context - normal completion",
+ "strict_mode_negative": "",
+ "test": "this.p1 = 1;\n\nvar result = \"result\";\n\nvar myObj = {\n p1: 'a', \n value: 'myObj_value',\n valueOf : function(){return 'obj_valueOf';}\n}\n\n\nwith(myObj){\n p1 = 'x1';\n}\n\n//////////////////////////////////////////////////////////////////////////////\n//CHECK#1\nif(p1 !== 1){\n $ERROR('#1: p1 === 1. Actual: p1 ==='+ p1 );\n}\n//\n//////////////////////////////////////////////////////////////////////////////\n\n//////////////////////////////////////////////////////////////////////////////\n//CHECK#2\nif(myObj.p1 !== \"x1\"){\n $ERROR('#2: myObj.p1 === \"x1\". Actual: myObj.p1 ==='+ myObj.p1 );\n}\n//\n//////////////////////////////////////////////////////////////////////////////\n\n\n",
+ "id": "S12.10_A3.1_T1",
+ "strict_only": ""
+ },
+ {
+ "section": "12.10",
+ "description": "Using \"with\" statement within global context, leading to completion by exception",
+ "strict_mode_negative": "",
+ "test": "this.p1 = 1;\n\nvar result = \"result\";\n\nvar myObj = {\n p1: 'a', \n value: 'myObj_value',\n valueOf : function(){return 'obj_valueOf';}\n}\n\ntry {\n\n with(myObj){\n \n p1 = 'x1'\n throw value;\n \n }\n} catch(e){\n result = p1;\n}\n\n//////////////////////////////////////////////////////////////////////////////\n//CHECK#1\nif(result !== 1){\n $ERROR('#1: result === 1. Actual: result ==='+ result );\n}\n//\n//////////////////////////////////////////////////////////////////////////////\n\n\n//////////////////////////////////////////////////////////////////////////////\n//CHECK#2\nif(p1 !== 1){\n $ERROR('#2: p1 === 1. Actual: p1 ==='+ p1 );\n}\n//\n//////////////////////////////////////////////////////////////////////////////\n\n//////////////////////////////////////////////////////////////////////////////\n//CHECK#3\nif (myObj.p1 !== \"x1\") {\n\t$ERROR('#3: myObj.p1 === \"x1\". Actual: myObj.p1 ==='+ myObj.p1 );\n}\n//\n//////////////////////////////////////////////////////////////////////////////\n",
+ "id": "S12.10_A3.1_T2",
+ "strict_only": ""
+ },
+ {
+ "section": "12.10",
+ "description": "Using \"with\" statement within global context, leading to completion by exception",
+ "strict_mode_negative": "",
+ "test": "this.p1 = 1;\nvar result = \"result\";\nvar myObj = {p1: 'a', \n value: 'myObj_value',\n valueOf : function(){return 'obj_valueOf';}\n}\n\ntry {\n\n with(myObj){\n \n throw value;\n p1 = 'x1'\n }\n} catch(e){\n result = p1;\n}\n\n//////////////////////////////////////////////////////////////////////////////\n//CHECK#1\nif(!(result === 1)){\n $ERROR('#1: result === 1. Actual: result ==='+ result );\n}\n//\n//////////////////////////////////////////////////////////////////////////////\n\n//////////////////////////////////////////////////////////////////////////////\n//CHECK#2\nif(!(p1 === 1)){\n $ERROR('#2: p1 === 1. Actual: p1 ==='+ p1 );\n}\n//\n//////////////////////////////////////////////////////////////////////////////\n\n//////////////////////////////////////////////////////////////////////////////\n//CHECK#3\nif(!(myObj.p1 === \"a\")){\n $ERROR('#3: myObj.p1 === \"a\". Actual: myObj.p1 ==='+ myObj.p1 );\n}\n//\n//////////////////////////////////////////////////////////////////////////////\n\n\n\n\n",
+ "id": "S12.10_A3.1_T3",
+ "strict_only": ""
+ },
+ {
+ "section": "12.10",
+ "description": "Declaring \"with\" statement within a function body, leading to normal completion",
+ "strict_mode_negative": "",
+ "test": "this.p1 = 1;\n\nvar result = \"result\";\n\nvar myObj = {\n p1: 'a', \n value: 'myObj_value',\n valueOf : function(){return 'obj_valueOf';}\n}\n\nvar f = function(){\n with(myObj){\n p1 = 'x1';\n }\n}\n\nf();\n\n//////////////////////////////////////////////////////////////////////////////\n//CHECK#1\nif(p1 !== 1){\n $ERROR('#1: p1 === 1. Actual: p1 ==='+ p1 );\n}\n//\n//////////////////////////////////////////////////////////////////////////////\n\n//////////////////////////////////////////////////////////////////////////////\n//CHECK#2\nif(myObj.p1 !== \"x1\"){\n $ERROR('#2: myObj.p1 === \"x1\". Actual: myObj.p1 ==='+ myObj.p1 );\n}\n//\n//////////////////////////////////////////////////////////////////////////////\n",
+ "id": "S12.10_A3.2_T1",
+ "strict_only": ""
+ },
+ {
+ "section": "12.10",
+ "description": "Declaring \"with\" statement within a function body, leading to normal completion by \"return\"",
+ "strict_mode_negative": "",
+ "test": "this.p1 = 1;\n\nvar result = \"result\";\n\nvar myObj = {\n p1: 'a', \n value: 'myObj_value',\n valueOf : function(){return 'obj_valueOf';}\n}\n\nvar f = function(){\n with(myObj){\n p1 = 'x1';\n return value;\n }\n};\n\nf();\n\n//////////////////////////////////////////////////////////////////////////////\n//CHECK#1\nif(p1 !== 1){\n $ERROR('#1: p1 === 1. Actual: p1 ==='+ p1 );\n}\n//\n//////////////////////////////////////////////////////////////////////////////\n\n//////////////////////////////////////////////////////////////////////////////\n//CHECK#1\nif(myObj.p1 !== \"x1\"){\n $ERROR('#1: myObj.p1 === \"x1\". Actual: myObj.p1 ==='+ myObj.p1 );\n}\n//\n//////////////////////////////////////////////////////////////////////////////\n\n\n",
+ "id": "S12.10_A3.2_T2",
+ "strict_only": ""
+ },
+ {
+ "section": "12.10",
+ "description": "Declaring \"with\" statement within a function body, leading to normal completion by \"return\"",
+ "strict_mode_negative": "",
+ "test": "this.p1 = 1;\n\nvar result = \"result\";\n\nvar myObj = {\n p1: 'a', \n value: 'myObj_value',\n valueOf : function(){return 'obj_valueOf';}\n}\n\nvar f = function(){\n with(myObj){\n return value;\n p1 = 'x1';\n }\n};\n\nf();\n\n//////////////////////////////////////////////////////////////////////////////\n//CHECK#1\nif(p1 !== 1){\n $ERROR('#1: p1 === 1. Actual: p1 ==='+ p1 );\n}\n//\n//////////////////////////////////////////////////////////////////////////////\n\n//////////////////////////////////////////////////////////////////////////////\n//CHECK#2\nif(myObj.p1 !== \"a\"){\n $ERROR('#2: myObj.p1 === \"a\". Actual: myObj.p1 ==='+ myObj.p1 );\n}\n//\n//////////////////////////////////////////////////////////////////////////////\n",
+ "id": "S12.10_A3.2_T3",
+ "strict_only": ""
+ },
+ {
+ "section": "12.10",
+ "description": "Declaring \"with\" statement within a function body, leading to completion by exception",
+ "strict_mode_negative": "",
+ "test": "this.p1 = 1;\n\nvar result = \"result\";\n\nvar myObj = {\n p1: 'a', \n value: 'myObj_value',\n valueOf : function(){return 'obj_valueOf';}\n}\n\ntry {\n var f = function(){\n with(myObj){\n p1 = 'x1';\n throw value;\n }\n };\n \n f();\n} catch(e){\n result = p1;\n}\n\n\n//////////////////////////////////////////////////////////////////////////////\n//CHECK#1\nif(result !== 1){\n $ERROR('#1: result === 1. Actual: result ==='+ result );\n}\n//\n//////////////////////////////////////////////////////////////////////////////\n\n//////////////////////////////////////////////////////////////////////////////\n//CHECK#2\nif(p1 !== 1){\n $ERROR('#2: p1 === 1. Actual: p1 ==='+ p1 );\n}\n//\n//////////////////////////////////////////////////////////////////////////////\n\n//////////////////////////////////////////////////////////////////////////////\n//CHECK#3\nif(myObj.p1 !== \"x1\"){\n $ERROR('#3: myObj.p1 === \"x1\". Actual: myObj.p1 ==='+ myObj.p1 );\n}\n//\n//////////////////////////////////////////////////////////////////////////////\n",
+ "id": "S12.10_A3.2_T4",
+ "strict_only": ""
+ },
+ {
+ "section": "12.10",
+ "description": "Declaring \"with\" statement within a function body, leading to completion by exception",
+ "strict_mode_negative": "",
+ "test": "this.p1 = 1;\n\nvar result = \"result\";\n\nvar myObj = {\n p1: 'a', \n value: 'myObj_value',\n valueOf : function(){return 'obj_valueOf';}\n};\n\ntry {\n var f = function(){\n with(myObj){\n throw value;\n p1 = 'x1';\n }\n };\n f();\n} catch(e){\n result = p1;\n}\n\n\n//////////////////////////////////////////////////////////////////////////////\n//CHECK#1\nif(result !== 1){\n $ERROR('#1: result === 1. Actual: result ==='+ result );\n}\n//\n//////////////////////////////////////////////////////////////////////////////\n\n//////////////////////////////////////////////////////////////////////////////\n//CHECK#2\nif(p1 !== 1){\n $ERROR('#2: p1 === 1. Actual: p1 ==='+ p1 );\n}\n//\n//////////////////////////////////////////////////////////////////////////////\n\n//////////////////////////////////////////////////////////////////////////////\n//CHECK#3\nif(myObj.p1 !== \"a\"){\n $ERROR('#3: myObj.p1 === \"a\". Actual: myObj.p1 ==='+ myObj.p1 );\n}\n//\n//////////////////////////////////////////////////////////////////////////////\n\n\n\n\n",
+ "id": "S12.10_A3.2_T5",
+ "strict_only": ""
+ },
+ {
+ "section": "12.10",
+ "description": "Declaring \"with\" statement within a function constructor, leading to normal completion",
+ "strict_mode_negative": "",
+ "test": "this.p1 = 1;\n\nvar result = \"result\";\n\nvar myObj = {\n p1: 'a', \n value: 'myObj_value',\n valueOf : function(){return 'obj_valueOf';}\n}\n\nfunction __FACTORY(){\n with(myObj){\n p1 = 'x1';\n }\n}\n\nvar obj = new __FACTORY();\n\n//////////////////////////////////////////////////////////////////////////////\n//CHECK#1\nif(p1 !== 1){\n $ERROR('#1: p1 === 1. Actual: p1 ==='+ p1 );\n}\n//\n//////////////////////////////////////////////////////////////////////////////\n\n//////////////////////////////////////////////////////////////////////////////\n//CHECK#2\nif(myObj.p1 !== \"x1\"){\n $ERROR('#2: myObj.p1 === \"x1\". Actual: myObj.p1 ==='+ myObj.p1 );\n}\n//\n//////////////////////////////////////////////////////////////////////////////\n\n\n",
+ "id": "S12.10_A3.3_T1",
+ "strict_only": ""
+ },
+ {
+ "section": "12.10",
+ "description": "Declaring \"with\" statement within a function constructor, leading to normal completion by \"return\"",
+ "strict_mode_negative": "",
+ "test": "this.p1 = 1;\n\nvar result = \"result\";\n\nvar myObj = {\n p1: 'a', \n value: 'myObj_value',\n valueOf : function(){return 'obj_valueOf';}\n}\n\nfunction __FACTORY(){\n with(myObj){\n p1 = 'x1';\n return value;\n }\n}\n\nvar obj = new __FACTORY;\n\n//////////////////////////////////////////////////////////////////////////////\n//CHECK#1\nif(p1 !== 1){\n $ERROR('#1: p1 === 1. Actual: p1 ==='+ p1 );\n}\n//\n//////////////////////////////////////////////////////////////////////////////\n\n//////////////////////////////////////////////////////////////////////////////\n//CHECK#2\nif(myObj.p1 !== \"x1\"){\n $ERROR('#2: myObj.p1 === \"x1\". Actual: myObj.p1 ==='+ myObj.p1 );\n}\n//\n//////////////////////////////////////////////////////////////////////////////\n",
+ "id": "S12.10_A3.3_T2",
+ "strict_only": ""
+ },
+ {
+ "section": "12.10",
+ "description": "Declaring \"with\" statement within a function constructor, leading to normal completion by \"return\"",
+ "strict_mode_negative": "",
+ "test": "this.p1 = 1;\n\nvar result = \"result\";\n\nvar myObj = {\n p1: 'a', \n value: 'myObj_value',\n valueOf : function(){return 'obj_valueOf';}\n}\n\nfunction __FACTORY(){\n with(myObj){\n return value;\n p1 = 'x1';\n }\n}\n\nvar obj = new __FACTORY;\n\n//////////////////////////////////////////////////////////////////////////////\n//CHECK#1\nif(p1 !== 1){\n $ERROR('#1: p1 === 1. Actual: p1 ==='+ p1 );\n}\n//\n//////////////////////////////////////////////////////////////////////////////\n\n//////////////////////////////////////////////////////////////////////////////\n//CHECK#2\nif(myObj.p1 !== \"a\"){\n $ERROR('#2: myObj.p1 === \"a\". Actual: myObj.p1 ==='+ myObj.p1 );\n}\n//\n//////////////////////////////////////////////////////////////////////////////\n\n\n",
+ "id": "S12.10_A3.3_T3",
+ "strict_only": ""
+ },
+ {
+ "section": "12.10",
+ "description": "Declaring \"with\" statement within a function constructor, leading to completion by exception",
+ "strict_mode_negative": "",
+ "test": "this.p1 = 1;\n\nvar result = \"result\";\n\nvar myObj = {\n p1: 'a',\n value: 'myObj_value',\n valueOf : function(){return 'obj_valueOf';}\n};\n\nfunction __FACTORY(){\n with(myObj){\n var p1 = 'x1';\n throw value;\n }\n}\n\ntry {\n var obj = new __FACTORY();\n} catch(e){\n result = p1;\n}\n\n//////////////////////////////////////////////////////////////////////////////\n//CHECK#1\nif (result !== 1) {\n $ERROR('#1: result === 1. Actual: result ==='+ result );\n}\n//\n//////////////////////////////////////////////////////////////////////////////\n\n//////////////////////////////////////////////////////////////////////////////\n//CHECK#2\nif (p1 !== 1) {\n $ERROR('#2: p1 === 1. Actual: p1 ==='+ p1 );\n}\n//\n//////////////////////////////////////////////////////////////////////////////\n\n//////////////////////////////////////////////////////////////////////////////\n//CHECK#3\nif (myObj.p1 !== \"x1\") {\n $ERROR('#3: myObj.p1 === \"x1\". Actual: myObj.p1 ==='+ myObj.p1 );\n}\n//\n//////////////////////////////////////////////////////////////////////////////\n",
+ "id": "S12.10_A3.3_T4",
+ "strict_only": ""
+ },
+ {
+ "section": "12.10",
+ "description": "Declaring \"with\" statement within a function constructor, leading to completion by exception",
+ "strict_mode_negative": "",
+ "test": "this.p1 = 1;\n\nvar result = \"result\";\n\nvar myObj = {\n p1: 'a', \n value: 'myObj_value',\n valueOf : function(){return 'obj_valueOf';}\n}\n\ntry {\n function __FACTORY(){\n with(myObj){\n throw value;\n p1 = 'x1';\n }\n }\n var obj = new __FACTORY();\n} catch(e){\n result = p1;\n}\n\n//////////////////////////////////////////////////////////////////////////////\n//CHECK#1\nif(result !== 1){\n $ERROR('#1: result === 1. Actual: result ==='+ result );\n}\n//\n//////////////////////////////////////////////////////////////////////////////\n\n//////////////////////////////////////////////////////////////////////////////\n//CHECK#2\nif(p1 !== 1){\n $ERROR('#2: p1 === 1. Actual: p1 ==='+ p1 );\n}\n//\n//////////////////////////////////////////////////////////////////////////////\n\n//////////////////////////////////////////////////////////////////////////////\n//CHECK#3\nif(myObj.p1 !== \"a\"){\n $ERROR('#3: myObj.p1 === \"a\". Actual: myObj.p1 ==='+ myObj.p1 );\n}\n//\n//////////////////////////////////////////////////////////////////////////////\n\n",
+ "id": "S12.10_A3.3_T5",
+ "strict_only": ""
+ },
+ {
+ "section": "12.10",
+ "description": "Using \"with\" statement within iteration statement, leading to normal completion",
+ "strict_mode_negative": "",
+ "test": "this.p1 = 1;\n\nvar result = \"result\";\n\nvar myObj = {\n p1: 'a', \n value: 'myObj_value',\n valueOf : function(){return 'obj_valueOf';}\n}\n\ndo {\n with(myObj){\n p1 = 'x1';\n }\n} while(false);\n\n//////////////////////////////////////////////////////////////////////////////\n//CHECK#1\nif(p1 !== 1){\n $ERROR('#1: p1 === 1. Actual: p1 ==='+ p1 );\n}\n//\n//////////////////////////////////////////////////////////////////////////////\n\n//////////////////////////////////////////////////////////////////////////////\n//CHECK#2\nif(myObj.p1 !== \"x1\"){\n $ERROR('#2: myObj.p1 === \"x1\". Actual: myObj.p1 ==='+ myObj.p1 );\n}\n//\n//////////////////////////////////////////////////////////////////////////////\n\n\n",
+ "id": "S12.10_A3.4_T1",
+ "strict_only": ""
+ },
+ {
+ "section": "12.10",
+ "description": "Using \"with\" statement within iteration statement, leading to completion by exception",
+ "strict_mode_negative": "",
+ "test": "this.p1 = 1;\n\nvar result = \"result\";\n\nvar myObj = {\n p1: 'a', \n value: 'myObj_value',\n valueOf : function(){return 'obj_valueOf';}\n}\n\ntry {\n do{\n with(myObj){\n p1 = 'x1';\n throw value;\n }\n } while(false);\n} catch(e){\n result = p1;\n}\n\n//////////////////////////////////////////////////////////////////////////////\n//CHECK#1\nif(result !== 1){\n $ERROR('#1: result === 1. Actual: result ==='+ result );\n}\n//\n//////////////////////////////////////////////////////////////////////////////\n\n//////////////////////////////////////////////////////////////////////////////\n//CHECK#2\nif(p1 !== 1){\n $ERROR('#2: p1 === 1. Actual: p1 ==='+ p1 );\n}\n//\n//////////////////////////////////////////////////////////////////////////////\n\n//////////////////////////////////////////////////////////////////////////////\n//CHECK#3\nif(myObj.p1 !== \"x1\"){\n $ERROR('#3: myObj.p1 === \"x1\". Actual: myObj.p1 ==='+ myObj.p1 );\n}\n//\n//////////////////////////////////////////////////////////////////////////////\n",
+ "id": "S12.10_A3.4_T2",
+ "strict_only": ""
+ },
+ {
+ "section": "12.10",
+ "description": "Using \"with\" statement within iteration statement, leading to completion by exception",
+ "strict_mode_negative": "",
+ "test": "this.p1 = 1;\n\nvar result = \"result\";\n\nvar myObj = {\n p1: 'a', \n value: 'myObj_value',\n valueOf : function(){return 'obj_valueOf';}\n}\n\ntry {\n do{\n with(myObj){\n throw value;\n p1 = 'x1';\n }\n } while(false);\n} catch(e){\n result = p1;\n}\n\n//////////////////////////////////////////////////////////////////////////////\n//CHECK#1\nif(result !== 1){\n $ERROR('#1: result === 1. Actual: result ==='+ result );\n}\n//\n//////////////////////////////////////////////////////////////////////////////\n\n//////////////////////////////////////////////////////////////////////////////\n//CHECK#2\nif(p1 !== 1){\n $ERROR('#2: p1 === 1. Actual: p1 ==='+ p1 );\n}\n//\n//////////////////////////////////////////////////////////////////////////////\n\n//////////////////////////////////////////////////////////////////////////////\n//CHECK#3\nif(myObj.p1 !== \"a\"){\n $ERROR('#3: myObj.p1 === \"a\". Actual: myObj.p1 ==='+ myObj.p1 );\n}\n//\n//////////////////////////////////////////////////////////////////////////////\n",
+ "id": "S12.10_A3.4_T3",
+ "strict_only": ""
+ },
+ {
+ "section": "12.10",
+ "description": "Using \"with\" statement within iteration statement, leading to completion by break",
+ "strict_mode_negative": "",
+ "test": "this.p1 = 1;\n\nvar result = \"result\";\n\nvar myObj = {\n p1: 'a', \n value: 'myObj_value',\n valueOf : function(){return 'obj_valueOf';}\n}\n\ndo {\n with(myObj){\n p1 = 'x1';\n break;\n }\n} while(false);\n\n//////////////////////////////////////////////////////////////////////////////\n//CHECK#1\nif(p1 !== 1){\n $ERROR('#1: p1 === 1. Actual: p1 ==='+ p1 );\n}\n//\n//////////////////////////////////////////////////////////////////////////////\n\n//////////////////////////////////////////////////////////////////////////////\n//CHECK#2\nif(myObj.p1 !== \"x1\"){\n $ERROR('#2: myObj.p1 === \"x1\". Actual: myObj.p1 ==='+ myObj.p1 );\n}\n//\n//////////////////////////////////////////////////////////////////////////////\n\n\n",
+ "id": "S12.10_A3.4_T4",
+ "strict_only": ""
+ },
+ {
+ "section": "12.10",
+ "description": "Using \"with\" statement within iteration statement, leading to completion by break",
+ "strict_mode_negative": "",
+ "test": "this.p1 = 1;\n\nvar result = \"result\";\n\nvar myObj = {\n p1: 'a', \n value: 'myObj_value',\n valueOf : function(){return 'obj_valueOf';}\n}\n\ndo {\n with(myObj){\n break;\n p1 = 'x1';\n }\n} while(false);\n\n//////////////////////////////////////////////////////////////////////////////\n//CHECK#1\nif(p1 !== 1){\n $ERROR('#1: p1 === 1. Actual: p1 ==='+ p1 );\n}\n//\n//////////////////////////////////////////////////////////////////////////////\n\n//////////////////////////////////////////////////////////////////////////////\n//CHECK#2\nif(myObj.p1 !== \"a\"){\n $ERROR('#2: myObj.p1 === \"a\". Actual: myObj.p1 ==='+ myObj.p1 );\n}\n//\n//////////////////////////////////////////////////////////////////////////////\n\n\n",
+ "id": "S12.10_A3.4_T5",
+ "strict_only": ""
+ },
+ {
+ "section": "12.10",
+ "description": "Using \"with\" statement within \"for-in\" statement, leading to normal completion",
+ "strict_mode_negative": "",
+ "test": "this.p1 = 1;\n\nvar result = \"result\";\n\nvar myObj = {\n p1: 'a', \n value: 'myObj_value',\n valueOf : function(){return 'obj_valueOf';}\n}\n\nfor(var prop in myObj){\n with(myObj){\n p1 = 'x1';\n }\n}\n\n//////////////////////////////////////////////////////////////////////////////\n//CHECK#1\nif(p1 !== 1){\n $ERROR('#1: p1 === 1. Actual: p1 ==='+ p1 );\n}\n//\n//////////////////////////////////////////////////////////////////////////////\n\n//////////////////////////////////////////////////////////////////////////////\n//CHECK#2\nif(myObj.p1 !== \"x1\"){\n $ERROR('#2: myObj.p1 === \"x1\". Actual: myObj.p1 ==='+ myObj.p1 );\n}\n//\n//////////////////////////////////////////////////////////////////////////////\n",
+ "id": "S12.10_A3.5_T1",
+ "strict_only": ""
+ },
+ {
+ "section": "12.10",
+ "description": "Using \"with\" statement within \"for-in\" statement, leading to completion by exception",
+ "strict_mode_negative": "",
+ "test": "this.p1 = 1;\n\nvar result = \"result\";\n\nvar myObj = {\n p1: 'a', \n value: 'myObj_value',\n valueOf : function(){return 'obj_valueOf';}\n}\n\ntry {\n for(var prop in myObj){\n with(myObj){\n p1 = 'x1';\n throw value;\n }\n }\n} catch(e){\n result = p1;\n}\n\n//////////////////////////////////////////////////////////////////////////////\n//CHECK#1\nif(result !== 1){\n $ERROR('#1: result === 1. Actual: result ==='+ result );\n}\n//\n//////////////////////////////////////////////////////////////////////////////\n\n//////////////////////////////////////////////////////////////////////////////\n//CHECK#2\nif(p1 !== 1){\n $ERROR('#2: p1 === 1. Actual: p1 ==='+ p1 );\n}\n//\n//////////////////////////////////////////////////////////////////////////////\n\n//////////////////////////////////////////////////////////////////////////////\n//CHECK#3\nif(myObj.p1 !== \"x1\"){\n $ERROR('#3: myObj.p1 === \"x1\". Actual: myObj.p1 ==='+ myObj.p1 );\n}\n//\n//////////////////////////////////////////////////////////////////////////////\n",
+ "id": "S12.10_A3.5_T2",
+ "strict_only": ""
+ },
+ {
+ "section": "12.10",
+ "description": "Using \"with\" statement within \"for-in\" statement, leading to completion by exception",
+ "strict_mode_negative": "",
+ "test": "this.p1 = 1;\n\nvar result = \"result\";\n\nvar myObj = {\n p1: 'a', \n value: 'myObj_value',\n valueOf : function(){return 'obj_valueOf';}\n}\n\ntry {\n for(var prop in myObj){\n with(myObj){\n throw value;\n p1 = 'x1';\n }\n }\n} catch(e){\n result = p1;\n}\n\n//////////////////////////////////////////////////////////////////////////////\n//CHECK#1\nif(result !== 1){\n $ERROR('#1: result === 1. Actual: result ==='+ result );\n}\n//\n//////////////////////////////////////////////////////////////////////////////\n\n//////////////////////////////////////////////////////////////////////////////\n//CHECK#2\nif(p1 !== 1){\n $ERROR('#2: p1 === 1. Actual: p1 ==='+ p1 );\n}\n//\n//////////////////////////////////////////////////////////////////////////////\n\n//////////////////////////////////////////////////////////////////////////////\n//CHECK#3\nif(myObj.p1 !== \"a\"){\n $ERROR('#3: myObj.p1 === \"a\". Actual: myObj.p1 ==='+ myObj.p1 );\n}\n//\n//////////////////////////////////////////////////////////////////////////////\n",
+ "id": "S12.10_A3.5_T3",
+ "strict_only": ""
+ },
+ {
+ "section": "12.10",
+ "description": "Using \"with\" statement within \"for-in\" statement, leading to completion by break",
+ "strict_mode_negative": "",
+ "test": "this.p1 = 1;\n\nvar result = \"result\";\n\nvar myObj = {\n p1: 'a', \n value: 'myObj_value',\n valueOf : function(){return 'obj_valueOf';}\n}\n\nfor(var prop in myObj){\n with(myObj){\n p1 = 'x1';\n break;\n }\n}\n\n//////////////////////////////////////////////////////////////////////////////\n//CHECK#1\nif(p1 !== 1){\n $ERROR('#1: p1 === 1. Actual: p1 ==='+ p1 );\n}\n//\n//////////////////////////////////////////////////////////////////////////////\n\n//////////////////////////////////////////////////////////////////////////////\n//CHECK#2\nif(myObj.p1 !== \"x1\"){\n $ERROR('#2: myObj.p1 === \"x1\". Actual: myObj.p1 ==='+ myObj.p1 );\n}\n//\n//////////////////////////////////////////////////////////////////////////////\n",
+ "id": "S12.10_A3.5_T4",
+ "strict_only": ""
+ },
+ {
+ "section": "12.10",
+ "description": "Using \"with\" statement within \"for-in\" statement, leading to completion by break",
+ "strict_mode_negative": "",
+ "test": "this.p1 = 1;\n\nvar result = \"result\";\n\nvar myObj = {\n p1: 'a', \n value: 'myObj_value',\n valueOf : function(){return 'obj_valueOf';}\n}\n\nfor(var prop in myObj){\n with(myObj){\n break;\n p1 = 'x1';\n }\n}\n\n//////////////////////////////////////////////////////////////////////////////\n//CHECK#1\nif(p1 !== 1){\n $ERROR('#1: p1 === 1. Actual: p1 ==='+ p1 );\n}\n//\n//////////////////////////////////////////////////////////////////////////////\n\n//////////////////////////////////////////////////////////////////////////////\n//CHECK#1\nif(myObj.p1 !== \"a\"){\n $ERROR('#1: myObj.p1 === \"a\". Actual: myObj.p1 ==='+ myObj.p1 );\n}\n//\n//////////////////////////////////////////////////////////////////////////////\n\n\n\n",
+ "id": "S12.10_A3.5_T5",
+ "strict_only": ""
+ },
+ {
+ "section": "12.10",
+ "description": "Using \"with\" statement within another \"with\" statement, leading to normal completion",
+ "strict_mode_negative": "",
+ "test": "this.p1 = 1;\n\nvar result = \"result\";\n\nvar myObj = {\n p1: 'a', \n value: 'myObj_value',\n valueOf : function(){return 'obj_valueOf';}\n}\n\nvar theirObj = {\n p1: true, \n value: 'theirObj_value',\n valueOf : function(){return 'thr_valueOf';}\n}\n\nwith(myObj){\n with(theirObj){\n p1 = 'x1';\n }\n}\n\n//////////////////////////////////////////////////////////////////////////////\n//CHECK#1\nif(p1 !== 1){\n $ERROR('#1: p1 === 1. Actual: p1 ==='+ p1 );\n}\n//\n//////////////////////////////////////////////////////////////////////////////\n\n//////////////////////////////////////////////////////////////////////////////\n//CHECK#2\nif(myObj.p1 !== \"a\"){\n $ERROR('#2: myObj.p1 === \"a\". Actual: myObj.p1 ==='+ myObj.p1 );\n}\n//\n//////////////////////////////////////////////////////////////////////////////\n\n//////////////////////////////////////////////////////////////////////////////\n//CHECK#3\nif(theirObj.p1 !== \"x1\"){\n $ERROR('#3: theirObj.p1 === \"x1\". Actual: theirObj.p1 ==='+ theirObj.p1 );\n}\n//\n//////////////////////////////////////////////////////////////////////////////\n\n\n",
+ "id": "S12.10_A3.6_T1",
+ "strict_only": ""
+ },
+ {
+ "section": "12.10",
+ "description": "Using \"with\" statement within another \"with\" statement, leading to completion by exception",
+ "strict_mode_negative": "",
+ "test": "this.p1 = 1;\n\nvar result = \"result\";\n\nvar myObj = {\n p1: 'a', \n value: 'myObj_value',\n valueOf : function(){return 'obj_valueOf';}\n}\n\nvar theirObj = {\n p1: true, \n value: 'theirObj_value',\n valueOf : function(){return 'thr_valueOf';}\n}\n\n\ntry {\n with(myObj){\n with(theirObj){\n p1 = 'x1';\n throw value;\n }\n }\n} catch(e){\n result = p1;\n}\n\n//////////////////////////////////////////////////////////////////////////////\n//CHECK#1\nif(p1 !== 1){\n $ERROR('#1: p1 === 1. Actual: p1 ==='+ p1 );\n}\n//\n//////////////////////////////////////////////////////////////////////////////\n\n//////////////////////////////////////////////////////////////////////////////\n//CHECK#2\nif(myObj.p1 !== \"a\"){\n $ERROR('#2: myObj.p1 === \"a\". Actual: myObj.p1 ==='+ myObj.p1 );\n}\n//\n//////////////////////////////////////////////////////////////////////////////\n\n//////////////////////////////////////////////////////////////////////////////\n//CHECK#3\nif(theirObj.p1 !== \"x1\"){\n $ERROR('#3: theirObj.p1 === \"x1\". Actual: theirObj.p1 ==='+ theirObj.p1 );\n}\n//\n//////////////////////////////////////////////////////////////////////////////\n\n",
+ "id": "S12.10_A3.6_T2",
+ "strict_only": ""
+ },
+ {
+ "section": "12.10",
+ "description": "Using \"with\" statement within another \"with\" statement, leading to completion by exception",
+ "strict_mode_negative": "",
+ "test": "this.p1 = 1;\n\nvar result = \"result\";\n\nvar myObj = {\n p1: 'a', \n value: 'myObj_value',\n valueOf : function(){return 'obj_valueOf';}\n}\n\nvar theirObj = {\n p1: true, \n value: 'theirObj_value',\n valueOf : function(){return 'thr_valueOf';}\n}\n\n\ntry {\n with(myObj){\n with(theirObj){\n throw value;\n p1 = 'x1';\n \n }\n }\n} catch(e){\n result = p1;\n}\n\n//////////////////////////////////////////////////////////////////////////////\n//CHECK#1\nif(p1 !== 1){\n $ERROR('#1: p1 === 1. Actual: p1 ==='+ p1 );\n}\n//\n//////////////////////////////////////////////////////////////////////////////\n\n//////////////////////////////////////////////////////////////////////////////\n//CHECK#2\nif(myObj.p1 !== \"a\"){\n $ERROR('#2: myObj.p1 === \"a\". Actual: myObj.p1 ==='+ myObj.p1 );\n}\n//\n//////////////////////////////////////////////////////////////////////////////\n\n//////////////////////////////////////////////////////////////////////////////\n//CHECK#3\nif(theirObj.p1 !== true){\n $ERROR('#3: theirObj.p1 === true. Actual: theirObj.p1 ==='+ theirObj.p1 );\n}\n//\n//////////////////////////////////////////////////////////////////////////////\n\n",
+ "id": "S12.10_A3.6_T3",
+ "strict_only": ""
+ },
+ {
+ "section": "12.10",
+ "description": "Declaring and calling a function within \"with\" statement, leading to normal completion",
+ "strict_mode_negative": "",
+ "test": "this.p1 = 1;\n\nvar result = \"result\";\n\nvar myObj = {\n p1: 'a', \n value: 'myObj_value',\n valueOf : function(){return 'obj_valueOf';}\n}\n\nwith(myObj){\n (function(){\n p1 = 'x1';\n })();\n}\n\n//////////////////////////////////////////////////////////////////////////////\n//CHECK#1\nif(p1 !== 1){\n $ERROR('#1: p1 === 1. Actual: p1 ==='+ p1 );\n}\n//\n//////////////////////////////////////////////////////////////////////////////\n\n//////////////////////////////////////////////////////////////////////////////\n//CHECK#2\nif(myObj.p1 !== \"x1\"){\n $ERROR('#2: myObj.p1 === \"x1\". Actual: myObj.p1 ==='+ myObj.p1 );\n}\n//\n//////////////////////////////////////////////////////////////////////////////\n\n\n",
+ "id": "S12.10_A3.7_T1",
+ "strict_only": ""
+ },
+ {
+ "section": "12.10",
+ "description": "Declaring and calling a function within \"with\" statement, leading to normal completion by \"return\"",
+ "strict_mode_negative": "",
+ "test": "this.p1 = 1;\n\nvar result = \"result\";\n\nvar myObj = {\n p1: 'a', \n value: 'myObj_value',\n valueOf : function(){return 'obj_valueOf';}\n}\n\nwith(myObj){\n result=(function(){\n p1 = 'x1';\n return value;\n })();\n}\n\n//////////////////////////////////////////////////////////////////////////////\n//CHECK#1\nif(p1 !== 1){\n $ERROR('#1: p1 === 1. Actual: p1 ==='+ p1 );\n}\n//\n//////////////////////////////////////////////////////////////////////////////\n\n//////////////////////////////////////////////////////////////////////////////\n//CHECK#2\nif(result !== \"myObj_value\"){\n $ERROR('#2: result === \"myObj_value\". Actual: result ==='+ result );\n}\n//\n//////////////////////////////////////////////////////////////////////////////\n\n//////////////////////////////////////////////////////////////////////////////\n//CHECK#3\nif(myObj.p1 !== \"x1\"){\n $ERROR('#3: myObj.p1 === \"x1\". Actual: myObj.p1 ==='+ myObj.p1 );\n}\n//\n//////////////////////////////////////////////////////////////////////////////\n\n\n",
+ "id": "S12.10_A3.7_T2",
+ "strict_only": ""
+ },
+ {
+ "section": "12.10",
+ "description": "Declaring and calling a function within \"with\" statement, leading to normal completion by \"return\"",
+ "strict_mode_negative": "",
+ "test": "this.p1 = 1;\n\nvar result = \"result\";\n\nvar myObj = {\n p1: 'a', \n value: 'myObj_value',\n valueOf : function(){return 'obj_valueOf';}\n}\n\nwith(myObj){\n result=(function(){\n return value;\n p1 = 'x1';\n })();\n}\n\n//////////////////////////////////////////////////////////////////////////////\n//CHECK#1\nif(p1 !== 1){\n $ERROR('#1: p1 === 1. Actual: p1 ==='+ p1 );\n}\n//\n//////////////////////////////////////////////////////////////////////////////\n\n//////////////////////////////////////////////////////////////////////////////\n//CHECK#2\nif(result !== 'myObj_value'){\n $ERROR('#2: result === \\'myObj_value\\'. Actual: result ==='+ result );\n}\n//\n//////////////////////////////////////////////////////////////////////////////\n\n//////////////////////////////////////////////////////////////////////////////\n//CHECK#3\nif(myObj.p1 !== \"a\"){\n $ERROR('#3: myObj.p1 === \"a\". Actual: myObj.p1 ==='+ myObj.p1 );\n}\n//\n//////////////////////////////////////////////////////////////////////////////\n",
+ "id": "S12.10_A3.7_T3",
+ "strict_only": ""
+ },
+ {
+ "section": "12.10",
+ "description": "Declaring and calling a function within \"with\" statement, leading to completion by exception",
+ "strict_mode_negative": "",
+ "test": "this.p1 = 1;\n\nvar result = \"result\";\n\nvar myObj = {\n p1: 'a', \n value: 'myObj_value',\n valueOf : function(){return 'obj_valueOf';}\n}\n\ntry {\n with(myObj){\n (function (){\n p1 = 'x1';\n throw value;\n })();\n }\n} catch(e){\n result = p1;\n}\n\n//////////////////////////////////////////////////////////////////////////////\n//CHECK#1\nif(result !== 1){\n $ERROR('#1: result === 1. Actual: result ==='+ result );\n}\n//\n//////////////////////////////////////////////////////////////////////////////\n\n//////////////////////////////////////////////////////////////////////////////\n//CHECK#2\nif(p1 !== 1){\n $ERROR('#2: p1 === 1. Actual: p1 ==='+ p1 );\n}\n//\n//////////////////////////////////////////////////////////////////////////////\n\n//////////////////////////////////////////////////////////////////////////////\n//CHECK#3\nif(myObj.p1 !== \"x1\"){\n $ERROR('#3: myObj.p1 === \"x1\". Actual: myObj.p1 ==='+ myObj.p1 );\n}\n//\n//////////////////////////////////////////////////////////////////////////////\n",
+ "id": "S12.10_A3.7_T4",
+ "strict_only": ""
+ },
+ {
+ "section": "12.10",
+ "description": "Declaring and calling a function within \"with\" statement, leading to completion by exception",
+ "strict_mode_negative": "",
+ "test": "this.p1 = 1;\n\nvar result = \"result\";\n\nvar myObj = {\n p1: 'a', \n value: 'myObj_value',\n valueOf : function(){return 'obj_valueOf';}\n}\n\ntry {\n with(myObj){\n (function f(){\n throw value;\n p1 = 'x1';\n })();\n }\n} catch(e){\n result = p1;\n}\n\n//////////////////////////////////////////////////////////////////////////////\n//CHECK#1\nif(result !== 1){\n $ERROR('#1: result === 1. Actual: result ==='+ result );\n}\n//\n//////////////////////////////////////////////////////////////////////////////\n\n//////////////////////////////////////////////////////////////////////////////\n//CHECK#2\nif(p1 !== 1){\n $ERROR('#2: p1 === 1. Actual: p1 ==='+ p1 );\n}\n//\n//////////////////////////////////////////////////////////////////////////////\n\n//////////////////////////////////////////////////////////////////////////////\n//CHECK#3\nif(myObj.p1 !== \"a\"){\n $ERROR('#3: myObj.p1 === \"a\". Actual: myObj.p1 ==='+ myObj.p1 );\n}\n//\n//////////////////////////////////////////////////////////////////////////////\n",
+ "id": "S12.10_A3.7_T5",
+ "strict_only": ""
+ },
+ {
+ "section": "12.10",
+ "description": "Declaring function constructor within \"with\" statement, leading to normal completion",
+ "strict_mode_negative": "",
+ "test": "this.p1 = 1;\n\nvar result = \"result\";\n\nvar myObj = {\n p1: 'a', \n value: 'myObj_value',\n valueOf : function(){return 'obj_valueOf';}\n}\n\nwith(myObj){\n var __FACTORY = function(){\n p1 = 'x1';\n }\n var obj = new __FACTORY;\n}\n\n//////////////////////////////////////////////////////////////////////////////\n//CHECK#1\nif(p1 !== 1){\n $ERROR('#1: p1 === 1. Actual: p1 ==='+ p1 );\n}\n//\n//////////////////////////////////////////////////////////////////////////////\n\n//////////////////////////////////////////////////////////////////////////////\n//CHECK#2\nif(myObj.p1 !== \"x1\"){\n $ERROR('#2: myObj.p1 === \"x1\". Actual: myObj.p1 ==='+ myObj.p1 );\n}\n//\n//////////////////////////////////////////////////////////////////////////////\n",
+ "id": "S12.10_A3.8_T1",
+ "strict_only": ""
+ },
+ {
+ "section": "12.10",
+ "description": "Declaring function constructor within \"with\" statement, leading to normal completion by \"return\"",
+ "strict_mode_negative": "",
+ "test": "this.p1 = 1;\n\nvar result = \"result\";\n\nvar myObj = {\n p1: 'a', \n value: 'myObj_value',\n valueOf : function(){return 'obj_valueOf';}\n}\n\nwith(myObj){\n var __FACTORY = function(){\n p1 = 'x1';\n return value;\n }\n var obj = new __FACTORY;\n}\n\n//////////////////////////////////////////////////////////////////////////////\n//CHECK#1\nif(p1 !== 1){\n $ERROR('#1: p1 === 1. Actual: p1 ==='+ p1 );\n}\n//\n//////////////////////////////////////////////////////////////////////////////\n\n//////////////////////////////////////////////////////////////////////////////\n//CHECK#2\nif(myObj.p1 !== \"x1\"){\n $ERROR('#2: myObj.p1 === \"x1\". Actual: myObj.p1 ==='+ myObj.p1 );\n}\n//\n//////////////////////////////////////////////////////////////////////////////\n",
+ "id": "S12.10_A3.8_T2",
+ "strict_only": ""
+ },
+ {
+ "section": "12.10",
+ "description": "Declaring function constructor within \"with\" statement, leading to normal completion by \"return\"",
+ "strict_mode_negative": "",
+ "test": "this.p1 = 1;\n\nvar result = \"result\";\n\nvar myObj = {\n p1: 'a', \n value: 'myObj_value',\n valueOf : function(){return 'obj_valueOf';}\n}\n\nwith(myObj){\n var __FACTORY = function(){\n return value;\n p1 = 'x1';\n }\n var obj = new __FACTORY;\n}\n\n//////////////////////////////////////////////////////////////////////////////\n//CHECK#1\nif(p1 !== 1){\n $ERROR('#1: p1 === 1. Actual: p1 ==='+ p1 );\n}\n//\n//////////////////////////////////////////////////////////////////////////////\n\n//////////////////////////////////////////////////////////////////////////////\n//CHECK#2\nif(myObj.p1 !== \"a\"){\n $ERROR('#2: myObj.p1 === \"a\". Actual: myObj.p1 ==='+ myObj.p1 );\n}\n//\n//////////////////////////////////////////////////////////////////////////////\n",
+ "id": "S12.10_A3.8_T3",
+ "strict_only": ""
+ },
+ {
+ "section": "12.10",
+ "description": "Declaring function constructor within \"with\" statement, leading to completion by exception",
+ "strict_mode_negative": "",
+ "test": "this.p1 = 1;\n\nvar result = \"result\";\n\nvar myObj = {\n p1: 'a', \n value: 'myObj_value',\n valueOf : function(){return 'obj_valueOf';}\n}\n\ntry {\n with(myObj){\n var __FACTORY = function(){\n p1 = 'x1';\n throw value;\n }\n var obj = new __FACTORY;\n }\n} catch(e){\n result = p1;\n}\n\n//////////////////////////////////////////////////////////////////////////////\n//CHECK#1\nif(result !== 1){\n $ERROR('#1: result === 1. Actual: result ==='+ result );\n}\n//\n//////////////////////////////////////////////////////////////////////////////\n\n//////////////////////////////////////////////////////////////////////////////\n//CHECK#2\nif(p1 !== 1){\n $ERROR('#2: p1 === 1. Actual: p1 ==='+ p1 );\n}\n//\n//////////////////////////////////////////////////////////////////////////////\n\n//////////////////////////////////////////////////////////////////////////////\n//CHECK#3\nif(myObj.p1 !== \"x1\"){\n $ERROR('#3: myObj.p1 === \"x1\". Actual: myObj.p1 ==='+ myObj.p1 );\n}\n//\n//////////////////////////////////////////////////////////////////////////////\n",
+ "id": "S12.10_A3.8_T4",
+ "strict_only": ""
+ },
+ {
+ "section": "12.10",
+ "description": "Declaring function constructor within \"with\" statement, leading to completion by exception",
+ "strict_mode_negative": "",
+ "test": "this.p1 = 1;\n\nvar result = \"result\";\n\nvar myObj = {\n p1: 'a', \n value: 'myObj_value',\n valueOf : function(){return 'obj_valueOf';}\n}\n\ntry {\n with(myObj){\n var __FACTORY = function(){\n throw value;\n p1 = 'x1';\n }\n var obj = new __FACTORY;\n }\n} catch(e){\n result = p1;\n}\n\n//////////////////////////////////////////////////////////////////////////////\n//CHECK#1\nif(result !== 1){\n $ERROR('#1: result === 1. Actual: result ==='+ result );\n}\n//\n//////////////////////////////////////////////////////////////////////////////\n\n//////////////////////////////////////////////////////////////////////////////\n//CHECK#2\nif(p1 !== 1){\n $ERROR('#2: p1 === 1. Actual: p1 ==='+ p1 );\n}\n//\n//////////////////////////////////////////////////////////////////////////////\n\n//////////////////////////////////////////////////////////////////////////////\n//CHECK#3\nif(myObj.p1 !== \"a\"){\n $ERROR('#3: myObj.p1 === \"a\". Actual: myObj.p1 ==='+ myObj.p1 );\n}\n//\n//////////////////////////////////////////////////////////////////////////////\n",
+ "id": "S12.10_A3.8_T5",
+ "strict_only": ""
+ },
+ {
+ "section": "12.10",
+ "description": "Using \"for-in\" statement within \"with\" statement, leading to normal completion",
+ "strict_mode_negative": "",
+ "test": "this.p1 = 1;\n\nvar result = \"result\";\n\nvar myObj = {\n p1: 'a', \n value: 'myObj_value',\n valueOf : function(){return 'obj_valueOf';}\n}\n\nwith(myObj){\n for(var prop in myObj){\n p1 = 'x1';\n }\n}\n\n//////////////////////////////////////////////////////////////////////////////\n//CHECK#1\nif(p1 !== 1){\n $ERROR('#1: p1 === 1. Actual: p1 ==='+ p1 );\n}\n//\n//////////////////////////////////////////////////////////////////////////////\n\n//////////////////////////////////////////////////////////////////////////////\n//CHECK#2\nif(myObj.p1 !== \"x1\"){\n $ERROR('#2: myObj.p1 === \"x1\". Actual: myObj.p1 ==='+ myObj.p1 );\n}\n//\n//////////////////////////////////////////////////////////////////////////////\n\n\n",
+ "id": "S12.10_A3.9_T1",
+ "strict_only": ""
+ },
+ {
+ "section": "12.10",
+ "description": "Using \"for-in\" statement within \"with\" statement, leading to completion by break",
+ "strict_mode_negative": "",
+ "test": "this.p1 = 1;\n\nvar result = \"result\";\n\nvar myObj = {\n p1: 'a', \n value: 'myObj_value',\n valueOf : function(){return 'obj_valueOf';}\n}\n\nwith(myObj){\n for(var prop in myObj){\n p1 = 'x1';\n break;\n }\n}\n\n//////////////////////////////////////////////////////////////////////////////\n//CHECK#1\nif(p1 !== 1){\n $ERROR('#1: p1 === 1. Actual: p1 ==='+ p1 );\n}\n//\n//////////////////////////////////////////////////////////////////////////////\n\n//////////////////////////////////////////////////////////////////////////////\n//CHECK#2\nif(myObj.p1 !== \"x1\"){\n $ERROR('#2: myObj.p1 === \"x1\". Actual: myObj.p1 ==='+ myObj.p1 );\n}\n//\n//////////////////////////////////////////////////////////////////////////////\n\n",
+ "id": "S12.10_A3.9_T2",
+ "strict_only": ""
+ },
+ {
+ "section": "12.10",
+ "description": "Using \"for-in\" statement within \"with\" statement, leading to completion by break",
+ "strict_mode_negative": "",
+ "test": "this.p1 = 1;\n\nvar result = \"result\";\n\nvar myObj = {\n p1: 'a', \n value: 'myObj_value',\n valueOf : function(){return 'obj_valueOf';}\n}\n\nwith(myObj){\n for(var prop in myObj){\n break;\n p1 = 'x1';\n }\n}\n\n//////////////////////////////////////////////////////////////////////////////\n//CHECK#1\nif(p1 !== 1){\n $ERROR('#1: p1 === 1. Actual: p1 ==='+ p1 );\n}\n//\n//////////////////////////////////////////////////////////////////////////////\n\n//////////////////////////////////////////////////////////////////////////////\n//CHECK#2\nif(myObj.p1 !== \"a\"){\n $ERROR('#2: myObj.p1 === \"a\". Actual: myObj.p1 ==='+ myObj.p1 );\n}\n//\n//////////////////////////////////////////////////////////////////////////////\n\n",
+ "id": "S12.10_A3.9_T3",
+ "strict_only": ""
+ },
+ {
+ "section": "12.10",
+ "description": "Changing string property",
+ "strict_mode_negative": "",
+ "test": "this.p1 = 1;\nvar myObj = {\n p1: 'a', \n}\neval(\"with(myObj){p1='b'}\");\n\n//////////////////////////////////////////////////////////////////////////////\n//CHECK#1\nif(myObj.p1 !== 'b'){\n $ERROR('#1: myObj.p1 === \"b\". Actual: myObj.p1 ==='+ myObj.p1 );\n}\n//\n//////////////////////////////////////////////////////////////////////////////\n\n//////////////////////////////////////////////////////////////////////////////\n//CHECK#2\nif(myObj.p1 === 1){\n $ERROR('#2: myObj.p1 !== 1');\n}\n//\n//////////////////////////////////////////////////////////////////////////////\n",
+ "id": "S12.10_A4_T1",
+ "strict_only": ""
+ },
+ {
+ "section": "12.10",
+ "description": "Changing number property",
+ "strict_mode_negative": "",
+ "test": "this.p1 = 'a';\nvar myObj = {\n p1: 1, \n}\neval(\"with(myObj){p1=2}\");\n\n//////////////////////////////////////////////////////////////////////////////\n//CHECK#1\nif(myObj.p1 !== 2){\n $ERROR('#1: myObj.p1 === 2. Actual: myObj.p1 ==='+ myObj.p1 );\n}\n//\n//////////////////////////////////////////////////////////////////////////////\n\n//////////////////////////////////////////////////////////////////////////////\n//CHECK#2\nif(myObj.p1 === 'a'){\n $ERROR('#2: myObj.p1 !== \\'a\\'');\n}\n//\n//////////////////////////////////////////////////////////////////////////////\n",
+ "id": "S12.10_A4_T2",
+ "strict_only": ""
+ },
+ {
+ "section": "12.10",
+ "description": "Changing boolean property",
+ "strict_mode_negative": "",
+ "test": "this.p1 = 'a';\nvar myObj = {\n p1: true, \n}\neval(\"with(myObj){p1=false}\");\n\n//////////////////////////////////////////////////////////////////////////////\n//CHECK#1\nif(myObj.p1 !== false){\n $ERROR('#1: myObj.p1 === false. Actual: myObj.p1 ==='+ myObj.p1 );\n}\n//\n//////////////////////////////////////////////////////////////////////////////\n\n//////////////////////////////////////////////////////////////////////////////\n//CHECK#2\nif(myObj.p1 === 'a'){\n $ERROR('#2: myObj.p1 !== \\'a\\'');\n}\n//\n//////////////////////////////////////////////////////////////////////////////\n",
+ "id": "S12.10_A4_T3",
+ "strict_only": ""
+ },
+ {
+ "section": "12.10",
+ "description": "Changing object property",
+ "strict_mode_negative": "",
+ "test": "this.p1 = 'a';\nvar myObj = {\n p1: {a:\"hello\"}, \n}\neval(\"with(myObj){p1={b:'hi'}}\");\n\n//////////////////////////////////////////////////////////////////////////////\n//CHECK#1\nif(myObj.p1.a === \"hello\"){\n $ERROR('#1: myObj.p1.a !== \"hello\"');\n}\n//\n//////////////////////////////////////////////////////////////////////////////\n\n//////////////////////////////////////////////////////////////////////////////\n//CHECK#2\nif(myObj.p1.b !== \"hi\"){\n $ERROR('#2: myObj.p1.b === \"hi\". Actual: myObj.p1.b ==='+ myObj.p1.b );\n}\n//\n//////////////////////////////////////////////////////////////////////////////\n\n\n//////////////////////////////////////////////////////////////////////////////\n//CHECK#3\nif(myObj.p1 === 'a'){\n $ERROR('#3: myObj.p1 !== \\'a\\'');\n}\n//\n//////////////////////////////////////////////////////////////////////////////\n",
+ "id": "S12.10_A4_T4",
+ "strict_only": ""
+ },
+ {
+ "section": "12.10",
+ "description": "Changing array property",
+ "strict_mode_negative": "",
+ "test": "this.p1 = 'a';\nvar myObj = {\n p1: [1,2,3], \n}\neval(\"with(myObj){p1=[3,2,1]}\");\n\n//////////////////////////////////////////////////////////////////////////////\n//CHECK#1\nif(myObj.p1[2] !== 1){\n $ERROR('#1: myObj.p1[2] === 1. Actual: myObj.p1[2] ==='+ myObj.p1[2] );\n}\n//\n//////////////////////////////////////////////////////////////////////////////\n\n//////////////////////////////////////////////////////////////////////////////\n//CHECK#3\nif(myObj.p1 === 'a'){\n $ERROR('#2: myObj.p1 !== \\'a\\'');\n}\n//\n//////////////////////////////////////////////////////////////////////////////\n",
+ "id": "S12.10_A4_T5",
+ "strict_only": ""
+ },
+ {
+ "section": "12.10",
+ "description": "Changing function property",
+ "strict_mode_negative": "",
+ "test": "this.p1 = 'a';\nvar myObj = {\n p1: function(){return 0;}, \n}\neval(\"with(myObj){p1=function(){return 1;}}\");\n\n//////////////////////////////////////////////////////////////////////////////\n//CHECK#1\nif(myObj.p1() !== 1){\n $ERROR('#1: myObj.p1 === 1. Actual: myObj.p1 ==='+ myObj.p1 );\n}\n//\n//////////////////////////////////////////////////////////////////////////////\n\n//////////////////////////////////////////////////////////////////////////////\n//CHECK#3\nif(myObj.p1 === 'a'){\n $ERROR('#2: myObj.p1 !== \\'a\\'');\n}\n//\n//////////////////////////////////////////////////////////////////////////////\n",
+ "id": "S12.10_A4_T6",
+ "strict_only": ""
+ },
+ {
+ "section": "12.10",
+ "description": "Deleting string property",
+ "strict_mode_negative": "",
+ "test": "this.p1 = 1;\nvar myObj = {\n p1: 'a', \n del:false\n}\neval(\"with(myObj){del = delete p1}\");\n\n//////////////////////////////////////////////////////////////////////////////\n//CHECK#1\nif(myObj.p1 === 'a'){\n $ERROR('#1: myObj.p1 !== \"a\"');\n}\n//\n//////////////////////////////////////////////////////////////////////////////\n\n//////////////////////////////////////////////////////////////////////////////\n//CHECK#2\nif(myObj.p1 !== undefined){\n $ERROR('#2: myObj.p1 === undefined. Actual: myObj.p1 ==='+ myObj.p1 );\n}\n//\n//////////////////////////////////////////////////////////////////////////////\n\n//////////////////////////////////////////////////////////////////////////////\n//CHECK#3\nif(myObj.del !== true){\n $ERROR('#3: myObj.del === true. Actual: myObj.del ==='+ myObj.del );\n}\n//\n//////////////////////////////////////////////////////////////////////////////\n\n//////////////////////////////////////////////////////////////////////////////\n//CHECK#4\nif(myObj.p1 === 1){\n $ERROR('#4: myObj.p1 !== 1');\n}\n//\n//////////////////////////////////////////////////////////////////////////////\n",
+ "id": "S12.10_A5_T1",
+ "strict_only": ""
+ },
+ {
+ "section": "12.10",
+ "description": "Deleting number property",
+ "strict_mode_negative": "",
+ "test": "this.p1 = 'a';\nvar myObj = {\n p1: 1,\n del:false \n}\neval(\"with(myObj){del = delete p1}\");\n\n//////////////////////////////////////////////////////////////////////////////\n//CHECK#1\nif(myObj.p1 === 1){\n $ERROR('#1: myObj.p1 !== 1');\n}\n//\n//////////////////////////////////////////////////////////////////////////////\n\n//////////////////////////////////////////////////////////////////////////////\n//CHECK#2\nif(myObj.p1 !== undefined){\n $ERROR('#2: myObj.p1 === undefined . Actual: myObj.p1 ==='+ myObj.p1 );\n}\n//\n//////////////////////////////////////////////////////////////////////////////\n\n//////////////////////////////////////////////////////////////////////////////\n//CHECK#3\nif(myObj.del !== true){\n $ERROR('#3: myObj.del === true. Actual: myObj.del ===. Actual: myObj.del ==='+ myObj.del +myObj.del);\n}\n//\n//////////////////////////////////////////////////////////////////////////////\n\n//////////////////////////////////////////////////////////////////////////////\n//CHECK#4\nif(myObj.p1 === 'a'){\n $ERROR('#4: myObj.p1 !== \\'a\\'');\n}\n//\n//////////////////////////////////////////////////////////////////////////////\n",
+ "id": "S12.10_A5_T2",
+ "strict_only": ""
+ },
+ {
+ "section": "12.10",
+ "description": "Deleting boolean property",
+ "strict_mode_negative": "",
+ "test": "this.p1 = 'a';\nvar myObj = {\n p1: true,\n del:false \n}\n\neval(\"with(myObj){del = delete p1}\");\n\n//////////////////////////////////////////////////////////////////////////////\n//CHECK#1\nif(myObj.p1 === true){\n $ERROR('#1: myObj.p1 !== true ');\n}\n//\n//////////////////////////////////////////////////////////////////////////////\n\n//////////////////////////////////////////////////////////////////////////////\n//CHECK#2\nif(myObj.p1 !== undefined){\n $ERROR('#2: myObj.p1 === undefined . Actual: myObj.p1 ==='+ myObj.p1 );\n}\n//\n//////////////////////////////////////////////////////////////////////////////\n\n//////////////////////////////////////////////////////////////////////////////\n//CHECK#3\nif(myObj.del !== true){\n $ERROR('#3: myObj.del === true . Actual: myObj.del ==='+ myObj.del );\n}\n//\n//////////////////////////////////////////////////////////////////////////////\n\n//////////////////////////////////////////////////////////////////////////////\n//CHECK#4\nif(myObj.p1 === 'a'){\n $ERROR('#4: myObj.p1 !== \\'a\\'');\n}\n//\n//////////////////////////////////////////////////////////////////////////////\n",
+ "id": "S12.10_A5_T3",
+ "strict_only": ""
+ },
+ {
+ "section": "12.10",
+ "description": "Deleting object property",
+ "strict_mode_negative": "",
+ "test": "this.p1 = 'a';\nvar myObj = {\n p1: {a:\"hello\"},\n del:false \n}\neval(\"with(myObj){del = delete p1}\");\n\n//////////////////////////////////////////////////////////////////////////////\n//CHECK#1\ntry{\nif(myObj.p1.a === \"hello\"){\n $ERROR('#1: myObj.p1.a !== \"hello\" ');\n}\n}catch(e){var x=1};\nif(x !== 1){\n $ERROR('#1: x === 1. Actual: x ==='+ x );\n}\n//\n//////////////////////////////////////////////////////////////////////////////\n\n//////////////////////////////////////////////////////////////////////////////\n//CHECK#2\nif(myObj.p1 !== undefined){\n $ERROR('#2: myObj.p1 === undefined . Actual: myObj.p1 ==='+ myObj.p1 );\n}\n//\n//////////////////////////////////////////////////////////////////////////////\n\n//////////////////////////////////////////////////////////////////////////////\n//CHECK#3\nif(myObj.del !== true){\n $ERROR('#3: myObj.del === true . Actual: myObj.del ==='+ myObj.del );\n}\n//\n//////////////////////////////////////////////////////////////////////////////\n\n//////////////////////////////////////////////////////////////////////////////\n//CHECK#4\nif(myObj.p1 === 'a'){\n $ERROR('#4: myObj.p1 !== \\'a\\'');\n}\n//\n//////////////////////////////////////////////////////////////////////////////\n",
+ "id": "S12.10_A5_T4",
+ "strict_only": ""
+ },
+ {
+ "section": "12.10",
+ "description": "Deleting array property",
+ "strict_mode_negative": "",
+ "test": "this.p1 = 'a';\nvar myObj = {\n p1: [1,2,3],\n del:false \n}\neval(\"with(myObj){del = delete p1}\");\n\n//////////////////////////////////////////////////////////////////////////////\n//CHECK#1\ntry{\nif(myObj.p1[2] === 3){\n $ERROR('#1: myObj.p1[2] !== 3 ');\n}\n}catch(e){var x=1};\nif(x !== 1){\n $ERROR('#1: x === 1. Actual: x ==='+ x );\n}\n//\n//////////////////////////////////////////////////////////////////////////////\n\n//////////////////////////////////////////////////////////////////////////////\n//CHECK#2\nif(myObj.p1 !== undefined){\n $ERROR('#2: myObj.p1 === undefined . Actual: myObj.p1 ==='+ myObj.p1 );\n}\n//\n//////////////////////////////////////////////////////////////////////////////\n\n//////////////////////////////////////////////////////////////////////////////\n//CHECK#3\nif(myObj.del !== true){\n $ERROR('#3: myObj.del === true . Actual: myObj.del ==='+ myObj.del );\n}\n//\n//////////////////////////////////////////////////////////////////////////////\n\n//////////////////////////////////////////////////////////////////////////////\n//CHECK#4\nif(myObj.p1 === 'a'){\n $ERROR('#4: myObj.p1 !== \\'a\\'');\n}\n//\n//////////////////////////////////////////////////////////////////////////////\n",
+ "id": "S12.10_A5_T5",
+ "strict_only": ""
+ },
+ {
+ "section": "12.10",
+ "description": "Deleting function property",
+ "strict_mode_negative": "",
+ "test": "this.p1 = 'a';\nvar myObj = {\n p1: function(){return 0;}, \n del:false\n}\neval(\"with(myObj){del = delete p1}\");\n\n//////////////////////////////////////////////////////////////////////////////\n//CHECK#1\ntry{\nif(myObj.p1() === 0){\n $ERROR('#1: myObj.p1() !== 0 ');\n}\n}catch(e){var x=1};\nif(x !== 1){\n $ERROR('#1: x === 1. Actual: x ==='+ x );\n}\n//\n//////////////////////////////////////////////////////////////////////////////\n\n//////////////////////////////////////////////////////////////////////////////\n//CHECK#2\nif(myObj.p1 !== undefined){\n $ERROR('#2: myObj.p1 === undefined . Actual: myObj.p1 ==='+ myObj.p1 );\n}\n//\n//////////////////////////////////////////////////////////////////////////////\n\n//////////////////////////////////////////////////////////////////////////////\n//CHECK#3\nif(myObj.del !== true){\n $ERROR('#3: myObj.del === true . Actual: myObj.del ==='+ myObj.del );\n}\n//\n//////////////////////////////////////////////////////////////////////////////\n\n//////////////////////////////////////////////////////////////////////////////\n//CHECK#4\nif(myObj.p1 === 'a'){\n $ERROR('#4: myObj.p1 !== \\'a\\'');\n}\n//\n//////////////////////////////////////////////////////////////////////////////\n",
+ "id": "S12.10_A5_T6",
+ "strict_only": ""
+ }
+ ]
+ }
+}