summaryrefslogtreecommitdiffstats
path: root/js/src/tests/test262/language/statements/throw/S12.13_A2_T6.js
diff options
context:
space:
mode:
Diffstat (limited to 'js/src/tests/test262/language/statements/throw/S12.13_A2_T6.js')
-rw-r--r--js/src/tests/test262/language/statements/throw/S12.13_A2_T6.js47
1 files changed, 47 insertions, 0 deletions
diff --git a/js/src/tests/test262/language/statements/throw/S12.13_A2_T6.js b/js/src/tests/test262/language/statements/throw/S12.13_A2_T6.js
new file mode 100644
index 0000000000..8026a54585
--- /dev/null
+++ b/js/src/tests/test262/language/statements/throw/S12.13_A2_T6.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.
+
+/*---
+info: |
+ "throw Expression" returns (throw, GetValue(Result(1)), empty), where 1
+ evaluates Expression
+es5id: 12.13_A2_T6
+description: Throwing 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.p1 === \'myObj_value\'. Actual: e.p1 ==='+ e.p1 );
+// CHECK#3
+ if (e.eval()!=='obj_eval') throw new Test262Error('#3: e.p1 === \'obj_eval\'. Actual: e.p1 ==='+ e.p1 );
+}
+
+// CHECK#4
+myObj.i=6
+try{
+ throw myObj;
+}
+catch(e){}
+if (myObj.i!==6) throw new Test262Error('#4: Handling of catch must be correct');
+
+reportCompare(0, 0);