diff options
Diffstat (limited to 'external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement')
120 files changed, 11016 insertions, 0 deletions
diff --git a/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A1.10_T1.js b/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A1.10_T1.js new file mode 100644 index 000000000..2e748f597 --- /dev/null +++ b/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A1.10_T1.js @@ -0,0 +1,137 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/** + * @name: S12.10_A1.10_T1; + * @section: 12.10; + * @assertion: The with statement adds a computed object to the front of the + * scope chain of the current execution context; + * @description: Using interation statement within "with" statement leading to normal completion; + * @strict_mode_negative + */ +this.p1 = 1; +this.p2 = 2; +this.p3 = 3; +var result = "result"; +var myObj = {p1: 'a', + p2: 'b', + p3: 'c', + value: 'myObj_value', + valueOf : function(){return 'obj_valueOf';}, + parseInt : function(){return 'obj_parseInt';}, + NaN : 'obj_NaN', + Infinity : 'obj_Infinity', + eval : function(){return 'obj_eval';}, + parseFloat : function(){return 'obj_parseFloat';}, + isNaN : function(){return 'obj_isNaN';}, + isFinite : function(){return 'obj_isFinite';} +} +var del; +var st_p1 = "p1"; +var st_p2 = "p2"; +var st_p3 = "p3"; +var st_parseInt = "parseInt"; +var st_NaN = "NaN"; +var st_Infinity = "Infinity"; +var st_eval = "eval"; +var st_parseFloat = "parseFloat"; +var st_isNaN = "isNaN"; +var st_isFinite = "isFinite"; + +with(myObj){ + do{ + st_p1 = p1; + st_p2 = p2; + st_p3 = p3; + st_parseInt = parseInt; + st_NaN = NaN; + st_Infinity = Infinity; + st_eval = eval; + st_parseFloat = parseFloat; + st_isNaN = isNaN; + st_isFinite = isFinite; + p1 = 'x1'; + this.p2 = 'x2'; + del = delete p3; + var p4 = 'x4'; + p5 = 'x5'; + var value = 'value'; + } + while(false); +} + +if(!(p1 === 1)){ + $ERROR('#1: p1 === 1. Actual: p1 ==='+ p1 ); +} + +if(!(p2 === "x2")){ + $ERROR('#2: p2 === "x2". Actual: p2 ==='+ p2 ); +} + +if(!(p3 === 3)){ + $ERROR('#3: p3 === 3. Actual: p3 ==='+ p3 ); +} + +if(!(p4 === "x4")){ + $ERROR('#4: p4 === "x4". Actual: p4 ==='+ p4 ); +} + +if(!(p5 === "x5")){ + $ERROR('#5: p5 === "x5". Actual: p5 ==='+ p5 ); +} + +if(!(myObj.p1 === "x1")){ + $ERROR('#6: myObj.p1 === "x1". Actual: myObj.p1 ==='+ myObj.p1 ); +} + +if(!(myObj.p2 === "b")){ + $ERROR('#7: myObj.p2 === "b". Actual: myObj.p2 ==='+ myObj.p2 ); +} + +if(!(myObj.p3 === undefined)){ + $ERROR('#8: myObj.p3 === undefined. Actual: myObj.p3 ==='+ myObj.p3 ); +} + +if(!(myObj.p4 === undefined)){ + $ERROR('#9: myObj.p4 === undefined. Actual: myObj.p4 ==='+ myObj.p4 ); +} + +if(!(myObj.p5 === undefined)){ + $ERROR('#10: myObj.p5 === undefined. Actual: myObj.p5 ==='+ myObj.p5 ); +} + +if(!(st_parseInt !== parseInt)){ + $ERROR('#11: myObj.parseInt !== parseInt'); +} + +if(!(st_NaN === "obj_NaN")){ + $ERROR('#12: myObj.NaN !== NaN'); +} + +if(!(st_Infinity !== Infinity)){ + $ERROR('#13: myObj.Infinity !== Infinity'); +} + +if(!(st_eval !== eval)){ + $ERROR('#14: myObj.eval !== eval'); +} + +if(!(st_parseFloat !== parseFloat)){ + $ERROR('#15: myObj.parseFloat !== parseFloat'); +} + +if(!(st_isNaN !== isNaN)){ + $ERROR('#16: myObj.isNaN !== isNaN'); +} + +if(!(st_isFinite !== isFinite)){ + $ERROR('#17: myObj.isFinite !== isFinite'); +} + +if(!(value === undefined)){ + $ERROR('#18: value === undefined. Actual: value ==='+ value ); +} + +if(!(myObj.value === "value")){ + $ERROR('#19: myObj.value === "value". Actual: myObj.value ==='+ myObj.value ); +} diff --git a/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A1.10_T2.js b/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A1.10_T2.js new file mode 100644 index 000000000..62239c832 --- /dev/null +++ b/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A1.10_T2.js @@ -0,0 +1,146 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/** + * @name: S12.10_A1.10_T2; + * @section: 12.10; + * @assertion: The with statement adds a computed object to the front of the + * scope chain of the current execution context; + * @description: Using iteration statement within "with" statement leading to completion by exception + * @strict_mode_negative + */ +this.p1 = 1; +this.p2 = 2; +this.p3 = 3; +var result = "result"; +var myObj = {p1: 'a', + p2: 'b', + p3: 'c', + value: 'myObj_value', + valueOf : function(){return 'obj_valueOf';}, + parseInt : function(){return 'obj_parseInt';}, + NaN : 'obj_NaN', + Infinity : 'obj_Infinity', + eval : function(){return 'obj_eval';}, + parseFloat : function(){return 'obj_parseFloat';}, + isNaN : function(){return 'obj_isNaN';}, + isFinite : function(){return 'obj_isFinite';} +} +var del; +var st_p1 = "p1"; +var st_p2 = "p2"; +var st_p3 = "p3"; +var st_parseInt = "parseInt"; +var st_NaN = "NaN"; +var st_Infinity = "Infinity"; +var st_eval = "eval"; +var st_parseFloat = "parseFloat"; +var st_isNaN = "isNaN"; +var st_isFinite = "isFinite"; + +try { + with(myObj){ + do{ + st_p1 = p1; + st_p2 = p2; + st_p3 = p3; + st_parseInt = parseInt; + st_NaN = NaN; + st_Infinity = Infinity; + st_eval = eval; + st_parseFloat = parseFloat; + st_isNaN = isNaN; + st_isFinite = isFinite; + p1 = 'x1'; + this.p2 = 'x2'; + del = delete p3; + var p4 = 'x4'; + p5 = 'x5'; + var value = 'value'; + throw value; + } + while(false); + } +} catch(e){ + result = e; +} + +if(!(result === "value")){ + $ERROR('#0: result === "value". Actual: result ==='+ result ); +} + +if(!(p1 === 1)){ + $ERROR('#1: p1 === 1. Actual: p1 ==='+ p1 ); +} + +if(!(p2 === "x2")){ + $ERROR('#2: p2 === "x2". Actual: p2 ==='+ p2 ); +} + +if(!(p3 === 3)){ + $ERROR('#3: p3 === 3. Actual: p3 ==='+ p3 ); +} + +if(!(p4 === "x4")){ + $ERROR('#4: p4 === "x4". Actual: p4 ==='+ p4 ); +} + +if(!(p5 === "x5")){ + $ERROR('#5: p5 === "x5". Actual: p5 ==='+ p5 ); +} + +if(!(myObj.p1 === "x1")){ + $ERROR('#6: myObj.p1 === "x1". Actual: myObj.p1 ==='+ myObj.p1 ); +} + +if(!(myObj.p2 === "b")){ + $ERROR('#7: myObj.p2 === "b". Actual: myObj.p2 ==='+ myObj.p2 ); +} + +if(!(myObj.p3 === undefined)){ + $ERROR('#8: myObj.p3 === undefined. Actual: myObj.p3 ==='+ myObj.p3 ); +} + +if(!(myObj.p4 === undefined)){ + $ERROR('#9: myObj.p4 === undefined. Actual: myObj.p4 ==='+ myObj.p4 ); +} + +if(!(myObj.p5 === undefined)){ + $ERROR('#10: myObj.p5 === undefined. Actual: myObj.p5 ==='+ myObj.p5 ); +} + +if(!(st_parseInt !== parseInt)){ + $ERROR('#11: myObj.parseInt !== parseInt'); +} + +if(!(st_NaN === "obj_NaN")){ + $ERROR('#12: myObj.NaN !== NaN'); +} + +if(!(st_Infinity !== Infinity)){ + $ERROR('#13: myObj.Infinity !== Infinity'); +} + +if(!(st_eval !== eval)){ + $ERROR('#14: myObj.eval !== eval'); +} + +if(!(st_parseFloat !== parseFloat)){ + $ERROR('#15: myObj.parseFloat !== parseFloat'); +} + +if(!(st_isNaN !== isNaN)){ + $ERROR('#16: myObj.isNaN !== isNaN'); +} + +if(!(st_isFinite !== isFinite)){ + $ERROR('#17: myObj.isFinite !== isFinite'); +} + +if(!(value === undefined)){ + $ERROR('#18: value === undefined. Actual: value ==='+ value ); +} + +if(!(myObj.value === "value")){ + $ERROR('#19: myObj.value === "value". Actual: myObj.value ==='+ myObj.value ); +} diff --git a/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A1.10_T3.js b/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A1.10_T3.js new file mode 100644 index 000000000..2475cf952 --- /dev/null +++ b/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A1.10_T3.js @@ -0,0 +1,149 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/** + * @name: S12.10_A1.10_T3; + * @section: 12.10; + * @assertion: The with statement adds a computed object to the front of the + * scope chain of the current execution context; + * @description: Using iteration statment withing "with" statement leading to completion by exception + * iteration statement inside with statement - exception completion; + * @strict_mode_negative + */ +this.p1 = 1; +this.p2 = 2; +this.p3 = 3; +var result = "result"; +var myObj = {p1: 'a', + p2: 'b', + p3: 'c', + value: 'myObj_value', + valueOf : function(){return 'obj_valueOf';}, + parseInt : function(){return 'obj_parseInt';}, + NaN : 'obj_NaN', + Infinity : 'obj_Infinity', + eval : function(){return 'obj_eval';}, + parseFloat : function(){return 'obj_parseFloat';}, + isNaN : function(){return 'obj_isNaN';}, + isFinite : function(){return 'obj_isFinite';} +} +var del; +var st_p1 = "p1"; +var st_p2 = "p2"; +var st_p3 = "p3"; +var st_parseInt = "parseInt"; +var st_NaN = "NaN"; +var st_Infinity = "Infinity"; +var st_eval = "eval"; +var st_parseFloat = "parseFloat"; +var st_isNaN = "isNaN"; +var st_isFinite = "isFinite"; + +try { + with(myObj){ + do{ + throw value; + st_p1 = p1; + st_p2 = p2; + st_p3 = p3; + st_parseInt = parseInt; + st_NaN = NaN; + st_Infinity = Infinity; + st_eval = eval; + st_parseFloat = parseFloat; + st_isNaN = isNaN; + st_isFinite = isFinite; + p1 = 'x1'; + this.p2 = 'x2'; + del = delete p3; + var p4 = 'x4'; + p5 = 'x5'; + var value = 'value'; + } + while(false); + } +} catch(e){ + result = e; +} + +if(!(result === "myObj_value")){ + $ERROR('#0: result === "myObj_value". Actual: result ==='+ result ); +} + +if(!(p1 === 1)){ + $ERROR('#1: p1 === 1. Actual: p1 ==='+ p1 ); +} + +if(!(p2 === 2)){ + $ERROR('#2: p2 === 2. Actual: p2 ==='+ p2 ); +} + +if(!(p3 === 3)){ + $ERROR('#3: p3 === 3. Actual: p3 ==='+ p3 ); +} + +if(!(p4 === undefined)){ + $ERROR('#4: p4 === undefined. Actual: p4 ==='+ p4 ); +} + +try { + p5; + $ERROR('#5: p5 is not defined'); +} catch(e) { +} + +if(!(myObj.p1 === "a")){ + $ERROR('#6: myObj.p1 === "a". Actual: myObj.p1 ==='+ myObj.p1 ); +} + +if(!(myObj.p2 === "b")){ + $ERROR('#7: myObj.p2 === "b". Actual: myObj.p2 ==='+ myObj.p2 ); +} + +if(!(myObj.p3 === "c")){ + $ERROR('#8: myObj.p3 === "c". Actual: myObj.p3 ==='+ myObj.p3 ); +} + +if(!(myObj.p4 === undefined)){ + $ERROR('#9: myObj.p4 === undefined. Actual: myObj.p4 ==='+ myObj.p4 ); +} + +if(!(myObj.p5 === undefined)){ + $ERROR('#10: myObj.p5 === undefined. Actual: myObj.p5 ==='+ myObj.p5 ); +} + +if(!(st_parseInt === "parseInt")){ + $ERROR('#11: myObj.parseInt === "parseInt". Actual: myObj.parseInt ==='+ myObj.parseInt ); +} + +if(!(st_NaN === "NaN")){ + $ERROR('#12: st_NaN === "NaN". Actual: st_NaN ==='+ st_NaN ); +} + +if(!(st_Infinity === "Infinity")){ + $ERROR('#13: st_Infinity === "Infinity". Actual: st_Infinity ==='+ st_Infinity ); +} + +if(!(st_eval === "eval")){ + $ERROR('#14: st_eval === "eval". Actual: st_eval ==='+ st_eval ); +} + +if(!(st_parseFloat === "parseFloat")){ + $ERROR('#15: st_parseFloat === "parseFloat". Actual: st_parseFloat ==='+ st_parseFloat ); +} + +if(!(st_isNaN === "isNaN")){ + $ERROR('#16: st_isNaN === "isNaN". Actual: st_isNaN ==='+ st_isNaN ); +} + +if(!(st_isFinite === "isFinite")){ + $ERROR('#17: st_isFinite === "isFinite". Actual: st_isFinite ==='+ st_isFinite ); +} + +if(!(value === undefined)){ + $ERROR('#18: value === undefined. Actual: value ==='+ value ); +} + +if(!(myObj.value === "myObj_value")){ + $ERROR('#19: myObj.value === "myObj_value". Actual: myObj.value ==='+ myObj.value ); +} diff --git a/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A1.10_T4.js b/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A1.10_T4.js new file mode 100644 index 000000000..7fdc47020 --- /dev/null +++ b/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A1.10_T4.js @@ -0,0 +1,139 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/** + * @name: S12.10_A1.10_T4; + * @section: 12.10; + * @assertion: The with statement adds a computed object to the front of the + * scope chain of the current execution context; + * @description: Using iteration statement witthin "with" staement leading to completion by break + * iteration statement inside with statement - break completion; + * @strict_mode_negative + */ +this.p1 = 1; +this.p2 = 2; +this.p3 = 3; +var result = "result"; +var myObj = {p1: 'a', + p2: 'b', + p3: 'c', + value: 'myObj_value', + valueOf : function(){return 'obj_valueOf';}, + parseInt : function(){return 'obj_parseInt';}, + NaN : 'obj_NaN', + Infinity : 'obj_Infinity', + eval : function(){return 'obj_eval';}, + parseFloat : function(){return 'obj_parseFloat';}, + isNaN : function(){return 'obj_isNaN';}, + isFinite : function(){return 'obj_isFinite';} +} +var del; +var st_p1 = "p1"; +var st_p2 = "p2"; +var st_p3 = "p3"; +var st_parseInt = "parseInt"; +var st_NaN = "NaN"; +var st_Infinity = "Infinity"; +var st_eval = "eval"; +var st_parseFloat = "parseFloat"; +var st_isNaN = "isNaN"; +var st_isFinite = "isFinite"; + +with(myObj){ + do{ + st_p1 = p1; + st_p2 = p2; + st_p3 = p3; + st_parseInt = parseInt; + st_NaN = NaN; + st_Infinity = Infinity; + st_eval = eval; + st_parseFloat = parseFloat; + st_isNaN = isNaN; + st_isFinite = isFinite; + p1 = 'x1'; + this.p2 = 'x2'; + del = delete p3; + var p4 = 'x4'; + p5 = 'x5'; + var value = 'value'; + break; + } + while(false); +} + +if(!(p1 === 1)){ + $ERROR('#1: p1 === 1. Actual: p1 ==='+ p1 ); +} + +if(!(p2 === "x2")){ + $ERROR('#2: p2 === "x2". Actual: p2 ==='+ p2 ); +} + +if(!(p3 === 3)){ + $ERROR('#3: p3 === 3. Actual: p3 ==='+ p3 ); +} + +if(!(p4 === "x4")){ + $ERROR('#4: p4 === "x4". Actual: p4 ==='+ p4 ); +} + +if(!(p5 === "x5")){ + $ERROR('#5: p5 === "x5". Actual: p5 ==='+ p5 ); +} + +if(!(myObj.p1 === "x1")){ + $ERROR('#6: myObj.p1 === "x1". Actual: myObj.p1 ==='+ myObj.p1 ); +} + +if(!(myObj.p2 === "b")){ + $ERROR('#7: myObj.p2 === "b". Actual: myObj.p2 ==='+ myObj.p2 ); +} + +if(!(myObj.p3 === undefined)){ + $ERROR('#8: myObj.p3 === undefined. Actual: myObj.p3 ==='+ myObj.p3 ); +} + +if(!(myObj.p4 === undefined)){ + $ERROR('#9: myObj.p4 === undefined. Actual: myObj.p4 ==='+ myObj.p4 ); +} + +if(!(myObj.p5 === undefined)){ + $ERROR('#10: myObj.p5 === undefined. Actual: myObj.p5 ==='+ myObj.p5 ); +} + +if(!(st_parseInt !== parseInt)){ + $ERROR('#11: myObj.parseInt !== parseInt'); +} + +if(!(st_NaN === "obj_NaN")){ + $ERROR('#12: myObj.NaN !== NaN'); +} + +if(!(st_Infinity !== Infinity)){ + $ERROR('#13: myObj.Infinity !== Infinity'); +} + +if(!(st_eval !== eval)){ + $ERROR('#14: myObj.eval !== eval'); +} + +if(!(st_parseFloat !== parseFloat)){ + $ERROR('#15: myObj.parseFloat !== parseFloat'); +} + +if(!(st_isNaN !== isNaN)){ + $ERROR('#16: myObj.isNaN !== isNaN'); +} + +if(!(st_isFinite !== isFinite)){ + $ERROR('#17: myObj.isFinite !== isFinite'); +} + +if(!(value === undefined)){ + $ERROR('#18: value === undefined. Actual: value ==='+ value ); +} + +if(!(myObj.value === "value")){ + $ERROR('#19: myObj.value === "value". Actual: myObj.value ==='+ myObj.value ); +} diff --git a/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A1.10_T5.js b/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A1.10_T5.js new file mode 100644 index 000000000..601fb7a4b --- /dev/null +++ b/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A1.10_T5.js @@ -0,0 +1,140 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/** + * @name: S12.10_A1.10_T5; + * @section: 12.10; + * @assertion: The with statement adds a computed object to the front of the + * scope chain of the current execution context; + * @description: Using iteration statement within "with" statement leading to completion by break + * @strict_mode_negative + */ +this.p1 = 1; +this.p2 = 2; +this.p3 = 3; +var result = "result"; +var myObj = {p1: 'a', + p2: 'b', + p3: 'c', + value: 'myObj_value', + valueOf : function(){return 'obj_valueOf';}, + parseInt : function(){return 'obj_parseInt';}, + NaN : 'obj_NaN', + Infinity : 'obj_Infinity', + eval : function(){return 'obj_eval';}, + parseFloat : function(){return 'obj_parseFloat';}, + isNaN : function(){return 'obj_isNaN';}, + isFinite : function(){return 'obj_isFinite';} +} +var del; +var st_p1 = "p1"; +var st_p2 = "p2"; +var st_p3 = "p3"; +var st_parseInt = "parseInt"; +var st_NaN = "NaN"; +var st_Infinity = "Infinity"; +var st_eval = "eval"; +var st_parseFloat = "parseFloat"; +var st_isNaN = "isNaN"; +var st_isFinite = "isFinite"; + +with(myObj){ + do{ + break; + st_p1 = p1; + st_p2 = p2; + st_p3 = p3; + st_parseInt = parseInt; + st_NaN = NaN; + st_Infinity = Infinity; + st_eval = eval; + st_parseFloat = parseFloat; + st_isNaN = isNaN; + st_isFinite = isFinite; + p1 = 'x1'; + this.p2 = 'x2'; + del = delete p3; + var p4 = 'x4'; + p5 = 'x5'; + var value = 'value'; + } + while(false); +} + +if(!(p1 === 1)){ + $ERROR('#1: p1 === 1. Actual: p1 ==='+ p1 ); +} + +if(!(p2 === 2)){ + $ERROR('#2: p2 === 2. Actual: p2 ==='+ p2 ); +} + +if(!(p3 === 3)){ + $ERROR('#3: p3 === 3. Actual: p3 ==='+ p3 ); +} + +if(!(p4 === undefined)){ + $ERROR('#4: p4 === undefined. Actual: p4 ==='+ p4 ); +} + +try { + p5; + $ERROR('#5: p5 is not defined'); +} catch(e) { +} + +if(!(myObj.p1 === "a")){ + $ERROR('#6: myObj.p1 === "a". Actual: myObj.p1 ==='+ myObj.p1 ); +} + +if(!(myObj.p2 === "b")){ + $ERROR('#7: myObj.p2 === "b". Actual: myObj.p2 ==='+ myObj.p2 ); +} + +if(!(myObj.p3 === "c")){ + $ERROR('#8: myObj.p3 === "c". Actual: myObj.p3 ==='+ myObj.p3 ); +} + +if(!(myObj.p4 === undefined)){ + $ERROR('#9: myObj.p4 === undefined. Actual: myObj.p4 ==='+ myObj.p4 ); +} + +if(!(myObj.p5 === undefined)){ + $ERROR('#10: myObj.p5 === undefined. Actual: myObj.p5 ==='+ myObj.p5 ); +} + +if(!(st_parseInt === "parseInt")){ + $ERROR('#11: myObj.parseInt === "parseInt". Actual: myObj.parseInt ==='+ myObj.parseInt ); +} + +if(!(st_NaN === "NaN")){ + $ERROR('#12: st_NaN === "NaN". Actual: st_NaN ==='+ st_NaN ); +} + +if(!(st_Infinity === "Infinity")){ + $ERROR('#13: st_Infinity === "Infinity". Actual: st_Infinity ==='+ st_Infinity ); +} + +if(!(st_eval === "eval")){ + $ERROR('#14: st_eval === "eval". Actual: st_eval ==='+ st_eval ); +} + +if(!(st_parseFloat === "parseFloat")){ + $ERROR('#15: st_parseFloat === "parseFloat". Actual: st_parseFloat ==='+ st_parseFloat ); +} + +if(!(st_isNaN === "isNaN")){ + $ERROR('#16: st_isNaN === "isNaN". Actual: st_isNaN ==='+ st_isNaN ); +} + +if(!(st_isFinite === "isFinite")){ + $ERROR('#17: st_isFinite === "isFinite". Actual: st_isFinite ==='+ st_isFinite ); +} + +if(!(value === undefined)){ + $ERROR('#18: value === undefined. Actual: value ==='+ value ); +} + +if(!(myObj.value === "myObj_value")){ + $ERROR('#19: myObj.value === "myObj_value". Actual: myObj.value ==='+ myObj.value ); +} diff --git a/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A1.11_T1.js b/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A1.11_T1.js new file mode 100644 index 000000000..ead6eea3c --- /dev/null +++ b/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A1.11_T1.js @@ -0,0 +1,145 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/** + * @name: S12.10_A1.11_T1; + * @section: 12.10; + * @assertion: The with statement adds a computed object to the front of the + * scope chain of the current execution context; + * @description: Calling a function within "with" statement declared without the statement, leading to normal completion; + * @strict_mode_negative + */ +this.p1 = 1; +this.p2 = 2; +this.p3 = 3; +var result = "result"; +var myObj = {p1: 'a', + p2: 'b', + p3: 'c', + value: 'myObj_value', + valueOf : function(){return 'obj_valueOf';}, + parseInt : function(){return 'obj_parseInt';}, + NaN : 'obj_NaN', + Infinity : 'obj_Infinity', + eval : function(){return 'obj_eval';}, + parseFloat : function(){return 'obj_parseFloat';}, + isNaN : function(){return 'obj_isNaN';}, + isFinite : function(){return 'obj_isFinite';} +} +var del; +var st_p1 = "p1"; +var st_p2 = "p2"; +var st_p3 = "p3"; +var st_parseInt = "parseInt"; +var st_NaN = "NaN"; +var st_Infinity = "Infinity"; +var st_eval = "eval"; +var st_parseFloat = "parseFloat"; +var st_isNaN = "isNaN"; +var st_isFinite = "isFinite"; + +var f = function(){ + st_p1 = p1; + st_p2 = p2; + st_p3 = p3; + st_parseInt = parseInt; + st_NaN = NaN; + st_Infinity = Infinity; + st_eval = eval; + st_parseFloat = parseFloat; + st_isNaN = isNaN; + st_isFinite = isFinite; + p1 = 'x1'; + this.p2 = 'x2'; + del = delete p3; + var p4 = 'x4'; + p5 = 'x5'; + var value = 'value'; +} + +with(myObj){ + f(); +} + +if(!(p1 === "x1")){ + $ERROR('#1: p1 === "x1". Actual: p1 ==='+ p1 ); +} + +if(!(p2 === "x2")){ + $ERROR('#2: p2 === "x2". Actual: p2 ==='+ p2 ); +} + +try{ + p3; + $ERROR('#3: p3 is nod defined'); +} +catch(e){ +} + +try { + p4; + $ERROR('#4: p4 is not defined'); +} catch(e) { +} + +if(!(p5 === "x5")){ + $ERROR('#5: p5 === "x5". Actual: p5 ==='+ p5 ); +} + +if(!(myObj.p1 === "a")){ + $ERROR('#6: myObj.p1 === "a". Actual: myObj.p1 ==='+ myObj.p1 ); +} + +if(!(myObj.p2 === "b")){ + $ERROR('#7: myObj.p2 === "b". Actual: myObj.p2 ==='+ myObj.p2 ); +} + +if(!(myObj.p3 === "c")){ + $ERROR('#8: myObj.p3 === "c". Actual: myObj.p3 ==='+ myObj.p3 ); +} + +if(!(myObj.p4 === undefined)){ + $ERROR('#9: myObj.p4 === undefined. Actual: myObj.p4 ==='+ myObj.p4 ); +} + +if(!(myObj.p5 === undefined)){ + $ERROR('#10: myObj.p5 === undefined. Actual: myObj.p5 ==='+ myObj.p5 ); +} + +if(!(st_parseInt === parseInt)){ + $ERROR('#11: st_parseInt === parseInt. Actual: st_parseInt ==='+ st_parseInt ); +} + +if(!isNaN(st_NaN)){ + $ERROR('#12: st_NaN === NaN. Actual: st_NaN ==='+ st_NaN ); +} + +if(!(st_Infinity === Infinity)){ + $ERROR('#13: st_Infinity === Infinity. Actual: st_Infinity ==='+ st_Infinity ); +} + +if(!(st_eval === eval)){ + $ERROR('#14: st_eval === eval. Actual: st_eval ==='+ st_eval ); +} + +if(!(st_parseFloat === parseFloat)){ + $ERROR('#15: st_parseFloat === parseFloat. Actual: st_parseFloat ==='+ st_parseFloat ); +} + +if(!(st_isNaN === isNaN)){ + $ERROR('#16: st_isNaN === isNaN. Actual: st_isNaN ==='+ st_isNaN ); +} + +if(!(st_isFinite === isFinite)){ + $ERROR('#17: st_isFinite === isFinite. Actual: st_isFinite ==='+ st_isFinite ); +} + +try { + value; + $ERROR('#18: value is not defined'); +} catch(e) { +} + +if(!(myObj.value === "myObj_value")){ + $ERROR('#19: myObj.value === "myObj_value". Actual: myObj.value ==='+ myObj.value ); +} diff --git a/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A1.11_T2.js b/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A1.11_T2.js new file mode 100644 index 000000000..91408438f --- /dev/null +++ b/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A1.11_T2.js @@ -0,0 +1,150 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/** + * @name: S12.10_A1.11_T2; + * @section: 12.10; + * @assertion: The with statement adds a computed object to the front of the + * scope chain of the current execution context; + * @description: Calling a function within "with" statement declared without the statement, leading to normal completion by "return"; + * @strict_mode_negative + */ +this.p1 = 1; +this.p2 = 2; +this.p3 = 3; +var result = "result"; +var myObj = {p1: 'a', + p2: 'b', + p3: 'c', + value: 'myObj_value', + valueOf : function(){return 'obj_valueOf';}, + parseInt : function(){return 'obj_parseInt';}, + NaN : 'obj_NaN', + Infinity : 'obj_Infinity', + eval : function(){return 'obj_eval';}, + parseFloat : function(){return 'obj_parseFloat';}, + isNaN : function(){return 'obj_isNaN';}, + isFinite : function(){return 'obj_isFinite';} +} +var del; +var st_p1 = "p1"; +var st_p2 = "p2"; +var st_p3 = "p3"; +var st_parseInt = "parseInt"; +var st_NaN = "NaN"; +var st_Infinity = "Infinity"; +var st_eval = "eval"; +var st_parseFloat = "parseFloat"; +var st_isNaN = "isNaN"; +var st_isFinite = "isFinite"; + +var f = function(){ + st_p1 = p1; + st_p2 = p2; + st_p3 = p3; + st_parseInt = parseInt; + st_NaN = NaN; + st_Infinity = Infinity; + st_eval = eval; + st_parseFloat = parseFloat; + st_isNaN = isNaN; + st_isFinite = isFinite; + p1 = 'x1'; + this.p2 = 'x2'; + del = delete p3; + var p4 = 'x4'; + p5 = 'x5'; + var value = 'value'; + return value; +} + +with(myObj){ + result = f(); +} + +if(!(result === "value")){ + $ERROR('#0: result === "value". Actual: result ==='+ result ); +} + +if(!(p1 === "x1")){ + $ERROR('#1: p1 === "x1". Actual: p1 ==='+ p1 ); +} + +if(!(p2 === "x2")){ + $ERROR('#2: p2 === "x2". Actual: p2 ==='+ p2 ); +} + +try{ + p3; + $ERROR('#3: p3 is nod defined'); +} +catch(e){ +} + +try { + p4; + $ERROR('#4: p4 is not defined'); +} catch(e) { +} + +if(!(p5 === "x5")){ + $ERROR('#5: p5 === "x5". Actual: p5 ==='+ p5 ); +} + +if(!(myObj.p1 === "a")){ + $ERROR('#6: myObj.p1 === "a". Actual: myObj.p1 ==='+ myObj.p1 ); +} + +if(!(myObj.p2 === "b")){ + $ERROR('#7: myObj.p2 === "b". Actual: myObj.p2 ==='+ myObj.p2 ); +} + +if(!(myObj.p3 === "c")){ + $ERROR('#8: myObj.p3 === "c". Actual: myObj.p3 ==='+ myObj.p3 ); +} + +if(!(myObj.p4 === undefined)){ + $ERROR('#9: myObj.p4 === undefined. Actual: myObj.p4 ==='+ myObj.p4 ); +} + +if(!(myObj.p5 === undefined)){ + $ERROR('#10: myObj.p5 === undefined. Actual: myObj.p5 ==='+ myObj.p5 ); +} + +if(!(st_parseInt === parseInt)){ + $ERROR('#11: st_parseInt === parseInt. Actual: st_parseInt ==='+ st_parseInt ); +} + +if(!isNaN(st_NaN)){ + $ERROR('#12: st_NaN === NaN. Actual: st_NaN ==='+ st_NaN ); +} + +if(!(st_Infinity === Infinity)){ + $ERROR('#13: st_Infinity === Infinity. Actual: st_Infinity ==='+ st_Infinity ); +} + +if(!(st_eval === eval)){ + $ERROR('#14: st_eval === eval. Actual: st_eval ==='+ st_eval ); +} + +if(!(st_parseFloat === parseFloat)){ + $ERROR('#15: st_parseFloat === parseFloat. Actual: st_parseFloat ==='+ st_parseFloat ); +} + +if(!(st_isNaN === isNaN)){ + $ERROR('#16: st_isNaN === isNaN. Actual: st_isNaN ==='+ st_isNaN ); +} + +if(!(st_isFinite === isFinite)){ + $ERROR('#17: st_isFinite === isFinite. Actual: st_isFinite ==='+ st_isFinite ); +} + +try { + value; + $ERROR('#18: value is not defined'); +} catch(e) { +} + +if(!(myObj.value === "myObj_value")){ + $ERROR('#19: myObj.value === "myObj_value". Actual: myObj.value ==='+ myObj.value ); +} diff --git a/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A1.11_T3.js b/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A1.11_T3.js new file mode 100644 index 000000000..d59ab9d66 --- /dev/null +++ b/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A1.11_T3.js @@ -0,0 +1,150 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/** + * @name: S12.10_A1.11_T3; + * @section: 12.10; + * @assertion: The with statement adds a computed object to the front of the + * scope chain of the current execution context; + * @description: Calling a function within "with" statement declared without the statement, leading to normal completion by "return"; + * @strict_mode_negative + */ +this.p1 = 1; +this.p2 = 2; +this.p3 = 3; +var result = "result"; +var myObj = {p1: 'a', + p2: 'b', + p3: 'c', + value: 'myObj_value', + valueOf : function(){return 'obj_valueOf';}, + parseInt : function(){return 'obj_parseInt';}, + NaN : 'obj_NaN', + Infinity : 'obj_Infinity', + eval : function(){return 'obj_eval';}, + parseFloat : function(){return 'obj_parseFloat';}, + isNaN : function(){return 'obj_isNaN';}, + isFinite : function(){return 'obj_isFinite';} +} +var del; +var st_p1 = "p1"; +var st_p2 = "p2"; +var st_p3 = "p3"; +var st_parseInt = "parseInt"; +var st_NaN = "NaN"; +var st_Infinity = "Infinity"; +var st_eval = "eval"; +var st_parseFloat = "parseFloat"; +var st_isNaN = "isNaN"; +var st_isFinite = "isFinite"; + +var f = function(){ + return value; + st_p1 = p1; + st_p2 = p2; + st_p3 = p3; + st_parseInt = parseInt; + st_NaN = NaN; + st_Infinity = Infinity; + st_eval = eval; + st_parseFloat = parseFloat; + st_isNaN = isNaN; + st_isFinite = isFinite; + p1 = 'x1'; + this.p2 = 'x2'; + del = delete p3; + var p4 = 'x4'; + p5 = 'x5'; + var value = 'value'; +} + +with(myObj){ + result = f(); +} + +if(!(result === undefined)){ + $ERROR('#0: result === undefined. Actual: result ==='+ result ); +} + +if(!(p1 === 1)){ + $ERROR('#1: p1 === 1. Actual: p1 ==='+ p1 ); +} + +if(!(p2 === 2)){ + $ERROR('#2: p2 === 2. Actual: p2 ==='+ p2 ); +} + +if(!(p3 === 3)){ + $ERROR('#3: p3 === 3. Actual: p3 ==='+ p3 ); +} + +try{ + p4; + $ERROR('#4: p4 doesn\'t exists'); +} +catch(e){ +} + +try { + p5; + $ERROR('#5: p5 is not defined'); +} catch(e) { +} + +if(!(myObj.p1 === "a")){ + $ERROR('#6: myObj.p1 === "a". Actual: myObj.p1 ==='+ myObj.p1 ); +} + +if(!(myObj.p2 === "b")){ + $ERROR('#7: myObj.p2 === "b". Actual: myObj.p2 ==='+ myObj.p2 ); +} + +if(!(myObj.p3 === "c")){ + $ERROR('#8: myObj.p3 === "c". Actual: myObj.p3 ==='+ myObj.p3 ); +} + +if(!(myObj.p4 === undefined)){ + $ERROR('#9: myObj.p4 === undefined. Actual: myObj.p4 ==='+ myObj.p4 ); +} + +if(!(myObj.p5 === undefined)){ + $ERROR('#10: myObj.p5 === undefined. Actual: myObj.p5 ==='+ myObj.p5 ); +} + +if(!(st_parseInt === "parseInt")){ + $ERROR('#11: myObj.parseInt === "parseInt". Actual: myObj.parseInt ==='+ myObj.parseInt ); +} + +if(!(st_NaN === "NaN")){ + $ERROR('#12: st_NaN === "NaN". Actual: st_NaN ==='+ st_NaN ); +} + +if(!(st_Infinity === "Infinity")){ + $ERROR('#13: st_Infinity === "Infinity". Actual: st_Infinity ==='+ st_Infinity ); +} + +if(!(st_eval === "eval")){ + $ERROR('#14: st_eval === "eval". Actual: st_eval ==='+ st_eval ); +} + +if(!(st_parseFloat === "parseFloat")){ + $ERROR('#15: st_parseFloat === "parseFloat". Actual: st_parseFloat ==='+ st_parseFloat ); +} + +if(!(st_isNaN === "isNaN")){ + $ERROR('#16: st_isNaN === "isNaN". Actual: st_isNaN ==='+ st_isNaN ); +} + +if(!(st_isFinite === "isFinite")){ + $ERROR('#17: st_isFinite === "isFinite". Actual: st_isFinite ==='+ st_isFinite ); +} + +try { + value; + $ERROR('#18: value is not defined'); +} catch(e) { +} + +if(!(myObj.value === "myObj_value")){ + $ERROR('#19: myObj.value === "myObj_value". Actual: myObj.value ==='+ myObj.value ); +} diff --git a/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A1.11_T4.js b/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A1.11_T4.js new file mode 100644 index 000000000..d4ca6d312 --- /dev/null +++ b/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A1.11_T4.js @@ -0,0 +1,153 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/** + * @name: S12.10_A1.11_T4; + * @section: 12.10; + * @assertion: The with statement adds a computed object to the front of the + * scope chain of the current execution context; + * @description: Calling a function within "with" statement declared without the statement, leading to completion by exception; + * @strict_mode_negative + */ +this.p1 = 1; +this.p2 = 2; +this.p3 = 3; +var result = "result"; +var myObj = {p1: 'a', + p2: 'b', + p3: 'c', + value: 'myObj_value', + valueOf : function(){return 'obj_valueOf';}, + parseInt : function(){return 'obj_parseInt';}, + NaN : 'obj_NaN', + Infinity : 'obj_Infinity', + eval : function(){return 'obj_eval';}, + parseFloat : function(){return 'obj_parseFloat';}, + isNaN : function(){return 'obj_isNaN';}, + isFinite : function(){return 'obj_isFinite';} +} +var del; +var st_p1 = "p1"; +var st_p2 = "p2"; +var st_p3 = "p3"; +var st_parseInt = "parseInt"; +var st_NaN = "NaN"; +var st_Infinity = "Infinity"; +var st_eval = "eval"; +var st_parseFloat = "parseFloat"; +var st_isNaN = "isNaN"; +var st_isFinite = "isFinite"; + +try { + var f = function(){ + st_p1 = p1; + st_p2 = p2; + st_p3 = p3; + st_parseInt = parseInt; + st_NaN = NaN; + st_Infinity = Infinity; + st_eval = eval; + st_parseFloat = parseFloat; + st_isNaN = isNaN; + st_isFinite = isFinite; + p1 = 'x1'; + this.p2 = 'x2'; + del = delete p3; + var p4 = 'x4'; + p5 = 'x5'; + var value = 'value'; + throw value; + } + with(myObj){ + f(); + } +} catch(e){ + result = e; +} + +if(!(result === "value")){ + $ERROR('#0: result === "value". Actual: result ==='+ result ); +} + +if(!(p1 === "x1")){ + $ERROR('#1: p1 === "x1". Actual: p1 ==='+ p1 ); +} + +if(!(p2 === "x2")){ + $ERROR('#2: p2 === "x2". Actual: p2 ==='+ p2 ); +} + +try{ + p3; + $ERROR('#3: p3 is nod defined'); +} +catch(e){ +} + +try { + p4; + $ERROR('#4: p4 is not defined'); +} catch(e) { +} + +if(!(p5 === "x5")){ + $ERROR('#5: p5 === "x5". Actual: p5 ==='+ p5 ); +} + +if(!(myObj.p1 === "a")){ + $ERROR('#6: myObj.p1 === "a". Actual: myObj.p1 ==='+ myObj.p1 ); +} + +if(!(myObj.p2 === "b")){ + $ERROR('#7: myObj.p2 === "b". Actual: myObj.p2 ==='+ myObj.p2 ); +} + +if(!(myObj.p3 === "c")){ + $ERROR('#8: myObj.p3 === "c". Actual: myObj.p3 ==='+ myObj.p3 ); +} + +if(!(myObj.p4 === undefined)){ + $ERROR('#9: myObj.p4 === undefined. Actual: myObj.p4 ==='+ myObj.p4 ); +} + +if(!(myObj.p5 === undefined)){ + $ERROR('#10: myObj.p5 === undefined. Actual: myObj.p5 ==='+ myObj.p5 ); +} + +if(!(st_parseInt === parseInt)){ + $ERROR('#11: st_parseInt === parseInt. Actual: st_parseInt ==='+ st_parseInt ); +} + +if(!isNaN(st_NaN)){ + $ERROR('#12: st_NaN === NaN. Actual: st_NaN ==='+ st_NaN ); +} + +if(!(st_Infinity === Infinity)){ + $ERROR('#13: st_Infinity === Infinity. Actual: st_Infinity ==='+ st_Infinity ); +} + +if(!(st_eval === eval)){ + $ERROR('#14: st_eval === eval. Actual: st_eval ==='+ st_eval ); +} + +if(!(st_parseFloat === parseFloat)){ + $ERROR('#15: st_parseFloat === parseFloat. Actual: st_parseFloat ==='+ st_parseFloat ); +} + +if(!(st_isNaN === isNaN)){ + $ERROR('#16: st_isNaN === isNaN. Actual: st_isNaN ==='+ st_isNaN ); +} + +if(!(st_isFinite === isFinite)){ + $ERROR('#17: st_isFinite === isFinite. Actual: st_isFinite ==='+ st_isFinite ); +} + +try { + value; + $ERROR('#18: value is not defined'); +} catch(e) { +} + +if(!(myObj.value === "myObj_value")){ + $ERROR('#19: myObj.value === "myObj_value". Actual: myObj.value ==='+ myObj.value ); +} diff --git a/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A1.11_T5.js b/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A1.11_T5.js new file mode 100644 index 000000000..fa33fb322 --- /dev/null +++ b/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A1.11_T5.js @@ -0,0 +1,153 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/** + * @name: S12.10_A1.11_T5; + * @section: 12.10; + * @assertion: The with statement adds a computed object to the front of the + * scope chain of the current execution context; + * @description: Calling a function within "with" statement declared without the statement, leading to completion by exception; + * @strict_mode_negative + */ +this.p1 = 1; +this.p2 = 2; +this.p3 = 3; +var result = "result"; +var myObj = {p1: 'a', + p2: 'b', + p3: 'c', + value: 'myObj_value', + valueOf : function(){return 'obj_valueOf';}, + parseInt : function(){return 'obj_parseInt';}, + NaN : 'obj_NaN', + Infinity : 'obj_Infinity', + eval : function(){return 'obj_eval';}, + parseFloat : function(){return 'obj_parseFloat';}, + isNaN : function(){return 'obj_isNaN';}, + isFinite : function(){return 'obj_isFinite';} +} +var del; +var st_p1 = "p1"; +var st_p2 = "p2"; +var st_p3 = "p3"; +var st_parseInt = "parseInt"; +var st_NaN = "NaN"; +var st_Infinity = "Infinity"; +var st_eval = "eval"; +var st_parseFloat = "parseFloat"; +var st_isNaN = "isNaN"; +var st_isFinite = "isFinite"; + +try { + var f = function(){ + throw value; + st_p1 = p1; + st_p2 = p2; + st_p3 = p3; + st_parseInt = parseInt; + st_NaN = NaN; + st_Infinity = Infinity; + st_eval = eval; + st_parseFloat = parseFloat; + st_isNaN = isNaN; + st_isFinite = isFinite; + p1 = 'x1'; + this.p2 = 'x2'; + del = delete p3; + var p4 = 'x4'; + p5 = 'x5'; + var value = 'value'; + } + with(myObj){ + f(); + } +} catch(e){ + result = e; +} + +if(!(result === undefined)){ + $ERROR('#0: result === undefined. Actual: result ==='+ result ); +} + +if(!(p1 === 1)){ + $ERROR('#1: p1 === 1. Actual: p1 ==='+ p1 ); +} + +if(!(p2 === 2)){ + $ERROR('#2: p2 === 2. Actual: p2 ==='+ p2 ); +} + +if(!(p3 === 3)){ + $ERROR('#3: p3 === 3. Actual: p3 ==='+ p3 ); +} + +try{ + p4; + $ERROR('#4: p4 doesn\'t exists'); +} +catch(e){ +} + +try { + p5; + $ERROR('#5: p5 is not defined'); +} catch(e) { +} + +if(!(myObj.p1 === "a")){ + $ERROR('#6: myObj.p1 === "a". Actual: myObj.p1 ==='+ myObj.p1 ); +} + +if(!(myObj.p2 === "b")){ + $ERROR('#7: myObj.p2 === "b". Actual: myObj.p2 ==='+ myObj.p2 ); +} + +if(!(myObj.p3 === "c")){ + $ERROR('#8: myObj.p3 === "c". Actual: myObj.p3 ==='+ myObj.p3 ); +} + +if(!(myObj.p4 === undefined)){ + $ERROR('#9: myObj.p4 === undefined. Actual: myObj.p4 ==='+ myObj.p4 ); +} + +if(!(myObj.p5 === undefined)){ + $ERROR('#10: myObj.p5 === undefined. Actual: myObj.p5 ==='+ myObj.p5 ); +} + +if(!(st_parseInt === "parseInt")){ + $ERROR('#11: myObj.parseInt === "parseInt". Actual: myObj.parseInt ==='+ myObj.parseInt ); +} + +if(!(st_NaN === "NaN")){ + $ERROR('#12: st_NaN === "NaN". Actual: st_NaN ==='+ st_NaN ); +} + +if(!(st_Infinity === "Infinity")){ + $ERROR('#13: st_Infinity === "Infinity". Actual: st_Infinity ==='+ st_Infinity ); +} + +if(!(st_eval === "eval")){ + $ERROR('#14: st_eval === "eval". Actual: st_eval ==='+ st_eval ); +} + +if(!(st_parseFloat === "parseFloat")){ + $ERROR('#15: st_parseFloat === "parseFloat". Actual: st_parseFloat ==='+ st_parseFloat ); +} + +if(!(st_isNaN === "isNaN")){ + $ERROR('#16: st_isNaN === "isNaN". Actual: st_isNaN ==='+ st_isNaN ); +} + +if(!(st_isFinite === "isFinite")){ + $ERROR('#17: st_isFinite === "isFinite". Actual: st_isFinite ==='+ st_isFinite ); +} + +try { + value; + $ERROR('#18: value is not defined'); +} catch(e) { +} + +if(!(myObj.value === "myObj_value")){ + $ERROR('#19: myObj.value === "myObj_value". Actual: myObj.value ==='+ myObj.value ); +} diff --git a/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A1.12_T1.js b/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A1.12_T1.js new file mode 100644 index 000000000..cb8ec8be5 --- /dev/null +++ b/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A1.12_T1.js @@ -0,0 +1,142 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/** + * @name: S12.10_A1.12_T1; + * @section: 12.10; + * @assertion: The with statement adds a computed object to the front of the + * scope chain of the current execution context; + * @description: Calling a function without "with" statement declared within the statement, leading to normal completion; + * @strict_mode_negative + */ +this.p1 = 1; +this.p2 = 2; +this.p3 = 3; +var result = "result"; +var myObj = {p1: 'a', + p2: 'b', + p3: 'c', + value: 'myObj_value', + valueOf : function(){return 'obj_valueOf';}, + parseInt : function(){return 'obj_parseInt';}, + NaN : 'obj_NaN', + Infinity : 'obj_Infinity', + eval : function(){return 'obj_eval';}, + parseFloat : function(){return 'obj_parseFloat';}, + isNaN : function(){return 'obj_isNaN';}, + isFinite : function(){return 'obj_isFinite';} +} +var del; +var st_p1 = "p1"; +var st_p2 = "p2"; +var st_p3 = "p3"; +var st_parseInt = "parseInt"; +var st_NaN = "NaN"; +var st_Infinity = "Infinity"; +var st_eval = "eval"; +var st_parseFloat = "parseFloat"; +var st_isNaN = "isNaN"; +var st_isFinite = "isFinite"; + +with(myObj){ + var f = function(){ + st_p1 = p1; + st_p2 = p2; + st_p3 = p3; + st_parseInt = parseInt; + st_NaN = NaN; + st_Infinity = Infinity; + st_eval = eval; + st_parseFloat = parseFloat; + st_isNaN = isNaN; + st_isFinite = isFinite; + p1 = 'x1'; + this.p2 = 'x2'; + del = delete p3; + var p4 = 'x4'; + p5 = 'x5'; + var value = 'value'; + } +} +f(); + +if(!(p1 === 1)){ + $ERROR('#1: p1 === 1. Actual: p1 ==='+ p1 ); +} + +if(!(p2 === "x2")){ + $ERROR('#2: p2 === "x2". Actual: p2 ==='+ p2 ); +} + +if(!(p3 === 3)){ + $ERROR('#3: p3 === 3. Actual: p3 ==='+ p3 ); +} + +try{ + p4; + $ERROR('#4: p4 doesn\'t exists'); +} +catch(e){ +} + +if(!(p5 === "x5")){ + $ERROR('#5: p5 === "x5". Actual: p5 ==='+ p5 ); +} + +if(!(myObj.p1 === "x1")){ + $ERROR('#6: myObj.p1 === "x1". Actual: myObj.p1 ==='+ myObj.p1 ); +} + +if(!(myObj.p2 === "b")){ + $ERROR('#7: myObj.p2 === "b". Actual: myObj.p2 ==='+ myObj.p2 ); +} + +if(!(myObj.p3 === undefined)){ + $ERROR('#8: myObj.p3 === undefined. Actual: myObj.p3 ==='+ myObj.p3 ); +} + +if(!(myObj.p4 === undefined)){ + $ERROR('#9: myObj.p4 === undefined. Actual: myObj.p4 ==='+ myObj.p4 ); +} + +if(!(myObj.p5 === undefined)){ + $ERROR('#10: myObj.p5 === undefined. Actual: myObj.p5 ==='+ myObj.p5 ); +} + +if(!(st_parseInt !== parseInt)){ + $ERROR('#11: myObj.parseInt !== parseInt'); +} + +if(!(st_NaN === "obj_NaN")){ + $ERROR('#12: myObj.NaN !== NaN'); +} + +if(!(st_Infinity !== Infinity)){ + $ERROR('#13: myObj.Infinity !== Infinity'); +} + +if(!(st_eval !== eval)){ + $ERROR('#14: myObj.eval !== eval'); +} + +if(!(st_parseFloat !== parseFloat)){ + $ERROR('#15: myObj.parseFloat !== parseFloat'); +} + +if(!(st_isNaN !== isNaN)){ + $ERROR('#16: myObj.isNaN !== isNaN'); +} + +if(!(st_isFinite !== isFinite)){ + $ERROR('#17: myObj.isFinite !== isFinite'); +} + +try { + value; + $ERROR('#18: value is not defined'); +} catch(e) { +} + +if(!(myObj.value === "myObj_value")){ + $ERROR('#19: myObj.value === "myObj_value". Actual: myObj.value ==='+ myObj.value ); +} diff --git a/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A1.12_T2.js b/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A1.12_T2.js new file mode 100644 index 000000000..c9364e9b2 --- /dev/null +++ b/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A1.12_T2.js @@ -0,0 +1,148 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/** + * @name: S12.10_A1.12_T2; + * @section: 12.10; + * @assertion: The with statement adds a computed object to the front of the + * scope chain of the current execution context; + * @description: Calling a function without "with" statement declared within the statement, leading to normal completion by "return"; + * @strict_mode_negative + */ +this.p1 = 1; +this.p2 = 2; +this.p3 = 3; +var result = "result"; +var myObj = {p1: 'a', + p2: 'b', + p3: 'c', + value: 'myObj_value', + valueOf : function(){return 'obj_valueOf';}, + parseInt : function(){return 'obj_parseInt';}, + NaN : 'obj_NaN', + Infinity : 'obj_Infinity', + eval : function(){return 'obj_eval';}, + parseFloat : function(){return 'obj_parseFloat';}, + isNaN : function(){return 'obj_isNaN';}, + isFinite : function(){return 'obj_isFinite';} +} +var del; +var st_p1 = "p1"; +var st_p2 = "p2"; +var st_p3 = "p3"; +var st_parseInt = "parseInt"; +var st_NaN = "NaN"; +var st_Infinity = "Infinity"; +var st_eval = "eval"; +var st_parseFloat = "parseFloat"; +var st_isNaN = "isNaN"; +var st_isFinite = "isFinite"; + +with(myObj){ + var f = function(){ + st_p1 = p1; + st_p2 = p2; + st_p3 = p3; + st_parseInt = parseInt; + st_NaN = NaN; + st_Infinity = Infinity; + st_eval = eval; + st_parseFloat = parseFloat; + st_isNaN = isNaN; + st_isFinite = isFinite; + p1 = 'x1'; + this.p2 = 'x2'; + del = delete p3; + var p4 = 'x4'; + p5 = 'x5'; + var value = 'value'; + return value; + } +} +result = f(); + +if(!(result === "value")){ + $ERROR('#0: result === "value". Actual: result ==='+ result ); +} + +if(!(p1 === 1)){ + $ERROR('#1: p1 === 1. Actual: p1 ==='+ p1 ); +} + +if(!(p2 === "x2")){ + $ERROR('#2: p2 === "x2". Actual: p2 ==='+ p2 ); +} + +if(!(p3 === 3)){ + $ERROR('#3: p3 === 3. Actual: p3 ==='+ p3 ); +} + +try{ + p4; + $ERROR('#4: p4 doesn\'t exists'); +} +catch(e){ +} + +if(!(p5 === "x5")){ + $ERROR('#5: p5 === "x5". Actual: p5 ==='+ p5 ); +} + +if(!(myObj.p1 === "x1")){ + $ERROR('#6: myObj.p1 === "x1". Actual: myObj.p1 ==='+ myObj.p1 ); +} + +if(!(myObj.p2 === "b")){ + $ERROR('#7: myObj.p2 === "b". Actual: myObj.p2 ==='+ myObj.p2 ); +} + +if(!(myObj.p3 === undefined)){ + $ERROR('#8: myObj.p3 === undefined. Actual: myObj.p3 ==='+ myObj.p3 ); +} + +if(!(myObj.p4 === undefined)){ + $ERROR('#9: myObj.p4 === undefined. Actual: myObj.p4 ==='+ myObj.p4 ); +} + +if(!(myObj.p5 === undefined)){ + $ERROR('#10: myObj.p5 === undefined. Actual: myObj.p5 ==='+ myObj.p5 ); +} + +if(!(st_parseInt !== parseInt)){ + $ERROR('#11: myObj.parseInt !== parseInt'); +} + +if(!(st_NaN === "obj_NaN")){ + $ERROR('#12: myObj.NaN !== NaN'); +} + +if(!(st_Infinity !== Infinity)){ + $ERROR('#13: myObj.Infinity !== Infinity'); +} + +if(!(st_eval !== eval)){ + $ERROR('#14: myObj.eval !== eval'); +} + +if(!(st_parseFloat !== parseFloat)){ + $ERROR('#15: myObj.parseFloat !== parseFloat'); +} + +if(!(st_isNaN !== isNaN)){ + $ERROR('#16: myObj.isNaN !== isNaN'); +} + +if(!(st_isFinite !== isFinite)){ + $ERROR('#17: myObj.isFinite !== isFinite'); +} + +try{ + value; + $ERROR('#18: value is not defined'); +} +catch(e){ +} + +if(!(myObj.value === "myObj_value")){ + $ERROR('#19: myObj.value === "myObj_value". Actual: myObj.value ==='+ myObj.value ); +} diff --git a/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A1.12_T3.js b/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A1.12_T3.js new file mode 100644 index 000000000..6ad8c60cb --- /dev/null +++ b/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A1.12_T3.js @@ -0,0 +1,150 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/** + * @name: S12.10_A1.12_T3; + * @section: 12.10; + * @assertion: The with statement adds a computed object to the front of the + * scope chain of the current execution context; + * @description: Calling a function without "with" statement declared within the statement, leading to normal completion by "return"; + * @strict_mode_negative + */ +this.p1 = 1; +this.p2 = 2; +this.p3 = 3; +var result = "result"; +var myObj = {p1: 'a', + p2: 'b', + p3: 'c', + value: 'myObj_value', + valueOf : function(){return 'obj_valueOf';}, + parseInt : function(){return 'obj_parseInt';}, + NaN : 'obj_NaN', + Infinity : 'obj_Infinity', + eval : function(){return 'obj_eval';}, + parseFloat : function(){return 'obj_parseFloat';}, + isNaN : function(){return 'obj_isNaN';}, + isFinite : function(){return 'obj_isFinite';} +} +var del; +var st_p1 = "p1"; +var st_p2 = "p2"; +var st_p3 = "p3"; +var st_parseInt = "parseInt"; +var st_NaN = "NaN"; +var st_Infinity = "Infinity"; +var st_eval = "eval"; +var st_parseFloat = "parseFloat"; +var st_isNaN = "isNaN"; +var st_isFinite = "isFinite"; + +with(myObj){ + var f = function(){ + return value; + st_p1 = p1; + st_p2 = p2; + st_p3 = p3; + st_parseInt = parseInt; + st_NaN = NaN; + st_Infinity = Infinity; + st_eval = eval; + st_parseFloat = parseFloat; + st_isNaN = isNaN; + st_isFinite = isFinite; + p1 = 'x1'; + this.p2 = 'x2'; + del = delete p3; + var p4 = 'x4'; + p5 = 'x5'; + var value = 'value'; + } +} +result = f(); + +if(!(result === undefined)){ + $ERROR('#0: result === undefined. Actual: result ==='+ result ); +} + +if(!(p1 === 1)){ + $ERROR('#1: p1 === 1. Actual: p1 ==='+ p1 ); +} + +if(!(p2 === 2)){ + $ERROR('#2: p2 === 2. Actual: p2 ==='+ p2 ); +} + +if(!(p3 === 3)){ + $ERROR('#3: p3 === 3. Actual: p3 ==='+ p3 ); +} + +try { + p4; + $ERROR('#4: p4 is not defined'); +} catch(e) { +} + +try { + p5; + $ERROR('#5: p5 is not defined'); +} catch(e) { +} + +if(!(myObj.p1 === "a")){ + $ERROR('#6: myObj.p1 === "a". Actual: myObj.p1 ==='+ myObj.p1 ); +} + +if(!(myObj.p2 === "b")){ + $ERROR('#7: myObj.p2 === "b". Actual: myObj.p2 ==='+ myObj.p2 ); +} + +if(!(myObj.p3 === "c")){ + $ERROR('#8: myObj.p3 === "c". Actual: myObj.p3 ==='+ myObj.p3 ); +} + +if(!(myObj.p4 === undefined)){ + $ERROR('#9: myObj.p4 === undefined. Actual: myObj.p4 ==='+ myObj.p4 ); +} + +if(!(myObj.p5 === undefined)){ + $ERROR('#10: myObj.p5 === undefined. Actual: myObj.p5 ==='+ myObj.p5 ); +} + +if(!(st_parseInt === "parseInt")){ + $ERROR('#11: myObj.parseInt === "parseInt". Actual: myObj.parseInt ==='+ myObj.parseInt ); +} + +if(!(st_NaN === "NaN")){ + $ERROR('#12: st_NaN === "NaN". Actual: st_NaN ==='+ st_NaN ); +} + +if(!(st_Infinity === "Infinity")){ + $ERROR('#13: st_Infinity === "Infinity". Actual: st_Infinity ==='+ st_Infinity ); +} + +if(!(st_eval === "eval")){ + $ERROR('#14: st_eval === "eval". Actual: st_eval ==='+ st_eval ); +} + +if(!(st_parseFloat === "parseFloat")){ + $ERROR('#15: st_parseFloat === "parseFloat". Actual: st_parseFloat ==='+ st_parseFloat ); +} + +if(!(st_isNaN === "isNaN")){ + $ERROR('#16: st_isNaN === "isNaN". Actual: st_isNaN ==='+ st_isNaN ); +} + +if(!(st_isFinite === "isFinite")){ + $ERROR('#17: st_isFinite === "isFinite". Actual: st_isFinite ==='+ st_isFinite ); +} + +try{ + value; + $ERROR('#18: value is not defined'); +} +catch(e){ +} + +if(!(myObj.value === "myObj_value")){ + $ERROR('#19: myObj.value === "myObj_value". Actual: myObj.value ==='+ myObj.value ); +} + diff --git a/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A1.12_T4.js b/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A1.12_T4.js new file mode 100644 index 000000000..2d169483e --- /dev/null +++ b/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A1.12_T4.js @@ -0,0 +1,150 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/** + * @name: S12.10_A1.12_T4; + * @section: 12.10; + * @assertion: The with statement adds a computed object to the front of the + * scope chain of the current execution context; + * @description: Calling a function without "with" statement declared within the statement, leading to completion by exception; + * @strict_mode_negative + */ +this.p1 = 1; +this.p2 = 2; +this.p3 = 3; +var result = "result"; +var myObj = {p1: 'a', + p2: 'b', + p3: 'c', + value: 'myObj_value', + valueOf : function(){return 'obj_valueOf';}, + parseInt : function(){return 'obj_parseInt';}, + NaN : 'obj_NaN', + Infinity : 'obj_Infinity', + eval : function(){return 'obj_eval';}, + parseFloat : function(){return 'obj_parseFloat';}, + isNaN : function(){return 'obj_isNaN';}, + isFinite : function(){return 'obj_isFinite';} +} +var del; +var st_p1 = "p1"; +var st_p2 = "p2"; +var st_p3 = "p3"; +var st_parseInt = "parseInt"; +var st_NaN = "NaN"; +var st_Infinity = "Infinity"; +var st_eval = "eval"; +var st_parseFloat = "parseFloat"; +var st_isNaN = "isNaN"; +var st_isFinite = "isFinite"; + +try { + with(myObj){ + var f = function(){ + st_p1 = p1; + st_p2 = p2; + st_p3 = p3; + st_parseInt = parseInt; + st_NaN = NaN; + st_Infinity = Infinity; + st_eval = eval; + st_parseFloat = parseFloat; + st_isNaN = isNaN; + st_isFinite = isFinite; + p1 = 'x1'; + this.p2 = 'x2'; + del = delete p3; + var p4 = 'x4'; + p5 = 'x5'; + var value = 'value'; + throw value; + } + } + f(); +} catch(e){ + result = e; +} + +if(!(result === "value")){ + $ERROR('#0: result === "value". Actual: result ==='+ result ); +} + +if(!(p1 === 1)){ + $ERROR('#1: p1 === 1. Actual: p1 ==='+ p1 ); +} + +if(!(p2 === "x2")){ + $ERROR('#2: p2 === "x2". Actual: p2 ==='+ p2 ); +} + +if(!(p3 === 3)){ + $ERROR('#3: p3 === 3. Actual: p3 ==='+ p3 ); +} + +try { + p4; + $ERROR('#4: p4 is not defined'); +} catch(e) { +} + +if(!(p5 === "x5")){ + $ERROR('#5: p5 === "x5". Actual: p5 ==='+ p5 ); +} + +if(!(myObj.p1 === "x1")){ + $ERROR('#6: myObj.p1 === "x1". Actual: myObj.p1 ==='+ myObj.p1 ); +} + +if(!(myObj.p2 === "b")){ + $ERROR('#7: myObj.p2 === "b". Actual: myObj.p2 ==='+ myObj.p2 ); +} + +if(!(myObj.p3 === undefined)){ + $ERROR('#8: myObj.p3 === undefined. Actual: myObj.p3 ==='+ myObj.p3 ); +} + +if(!(myObj.p4 === undefined)){ + $ERROR('#9: myObj.p4 === undefined. Actual: myObj.p4 ==='+ myObj.p4 ); +} + +if(!(myObj.p5 === undefined)){ + $ERROR('#10: myObj.p5 === undefined. Actual: myObj.p5 ==='+ myObj.p5 ); +} + +if(!(st_parseInt !== parseInt)){ + $ERROR('#11: myObj.parseInt !== parseInt'); +} + +if(!(st_NaN === "obj_NaN")){ + $ERROR('#12: myObj.NaN !== NaN'); +} + +if(!(st_Infinity !== Infinity)){ + $ERROR('#13: myObj.Infinity !== Infinity'); +} + +if(!(st_eval !== eval)){ + $ERROR('#14: myObj.eval !== eval'); +} + +if(!(st_parseFloat !== parseFloat)){ + $ERROR('#15: myObj.parseFloat !== parseFloat'); +} + +if(!(st_isNaN !== isNaN)){ + $ERROR('#16: myObj.isNaN !== isNaN'); +} + +if(!(st_isFinite !== isFinite)){ + $ERROR('#17: myObj.isFinite !== isFinite'); +} + +try { + value; + $ERROR('#18: value is not defined'); +} catch(e) { +} + +if(!(myObj.value === "myObj_value")){ + $ERROR('#19: myObj.value === "myObj_value". Actual: myObj.value ==='+ myObj.value ); +} diff --git a/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A1.12_T5.js b/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A1.12_T5.js new file mode 100644 index 000000000..e1bcb06dd --- /dev/null +++ b/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A1.12_T5.js @@ -0,0 +1,154 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/** + * @name: S12.10_A1.12_T5; + * @section: 12.10; + * @assertion: The with statement adds a computed object to the front of the + * scope chain of the current execution context; + * @description: Calling a function without "with" statement declared within the statement, leading to completion by exception; + * @strict_mode_negative + */ +this.p1 = 1; +this.p2 = 2; +this.p3 = 3; +var result = "result"; +var myObj = {p1: 'a', + p2: 'b', + p3: 'c', + value: 'myObj_value', + valueOf : function(){return 'obj_valueOf';}, + parseInt : function(){return 'obj_parseInt';}, + NaN : 'obj_NaN', + Infinity : 'obj_Infinity', + eval : function(){return 'obj_eval';}, + parseFloat : function(){return 'obj_parseFloat';}, + isNaN : function(){return 'obj_isNaN';}, + isFinite : function(){return 'obj_isFinite';} +} +var del; +var st_p1 = "p1"; +var st_p2 = "p2"; +var st_p3 = "p3"; +var st_parseInt = "parseInt"; +var st_NaN = "NaN"; +var st_Infinity = "Infinity"; +var st_eval = "eval"; +var st_parseFloat = "parseFloat"; +var st_isNaN = "isNaN"; +var st_isFinite = "isFinite"; + +try { + with(myObj){ + var f = function(){ + throw value; + st_p1 = p1; + st_p2 = p2; + st_p3 = p3; + st_parseInt = parseInt; + st_NaN = NaN; + st_Infinity = Infinity; + st_eval = eval; + st_parseFloat = parseFloat; + st_isNaN = isNaN; + st_isFinite = isFinite; + p1 = 'x1'; + this.p2 = 'x2'; + del = delete p3; + var p4 = 'x4'; + p5 = 'x5'; + var value = 'value'; + } + } + f(); +} catch(e){ + result = e; +} + +if(!(result === undefined)){ + $ERROR('#0: result === undefined. Actual: result ==='+ result ); +} + +if(!(p1 === 1)){ + $ERROR('#1: p1 === 1. Actual: p1 ==='+ p1 ); +} + +if(!(p2 === 2)){ + $ERROR('#2: p2 === 2. Actual: p2 ==='+ p2 ); +} + +if(!(p3 === 3)){ + $ERROR('#3: p3 === 3. Actual: p3 ==='+ p3 ); +} + +try { + p4; + $ERROR('#4: p4 is not defined'); +} catch(e) { +} + +try { + p5; + $ERROR('#5: p5 is not defined'); +} catch(e) { +} + +if(!(myObj.p1 === "a")){ + $ERROR('#6: myObj.p1 === "a". Actual: myObj.p1 ==='+ myObj.p1 ); +} + +if(!(myObj.p2 === "b")){ + $ERROR('#7: myObj.p2 === "b". Actual: myObj.p2 ==='+ myObj.p2 ); +} + +if(!(myObj.p3 === "c")){ + $ERROR('#8: myObj.p3 === "c". Actual: myObj.p3 ==='+ myObj.p3 ); +} + +if(!(myObj.p4 === undefined)){ + $ERROR('#9: myObj.p4 === undefined. Actual: myObj.p4 ==='+ myObj.p4 ); +} + +if(!(myObj.p5 === undefined)){ + $ERROR('#10: myObj.p5 === undefined. Actual: myObj.p5 ==='+ myObj.p5 ); +} + +if(!(st_parseInt === "parseInt")){ + $ERROR('#11: myObj.parseInt === "parseInt". Actual: myObj.parseInt ==='+ myObj.parseInt ); +} + +if(!(st_NaN === "NaN")){ + $ERROR('#12: st_NaN === "NaN". Actual: st_NaN ==='+ st_NaN ); +} + +if(!(st_Infinity === "Infinity")){ + $ERROR('#13: st_Infinity === "Infinity". Actual: st_Infinity ==='+ st_Infinity ); +} + +if(!(st_eval === "eval")){ + $ERROR('#14: st_eval === "eval". Actual: st_eval ==='+ st_eval ); +} + +if(!(st_parseFloat === "parseFloat")){ + $ERROR('#15: st_parseFloat === "parseFloat". Actual: st_parseFloat ==='+ st_parseFloat ); +} + +if(!(st_isNaN === "isNaN")){ + $ERROR('#16: st_isNaN === "isNaN". Actual: st_isNaN ==='+ st_isNaN ); +} + +if(!(st_isFinite === "isFinite")){ + $ERROR('#17: st_isFinite === "isFinite". Actual: st_isFinite ==='+ st_isFinite ); +} + +try{ + value; + $ERROR('#18: value is not defined'); +} +catch(e){ +} + +if(!(myObj.value === "myObj_value")){ + $ERROR('#19: myObj.value === "myObj_value". Actual: myObj.value ==='+ myObj.value ); +} + diff --git a/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A1.1_T1.js b/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A1.1_T1.js new file mode 100644 index 000000000..43f5b1609 --- /dev/null +++ b/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A1.1_T1.js @@ -0,0 +1,135 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/** + * @name: S12.10_A1.1_T1; + * @section: 12.10; + * @assertion: The with statement adds a computed object to the front of the + * scope chain of the current execution context; + * @description: Using "with" inside of global context leading to normal completion; + * @strict_mode_negative +*/ + +this.p1 = 1; +this.p2 = 2; +this.p3 = 3; +var result = "result"; +var myObj = {p1: 'a', + p2: 'b', + p3: 'c', + value: 'myObj_value', + valueOf : function(){return 'obj_valueOf';}, + parseInt : function(){return 'obj_parseInt';}, + NaN : 'obj_NaN', + Infinity : 'obj_Infinity', + eval : function(){return 'obj_eval';}, + parseFloat : function(){return 'obj_parseFloat';}, + isNaN : function(){return 'obj_isNaN';}, + isFinite : function(){return 'obj_isFinite';} +} +var del; +var st_p1 = "p1"; +var st_p2 = "p2"; +var st_p3 = "p3"; +var st_parseInt = "parseInt"; +var st_NaN = "NaN"; +var st_Infinity = "Infinity"; +var st_eval = "eval"; +var st_parseFloat = "parseFloat"; +var st_isNaN = "isNaN"; +var st_isFinite = "isFinite"; + +with(myObj){ + st_p1 = p1; + st_p2 = p2; + st_p3 = p3; + st_parseInt = parseInt; + st_NaN = NaN; + st_Infinity = Infinity; + st_eval = eval; + st_parseFloat = parseFloat; + st_isNaN = isNaN; + st_isFinite = isFinite; + p1 = 'x1'; + this.p2 = 'x2'; + del = delete p3; + var p4 = 'x4'; + p5 = 'x5'; + var value = 'value'; +} + +if(!(p1 === 1)){ + $ERROR('#1: p1 === 1. Actual: p1 ==='+ p1 ); +} + +if(!(p2 === "x2")){ + $ERROR('#2: p2 === "x2". Actual: p2 ==='+ p2 ); +} + +if(!(p3 === 3)){ + $ERROR('#3: p3 === 3. Actual: p3 ==='+ p3 ); +} + +if(!(p4 === "x4")){ + $ERROR('#4: p4 === "x4". Actual: p4 ==='+ p4 ); +} + +if(!(p5 === "x5")){ + $ERROR('#5: p5 === "x5". Actual: p5 ==='+ p5 ); +} + +if(!(myObj.p1 === "x1")){ + $ERROR('#6: myObj.p1 === "x1". Actual: myObj.p1 ==='+ myObj.p1 ); +} + +if(!(myObj.p2 === "b")){ + $ERROR('#7: myObj.p2 === "b". Actual: myObj.p2 ==='+ myObj.p2 ); +} + +if(!(myObj.p3 === undefined)){ + $ERROR('#8: myObj.p3 === undefined. Actual: myObj.p3 ==='+ myObj.p3 ); +} + +if(!(myObj.p4 === undefined)){ + $ERROR('#9: myObj.p4 === undefined. Actual: myObj.p4 ==='+ myObj.p4 ); +} + +if(!(myObj.p5 === undefined)){ + $ERROR('#10: myObj.p5 === undefined. Actual: myObj.p5 ==='+ myObj.p5 ); +} + +if(!(st_parseInt !== parseInt)){ + $ERROR('#11: myObj.parseInt !== parseInt'); +} + +if(!(st_NaN === "obj_NaN")){ + $ERROR('#12: myObj.NaN !== NaN'); +} + +if(!(st_Infinity !== Infinity)){ + $ERROR('#13: myObj.Infinity !== Infinity'); +} + +if(!(st_eval !== eval)){ + $ERROR('#14: myObj.eval !== eval'); +} + +if(!(st_parseFloat !== parseFloat)){ + $ERROR('#15: myObj.parseFloat !== parseFloat'); +} + +if(!(st_isNaN !== isNaN)){ + $ERROR('#16: myObj.isNaN !== isNaN'); +} + +if(!(st_isFinite !== isFinite)){ + $ERROR('#17: myObj.isFinite !== isFinite'); +} + +if(!(value === undefined)){ + $ERROR('#18: value === undefined. Actual: value ==='+ value ); +} + +if(!(myObj.value === "value")){ + $ERROR('#19: myObj.value === "value". Actual: myObj.value ==='+ myObj.value ); +} diff --git a/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A1.1_T2.js b/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A1.1_T2.js new file mode 100644 index 000000000..62f2cc4ac --- /dev/null +++ b/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A1.1_T2.js @@ -0,0 +1,143 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/** + * @name: S12.10_A1.1_T2; + * @section: 12.10; + * @assertion: The with statement adds a computed object to the front of the + * scope chain of the current execution context; + * @description: Using "with" inside of global context leading to completion by exception; + * @strict_mode_negative + */ +this.p1 = 1; +this.p2 = 2; +this.p3 = 3; +var result = "result"; +var myObj = {p1: 'a', + p2: 'b', + p3: 'c', + value: 'myObj_value', + valueOf : function(){return 'obj_valueOf';}, + parseInt : function(){return 'obj_parseInt';}, + NaN : 'obj_NaN', + Infinity : 'obj_Infinity', + eval : function(){return 'obj_eval';}, + parseFloat : function(){return 'obj_parseFloat';}, + isNaN : function(){return 'obj_isNaN';}, + isFinite : function(){return 'obj_isFinite';} +} +var del; +var st_p1 = "p1"; +var st_p2 = "p2"; +var st_p3 = "p3"; +var st_parseInt = "parseInt"; +var st_NaN = "NaN"; +var st_Infinity = "Infinity"; +var st_eval = "eval"; +var st_parseFloat = "parseFloat"; +var st_isNaN = "isNaN"; +var st_isFinite = "isFinite"; + +try { + with(myObj){ + st_p1 = p1; + st_p2 = p2; + st_p3 = p3; + st_parseInt = parseInt; + st_NaN = NaN; + st_Infinity = Infinity; + st_eval = eval; + st_parseFloat = parseFloat; + st_isNaN = isNaN; + st_isFinite = isFinite; + p1 = 'x1'; + this.p2 = 'x2'; + del = delete p3; + var p4 = 'x4'; + p5 = 'x5'; + var value = 'value'; + throw value; + } +} catch(e){ + result = e; +} + +if(!(result === "value")){ + $ERROR('#0: result === "value". Actual: result ==='+ result ); +} + +if(!(p1 === 1)){ + $ERROR('#1: p1 === 1. Actual: p1 ==='+ p1 ); +} + +if(!(p2 === "x2")){ + $ERROR('#2: p2 === "x2". Actual: p2 ==='+ p2 ); +} + +if(!(p3 === 3)){ + $ERROR('#3: p3 === 3. Actual: p3 ==='+ p3 ); +} + +if(!(p4 === "x4")){ + $ERROR('#4: p4 === "x4". Actual: p4 ==='+ p4 ); +} + +if(!(p5 === "x5")){ + $ERROR('#5: p5 === "x5". Actual: p5 ==='+ p5 ); +} + +if(!(myObj.p1 === "x1")){ + $ERROR('#6: myObj.p1 === "x1". Actual: myObj.p1 ==='+ myObj.p1 ); +} + +if(!(myObj.p2 === "b")){ + $ERROR('#7: myObj.p2 === "b". Actual: myObj.p2 ==='+ myObj.p2 ); +} + +if(!(myObj.p3 === undefined)){ + $ERROR('#8: myObj.p3 === undefined. Actual: myObj.p3 ==='+ myObj.p3 ); +} + +if(!(myObj.p4 === undefined)){ + $ERROR('#9: myObj.p4 === undefined. Actual: myObj.p4 ==='+ myObj.p4 ); +} + +if(!(myObj.p5 === undefined)){ + $ERROR('#10: myObj.p5 === undefined. Actual: myObj.p5 ==='+ myObj.p5 ); +} + +if(!(st_parseInt !== parseInt)){ + $ERROR('#11: myObj.parseInt !== parseInt'); +} + +if(!(st_NaN === "obj_NaN")){ + $ERROR('#12: myObj.NaN !== NaN'); +} + +if(!(st_Infinity !== Infinity)){ + $ERROR('#13: myObj.Infinity !== Infinity'); +} + +if(!(st_eval !== eval)){ + $ERROR('#14: myObj.eval !== eval'); +} + +if(!(st_parseFloat !== parseFloat)){ + $ERROR('#15: myObj.parseFloat !== parseFloat'); +} + +if(!(st_isNaN !== isNaN)){ + $ERROR('#16: myObj.isNaN !== isNaN'); +} + +if(!(st_isFinite !== isFinite)){ + $ERROR('#17: myObj.isFinite !== isFinite'); +} + +if(!(value === undefined)){ + $ERROR('#18: value === undefined. Actual: value ==='+ value ); +} + +if(!(myObj.value === "value")){ + $ERROR('#19: myObj.value === "value". Actual: myObj.value ==='+ myObj.value ); +} diff --git a/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A1.1_T3.js b/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A1.1_T3.js new file mode 100644 index 000000000..8bd895a14 --- /dev/null +++ b/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A1.1_T3.js @@ -0,0 +1,145 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/** + * @name: S12.10_A1.1_T3; + * @section: 12.10; + * @assertion: The with statement adds a computed object to the front of the + * scope chain of the current execution context; + * @description: Using "with" inside of global context leading to completion by exception; + * @strict_mode_negative + */ +this.p1 = 1; +this.p2 = 2; +this.p3 = 3; +var result = "result"; +var myObj = {p1: 'a', + p2: 'b', + p3: 'c', + value: 'myObj_value', + valueOf : function(){return 'obj_valueOf';}, + parseInt : function(){return 'obj_parseInt';}, + NaN : 'obj_NaN', + Infinity : 'obj_Infinity', + eval : function(){return 'obj_eval';}, + parseFloat : function(){return 'obj_parseFloat';}, + isNaN : function(){return 'obj_isNaN';}, + isFinite : function(){return 'obj_isFinite';} +} +var del; +var st_p1 = "p1"; +var st_p2 = "p2"; +var st_p3 = "p3"; +var st_parseInt = "parseInt"; +var st_NaN = "NaN"; +var st_Infinity = "Infinity"; +var st_eval = "eval"; +var st_parseFloat = "parseFloat"; +var st_isNaN = "isNaN"; +var st_isFinite = "isFinite"; + +try { + with(myObj){ + throw value; + st_p1 = p1; + st_p2 = p2; + st_p3 = p3; + st_parseInt = parseInt; + st_NaN = NaN; + st_Infinity = Infinity; + st_eval = eval; + st_parseFloat = parseFloat; + st_isNaN = isNaN; + st_isFinite = isFinite; + p1 = 'x1'; + this.p2 = 'x2'; + del = delete p3; + var p4 = 'x4'; + p5 = 'x5'; + var value = 'value'; + } +} catch(e){ + result = e; +} + +if(!(result === "myObj_value")){ + $ERROR('#0: result === "myObj_value". Actual: result ==='+ result ); +} + +if(!(p1 === 1)){ + $ERROR('#1: p1 === 1. Actual: p1 ==='+ p1 ); +} + +if(!(p2 === 2)){ + $ERROR('#2: p2 === 2. Actual: p2 ==='+ p2 ); +} + +if(!(p3 === 3)){ + $ERROR('#3: p3 === 3. Actual: p3 ==='+ p3 ); +} + +if(!(p4 === undefined)){ + $ERROR('#4: p4 === undefined. Actual: p4 ==='+ p4 ); +} + +try { + p5; + $ERROR('#5: p5 is not defined'); +} catch(e) { +} + +if(!(myObj.p1 === "a")){ + $ERROR('#6: myObj.p1 === "a". Actual: myObj.p1 ==='+ myObj.p1 ); +} + +if(!(myObj.p2 === "b")){ + $ERROR('#7: myObj.p2 === "b". Actual: myObj.p2 ==='+ myObj.p2 ); +} + +if(!(myObj.p3 === "c")){ + $ERROR('#8: myObj.p3 === "c". Actual: myObj.p3 ==='+ myObj.p3 ); +} + +if(!(myObj.p4 === undefined)){ + $ERROR('#9: myObj.p4 === undefined. Actual: myObj.p4 ==='+ myObj.p4 ); +} + +if(!(myObj.p5 === undefined)){ + $ERROR('#10: myObj.p5 === undefined. Actual: myObj.p5 ==='+ myObj.p5 ); +} + +if(!(st_parseInt === "parseInt")){ + $ERROR('#11: myObj.parseInt === "parseInt". Actual: myObj.parseInt ==='+ myObj.parseInt ); +} + +if(!(st_NaN === "NaN")){ + $ERROR('#12: st_NaN === "NaN". Actual: st_NaN ==='+ st_NaN ); +} + +if(!(st_Infinity === "Infinity")){ + $ERROR('#13: st_Infinity === "Infinity". Actual: st_Infinity ==='+ st_Infinity ); +} + +if(!(st_eval === "eval")){ + $ERROR('#14: st_eval === "eval". Actual: st_eval ==='+ st_eval ); +} + +if(!(st_parseFloat === "parseFloat")){ + $ERROR('#15: st_parseFloat === "parseFloat". Actual: st_parseFloat ==='+ st_parseFloat ); +} + +if(!(st_isNaN === "isNaN")){ + $ERROR('#16: st_isNaN === "isNaN". Actual: st_isNaN ==='+ st_isNaN ); +} + +if(!(st_isFinite === "isFinite")){ + $ERROR('#17: st_isFinite === "isFinite". Actual: st_isFinite ==='+ st_isFinite ); +} + +if(!(value === undefined)){ + $ERROR('#18: value === undefined. Actual: value ==='+ value ); +} + +if(!(myObj.value === "myObj_value")){ + $ERROR('#19: myObj.value === "myObj_value". Actual: myObj.value ==='+ myObj.value ); +} diff --git a/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A1.2_T1.js b/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A1.2_T1.js new file mode 100644 index 000000000..f8f6fd3aa --- /dev/null +++ b/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A1.2_T1.js @@ -0,0 +1,142 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/** + * @name: S12.10_A1.2_T1; + * @section: 12.10; + * @assertion: The with statement adds a computed object to the front of the + * scope chain of the current execution context; + * @description: Calling a function without "with" statement when the statement itself is declared within the function declaration, leading to normal completion; + * @strict_mode_negative + */ +this.p1 = 1; +this.p2 = 2; +this.p3 = 3; +var result = "result"; +var myObj = {p1: 'a', + p2: 'b', + p3: 'c', + value: 'myObj_value', + valueOf : function(){return 'obj_valueOf';}, + parseInt : function(){return 'obj_parseInt';}, + NaN : 'obj_NaN', + Infinity : 'obj_Infinity', + eval : function(){return 'obj_eval';}, + parseFloat : function(){return 'obj_parseFloat';}, + isNaN : function(){return 'obj_isNaN';}, + isFinite : function(){return 'obj_isFinite';} +} +var del; +var st_p1 = "p1"; +var st_p2 = "p2"; +var st_p3 = "p3"; +var st_parseInt = "parseInt"; +var st_NaN = "NaN"; +var st_Infinity = "Infinity"; +var st_eval = "eval"; +var st_parseFloat = "parseFloat"; +var st_isNaN = "isNaN"; +var st_isFinite = "isFinite"; + +var f = function(){ + with(myObj){ + st_p1 = p1; + st_p2 = p2; + st_p3 = p3; + st_parseInt = parseInt; + st_NaN = NaN; + st_Infinity = Infinity; + st_eval = eval; + st_parseFloat = parseFloat; + st_isNaN = isNaN; + st_isFinite = isFinite; + p1 = 'x1'; + this.p2 = 'x2'; + del = delete p3; + var p4 = 'x4'; + p5 = 'x5'; + var value = 'value'; + } +} +f(); + +if(!(p1 === 1)){ + $ERROR('#1: p1 === 1. Actual: p1 ==='+ p1 ); +} + +if(!(p2 === "x2")){ + $ERROR('#2: p2 === "x2". Actual: p2 ==='+ p2 ); +} + +if(!(p3 === 3)){ + $ERROR('#3: p3 === 3. Actual: p3 ==='+ p3 ); +} + +try { + p4; + $ERROR('#4: p4 is not defined'); +} catch(e) { +} + +if(!(p5 === "x5")){ + $ERROR('#5: p5 === "x5". Actual: p5 ==='+ p5 ); +} + +if(!(myObj.p1 === "x1")){ + $ERROR('#6: myObj.p1 === "x1". Actual: myObj.p1 ==='+ myObj.p1 ); +} + +if(!(myObj.p2 === "b")){ + $ERROR('#7: myObj.p2 === "b". Actual: myObj.p2 ==='+ myObj.p2 ); +} + +if(!(myObj.p3 === undefined)){ + $ERROR('#8: myObj.p3 === undefined. Actual: myObj.p3 ==='+ myObj.p3 ); +} + +if(!(myObj.p4 === undefined)){ + $ERROR('#9: myObj.p4 === undefined. Actual: myObj.p4 ==='+ myObj.p4 ); +} + +if(!(myObj.p5 === undefined)){ + $ERROR('#10: myObj.p5 === undefined. Actual: myObj.p5 ==='+ myObj.p5 ); +} + +if(!(st_parseInt !== parseInt)){ + $ERROR('#11: myObj.parseInt !== parseInt'); +} + +if(!(st_NaN === "obj_NaN")){ + $ERROR('#12: myObj.NaN !== NaN'); +} + +if(!(st_Infinity !== Infinity)){ + $ERROR('#13: myObj.Infinity !== Infinity'); +} + +if(!(st_eval !== eval)){ + $ERROR('#14: myObj.eval !== eval'); +} + +if(!(st_parseFloat !== parseFloat)){ + $ERROR('#15: myObj.parseFloat !== parseFloat'); +} + +if(!(st_isNaN !== isNaN)){ + $ERROR('#16: myObj.isNaN !== isNaN'); +} + +if(!(st_isFinite !== isFinite)){ + $ERROR('#17: myObj.isFinite !== isFinite'); +} + +try{ + value; + $ERROR('#18: value is not defined'); +} +catch(e){ +} + +if(!(myObj.value === "value")){ + $ERROR('#19: myObj.value === "value". Actual: myObj.value ==='+ myObj.value ); +} diff --git a/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A1.2_T2.js b/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A1.2_T2.js new file mode 100644 index 000000000..8f88481ae --- /dev/null +++ b/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A1.2_T2.js @@ -0,0 +1,147 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/** + * @name: S12.10_A1.2_T2; + * @section: 12.10; + * @assertion: The with statement adds a computed object to the front of the + * scope chain of the current execution context; + * @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 + */ +this.p1 = 1; +this.p2 = 2; +this.p3 = 3; +var result = "result"; +var myObj = {p1: 'a', + p2: 'b', + p3: 'c', + value: 'myObj_value', + valueOf : function(){return 'obj_valueOf';}, + parseInt : function(){return 'obj_parseInt';}, + NaN : 'obj_NaN', + Infinity : 'obj_Infinity', + eval : function(){return 'obj_eval';}, + parseFloat : function(){return 'obj_parseFloat';}, + isNaN : function(){return 'obj_isNaN';}, + isFinite : function(){return 'obj_isFinite';} +} +var del; +var st_p1 = "p1"; +var st_p2 = "p2"; +var st_p3 = "p3"; +var st_parseInt = "parseInt"; +var st_NaN = "NaN"; +var st_Infinity = "Infinity"; +var st_eval = "eval"; +var st_parseFloat = "parseFloat"; +var st_isNaN = "isNaN"; +var st_isFinite = "isFinite"; + +var f = function(){ + with(myObj){ + st_p1 = p1; + st_p2 = p2; + st_p3 = p3; + st_parseInt = parseInt; + st_NaN = NaN; + st_Infinity = Infinity; + st_eval = eval; + st_parseFloat = parseFloat; + st_isNaN = isNaN; + st_isFinite = isFinite; + p1 = 'x1'; + this.p2 = 'x2'; + del = delete p3; + var p4 = 'x4'; + p5 = 'x5'; + var value = 'value'; + return value; + } +} +result = f(); + +if(!(result === "value")){ + $ERROR('#0: result === "value". Actual: result ==='+ result ); +} + +if(!(p1 === 1)){ + $ERROR('#1: p1 === 1. Actual: p1 ==='+ p1 ); +} + +if(!(p2 === "x2")){ + $ERROR('#2: p2 === "x2". Actual: p2 ==='+ p2 ); +} + +if(!(p3 === 3)){ + $ERROR('#3: p3 === 3. Actual: p3 ==='+ p3 ); +} + +try { + p4; + $ERROR('#4: p4 is not defined'); +} catch(e) { +} + +if(!(p5 === "x5")){ + $ERROR('#5: p5 === "x5". Actual: p5 ==='+ p5 ); +} + +if(!(myObj.p1 === "x1")){ + $ERROR('#6: myObj.p1 === "x1". Actual: myObj.p1 ==='+ myObj.p1 ); +} + +if(!(myObj.p2 === "b")){ + $ERROR('#7: myObj.p2 === "b". Actual: myObj.p2 ==='+ myObj.p2 ); +} + +if(!(myObj.p3 === undefined)){ + $ERROR('#8: myObj.p3 === undefined. Actual: myObj.p3 ==='+ myObj.p3 ); +} + +if(!(myObj.p4 === undefined)){ + $ERROR('#9: myObj.p4 === undefined. Actual: myObj.p4 ==='+ myObj.p4 ); +} + +if(!(myObj.p5 === undefined)){ + $ERROR('#10: myObj.p5 === undefined. Actual: myObj.p5 ==='+ myObj.p5 ); +} + +if(!(st_parseInt !== parseInt)){ + $ERROR('#11: myObj.parseInt !== parseInt'); +} + +if(!(st_NaN === "obj_NaN")){ + $ERROR('#12: myObj.NaN !== NaN'); +} + +if(!(st_Infinity !== Infinity)){ + $ERROR('#13: myObj.Infinity !== Infinity'); +} + +if(!(st_eval !== eval)){ + $ERROR('#14: myObj.eval !== eval'); +} + +if(!(st_parseFloat !== parseFloat)){ + $ERROR('#15: myObj.parseFloat !== parseFloat'); +} + +if(!(st_isNaN !== isNaN)){ + $ERROR('#16: myObj.isNaN !== isNaN'); +} + +if(!(st_isFinite !== isFinite)){ + $ERROR('#17: myObj.isFinite !== isFinite'); +} + +try{ + value; + $ERROR('#18: value is not defined'); +} +catch(e){ +} + +if(!(myObj.value === "value")){ + $ERROR('#19: myObj.value === "value". Actual: myObj.value ==='+ myObj.value ); +} diff --git a/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A1.2_T3.js b/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A1.2_T3.js new file mode 100644 index 000000000..ce73cf31e --- /dev/null +++ b/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A1.2_T3.js @@ -0,0 +1,150 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/** + * @name: S12.10_A1.2_T3; + * @section: 12.10; + * @assertion: The with statement adds a computed object to the front of the + * scope chain of the current execution context; + * @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 + */ +this.p1 = 1; +this.p2 = 2; +this.p3 = 3; +var result = "result"; +var myObj = {p1: 'a', + p2: 'b', + p3: 'c', + value: 'myObj_value', + valueOf : function(){return 'obj_valueOf';}, + parseInt : function(){return 'obj_parseInt';}, + NaN : 'obj_NaN', + Infinity : 'obj_Infinity', + eval : function(){return 'obj_eval';}, + parseFloat : function(){return 'obj_parseFloat';}, + isNaN : function(){return 'obj_isNaN';}, + isFinite : function(){return 'obj_isFinite';} +} +var del; +var st_p1 = "p1"; +var st_p2 = "p2"; +var st_p3 = "p3"; +var st_parseInt = "parseInt"; +var st_NaN = "NaN"; +var st_Infinity = "Infinity"; +var st_eval = "eval"; +var st_parseFloat = "parseFloat"; +var st_isNaN = "isNaN"; +var st_isFinite = "isFinite"; + +var f = function(){ + with(myObj){ + return value; + st_p1 = p1; + st_p2 = p2; + st_p3 = p3; + st_parseInt = parseInt; + st_NaN = NaN; + st_Infinity = Infinity; + st_eval = eval; + st_parseFloat = parseFloat; + st_isNaN = isNaN; + st_isFinite = isFinite; + p1 = 'x1'; + this.p2 = 'x2'; + del = delete p3; + var p4 = 'x4'; + p5 = 'x5'; + var value = 'value'; + } +} +result = f(); + +if(!(result === "myObj_value")){ + $ERROR('#0: result === "myObj_value". Actual: result ==='+ result ); +} + +if(!(p1 === 1)){ + $ERROR('#1: p1 === 1. Actual: p1 ==='+ p1 ); +} + +if(!(p2 === 2)){ + $ERROR('#2: p2 === 2. Actual: p2 ==='+ p2 ); +} + +if(!(p3 === 3)){ + $ERROR('#3: p3 === 3. Actual: p3 ==='+ p3 ); +} + +try { + p4; + $ERROR('#4: p4 is not defined'); +} catch(e) { +} + +try { + p5; + $ERROR('#5: p5 is not defined'); +} catch(e) { +} + +if(!(myObj.p1 === "a")){ + $ERROR('#6: myObj.p1 === "a". Actual: myObj.p1 ==='+ myObj.p1 ); +} + +if(!(myObj.p2 === "b")){ + $ERROR('#7: myObj.p2 === "b". Actual: myObj.p2 ==='+ myObj.p2 ); +} + +if(!(myObj.p3 === "c")){ + $ERROR('#8: myObj.p3 === "c". Actual: myObj.p3 ==='+ myObj.p3 ); +} + +if(!(myObj.p4 === undefined)){ + $ERROR('#9: myObj.p4 === undefined. Actual: myObj.p4 ==='+ myObj.p4 ); +} + +if(!(myObj.p5 === undefined)){ + $ERROR('#10: myObj.p5 === undefined. Actual: myObj.p5 ==='+ myObj.p5 ); +} + +if(!(st_parseInt === "parseInt")){ + $ERROR('#11: myObj.parseInt === "parseInt". Actual: myObj.parseInt ==='+ myObj.parseInt ); +} + +if(!(st_NaN === "NaN")){ + $ERROR('#12: st_NaN === "NaN". Actual: st_NaN ==='+ st_NaN ); +} + +if(!(st_Infinity === "Infinity")){ + $ERROR('#13: st_Infinity === "Infinity". Actual: st_Infinity ==='+ st_Infinity ); +} + +if(!(st_eval === "eval")){ + $ERROR('#14: st_eval === "eval". Actual: st_eval ==='+ st_eval ); +} + +if(!(st_parseFloat === "parseFloat")){ + $ERROR('#15: st_parseFloat === "parseFloat". Actual: st_parseFloat ==='+ st_parseFloat ); +} + +if(!(st_isNaN === "isNaN")){ + $ERROR('#16: st_isNaN === "isNaN". Actual: st_isNaN ==='+ st_isNaN ); +} + +if(!(st_isFinite === "isFinite")){ + $ERROR('#17: st_isFinite === "isFinite". Actual: st_isFinite ==='+ st_isFinite ); +} + +try{ + value; + $ERROR('#18: value is not defined'); +} +catch(e){ +} + +if(!(myObj.value === "myObj_value")){ + $ERROR('#19: myObj.value === "myObj_value". Actual: myObj.value ==='+ myObj.value ); +} + diff --git a/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A1.2_T4.js b/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A1.2_T4.js new file mode 100644 index 000000000..775df08f5 --- /dev/null +++ b/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A1.2_T4.js @@ -0,0 +1,151 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/** + * @name: S12.10_A1.2_T4; + * @section: 12.10; + * @assertion: The with statement adds a computed object to the front of the + * scope chain of the current execution context; + * @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 + */ +this.p1 = 1; +this.p2 = 2; +this.p3 = 3; +var result = "result"; +var myObj = {p1: 'a', + p2: 'b', + p3: 'c', + value: 'myObj_value', + valueOf : function(){return 'obj_valueOf';}, + parseInt : function(){return 'obj_parseInt';}, + NaN : 'obj_NaN', + Infinity : 'obj_Infinity', + eval : function(){return 'obj_eval';}, + parseFloat : function(){return 'obj_parseFloat';}, + isNaN : function(){return 'obj_isNaN';}, + isFinite : function(){return 'obj_isFinite';} +} +var del; +var st_p1 = "p1"; +var st_p2 = "p2"; +var st_p3 = "p3"; +var st_parseInt = "parseInt"; +var st_NaN = "NaN"; +var st_Infinity = "Infinity"; +var st_eval = "eval"; +var st_parseFloat = "parseFloat"; +var st_isNaN = "isNaN"; +var st_isFinite = "isFinite"; + +try { + var f = function(){ + with(myObj){ + st_p1 = p1; + st_p2 = p2; + st_p3 = p3; + st_parseInt = parseInt; + st_NaN = NaN; + st_Infinity = Infinity; + st_eval = eval; + st_parseFloat = parseFloat; + st_isNaN = isNaN; + st_isFinite = isFinite; + p1 = 'x1'; + this.p2 = 'x2'; + del = delete p3; + var p4 = 'x4'; + p5 = 'x5'; + var value = 'value'; + throw value; + } + } + f(); +} catch(e){ + result = e; +} + +if(!(result === "value")){ + $ERROR('#0: result === "value". Actual: result ==='+ result ); +} + +if(!(p1 === 1)){ + $ERROR('#1: p1 === 1. Actual: p1 ==='+ p1 ); +} + +if(!(p2 === "x2")){ + $ERROR('#2: p2 === "x2". Actual: p2 ==='+ p2 ); +} + +if(!(p3 === 3)){ + $ERROR('#3: p3 === 3. Actual: p3 ==='+ p3 ); +} + +try { + p4; + $ERROR('#4: p4 is not defined'); +} catch(e) { +} + +if(!(p5 === "x5")){ + $ERROR('#5: p5 === "x5". Actual: p5 ==='+ p5 ); +} + +if(!(myObj.p1 === "x1")){ + $ERROR('#6: myObj.p1 === "x1". Actual: myObj.p1 ==='+ myObj.p1 ); +} + +if(!(myObj.p2 === "b")){ + $ERROR('#7: myObj.p2 === "b". Actual: myObj.p2 ==='+ myObj.p2 ); +} + +if(!(myObj.p3 === undefined)){ + $ERROR('#8: myObj.p3 === undefined. Actual: myObj.p3 ==='+ myObj.p3 ); +} + +if(!(myObj.p4 === undefined)){ + $ERROR('#9: myObj.p4 === undefined. Actual: myObj.p4 ==='+ myObj.p4 ); +} + +if(!(myObj.p5 === undefined)){ + $ERROR('#10: myObj.p5 === undefined. Actual: myObj.p5 ==='+ myObj.p5 ); +} + +if(!(st_parseInt !== parseInt)){ + $ERROR('#11: myObj.parseInt !== parseInt'); +} + +if(!(st_NaN === "obj_NaN")){ + $ERROR('#12: myObj.NaN !== NaN'); +} + +if(!(st_Infinity !== Infinity)){ + $ERROR('#13: myObj.Infinity !== Infinity'); +} + +if(!(st_eval !== eval)){ + $ERROR('#14: myObj.eval !== eval'); +} + +if(!(st_parseFloat !== parseFloat)){ + $ERROR('#15: myObj.parseFloat !== parseFloat'); +} + +if(!(st_isNaN !== isNaN)){ + $ERROR('#16: myObj.isNaN !== isNaN'); +} + +if(!(st_isFinite !== isFinite)){ + $ERROR('#17: myObj.isFinite !== isFinite'); +} + +try{ + value; + $ERROR('#18: value is not defined'); +} +catch(e){ +} + +if(!(myObj.value === "value")){ + $ERROR('#19: myObj.value === "value". Actual: myObj.value ==='+ myObj.value ); +} diff --git a/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A1.2_T5.js b/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A1.2_T5.js new file mode 100644 index 000000000..884d4e696 --- /dev/null +++ b/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A1.2_T5.js @@ -0,0 +1,149 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/** + * @name: S12.10_A1.2_T5; + * @section: 12.10; + * @assertion: The with statement adds a computed object to the front of the + * scope chain of the current execution context; + * @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 + */ +this.p1 = 1; +this.p2 = 2; +this.p3 = 3; +var result = "result"; +var myObj = {p1: 'a', + p2: 'b', + p3: 'c', + value: 'myObj_value', + valueOf : function(){return 'obj_valueOf';}, + parseInt : function(){return 'obj_parseInt';}, + NaN : 'obj_NaN', + Infinity : 'obj_Infinity', + eval : function(){return 'obj_eval';}, + parseFloat : function(){return 'obj_parseFloat';}, + isNaN : function(){return 'obj_isNaN';}, + isFinite : function(){return 'obj_isFinite';} +} +var del; +var st_p1 = "p1"; +var st_p2 = "p2"; +var st_p3 = "p3"; +var st_parseInt = "parseInt"; +var st_NaN = "NaN"; +var st_Infinity = "Infinity"; +var st_eval = "eval"; +var st_parseFloat = "parseFloat"; +var st_isNaN = "isNaN"; +var st_isFinite = "isFinite"; + +try { + var f = function(){ + with(myObj){ + throw value; + st_p1 = p1; + st_p2 = p2; + st_p3 = p3; + st_parseInt = parseInt; + st_NaN = NaN; + st_Infinity = Infinity; + st_eval = eval; + st_parseFloat = parseFloat; + st_isNaN = isNaN; + st_isFinite = isFinite; + p1 = 'x1'; + this.p2 = 'x2'; + del = delete p3; + var p4 = 'x4'; + p5 = 'x5'; + var value = 'value'; + } + } + f(); +} catch(e){ + result = e; +} + +if(!(result === "myObj_value")){ + $ERROR('#0: result === "myObj_value". Actual: result ==='+ result ); +} + +if(!(p2 === 2)){ + $ERROR('#2: p2 === 2. Actual: p2 ==='+ p2 ); +} + +if(!(p3 === 3)){ + $ERROR('#3: p3 === 3. Actual: p3 ==='+ p3 ); +} + +try { + p4; + $ERROR('#4: p4 is not defined'); +} catch(e) { +} + +try { + p5; + $ERROR('#5: p5 is not defined'); +} catch(e) { +} + +if(!(myObj.p1 === "a")){ + $ERROR('#6: myObj.p1 === "a". Actual: myObj.p1 ==='+ myObj.p1 ); +} + +if(!(myObj.p2 === "b")){ + $ERROR('#7: myObj.p2 === "b". Actual: myObj.p2 ==='+ myObj.p2 ); +} + +if(!(myObj.p3 === "c")){ + $ERROR('#8: myObj.p3 === "c". Actual: myObj.p3 ==='+ myObj.p3 ); +} + +if(!(myObj.p4 === undefined)){ + $ERROR('#9: myObj.p4 === undefined. Actual: myObj.p4 ==='+ myObj.p4 ); +} + +if(!(myObj.p5 === undefined)){ + $ERROR('#10: myObj.p5 === undefined. Actual: myObj.p5 ==='+ myObj.p5 ); +} + +if(!(st_parseInt === "parseInt")){ + $ERROR('#11: myObj.parseInt === "parseInt". Actual: myObj.parseInt ==='+ myObj.parseInt ); +} + +if(!(st_NaN === "NaN")){ + $ERROR('#12: st_NaN === "NaN". Actual: st_NaN ==='+ st_NaN ); +} + +if(!(st_Infinity === "Infinity")){ + $ERROR('#13: st_Infinity === "Infinity". Actual: st_Infinity ==='+ st_Infinity ); +} + +if(!(st_eval === "eval")){ + $ERROR('#14: st_eval === "eval". Actual: st_eval ==='+ st_eval ); +} + +if(!(st_parseFloat === "parseFloat")){ + $ERROR('#15: st_parseFloat === "parseFloat". Actual: st_parseFloat ==='+ st_parseFloat ); +} + +if(!(st_isNaN === "isNaN")){ + $ERROR('#16: st_isNaN === "isNaN". Actual: st_isNaN ==='+ st_isNaN ); +} + +if(!(st_isFinite === "isFinite")){ + $ERROR('#17: st_isFinite === "isFinite". Actual: st_isFinite ==='+ st_isFinite ); +} + +try{ + value; + $ERROR('#18: value is not defined'); +} +catch(e){ +} + +if(!(myObj.value === "myObj_value")){ + $ERROR('#19: myObj.value === "myObj_value". Actual: myObj.value ==='+ myObj.value ); +} diff --git a/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A1.3_T1.js b/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A1.3_T1.js new file mode 100644 index 000000000..f8ce3c02c --- /dev/null +++ b/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A1.3_T1.js @@ -0,0 +1,142 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/** + * @name: S12.10_A1.3_T1; + * @section: 12.10; + * @assertion: The with statement adds a computed object to the front of the + * scope chain of the current execution context; + * @description: Using "with" statement within function constructor, leading to normal completition; + * @strict_mode_negative +*/ +this.p1 = 1; +this.p2 = 2; +this.p3 = 3; +var result = "result"; +var myObj = {p1: 'a', + p2: 'b', + p3: 'c', + value: 'myObj_value', + valueOf : function(){return 'obj_valueOf';}, + parseInt : function(){return 'obj_parseInt';}, + NaN : 'obj_NaN', + Infinity : 'obj_Infinity', + eval : function(){return 'obj_eval';}, + parseFloat : function(){return 'obj_parseFloat';}, + isNaN : function(){return 'obj_isNaN';}, + isFinite : function(){return 'obj_isFinite';} +} +var del; +var st_p1 = "p1"; +var st_p2 = "p2"; +var st_p3 = "p3"; +var st_parseInt = "parseInt"; +var st_NaN = "NaN"; +var st_Infinity = "Infinity"; +var st_eval = "eval"; +var st_parseFloat = "parseFloat"; +var st_isNaN = "isNaN"; +var st_isFinite = "isFinite"; + +var f = function(){ + with(myObj){ + st_p1 = p1; + st_p2 = p2; + st_p3 = p3; + st_parseInt = parseInt; + st_NaN = NaN; + st_Infinity = Infinity; + st_eval = eval; + st_parseFloat = parseFloat; + st_isNaN = isNaN; + st_isFinite = isFinite; + p1 = 'x1'; + this.p2 = 'x2'; + del = delete p3; + var p4 = 'x4'; + p5 = 'x5'; + var value = 'value'; + } +} +var obj = new f(); + +if(!(p1 === 1)){ + $ERROR('#1: p1 === 1. Actual: p1 ==='+ p1 ); +} + +if(!(p2 === 2)){ + $ERROR('#2: p2 === 2. Actual: p2 ==='+ p2 ); +} + +if(!(p3 === 3)){ + $ERROR('#3: p3 === 3. Actual: p3 ==='+ p3 ); +} + +try { + p4; + $ERROR('#4: p4 is not defined'); +} catch(e) { +} + +if(!(p5 === "x5")){ + $ERROR('#5: p5 === "x5". Actual: p5 ==='+ p5 ); +} + +if(!(myObj.p1 === "x1")){ + $ERROR('#6: myObj.p1 === "x1". Actual: myObj.p1 ==='+ myObj.p1 ); +} + +if(!(myObj.p2 === "b")){ + $ERROR('#7: myObj.p2 === "b". Actual: myObj.p2 ==='+ myObj.p2 ); +} + +if(!(myObj.p3 === undefined)){ + $ERROR('#8: myObj.p3 === undefined. Actual: myObj.p3 ==='+ myObj.p3 ); +} + +if(!(myObj.p4 === undefined)){ + $ERROR('#9: myObj.p4 === undefined. Actual: myObj.p4 ==='+ myObj.p4 ); +} + +if(!(myObj.p5 === undefined)){ + $ERROR('#10: myObj.p5 === undefined. Actual: myObj.p5 ==='+ myObj.p5 ); +} + +if(!(st_parseInt !== parseInt)){ + $ERROR('#11: myObj.parseInt !== parseInt'); +} + +if(!(st_NaN === "obj_NaN")){ + $ERROR('#12: myObj.NaN !== NaN'); +} + +if(!(st_Infinity !== Infinity)){ + $ERROR('#13: myObj.Infinity !== Infinity'); +} + +if(!(st_eval !== eval)){ + $ERROR('#14: myObj.eval !== eval'); +} + +if(!(st_parseFloat !== parseFloat)){ + $ERROR('#15: myObj.parseFloat !== parseFloat'); +} + +if(!(st_isNaN !== isNaN)){ + $ERROR('#16: myObj.isNaN !== isNaN'); +} + +if(!(st_isFinite !== isFinite)){ + $ERROR('#17: myObj.isFinite !== isFinite'); +} + +try{ + value; + $ERROR('#18: value is not defined'); +} +catch(e){ +} + +if(!(myObj.value === "value")){ + $ERROR('#19: myObj.value === "value". Actual: myObj.value ==='+ myObj.value ); +} diff --git a/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A1.3_T2.js b/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A1.3_T2.js new file mode 100644 index 000000000..22fa94bb0 --- /dev/null +++ b/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A1.3_T2.js @@ -0,0 +1,143 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/** + * @name: S12.10_A1.3_T2; + * @section: 12.10; + * @assertion: The with statement adds a computed object to the front of the + * scope chain of the current execution context; + * @description: Using "with" statement within function constructor, leading to normal completition by "return"; + * @strict_mode_negative + */ +this.p1 = 1; +this.p2 = 2; +this.p3 = 3; +var result = "result"; +var myObj = {p1: 'a', + p2: 'b', + p3: 'c', + value: 'myObj_value', + valueOf : function(){return 'obj_valueOf';}, + parseInt : function(){return 'obj_parseInt';}, + NaN : 'obj_NaN', + Infinity : 'obj_Infinity', + eval : function(){return 'obj_eval';}, + parseFloat : function(){return 'obj_parseFloat';}, + isNaN : function(){return 'obj_isNaN';}, + isFinite : function(){return 'obj_isFinite';} +} +var del; +var st_p1 = "p1"; +var st_p2 = "p2"; +var st_p3 = "p3"; +var st_parseInt = "parseInt"; +var st_NaN = "NaN"; +var st_Infinity = "Infinity"; +var st_eval = "eval"; +var st_parseFloat = "parseFloat"; +var st_isNaN = "isNaN"; +var st_isFinite = "isFinite"; + +var f = function(){ + with(myObj){ + st_p1 = p1; + st_p2 = p2; + st_p3 = p3; + st_parseInt = parseInt; + st_NaN = NaN; + st_Infinity = Infinity; + st_eval = eval; + st_parseFloat = parseFloat; + st_isNaN = isNaN; + st_isFinite = isFinite; + p1 = 'x1'; + this.p2 = 'x2'; + del = delete p3; + var p4 = 'x4'; + p5 = 'x5'; + var value = 'value'; + return value; + } +} +var obj = new f(); + +if(!(p1 === 1)){ + $ERROR('#1: p1 === 1. Actual: p1 ==='+ p1 ); +} + +if(!(p2 === 2)){ + $ERROR('#2: p2 === 2. Actual: p2 ==='+ p2 ); +} + +if(!(p3 === 3)){ + $ERROR('#3: p3 === 3. Actual: p3 ==='+ p3 ); +} + +try { + p4; + $ERROR('#4: p4 is not defined'); +} catch(e) { +} + +if(!(p5 === "x5")){ + $ERROR('#5: p5 === "x5". Actual: p5 ==='+ p5 ); +} + +if(!(myObj.p1 === "x1")){ + $ERROR('#6: myObj.p1 === "x1". Actual: myObj.p1 ==='+ myObj.p1 ); +} + +if(!(myObj.p2 === "b")){ + $ERROR('#7: myObj.p2 === "b". Actual: myObj.p2 ==='+ myObj.p2 ); +} + +if(!(myObj.p3 === undefined)){ + $ERROR('#8: myObj.p3 === undefined. Actual: myObj.p3 ==='+ myObj.p3 ); +} + +if(!(myObj.p4 === undefined)){ + $ERROR('#9: myObj.p4 === undefined. Actual: myObj.p4 ==='+ myObj.p4 ); +} + +if(!(myObj.p5 === undefined)){ + $ERROR('#10: myObj.p5 === undefined. Actual: myObj.p5 ==='+ myObj.p5 ); +} + +if(!(st_parseInt !== parseInt)){ + $ERROR('#11: myObj.parseInt !== parseInt'); +} + +if(!(st_NaN === "obj_NaN")){ + $ERROR('#12: myObj.NaN !== NaN'); +} + +if(!(st_Infinity !== Infinity)){ + $ERROR('#13: myObj.Infinity !== Infinity'); +} + +if(!(st_eval !== eval)){ + $ERROR('#14: myObj.eval !== eval'); +} + +if(!(st_parseFloat !== parseFloat)){ + $ERROR('#15: myObj.parseFloat !== parseFloat'); +} + +if(!(st_isNaN !== isNaN)){ + $ERROR('#16: myObj.isNaN !== isNaN'); +} + +if(!(st_isFinite !== isFinite)){ + $ERROR('#17: myObj.isFinite !== isFinite'); +} + +try{ + value; + $ERROR('#18: value is not defined'); +} +catch(e){ +} + +if(!(myObj.value === "value")){ + $ERROR('#19: myObj.value === "value". Actual: myObj.value ==='+ myObj.value ); +} diff --git a/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A1.3_T3.js b/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A1.3_T3.js new file mode 100644 index 000000000..c66601348 --- /dev/null +++ b/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A1.3_T3.js @@ -0,0 +1,146 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/** + * @name: S12.10_A1.3_T3; + * @section: 12.10; + * @assertion: The with statement adds a computed object to the front of the + * scope chain of the current execution context; + * @description: Using "with" statement within function constructor, leading to normal completition by "return"; + * @strict_mode_negative + */ +this.p1 = 1; +this.p2 = 2; +this.p3 = 3; +var result = "result"; +var myObj = {p1: 'a', + p2: 'b', + p3: 'c', + value: 'myObj_value', + valueOf : function(){return 'obj_valueOf';}, + parseInt : function(){return 'obj_parseInt';}, + NaN : 'obj_NaN', + Infinity : 'obj_Infinity', + eval : function(){return 'obj_eval';}, + parseFloat : function(){return 'obj_parseFloat';}, + isNaN : function(){return 'obj_isNaN';}, + isFinite : function(){return 'obj_isFinite';} +} +var del; +var st_p1 = "p1"; +var st_p2 = "p2"; +var st_p3 = "p3"; +var st_parseInt = "parseInt"; +var st_NaN = "NaN"; +var st_Infinity = "Infinity"; +var st_eval = "eval"; +var st_parseFloat = "parseFloat"; +var st_isNaN = "isNaN"; +var st_isFinite = "isFinite"; + +var f = function(){ + with(myObj){ + return value; + st_p1 = p1; + st_p2 = p2; + st_p3 = p3; + st_parseInt = parseInt; + st_NaN = NaN; + st_Infinity = Infinity; + st_eval = eval; + st_parseFloat = parseFloat; + st_isNaN = isNaN; + st_isFinite = isFinite; + p1 = 'x1'; + this.p2 = 'x2'; + del = delete p3; + var p4 = 'x4'; + p5 = 'x5'; + var value = 'value'; + } +} +var obj = new f(); + +if(!(p1 === 1)){ + $ERROR('#1: p1 === 1. Actual: p1 ==='+ p1 ); +} + +if(!(p2 === 2)){ + $ERROR('#2: p2 === 2. Actual: p2 ==='+ p2 ); +} + +if(!(p3 === 3)){ + $ERROR('#3: p3 === 3. Actual: p3 ==='+ p3 ); +} + +try { + p4; + $ERROR('#4: p4 is not defined'); +} catch(e) { +} + +try { + p5; + $ERROR('#5: p5 is not defined'); +} catch(e) { +} + +if(!(myObj.p1 === "a")){ + $ERROR('#6: myObj.p1 === "a". Actual: myObj.p1 ==='+ myObj.p1 ); +} + +if(!(myObj.p2 === "b")){ + $ERROR('#7: myObj.p2 === "b". Actual: myObj.p2 ==='+ myObj.p2 ); +} + +if(!(myObj.p3 === "c")){ + $ERROR('#8: myObj.p3 === "c". Actual: myObj.p3 ==='+ myObj.p3 ); +} + +if(!(myObj.p4 === undefined)){ + $ERROR('#9: myObj.p4 === undefined. Actual: myObj.p4 ==='+ myObj.p4 ); +} + +if(!(myObj.p5 === undefined)){ + $ERROR('#10: myObj.p5 === undefined. Actual: myObj.p5 ==='+ myObj.p5 ); +} + +if(!(st_parseInt === "parseInt")){ + $ERROR('#11: myObj.parseInt === "parseInt". Actual: myObj.parseInt ==='+ myObj.parseInt ); +} + +if(!(st_NaN === "NaN")){ + $ERROR('#12: st_NaN === "NaN". Actual: st_NaN ==='+ st_NaN ); +} + +if(!(st_Infinity === "Infinity")){ + $ERROR('#13: st_Infinity === "Infinity". Actual: st_Infinity ==='+ st_Infinity ); +} + +if(!(st_eval === "eval")){ + $ERROR('#14: st_eval === "eval". Actual: st_eval ==='+ st_eval ); +} + +if(!(st_parseFloat === "parseFloat")){ + $ERROR('#15: st_parseFloat === "parseFloat". Actual: st_parseFloat ==='+ st_parseFloat ); +} + +if(!(st_isNaN === "isNaN")){ + $ERROR('#16: st_isNaN === "isNaN". Actual: st_isNaN ==='+ st_isNaN ); +} + +if(!(st_isFinite === "isFinite")){ + $ERROR('#17: st_isFinite === "isFinite". Actual: st_isFinite ==='+ st_isFinite ); +} + +try{ + value; + $ERROR('#18: value is not defined'); +} +catch(e){ +} + +if(!(myObj.value === "myObj_value")){ + $ERROR('#19: myObj.value === "myObj_value". Actual: myObj.value ==='+ myObj.value ); +} + diff --git a/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A1.3_T4.js b/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A1.3_T4.js new file mode 100644 index 000000000..168ecfc14 --- /dev/null +++ b/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A1.3_T4.js @@ -0,0 +1,147 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/** + * @name: S12.10_A1.3_T4; + * @section: 12.10; + * @assertion: The with statement adds a computed object to the front of the + * scope chain of the current execution context; + * @description: Using "with" statement within function constructor, leading to completition by exception; + * @strict_mode_negative + */ +this.p1 = 1; +this.p2 = 2; +this.p3 = 3; +var result = "result"; +var myObj = {p1: 'a', + p2: 'b', + p3: 'c', + value: 'myObj_value', + valueOf : function(){return 'obj_valueOf';}, + parseInt : function(){return 'obj_parseInt';}, + NaN : 'obj_NaN', + Infinity : 'obj_Infinity', + eval : function(){return 'obj_eval';}, + parseFloat : function(){return 'obj_parseFloat';}, + isNaN : function(){return 'obj_isNaN';}, + isFinite : function(){return 'obj_isFinite';} +} +var del; +var st_p1 = "p1"; +var st_p2 = "p2"; +var st_p3 = "p3"; +var st_parseInt = "parseInt"; +var st_NaN = "NaN"; +var st_Infinity = "Infinity"; +var st_eval = "eval"; +var st_parseFloat = "parseFloat"; +var st_isNaN = "isNaN"; +var st_isFinite = "isFinite"; + +try { + var f = function(){ + with(myObj){ + st_p1 = p1; + st_p2 = p2; + st_p3 = p3; + st_parseInt = parseInt; + st_NaN = NaN; + st_Infinity = Infinity; + st_eval = eval; + st_parseFloat = parseFloat; + st_isNaN = isNaN; + st_isFinite = isFinite; + p1 = 'x1'; + this.p2 = 'x2'; + del = delete p3; + var p4 = 'x4'; + p5 = 'x5'; + var value = 'value'; + throw value; + } + } + var obj = new f(); +} catch(e){ + result = e; +} + +if(!(result === "value")){ + $ERROR('#0: result === "value". Actual: result ==='+ result ); +} + +if(!(p1 === 1)){ + $ERROR('#1: p1 === 1. Actual: p1 ==='+ p1 ); +} + +if(!(p2 === 2)){ + $ERROR('#2: p2 === 2. Actual: p2 ==='+ p2 ); +} + +try { + p4; + $ERROR('#4: p4 is not defined'); +} catch(e) { +} + +if(!(p5 === "x5")){ + $ERROR('#5: p5 === "x5". Actual: p5 ==='+ p5 ); +} + +if(!(myObj.p1 === "x1")){ + $ERROR('#6: myObj.p1 === "x1". Actual: myObj.p1 ==='+ myObj.p1 ); +} + +if(!(myObj.p2 === "b")){ + $ERROR('#7: myObj.p2 === "b". Actual: myObj.p2 ==='+ myObj.p2 ); +} + +if(!(myObj.p3 === undefined)){ + $ERROR('#8: myObj.p3 === undefined. Actual: myObj.p3 ==='+ myObj.p3 ); +} + +if(!(myObj.p4 === undefined)){ + $ERROR('#9: myObj.p4 === undefined. Actual: myObj.p4 ==='+ myObj.p4 ); +} + +if(!(myObj.p5 === undefined)){ + $ERROR('#10: myObj.p5 === undefined. Actual: myObj.p5 ==='+ myObj.p5 ); +} + +if(!(st_parseInt !== parseInt)){ + $ERROR('#11: myObj.parseInt !== parseInt'); +} + +if(!(st_NaN === "obj_NaN")){ + $ERROR('#12: myObj.NaN !== NaN'); +} + +if(!(st_Infinity !== Infinity)){ + $ERROR('#13: myObj.Infinity !== Infinity'); +} + +if(!(st_eval !== eval)){ + $ERROR('#14: myObj.eval !== eval'); +} + +if(!(st_parseFloat !== parseFloat)){ + $ERROR('#15: myObj.parseFloat !== parseFloat'); +} + +if(!(st_isNaN !== isNaN)){ + $ERROR('#16: myObj.isNaN !== isNaN'); +} + +if(!(st_isFinite !== isFinite)){ + $ERROR('#17: myObj.isFinite !== isFinite'); +} + +try{ + value; + $ERROR('#18: value is not defined'); +} +catch(e){ +} + +if(!(myObj.value === "value")){ + $ERROR('#19: myObj.value === "value". Actual: myObj.value ==='+ myObj.value ); +} diff --git a/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A1.3_T5.js b/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A1.3_T5.js new file mode 100644 index 000000000..3f88e55bf --- /dev/null +++ b/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A1.3_T5.js @@ -0,0 +1,154 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/** + * @name: S12.10_A1.3_T5; + * @section: 12.10; + * @assertion: The with statement adds a computed object to the front of the + * scope chain of the current execution context; + * @description: Using "with" statement within function constructor, leading to completition by exception; + * @strict_mode_negative + */ +this.p1 = 1; +this.p2 = 2; +this.p3 = 3; +var result = "result"; +var myObj = {p1: 'a', + p2: 'b', + p3: 'c', + value: 'myObj_value', + valueOf : function(){return 'obj_valueOf';}, + parseInt : function(){return 'obj_parseInt';}, + NaN : 'obj_NaN', + Infinity : 'obj_Infinity', + eval : function(){return 'obj_eval';}, + parseFloat : function(){return 'obj_parseFloat';}, + isNaN : function(){return 'obj_isNaN';}, + isFinite : function(){return 'obj_isFinite';} +} +var del; +var st_p1 = "p1"; +var st_p2 = "p2"; +var st_p3 = "p3"; +var st_parseInt = "parseInt"; +var st_NaN = "NaN"; +var st_Infinity = "Infinity"; +var st_eval = "eval"; +var st_parseFloat = "parseFloat"; +var st_isNaN = "isNaN"; +var st_isFinite = "isFinite"; + +try { + var f = function(){ + with(myObj){ + throw value; + st_p1 = p1; + st_p2 = p2; + st_p3 = p3; + st_parseInt = parseInt; + st_NaN = NaN; + st_Infinity = Infinity; + st_eval = eval; + st_parseFloat = parseFloat; + st_isNaN = isNaN; + st_isFinite = isFinite; + p1 = 'x1'; + this.p2 = 'x2'; + del = delete p3; + var p4 = 'x4'; + p5 = 'x5'; + var value = 'value'; + } + } + var obj = new f(); +} catch(e){ + result = e; +} + +if(!(result === "myObj_value")){ + $ERROR('#0: result === "myObj_value". Actual: result ==='+ result ); +} + +if(!(p1 === 1)){ + $ERROR('#1: p1 === 1. Actual: p1 ==='+ p1 ); +} + +if(!(p2 === 2)){ + $ERROR('#2: p2 === 2. Actual: p2 ==='+ p2 ); +} + +if(!(p3 === 3)){ + $ERROR('#3: p3 === 3. Actual: p3 ==='+ p3 ); +} + +try { + p4; + $ERROR('#4: p4 is not defined'); +} catch(e) { +} + +try { + p5; + $ERROR('#5: p5 is not defined'); +} catch(e) { +} + +if(!(myObj.p1 === "a")){ + $ERROR('#6: myObj.p1 === "a". Actual: myObj.p1 ==='+ myObj.p1 ); +} + +if(!(myObj.p2 === "b")){ + $ERROR('#7: myObj.p2 === "b". Actual: myObj.p2 ==='+ myObj.p2 ); +} + +if(!(myObj.p3 === "c")){ + $ERROR('#8: myObj.p3 === "c". Actual: myObj.p3 ==='+ myObj.p3 ); +} + +if(!(myObj.p4 === undefined)){ + $ERROR('#9: myObj.p4 === undefined. Actual: myObj.p4 ==='+ myObj.p4 ); +} + +if(!(myObj.p5 === undefined)){ + $ERROR('#10: myObj.p5 === undefined. Actual: myObj.p5 ==='+ myObj.p5 ); +} + +if(!(st_parseInt === "parseInt")){ + $ERROR('#11: myObj.parseInt === "parseInt". Actual: myObj.parseInt ==='+ myObj.parseInt ); +} + +if(!(st_NaN === "NaN")){ + $ERROR('#12: st_NaN === "NaN". Actual: st_NaN ==='+ st_NaN ); +} + +if(!(st_Infinity === "Infinity")){ + $ERROR('#13: st_Infinity === "Infinity". Actual: st_Infinity ==='+ st_Infinity ); +} + +if(!(st_eval === "eval")){ + $ERROR('#14: st_eval === "eval". Actual: st_eval ==='+ st_eval ); +} + +if(!(st_parseFloat === "parseFloat")){ + $ERROR('#15: st_parseFloat === "parseFloat". Actual: st_parseFloat ==='+ st_parseFloat ); +} + +if(!(st_isNaN === "isNaN")){ + $ERROR('#16: st_isNaN === "isNaN". Actual: st_isNaN ==='+ st_isNaN ); +} + +if(!(st_isFinite === "isFinite")){ + $ERROR('#17: st_isFinite === "isFinite". Actual: st_isFinite ==='+ st_isFinite ); +} + +try{ + value; + $ERROR('#18: value is not defined'); +} +catch(e){ +} + +if(!(myObj.value === "myObj_value")){ + $ERROR('#19: myObj.value === "myObj_value". Actual: myObj.value ==='+ myObj.value ); +} + diff --git a/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A1.4_T1.js b/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A1.4_T1.js new file mode 100644 index 000000000..7108acda2 --- /dev/null +++ b/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A1.4_T1.js @@ -0,0 +1,137 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/** + * @name: S12.10_A1.4_T1; + * @section: 12.10; + * @assertion: The with statement adds a computed object to the front of the + * scope chain of the current execution context; + * @description: Using "with" statement within iteration statement, leading to normal completion; + * @strict_mode_negative + */ +this.p1 = 1; +this.p2 = 2; +this.p3 = 3; +var result = "result"; +var myObj = {p1: 'a', + p2: 'b', + p3: 'c', + value: 'myObj_value', + valueOf : function(){return 'obj_valueOf';}, + parseInt : function(){return 'obj_parseInt';}, + NaN : 'obj_NaN', + Infinity : 'obj_Infinity', + eval : function(){return 'obj_eval';}, + parseFloat : function(){return 'obj_parseFloat';}, + isNaN : function(){return 'obj_isNaN';}, + isFinite : function(){return 'obj_isFinite';} +} +var del; +var st_p1 = "p1"; +var st_p2 = "p2"; +var st_p3 = "p3"; +var st_parseInt = "parseInt"; +var st_NaN = "NaN"; +var st_Infinity = "Infinity"; +var st_eval = "eval"; +var st_parseFloat = "parseFloat"; +var st_isNaN = "isNaN"; +var st_isFinite = "isFinite"; + +do{ + with(myObj){ + st_p1 = p1; + st_p2 = p2; + st_p3 = p3; + st_parseInt = parseInt; + st_NaN = NaN; + st_Infinity = Infinity; + st_eval = eval; + st_parseFloat = parseFloat; + st_isNaN = isNaN; + st_isFinite = isFinite; + p1 = 'x1'; + this.p2 = 'x2'; + del = delete p3; + var p4 = 'x4'; + p5 = 'x5'; + var value = 'value'; + } +} +while(false); + +if(!(p1 === 1)){ + $ERROR('#1: p1 === 1. Actual: p1 ==='+ p1 ); +} + +if(!(p2 === "x2")){ + $ERROR('#2: p2 === "x2". Actual: p2 ==='+ p2 ); +} + +if(!(p3 === 3)){ + $ERROR('#3: p3 === 3. Actual: p3 ==='+ p3 ); +} + +if(!(p4 === "x4")){ + $ERROR('#4: p4 === "x4". Actual: p4 ==='+ p4 ); +} + +if(!(p5 === "x5")){ + $ERROR('#5: p5 === "x5". Actual: p5 ==='+ p5 ); +} + +if(!(myObj.p1 === "x1")){ + $ERROR('#6: myObj.p1 === "x1". Actual: myObj.p1 ==='+ myObj.p1 ); +} + +if(!(myObj.p2 === "b")){ + $ERROR('#7: myObj.p2 === "b". Actual: myObj.p2 ==='+ myObj.p2 ); +} + +if(!(myObj.p3 === undefined)){ + $ERROR('#8: myObj.p3 === undefined. Actual: myObj.p3 ==='+ myObj.p3 ); +} + +if(!(myObj.p4 === undefined)){ + $ERROR('#9: myObj.p4 === undefined. Actual: myObj.p4 ==='+ myObj.p4 ); +} + +if(!(myObj.p5 === undefined)){ + $ERROR('#10: myObj.p5 === undefined. Actual: myObj.p5 ==='+ myObj.p5 ); +} + +if(!(st_parseInt !== parseInt)){ + $ERROR('#11: myObj.parseInt !== parseInt'); +} + +if(!(st_NaN === "obj_NaN")){ + $ERROR('#12: myObj.NaN !== NaN'); +} + +if(!(st_Infinity !== Infinity)){ + $ERROR('#13: myObj.Infinity !== Infinity'); +} + +if(!(st_eval !== eval)){ + $ERROR('#14: myObj.eval !== eval'); +} + +if(!(st_parseFloat !== parseFloat)){ + $ERROR('#15: myObj.parseFloat !== parseFloat'); +} + +if(!(st_isNaN !== isNaN)){ + $ERROR('#16: myObj.isNaN !== isNaN'); +} + +if(!(st_isFinite !== isFinite)){ + $ERROR('#17: myObj.isFinite !== isFinite'); +} + +if(!(value === undefined)){ + $ERROR('#18: value === undefined. Actual: value ==='+ value ); +} + +if(!(myObj.value === "value")){ + $ERROR('#19: myObj.value === "value". Actual: myObj.value ==='+ myObj.value ); +} diff --git a/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A1.4_T2.js b/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A1.4_T2.js new file mode 100644 index 000000000..511075e22 --- /dev/null +++ b/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A1.4_T2.js @@ -0,0 +1,146 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/** + * @name: S12.10_A1.4_T2; + * @section: 12.10; + * @assertion: The with statement adds a computed object to the front of the + * scope chain of the current execution context; + * @description: Using "with" statement within iteration statement, leading to completion by exception; + * @strict_mode_negative + */ +this.p1 = 1; +this.p2 = 2; +this.p3 = 3; +var result = "result"; +var myObj = {p1: 'a', + p2: 'b', + p3: 'c', + value: 'myObj_value', + valueOf : function(){return 'obj_valueOf';}, + parseInt : function(){return 'obj_parseInt';}, + NaN : 'obj_NaN', + Infinity : 'obj_Infinity', + eval : function(){return 'obj_eval';}, + parseFloat : function(){return 'obj_parseFloat';}, + isNaN : function(){return 'obj_isNaN';}, + isFinite : function(){return 'obj_isFinite';} +} +var del; +var st_p1 = "p1"; +var st_p2 = "p2"; +var st_p3 = "p3"; +var st_parseInt = "parseInt"; +var st_NaN = "NaN"; +var st_Infinity = "Infinity"; +var st_eval = "eval"; +var st_parseFloat = "parseFloat"; +var st_isNaN = "isNaN"; +var st_isFinite = "isFinite"; + +try { + do{ + with(myObj){ + st_p1 = p1; + st_p2 = p2; + st_p3 = p3; + st_parseInt = parseInt; + st_NaN = NaN; + st_Infinity = Infinity; + st_eval = eval; + st_parseFloat = parseFloat; + st_isNaN = isNaN; + st_isFinite = isFinite; + p1 = 'x1'; + this.p2 = 'x2'; + del = delete p3; + var p4 = 'x4'; + p5 = 'x5'; + var value = 'value'; + throw value; + } + } + while(false); +} catch(e){ + result = e; +} + +if(!(result === "value")){ + $ERROR('#0: result === "value". Actual: result ==='+ result ); +} + +if(!(p1 === 1)){ + $ERROR('#1: p1 === 1. Actual: p1 ==='+ p1 ); +} + +if(!(p2 === "x2")){ + $ERROR('#2: p2 === "x2". Actual: p2 ==='+ p2 ); +} + +if(!(p3 === 3)){ + $ERROR('#3: p3 === 3. Actual: p3 ==='+ p3 ); +} + +if(!(p4 === "x4")){ + $ERROR('#4: p4 === "x4". Actual: p4 ==='+ p4 ); +} + +if(!(p5 === "x5")){ + $ERROR('#5: p5 === "x5". Actual: p5 ==='+ p5 ); +} + +if(!(myObj.p1 === "x1")){ + $ERROR('#6: myObj.p1 === "x1". Actual: myObj.p1 ==='+ myObj.p1 ); +} + +if(!(myObj.p2 === "b")){ + $ERROR('#7: myObj.p2 === "b". Actual: myObj.p2 ==='+ myObj.p2 ); +} + +if(!(myObj.p3 === undefined)){ + $ERROR('#8: myObj.p3 === undefined. Actual: myObj.p3 ==='+ myObj.p3 ); +} + +if(!(myObj.p4 === undefined)){ + $ERROR('#9: myObj.p4 === undefined. Actual: myObj.p4 ==='+ myObj.p4 ); +} + +if(!(myObj.p5 === undefined)){ + $ERROR('#10: myObj.p5 === undefined. Actual: myObj.p5 ==='+ myObj.p5 ); +} + +if(!(st_parseInt !== parseInt)){ + $ERROR('#11: myObj.parseInt !== parseInt'); +} + +if(!(st_NaN === "obj_NaN")){ + $ERROR('#12: myObj.NaN !== NaN'); +} + +if(!(st_Infinity !== Infinity)){ + $ERROR('#13: myObj.Infinity !== Infinity'); +} + +if(!(st_eval !== eval)){ + $ERROR('#14: myObj.eval !== eval'); +} + +if(!(st_parseFloat !== parseFloat)){ + $ERROR('#15: myObj.parseFloat !== parseFloat'); +} + +if(!(st_isNaN !== isNaN)){ + $ERROR('#16: myObj.isNaN !== isNaN'); +} + +if(!(st_isFinite !== isFinite)){ + $ERROR('#17: myObj.isFinite !== isFinite'); +} + +if(!(value === undefined)){ + $ERROR('#18: value === undefined. Actual: value ==='+ value ); +} + +if(!(myObj.value === "value")){ + $ERROR('#19: myObj.value === "value". Actual: myObj.value ==='+ myObj.value ); +} diff --git a/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A1.4_T3.js b/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A1.4_T3.js new file mode 100644 index 000000000..0fcbf5d0c --- /dev/null +++ b/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A1.4_T3.js @@ -0,0 +1,148 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/** + * @name: S12.10_A1.4_T3; + * @section: 12.10; + * @assertion: The with statement adds a computed object to the front of the + * scope chain of the current execution context; + * @description: Using "with" statement within iteration statement, leading to completion by exception; + * @strict_mode_negative + */ +this.p1 = 1; +this.p2 = 2; +this.p3 = 3; +var result = "result"; +var myObj = {p1: 'a', + p2: 'b', + p3: 'c', + value: 'myObj_value', + valueOf : function(){return 'obj_valueOf';}, + parseInt : function(){return 'obj_parseInt';}, + NaN : 'obj_NaN', + Infinity : 'obj_Infinity', + eval : function(){return 'obj_eval';}, + parseFloat : function(){return 'obj_parseFloat';}, + isNaN : function(){return 'obj_isNaN';}, + isFinite : function(){return 'obj_isFinite';} +} +var del; +var st_p1 = "p1"; +var st_p2 = "p2"; +var st_p3 = "p3"; +var st_parseInt = "parseInt"; +var st_NaN = "NaN"; +var st_Infinity = "Infinity"; +var st_eval = "eval"; +var st_parseFloat = "parseFloat"; +var st_isNaN = "isNaN"; +var st_isFinite = "isFinite"; + +try { + do{ + with(myObj){ + throw value; + st_p1 = p1; + st_p2 = p2; + st_p3 = p3; + st_parseInt = parseInt; + st_NaN = NaN; + st_Infinity = Infinity; + st_eval = eval; + st_parseFloat = parseFloat; + st_isNaN = isNaN; + st_isFinite = isFinite; + p1 = 'x1'; + this.p2 = 'x2'; + del = delete p3; + var p4 = 'x4'; + p5 = 'x5'; + var value = 'value'; + } + } + while(false); +} catch(e){ + result = e; +} + +if(!(result === "myObj_value")){ + $ERROR('#0: result === "myObj_value". Actual: result ==='+ result ); +} + +if(!(p1 === 1)){ + $ERROR('#1: p1 === 1. Actual: p1 ==='+ p1 ); +} + +if(!(p2 === 2)){ + $ERROR('#2: p2 === 2. Actual: p2 ==='+ p2 ); +} + +if(!(p3 === 3)){ + $ERROR('#3: p3 === 3. Actual: p3 ==='+ p3 ); +} + +if(!(p4 === undefined)){ + $ERROR('#4: p4 === undefined. Actual: p4 ==='+ p4 ); +} + +try { + p5; + $ERROR('#5: p5 is not defined'); +} catch(e) { +} + +if(!(myObj.p1 === "a")){ + $ERROR('#6: myObj.p1 === "a". Actual: myObj.p1 ==='+ myObj.p1 ); +} + +if(!(myObj.p2 === "b")){ + $ERROR('#7: myObj.p2 === "b". Actual: myObj.p2 ==='+ myObj.p2 ); +} + +if(!(myObj.p3 === "c")){ + $ERROR('#8: myObj.p3 === "c". Actual: myObj.p3 ==='+ myObj.p3 ); +} + +if(!(myObj.p4 === undefined)){ + $ERROR('#9: myObj.p4 === undefined. Actual: myObj.p4 ==='+ myObj.p4 ); +} + +if(!(myObj.p5 === undefined)){ + $ERROR('#10: myObj.p5 === undefined. Actual: myObj.p5 ==='+ myObj.p5 ); +} + +if(!(st_parseInt === "parseInt")){ + $ERROR('#11: myObj.parseInt === "parseInt". Actual: myObj.parseInt ==='+ myObj.parseInt ); +} + +if(!(st_NaN === "NaN")){ + $ERROR('#12: st_NaN === "NaN". Actual: st_NaN ==='+ st_NaN ); +} + +if(!(st_Infinity === "Infinity")){ + $ERROR('#13: st_Infinity === "Infinity". Actual: st_Infinity ==='+ st_Infinity ); +} + +if(!(st_eval === "eval")){ + $ERROR('#14: st_eval === "eval". Actual: st_eval ==='+ st_eval ); +} + +if(!(st_parseFloat === "parseFloat")){ + $ERROR('#15: st_parseFloat === "parseFloat". Actual: st_parseFloat ==='+ st_parseFloat ); +} + +if(!(st_isNaN === "isNaN")){ + $ERROR('#16: st_isNaN === "isNaN". Actual: st_isNaN ==='+ st_isNaN ); +} + +if(!(st_isFinite === "isFinite")){ + $ERROR('#17: st_isFinite === "isFinite". Actual: st_isFinite ==='+ st_isFinite ); +} + +if(!(value === undefined)){ + $ERROR('#18: value === undefined. Actual: value ==='+ value ); +} + +if(!(myObj.value === "myObj_value")){ + $ERROR('#19: myObj.value === "myObj_value". Actual: myObj.value ==='+ myObj.value ); +} diff --git a/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A1.4_T4.js b/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A1.4_T4.js new file mode 100644 index 000000000..eaf0c8e6d --- /dev/null +++ b/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A1.4_T4.js @@ -0,0 +1,138 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/** + * @name: S12.10_A1.4_T4; + * @section: 12.10; + * @assertion: The with statement adds a computed object to the front of the + * scope chain of the current execution context; + * @description: Using "with" statement within iteration statement, leading to completion by break; + * @strict_mode_negative + */ +this.p1 = 1; +this.p2 = 2; +this.p3 = 3; +var result = "result"; +var myObj = {p1: 'a', + p2: 'b', + p3: 'c', + value: 'myObj_value', + valueOf : function(){return 'obj_valueOf';}, + parseInt : function(){return 'obj_parseInt';}, + NaN : 'obj_NaN', + Infinity : 'obj_Infinity', + eval : function(){return 'obj_eval';}, + parseFloat : function(){return 'obj_parseFloat';}, + isNaN : function(){return 'obj_isNaN';}, + isFinite : function(){return 'obj_isFinite';} +} +var del; +var st_p1 = "p1"; +var st_p2 = "p2"; +var st_p3 = "p3"; +var st_parseInt = "parseInt"; +var st_NaN = "NaN"; +var st_Infinity = "Infinity"; +var st_eval = "eval"; +var st_parseFloat = "parseFloat"; +var st_isNaN = "isNaN"; +var st_isFinite = "isFinite"; + +do{ + with(myObj){ + st_p1 = p1; + st_p2 = p2; + st_p3 = p3; + st_parseInt = parseInt; + st_NaN = NaN; + st_Infinity = Infinity; + st_eval = eval; + st_parseFloat = parseFloat; + st_isNaN = isNaN; + st_isFinite = isFinite; + p1 = 'x1'; + this.p2 = 'x2'; + del = delete p3; + var p4 = 'x4'; + p5 = 'x5'; + var value = 'value'; + break; + } +} +while(false); + +if(!(p1 === 1)){ + $ERROR('#1: p1 === 1. Actual: p1 ==='+ p1 ); +} + +if(!(p2 === "x2")){ + $ERROR('#2: p2 === "x2". Actual: p2 ==='+ p2 ); +} + +if(!(p3 === 3)){ + $ERROR('#3: p3 === 3. Actual: p3 ==='+ p3 ); +} + +if(!(p4 === "x4")){ + $ERROR('#4: p4 === "x4". Actual: p4 ==='+ p4 ); +} + +if(!(p5 === "x5")){ + $ERROR('#5: p5 === "x5". Actual: p5 ==='+ p5 ); +} + +if(!(myObj.p1 === "x1")){ + $ERROR('#6: myObj.p1 === "x1". Actual: myObj.p1 ==='+ myObj.p1 ); +} + +if(!(myObj.p2 === "b")){ + $ERROR('#7: myObj.p2 === "b". Actual: myObj.p2 ==='+ myObj.p2 ); +} + +if(!(myObj.p3 === undefined)){ + $ERROR('#8: myObj.p3 === undefined. Actual: myObj.p3 ==='+ myObj.p3 ); +} + +if(!(myObj.p4 === undefined)){ + $ERROR('#9: myObj.p4 === undefined. Actual: myObj.p4 ==='+ myObj.p4 ); +} + +if(!(myObj.p5 === undefined)){ + $ERROR('#10: myObj.p5 === undefined. Actual: myObj.p5 ==='+ myObj.p5 ); +} + +if(!(st_parseInt !== parseInt)){ + $ERROR('#11: myObj.parseInt !== parseInt'); +} + +if(!(st_NaN === "obj_NaN")){ + $ERROR('#12: myObj.NaN !== NaN'); +} + +if(!(st_Infinity !== Infinity)){ + $ERROR('#13: myObj.Infinity !== Infinity'); +} + +if(!(st_eval !== eval)){ + $ERROR('#14: myObj.eval !== eval'); +} + +if(!(st_parseFloat !== parseFloat)){ + $ERROR('#15: myObj.parseFloat !== parseFloat'); +} + +if(!(st_isNaN !== isNaN)){ + $ERROR('#16: myObj.isNaN !== isNaN'); +} + +if(!(st_isFinite !== isFinite)){ + $ERROR('#17: myObj.isFinite !== isFinite'); +} + +if(!(value === undefined)){ + $ERROR('#18: value === undefined. Actual: value ==='+ value ); +} + +if(!(myObj.value === "value")){ + $ERROR('#19: myObj.value === "value". Actual: myObj.value ==='+ myObj.value ); +} diff --git a/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A1.4_T5.js b/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A1.4_T5.js new file mode 100644 index 000000000..dee420ea7 --- /dev/null +++ b/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A1.4_T5.js @@ -0,0 +1,140 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/** + * @name: S12.10_A1.4_T5; + * @section: 12.10; + * @assertion: The with statement adds a computed object to the front of the + * scope chain of the current execution context; + * @description: Using "with" statement within iteration statement, leading to completion by break; + * @strict_mode_negative + */ +this.p1 = 1; +this.p2 = 2; +this.p3 = 3; +var result = "result"; +var myObj = {p1: 'a', + p2: 'b', + p3: 'c', + value: 'myObj_value', + valueOf : function(){return 'obj_valueOf';}, + parseInt : function(){return 'obj_parseInt';}, + NaN : 'obj_NaN', + Infinity : 'obj_Infinity', + eval : function(){return 'obj_eval';}, + parseFloat : function(){return 'obj_parseFloat';}, + isNaN : function(){return 'obj_isNaN';}, + isFinite : function(){return 'obj_isFinite';} +} +var del; +var st_p1 = "p1"; +var st_p2 = "p2"; +var st_p3 = "p3"; +var st_parseInt = "parseInt"; +var st_NaN = "NaN"; +var st_Infinity = "Infinity"; +var st_eval = "eval"; +var st_parseFloat = "parseFloat"; +var st_isNaN = "isNaN"; +var st_isFinite = "isFinite"; + +do{ + with(myObj){ + break; + st_p1 = p1; + st_p2 = p2; + st_p3 = p3; + st_parseInt = parseInt; + st_NaN = NaN; + st_Infinity = Infinity; + st_eval = eval; + st_parseFloat = parseFloat; + st_isNaN = isNaN; + st_isFinite = isFinite; + p1 = 'x1'; + this.p2 = 'x2'; + del = delete p3; + var p4 = 'x4'; + p5 = 'x5'; + var value = 'value'; + } +} +while(false); + +if(!(p1 === 1)){ + $ERROR('#1: p1 === 1. Actual: p1 ==='+ p1 ); +} + +if(!(p2 === 2)){ + $ERROR('#2: p2 === 2. Actual: p2 ==='+ p2 ); +} + +if(!(p3 === 3)){ + $ERROR('#3: p3 === 3. Actual: p3 ==='+ p3 ); +} + +if(!(p4 === undefined)){ + $ERROR('#4: p4 ===undefined. Actual: p4 ==='+ p4 ); +} + +try { + p5; + $ERROR('#5: p5 is not defined'); +} catch(e) { +} + +if(!(myObj.p1 === "a")){ + $ERROR('#6: myObj.p1 === "a". Actual: myObj.p1 ==='+ myObj.p1 ); +} + +if(!(myObj.p2 === "b")){ + $ERROR('#7: myObj.p2 === "b". Actual: myObj.p2 ==='+ myObj.p2 ); +} + +if(!(myObj.p3 === "c")){ + $ERROR('#8: myObj.p3 === "c". Actual: myObj.p3 ==='+ myObj.p3 ); +} + +if(!(myObj.p4 === undefined)){ + $ERROR('#9: myObj.p4 === undefined. Actual: myObj.p4 ==='+ myObj.p4 ); +} + +if(!(myObj.p5 === undefined)){ + $ERROR('#10: myObj.p5 === undefined. Actual: myObj.p5 ==='+ myObj.p5 ); +} + +if(!(st_parseInt === "parseInt")){ + $ERROR('#11: myObj.parseInt === "parseInt". Actual: myObj.parseInt ==='+ myObj.parseInt ); +} + +if(!(st_NaN === "NaN")){ + $ERROR('#12: st_NaN === "NaN". Actual: st_NaN ==='+ st_NaN ); +} + +if(!(st_Infinity === "Infinity")){ + $ERROR('#13: st_Infinity === "Infinity". Actual: st_Infinity ==='+ st_Infinity ); +} + +if(!(st_eval === "eval")){ + $ERROR('#14: st_eval === "eval". Actual: st_eval ==='+ st_eval ); +} + +if(!(st_parseFloat === "parseFloat")){ + $ERROR('#15: st_parseFloat === "parseFloat". Actual: st_parseFloat ==='+ st_parseFloat ); +} + +if(!(st_isNaN === "isNaN")){ + $ERROR('#16: st_isNaN === "isNaN". Actual: st_isNaN ==='+ st_isNaN ); +} + +if(!(st_isFinite === "isFinite")){ + $ERROR('#17: st_isFinite === "isFinite". Actual: st_isFinite ==='+ st_isFinite ); +} + +if(!(value === undefined)){ + $ERROR('#18: value === undefined. Actual: value ==='+ value ); +} + +if(!(myObj.value === "myObj_value")){ + $ERROR('#19: myObj.value === "myObj_value". Actual: myObj.value ==='+ myObj.value ); +} diff --git a/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A1.5_T1.js b/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A1.5_T1.js new file mode 100644 index 000000000..fa3c7e6c4 --- /dev/null +++ b/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A1.5_T1.js @@ -0,0 +1,142 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/** + * @name: S12.10_A1.5_T1; + * @section: 12.10; + * @assertion: The with statement adds a computed object to the front of the + * scope chain of the current execution context; + * @description: Using "with" statement within "for-in" statement, leading to normal completion; + * @strict_mode_negative + */ +this.p1 = 1; +this.p2 = 2; +this.p3 = 3; +var result = "result"; +var myObj = {p1: 'a', + p2: 'b', + p3: 'c', + value: 'myObj_value', + valueOf : function(){return 'obj_valueOf';}, + parseInt : function(){return 'obj_parseInt';}, + NaN : 'obj_NaN', + Infinity : 'obj_Infinity', + eval : function(){return 'obj_eval';}, + parseFloat : function(){return 'obj_parseFloat';}, + isNaN : function(){return 'obj_isNaN';}, + isFinite : function(){return 'obj_isFinite';} +} +var del; +var st_p1 = "p1"; +var st_p2 = "p2"; +var st_p3 = "p3"; +var st_parseInt = "parseInt"; +var st_NaN = "NaN"; +var st_Infinity = "Infinity"; +var st_eval = "eval"; +var st_parseFloat = "parseFloat"; +var st_isNaN = "isNaN"; +var st_isFinite = "isFinite"; + +for(var prop in myObj){ + with(myObj){ + if(prop === 'p1') { + st_p1 = p1; + p1 = 'x1'; + } + if(prop === 'p2') { + st_p2 = p2; + this.p2 = 'x2'; + } + if(prop === 'p3') { + st_p3 = p3; + del = delete p3; + } + if(prop === 'parseInt') st_parseInt = parseInt; + if(prop === 'NaN') st_NaN = NaN; + if(prop === 'Infinity') st_Infinity = Infinity; + if(prop === 'eval') st_eval = eval; + if(prop === 'parseFloat') st_parseFloat = parseFloat; + if(prop === 'isNaN') st_isNaN = isNaN; + if(prop === 'isFinite') st_isFinite = isFinite; + var p4 = 'x4'; + p5 = 'x5'; + var value = 'value'; + } +} + +if(!(p1 === 1)){ + $ERROR('#1: p1 === 1. Actual: p1 ==='+ p1 ); +} + +if(!(p2 === "x2")){ + $ERROR('#2: p2 === "x2". Actual: p2 ==='+ p2 ); +} + +if(!(p3 === 3)){ + $ERROR('#3: p3 === 3. Actual: p3 ==='+ p3 ); +} + +if(!(p4 === "x4")){ + $ERROR('#4: p4 === "x4". Actual: p4 ==='+ p4 ); +} + +if(!(p5 === "x5")){ + $ERROR('#5: p5 === "x5". Actual: p5 ==='+ p5 ); +} + +if(!(myObj.p1 === "x1")){ + $ERROR('#6: myObj.p1 === "x1". Actual: myObj.p1 ==='+ myObj.p1 ); +} + +if(!(myObj.p2 === "b")){ + $ERROR('#7: myObj.p2 === "b". Actual: myObj.p2 ==='+ myObj.p2 ); +} + +if(!(myObj.p3 === undefined)){ + $ERROR('#8: myObj.p3 === undefined. Actual: myObj.p3 ==='+ myObj.p3 ); +} + +if(!(myObj.p4 === undefined)){ + $ERROR('#9: myObj.p4 === undefined. Actual: myObj.p4 ==='+ myObj.p4 ); +} + +if(!(myObj.p5 === undefined)){ + $ERROR('#10: myObj.p5 === undefined. Actual: myObj.p5 ==='+ myObj.p5 ); +} + +if(!(st_parseInt !== parseInt)){ + $ERROR('#11: myObj.parseInt !== parseInt'); +} + +if(!(st_NaN === "obj_NaN")){ + $ERROR('#12: myObj.NaN !== NaN'); +} + +if(!(st_Infinity !== Infinity)){ + $ERROR('#13: myObj.Infinity !== Infinity'); +} + +if(!(st_eval !== eval)){ + $ERROR('#14: myObj.eval !== eval'); +} + +if(!(st_parseFloat !== parseFloat)){ + $ERROR('#15: myObj.parseFloat !== parseFloat'); +} + +if(!(st_isNaN !== isNaN)){ + $ERROR('#16: myObj.isNaN !== isNaN'); +} + +if(!(st_isFinite !== isFinite)){ + $ERROR('#17: myObj.isFinite !== isFinite'); +} + +if(!(value === undefined)){ + $ERROR('#18: value === undefined. Actual: value ==='+ value ); +} + +if(!(myObj.value === "value")){ + $ERROR('#19: myObj.value === "value". Actual: myObj.value ==='+ myObj.value ); +} diff --git a/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A1.5_T2.js b/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A1.5_T2.js new file mode 100644 index 000000000..5d52747d6 --- /dev/null +++ b/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A1.5_T2.js @@ -0,0 +1,145 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/** + * @name: S12.10_A1.5_T2; + * @section: 12.10; + * @assertion: The with statement adds a computed object to the front of the + * scope chain of the current execution context; + * @description: Using "with" statement within "for-in" statement, leading to completion by exception; + * @strict_mode_negative + */ +this.p1 = 1; +this.p2 = 2; +this.p3 = 3; +var result = "result"; +var myObj = {p1: 'a', + p2: 'b', + p3: 'c', + value: 'myObj_value', + valueOf : function(){return 'obj_valueOf';}, + parseInt : function(){return 'obj_parseInt';}, + NaN : 'obj_NaN', + Infinity : 'obj_Infinity', + eval : function(){return 'obj_eval';}, + parseFloat : function(){return 'obj_parseFloat';}, + isNaN : function(){return 'obj_isNaN';}, + isFinite : function(){return 'obj_isFinite';} +} +var del; +var st_p1 = "p1"; +var st_p2 = "p2"; +var st_p3 = "p3"; +var st_parseInt = "parseInt"; +var st_NaN = "NaN"; +var st_Infinity = "Infinity"; +var st_eval = "eval"; +var st_parseFloat = "parseFloat"; +var st_isNaN = "isNaN"; +var st_isFinite = "isFinite"; + +try { + for(var prop in myObj){ + with(myObj){ + st_p1 = p1; + p1 = 'x1'; + st_p2 = p2; + this.p2 = 'x2'; + st_p3 = p3; + del = delete p3; + st_parseInt = parseInt; + st_NaN = NaN; + st_Infinity = Infinity; + st_eval = eval; + st_parseFloat = parseFloat; + st_isNaN = isNaN; + st_isFinite = isFinite; + var p4 = 'x4'; + p5 = 'x5'; + var value = 'value'; + throw value; + } + } +} catch(e){ + result = e; +} + +if(!(result === "value")){ + $ERROR('#0: result === "value". Actual: result ==='+ result ); +} + +if(!(p1 === 1)){ + $ERROR('#1: p1 === 1. Actual: p1 ==='+ p1 ); +} + +if(!(p2 === "x2")){ + $ERROR('#2: p2 === "x2". Actual: p2 ==='+ p2 ); +} + +if(!(p3 === 3)){ + $ERROR('#3: p3 === 3. Actual: p3 ==='+ p3 ); +} + +if(!(p4 === "x4")){ + $ERROR('#4: p4 === "x4". Actual: p4 ==='+ p4 ); +} + +if(!(p5 === "x5")){ + $ERROR('#5: p5 === "x5". Actual: p5 ==='+ p5 ); +} + +if(!(myObj.p1 === "x1")){ + $ERROR('#6: myObj.p1 === "x1". Actual: myObj.p1 ==='+ myObj.p1 ); +} + +if(!(myObj.p2 === "b")){ + $ERROR('#7: myObj.p2 === "b". Actual: myObj.p2 ==='+ myObj.p2 ); +} + +if(!(myObj.p3 === undefined)){ + $ERROR('#8: myObj.p3 === undefined. Actual: myObj.p3 ==='+ myObj.p3 ); +} + +if(!(myObj.p4 === undefined)){ + $ERROR('#9: myObj.p4 === undefined. Actual: myObj.p4 ==='+ myObj.p4 ); +} + +if(!(myObj.p5 === undefined)){ + $ERROR('#10: myObj.p5 === undefined. Actual: myObj.p5 ==='+ myObj.p5 ); +} + +if(!(st_parseInt !== parseInt)){ + $ERROR('#11: myObj.parseInt !== parseInt'); +} + +if(!(st_NaN === "obj_NaN")){ + $ERROR('#12: myObj.NaN !== NaN'); +} + +if(!(st_Infinity !== Infinity)){ + $ERROR('#13: myObj.Infinity !== Infinity'); +} + +if(!(st_eval !== eval)){ + $ERROR('#14: myObj.eval !== eval'); +} + +if(!(st_parseFloat !== parseFloat)){ + $ERROR('#15: myObj.parseFloat !== parseFloat'); +} + +if(!(st_isNaN !== isNaN)){ + $ERROR('#16: myObj.isNaN !== isNaN'); +} + +if(!(st_isFinite !== isFinite)){ + $ERROR('#17: myObj.isFinite !== isFinite'); +} + +if(!(value === undefined)){ + $ERROR('#18: value === undefined. Actual: value ==='+ value ); +} + +if(!(myObj.value === "value")){ + $ERROR('#19: myObj.value === "value". Actual: myObj.value ==='+ myObj.value ); +} diff --git a/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A1.5_T3.js b/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A1.5_T3.js new file mode 100644 index 000000000..157b954a7 --- /dev/null +++ b/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A1.5_T3.js @@ -0,0 +1,153 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/** + * @name: S12.10_A1.5_T3; + * @section: 12.10; + * @assertion: The with statement adds a computed object to the front of the + * scope chain of the current execution context; + * @description: Using "with" statement within "for-in" statement, leading to completion by exception; + * @strict_mode_negative + */ +this.p1 = 1; +this.p2 = 2; +this.p3 = 3; +var result = "result"; +var myObj = {p1: 'a', + p2: 'b', + p3: 'c', + value: 'myObj_value', + valueOf : function(){return 'obj_valueOf';}, + parseInt : function(){return 'obj_parseInt';}, + NaN : 'obj_NaN', + Infinity : 'obj_Infinity', + eval : function(){return 'obj_eval';}, + parseFloat : function(){return 'obj_parseFloat';}, + isNaN : function(){return 'obj_isNaN';}, + isFinite : function(){return 'obj_isFinite';} +} +var del; +var st_p1 = "p1"; +var st_p2 = "p2"; +var st_p3 = "p3"; +var st_parseInt = "parseInt"; +var st_NaN = "NaN"; +var st_Infinity = "Infinity"; +var st_eval = "eval"; +var st_parseFloat = "parseFloat"; +var st_isNaN = "isNaN"; +var st_isFinite = "isFinite"; + +try { + for(var prop in myObj){ + with(myObj){ + throw value; + if(prop === 'p1') { + st_p1 = p1; + p1 = 'x1'; + } + if(prop === 'p2') { + st_p2 = p2; + this.p2 = 'x2'; + } + if(prop === 'p3') { + st_p3 = p3; + del = delete p3; + } + if(prop === 'parseInt') st_parseInt = parseInt; + if(prop === 'NaN') st_NaN = NaN; + if(prop === 'Infinity') st_Infinity = Infinity; + if(prop === 'eval') st_eval = eval; + if(prop === 'parseFloat') st_parseFloat = parseFloat; + if(prop === 'isNaN') st_isNaN = isNaN; + if(prop === 'isFinite') st_isFinite = isFinite; + var p4 = 'x4'; + p5 = 'x5'; + var value = 'value'; + } + } +} catch(e){ + result = e; +} + +if(!(result === "myObj_value")){ + $ERROR('#0: result === "myObj_value". Actual: result ==='+ result ); +} + +if(!(p1 === 1)){ + $ERROR('#1: p1 === 1. Actual: p1 ==='+ p1 ); +} + +if(!(p2 === 2)){ + $ERROR('#2: p2 === 2. Actual: p2 ==='+ p2 ); +} + +if(!(p3 === 3)){ + $ERROR('#3: p3 === 3. Actual: p3 ==='+ p3 ); +} + +if(!(p4 === undefined)){ + $ERROR('#4: p4 === undefined. Actual: p4 ==='+ p4 ); +} + +try { + p5; + $ERROR('#5: p5 is not defined'); +} catch(e) { +} + +if(!(myObj.p1 === "a")){ + $ERROR('#6: myObj.p1 === "a". Actual: myObj.p1 ==='+ myObj.p1 ); +} + +if(!(myObj.p2 === "b")){ + $ERROR('#7: myObj.p2 === "b". Actual: myObj.p2 ==='+ myObj.p2 ); +} + +if(!(myObj.p3 === "c")){ + $ERROR('#8: myObj.p3 === "c". Actual: myObj.p3 ==='+ myObj.p3 ); +} + +if(!(myObj.p4 === undefined)){ + $ERROR('#9: myObj.p4 === undefined. Actual: myObj.p4 ==='+ myObj.p4 ); +} + +if(!(myObj.p5 === undefined)){ + $ERROR('#10: myObj.p5 === undefined. Actual: myObj.p5 ==='+ myObj.p5 ); +} + +if(!(st_parseInt === "parseInt")){ + $ERROR('#11: myObj.parseInt === "parseInt". Actual: myObj.parseInt ==='+ myObj.parseInt ); +} + +if(!(st_NaN === "NaN")){ + $ERROR('#12: st_NaN === "NaN". Actual: st_NaN ==='+ st_NaN ); +} + +if(!(st_Infinity === "Infinity")){ + $ERROR('#13: st_Infinity === "Infinity". Actual: st_Infinity ==='+ st_Infinity ); +} + +if(!(st_eval === "eval")){ + $ERROR('#14: st_eval === "eval". Actual: st_eval ==='+ st_eval ); +} + +if(!(st_parseFloat === "parseFloat")){ + $ERROR('#15: st_parseFloat === "parseFloat". Actual: st_parseFloat ==='+ st_parseFloat ); +} + +if(!(st_isNaN === "isNaN")){ + $ERROR('#16: st_isNaN === "isNaN". Actual: st_isNaN ==='+ st_isNaN ); +} + +if(!(st_isFinite === "isFinite")){ + $ERROR('#17: st_isFinite === "isFinite". Actual: st_isFinite ==='+ st_isFinite ); +} + +if(!(value === undefined)){ + $ERROR('#18: value === undefined. Actual: value ==='+ value ); +} + +if(!(myObj.value === "myObj_value")){ + $ERROR('#19: myObj.value === "myObj_value". Actual: myObj.value ==='+ myObj.value ); +} diff --git a/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A1.5_T4.js b/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A1.5_T4.js new file mode 100644 index 000000000..1a5ad3866 --- /dev/null +++ b/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A1.5_T4.js @@ -0,0 +1,137 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/** + * @name: S12.10_A1.5_T4; + * @section: 12.10; + * @assertion: The with statement adds a computed object to the front of the + * scope chain of the current execution context; + * @description: Using "with" statement within "for-in" statement, leading to completion by break; + * @strict_mode_negative + */ +this.p1 = 1; +this.p2 = 2; +this.p3 = 3; +var result = "result"; +var myObj = {p1: 'a', + p2: 'b', + p3: 'c', + value: 'myObj_value', + valueOf : function(){return 'obj_valueOf';}, + parseInt : function(){return 'obj_parseInt';}, + NaN : 'obj_NaN', + Infinity : 'obj_Infinity', + eval : function(){return 'obj_eval';}, + parseFloat : function(){return 'obj_parseFloat';}, + isNaN : function(){return 'obj_isNaN';}, + isFinite : function(){return 'obj_isFinite';} +} +var del; +var st_p1 = "p1"; +var st_p2 = "p2"; +var st_p3 = "p3"; +var st_parseInt = "parseInt"; +var st_NaN = "NaN"; +var st_Infinity = "Infinity"; +var st_eval = "eval"; +var st_parseFloat = "parseFloat"; +var st_isNaN = "isNaN"; +var st_isFinite = "isFinite"; + +for(var prop in myObj){ + with(myObj){ + st_p1 = p1; + p1 = 'x1'; + st_p2 = p2; + this.p2 = 'x2'; + st_p3 = p3; + del = delete p3; + st_parseInt = parseInt; + st_NaN = NaN; + st_Infinity = Infinity; + st_eval = eval; + st_parseFloat = parseFloat; + st_isNaN = isNaN; + st_isFinite = isFinite; + var p4 = 'x4'; + p5 = 'x5'; + var value = 'value'; + break; + } +} + +if(!(p1 === 1)){ + $ERROR('#1: p1 === 1. Actual: p1 ==='+ p1 ); +} + +if(!(p2 === "x2")){ + $ERROR('#2: p2 === "x2". Actual: p2 ==='+ p2 ); +} + +if(!(p3 === 3)){ + $ERROR('#3: p3 === 3. Actual: p3 ==='+ p3 ); +} + +if(!(p4 === "x4")){ + $ERROR('#4: p4 === "x4". Actual: p4 ==='+ p4 ); +} + +if(!(p5 === "x5")){ + $ERROR('#5: p5 === "x5". Actual: p5 ==='+ p5 ); +} + +if(!(myObj.p1 === "x1")){ + $ERROR('#6: myObj.p1 === "x1". Actual: myObj.p1 ==='+ myObj.p1 ); +} + +if(!(myObj.p2 === "b")){ + $ERROR('#7: myObj.p2 === "b". Actual: myObj.p2 ==='+ myObj.p2 ); +} + +if(!(myObj.p3 === undefined)){ + $ERROR('#8: myObj.p3 === undefined. Actual: myObj.p3 ==='+ myObj.p3 ); +} + +if(!(myObj.p4 === undefined)){ + $ERROR('#9: myObj.p4 === undefined. Actual: myObj.p4 ==='+ myObj.p4 ); +} + +if(!(myObj.p5 === undefined)){ + $ERROR('#10: myObj.p5 === undefined. Actual: myObj.p5 ==='+ myObj.p5 ); +} + +if(!(st_parseInt !== parseInt)){ + $ERROR('#11: myObj.parseInt !== parseInt'); +} + +if(!(st_NaN === "obj_NaN")){ + $ERROR('#12: myObj.NaN !== NaN'); +} + +if(!(st_Infinity !== Infinity)){ + $ERROR('#13: myObj.Infinity !== Infinity'); +} + +if(!(st_eval !== eval)){ + $ERROR('#14: myObj.eval !== eval'); +} + +if(!(st_parseFloat !== parseFloat)){ + $ERROR('#15: myObj.parseFloat !== parseFloat'); +} + +if(!(st_isNaN !== isNaN)){ + $ERROR('#16: myObj.isNaN !== isNaN'); +} + +if(!(st_isFinite !== isFinite)){ + $ERROR('#17: myObj.isFinite !== isFinite'); +} + +if(!(value === undefined)){ + $ERROR('#18: value === undefined. Actual: value ==='+ value ); +} + +if(!(myObj.value === "value")){ + $ERROR('#19: myObj.value === "value". Actual: myObj.value ==='+ myObj.value ); +} diff --git a/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A1.5_T5.js b/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A1.5_T5.js new file mode 100644 index 000000000..1a72d740c --- /dev/null +++ b/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A1.5_T5.js @@ -0,0 +1,145 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/** + * @name: S12.10_A1.5_T5; + * @section: 12.10; + * @assertion: The with statement adds a computed object to the front of the + * scope chain of the current execution context; + * @description: Using "with" statement within "for-in" statement, leading to completion by break; + * @strict_mode_negative + */ +this.p1 = 1; +this.p2 = 2; +this.p3 = 3; +var result = "result"; +var myObj = {p1: 'a', + p2: 'b', + p3: 'c', + value: 'myObj_value', + valueOf : function(){return 'obj_valueOf';}, + parseInt : function(){return 'obj_parseInt';}, + NaN : 'obj_NaN', + Infinity : 'obj_Infinity', + eval : function(){return 'obj_eval';}, + parseFloat : function(){return 'obj_parseFloat';}, + isNaN : function(){return 'obj_isNaN';}, + isFinite : function(){return 'obj_isFinite';} +} +var del; +var st_p1 = "p1"; +var st_p2 = "p2"; +var st_p3 = "p3"; +var st_parseInt = "parseInt"; +var st_NaN = "NaN"; +var st_Infinity = "Infinity"; +var st_eval = "eval"; +var st_parseFloat = "parseFloat"; +var st_isNaN = "isNaN"; +var st_isFinite = "isFinite"; + +for(var prop in myObj){ + with(myObj){ + break; + if(prop === 'p1') { + st_p1 = p1; + p1 = 'x1'; + } + if(prop === 'p2') { + st_p2 = p2; + this.p2 = 'x2'; + } + if(prop === 'p3') { + st_p3 = p3; + del = delete p3; + } + if(prop === 'parseInt') st_parseInt = parseInt; + if(prop === 'NaN') st_NaN = NaN; + if(prop === 'Infinity') st_Infinity = Infinity; + if(prop === 'eval') st_eval = eval; + if(prop === 'parseFloat') st_parseFloat = parseFloat; + if(prop === 'isNaN') st_isNaN = isNaN; + if(prop === 'isFinite') st_isFinite = isFinite; + var p4 = 'x4'; + p5 = 'x5'; + var value = 'value'; + } +} + +if(!(p1 === 1)){ + $ERROR('#1: p1 === 1. Actual: p1 ==='+ p1 ); +} + +if(!(p2 === 2)){ + $ERROR('#2: p2 === 2. Actual: p2 ==='+ p2 ); +} + +if(!(p3 === 3)){ + $ERROR('#3: p3 === 3. Actual: p3 ==='+ p3 ); +} + +if(!(p4 === undefined)){ + $ERROR('#4: p4 === undefined. Actual: p4 ==='+ p4 ); +} + +try { + p5; + $ERROR('#5: p5 is not defined'); +} catch(e) { +} + +if(!(myObj.p1 === "a")){ + $ERROR('#6: myObj.p1 === "a". Actual: myObj.p1 ==='+ myObj.p1 ); +} + +if(!(myObj.p2 === "b")){ + $ERROR('#7: myObj.p2 === "b". Actual: myObj.p2 ==='+ myObj.p2 ); +} + +if(!(myObj.p3 === "c")){ + $ERROR('#8: myObj.p3 === "c". Actual: myObj.p3 ==='+ myObj.p3 ); +} + +if(!(myObj.p4 === undefined)){ + $ERROR('#9: myObj.p4 === undefined. Actual: myObj.p4 ==='+ myObj.p4 ); +} + +if(!(myObj.p5 === undefined)){ + $ERROR('#10: myObj.p5 === undefined. Actual: myObj.p5 ==='+ myObj.p5 ); +} + +if(!(st_parseInt === "parseInt")){ + $ERROR('#11: myObj.parseInt === "parseInt". Actual: myObj.parseInt ==='+ myObj.parseInt ); +} + +if(!(st_NaN === "NaN")){ + $ERROR('#12: st_NaN === "NaN". Actual: st_NaN ==='+ st_NaN ); +} + +if(!(st_Infinity === "Infinity")){ + $ERROR('#13: st_Infinity === "Infinity". Actual: st_Infinity ==='+ st_Infinity ); +} + +if(!(st_eval === "eval")){ + $ERROR('#14: st_eval === "eval". Actual: st_eval ==='+ st_eval ); +} + +if(!(st_parseFloat === "parseFloat")){ + $ERROR('#15: st_parseFloat === "parseFloat". Actual: st_parseFloat ==='+ st_parseFloat ); +} + +if(!(st_isNaN === "isNaN")){ + $ERROR('#16: st_isNaN === "isNaN". Actual: st_isNaN ==='+ st_isNaN ); +} + +if(!(st_isFinite === "isFinite")){ + $ERROR('#17: st_isFinite === "isFinite". Actual: st_isFinite ==='+ st_isFinite ); +} + +if(!(value === undefined)){ + $ERROR('#18: value === undefined. Actual: value ==='+ value ); +} + +if(!(myObj.value === "myObj_value")){ + $ERROR('#19: myObj.value === "myObj_value". Actual: myObj.value ==='+ myObj.value ); +} diff --git a/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A1.6_T1.js b/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A1.6_T1.js new file mode 100644 index 000000000..701cf8b2d --- /dev/null +++ b/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A1.6_T1.js @@ -0,0 +1,136 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/** + * @name: S12.10_A1.6_T1; + * @section: 12.10; + * @assertion: The with statement adds a computed object to the front of the + * scope chain of the current execution context; + * @description: Using "with" statement within another "with" statement, leading to normal completion; + * @strict_mode_negative + */ +this.p1 = 1; +this.p2 = 2; +this.p3 = 3; +var result = "result"; +var myObj = {p1: 'a', + p2: 'b', + p3: 'c', + value: 'myObj_value', + valueOf : function(){return 'obj_valueOf';}, + parseInt : function(){return 'obj_parseInt';}, + NaN : 'obj_NaN', + Infinity : 'obj_Infinity', + eval : function(){return 'obj_eval';}, + parseFloat : function(){return 'obj_parseFloat';}, + isNaN : function(){return 'obj_isNaN';}, + isFinite : function(){return 'obj_isFinite';} +} +var del; +var st_p1 = "p1"; +var st_p2 = "p2"; +var st_p3 = "p3"; +var st_parseInt = "parseInt"; +var st_NaN = "NaN"; +var st_Infinity = "Infinity"; +var st_eval = "eval"; +var st_parseFloat = "parseFloat"; +var st_isNaN = "isNaN"; +var st_isFinite = "isFinite"; + +with(myObj){ + with(myObj){ + st_p1 = p1; + st_p2 = p2; + st_p3 = p3; + st_parseInt = parseInt; + st_NaN = NaN; + st_Infinity = Infinity; + st_eval = eval; + st_parseFloat = parseFloat; + st_isNaN = isNaN; + st_isFinite = isFinite; + p1 = 'x1'; + this.p2 = 'x2'; + del = delete p3; + var p4 = 'x4'; + p5 = 'x5'; + var value = 'value'; + } +} + +if(!(p1 === 1)){ + $ERROR('#1: p1 === 1. Actual: p1 ==='+ p1 ); +} + +if(!(p2 === "x2")){ + $ERROR('#2: p2 === "x2". Actual: p2 ==='+ p2 ); +} + +if(!(p3 === 3)){ + $ERROR('#3: p3 === 3. Actual: p3 ==='+ p3 ); +} + +if(!(p4 === "x4")){ + $ERROR('#4: p4 === "x4". Actual: p4 ==='+ p4 ); +} + +if(!(p5 === "x5")){ + $ERROR('#5: p5 === "x5". Actual: p5 ==='+ p5 ); +} + +if(!(myObj.p1 === "x1")){ + $ERROR('#6: myObj.p1 === "x1". Actual: myObj.p1 ==='+ myObj.p1 ); +} + +if(!(myObj.p2 === "b")){ + $ERROR('#7: myObj.p2 === "b". Actual: myObj.p2 ==='+ myObj.p2 ); +} + +if(!(myObj.p3 === undefined)){ + $ERROR('#8: myObj.p3 === undefined. Actual: myObj.p3 ==='+ myObj.p3 ); +} + +if(!(myObj.p4 === undefined)){ + $ERROR('#9: myObj.p4 === undefined. Actual: myObj.p4 ==='+ myObj.p4 ); +} + +if(!(myObj.p5 === undefined)){ + $ERROR('#10: myObj.p5 === undefined. Actual: myObj.p5 ==='+ myObj.p5 ); +} + +if(!(st_parseInt !== parseInt)){ + $ERROR('#11: myObj.parseInt !== parseInt'); +} + +if(!(st_NaN === "obj_NaN")){ + $ERROR('#12: myObj.NaN !== NaN'); +} + +if(!(st_Infinity !== Infinity)){ + $ERROR('#13: myObj.Infinity !== Infinity'); +} + +if(!(st_eval !== eval)){ + $ERROR('#14: myObj.eval !== eval'); +} + +if(!(st_parseFloat !== parseFloat)){ + $ERROR('#15: myObj.parseFloat !== parseFloat'); +} + +if(!(st_isNaN !== isNaN)){ + $ERROR('#16: myObj.isNaN !== isNaN'); +} + +if(!(st_isFinite !== isFinite)){ + $ERROR('#17: myObj.isFinite !== isFinite'); +} + +if(!(value === undefined)){ + $ERROR('#18: value === undefined. Actual: value ==='+ value ); +} + +if(!(myObj.value === "value")){ + $ERROR('#19: myObj.value === "value". Actual: myObj.value ==='+ myObj.value ); +} diff --git a/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A1.6_T2.js b/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A1.6_T2.js new file mode 100644 index 000000000..6b9f32524 --- /dev/null +++ b/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A1.6_T2.js @@ -0,0 +1,145 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/** + * @name: S12.10_A1.6_T2; + * @section: 12.10; + * @assertion: The with statement adds a computed object to the front of the + * scope chain of the current execution context; + * @description: Using "with" statement within another "with" statement, leading to completion by exception; + * @strict_mode_negative + */ +this.p1 = 1; +this.p2 = 2; +this.p3 = 3; +var result = "result"; +var myObj = {p1: 'a', + p2: 'b', + p3: 'c', + value: 'myObj_value', + valueOf : function(){return 'obj_valueOf';}, + parseInt : function(){return 'obj_parseInt';}, + NaN : 'obj_NaN', + Infinity : 'obj_Infinity', + eval : function(){return 'obj_eval';}, + parseFloat : function(){return 'obj_parseFloat';}, + isNaN : function(){return 'obj_isNaN';}, + isFinite : function(){return 'obj_isFinite';} +} +var del; +var st_p1 = "p1"; +var st_p2 = "p2"; +var st_p3 = "p3"; +var st_parseInt = "parseInt"; +var st_NaN = "NaN"; +var st_Infinity = "Infinity"; +var st_eval = "eval"; +var st_parseFloat = "parseFloat"; +var st_isNaN = "isNaN"; +var st_isFinite = "isFinite"; + +try { + with(myObj){ + with(myObj){ + st_p1 = p1; + st_p2 = p2; + st_p3 = p3; + st_parseInt = parseInt; + st_NaN = NaN; + st_Infinity = Infinity; + st_eval = eval; + st_parseFloat = parseFloat; + st_isNaN = isNaN; + st_isFinite = isFinite; + p1 = 'x1'; + this.p2 = 'x2'; + del = delete p3; + var p4 = 'x4'; + p5 = 'x5'; + var value = 'value'; + throw value; + } + } +} catch(e){ + result = e; +} + +if(!(result === "value")){ + $ERROR('#0: result === "value". Actual: result ==='+ result ); +} + +if(!(p1 === 1)){ + $ERROR('#1: p1 === 1. Actual: p1 ==='+ p1 ); +} + +if(!(p2 === "x2")){ + $ERROR('#2: p2 === "x2". Actual: p2 ==='+ p2 ); +} + +if(!(p3 === 3)){ + $ERROR('#3: p3 === 3. Actual: p3 ==='+ p3 ); +} + +if(!(p4 === "x4")){ + $ERROR('#4: p4 === "x4". Actual: p4 ==='+ p4 ); +} + +if(!(p5 === "x5")){ + $ERROR('#5: p5 === "x5". Actual: p5 ==='+ p5 ); +} + +if(!(myObj.p1 === "x1")){ + $ERROR('#6: myObj.p1 === "x1". Actual: myObj.p1 ==='+ myObj.p1 ); +} + +if(!(myObj.p2 === "b")){ + $ERROR('#7: myObj.p2 === "b". Actual: myObj.p2 ==='+ myObj.p2 ); +} + +if(!(myObj.p3 === undefined)){ + $ERROR('#8: myObj.p3 === undefined. Actual: myObj.p3 ==='+ myObj.p3 ); +} + +if(!(myObj.p4 === undefined)){ + $ERROR('#9: myObj.p4 === undefined. Actual: myObj.p4 ==='+ myObj.p4 ); +} + +if(!(myObj.p5 === undefined)){ + $ERROR('#10: myObj.p5 === undefined. Actual: myObj.p5 ==='+ myObj.p5 ); +} + +if(!(st_parseInt !== parseInt)){ + $ERROR('#11: myObj.parseInt !== parseInt'); +} + +if(!(st_NaN === "obj_NaN")){ + $ERROR('#12: myObj.NaN !== NaN'); +} + +if(!(st_Infinity !== Infinity)){ + $ERROR('#13: myObj.Infinity !== Infinity'); +} + +if(!(st_eval !== eval)){ + $ERROR('#14: myObj.eval !== eval'); +} + +if(!(st_parseFloat !== parseFloat)){ + $ERROR('#15: myObj.parseFloat !== parseFloat'); +} + +if(!(st_isNaN !== isNaN)){ + $ERROR('#16: myObj.isNaN !== isNaN'); +} + +if(!(st_isFinite !== isFinite)){ + $ERROR('#17: myObj.isFinite !== isFinite'); +} + +if(!(value === undefined)){ + $ERROR('#18: value === undefined. Actual: value ==='+ value ); +} + +if(!(myObj.value === "value")){ + $ERROR('#19: myObj.value === "value". Actual: myObj.value ==='+ myObj.value ); +} diff --git a/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A1.6_T3.js b/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A1.6_T3.js new file mode 100644 index 000000000..3f8f75169 --- /dev/null +++ b/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A1.6_T3.js @@ -0,0 +1,147 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/** + * @name: S12.10_A1.6_T3; + * @section: 12.10; + * @assertion: The with statement adds a computed object to the front of the + * scope chain of the current execution context; + * @description: Using "with" statement within another "with" statement, leading to completion by exception; + * @strict_mode_negative + */ +this.p1 = 1; +this.p2 = 2; +this.p3 = 3; +var result = "result"; +var myObj = {p1: 'a', + p2: 'b', + p3: 'c', + value: 'myObj_value', + valueOf : function(){return 'obj_valueOf';}, + parseInt : function(){return 'obj_parseInt';}, + NaN : 'obj_NaN', + Infinity : 'obj_Infinity', + eval : function(){return 'obj_eval';}, + parseFloat : function(){return 'obj_parseFloat';}, + isNaN : function(){return 'obj_isNaN';}, + isFinite : function(){return 'obj_isFinite';} +} +var del; +var st_p1 = "p1"; +var st_p2 = "p2"; +var st_p3 = "p3"; +var st_parseInt = "parseInt"; +var st_NaN = "NaN"; +var st_Infinity = "Infinity"; +var st_eval = "eval"; +var st_parseFloat = "parseFloat"; +var st_isNaN = "isNaN"; +var st_isFinite = "isFinite"; + +try { + with(myObj){ + with(myObj){ + throw value; + st_p1 = p1; + st_p2 = p2; + st_p3 = p3; + st_parseInt = parseInt; + st_NaN = NaN; + st_Infinity = Infinity; + st_eval = eval; + st_parseFloat = parseFloat; + st_isNaN = isNaN; + st_isFinite = isFinite; + p1 = 'x1'; + this.p2 = 'x2'; + del = delete p3; + var p4 = 'x4'; + p5 = 'x5'; + var value = 'value'; + } + } +} catch(e){ + result = e; +} + +if(!(result === "myObj_value")){ + $ERROR('#0: result === "myObj_value". Actual: result ==='+ result ); +} + +if(!(p1 === 1)){ + $ERROR('#1: p1 === 1. Actual: p1 ==='+ p1 ); +} + +if(!(p2 === 2)){ + $ERROR('#2: p2 === 2. Actual: p2 ==='+ p2 ); +} + +if(!(p3 === 3)){ + $ERROR('#3: p3 === 3. Actual: p3 ==='+ p3 ); +} + +if(!(p4 === undefined)){ + $ERROR('#4: p4 === undefined. Actual: p4 ==='+ p4 ); +} + +try { + p5; + $ERROR('#5: p5 is not defined'); +} catch(e) { +} + +if(!(myObj.p1 === "a")){ + $ERROR('#6: myObj.p1 === "a". Actual: myObj.p1 ==='+ myObj.p1 ); +} + +if(!(myObj.p2 === "b")){ + $ERROR('#7: myObj.p2 === "b". Actual: myObj.p2 ==='+ myObj.p2 ); +} + +if(!(myObj.p3 === "c")){ + $ERROR('#8: myObj.p3 === "c". Actual: myObj.p3 ==='+ myObj.p3 ); +} + +if(!(myObj.p4 === undefined)){ + $ERROR('#9: myObj.p4 === undefined. Actual: myObj.p4 ==='+ myObj.p4 ); +} + +if(!(myObj.p5 === undefined)){ + $ERROR('#10: myObj.p5 === undefined. Actual: myObj.p5 ==='+ myObj.p5 ); +} + +if(!(st_parseInt === "parseInt")){ + $ERROR('#11: myObj.parseInt === "parseInt". Actual: myObj.parseInt ==='+ myObj.parseInt ); +} + +if(!(st_NaN === "NaN")){ + $ERROR('#12: st_NaN === "NaN". Actual: st_NaN ==='+ st_NaN ); +} + +if(!(st_Infinity === "Infinity")){ + $ERROR('#13: st_Infinity === "Infinity". Actual: st_Infinity ==='+ st_Infinity ); +} + +if(!(st_eval === "eval")){ + $ERROR('#14: st_eval === "eval". Actual: st_eval ==='+ st_eval ); +} + +if(!(st_parseFloat === "parseFloat")){ + $ERROR('#15: st_parseFloat === "parseFloat". Actual: st_parseFloat ==='+ st_parseFloat ); +} + +if(!(st_isNaN === "isNaN")){ + $ERROR('#16: st_isNaN === "isNaN". Actual: st_isNaN ==='+ st_isNaN ); +} + +if(!(st_isFinite === "isFinite")){ + $ERROR('#17: st_isFinite === "isFinite". Actual: st_isFinite ==='+ st_isFinite ); +} + +if(!(value === undefined)){ + $ERROR('#18: value === undefined. Actual: value ==='+ value ); +} + +if(!(myObj.value === "myObj_value")){ + $ERROR('#19: myObj.value === "myObj_value". Actual: myObj.value ==='+ myObj.value ); +} diff --git a/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A1.7_T1.js b/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A1.7_T1.js new file mode 100644 index 000000000..0f1e291df --- /dev/null +++ b/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A1.7_T1.js @@ -0,0 +1,142 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/** + * @name: S12.10_A1.7_T1; + * @section: 12.10; + * @assertion: The with statement adds a computed object to the front of the + * scope chain of the current execution context; + * @description: Calling a function within "with" statement declared within the statement, leading to normal completion; + * @strict_mode_negative + */ +this.p1 = 1; +this.p2 = 2; +this.p3 = 3; +var result = "result"; +var myObj = {p1: 'a', + p2: 'b', + p3: 'c', + value: 'myObj_value', + valueOf : function(){return 'obj_valueOf';}, + parseInt : function(){return 'obj_parseInt';}, + NaN : 'obj_NaN', + Infinity : 'obj_Infinity', + eval : function(){return 'obj_eval';}, + parseFloat : function(){return 'obj_parseFloat';}, + isNaN : function(){return 'obj_isNaN';}, + isFinite : function(){return 'obj_isFinite';} +} +var del; +var st_p1 = "p1"; +var st_p2 = "p2"; +var st_p3 = "p3"; +var st_parseInt = "parseInt"; +var st_NaN = "NaN"; +var st_Infinity = "Infinity"; +var st_eval = "eval"; +var st_parseFloat = "parseFloat"; +var st_isNaN = "isNaN"; +var st_isFinite = "isFinite"; + +with(myObj){ + var f = function(){ + st_p1 = p1; + st_p2 = p2; + st_p3 = p3; + st_parseInt = parseInt; + st_NaN = NaN; + st_Infinity = Infinity; + st_eval = eval; + st_parseFloat = parseFloat; + st_isNaN = isNaN; + st_isFinite = isFinite; + p1 = 'x1'; + this.p2 = 'x2'; + del = delete p3; + var p4 = 'x4'; + p5 = 'x5'; + var value = 'value'; + } + f(); +} + +if(!(p1 === 1)){ + $ERROR('#1: p1 === 1. Actual: p1 ==='+ p1 ); +} + +if(!(p2 === "x2")){ + $ERROR('#2: p2 === "x2". Actual: p2 ==='+ p2 ); +} + +if(!(p3 === 3)){ + $ERROR('#3: p3 === 3. Actual: p3 ==='+ p3 ); +} + +try { + p4; + $ERROR('#4: p4 is not defined'); +} catch(e) { +} + +if(!(p5 === "x5")){ + $ERROR('#5: p5 === "x5". Actual: p5 ==='+ p5 ); +} + +if(!(myObj.p1 === "x1")){ + $ERROR('#6: myObj.p1 === "x1". Actual: myObj.p1 ==='+ myObj.p1 ); +} + +if(!(myObj.p2 === "b")){ + $ERROR('#7: myObj.p2 === "b". Actual: myObj.p2 ==='+ myObj.p2 ); +} + +if(!(myObj.p3 === undefined)){ + $ERROR('#8: myObj.p3 === undefined. Actual: myObj.p3 ==='+ myObj.p3 ); +} + +if(!(myObj.p4 === undefined)){ + $ERROR('#9: myObj.p4 === undefined. Actual: myObj.p4 ==='+ myObj.p4 ); +} + +if(!(myObj.p5 === undefined)){ + $ERROR('#10: myObj.p5 === undefined. Actual: myObj.p5 ==='+ myObj.p5 ); +} + +if(!(st_parseInt !== parseInt)){ + $ERROR('#11: myObj.parseInt !== parseInt'); +} + +if(!(st_NaN === "obj_NaN")){ + $ERROR('#12: myObj.NaN !== NaN'); +} + +if(!(st_Infinity !== Infinity)){ + $ERROR('#13: myObj.Infinity !== Infinity'); +} + +if(!(st_eval !== eval)){ + $ERROR('#14: myObj.eval !== eval'); +} + +if(!(st_parseFloat !== parseFloat)){ + $ERROR('#15: myObj.parseFloat !== parseFloat'); +} + +if(!(st_isNaN !== isNaN)){ + $ERROR('#16: myObj.isNaN !== isNaN'); +} + +if(!(st_isFinite !== isFinite)){ + $ERROR('#17: myObj.isFinite !== isFinite'); +} + +try{ + value; + $ERROR('#18: value is not defined'); +} +catch(e){ +} + +if(!(myObj.value === "myObj_value")){ + $ERROR('#19: myObj.value === "myObj_value". Actual: myObj.value ==='+ myObj.value ); +} diff --git a/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A1.7_T2.js b/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A1.7_T2.js new file mode 100644 index 000000000..35862aa25 --- /dev/null +++ b/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A1.7_T2.js @@ -0,0 +1,147 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/** + * @name: S12.10_A1.7_T2; + * @section: 12.10; + * @assertion: The with statement adds a computed object to the front of the + * scope chain of the current execution context; + * @description: Calling a function within "with" statement declared within the statement, leading to normal completion by "return"; + * @strict_mode_negative + */ +this.p1 = 1; +this.p2 = 2; +this.p3 = 3; +var result = "result"; +var myObj = {p1: 'a', + p2: 'b', + p3: 'c', + value: 'myObj_value', + valueOf : function(){return 'obj_valueOf';}, + parseInt : function(){return 'obj_parseInt';}, + NaN : 'obj_NaN', + Infinity : 'obj_Infinity', + eval : function(){return 'obj_eval';}, + parseFloat : function(){return 'obj_parseFloat';}, + isNaN : function(){return 'obj_isNaN';}, + isFinite : function(){return 'obj_isFinite';} +} +var del; +var st_p1 = "p1"; +var st_p2 = "p2"; +var st_p3 = "p3"; +var st_parseInt = "parseInt"; +var st_NaN = "NaN"; +var st_Infinity = "Infinity"; +var st_eval = "eval"; +var st_parseFloat = "parseFloat"; +var st_isNaN = "isNaN"; +var st_isFinite = "isFinite"; + +with(myObj){ + var f = function(){ + st_p1 = p1; + st_p2 = p2; + st_p3 = p3; + st_parseInt = parseInt; + st_NaN = NaN; + st_Infinity = Infinity; + st_eval = eval; + st_parseFloat = parseFloat; + st_isNaN = isNaN; + st_isFinite = isFinite; + p1 = 'x1'; + this.p2 = 'x2'; + del = delete p3; + var p4 = 'x4'; + p5 = 'x5'; + var value = 'value'; + return value; + } + result = f(); +} + +if(!(result === "value")){ + $ERROR('#0: result === "value". Actual: result ==='+ result ); +} + +if(!(p1 === 1)){ + $ERROR('#1: p1 === 1. Actual: p1 ==='+ p1 ); +} + +if(!(p2 === "x2")){ + $ERROR('#2: p2 === "x2". Actual: p2 ==='+ p2 ); +} + +if(!(p3 === 3)){ + $ERROR('#3: p3 === 3. Actual: p3 ==='+ p3 ); +} + +try { + p4; + $ERROR('#4: p4 is not defined'); +} catch(e) { +} + +if(!(p5 === "x5")){ + $ERROR('#5: p5 === "x5". Actual: p5 ==='+ p5 ); +} + +if(!(myObj.p1 === "x1")){ + $ERROR('#6: myObj.p1 === "x1". Actual: myObj.p1 ==='+ myObj.p1 ); +} + +if(!(myObj.p2 === "b")){ + $ERROR('#7: myObj.p2 === "b". Actual: myObj.p2 ==='+ myObj.p2 ); +} + +if(!(myObj.p3 === undefined)){ + $ERROR('#8: myObj.p3 === undefined. Actual: myObj.p3 ==='+ myObj.p3 ); +} + +if(!(myObj.p4 === undefined)){ + $ERROR('#9: myObj.p4 === undefined. Actual: myObj.p4 ==='+ myObj.p4 ); +} + +if(!(myObj.p5 === undefined)){ + $ERROR('#10: myObj.p5 === undefined. Actual: myObj.p5 ==='+ myObj.p5 ); +} + +if(!(st_parseInt !== parseInt)){ + $ERROR('#11: myObj.parseInt !== parseInt'); +} + +if(!(st_NaN === "obj_NaN")){ + $ERROR('#12: myObj.NaN !== NaN'); +} + +if(!(st_Infinity !== Infinity)){ + $ERROR('#13: myObj.Infinity !== Infinity'); +} + +if(!(st_eval !== eval)){ + $ERROR('#14: myObj.eval !== eval'); +} + +if(!(st_parseFloat !== parseFloat)){ + $ERROR('#15: myObj.parseFloat !== parseFloat'); +} + +if(!(st_isNaN !== isNaN)){ + $ERROR('#16: myObj.isNaN !== isNaN'); +} + +if(!(st_isFinite !== isFinite)){ + $ERROR('#17: myObj.isFinite !== isFinite'); +} + +try{ + value; + $ERROR('#18: value is not defined'); +} +catch(e){ +} + +if(!(myObj.value === "myObj_value")){ + $ERROR('#19: myObj.value === "myObj_value". Actual: myObj.value ==='+ myObj.value ); +} diff --git a/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A1.7_T3.js b/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A1.7_T3.js new file mode 100644 index 000000000..68f887dbb --- /dev/null +++ b/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A1.7_T3.js @@ -0,0 +1,149 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/** + * @name: S12.10_A1.7_T3; + * @section: 12.10; + * @assertion: The with statement adds a computed object to the front of the + * scope chain of the current execution context; + * @description: Calling a function within "with" statement declared within the statement, leading to normal completion by "return"; + * @strict_mode_negative + */ +this.p1 = 1; +this.p2 = 2; +this.p3 = 3; +var result = "result"; +var myObj = {p1: 'a', + p2: 'b', + p3: 'c', + value: 'myObj_value', + valueOf : function(){return 'obj_valueOf';}, + parseInt : function(){return 'obj_parseInt';}, + NaN : 'obj_NaN', + Infinity : 'obj_Infinity', + eval : function(){return 'obj_eval';}, + parseFloat : function(){return 'obj_parseFloat';}, + isNaN : function(){return 'obj_isNaN';}, + isFinite : function(){return 'obj_isFinite';} +} +var del; +var st_p1 = "p1"; +var st_p2 = "p2"; +var st_p3 = "p3"; +var st_parseInt = "parseInt"; +var st_NaN = "NaN"; +var st_Infinity = "Infinity"; +var st_eval = "eval"; +var st_parseFloat = "parseFloat"; +var st_isNaN = "isNaN"; +var st_isFinite = "isFinite"; + +with(myObj){ + var f = function(){ + return value; + st_p1 = p1; + st_p2 = p2; + st_p3 = p3; + st_parseInt = parseInt; + st_NaN = NaN; + st_Infinity = Infinity; + st_eval = eval; + st_parseFloat = parseFloat; + st_isNaN = isNaN; + st_isFinite = isFinite; + p1 = 'x1'; + this.p2 = 'x2'; + del = delete p3; + var p4 = 'x4'; + p5 = 'x5'; + var value = 'value'; + } + result = f(); +} + +if(!(result === undefined)){ + $ERROR('#0: result === undefined. Actual: result ==='+ result ); +} + +if(!(p1 === 1)){ + $ERROR('#1: p1 === 1. Actual: p1 ==='+ p1 ); +} + +if(!(p2 === 2)){ + $ERROR('#2: p2 === 2. Actual: p2 ==='+ p2 ); +} + +if(!(p3 === 3)){ + $ERROR('#3: p3 === 3. Actual: p3 ==='+ p3 ); +} + +try { + p4; + $ERROR('#4: p4 is not defined'); +} catch(e) { +} + +try { + p5; + $ERROR('#5: p5 is not defined'); +} catch(e) { +} + +if(!(myObj.p1 === "a")){ + $ERROR('#6: myObj.p1 === "a". Actual: myObj.p1 ==='+ myObj.p1 ); +} + +if(!(myObj.p2 === "b")){ + $ERROR('#7: myObj.p2 === "b". Actual: myObj.p2 ==='+ myObj.p2 ); +} + +if(!(myObj.p3 === "c")){ + $ERROR('#8: myObj.p3 === "c". Actual: myObj.p3 ==='+ myObj.p3 ); +} + +if(!(myObj.p4 === undefined)){ + $ERROR('#9: myObj.p4 === undefined. Actual: myObj.p4 ==='+ myObj.p4 ); +} + +if(!(myObj.p5 === undefined)){ + $ERROR('#10: myObj.p5 === undefined. Actual: myObj.p5 ==='+ myObj.p5 ); +} + +if(!(st_parseInt === "parseInt")){ + $ERROR('#11: myObj.parseInt === "parseInt". Actual: myObj.parseInt ==='+ myObj.parseInt ); +} + +if(!(st_NaN === "NaN")){ + $ERROR('#12: st_NaN === "NaN". Actual: st_NaN ==='+ st_NaN ); +} + +if(!(st_Infinity === "Infinity")){ + $ERROR('#13: st_Infinity === "Infinity". Actual: st_Infinity ==='+ st_Infinity ); +} + +if(!(st_eval === "eval")){ + $ERROR('#14: st_eval === "eval". Actual: st_eval ==='+ st_eval ); +} + +if(!(st_parseFloat === "parseFloat")){ + $ERROR('#15: st_parseFloat === "parseFloat". Actual: st_parseFloat ==='+ st_parseFloat ); +} + +if(!(st_isNaN === "isNaN")){ + $ERROR('#16: st_isNaN === "isNaN". Actual: st_isNaN ==='+ st_isNaN ); +} + +if(!(st_isFinite === "isFinite")){ + $ERROR('#17: st_isFinite === "isFinite". Actual: st_isFinite ==='+ st_isFinite ); +} + +try{ + value; + $ERROR('#18: value is not defined'); +} +catch(e){ +} + +if(!(myObj.value === "myObj_value")){ + $ERROR('#19: myObj.value === "myObj_value". Actual: myObj.value ==='+ myObj.value ); +} diff --git a/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A1.7_T4.js b/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A1.7_T4.js new file mode 100644 index 000000000..54f9edcf2 --- /dev/null +++ b/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A1.7_T4.js @@ -0,0 +1,151 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/** + * @name: S12.10_A1.7_T4; + * @section: 12.10; + * @assertion: The with statement adds a computed object to the front of the + * scope chain of the current execution context; + * @description: Calling a function within "with" statement declared within the statement, leading to completion by exception; + * @strict_mode_negative + */ +this.p1 = 1; +this.p2 = 2; +this.p3 = 3; +var result = "result"; +var myObj = {p1: 'a', + p2: 'b', + p3: 'c', + value: 'myObj_value', + valueOf : function(){return 'obj_valueOf';}, + parseInt : function(){return 'obj_parseInt';}, + NaN : 'obj_NaN', + Infinity : 'obj_Infinity', + eval : function(){return 'obj_eval';}, + parseFloat : function(){return 'obj_parseFloat';}, + isNaN : function(){return 'obj_isNaN';}, + isFinite : function(){return 'obj_isFinite';} +} +var del; +var st_p1 = "p1"; +var st_p2 = "p2"; +var st_p3 = "p3"; +var st_parseInt = "parseInt"; +var st_NaN = "NaN"; +var st_Infinity = "Infinity"; +var st_eval = "eval"; +var st_parseFloat = "parseFloat"; +var st_isNaN = "isNaN"; +var st_isFinite = "isFinite"; + +try { + with(myObj){ + var f = function(){ + st_p1 = p1; + st_p2 = p2; + st_p3 = p3; + st_parseInt = parseInt; + st_NaN = NaN; + st_Infinity = Infinity; + st_eval = eval; + st_parseFloat = parseFloat; + st_isNaN = isNaN; + st_isFinite = isFinite; + p1 = 'x1'; + this.p2 = 'x2'; + del = delete p3; + var p4 = 'x4'; + p5 = 'x5'; + var value = 'value'; + throw value; + } + f(); + } +} catch(e){ + result = e; +} + +if(!(result === "value")){ + $ERROR('#0: result === "value". Actual: result ==='+ result ); +} + +if(!(p1 === 1)){ + $ERROR('#1: p1 === 1. Actual: p1 ==='+ p1 ); +} + +if(!(p2 === "x2")){ + $ERROR('#2: p2 === "x2". Actual: p2 ==='+ p2 ); +} + +if(!(p3 === 3)){ + $ERROR('#3: p3 === 3. Actual: p3 ==='+ p3 ); +} + +try { + p4; + $ERROR('#4: p4 is not defined'); +} catch(e) { +} + +if(!(p5 === "x5")){ + $ERROR('#5: p5 === "x5". Actual: p5 ==='+ p5 ); +} + +if(!(myObj.p1 === "x1")){ + $ERROR('#6: myObj.p1 === "x1". Actual: myObj.p1 ==='+ myObj.p1 ); +} + +if(!(myObj.p2 === "b")){ + $ERROR('#7: myObj.p2 === "b". Actual: myObj.p2 ==='+ myObj.p2 ); +} + +if(!(myObj.p3 === undefined)){ + $ERROR('#8: myObj.p3 === undefined. Actual: myObj.p3 ==='+ myObj.p3 ); +} + +if(!(myObj.p4 === undefined)){ + $ERROR('#9: myObj.p4 === undefined. Actual: myObj.p4 ==='+ myObj.p4 ); +} + +if(!(myObj.p5 === undefined)){ + $ERROR('#10: myObj.p5 === undefined. Actual: myObj.p5 ==='+ myObj.p5 ); +} + +if(!(st_parseInt !== parseInt)){ + $ERROR('#11: myObj.parseInt !== parseInt'); +} + +if(!(st_NaN === "obj_NaN")){ + $ERROR('#12: myObj.NaN !== NaN'); +} + +if(!(st_Infinity !== Infinity)){ + $ERROR('#13: myObj.Infinity !== Infinity'); +} + +if(!(st_eval !== eval)){ + $ERROR('#14: myObj.eval !== eval'); +} + +if(!(st_parseFloat !== parseFloat)){ + $ERROR('#15: myObj.parseFloat !== parseFloat'); +} + +if(!(st_isNaN !== isNaN)){ + $ERROR('#16: myObj.isNaN !== isNaN'); +} + +if(!(st_isFinite !== isFinite)){ + $ERROR('#17: myObj.isFinite !== isFinite'); +} + +try{ + value; + $ERROR('#18: value is not defined'); +} +catch(e){ +} + +if(!(myObj.value === "myObj_value")){ + $ERROR('#19: myObj.value === "myObj_value". Actual: myObj.value ==='+ myObj.value ); +} diff --git a/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A1.7_T5.js b/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A1.7_T5.js new file mode 100644 index 000000000..4c9f1b010 --- /dev/null +++ b/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A1.7_T5.js @@ -0,0 +1,153 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/** + * @name: S12.10_A1.7_T5; + * @section: 12.10; + * @assertion: The with statement adds a computed object to the front of the + * scope chain of the current execution context; + * @description: Calling a function within "with" statement declared within the statement, leading to completion by exception; + * @strict_mode_negative + */ +this.p1 = 1; +this.p2 = 2; +this.p3 = 3; +var result = "result"; +var myObj = {p1: 'a', + p2: 'b', + p3: 'c', + value: 'myObj_value', + valueOf : function(){return 'obj_valueOf';}, + parseInt : function(){return 'obj_parseInt';}, + NaN : 'obj_NaN', + Infinity : 'obj_Infinity', + eval : function(){return 'obj_eval';}, + parseFloat : function(){return 'obj_parseFloat';}, + isNaN : function(){return 'obj_isNaN';}, + isFinite : function(){return 'obj_isFinite';} +} +var del; +var st_p1 = "p1"; +var st_p2 = "p2"; +var st_p3 = "p3"; +var st_parseInt = "parseInt"; +var st_NaN = "NaN"; +var st_Infinity = "Infinity"; +var st_eval = "eval"; +var st_parseFloat = "parseFloat"; +var st_isNaN = "isNaN"; +var st_isFinite = "isFinite"; + +try { + with(myObj){ + var f = function(){ + throw value; + st_p1 = p1; + st_p2 = p2; + st_p3 = p3; + st_parseInt = parseInt; + st_NaN = NaN; + st_Infinity = Infinity; + st_eval = eval; + st_parseFloat = parseFloat; + st_isNaN = isNaN; + st_isFinite = isFinite; + p1 = 'x1'; + this.p2 = 'x2'; + del = delete p3; + var p4 = 'x4'; + p5 = 'x5'; + var value = 'value'; + } + f(); + } +} catch(e){ + result = e; +} + +if(!(result === undefined)){ + $ERROR('#0: result === undefined. Actual: result ==='+ result ); +} + +if(!(p1 === 1)){ + $ERROR('#1: p1 === 1. Actual: p1 ==='+ p1 ); +} + +if(!(p2 === 2)){ + $ERROR('#2: p2 === 2. Actual: p2 ==='+ p2 ); +} + +if(!(p3 === 3)){ + $ERROR('#3: p3 === 3. Actual: p3 ==='+ p3 ); +} + +try { + p4; + $ERROR('#4: p4 is not defined'); +} catch(e) { +} + +try { + p5; + $ERROR('#5: p5 is not defined'); +} catch(e) { +} + +if(!(myObj.p1 === "a")){ + $ERROR('#6: myObj.p1 === "a". Actual: myObj.p1 ==='+ myObj.p1 ); +} + +if(!(myObj.p2 === "b")){ + $ERROR('#7: myObj.p2 === "b". Actual: myObj.p2 ==='+ myObj.p2 ); +} + +if(!(myObj.p3 === "c")){ + $ERROR('#8: myObj.p3 === "c". Actual: myObj.p3 ==='+ myObj.p3 ); +} + +if(!(myObj.p4 === undefined)){ + $ERROR('#9: myObj.p4 === undefined. Actual: myObj.p4 ==='+ myObj.p4 ); +} + +if(!(myObj.p5 === undefined)){ + $ERROR('#10: myObj.p5 === undefined. Actual: myObj.p5 ==='+ myObj.p5 ); +} + +if(!(st_parseInt === "parseInt")){ + $ERROR('#11: myObj.parseInt === "parseInt". Actual: myObj.parseInt ==='+ myObj.parseInt ); +} + +if(!(st_NaN === "NaN")){ + $ERROR('#12: st_NaN === "NaN". Actual: st_NaN ==='+ st_NaN ); +} + +if(!(st_Infinity === "Infinity")){ + $ERROR('#13: st_Infinity === "Infinity". Actual: st_Infinity ==='+ st_Infinity ); +} + +if(!(st_eval === "eval")){ + $ERROR('#14: st_eval === "eval". Actual: st_eval ==='+ st_eval ); +} + +if(!(st_parseFloat === "parseFloat")){ + $ERROR('#15: st_parseFloat === "parseFloat". Actual: st_parseFloat ==='+ st_parseFloat ); +} + +if(!(st_isNaN === "isNaN")){ + $ERROR('#16: st_isNaN === "isNaN". Actual: st_isNaN ==='+ st_isNaN ); +} + +if(!(st_isFinite === "isFinite")){ + $ERROR('#17: st_isFinite === "isFinite". Actual: st_isFinite ==='+ st_isFinite ); +} + +try{ + value; + $ERROR('#18: value is not defined'); +} +catch(e){ +} + +if(!(myObj.value === "myObj_value")){ + $ERROR('#19: myObj.value === "myObj_value". Actual: myObj.value ==='+ myObj.value ); +} diff --git a/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A1.8_T1.js b/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A1.8_T1.js new file mode 100644 index 000000000..ca1809325 --- /dev/null +++ b/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A1.8_T1.js @@ -0,0 +1,142 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/** + * @name: S12.10_A1.8_T1; + * @section: 12.10; + * @assertion: The with statement adds a computed object to the front of the + * scope chain of the current execution context; + * @description: Declaring function constructor within "with" statement, leading to normal completion; + * @strict_mode_negative + */ +this.p1 = 1; +this.p2 = 2; +this.p3 = 3; +var result = "result"; +var myObj = {p1: 'a', + p2: 'b', + p3: 'c', + value: 'myObj_value', + valueOf : function(){return 'obj_valueOf';}, + parseInt : function(){return 'obj_parseInt';}, + NaN : 'obj_NaN', + Infinity : 'obj_Infinity', + eval : function(){return 'obj_eval';}, + parseFloat : function(){return 'obj_parseFloat';}, + isNaN : function(){return 'obj_isNaN';}, + isFinite : function(){return 'obj_isFinite';} +} +var del; +var st_p1 = "p1"; +var st_p2 = "p2"; +var st_p3 = "p3"; +var st_parseInt = "parseInt"; +var st_NaN = "NaN"; +var st_Infinity = "Infinity"; +var st_eval = "eval"; +var st_parseFloat = "parseFloat"; +var st_isNaN = "isNaN"; +var st_isFinite = "isFinite"; + +with(myObj){ + var f = function(){ + st_p1 = p1; + st_p2 = p2; + st_p3 = p3; + st_parseInt = parseInt; + st_NaN = NaN; + st_Infinity = Infinity; + st_eval = eval; + st_parseFloat = parseFloat; + st_isNaN = isNaN; + st_isFinite = isFinite; + p1 = 'x1'; + this.p2 = 'x2'; + del = delete p3; + var p4 = 'x4'; + p5 = 'x5'; + var value = 'value'; + } + var obj = new f(); +} + +if(!(p1 === 1)){ + $ERROR('#1: p1 === 1. Actual: p1 ==='+ p1 ); +} + +if(!(p2 === 2)){ + $ERROR('#2: p2 === 2. Actual: p2 ==='+ p2 ); +} + +if(!(p3 === 3)){ + $ERROR('#3: p3 === 3. Actual: p3 ==='+ p3 ); +} + +try { + p4; + $ERROR('#4: p4 is not defined'); +} catch(e) { +} + +if(!(p5 === "x5")){ + $ERROR('#5: p5 === "x5". Actual: p5 ==='+ p5 ); +} + +if(!(myObj.p1 === "x1")){ + $ERROR('#6: myObj.p1 === "x1". Actual: myObj.p1 ==='+ myObj.p1 ); +} + +if(!(myObj.p2 === "b")){ + $ERROR('#7: myObj.p2 === "b". Actual: myObj.p2 ==='+ myObj.p2 ); +} + +if(!(myObj.p3 === undefined)){ + $ERROR('#8: myObj.p3 === undefined. Actual: myObj.p3 ==='+ myObj.p3 ); +} + +if(!(myObj.p4 === undefined)){ + $ERROR('#9: myObj.p4 === undefined. Actual: myObj.p4 ==='+ myObj.p4 ); +} + +if(!(myObj.p5 === undefined)){ + $ERROR('#10: myObj.p5 === undefined. Actual: myObj.p5 ==='+ myObj.p5 ); +} + +if(!(st_parseInt !== parseInt)){ + $ERROR('#11: myObj.parseInt !== parseInt'); +} + +if(!(st_NaN === "obj_NaN")){ + $ERROR('#12: myObj.NaN !== NaN'); +} + +if(!(st_Infinity !== Infinity)){ + $ERROR('#13: myObj.Infinity !== Infinity'); +} + +if(!(st_eval !== eval)){ + $ERROR('#14: myObj.eval !== eval'); +} + +if(!(st_parseFloat !== parseFloat)){ + $ERROR('#15: myObj.parseFloat !== parseFloat'); +} + +if(!(st_isNaN !== isNaN)){ + $ERROR('#16: myObj.isNaN !== isNaN'); +} + +if(!(st_isFinite !== isFinite)){ + $ERROR('#17: myObj.isFinite !== isFinite'); +} + +try{ + value; + $ERROR('#18: value is not defined'); +} +catch(e){ +} + +if(!(myObj.value === "myObj_value")){ + $ERROR('#19: myObj.value === "myObj_value". Actual: myObj.value ==='+ myObj.value ); +} diff --git a/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A1.8_T2.js b/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A1.8_T2.js new file mode 100644 index 000000000..f65041c7d --- /dev/null +++ b/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A1.8_T2.js @@ -0,0 +1,142 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/** + * @name: S12.10_A1.8_T2; + * @section: 12.10; + * @assertion: The with statement adds a computed object to the front of the + * scope chain of the current execution context; + * @description: Declaring function constructor within "with" statement, leading to normal completion by "return"; + * @strict_mode_negative + */ +this.p1 = 1; +this.p2 = 2; +this.p3 = 3; +var result = "result"; +var myObj = {p1: 'a', + p2: 'b', + p3: 'c', + value: 'myObj_value', + valueOf : function(){return 'obj_valueOf';}, + parseInt : function(){return 'obj_parseInt';}, + NaN : 'obj_NaN', + Infinity : 'obj_Infinity', + eval : function(){return 'obj_eval';}, + parseFloat : function(){return 'obj_parseFloat';}, + isNaN : function(){return 'obj_isNaN';}, + isFinite : function(){return 'obj_isFinite';} +} +var del; +var st_p1 = "p1"; +var st_p2 = "p2"; +var st_p3 = "p3"; +var st_parseInt = "parseInt"; +var st_NaN = "NaN"; +var st_Infinity = "Infinity"; +var st_eval = "eval"; +var st_parseFloat = "parseFloat"; +var st_isNaN = "isNaN"; +var st_isFinite = "isFinite"; + +with(myObj){ + var f = function(){ + st_p1 = p1; + st_p2 = p2; + st_p3 = p3; + st_parseInt = parseInt; + st_NaN = NaN; + st_Infinity = Infinity; + st_eval = eval; + st_parseFloat = parseFloat; + st_isNaN = isNaN; + st_isFinite = isFinite; + p1 = 'x1'; + this.p2 = 'x2'; + del = delete p3; + var p4 = 'x4'; + p5 = 'x5'; + var value = 'value'; + return value; + } + var obj = new f(); +} + +if(!(p1 === 1)){ + $ERROR('#1: p1 === 1. Actual: p1 ==='+ p1 ); +} + +if(!(p2 === 2)){ + $ERROR('#2: p2 === 2. Actual: p2 ==='+ p2 ); +} + +if(!(p3 === 3)){ + $ERROR('#3: p3 === 3. Actual: p3 ==='+ p3 ); +} +try { + p4; + $ERROR('#4: p4 is not defined'); +} catch(e) { +} + +if(!(p5 === "x5")){ + $ERROR('#5: p5 === "x5". Actual: p5 ==='+ p5 ); +} + +if(!(myObj.p1 === "x1")){ + $ERROR('#6: myObj.p1 === "x1". Actual: myObj.p1 ==='+ myObj.p1 ); +} + +if(!(myObj.p2 === "b")){ + $ERROR('#7: myObj.p2 === "b". Actual: myObj.p2 ==='+ myObj.p2 ); +} + +if(!(myObj.p3 === undefined)){ + $ERROR('#8: myObj.p3 === undefined. Actual: myObj.p3 ==='+ myObj.p3 ); +} + +if(!(myObj.p4 === undefined)){ + $ERROR('#9: myObj.p4 === undefined. Actual: myObj.p4 ==='+ myObj.p4 ); +} + +if(!(myObj.p5 === undefined)){ + $ERROR('#10: myObj.p5 === undefined. Actual: myObj.p5 ==='+ myObj.p5 ); +} + +if(!(st_parseInt !== parseInt)){ + $ERROR('#11: myObj.parseInt !== parseInt'); +} + +if(!(st_NaN === "obj_NaN")){ + $ERROR('#12: myObj.NaN !== NaN'); +} + +if(!(st_Infinity !== Infinity)){ + $ERROR('#13: myObj.Infinity !== Infinity'); +} + +if(!(st_eval !== eval)){ + $ERROR('#14: myObj.eval !== eval'); +} + +if(!(st_parseFloat !== parseFloat)){ + $ERROR('#15: myObj.parseFloat !== parseFloat'); +} + +if(!(st_isNaN !== isNaN)){ + $ERROR('#16: myObj.isNaN !== isNaN'); +} + +if(!(st_isFinite !== isFinite)){ + $ERROR('#17: myObj.isFinite !== isFinite'); +} + +try{ + value; + $ERROR('#18: value is not defined'); +} +catch(e){ +} + +if(!(myObj.value === "myObj_value")){ + $ERROR('#19: myObj.value === "myObj_value". Actual: myObj.value ==='+ myObj.value ); +} diff --git a/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A1.8_T3.js b/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A1.8_T3.js new file mode 100644 index 000000000..f341e365b --- /dev/null +++ b/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A1.8_T3.js @@ -0,0 +1,145 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/** + * @name: S12.10_A1.8_T3; + * @section: 12.10; + * @assertion: The with statement adds a computed object to the front of the + * scope chain of the current execution context; + * @description: Declaring function constructor within "with" statement, leading to normal completion by "return"; + * @strict_mode_negative + */ +this.p1 = 1; +this.p2 = 2; +this.p3 = 3; +var result = "result"; +var myObj = {p1: 'a', + p2: 'b', + p3: 'c', + value: 'myObj_value', + valueOf : function(){return 'obj_valueOf';}, + parseInt : function(){return 'obj_parseInt';}, + NaN : 'obj_NaN', + Infinity : 'obj_Infinity', + eval : function(){return 'obj_eval';}, + parseFloat : function(){return 'obj_parseFloat';}, + isNaN : function(){return 'obj_isNaN';}, + isFinite : function(){return 'obj_isFinite';} +} +var del; +var st_p1 = "p1"; +var st_p2 = "p2"; +var st_p3 = "p3"; +var st_parseInt = "parseInt"; +var st_NaN = "NaN"; +var st_Infinity = "Infinity"; +var st_eval = "eval"; +var st_parseFloat = "parseFloat"; +var st_isNaN = "isNaN"; +var st_isFinite = "isFinite"; + +with(myObj){ + var f = function(){ + return value; + st_p1 = p1; + st_p2 = p2; + st_p3 = p3; + st_parseInt = parseInt; + st_NaN = NaN; + st_Infinity = Infinity; + st_eval = eval; + st_parseFloat = parseFloat; + st_isNaN = isNaN; + st_isFinite = isFinite; + p1 = 'x1'; + this.p2 = 'x2'; + del = delete p3; + var p4 = 'x4'; + p5 = 'x5'; + var value = 'value'; + } + var obj = new f(); +} + +if(!(p1 === 1)){ + $ERROR('#1: p1 === 1. Actual: p1 ==='+ p1 ); +} + +if(!(p2 === 2)){ + $ERROR('#2: p2 === 2. Actual: p2 ==='+ p2 ); +} + +if(!(p3 === 3)){ + $ERROR('#3: p3 === 3. Actual: p3 ==='+ p3 ); +} + +try { + p4; + $ERROR('#4: p4 is not defined'); +} catch(e) { +} + +try { + p5; + $ERROR('#5: p5 is not defined'); +} catch(e) { +} + +if(!(myObj.p1 === "a")){ + $ERROR('#6: myObj.p1 === "a". Actual: myObj.p1 ==='+ myObj.p1 ); +} + +if(!(myObj.p2 === "b")){ + $ERROR('#7: myObj.p2 === "b". Actual: myObj.p2 ==='+ myObj.p2 ); +} + +if(!(myObj.p3 === "c")){ + $ERROR('#8: myObj.p3 === "c". Actual: myObj.p3 ==='+ myObj.p3 ); +} + +if(!(myObj.p4 === undefined)){ + $ERROR('#9: myObj.p4 === undefined. Actual: myObj.p4 ==='+ myObj.p4 ); +} + +if(!(myObj.p5 === undefined)){ + $ERROR('#10: myObj.p5 === undefined. Actual: myObj.p5 ==='+ myObj.p5 ); +} + +if(!(st_parseInt === "parseInt")){ + $ERROR('#11: myObj.parseInt === "parseInt". Actual: myObj.parseInt ==='+ myObj.parseInt ); +} + +if(!(st_NaN === "NaN")){ + $ERROR('#12: st_NaN === "NaN". Actual: st_NaN ==='+ st_NaN ); +} + +if(!(st_Infinity === "Infinity")){ + $ERROR('#13: st_Infinity === "Infinity". Actual: st_Infinity ==='+ st_Infinity ); +} + +if(!(st_eval === "eval")){ + $ERROR('#14: st_eval === "eval". Actual: st_eval ==='+ st_eval ); +} + +if(!(st_parseFloat === "parseFloat")){ + $ERROR('#15: st_parseFloat === "parseFloat". Actual: st_parseFloat ==='+ st_parseFloat ); +} + +if(!(st_isNaN === "isNaN")){ + $ERROR('#16: st_isNaN === "isNaN". Actual: st_isNaN ==='+ st_isNaN ); +} + +if(!(st_isFinite === "isFinite")){ + $ERROR('#17: st_isFinite === "isFinite". Actual: st_isFinite ==='+ st_isFinite ); +} + +try{ + value; + $ERROR('#18: value is not defined'); +} +catch(e){ +} + +if(!(myObj.value === "myObj_value")){ + $ERROR('#19: myObj.value === "myObj_value". Actual: myObj.value ==='+ myObj.value ); +} diff --git a/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A1.8_T4.js b/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A1.8_T4.js new file mode 100644 index 000000000..fe72cb4d1 --- /dev/null +++ b/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A1.8_T4.js @@ -0,0 +1,150 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/** + * @name: S12.10_A1.8_T4; + * @section: 12.10; + * @assertion: The with statement adds a computed object to the front of the + * scope chain of the current execution context; + * @description: Declaring function constructor within "with" statement, leading to completion by exception; + * @strict_mode_negative + */ +this.p1 = 1; +this.p2 = 2; +this.p3 = 3; +var result = "result"; +var myObj = {p1: 'a', + p2: 'b', + p3: 'c', + value: 'myObj_value', + valueOf : function(){return 'obj_valueOf';}, + parseInt : function(){return 'obj_parseInt';}, + NaN : 'obj_NaN', + Infinity : 'obj_Infinity', + eval : function(){return 'obj_eval';}, + parseFloat : function(){return 'obj_parseFloat';}, + isNaN : function(){return 'obj_isNaN';}, + isFinite : function(){return 'obj_isFinite';} +} +var del; +var st_p1 = "p1"; +var st_p2 = "p2"; +var st_p3 = "p3"; +var st_parseInt = "parseInt"; +var st_NaN = "NaN"; +var st_Infinity = "Infinity"; +var st_eval = "eval"; +var st_parseFloat = "parseFloat"; +var st_isNaN = "isNaN"; +var st_isFinite = "isFinite"; + +try { + with(myObj){ + var f = function(){ + st_p1 = p1; + st_p2 = p2; + st_p3 = p3; + st_parseInt = parseInt; + st_NaN = NaN; + st_Infinity = Infinity; + st_eval = eval; + st_parseFloat = parseFloat; + st_isNaN = isNaN; + st_isFinite = isFinite; + p1 = 'x1'; + this.p2 = 'x2'; + del = delete p3; + var p4 = 'x4'; + p5 = 'x5'; + var value = 'value'; + throw value; + } + var obj = new f(); + } +} catch(e){ + result = e; +} + +if(!(result === "value")){ + $ERROR('#0: result === "value". Actual: result ==='+ result ); +} + +if(!(p1 === 1)){ + $ERROR('#1: p1 === 1. Actual: p1 ==='+ p1 ); +} + +if(!(p2 === 2)){ + $ERROR('#2: p2 === 2. Actual: p2 ==='+ p2 ); +} + +if(!(p3 === 3)){ + $ERROR('#3: p3 === 3. Actual: p3 ==='+ p3 ); +} +try { + p4; + $ERROR('#4: p4 is not defined'); +} catch(e) { +} + +if(!(p5 === "x5")){ + $ERROR('#5: p5 === "x5". Actual: p5 ==='+ p5 ); +} + +if(!(myObj.p1 === "x1")){ + $ERROR('#6: myObj.p1 === "x1". Actual: myObj.p1 ==='+ myObj.p1 ); +} + +if(!(myObj.p2 === "b")){ + $ERROR('#7: myObj.p2 === "b". Actual: myObj.p2 ==='+ myObj.p2 ); +} + +if(!(myObj.p3 === undefined)){ + $ERROR('#8: myObj.p3 === undefined. Actual: myObj.p3 ==='+ myObj.p3 ); +} + +if(!(myObj.p4 === undefined)){ + $ERROR('#9: myObj.p4 === undefined. Actual: myObj.p4 ==='+ myObj.p4 ); +} + +if(!(myObj.p5 === undefined)){ + $ERROR('#10: myObj.p5 === undefined. Actual: myObj.p5 ==='+ myObj.p5 ); +} + +if(!(st_parseInt !== parseInt)){ + $ERROR('#11: myObj.parseInt !== parseInt'); +} + +if(!(st_NaN === "obj_NaN")){ + $ERROR('#12: myObj.NaN !== NaN'); +} + +if(!(st_Infinity !== Infinity)){ + $ERROR('#13: myObj.Infinity !== Infinity'); +} + +if(!(st_eval !== eval)){ + $ERROR('#14: myObj.eval !== eval'); +} + +if(!(st_parseFloat !== parseFloat)){ + $ERROR('#15: myObj.parseFloat !== parseFloat'); +} + +if(!(st_isNaN !== isNaN)){ + $ERROR('#16: myObj.isNaN !== isNaN'); +} + +if(!(st_isFinite !== isFinite)){ + $ERROR('#17: myObj.isFinite !== isFinite'); +} + +try{ + value; + $ERROR('#18: value is not defined'); +} +catch(e){ +} + +if(!(myObj.value === "myObj_value")){ + $ERROR('#19: myObj.value === "myObj_value". Actual: myObj.value ==='+ myObj.value ); +} diff --git a/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A1.8_T5.js b/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A1.8_T5.js new file mode 100644 index 000000000..4e83da95e --- /dev/null +++ b/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A1.8_T5.js @@ -0,0 +1,153 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/** + * @name: S12.10_A1.8_T5; + * @section: 12.10; + * @assertion: The with statement adds a computed object to the front of the + * scope chain of the current execution context; + * @description: Declaring function constructor within "with" statement, leading to completion by exception; + * @strict_mode_negative + */ +this.p1 = 1; +this.p2 = 2; +this.p3 = 3; +var result = "result"; +var myObj = {p1: 'a', + p2: 'b', + p3: 'c', + value: 'myObj_value', + valueOf : function(){return 'obj_valueOf';}, + parseInt : function(){return 'obj_parseInt';}, + NaN : 'obj_NaN', + Infinity : 'obj_Infinity', + eval : function(){return 'obj_eval';}, + parseFloat : function(){return 'obj_parseFloat';}, + isNaN : function(){return 'obj_isNaN';}, + isFinite : function(){return 'obj_isFinite';} +} +var del; +var st_p1 = "p1"; +var st_p2 = "p2"; +var st_p3 = "p3"; +var st_parseInt = "parseInt"; +var st_NaN = "NaN"; +var st_Infinity = "Infinity"; +var st_eval = "eval"; +var st_parseFloat = "parseFloat"; +var st_isNaN = "isNaN"; +var st_isFinite = "isFinite"; + +try { + with(myObj){ + var f = function(){ + throw value; + st_p1 = p1; + st_p2 = p2; + st_p3 = p3; + st_parseInt = parseInt; + st_NaN = NaN; + st_Infinity = Infinity; + st_eval = eval; + st_parseFloat = parseFloat; + st_isNaN = isNaN; + st_isFinite = isFinite; + p1 = 'x1'; + this.p2 = 'x2'; + del = delete p3; + var p4 = 'x4'; + p5 = 'x5'; + var value = 'value'; + } + var obj = new f(); + } +} catch(e){ + result = e; +} + +if(!(result === undefined)){ + $ERROR('#0: result === undefined. Actual: result ==='+ result ); +} + +if(!(p1 === 1)){ + $ERROR('#1: p1 === 1. Actual: p1 ==='+ p1 ); +} + +if(!(p2 === 2)){ + $ERROR('#2: p2 === 2. Actual: p2 ==='+ p2 ); +} + +if(!(p3 === 3)){ + $ERROR('#3: p3 === 3. Actual: p3 ==='+ p3 ); +} + +try { + p4; + $ERROR('#4: p4 is not defined'); +} catch(e) { +} + +try { + p5; + $ERROR('#5: p5 is not defined'); +} catch(e) { +} + +if(!(myObj.p1 === "a")){ + $ERROR('#6: myObj.p1 === "a". Actual: myObj.p1 ==='+ myObj.p1 ); +} + +if(!(myObj.p2 === "b")){ + $ERROR('#7: myObj.p2 === "b". Actual: myObj.p2 ==='+ myObj.p2 ); +} + +if(!(myObj.p3 === "c")){ + $ERROR('#8: myObj.p3 === "c". Actual: myObj.p3 ==='+ myObj.p3 ); +} + +if(!(myObj.p4 === undefined)){ + $ERROR('#9: myObj.p4 === undefined. Actual: myObj.p4 ==='+ myObj.p4 ); +} + +if(!(myObj.p5 === undefined)){ + $ERROR('#10: myObj.p5 === undefined. Actual: myObj.p5 ==='+ myObj.p5 ); +} + +if(!(st_parseInt === "parseInt")){ + $ERROR('#11: myObj.parseInt === "parseInt". Actual: myObj.parseInt ==='+ myObj.parseInt ); +} + +if(!(st_NaN === "NaN")){ + $ERROR('#12: st_NaN === "NaN". Actual: st_NaN ==='+ st_NaN ); +} + +if(!(st_Infinity === "Infinity")){ + $ERROR('#13: st_Infinity === "Infinity". Actual: st_Infinity ==='+ st_Infinity ); +} + +if(!(st_eval === "eval")){ + $ERROR('#14: st_eval === "eval". Actual: st_eval ==='+ st_eval ); +} + +if(!(st_parseFloat === "parseFloat")){ + $ERROR('#15: st_parseFloat === "parseFloat". Actual: st_parseFloat ==='+ st_parseFloat ); +} + +if(!(st_isNaN === "isNaN")){ + $ERROR('#16: st_isNaN === "isNaN". Actual: st_isNaN ==='+ st_isNaN ); +} + +if(!(st_isFinite === "isFinite")){ + $ERROR('#17: st_isFinite === "isFinite". Actual: st_isFinite ==='+ st_isFinite ); +} + +try{ + value; + $ERROR('#18: value is not defined'); +} +catch(e){ +} + +if(!(myObj.value === "myObj_value")){ + $ERROR('#19: myObj.value === "myObj_value". Actual: myObj.value ==='+ myObj.value ); +} diff --git a/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A1.9_T1.js b/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A1.9_T1.js new file mode 100644 index 000000000..411217c2a --- /dev/null +++ b/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A1.9_T1.js @@ -0,0 +1,142 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/** + * @name: S12.10_A1.9_T1; + * @section: 12.10; + * @assertion: The with statement adds a computed object to the front of the + * scope chain of the current execution context; + * @description: Using "for-in" statement within "with" statement, leading to normal completion; + * @strict_mode_negative + */ +this.p1 = 1; +this.p2 = 2; +this.p3 = 3; +var result = "result"; +var myObj = {p1: 'a', + p2: 'b', + p3: 'c', + value: 'myObj_value', + valueOf : function(){return 'obj_valueOf';}, + parseInt : function(){return 'obj_parseInt';}, + NaN : 'obj_NaN', + Infinity : 'obj_Infinity', + eval : function(){return 'obj_eval';}, + parseFloat : function(){return 'obj_parseFloat';}, + isNaN : function(){return 'obj_isNaN';}, + isFinite : function(){return 'obj_isFinite';} +} +var del; +var st_p1 = "p1"; +var st_p2 = "p2"; +var st_p3 = "p3"; +var st_parseInt = "parseInt"; +var st_NaN = "NaN"; +var st_Infinity = "Infinity"; +var st_eval = "eval"; +var st_parseFloat = "parseFloat"; +var st_isNaN = "isNaN"; +var st_isFinite = "isFinite"; + +with(myObj){ + for(var prop in myObj){ + if(prop === 'p1') { + st_p1 = p1; + p1 = 'x1'; + } + if(prop === 'p2') { + st_p2 = p2; + this.p2 = 'x2'; + } + if(prop === 'p3') { + st_p3 = p3; + del = delete p3; + } + if(prop === 'parseInt') st_parseInt = parseInt; + if(prop === 'NaN') st_NaN = NaN; + if(prop === 'Infinity') st_Infinity = Infinity; + if(prop === 'eval') st_eval = eval; + if(prop === 'parseFloat') st_parseFloat = parseFloat; + if(prop === 'isNaN') st_isNaN = isNaN; + if(prop === 'isFinite') st_isFinite = isFinite; + var p4 = 'x4'; + p5 = 'x5'; + var value = 'value'; + } +} + +if(!(p1 === 1)){ + $ERROR('#1: p1 === 1. Actual: p1 ==='+ p1 ); +} + +if(!(p2 === "x2")){ + $ERROR('#2: p2 === "x2". Actual: p2 ==='+ p2 ); +} + +if(!(p3 === 3)){ + $ERROR('#3: p3 === 3. Actual: p3 ==='+ p3 ); +} + +if(!(p4 === "x4")){ + $ERROR('#4: p4 === "x4". Actual: p4 ==='+ p4 ); +} + +if(!(p5 === "x5")){ + $ERROR('#5: p5 === "x5". Actual: p5 ==='+ p5 ); +} + +if(!(myObj.p1 === "x1")){ + $ERROR('#6: myObj.p1 === "x1". Actual: myObj.p1 ==='+ myObj.p1 ); +} + +if(!(myObj.p2 === "b")){ + $ERROR('#7: myObj.p2 === "b". Actual: myObj.p2 ==='+ myObj.p2 ); +} + +if(!(myObj.p3 === undefined)){ + $ERROR('#8: myObj.p3 === undefined. Actual: myObj.p3 ==='+ myObj.p3 ); +} + +if(!(myObj.p4 === undefined)){ + $ERROR('#9: myObj.p4 === undefined. Actual: myObj.p4 ==='+ myObj.p4 ); +} + +if(!(myObj.p5 === undefined)){ + $ERROR('#10: myObj.p5 === undefined. Actual: myObj.p5 ==='+ myObj.p5 ); +} + +if(!(st_parseInt !== parseInt)){ + $ERROR('#11: myObj.parseInt !== parseInt'); +} + +if(!(st_NaN === "obj_NaN")){ + $ERROR('#12: myObj.NaN !== NaN'); +} + +if(!(st_Infinity !== Infinity)){ + $ERROR('#13: myObj.Infinity !== Infinity'); +} + +if(!(st_eval !== eval)){ + $ERROR('#14: myObj.eval !== eval'); +} + +if(!(st_parseFloat !== parseFloat)){ + $ERROR('#15: myObj.parseFloat !== parseFloat'); +} + +if(!(st_isNaN !== isNaN)){ + $ERROR('#16: myObj.isNaN !== isNaN'); +} + +if(!(st_isFinite !== isFinite)){ + $ERROR('#17: myObj.isFinite !== isFinite'); +} + +if(!(value === undefined)){ + $ERROR('#18: value === undefined. Actual: value ==='+ value ); +} + +if(!(myObj.value === "value")){ + $ERROR('#19: myObj.value === "value". Actual: myObj.value ==='+ myObj.value ); +} diff --git a/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A1.9_T2.js b/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A1.9_T2.js new file mode 100644 index 000000000..e79e62b26 --- /dev/null +++ b/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A1.9_T2.js @@ -0,0 +1,137 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/** + * @name: S12.10_A1.9_T2; + * @section: 12.10; + * @assertion: The with statement adds a computed object to the front of the + * scope chain of the current execution context; + * @description: Using "for-in" statement within "with" statement, leading to completion by break; + * @strict_mode_negative + */ +this.p1 = 1; +this.p2 = 2; +this.p3 = 3; +var result = "result"; +var myObj = {p1: 'a', + p2: 'b', + p3: 'c', + value: 'myObj_value', + valueOf : function(){return 'obj_valueOf';}, + parseInt : function(){return 'obj_parseInt';}, + NaN : 'obj_NaN', + Infinity : 'obj_Infinity', + eval : function(){return 'obj_eval';}, + parseFloat : function(){return 'obj_parseFloat';}, + isNaN : function(){return 'obj_isNaN';}, + isFinite : function(){return 'obj_isFinite';} +} +var del; +var st_p1 = "p1"; +var st_p2 = "p2"; +var st_p3 = "p3"; +var st_parseInt = "parseInt"; +var st_NaN = "NaN"; +var st_Infinity = "Infinity"; +var st_eval = "eval"; +var st_parseFloat = "parseFloat"; +var st_isNaN = "isNaN"; +var st_isFinite = "isFinite"; + +with(myObj){ + for(var prop in myObj){ + st_p1 = p1; + p1 = 'x1'; + st_p2 = p2; + this.p2 = 'x2'; + st_p3 = p3; + del = delete p3; + st_parseInt = parseInt; + st_NaN = NaN; + st_Infinity = Infinity; + st_eval = eval; + st_parseFloat = parseFloat; + st_isNaN = isNaN; + st_isFinite = isFinite; + var p4 = 'x4'; + p5 = 'x5'; + var value = 'value'; + break; + } +} + +if(!(p1 === 1)){ + $ERROR('#1: p1 === 1. Actual: p1 ==='+ p1 ); +} + +if(!(p2 === "x2")){ + $ERROR('#2: p2 === "x2". Actual: p2 ==='+ p2 ); +} + +if(!(p3 === 3)){ + $ERROR('#3: p3 === 3. Actual: p3 ==='+ p3 ); +} + +if(!(p4 === "x4")){ + $ERROR('#4: p4 === "x4". Actual: p4 ==='+ p4 ); +} + +if(!(p5 === "x5")){ + $ERROR('#5: p5 === "x5". Actual: p5 ==='+ p5 ); +} + +if(!(myObj.p1 === "x1")){ + $ERROR('#6: myObj.p1 === "x1". Actual: myObj.p1 ==='+ myObj.p1 ); +} + +if(!(myObj.p2 === "b")){ + $ERROR('#7: myObj.p2 === "b". Actual: myObj.p2 ==='+ myObj.p2 ); +} + +if(!(myObj.p3 === undefined)){ + $ERROR('#8: myObj.p3 === undefined. Actual: myObj.p3 ==='+ myObj.p3 ); +} + +if(!(myObj.p4 === undefined)){ + $ERROR('#9: myObj.p4 === undefined. Actual: myObj.p4 ==='+ myObj.p4 ); +} + +if(!(myObj.p5 === undefined)){ + $ERROR('#10: myObj.p5 === undefined. Actual: myObj.p5 ==='+ myObj.p5 ); +} + +if(!(st_parseInt !== parseInt)){ + $ERROR('#11: myObj.parseInt !== parseInt'); +} + +if(!(st_NaN === "obj_NaN")){ + $ERROR('#12: myObj.NaN !== NaN'); +} + +if(!(st_Infinity !== Infinity)){ + $ERROR('#13: myObj.Infinity !== Infinity'); +} + +if(!(st_eval !== eval)){ + $ERROR('#14: myObj.eval !== eval'); +} + +if(!(st_parseFloat !== parseFloat)){ + $ERROR('#15: myObj.parseFloat !== parseFloat'); +} + +if(!(st_isNaN !== isNaN)){ + $ERROR('#16: myObj.isNaN !== isNaN'); +} + +if(!(st_isFinite !== isFinite)){ + $ERROR('#17: myObj.isFinite !== isFinite'); +} + +if(!(value === undefined)){ + $ERROR('#18: value === undefined. Actual: value ==='+ value ); +} + +if(!(myObj.value === "value")){ + $ERROR('#19: myObj.value === "value". Actual: myObj.value ==='+ myObj.value ); +} diff --git a/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A1.9_T3.js b/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A1.9_T3.js new file mode 100644 index 000000000..f7add5e40 --- /dev/null +++ b/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A1.9_T3.js @@ -0,0 +1,145 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/** + * @name: S12.10_A1.9_T3; + * @section: 12.10; + * @assertion: The with statement adds a computed object to the front of the + * scope chain of the current execution context; + * @description: Using "for-in" statement within "with" statement, leading to completion by break; + * @strict_mode_negative + */ +this.p1 = 1; +this.p2 = 2; +this.p3 = 3; +var result = "result"; +var myObj = {p1: 'a', + p2: 'b', + p3: 'c', + value: 'myObj_value', + valueOf : function(){return 'obj_valueOf';}, + parseInt : function(){return 'obj_parseInt';}, + NaN : 'obj_NaN', + Infinity : 'obj_Infinity', + eval : function(){return 'obj_eval';}, + parseFloat : function(){return 'obj_parseFloat';}, + isNaN : function(){return 'obj_isNaN';}, + isFinite : function(){return 'obj_isFinite';} +} +var del; +var st_p1 = "p1"; +var st_p2 = "p2"; +var st_p3 = "p3"; +var st_parseInt = "parseInt"; +var st_NaN = "NaN"; +var st_Infinity = "Infinity"; +var st_eval = "eval"; +var st_parseFloat = "parseFloat"; +var st_isNaN = "isNaN"; +var st_isFinite = "isFinite"; + +with(myObj){ + for(var prop in myObj){ + break; + if(prop === 'p1') { + st_p1 = p1; + p1 = 'x1'; + } + if(prop === 'p2') { + st_p2 = p2; + this.p2 = 'x2'; + } + if(prop === 'p3') { + st_p3 = p3; + del = delete p3; + } + if(prop === 'parseInt') st_parseInt = parseInt; + if(prop === 'NaN') st_NaN = NaN; + if(prop === 'Infinity') st_Infinity = Infinity; + if(prop === 'eval') st_eval = eval; + if(prop === 'parseFloat') st_parseFloat = parseFloat; + if(prop === 'isNaN') st_isNaN = isNaN; + if(prop === 'isFinite') st_isFinite = isFinite; + var p4 = 'x4'; + p5 = 'x5'; + var value = 'value'; + } +} + +if(!(p1 === 1)){ + $ERROR('#1: p1 === 1. Actual: p1 ==='+ p1 ); +} + +if(!(p2 === 2)){ + $ERROR('#2: p2 === 2. Actual: p2 ==='+ p2 ); +} + +if(!(p3 === 3)){ + $ERROR('#3: p3 === 3. Actual: p3 ==='+ p3 ); +} + +if(!(p4 === undefined)){ + $ERROR('#4: p4 === undefined. Actual: p4 ==='+ p4 ); +} + +try { + p5; + $ERROR('#5: p5 is not defined'); +} catch(e) { +} + +if(!(myObj.p1 === "a")){ + $ERROR('#6: myObj.p1 === "a". Actual: myObj.p1 ==='+ myObj.p1 ); +} + +if(!(myObj.p2 === "b")){ + $ERROR('#7: myObj.p2 === "b". Actual: myObj.p2 ==='+ myObj.p2 ); +} + +if(!(myObj.p3 === "c")){ + $ERROR('#8: myObj.p3 === "c". Actual: myObj.p3 ==='+ myObj.p3 ); +} + +if(!(myObj.p4 === undefined)){ + $ERROR('#9: myObj.p4 === undefined. Actual: myObj.p4 ==='+ myObj.p4 ); +} + +if(!(myObj.p5 === undefined)){ + $ERROR('#10: myObj.p5 === undefined. Actual: myObj.p5 ==='+ myObj.p5 ); +} + +if(!(st_parseInt === "parseInt")){ + $ERROR('#11: myObj.parseInt === "parseInt". Actual: myObj.parseInt ==='+ myObj.parseInt ); +} + +if(!(st_NaN === "NaN")){ + $ERROR('#12: st_NaN === "NaN". Actual: st_NaN ==='+ st_NaN ); +} + +if(!(st_Infinity === "Infinity")){ + $ERROR('#13: st_Infinity === "Infinity". Actual: st_Infinity ==='+ st_Infinity ); +} + +if(!(st_eval === "eval")){ + $ERROR('#14: st_eval === "eval". Actual: st_eval ==='+ st_eval ); +} + +if(!(st_parseFloat === "parseFloat")){ + $ERROR('#15: st_parseFloat === "parseFloat". Actual: st_parseFloat ==='+ st_parseFloat ); +} + +if(!(st_isNaN === "isNaN")){ + $ERROR('#16: st_isNaN === "isNaN". Actual: st_isNaN ==='+ st_isNaN ); +} + +if(!(st_isFinite === "isFinite")){ + $ERROR('#17: st_isFinite === "isFinite". Actual: st_isFinite ==='+ st_isFinite ); +} + +if(!(value === undefined)){ + $ERROR('#18: value === undefined. Actual: value ==='+ value ); +} + +if(!(myObj.value === "myObj_value")){ + $ERROR('#19: myObj.value === "myObj_value". Actual: myObj.value ==='+ myObj.value ); +} diff --git a/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A3.10_T1.js b/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A3.10_T1.js new file mode 100644 index 000000000..9171feed0 --- /dev/null +++ b/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A3.10_T1.js @@ -0,0 +1,46 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/** + * @name: S12.10_A3.10_T1; + * @section: 12.10; + * @assertion: No matter how control leaves the embedded 'Statement', + * the scope chain is always restored to its former state; + * @description: Using iteration statement within "with" statement, leading to normal completion; + * @strict_mode_negative + */ + +this.p1 = 1; + +var result = "result"; + +var myObj = { + p1: 'a', + value: 'myObj_value', + valueOf : function(){return 'obj_valueOf';} +} + +with(myObj){ + do{ + p1 = 'x1'; + } while(false); +} + +////////////////////////////////////////////////////////////////////////////// +//CHECK#1 +if(p1 !== 1){ + $ERROR('#1: p1 === 1. Actual: p1 ==='+ p1 ); +} +// +////////////////////////////////////////////////////////////////////////////// + +////////////////////////////////////////////////////////////////////////////// +//CHECK#2 +if(myObj.p1 !== "x1"){ + $ERROR('#2: myObj.p1 === "x1". Actual: myObj.p1 ==='+ myObj.p1 ); +} +// +////////////////////////////////////////////////////////////////////////////// + + + diff --git a/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A3.10_T2.js b/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A3.10_T2.js new file mode 100644 index 000000000..a0ce58c3e --- /dev/null +++ b/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A3.10_T2.js @@ -0,0 +1,56 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/** + * @name: S12.10_A3.10_T2; + * @section: 12.10; + * @assertion: No matter how control leaves the embedded 'Statement', + * the scope chain is always restored to its former state; + * @description: Using iteration statement within "with" statement, leading completion by exception; + * @strict_mode_negative + */ + +this.p1 = 1; + +var result = "result"; + +var myObj = { + p1: 'a', + value: 'myObj_value', + valueOf : function(){return 'obj_valueOf';} +} + +try { + with(myObj){ + do{ + p1 = 'x1'; + throw value; + } while(false); + } +} catch(e){ + result = p1; +} + +////////////////////////////////////////////////////////////////////////////// +//CHECK#1 +if(result !== 1){ + $ERROR('#1: result === 1. Actual: result ==='+ result ); +} +// +////////////////////////////////////////////////////////////////////////////// + +////////////////////////////////////////////////////////////////////////////// +//CHECK#2 +if(p1 !== 1){ + $ERROR('#2: p1 === 1. Actual: p1 ==='+ p1 ); +} +// +////////////////////////////////////////////////////////////////////////////// + +////////////////////////////////////////////////////////////////////////////// +//CHECK#3 +if(myObj.p1 !== "x1"){ + $ERROR('#3: myObj.p1 === "x1". Actual: myObj.p1 ==='+ myObj.p1 ); +} +// +////////////////////////////////////////////////////////////////////////////// diff --git a/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A3.10_T3.js b/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A3.10_T3.js new file mode 100644 index 000000000..0ec4391e2 --- /dev/null +++ b/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A3.10_T3.js @@ -0,0 +1,56 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/** + * @name: S12.10_A3.10_T3; + * @section: 12.10; + * @assertion: No matter how control leaves the embedded 'Statement', + * the scope chain is always restored to its former state; + * @description: Using iteration statement within "with" statement, leading completion by exception; + * @strict_mode_negative + */ + +this.p1 = 1; + +var result = "result"; + +var myObj = { + p1: 'a', + value: 'myObj_value', + valueOf : function(){return 'obj_valueOf';} +} + +try { + with(myObj){ + do{ + throw value; + p1 = 'x1'; + } while(false); + } +} catch(e){ + result = p1; +} + +////////////////////////////////////////////////////////////////////////////// +//CHECK#1 +if(result !== 1){ + $ERROR('#1: result === 1. Actual: result ==='+ result ); +} +// +////////////////////////////////////////////////////////////////////////////// + +////////////////////////////////////////////////////////////////////////////// +//CHECK#2 +if(p1 !== 1){ + $ERROR('#2: p1 === 1. Actual: p1 ==='+ p1 ); +} +// +////////////////////////////////////////////////////////////////////////////// + +////////////////////////////////////////////////////////////////////////////// +//CHECK#3 +if(myObj.p1 !== "a"){ + $ERROR('#3: myObj.p1 === "a". Actual: myObj.p1 ==='+ myObj.p1 ); +} +// +////////////////////////////////////////////////////////////////////////////// diff --git a/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A3.10_T4.js b/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A3.10_T4.js new file mode 100644 index 000000000..c85386b5d --- /dev/null +++ b/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A3.10_T4.js @@ -0,0 +1,46 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/** + * @name: S12.10_A3.10_T4; + * @section: 12.10; + * @assertion: No matter how control leaves the embedded 'Statement', + * the scope chain is always restored to its former state; + * @description: Using iteration statement within "with" statement, leading completion be break; + * @strict_mode_negative + */ + +this.p1 = 1; + +var result = "result"; + +var myObj = { + p1: 'a', + value: 'myObj_value', + valueOf : function(){return 'obj_valueOf';} +} + +with(myObj){ + do{ + p1 = 'x1'; + break; + } while(false); +} + +////////////////////////////////////////////////////////////////////////////// +//CHECK#1 +if(p1 !== 1){ + $ERROR('#1: p1 === 1. Actual: p1 ==='+ p1 ); +} +// +////////////////////////////////////////////////////////////////////////////// + +////////////////////////////////////////////////////////////////////////////// +//CHECK#2 +if(myObj.p1 !== "x1"){ + $ERROR('#2: myObj.p1 === "x1". Actual: myObj.p1 ==='+ myObj.p1 ); +} +// +////////////////////////////////////////////////////////////////////////////// + + diff --git a/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A3.10_T5.js b/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A3.10_T5.js new file mode 100644 index 000000000..03274112b --- /dev/null +++ b/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A3.10_T5.js @@ -0,0 +1,44 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/** + * @name: S12.10_A3.10_T5; + * @section: 12.10; + * @assertion: No matter how control leaves the embedded 'Statement', + * the scope chain is always restored to its former state; + * @description: Using iteration statement within "with" statement, leading completion be break; + * @strict_mode_negative + */ + +this.p1 = 1; + +var result = "result"; + +var myObj = { + p1: 'a', + value: 'myObj_value', + valueOf : function(){return 'obj_valueOf';} +} + +with(myObj){ + do{ + break; + p1 = 'x1'; + } while(false); +} + +////////////////////////////////////////////////////////////////////////////// +//CHECK#1 +if(p1 !== 1){ + $ERROR('#1: p1 === 1. Actual: p1 ==='+ p1 ); +} +// +////////////////////////////////////////////////////////////////////////////// + +////////////////////////////////////////////////////////////////////////////// +//CHECK#2 +if(myObj.p1 !== "a"){ + $ERROR('#2: myObj.p1 === "a". Actual: myObj.p1 ==='+ myObj.p1 ); +} +// +////////////////////////////////////////////////////////////////////////////// diff --git a/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A3.11_T1.js b/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A3.11_T1.js new file mode 100644 index 000000000..44f13fabd --- /dev/null +++ b/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A3.11_T1.js @@ -0,0 +1,33 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/** + * @name: S12.10_A3.11_T1; + * @section: 12.10; + * @assertion: No matter how control leaves the embedded 'Statement', + * the scope chain is always restored to its former state; + * @description: Calling a function within "with" statement declared without the statement, leading to normal completion; + * @strict_mode_negative + */ +this.p1 = 1; +var result = "result"; +var myObj = {p1: 'a', + value: 'myObj_value', + valueOf : function(){return 'obj_valueOf';} +} + +var f = function(){ + p1 = 'x1'; +} + +with(myObj){ + f(); +} + +if(!(p1 === "x1")){ + $ERROR('#1: p1 === "x1". Actual: p1 ==='+ p1 ); +} + +if(!(myObj.p1 === "a")){ + $ERROR('#2: myObj.p1 === "a". Actual: myObj.p1 ==='+ myObj.p1 ); +} diff --git a/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A3.11_T2.js b/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A3.11_T2.js new file mode 100644 index 000000000..9103764bb --- /dev/null +++ b/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A3.11_T2.js @@ -0,0 +1,39 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/** + * @name: S12.10_A3.11_T2; + * @section: 12.10; + * @assertion: No matter how control leaves the embedded 'Statement', + * the scope chain is always restored to its former state; + * @description: Calling a function within "with" statement declared without the statement, leading to normal completion by "return"; + * @strict_mode_negative + */ +this.p1 = 1; +var result = "result"; +var value = "value"; +var myObj = {p1: 'a', + value: 'myObj_value', + valueOf : function(){return 'obj_valueOf';} +} + +var f = function(){ + p1 = 'x1'; + return value; +} + +with(myObj){ + result = f(); +} + +if(!(p1 === "x1")){ + $ERROR('#1: p1 === "x1". Actual: p1 ==='+ p1 ); +} + +if(!(myObj.p1 === "a")){ + $ERROR('#2: myObj.p1 === "a". Actual: myObj.p1 ==='+ myObj.p1 ); +} + +if(!(result === "value")){ + $ERROR('#3: result === "value". Actual: result ==='+ result ); +} diff --git a/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A3.11_T3.js b/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A3.11_T3.js new file mode 100644 index 000000000..c7292d107 --- /dev/null +++ b/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A3.11_T3.js @@ -0,0 +1,40 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/** + * @name: S12.10_A3.11_T3; + * @section: 12.10; + * @assertion: No matter how control leaves the embedded 'Statement', + * the scope chain is always restored to its former state; + * @description: Calling a function within "with" statement declared without the statement, leading to normal completion by "return"; + * @strict_mode_negative + */ +this.p1 = 1; +var result = "result"; +var value = "value"; +var myObj = {p1: 'a', + value: 'myObj_value', + valueOf : function(){return 'obj_valueOf';} +} + +var f = function(){ + return value; + p1 = 'x1'; +} + +with(myObj){ + result = f(); +} + +if(!(p1 === 1)){ + $ERROR('#1: p1 === 1. Actual: p1 ==='+ p1 ); +} + +if(!(myObj.p1 === "a")){ + $ERROR('#2: myObj.p1 === "a". Actual: myObj.p1 ==='+ myObj.p1 ); +} + +if(!(result === "value")){ + $ERROR('#3: result === "value". Actual: result ==='+ result ); +} + diff --git a/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A3.11_T4.js b/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A3.11_T4.js new file mode 100644 index 000000000..790ea31d9 --- /dev/null +++ b/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A3.11_T4.js @@ -0,0 +1,45 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/** + * @name: S12.10_A3.11_T4; + * @section: 12.10; + * @assertion: No matter how control leaves the embedded 'Statement', + * the scope chain is always restored to its former state; + * @description: Calling a function within "with" statement declared without the statement, leading to completion by exception; + * @strict_mode_negative + */ +this.p1 = 1; +var result = "result"; +var value = "value"; +var myObj = {p1: 'a', + value: 'myObj_value', + valueOf : function(){return 'obj_valueOf';} +} + +try { + var f = function(){ + p1 = 'x1'; + throw value; + } + + with(myObj){ + f(); + } +} catch(e){ + result = e; +} + +if(!(p1 === "x1")){ + $ERROR('#1: p1 === "x1". Actual: p1 ==='+ p1 ); +} + +if(!(myObj.p1 === "a")){ + $ERROR('#2: myObj.p1 === "a". Actual: myObj.p1 ==='+ myObj.p1 ); +} + +if(!(result === "value")){ + $ERROR('#3: result === "value". Actual: result ==='+ result ); +} + + diff --git a/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A3.11_T5.js b/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A3.11_T5.js new file mode 100644 index 000000000..4cdabc677 --- /dev/null +++ b/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A3.11_T5.js @@ -0,0 +1,43 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/** + * @name: S12.10_A3.11_T5; + * @section: 12.10; + * @assertion: No matter how control leaves the embedded 'Statement', + * the scope chain is always restored to its former state; + * @description: Calling a function within "with" statement declared without the statement, leading to completion by exception; + * @strict_mode_negative + */ +this.p1 = 1; +var result = "result"; +var value = "value"; +var myObj = {p1: 'a', + value: 'myObj_value', + valueOf : function(){return 'obj_valueOf';} +} + +try { + var f = function(){ + throw value; + p1 = 'x1'; + } + with(myObj){ + f(); + } +} catch(e){ + result = e; +} + +if(!(p1 === 1)){ + $ERROR('#1: p1 === 1. Actual: p1 ==='+ p1 ); +} + +if(!(myObj.p1 === "a")){ + $ERROR('#2: myObj.p1 === "a". Actual: myObj.p1 ==='+ myObj.p1 ); +} + +if(!(result === "value")){ + $ERROR('#3: result === "value". Actual: result ==='+ result ); +} + diff --git a/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A3.12_T1.js b/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A3.12_T1.js new file mode 100644 index 000000000..91efaa23e --- /dev/null +++ b/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A3.12_T1.js @@ -0,0 +1,33 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/** + * @name: S12.10_A3.12_T1; + * @section: 12.10; + * @assertion: No matter how control leaves the embedded 'Statement', + * the scope chain is always restored to its former state; + * @description: Calling a function without "with" statement declared within the statement, leading to normal completion; + * @strict_mode_negative + */ +this.p1 = 1; +var result = "result"; +var myObj = {p1: 'a', + value: 'myObj_value', + valueOf : function(){return 'obj_valueOf';} +} + +with(myObj){ + var f = function(){ + p1 = 'x1'; + } +} + +f(); + +if(!(p1 === 1)){ + $ERROR('#1: p1 === 1. Actual: p1 ==='+ p1 ); +} + +if(!(myObj.p1 === "x1")){ + $ERROR('#2: myObj.p1 === "x1". Actual: myObj.p1 ==='+ myObj.p1 ); +} diff --git a/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A3.12_T2.js b/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A3.12_T2.js new file mode 100644 index 000000000..7c49c8a09 --- /dev/null +++ b/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A3.12_T2.js @@ -0,0 +1,39 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/** + * @name: S12.10_A3.12_T2; + * @section: 12.10; + * @assertion: No matter how control leaves the embedded 'Statement', + * the scope chain is always restored to its former state; + * @description: Calling a function without "with" statement declared within the statement, leading to normal completion by "return"; + * @strict_mode_negative + */ +this.p1 = 1; +var result = "result"; +var value = "value"; +var myObj = {p1: 'a', + value: 'myObj_value', + valueOf : function(){return 'obj_valueOf';} +} + +with(myObj){ + var f = function(){ + p1 = 'x1' + return value; + } +} + +result = f(); + +if(!(p1 === 1)){ + $ERROR('#1: p1 === 1. Actual: p1 ==='+ p1 ); +} + +if(!(myObj.p1 === "x1")){ + $ERROR('#2: myObj.p1 === "x1". Actual: myObj.p1 ==='+ myObj.p1 ); +} + +if(!(result === "myObj_value")){ + $ERROR('#3: result === "myObj_value". Actual: result ==='+ result ); +} diff --git a/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A3.12_T3.js b/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A3.12_T3.js new file mode 100644 index 000000000..050bad4a1 --- /dev/null +++ b/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A3.12_T3.js @@ -0,0 +1,38 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/** + * @name: S12.10_A3.12_T3; + * @section: 12.10; + * @assertion: No matter how control leaves the embedded 'Statement', + * the scope chain is always restored to its former state; + * @description: Calling a function without "with" statement declared within the statement, leading to normal completion by "return"; + * @strict_mode_negative + */ +this.p1 = 1; +var result = "result"; +var value = "value"; +var myObj = {p1: 'a', + value: 'myObj_value', + valueOf : function(){return 'obj_valueOf';} +} + +with(myObj){ + var f = function(){ + return value; + p1 = 'x1'; + } +} +result = f(); + +if(!(p1 === 1)){ + $ERROR('#1: p1 === 1. Actual: p1 ==='+ p1 ); +} + +if(!(myObj.p1 === "a")){ + $ERROR('#2: myObj.p1 === "a". Actual: myObj.p1 ==='+ myObj.p1 ); +} + +if(!(result === "myObj_value")){ + $ERROR('#3: result === "myObj_value". Actual: result ==='+ result ); +} diff --git a/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A3.12_T4.js b/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A3.12_T4.js new file mode 100644 index 000000000..ba6f77735 --- /dev/null +++ b/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A3.12_T4.js @@ -0,0 +1,43 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/** + * @name: S12.10_A3.12_T4; + * @section: 12.10; + * @assertion: No matter how control leaves the embedded 'Statement', + * the scope chain is always restored to its former state; + * @description: Calling a function without "with" statement declared within the statement, leading to completion by exception; + * @strict_mode_negative + */ +this.p1 = 1; +var result = "result"; +var value = "value"; +var myObj = {p1: 'a', + value: 'myObj_value', + valueOf : function(){return 'obj_valueOf';} +} + +try { + with(myObj){ + var f = function(){ + p1 = 'x1'; + throw value; + } + } + f(); +} catch(e){ + result = e; +} + +if(!(p1 === 1)){ + $ERROR('#1: p1 === 1. Actual: p1 ==='+ p1 ); +} + +if(!(myObj.p1 === "x1")){ + $ERROR('#2: myObj.p1 === "x1". Actual: myObj.p1 ==='+ myObj.p1 ); +} + +if(!(result === "myObj_value")){ + $ERROR('#3: result === "myObj_value". Actual: result ==='+ result ); +} + diff --git a/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A3.12_T5.js b/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A3.12_T5.js new file mode 100644 index 000000000..fb27553b1 --- /dev/null +++ b/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A3.12_T5.js @@ -0,0 +1,42 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/** + * @name: S12.10_A3.12_T5; + * @section: 12.10; + * @assertion: No matter how control leaves the embedded 'Statement', + * the scope chain is always restored to its former state; + * @description: Calling a function without "with" statement declared within the statement, leading to completion by exception; + * @strict_mode_negative + */ +this.p1 = 1; +var result = "result"; +var value = "value"; +var myObj = {p1: 'a', + value: 'myObj_value', + valueOf : function(){return 'obj_valueOf';} +} + +try { + with(myObj){ + var f = function(){ + throw value; + p1 = 'x1'; + } + } + f(); +} catch(e){ + result = e; +} + +if(!(p1 === 1)){ + $ERROR('#1: p1 === 1. Actual: p1 ==='+ p1 ); +} + +if(!(myObj.p1 === "a")){ + $ERROR('#2: myObj.p1 === "a". Actual: myObj.p1 ==='+ myObj.p1 ); +} + +if(!(result === "myObj_value")){ + $ERROR('#3: result === "myObj_value". Actual: result ==='+ result ); +} diff --git a/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A3.1_T1.js b/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A3.1_T1.js new file mode 100644 index 000000000..26c37ac14 --- /dev/null +++ b/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A3.1_T1.js @@ -0,0 +1,44 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/** + * @name: S12.10_A3.1_T1; + * @section: 12.10; + * @assertion: No matter how control leaves the embedded 'Statement', + * the scope chain is always restored to its former state; + * @description: Using "with" statement within global context - normal completion; + * @strict_mode_negative + */ + +this.p1 = 1; + +var result = "result"; + +var myObj = { + p1: 'a', + value: 'myObj_value', + valueOf : function(){return 'obj_valueOf';} +} + + +with(myObj){ + p1 = 'x1'; +} + +////////////////////////////////////////////////////////////////////////////// +//CHECK#1 +if(p1 !== 1){ + $ERROR('#1: p1 === 1. Actual: p1 ==='+ p1 ); +} +// +////////////////////////////////////////////////////////////////////////////// + +////////////////////////////////////////////////////////////////////////////// +//CHECK#2 +if(myObj.p1 !== "x1"){ + $ERROR('#2: myObj.p1 === "x1". Actual: myObj.p1 ==='+ myObj.p1 ); +} +// +////////////////////////////////////////////////////////////////////////////// + + diff --git a/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A3.1_T2.js b/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A3.1_T2.js new file mode 100644 index 000000000..4746c2ad1 --- /dev/null +++ b/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A3.1_T2.js @@ -0,0 +1,58 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/** + * @name: S12.10_A3.1_T2; + * @section: 12.10; + * @assertion: No matter how control leaves the embedded 'Statement', + * the scope chain is always restored to its former state; + * @description: Using "with" statement within global context, leading to completion by exception; + * @strict_mode_negative + */ + +this.p1 = 1; + +var result = "result"; + +var myObj = { + p1: 'a', + value: 'myObj_value', + valueOf : function(){return 'obj_valueOf';} +} + +try { + + with(myObj){ + + p1 = 'x1' + throw value; + + } +} catch(e){ + result = p1; +} + +////////////////////////////////////////////////////////////////////////////// +//CHECK#1 +if(result !== 1){ + $ERROR('#1: result === 1. Actual: result ==='+ result ); +} +// +////////////////////////////////////////////////////////////////////////////// + + +////////////////////////////////////////////////////////////////////////////// +//CHECK#2 +if(p1 !== 1){ + $ERROR('#2: p1 === 1. Actual: p1 ==='+ p1 ); +} +// +////////////////////////////////////////////////////////////////////////////// + +////////////////////////////////////////////////////////////////////////////// +//CHECK#3 +if (myObj.p1 !== "x1") { + $ERROR('#3: myObj.p1 === "x1". Actual: myObj.p1 ==='+ myObj.p1 ); +} +// +////////////////////////////////////////////////////////////////////////////// diff --git a/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A3.1_T3.js b/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A3.1_T3.js new file mode 100644 index 000000000..c757b57d9 --- /dev/null +++ b/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A3.1_T3.js @@ -0,0 +1,56 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/** + * @name: S12.10_A3.1_T3; + * @section: 12.10; + * @assertion: No matter how control leaves the embedded 'Statement', + * the scope chain is always restored to its former state; + * @description: Using "with" statement within global context, leading to completion by exception; + * @strict_mode_negative + */ +this.p1 = 1; +var result = "result"; +var myObj = {p1: 'a', + value: 'myObj_value', + valueOf : function(){return 'obj_valueOf';} +} + +try { + + with(myObj){ + + throw value; + p1 = 'x1' + } +} catch(e){ + result = p1; +} + +////////////////////////////////////////////////////////////////////////////// +//CHECK#1 +if(!(result === 1)){ + $ERROR('#1: result === 1. Actual: result ==='+ result ); +} +// +////////////////////////////////////////////////////////////////////////////// + +////////////////////////////////////////////////////////////////////////////// +//CHECK#2 +if(!(p1 === 1)){ + $ERROR('#2: p1 === 1. Actual: p1 ==='+ p1 ); +} +// +////////////////////////////////////////////////////////////////////////////// + +////////////////////////////////////////////////////////////////////////////// +//CHECK#3 +if(!(myObj.p1 === "a")){ + $ERROR('#3: myObj.p1 === "a". Actual: myObj.p1 ==='+ myObj.p1 ); +} +// +////////////////////////////////////////////////////////////////////////////// + + + + diff --git a/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A3.2_T1.js b/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A3.2_T1.js new file mode 100644 index 000000000..1da1b7ee2 --- /dev/null +++ b/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A3.2_T1.js @@ -0,0 +1,45 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/** + * @name: S12.10_A3.2_T1; + * @section: 12.10; + * @assertion: No matter how control leaves the embedded 'Statement', + * the scope chain is always restored to its former state; + * @description: Declaring "with" statement within a function body, leading to normal completion; + * @strict_mode_negative + */ + +this.p1 = 1; + +var result = "result"; + +var myObj = { + p1: 'a', + value: 'myObj_value', + valueOf : function(){return 'obj_valueOf';} +} + +var f = function(){ + with(myObj){ + p1 = 'x1'; + } +} + +f(); + +////////////////////////////////////////////////////////////////////////////// +//CHECK#1 +if(p1 !== 1){ + $ERROR('#1: p1 === 1. Actual: p1 ==='+ p1 ); +} +// +////////////////////////////////////////////////////////////////////////////// + +////////////////////////////////////////////////////////////////////////////// +//CHECK#2 +if(myObj.p1 !== "x1"){ + $ERROR('#2: myObj.p1 === "x1". Actual: myObj.p1 ==='+ myObj.p1 ); +} +// +////////////////////////////////////////////////////////////////////////////// diff --git a/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A3.2_T2.js b/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A3.2_T2.js new file mode 100644 index 000000000..cbca41680 --- /dev/null +++ b/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A3.2_T2.js @@ -0,0 +1,48 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/** + * @name: S12.10_A3.2_T2; + * @section: 12.10; + * @assertion: No matter how control leaves the embedded 'Statement', + * the scope chain is always restored to its former state; + * @description: Declaring "with" statement within a function body, leading to normal completion by "return"; + * @strict_mode_negative + */ + +this.p1 = 1; + +var result = "result"; + +var myObj = { + p1: 'a', + value: 'myObj_value', + valueOf : function(){return 'obj_valueOf';} +} + +var f = function(){ + with(myObj){ + p1 = 'x1'; + return value; + } +}; + +f(); + +////////////////////////////////////////////////////////////////////////////// +//CHECK#1 +if(p1 !== 1){ + $ERROR('#1: p1 === 1. Actual: p1 ==='+ p1 ); +} +// +////////////////////////////////////////////////////////////////////////////// + +////////////////////////////////////////////////////////////////////////////// +//CHECK#1 +if(myObj.p1 !== "x1"){ + $ERROR('#1: myObj.p1 === "x1". Actual: myObj.p1 ==='+ myObj.p1 ); +} +// +////////////////////////////////////////////////////////////////////////////// + + diff --git a/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A3.2_T3.js b/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A3.2_T3.js new file mode 100644 index 000000000..a6b1b3c1e --- /dev/null +++ b/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A3.2_T3.js @@ -0,0 +1,46 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/** + * @name: S12.10_A3.2_T3; + * @section: 12.10; + * @assertion: No matter how control leaves the embedded 'Statement', + * the scope chain is always restored to its former state; + * @description: Declaring "with" statement within a function body, leading to normal completion by "return"; + * @strict_mode_negative + */ + +this.p1 = 1; + +var result = "result"; + +var myObj = { + p1: 'a', + value: 'myObj_value', + valueOf : function(){return 'obj_valueOf';} +} + +var f = function(){ + with(myObj){ + return value; + p1 = 'x1'; + } +}; + +f(); + +////////////////////////////////////////////////////////////////////////////// +//CHECK#1 +if(p1 !== 1){ + $ERROR('#1: p1 === 1. Actual: p1 ==='+ p1 ); +} +// +////////////////////////////////////////////////////////////////////////////// + +////////////////////////////////////////////////////////////////////////////// +//CHECK#2 +if(myObj.p1 !== "a"){ + $ERROR('#2: myObj.p1 === "a". Actual: myObj.p1 ==='+ myObj.p1 ); +} +// +////////////////////////////////////////////////////////////////////////////// diff --git a/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A3.2_T4.js b/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A3.2_T4.js new file mode 100644 index 000000000..9e7dedad4 --- /dev/null +++ b/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A3.2_T4.js @@ -0,0 +1,59 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/** + * @name: S12.10_A3.2_T4; + * @section: 12.10; + * @assertion: No matter how control leaves the embedded 'Statement', + * the scope chain is always restored to its former state; + * @description: Declaring "with" statement within a function body, leading to completion by exception; + * @strict_mode_negative + */ + +this.p1 = 1; + +var result = "result"; + +var myObj = { + p1: 'a', + value: 'myObj_value', + valueOf : function(){return 'obj_valueOf';} +} + +try { + var f = function(){ + with(myObj){ + p1 = 'x1'; + throw value; + } + }; + + f(); +} catch(e){ + result = p1; +} + + +////////////////////////////////////////////////////////////////////////////// +//CHECK#1 +if(result !== 1){ + $ERROR('#1: result === 1. Actual: result ==='+ result ); +} +// +////////////////////////////////////////////////////////////////////////////// + +////////////////////////////////////////////////////////////////////////////// +//CHECK#2 +if(p1 !== 1){ + $ERROR('#2: p1 === 1. Actual: p1 ==='+ p1 ); +} +// +////////////////////////////////////////////////////////////////////////////// + +////////////////////////////////////////////////////////////////////////////// +//CHECK#3 +if(myObj.p1 !== "x1"){ + $ERROR('#3: myObj.p1 === "x1". Actual: myObj.p1 ==='+ myObj.p1 ); +} +// +////////////////////////////////////////////////////////////////////////////// diff --git a/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A3.2_T5.js b/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A3.2_T5.js new file mode 100644 index 000000000..c1289305c --- /dev/null +++ b/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A3.2_T5.js @@ -0,0 +1,62 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/** + * @name: S12.10_A3.2_T5; + * @section: 12.10; + * @assertion: No matter how control leaves the embedded 'Statement', + * the scope chain is always restored to its former state; + * @description: Declaring "with" statement within a function body, leading to completion by exception; + * @strict_mode_negative + */ + +this.p1 = 1; + +var result = "result"; + +var myObj = { + p1: 'a', + value: 'myObj_value', + valueOf : function(){return 'obj_valueOf';} +}; + +try { + var f = function(){ + with(myObj){ + throw value; + p1 = 'x1'; + } + }; + f(); +} catch(e){ + result = p1; +} + + +////////////////////////////////////////////////////////////////////////////// +//CHECK#1 +if(result !== 1){ + $ERROR('#1: result === 1. Actual: result ==='+ result ); +} +// +////////////////////////////////////////////////////////////////////////////// + +////////////////////////////////////////////////////////////////////////////// +//CHECK#2 +if(p1 !== 1){ + $ERROR('#2: p1 === 1. Actual: p1 ==='+ p1 ); +} +// +////////////////////////////////////////////////////////////////////////////// + +////////////////////////////////////////////////////////////////////////////// +//CHECK#3 +if(myObj.p1 !== "a"){ + $ERROR('#3: myObj.p1 === "a". Actual: myObj.p1 ==='+ myObj.p1 ); +} +// +////////////////////////////////////////////////////////////////////////////// + + + + diff --git a/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A3.3_T1.js b/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A3.3_T1.js new file mode 100644 index 000000000..fc3ab3d91 --- /dev/null +++ b/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A3.3_T1.js @@ -0,0 +1,47 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/** + * @name: S12.10_A3.3_T1; + * @section: 12.10; + * @assertion: No matter how control leaves the embedded 'Statement', + * the scope chain is always restored to its former state; + * @description: Declaring "with" statement within a function constructor, leading to normal completion; + * @strict_mode_negative + */ + +this.p1 = 1; + +var result = "result"; + +var myObj = { + p1: 'a', + value: 'myObj_value', + valueOf : function(){return 'obj_valueOf';} +} + +function __FACTORY(){ + with(myObj){ + p1 = 'x1'; + } +} + +var obj = new __FACTORY(); + +////////////////////////////////////////////////////////////////////////////// +//CHECK#1 +if(p1 !== 1){ + $ERROR('#1: p1 === 1. Actual: p1 ==='+ p1 ); +} +// +////////////////////////////////////////////////////////////////////////////// + +////////////////////////////////////////////////////////////////////////////// +//CHECK#2 +if(myObj.p1 !== "x1"){ + $ERROR('#2: myObj.p1 === "x1". Actual: myObj.p1 ==='+ myObj.p1 ); +} +// +////////////////////////////////////////////////////////////////////////////// + + diff --git a/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A3.3_T2.js b/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A3.3_T2.js new file mode 100644 index 000000000..6b5969d5f --- /dev/null +++ b/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A3.3_T2.js @@ -0,0 +1,46 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/** + * @name: S12.10_A3.3_T2; + * @section: 12.10; + * @assertion: No matter how control leaves the embedded 'Statement', + * the scope chain is always restored to its former state; + * @description: Declaring "with" statement within a function constructor, leading to normal completion by "return"; + * @strict_mode_negative + */ + +this.p1 = 1; + +var result = "result"; + +var myObj = { + p1: 'a', + value: 'myObj_value', + valueOf : function(){return 'obj_valueOf';} +} + +function __FACTORY(){ + with(myObj){ + p1 = 'x1'; + return value; + } +} + +var obj = new __FACTORY; + +////////////////////////////////////////////////////////////////////////////// +//CHECK#1 +if(p1 !== 1){ + $ERROR('#1: p1 === 1. Actual: p1 ==='+ p1 ); +} +// +////////////////////////////////////////////////////////////////////////////// + +////////////////////////////////////////////////////////////////////////////// +//CHECK#2 +if(myObj.p1 !== "x1"){ + $ERROR('#2: myObj.p1 === "x1". Actual: myObj.p1 ==='+ myObj.p1 ); +} +// +////////////////////////////////////////////////////////////////////////////// diff --git a/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A3.3_T3.js b/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A3.3_T3.js new file mode 100644 index 000000000..9affbbb98 --- /dev/null +++ b/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A3.3_T3.js @@ -0,0 +1,48 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/** + * @name: S12.10_A3.3_T3; + * @section: 12.10; + * @assertion: No matter how control leaves the embedded 'Statement', + * the scope chain is always restored to its former state; + * @description: Declaring "with" statement within a function constructor, leading to normal completion by "return"; + * @strict_mode_negative + */ + +this.p1 = 1; + +var result = "result"; + +var myObj = { + p1: 'a', + value: 'myObj_value', + valueOf : function(){return 'obj_valueOf';} +} + +function __FACTORY(){ + with(myObj){ + return value; + p1 = 'x1'; + } +} + +var obj = new __FACTORY; + +////////////////////////////////////////////////////////////////////////////// +//CHECK#1 +if(p1 !== 1){ + $ERROR('#1: p1 === 1. Actual: p1 ==='+ p1 ); +} +// +////////////////////////////////////////////////////////////////////////////// + +////////////////////////////////////////////////////////////////////////////// +//CHECK#2 +if(myObj.p1 !== "a"){ + $ERROR('#2: myObj.p1 === "a". Actual: myObj.p1 ==='+ myObj.p1 ); +} +// +////////////////////////////////////////////////////////////////////////////// + + diff --git a/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A3.3_T4.js b/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A3.3_T4.js new file mode 100644 index 000000000..9932f9d9b --- /dev/null +++ b/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A3.3_T4.js @@ -0,0 +1,59 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/** + * @name: S12.10_A3.3_T4; + * @section: 12.10; + * @assertion: No matter how control leaves the embedded 'Statement', + * the scope chain is always restored to its former state; + * @description: Declaring "with" statement within a function + * constructor, leading to completion by exception; + * @strict_mode_negative + */ + +this.p1 = 1; + +var result = "result"; + +var myObj = { + p1: 'a', + value: 'myObj_value', + valueOf : function(){return 'obj_valueOf';} +}; + +function __FACTORY(){ + with(myObj){ + var p1 = 'x1'; + throw value; + } +} + +try { + var obj = new __FACTORY(); +} catch(e){ + result = p1; +} + +////////////////////////////////////////////////////////////////////////////// +//CHECK#1 +if (result !== 1) { + $ERROR('#1: result === 1. Actual: result ==='+ result ); +} +// +////////////////////////////////////////////////////////////////////////////// + +////////////////////////////////////////////////////////////////////////////// +//CHECK#2 +if (p1 !== 1) { + $ERROR('#2: p1 === 1. Actual: p1 ==='+ p1 ); +} +// +////////////////////////////////////////////////////////////////////////////// + +////////////////////////////////////////////////////////////////////////////// +//CHECK#3 +if (myObj.p1 !== "x1") { + $ERROR('#3: myObj.p1 === "x1". Actual: myObj.p1 ==='+ myObj.p1 ); +} +// +////////////////////////////////////////////////////////////////////////////// diff --git a/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A3.3_T5.js b/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A3.3_T5.js new file mode 100644 index 000000000..7d6e8571a --- /dev/null +++ b/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A3.3_T5.js @@ -0,0 +1,58 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/** + * @name: S12.10_A3.3_T5; + * @section: 12.10; + * @assertion: No matter how control leaves the embedded 'Statement', + * the scope chain is always restored to its former state; + * @description: Declaring "with" statement within a function constructor, leading to completion by exception; + * @strict_mode_negative + */ + +this.p1 = 1; + +var result = "result"; + +var myObj = { + p1: 'a', + value: 'myObj_value', + valueOf : function(){return 'obj_valueOf';} +} + +try { + function __FACTORY(){ + with(myObj){ + throw value; + p1 = 'x1'; + } + } + var obj = new __FACTORY(); +} catch(e){ + result = p1; +} + +////////////////////////////////////////////////////////////////////////////// +//CHECK#1 +if(result !== 1){ + $ERROR('#1: result === 1. Actual: result ==='+ result ); +} +// +////////////////////////////////////////////////////////////////////////////// + +////////////////////////////////////////////////////////////////////////////// +//CHECK#2 +if(p1 !== 1){ + $ERROR('#2: p1 === 1. Actual: p1 ==='+ p1 ); +} +// +////////////////////////////////////////////////////////////////////////////// + +////////////////////////////////////////////////////////////////////////////// +//CHECK#3 +if(myObj.p1 !== "a"){ + $ERROR('#3: myObj.p1 === "a". Actual: myObj.p1 ==='+ myObj.p1 ); +} +// +////////////////////////////////////////////////////////////////////////////// + diff --git a/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A3.4_T1.js b/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A3.4_T1.js new file mode 100644 index 000000000..c5bdd2c78 --- /dev/null +++ b/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A3.4_T1.js @@ -0,0 +1,45 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/** + * @name: S12.10_A3.4_T1; + * @section: 12.10; + * @assertion: No matter how control leaves the embedded 'Statement', + * the scope chain is always restored to its former state; + * @description: Using "with" statement within iteration statement, leading to normal completion; + * @strict_mode_negative + */ + +this.p1 = 1; + +var result = "result"; + +var myObj = { + p1: 'a', + value: 'myObj_value', + valueOf : function(){return 'obj_valueOf';} +} + +do { + with(myObj){ + p1 = 'x1'; + } +} while(false); + +////////////////////////////////////////////////////////////////////////////// +//CHECK#1 +if(p1 !== 1){ + $ERROR('#1: p1 === 1. Actual: p1 ==='+ p1 ); +} +// +////////////////////////////////////////////////////////////////////////////// + +////////////////////////////////////////////////////////////////////////////// +//CHECK#2 +if(myObj.p1 !== "x1"){ + $ERROR('#2: myObj.p1 === "x1". Actual: myObj.p1 ==='+ myObj.p1 ); +} +// +////////////////////////////////////////////////////////////////////////////// + + diff --git a/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A3.4_T2.js b/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A3.4_T2.js new file mode 100644 index 000000000..c975dd8c0 --- /dev/null +++ b/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A3.4_T2.js @@ -0,0 +1,56 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/** + * @name: S12.10_A3.4_T2; + * @section: 12.10; + * @assertion: No matter how control leaves the embedded 'Statement', + * the scope chain is always restored to its former state; + * @description: Using "with" statement within iteration statement, leading to completion by exception; + * @strict_mode_negative + */ + +this.p1 = 1; + +var result = "result"; + +var myObj = { + p1: 'a', + value: 'myObj_value', + valueOf : function(){return 'obj_valueOf';} +} + +try { + do{ + with(myObj){ + p1 = 'x1'; + throw value; + } + } while(false); +} catch(e){ + result = p1; +} + +////////////////////////////////////////////////////////////////////////////// +//CHECK#1 +if(result !== 1){ + $ERROR('#1: result === 1. Actual: result ==='+ result ); +} +// +////////////////////////////////////////////////////////////////////////////// + +////////////////////////////////////////////////////////////////////////////// +//CHECK#2 +if(p1 !== 1){ + $ERROR('#2: p1 === 1. Actual: p1 ==='+ p1 ); +} +// +////////////////////////////////////////////////////////////////////////////// + +////////////////////////////////////////////////////////////////////////////// +//CHECK#3 +if(myObj.p1 !== "x1"){ + $ERROR('#3: myObj.p1 === "x1". Actual: myObj.p1 ==='+ myObj.p1 ); +} +// +////////////////////////////////////////////////////////////////////////////// diff --git a/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A3.4_T3.js b/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A3.4_T3.js new file mode 100644 index 000000000..56615fc12 --- /dev/null +++ b/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A3.4_T3.js @@ -0,0 +1,56 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/** + * @name: S12.10_A3.4_T3; + * @section: 12.10; + * @assertion: No matter how control leaves the embedded 'Statement', + * the scope chain is always restored to its former state; + * @description: Using "with" statement within iteration statement, leading to completion by exception; + * @strict_mode_negative + */ + +this.p1 = 1; + +var result = "result"; + +var myObj = { + p1: 'a', + value: 'myObj_value', + valueOf : function(){return 'obj_valueOf';} +} + +try { + do{ + with(myObj){ + throw value; + p1 = 'x1'; + } + } while(false); +} catch(e){ + result = p1; +} + +////////////////////////////////////////////////////////////////////////////// +//CHECK#1 +if(result !== 1){ + $ERROR('#1: result === 1. Actual: result ==='+ result ); +} +// +////////////////////////////////////////////////////////////////////////////// + +////////////////////////////////////////////////////////////////////////////// +//CHECK#2 +if(p1 !== 1){ + $ERROR('#2: p1 === 1. Actual: p1 ==='+ p1 ); +} +// +////////////////////////////////////////////////////////////////////////////// + +////////////////////////////////////////////////////////////////////////////// +//CHECK#3 +if(myObj.p1 !== "a"){ + $ERROR('#3: myObj.p1 === "a". Actual: myObj.p1 ==='+ myObj.p1 ); +} +// +////////////////////////////////////////////////////////////////////////////// diff --git a/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A3.4_T4.js b/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A3.4_T4.js new file mode 100644 index 000000000..bf7d87fa2 --- /dev/null +++ b/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A3.4_T4.js @@ -0,0 +1,46 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/** + * @name: S12.10_A3.4_T4; + * @section: 12.10; + * @assertion: No matter how control leaves the embedded 'Statement', + * the scope chain is always restored to its former state; + * @description: Using "with" statement within iteration statement, leading to completion by break; + * @strict_mode_negative + */ + +this.p1 = 1; + +var result = "result"; + +var myObj = { + p1: 'a', + value: 'myObj_value', + valueOf : function(){return 'obj_valueOf';} +} + +do { + with(myObj){ + p1 = 'x1'; + break; + } +} while(false); + +////////////////////////////////////////////////////////////////////////////// +//CHECK#1 +if(p1 !== 1){ + $ERROR('#1: p1 === 1. Actual: p1 ==='+ p1 ); +} +// +////////////////////////////////////////////////////////////////////////////// + +////////////////////////////////////////////////////////////////////////////// +//CHECK#2 +if(myObj.p1 !== "x1"){ + $ERROR('#2: myObj.p1 === "x1". Actual: myObj.p1 ==='+ myObj.p1 ); +} +// +////////////////////////////////////////////////////////////////////////////// + + diff --git a/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A3.4_T5.js b/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A3.4_T5.js new file mode 100644 index 000000000..6da97f002 --- /dev/null +++ b/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A3.4_T5.js @@ -0,0 +1,46 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/** + * @name: S12.10_A3.4_T5; + * @section: 12.10; + * @assertion: No matter how control leaves the embedded 'Statement', + * the scope chain is always restored to its former state; + * @description: Using "with" statement within iteration statement, leading to completion by break; + * @strict_mode_negative + */ + +this.p1 = 1; + +var result = "result"; + +var myObj = { + p1: 'a', + value: 'myObj_value', + valueOf : function(){return 'obj_valueOf';} +} + +do { + with(myObj){ + break; + p1 = 'x1'; + } +} while(false); + +////////////////////////////////////////////////////////////////////////////// +//CHECK#1 +if(p1 !== 1){ + $ERROR('#1: p1 === 1. Actual: p1 ==='+ p1 ); +} +// +////////////////////////////////////////////////////////////////////////////// + +////////////////////////////////////////////////////////////////////////////// +//CHECK#2 +if(myObj.p1 !== "a"){ + $ERROR('#2: myObj.p1 === "a". Actual: myObj.p1 ==='+ myObj.p1 ); +} +// +////////////////////////////////////////////////////////////////////////////// + + diff --git a/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A3.5_T1.js b/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A3.5_T1.js new file mode 100644 index 000000000..fe68264ca --- /dev/null +++ b/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A3.5_T1.js @@ -0,0 +1,43 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/** + * @name: S12.10_A3.5_T1; + * @section: 12.10; + * @assertion: No matter how control leaves the embedded 'Statement', + * the scope chain is always restored to its former state; + * @description: Using "with" statement within "for-in" statement, leading to normal completion; + * @strict_mode_negative + */ + +this.p1 = 1; + +var result = "result"; + +var myObj = { + p1: 'a', + value: 'myObj_value', + valueOf : function(){return 'obj_valueOf';} +} + +for(var prop in myObj){ + with(myObj){ + p1 = 'x1'; + } +} + +////////////////////////////////////////////////////////////////////////////// +//CHECK#1 +if(p1 !== 1){ + $ERROR('#1: p1 === 1. Actual: p1 ==='+ p1 ); +} +// +////////////////////////////////////////////////////////////////////////////// + +////////////////////////////////////////////////////////////////////////////// +//CHECK#2 +if(myObj.p1 !== "x1"){ + $ERROR('#2: myObj.p1 === "x1". Actual: myObj.p1 ==='+ myObj.p1 ); +} +// +////////////////////////////////////////////////////////////////////////////// diff --git a/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A3.5_T2.js b/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A3.5_T2.js new file mode 100644 index 000000000..23d728348 --- /dev/null +++ b/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A3.5_T2.js @@ -0,0 +1,56 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/** + * @name: S12.10_A3.5_T2; + * @section: 12.10; + * @assertion: No matter how control leaves the embedded 'Statement', + * the scope chain is always restored to its former state; + * @description: Using "with" statement within "for-in" statement, leading to completion by exception; + * @strict_mode_negative + */ + +this.p1 = 1; + +var result = "result"; + +var myObj = { + p1: 'a', + value: 'myObj_value', + valueOf : function(){return 'obj_valueOf';} +} + +try { + for(var prop in myObj){ + with(myObj){ + p1 = 'x1'; + throw value; + } + } +} catch(e){ + result = p1; +} + +////////////////////////////////////////////////////////////////////////////// +//CHECK#1 +if(result !== 1){ + $ERROR('#1: result === 1. Actual: result ==='+ result ); +} +// +////////////////////////////////////////////////////////////////////////////// + +////////////////////////////////////////////////////////////////////////////// +//CHECK#2 +if(p1 !== 1){ + $ERROR('#2: p1 === 1. Actual: p1 ==='+ p1 ); +} +// +////////////////////////////////////////////////////////////////////////////// + +////////////////////////////////////////////////////////////////////////////// +//CHECK#3 +if(myObj.p1 !== "x1"){ + $ERROR('#3: myObj.p1 === "x1". Actual: myObj.p1 ==='+ myObj.p1 ); +} +// +////////////////////////////////////////////////////////////////////////////// diff --git a/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A3.5_T3.js b/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A3.5_T3.js new file mode 100644 index 000000000..f2309145f --- /dev/null +++ b/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A3.5_T3.js @@ -0,0 +1,56 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/** + * @name: S12.10_A3.5_T3; + * @section: 12.10; + * @assertion: No matter how control leaves the embedded 'Statement', + * the scope chain is always restored to its former state; + * @description: Using "with" statement within "for-in" statement, leading to completion by exception; + * @strict_mode_negative + */ + +this.p1 = 1; + +var result = "result"; + +var myObj = { + p1: 'a', + value: 'myObj_value', + valueOf : function(){return 'obj_valueOf';} +} + +try { + for(var prop in myObj){ + with(myObj){ + throw value; + p1 = 'x1'; + } + } +} catch(e){ + result = p1; +} + +////////////////////////////////////////////////////////////////////////////// +//CHECK#1 +if(result !== 1){ + $ERROR('#1: result === 1. Actual: result ==='+ result ); +} +// +////////////////////////////////////////////////////////////////////////////// + +////////////////////////////////////////////////////////////////////////////// +//CHECK#2 +if(p1 !== 1){ + $ERROR('#2: p1 === 1. Actual: p1 ==='+ p1 ); +} +// +////////////////////////////////////////////////////////////////////////////// + +////////////////////////////////////////////////////////////////////////////// +//CHECK#3 +if(myObj.p1 !== "a"){ + $ERROR('#3: myObj.p1 === "a". Actual: myObj.p1 ==='+ myObj.p1 ); +} +// +////////////////////////////////////////////////////////////////////////////// diff --git a/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A3.5_T4.js b/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A3.5_T4.js new file mode 100644 index 000000000..660cc145d --- /dev/null +++ b/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A3.5_T4.js @@ -0,0 +1,44 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/** + * @name: S12.10_A3.5_T4; + * @section: 12.10; + * @assertion: No matter how control leaves the embedded 'Statement', + * the scope chain is always restored to its former state; + * @description: Using "with" statement within "for-in" statement, leading to completion by break; + * @strict_mode_negative + */ + +this.p1 = 1; + +var result = "result"; + +var myObj = { + p1: 'a', + value: 'myObj_value', + valueOf : function(){return 'obj_valueOf';} +} + +for(var prop in myObj){ + with(myObj){ + p1 = 'x1'; + break; + } +} + +////////////////////////////////////////////////////////////////////////////// +//CHECK#1 +if(p1 !== 1){ + $ERROR('#1: p1 === 1. Actual: p1 ==='+ p1 ); +} +// +////////////////////////////////////////////////////////////////////////////// + +////////////////////////////////////////////////////////////////////////////// +//CHECK#2 +if(myObj.p1 !== "x1"){ + $ERROR('#2: myObj.p1 === "x1". Actual: myObj.p1 ==='+ myObj.p1 ); +} +// +////////////////////////////////////////////////////////////////////////////// diff --git a/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A3.5_T5.js b/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A3.5_T5.js new file mode 100644 index 000000000..661994155 --- /dev/null +++ b/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A3.5_T5.js @@ -0,0 +1,47 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/** + * @name: S12.10_A3.5_T5; + * @section: 12.10; + * @assertion: No matter how control leaves the embedded 'Statement', + * the scope chain is always restored to its former state; + * @description: Using "with" statement within "for-in" statement, leading to completion by break; + * @strict_mode_negative + */ + +this.p1 = 1; + +var result = "result"; + +var myObj = { + p1: 'a', + value: 'myObj_value', + valueOf : function(){return 'obj_valueOf';} +} + +for(var prop in myObj){ + with(myObj){ + break; + p1 = 'x1'; + } +} + +////////////////////////////////////////////////////////////////////////////// +//CHECK#1 +if(p1 !== 1){ + $ERROR('#1: p1 === 1. Actual: p1 ==='+ p1 ); +} +// +////////////////////////////////////////////////////////////////////////////// + +////////////////////////////////////////////////////////////////////////////// +//CHECK#1 +if(myObj.p1 !== "a"){ + $ERROR('#1: myObj.p1 === "a". Actual: myObj.p1 ==='+ myObj.p1 ); +} +// +////////////////////////////////////////////////////////////////////////////// + + + diff --git a/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A3.6_T1.js b/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A3.6_T1.js new file mode 100644 index 000000000..68f14f116 --- /dev/null +++ b/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A3.6_T1.js @@ -0,0 +1,59 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/** + * @name: S12.10_A3.6_T1; + * @section: 12.10; + * @assertion: No matter how control leaves the embedded 'Statement', + * the scope chain is always restored to its former state; + * @description: Using "with" statement within another "with" statement, leading to normal completion; + * @strict_mode_negative + */ + +this.p1 = 1; + +var result = "result"; + +var myObj = { + p1: 'a', + value: 'myObj_value', + valueOf : function(){return 'obj_valueOf';} +} + +var theirObj = { + p1: true, + value: 'theirObj_value', + valueOf : function(){return 'thr_valueOf';} +} + +with(myObj){ + with(theirObj){ + p1 = 'x1'; + } +} + +////////////////////////////////////////////////////////////////////////////// +//CHECK#1 +if(p1 !== 1){ + $ERROR('#1: p1 === 1. Actual: p1 ==='+ p1 ); +} +// +////////////////////////////////////////////////////////////////////////////// + +////////////////////////////////////////////////////////////////////////////// +//CHECK#2 +if(myObj.p1 !== "a"){ + $ERROR('#2: myObj.p1 === "a". Actual: myObj.p1 ==='+ myObj.p1 ); +} +// +////////////////////////////////////////////////////////////////////////////// + +////////////////////////////////////////////////////////////////////////////// +//CHECK#3 +if(theirObj.p1 !== "x1"){ + $ERROR('#3: theirObj.p1 === "x1". Actual: theirObj.p1 ==='+ theirObj.p1 ); +} +// +////////////////////////////////////////////////////////////////////////////// + + diff --git a/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A3.6_T2.js b/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A3.6_T2.js new file mode 100644 index 000000000..c56da025c --- /dev/null +++ b/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A3.6_T2.js @@ -0,0 +1,64 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/** + * @name: S12.10_A3.6_T2; + * @section: 12.10; + * @assertion: No matter how control leaves the embedded 'Statement', + * the scope chain is always restored to its former state; + * @description: Using "with" statement within another "with" statement, leading to completion by exception; + * @strict_mode_negative + */ + +this.p1 = 1; + +var result = "result"; + +var myObj = { + p1: 'a', + value: 'myObj_value', + valueOf : function(){return 'obj_valueOf';} +} + +var theirObj = { + p1: true, + value: 'theirObj_value', + valueOf : function(){return 'thr_valueOf';} +} + + +try { + with(myObj){ + with(theirObj){ + p1 = 'x1'; + throw value; + } + } +} catch(e){ + result = p1; +} + +////////////////////////////////////////////////////////////////////////////// +//CHECK#1 +if(p1 !== 1){ + $ERROR('#1: p1 === 1. Actual: p1 ==='+ p1 ); +} +// +////////////////////////////////////////////////////////////////////////////// + +////////////////////////////////////////////////////////////////////////////// +//CHECK#2 +if(myObj.p1 !== "a"){ + $ERROR('#2: myObj.p1 === "a". Actual: myObj.p1 ==='+ myObj.p1 ); +} +// +////////////////////////////////////////////////////////////////////////////// + +////////////////////////////////////////////////////////////////////////////// +//CHECK#3 +if(theirObj.p1 !== "x1"){ + $ERROR('#3: theirObj.p1 === "x1". Actual: theirObj.p1 ==='+ theirObj.p1 ); +} +// +////////////////////////////////////////////////////////////////////////////// + diff --git a/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A3.6_T3.js b/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A3.6_T3.js new file mode 100644 index 000000000..54bd93a7c --- /dev/null +++ b/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A3.6_T3.js @@ -0,0 +1,65 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/** + * @name: S12.10_A3.6_T3; + * @section: 12.10; + * @assertion: No matter how control leaves the embedded 'Statement', + * the scope chain is always restored to its former state; + * @description: Using "with" statement within another "with" statement, leading to completion by exception; + * @strict_mode_negative + */ + +this.p1 = 1; + +var result = "result"; + +var myObj = { + p1: 'a', + value: 'myObj_value', + valueOf : function(){return 'obj_valueOf';} +} + +var theirObj = { + p1: true, + value: 'theirObj_value', + valueOf : function(){return 'thr_valueOf';} +} + + +try { + with(myObj){ + with(theirObj){ + throw value; + p1 = 'x1'; + + } + } +} catch(e){ + result = p1; +} + +////////////////////////////////////////////////////////////////////////////// +//CHECK#1 +if(p1 !== 1){ + $ERROR('#1: p1 === 1. Actual: p1 ==='+ p1 ); +} +// +////////////////////////////////////////////////////////////////////////////// + +////////////////////////////////////////////////////////////////////////////// +//CHECK#2 +if(myObj.p1 !== "a"){ + $ERROR('#2: myObj.p1 === "a". Actual: myObj.p1 ==='+ myObj.p1 ); +} +// +////////////////////////////////////////////////////////////////////////////// + +////////////////////////////////////////////////////////////////////////////// +//CHECK#3 +if(theirObj.p1 !== true){ + $ERROR('#3: theirObj.p1 === true. Actual: theirObj.p1 ==='+ theirObj.p1 ); +} +// +////////////////////////////////////////////////////////////////////////////// + diff --git a/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A3.7_T1.js b/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A3.7_T1.js new file mode 100644 index 000000000..666ed900d --- /dev/null +++ b/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A3.7_T1.js @@ -0,0 +1,45 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/** + * @name: S12.10_A3.7_T1; + * @section: 12.10; + * @assertion: No matter how control leaves the embedded 'Statement', + * the scope chain is always restored to its former state; + * @description: Declaring and calling a function within "with" statement, leading to normal completion; + * @strict_mode_negative + */ + +this.p1 = 1; + +var result = "result"; + +var myObj = { + p1: 'a', + value: 'myObj_value', + valueOf : function(){return 'obj_valueOf';} +} + +with(myObj){ + (function(){ + p1 = 'x1'; + })(); +} + +////////////////////////////////////////////////////////////////////////////// +//CHECK#1 +if(p1 !== 1){ + $ERROR('#1: p1 === 1. Actual: p1 ==='+ p1 ); +} +// +////////////////////////////////////////////////////////////////////////////// + +////////////////////////////////////////////////////////////////////////////// +//CHECK#2 +if(myObj.p1 !== "x1"){ + $ERROR('#2: myObj.p1 === "x1". Actual: myObj.p1 ==='+ myObj.p1 ); +} +// +////////////////////////////////////////////////////////////////////////////// + + diff --git a/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A3.7_T2.js b/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A3.7_T2.js new file mode 100644 index 000000000..407bcddcc --- /dev/null +++ b/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A3.7_T2.js @@ -0,0 +1,54 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/** + * @name: S12.10_A3.7_T2; + * @section: 12.10; + * @assertion: No matter how control leaves the embedded 'Statement', + * the scope chain is always restored to its former state; + * @description: Declaring and calling a function within "with" statement, leading to normal completion by "return"; + * @strict_mode_negative + */ + +this.p1 = 1; + +var result = "result"; + +var myObj = { + p1: 'a', + value: 'myObj_value', + valueOf : function(){return 'obj_valueOf';} +} + +with(myObj){ + result=(function(){ + p1 = 'x1'; + return value; + })(); +} + +////////////////////////////////////////////////////////////////////////////// +//CHECK#1 +if(p1 !== 1){ + $ERROR('#1: p1 === 1. Actual: p1 ==='+ p1 ); +} +// +////////////////////////////////////////////////////////////////////////////// + +////////////////////////////////////////////////////////////////////////////// +//CHECK#2 +if(result !== "myObj_value"){ + $ERROR('#2: result === "myObj_value". Actual: result ==='+ result ); +} +// +////////////////////////////////////////////////////////////////////////////// + +////////////////////////////////////////////////////////////////////////////// +//CHECK#3 +if(myObj.p1 !== "x1"){ + $ERROR('#3: myObj.p1 === "x1". Actual: myObj.p1 ==='+ myObj.p1 ); +} +// +////////////////////////////////////////////////////////////////////////////// + + diff --git a/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A3.7_T3.js b/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A3.7_T3.js new file mode 100644 index 000000000..34750863b --- /dev/null +++ b/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A3.7_T3.js @@ -0,0 +1,52 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/** + * @name: S12.10_A3.7_T3; + * @section: 12.10; + * @assertion: No matter how control leaves the embedded 'Statement', + * the scope chain is always restored to its former state; + * @description: Declaring and calling a function within "with" statement, leading to normal completion by "return"; + * @strict_mode_negative + */ + +this.p1 = 1; + +var result = "result"; + +var myObj = { + p1: 'a', + value: 'myObj_value', + valueOf : function(){return 'obj_valueOf';} +} + +with(myObj){ + result=(function(){ + return value; + p1 = 'x1'; + })(); +} + +////////////////////////////////////////////////////////////////////////////// +//CHECK#1 +if(p1 !== 1){ + $ERROR('#1: p1 === 1. Actual: p1 ==='+ p1 ); +} +// +////////////////////////////////////////////////////////////////////////////// + +////////////////////////////////////////////////////////////////////////////// +//CHECK#2 +if(result !== 'myObj_value'){ + $ERROR('#2: result === \'myObj_value\'. Actual: result ==='+ result ); +} +// +////////////////////////////////////////////////////////////////////////////// + +////////////////////////////////////////////////////////////////////////////// +//CHECK#3 +if(myObj.p1 !== "a"){ + $ERROR('#3: myObj.p1 === "a". Actual: myObj.p1 ==='+ myObj.p1 ); +} +// +////////////////////////////////////////////////////////////////////////////// diff --git a/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A3.7_T4.js b/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A3.7_T4.js new file mode 100644 index 000000000..abf1a534a --- /dev/null +++ b/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A3.7_T4.js @@ -0,0 +1,56 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/** + * @name: S12.10_A3.7_T4; + * @section: 12.10; + * @assertion: No matter how control leaves the embedded 'Statement', + * the scope chain is always restored to its former state; + * @description: Declaring and calling a function within "with" statement, leading to completion by exception; + * @strict_mode_negative + */ + +this.p1 = 1; + +var result = "result"; + +var myObj = { + p1: 'a', + value: 'myObj_value', + valueOf : function(){return 'obj_valueOf';} +} + +try { + with(myObj){ + (function (){ + p1 = 'x1'; + throw value; + })(); + } +} catch(e){ + result = p1; +} + +////////////////////////////////////////////////////////////////////////////// +//CHECK#1 +if(result !== 1){ + $ERROR('#1: result === 1. Actual: result ==='+ result ); +} +// +////////////////////////////////////////////////////////////////////////////// + +////////////////////////////////////////////////////////////////////////////// +//CHECK#2 +if(p1 !== 1){ + $ERROR('#2: p1 === 1. Actual: p1 ==='+ p1 ); +} +// +////////////////////////////////////////////////////////////////////////////// + +////////////////////////////////////////////////////////////////////////////// +//CHECK#3 +if(myObj.p1 !== "x1"){ + $ERROR('#3: myObj.p1 === "x1". Actual: myObj.p1 ==='+ myObj.p1 ); +} +// +////////////////////////////////////////////////////////////////////////////// diff --git a/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A3.7_T5.js b/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A3.7_T5.js new file mode 100644 index 000000000..a31ec4583 --- /dev/null +++ b/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A3.7_T5.js @@ -0,0 +1,56 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/** + * @name: S12.10_A3.7_T5; + * @section: 12.10; + * @assertion: No matter how control leaves the embedded 'Statement', + * the scope chain is always restored to its former state; + * @description: Declaring and calling a function within "with" statement, leading to completion by exception; + * @strict_mode_negative + */ + +this.p1 = 1; + +var result = "result"; + +var myObj = { + p1: 'a', + value: 'myObj_value', + valueOf : function(){return 'obj_valueOf';} +} + +try { + with(myObj){ + (function f(){ + throw value; + p1 = 'x1'; + })(); + } +} catch(e){ + result = p1; +} + +////////////////////////////////////////////////////////////////////////////// +//CHECK#1 +if(result !== 1){ + $ERROR('#1: result === 1. Actual: result ==='+ result ); +} +// +////////////////////////////////////////////////////////////////////////////// + +////////////////////////////////////////////////////////////////////////////// +//CHECK#2 +if(p1 !== 1){ + $ERROR('#2: p1 === 1. Actual: p1 ==='+ p1 ); +} +// +////////////////////////////////////////////////////////////////////////////// + +////////////////////////////////////////////////////////////////////////////// +//CHECK#3 +if(myObj.p1 !== "a"){ + $ERROR('#3: myObj.p1 === "a". Actual: myObj.p1 ==='+ myObj.p1 ); +} +// +////////////////////////////////////////////////////////////////////////////// diff --git a/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A3.8_T1.js b/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A3.8_T1.js new file mode 100644 index 000000000..88474f834 --- /dev/null +++ b/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A3.8_T1.js @@ -0,0 +1,44 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/** + * @name: S12.10_A3.8_T1; + * @section: 12.10; + * @assertion: No matter how control leaves the embedded 'Statement', + * the scope chain is always restored to its former state; + * @description: Declaring function constructor within "with" statement, leading to normal completion; + * @strict_mode_negative + */ + +this.p1 = 1; + +var result = "result"; + +var myObj = { + p1: 'a', + value: 'myObj_value', + valueOf : function(){return 'obj_valueOf';} +} + +with(myObj){ + var __FACTORY = function(){ + p1 = 'x1'; + } + var obj = new __FACTORY; +} + +////////////////////////////////////////////////////////////////////////////// +//CHECK#1 +if(p1 !== 1){ + $ERROR('#1: p1 === 1. Actual: p1 ==='+ p1 ); +} +// +////////////////////////////////////////////////////////////////////////////// + +////////////////////////////////////////////////////////////////////////////// +//CHECK#2 +if(myObj.p1 !== "x1"){ + $ERROR('#2: myObj.p1 === "x1". Actual: myObj.p1 ==='+ myObj.p1 ); +} +// +////////////////////////////////////////////////////////////////////////////// diff --git a/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A3.8_T2.js b/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A3.8_T2.js new file mode 100644 index 000000000..f208f29be --- /dev/null +++ b/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A3.8_T2.js @@ -0,0 +1,45 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/** + * @name: S12.10_A3.8_T2; + * @section: 12.10; + * @assertion: No matter how control leaves the embedded 'Statement', + * the scope chain is always restored to its former state; + * @description: Declaring function constructor within "with" statement, leading to normal completion by "return"; + * @strict_mode_negative + */ + +this.p1 = 1; + +var result = "result"; + +var myObj = { + p1: 'a', + value: 'myObj_value', + valueOf : function(){return 'obj_valueOf';} +} + +with(myObj){ + var __FACTORY = function(){ + p1 = 'x1'; + return value; + } + var obj = new __FACTORY; +} + +////////////////////////////////////////////////////////////////////////////// +//CHECK#1 +if(p1 !== 1){ + $ERROR('#1: p1 === 1. Actual: p1 ==='+ p1 ); +} +// +////////////////////////////////////////////////////////////////////////////// + +////////////////////////////////////////////////////////////////////////////// +//CHECK#2 +if(myObj.p1 !== "x1"){ + $ERROR('#2: myObj.p1 === "x1". Actual: myObj.p1 ==='+ myObj.p1 ); +} +// +////////////////////////////////////////////////////////////////////////////// diff --git a/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A3.8_T3.js b/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A3.8_T3.js new file mode 100644 index 000000000..507384ecf --- /dev/null +++ b/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A3.8_T3.js @@ -0,0 +1,45 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/** + * @name: S12.10_A3.8_T3; + * @section: 12.10; + * @assertion: No matter how control leaves the embedded 'Statement', + * the scope chain is always restored to its former state; + * @description: Declaring function constructor within "with" statement, leading to normal completion by "return"; + * @strict_mode_negative + */ + +this.p1 = 1; + +var result = "result"; + +var myObj = { + p1: 'a', + value: 'myObj_value', + valueOf : function(){return 'obj_valueOf';} +} + +with(myObj){ + var __FACTORY = function(){ + return value; + p1 = 'x1'; + } + var obj = new __FACTORY; +} + +////////////////////////////////////////////////////////////////////////////// +//CHECK#1 +if(p1 !== 1){ + $ERROR('#1: p1 === 1. Actual: p1 ==='+ p1 ); +} +// +////////////////////////////////////////////////////////////////////////////// + +////////////////////////////////////////////////////////////////////////////// +//CHECK#2 +if(myObj.p1 !== "a"){ + $ERROR('#2: myObj.p1 === "a". Actual: myObj.p1 ==='+ myObj.p1 ); +} +// +////////////////////////////////////////////////////////////////////////////// diff --git a/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A3.8_T4.js b/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A3.8_T4.js new file mode 100644 index 000000000..2366bbb01 --- /dev/null +++ b/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A3.8_T4.js @@ -0,0 +1,57 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/** + * @name: S12.10_A3.8_T4; + * @section: 12.10; + * @assertion: No matter how control leaves the embedded 'Statement', + * the scope chain is always restored to its former state; + * @description: Declaring function constructor within "with" statement, leading to completion by exception; + * @strict_mode_negative + */ + +this.p1 = 1; + +var result = "result"; + +var myObj = { + p1: 'a', + value: 'myObj_value', + valueOf : function(){return 'obj_valueOf';} +} + +try { + with(myObj){ + var __FACTORY = function(){ + p1 = 'x1'; + throw value; + } + var obj = new __FACTORY; + } +} catch(e){ + result = p1; +} + +////////////////////////////////////////////////////////////////////////////// +//CHECK#1 +if(result !== 1){ + $ERROR('#1: result === 1. Actual: result ==='+ result ); +} +// +////////////////////////////////////////////////////////////////////////////// + +////////////////////////////////////////////////////////////////////////////// +//CHECK#2 +if(p1 !== 1){ + $ERROR('#2: p1 === 1. Actual: p1 ==='+ p1 ); +} +// +////////////////////////////////////////////////////////////////////////////// + +////////////////////////////////////////////////////////////////////////////// +//CHECK#3 +if(myObj.p1 !== "x1"){ + $ERROR('#3: myObj.p1 === "x1". Actual: myObj.p1 ==='+ myObj.p1 ); +} +// +////////////////////////////////////////////////////////////////////////////// diff --git a/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A3.8_T5.js b/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A3.8_T5.js new file mode 100644 index 000000000..a12766435 --- /dev/null +++ b/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A3.8_T5.js @@ -0,0 +1,57 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/** + * @name: S12.10_A3.8_T5; + * @section: 12.10; + * @assertion: No matter how control leaves the embedded 'Statement', + * the scope chain is always restored to its former state; + * @description: Declaring function constructor within "with" statement, leading to completion by exception; + * @strict_mode_negative + */ + +this.p1 = 1; + +var result = "result"; + +var myObj = { + p1: 'a', + value: 'myObj_value', + valueOf : function(){return 'obj_valueOf';} +} + +try { + with(myObj){ + var __FACTORY = function(){ + throw value; + p1 = 'x1'; + } + var obj = new __FACTORY; + } +} catch(e){ + result = p1; +} + +////////////////////////////////////////////////////////////////////////////// +//CHECK#1 +if(result !== 1){ + $ERROR('#1: result === 1. Actual: result ==='+ result ); +} +// +////////////////////////////////////////////////////////////////////////////// + +////////////////////////////////////////////////////////////////////////////// +//CHECK#2 +if(p1 !== 1){ + $ERROR('#2: p1 === 1. Actual: p1 ==='+ p1 ); +} +// +////////////////////////////////////////////////////////////////////////////// + +////////////////////////////////////////////////////////////////////////////// +//CHECK#3 +if(myObj.p1 !== "a"){ + $ERROR('#3: myObj.p1 === "a". Actual: myObj.p1 ==='+ myObj.p1 ); +} +// +////////////////////////////////////////////////////////////////////////////// diff --git a/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A3.9_T1.js b/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A3.9_T1.js new file mode 100644 index 000000000..4c03877e9 --- /dev/null +++ b/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A3.9_T1.js @@ -0,0 +1,45 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/** + * @name: S12.10_A3.9_T1; + * @section: 12.10; + * @assertion: No matter how control leaves the embedded 'Statement', + * the scope chain is always restored to its former state; + * @description: Using "for-in" statement within "with" statement, leading to normal completion; + * @strict_mode_negative + */ + +this.p1 = 1; + +var result = "result"; + +var myObj = { + p1: 'a', + value: 'myObj_value', + valueOf : function(){return 'obj_valueOf';} +} + +with(myObj){ + for(var prop in myObj){ + p1 = 'x1'; + } +} + +////////////////////////////////////////////////////////////////////////////// +//CHECK#1 +if(p1 !== 1){ + $ERROR('#1: p1 === 1. Actual: p1 ==='+ p1 ); +} +// +////////////////////////////////////////////////////////////////////////////// + +////////////////////////////////////////////////////////////////////////////// +//CHECK#2 +if(myObj.p1 !== "x1"){ + $ERROR('#2: myObj.p1 === "x1". Actual: myObj.p1 ==='+ myObj.p1 ); +} +// +////////////////////////////////////////////////////////////////////////////// + + diff --git a/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A3.9_T2.js b/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A3.9_T2.js new file mode 100644 index 000000000..b5fdee851 --- /dev/null +++ b/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A3.9_T2.js @@ -0,0 +1,45 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/** + * @name: S12.10_A3.9_T2; + * @section: 12.10; + * @assertion: No matter how control leaves the embedded 'Statement', + * the scope chain is always restored to its former state; + * @description: Using "for-in" statement within "with" statement, leading to completion by break; + * @strict_mode_negative + */ + +this.p1 = 1; + +var result = "result"; + +var myObj = { + p1: 'a', + value: 'myObj_value', + valueOf : function(){return 'obj_valueOf';} +} + +with(myObj){ + for(var prop in myObj){ + p1 = 'x1'; + break; + } +} + +////////////////////////////////////////////////////////////////////////////// +//CHECK#1 +if(p1 !== 1){ + $ERROR('#1: p1 === 1. Actual: p1 ==='+ p1 ); +} +// +////////////////////////////////////////////////////////////////////////////// + +////////////////////////////////////////////////////////////////////////////// +//CHECK#2 +if(myObj.p1 !== "x1"){ + $ERROR('#2: myObj.p1 === "x1". Actual: myObj.p1 ==='+ myObj.p1 ); +} +// +////////////////////////////////////////////////////////////////////////////// + diff --git a/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A3.9_T3.js b/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A3.9_T3.js new file mode 100644 index 000000000..e5482ec64 --- /dev/null +++ b/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A3.9_T3.js @@ -0,0 +1,45 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/** + * @name: S12.10_A3.9_T3; + * @section: 12.10; + * @assertion: No matter how control leaves the embedded 'Statement', + * the scope chain is always restored to its former state; + * @description: Using "for-in" statement within "with" statement, leading to completion by break; + * @strict_mode_negative + */ + +this.p1 = 1; + +var result = "result"; + +var myObj = { + p1: 'a', + value: 'myObj_value', + valueOf : function(){return 'obj_valueOf';} +} + +with(myObj){ + for(var prop in myObj){ + break; + p1 = 'x1'; + } +} + +////////////////////////////////////////////////////////////////////////////// +//CHECK#1 +if(p1 !== 1){ + $ERROR('#1: p1 === 1. Actual: p1 ==='+ p1 ); +} +// +////////////////////////////////////////////////////////////////////////////// + +////////////////////////////////////////////////////////////////////////////// +//CHECK#2 +if(myObj.p1 !== "a"){ + $ERROR('#2: myObj.p1 === "a". Actual: myObj.p1 ==='+ myObj.p1 ); +} +// +////////////////////////////////////////////////////////////////////////////// + diff --git a/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A4_T1.js b/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A4_T1.js new file mode 100644 index 000000000..5beb7fd07 --- /dev/null +++ b/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A4_T1.js @@ -0,0 +1,32 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/** + * @name: S12.10_A4_T1; + * @section: 12.10; + * @assertion: Changing property using "eval" statement containing "with" statement; + * @description: Changing string property; + * @strict_mode_negative + */ + +this.p1 = 1; +var myObj = { + p1: 'a', +} +eval("with(myObj){p1='b'}"); + +////////////////////////////////////////////////////////////////////////////// +//CHECK#1 +if(myObj.p1 !== 'b'){ + $ERROR('#1: myObj.p1 === "b". Actual: myObj.p1 ==='+ myObj.p1 ); +} +// +////////////////////////////////////////////////////////////////////////////// + +////////////////////////////////////////////////////////////////////////////// +//CHECK#2 +if(myObj.p1 === 1){ + $ERROR('#2: myObj.p1 !== 1'); +} +// +////////////////////////////////////////////////////////////////////////////// diff --git a/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A4_T2.js b/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A4_T2.js new file mode 100644 index 000000000..207ecf8ca --- /dev/null +++ b/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A4_T2.js @@ -0,0 +1,32 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/** + * @name: S12.10_A4_T2; + * @section: 12.10; + * @assertion: Changing property using "eval" statement containing "with" statement; + * @description: Changing number property; + * @strict_mode_negative + */ + +this.p1 = 'a'; +var myObj = { + p1: 1, +} +eval("with(myObj){p1=2}"); + +////////////////////////////////////////////////////////////////////////////// +//CHECK#1 +if(myObj.p1 !== 2){ + $ERROR('#1: myObj.p1 === 2. Actual: myObj.p1 ==='+ myObj.p1 ); +} +// +////////////////////////////////////////////////////////////////////////////// + +////////////////////////////////////////////////////////////////////////////// +//CHECK#2 +if(myObj.p1 === 'a'){ + $ERROR('#2: myObj.p1 !== \'a\''); +} +// +////////////////////////////////////////////////////////////////////////////// diff --git a/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A4_T3.js b/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A4_T3.js new file mode 100644 index 000000000..0b91f7b88 --- /dev/null +++ b/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A4_T3.js @@ -0,0 +1,32 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/** + * @name: S12.10_A4_T3; + * @section: 12.10; + * @assertion: Changing property using "eval" statement containing "with" statement; + * @description: Changing boolean property; + * @strict_mode_negative + */ + +this.p1 = 'a'; +var myObj = { + p1: true, +} +eval("with(myObj){p1=false}"); + +////////////////////////////////////////////////////////////////////////////// +//CHECK#1 +if(myObj.p1 !== false){ + $ERROR('#1: myObj.p1 === false. Actual: myObj.p1 ==='+ myObj.p1 ); +} +// +////////////////////////////////////////////////////////////////////////////// + +////////////////////////////////////////////////////////////////////////////// +//CHECK#2 +if(myObj.p1 === 'a'){ + $ERROR('#2: myObj.p1 !== \'a\''); +} +// +////////////////////////////////////////////////////////////////////////////// diff --git a/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A4_T4.js b/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A4_T4.js new file mode 100644 index 000000000..e9cc027bf --- /dev/null +++ b/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A4_T4.js @@ -0,0 +1,41 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/** + * @name: S12.10_A4_T4; + * @section: 12.10; + * @assertion: Changing property using "eval" statement containing "with" statement; + * @description: Changing object property; + * @strict_mode_negative + */ + +this.p1 = 'a'; +var myObj = { + p1: {a:"hello"}, +} +eval("with(myObj){p1={b:'hi'}}"); + +////////////////////////////////////////////////////////////////////////////// +//CHECK#1 +if(myObj.p1.a === "hello"){ + $ERROR('#1: myObj.p1.a !== "hello"'); +} +// +////////////////////////////////////////////////////////////////////////////// + +////////////////////////////////////////////////////////////////////////////// +//CHECK#2 +if(myObj.p1.b !== "hi"){ + $ERROR('#2: myObj.p1.b === "hi". Actual: myObj.p1.b ==='+ myObj.p1.b ); +} +// +////////////////////////////////////////////////////////////////////////////// + + +////////////////////////////////////////////////////////////////////////////// +//CHECK#3 +if(myObj.p1 === 'a'){ + $ERROR('#3: myObj.p1 !== \'a\''); +} +// +////////////////////////////////////////////////////////////////////////////// diff --git a/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A4_T5.js b/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A4_T5.js new file mode 100644 index 000000000..a425de8ce --- /dev/null +++ b/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A4_T5.js @@ -0,0 +1,32 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/** + * @name: S12.10_A4_T5; + * @section: 12.10; + * @assertion: Changing property using "eval" statement containing "with" statement; + * @description: Changing array property; + * @strict_mode_negative + */ + +this.p1 = 'a'; +var myObj = { + p1: [1,2,3], +} +eval("with(myObj){p1=[3,2,1]}"); + +////////////////////////////////////////////////////////////////////////////// +//CHECK#1 +if(myObj.p1[2] !== 1){ + $ERROR('#1: myObj.p1[2] === 1. Actual: myObj.p1[2] ==='+ myObj.p1[2] ); +} +// +////////////////////////////////////////////////////////////////////////////// + +////////////////////////////////////////////////////////////////////////////// +//CHECK#3 +if(myObj.p1 === 'a'){ + $ERROR('#2: myObj.p1 !== \'a\''); +} +// +////////////////////////////////////////////////////////////////////////////// diff --git a/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A4_T6.js b/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A4_T6.js new file mode 100644 index 000000000..036f64d7b --- /dev/null +++ b/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A4_T6.js @@ -0,0 +1,32 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/** + * @name: S12.10_A4_T6; + * @section: 12.10; + * @assertion: Changing property using "eval" statement containing "with" statement; + * @description: Changing function property; + * @strict_mode_negative + */ + +this.p1 = 'a'; +var myObj = { + p1: function(){return 0;}, +} +eval("with(myObj){p1=function(){return 1;}}"); + +////////////////////////////////////////////////////////////////////////////// +//CHECK#1 +if(myObj.p1() !== 1){ + $ERROR('#1: myObj.p1 === 1. Actual: myObj.p1 ==='+ myObj.p1 ); +} +// +////////////////////////////////////////////////////////////////////////////// + +////////////////////////////////////////////////////////////////////////////// +//CHECK#3 +if(myObj.p1 === 'a'){ + $ERROR('#2: myObj.p1 !== \'a\''); +} +// +////////////////////////////////////////////////////////////////////////////// diff --git a/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A5_T1.js b/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A5_T1.js new file mode 100644 index 000000000..bbcce8bbe --- /dev/null +++ b/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A5_T1.js @@ -0,0 +1,49 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/** + * @name: S12.10_A5_T1; + * @section: 12.10; + * @assertion: Deleting property using "eval" statement containing "with" statement; + * @description: Deleting string property; + * @strict_mode_negative + */ + +this.p1 = 1; +var myObj = { + p1: 'a', + del:false +} +eval("with(myObj){del = delete p1}"); + +////////////////////////////////////////////////////////////////////////////// +//CHECK#1 +if(myObj.p1 === 'a'){ + $ERROR('#1: myObj.p1 !== "a"'); +} +// +////////////////////////////////////////////////////////////////////////////// + +////////////////////////////////////////////////////////////////////////////// +//CHECK#2 +if(myObj.p1 !== undefined){ + $ERROR('#2: myObj.p1 === undefined. Actual: myObj.p1 ==='+ myObj.p1 ); +} +// +////////////////////////////////////////////////////////////////////////////// + +////////////////////////////////////////////////////////////////////////////// +//CHECK#3 +if(myObj.del !== true){ + $ERROR('#3: myObj.del === true. Actual: myObj.del ==='+ myObj.del ); +} +// +////////////////////////////////////////////////////////////////////////////// + +////////////////////////////////////////////////////////////////////////////// +//CHECK#4 +if(myObj.p1 === 1){ + $ERROR('#4: myObj.p1 !== 1'); +} +// +////////////////////////////////////////////////////////////////////////////// diff --git a/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A5_T2.js b/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A5_T2.js new file mode 100644 index 000000000..29e3f28b8 --- /dev/null +++ b/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A5_T2.js @@ -0,0 +1,49 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/** + * @name: S12.10_A5_T2; + * @section: 12.10; + * @assertion: Deleting property using "eval" statement containing "with" statement; + * @description: Deleting number property; + * @strict_mode_negative + */ + +this.p1 = 'a'; +var myObj = { + p1: 1, + del:false +} +eval("with(myObj){del = delete p1}"); + +////////////////////////////////////////////////////////////////////////////// +//CHECK#1 +if(myObj.p1 === 1){ + $ERROR('#1: myObj.p1 !== 1'); +} +// +////////////////////////////////////////////////////////////////////////////// + +////////////////////////////////////////////////////////////////////////////// +//CHECK#2 +if(myObj.p1 !== undefined){ + $ERROR('#2: myObj.p1 === undefined . Actual: myObj.p1 ==='+ myObj.p1 ); +} +// +////////////////////////////////////////////////////////////////////////////// + +////////////////////////////////////////////////////////////////////////////// +//CHECK#3 +if(myObj.del !== true){ + $ERROR('#3: myObj.del === true. Actual: myObj.del ===. Actual: myObj.del ==='+ myObj.del +myObj.del); +} +// +////////////////////////////////////////////////////////////////////////////// + +////////////////////////////////////////////////////////////////////////////// +//CHECK#4 +if(myObj.p1 === 'a'){ + $ERROR('#4: myObj.p1 !== \'a\''); +} +// +////////////////////////////////////////////////////////////////////////////// diff --git a/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A5_T3.js b/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A5_T3.js new file mode 100644 index 000000000..d5632a21d --- /dev/null +++ b/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A5_T3.js @@ -0,0 +1,50 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/** + * @name: S12.10_A5_T3; + * @section: 12.10; + * @assertion: Deleting property using "eval" statement containing "with" statement; + * @description: Deleting boolean property; + * @strict_mode_negative + */ + +this.p1 = 'a'; +var myObj = { + p1: true, + del:false +} + +eval("with(myObj){del = delete p1}"); + +////////////////////////////////////////////////////////////////////////////// +//CHECK#1 +if(myObj.p1 === true){ + $ERROR('#1: myObj.p1 !== true '); +} +// +////////////////////////////////////////////////////////////////////////////// + +////////////////////////////////////////////////////////////////////////////// +//CHECK#2 +if(myObj.p1 !== undefined){ + $ERROR('#2: myObj.p1 === undefined . Actual: myObj.p1 ==='+ myObj.p1 ); +} +// +////////////////////////////////////////////////////////////////////////////// + +////////////////////////////////////////////////////////////////////////////// +//CHECK#3 +if(myObj.del !== true){ + $ERROR('#3: myObj.del === true . Actual: myObj.del ==='+ myObj.del ); +} +// +////////////////////////////////////////////////////////////////////////////// + +////////////////////////////////////////////////////////////////////////////// +//CHECK#4 +if(myObj.p1 === 'a'){ + $ERROR('#4: myObj.p1 !== \'a\''); +} +// +////////////////////////////////////////////////////////////////////////////// diff --git a/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A5_T4.js b/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A5_T4.js new file mode 100644 index 000000000..4316fabee --- /dev/null +++ b/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A5_T4.js @@ -0,0 +1,54 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/** + * @name: S12.10_A5_T4; + * @section: 12.10; + * @assertion: Deleting property using "eval" statement containing "with" statement; + * @description: Deleting object property; + * @strict_mode_negative + */ + +this.p1 = 'a'; +var myObj = { + p1: {a:"hello"}, + del:false +} +eval("with(myObj){del = delete p1}"); + +////////////////////////////////////////////////////////////////////////////// +//CHECK#1 +try{ +if(myObj.p1.a === "hello"){ + $ERROR('#1: myObj.p1.a !== "hello" '); +} +}catch(e){var x=1}; +if(x !== 1){ + $ERROR('#1: x === 1. Actual: x ==='+ x ); +} +// +////////////////////////////////////////////////////////////////////////////// + +////////////////////////////////////////////////////////////////////////////// +//CHECK#2 +if(myObj.p1 !== undefined){ + $ERROR('#2: myObj.p1 === undefined . Actual: myObj.p1 ==='+ myObj.p1 ); +} +// +////////////////////////////////////////////////////////////////////////////// + +////////////////////////////////////////////////////////////////////////////// +//CHECK#3 +if(myObj.del !== true){ + $ERROR('#3: myObj.del === true . Actual: myObj.del ==='+ myObj.del ); +} +// +////////////////////////////////////////////////////////////////////////////// + +////////////////////////////////////////////////////////////////////////////// +//CHECK#4 +if(myObj.p1 === 'a'){ + $ERROR('#4: myObj.p1 !== \'a\''); +} +// +////////////////////////////////////////////////////////////////////////////// diff --git a/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A5_T5.js b/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A5_T5.js new file mode 100644 index 000000000..4351c21ec --- /dev/null +++ b/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A5_T5.js @@ -0,0 +1,54 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/** + * @name: S12.10_A5_T5; + * @section: 12.10; + * @assertion: Deleting property using "eval" statement containing "with" statement; + * @description: Deleting array property; + * @strict_mode_negative + */ + +this.p1 = 'a'; +var myObj = { + p1: [1,2,3], + del:false +} +eval("with(myObj){del = delete p1}"); + +////////////////////////////////////////////////////////////////////////////// +//CHECK#1 +try{ +if(myObj.p1[2] === 3){ + $ERROR('#1: myObj.p1[2] !== 3 '); +} +}catch(e){var x=1}; +if(x !== 1){ + $ERROR('#1: x === 1. Actual: x ==='+ x ); +} +// +////////////////////////////////////////////////////////////////////////////// + +////////////////////////////////////////////////////////////////////////////// +//CHECK#2 +if(myObj.p1 !== undefined){ + $ERROR('#2: myObj.p1 === undefined . Actual: myObj.p1 ==='+ myObj.p1 ); +} +// +////////////////////////////////////////////////////////////////////////////// + +////////////////////////////////////////////////////////////////////////////// +//CHECK#3 +if(myObj.del !== true){ + $ERROR('#3: myObj.del === true . Actual: myObj.del ==='+ myObj.del ); +} +// +////////////////////////////////////////////////////////////////////////////// + +////////////////////////////////////////////////////////////////////////////// +//CHECK#4 +if(myObj.p1 === 'a'){ + $ERROR('#4: myObj.p1 !== \'a\''); +} +// +////////////////////////////////////////////////////////////////////////////// diff --git a/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A5_T6.js b/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A5_T6.js new file mode 100644 index 000000000..b1202f195 --- /dev/null +++ b/external/contributions/Google/sputniktests/tests/Conformance/12_Statement/12.10_The_with_Statement/S12.10_A5_T6.js @@ -0,0 +1,54 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/** + * @name: S12.10_A5_T6; + * @section: 12.10; + * @assertion: Deleting property using "eval" statement containing "with" statement; + * @description: Deleting function property; + * @strict_mode_negative + */ + +this.p1 = 'a'; +var myObj = { + p1: function(){return 0;}, + del:false +} +eval("with(myObj){del = delete p1}"); + +////////////////////////////////////////////////////////////////////////////// +//CHECK#1 +try{ +if(myObj.p1() === 0){ + $ERROR('#1: myObj.p1() !== 0 '); +} +}catch(e){var x=1}; +if(x !== 1){ + $ERROR('#1: x === 1. Actual: x ==='+ x ); +} +// +////////////////////////////////////////////////////////////////////////////// + +////////////////////////////////////////////////////////////////////////////// +//CHECK#2 +if(myObj.p1 !== undefined){ + $ERROR('#2: myObj.p1 === undefined . Actual: myObj.p1 ==='+ myObj.p1 ); +} +// +////////////////////////////////////////////////////////////////////////////// + +////////////////////////////////////////////////////////////////////////////// +//CHECK#3 +if(myObj.del !== true){ + $ERROR('#3: myObj.del === true . Actual: myObj.del ==='+ myObj.del ); +} +// +////////////////////////////////////////////////////////////////////////////// + +////////////////////////////////////////////////////////////////////////////// +//CHECK#4 +if(myObj.p1 === 'a'){ + $ERROR('#4: myObj.p1 !== \'a\''); +} +// +////////////////////////////////////////////////////////////////////////////// |