summaryrefslogtreecommitdiffstats
path: root/js/src/tests/test262/language/statements/try/S12.14_A18_T6.js
diff options
context:
space:
mode:
Diffstat (limited to 'js/src/tests/test262/language/statements/try/S12.14_A18_T6.js')
-rw-r--r--js/src/tests/test262/language/statements/try/S12.14_A18_T6.js55
1 files changed, 55 insertions, 0 deletions
diff --git a/js/src/tests/test262/language/statements/try/S12.14_A18_T6.js b/js/src/tests/test262/language/statements/try/S12.14_A18_T6.js
new file mode 100644
index 0000000000..1a4ba300cd
--- /dev/null
+++ b/js/src/tests/test262/language/statements/try/S12.14_A18_T6.js
@@ -0,0 +1,55 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+info: Catching objects with try/catch/finally statement
+es5id: 12.14_A18_T6
+description: Catching Object
+---*/
+
+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';},
+ i:7,
+}
+
+try{
+ throw myObj;
+}
+catch(e){
+// CHECK#1
+ if (e.p1!=="a") throw new Test262Error('#1: e.p1==="a". Actual: e.p1==='+ e.p1 );
+// CHECK#2
+ if (e.value!=='myObj_value') throw new Test262Error('#2: e.value===\'myObj_value\'. Actual: e.value==='+ e.value );
+// CHECK#3
+ if (e.eval()!=='obj_eval') throw new Test262Error('#3: e.eval()===\'obj_eval\'. Actual: e.eval()==='+ e.eval() );
+}
+
+// CHECK#4
+myObj.i=6;
+try{
+ throw myObj;
+}
+catch(e){}
+if (myObj.i!==6) throw new Test262Error('#4: Handling of catch must be correct');
+
+// CHECK#5
+myObj.i=6;
+try{
+ throw myObj;
+}
+catch(e){
+ e.i=10;
+}
+if (myObj.i!==10) throw new Test262Error('#5: Handling of catch must be correct');
+
+reportCompare(0, 0);