summaryrefslogtreecommitdiffstats
path: root/js/src/tests/test262/language/statements/function/S13.2.2_A17_T2.js
diff options
context:
space:
mode:
Diffstat (limited to 'js/src/tests/test262/language/statements/function/S13.2.2_A17_T2.js')
-rw-r--r--js/src/tests/test262/language/statements/function/S13.2.2_A17_T2.js72
1 files changed, 72 insertions, 0 deletions
diff --git a/js/src/tests/test262/language/statements/function/S13.2.2_A17_T2.js b/js/src/tests/test262/language/statements/function/S13.2.2_A17_T2.js
new file mode 100644
index 0000000000..e5d0d2e5d2
--- /dev/null
+++ b/js/src/tests/test262/language/statements/function/S13.2.2_A17_T2.js
@@ -0,0 +1,72 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+info: FunctionExpression containing "with" statement is admitted
+es5id: 13.2.2_A17_T2
+description: Throwing an exception within "with" statement
+flags: [noStrict]
+---*/
+
+this.p1="alert";
+
+__obj={p1:1,getRight:function(){return "right";}};
+
+getRight=function(){return "napravo";};
+
+try {
+ (function(){
+ with(__obj){
+ p1="w1";
+ getRight=function(){return false;}
+ throw p1;
+ }
+ })();
+} catch (e) {
+ resukt = p1;
+}
+
+
+//////////////////////////////////////////////////////////////////////////////
+//CHECK#1
+if (p1!=="alert") {
+ throw new Test262Error('#1: p1 === "alert". Actual: p1==='+p1);
+}
+//
+//////////////////////////////////////////////////////////////////////////////
+
+//////////////////////////////////////////////////////////////////////////////
+//CHECK#2
+if (getRight()!=="napravo") {
+ throw new Test262Error('#2: getRight() === "napravo". Actual: getRight() === '+getRight());
+}
+//
+//////////////////////////////////////////////////////////////////////////////
+
+//////////////////////////////////////////////////////////////////////////////
+//CHECK#3
+if (__obj.p1!=="w1") {
+ throw new Test262Error('#3: __obj.p1 === "w1". Actual: __obj.p1 ==='+__obj.p1);
+}
+//
+//////////////////////////////////////////////////////////////////////////////
+
+//////////////////////////////////////////////////////////////////////////////
+//CHECK#4
+if (__obj.getRight()!==false) {
+ throw new Test262Error('#4: __obj.getRight() === false. Actual: __obj.getRight() === '+__obj.getRight());
+}
+//
+//////////////////////////////////////////////////////////////////////////////
+
+//////////////////////////////////////////////////////////////////////////////
+//CHECK#5
+if (resukt !== "alert") {
+ throw new Test262Error('#5: resukt === "alert". Actual: resukt ==='+resukt);
+}
+//
+//////////////////////////////////////////////////////////////////////////////
+
+var resukt;
+
+reportCompare(0, 0);