onerroreventhandler-frame.html (1693B)
1 <body></body> 2 <script> 3 function check1(args, callee) { 4 parent.t.step(function() { 5 parent.assert_equals(callee.length, 5); 6 parent.assert_equals(args.length, 5); 7 parent.assert_equals(args[0], reference_error.message); 8 parent.assert_equals(args[1], reference_error.filename); 9 parent.assert_equals(args[2], reference_error.lineno); 10 parent.assert_equals(args[3], reference_error.colno); 11 parent.assert_equals(args[4], reference_error.error); 12 parent.t.done(); 13 }); 14 } 15 16 var reference_error = new ErrorEvent("error", { 17 filename: "error_file.js", 18 lineno: 333, 19 colno: 999, 20 message: "there was an error", 21 error: {nondefault: 'some unusual object'}, 22 }); 23 24 parent.t.step(function() { 25 document.body.outerHTML = "<body onerror='check1(arguments, arguments.callee)'></body>" 26 window.dispatchEvent(reference_error); 27 }); 28 29 function check2(args, callee) { 30 parent.t2.step(function() { 31 parent.assert_equals(callee.length, 5); 32 parent.assert_equals(args.length, 1); 33 parent.assert_false(args[0] instanceof ErrorEvent); 34 parent.t2.done() 35 }); 36 } 37 38 parent.t2.step(function() { 39 document.body.outerHTML = "<body onerror='check2(arguments, arguments.callee)'></body>" 40 window.dispatchEvent(new Event("error")); 41 }); 42 43 function check3(args, callee) { 44 parent.t3.step(function() { 45 parent.assert_equals(args.length, 1); 46 parent.assert_equals(callee.length, 1); 47 }); 48 } 49 50 parent.t3.step(function() { 51 document.body.outerHTML = "<body><span onerror='check3(arguments, arguments.callee)'></span></body>" 52 document.body.firstChild.dispatchEvent(reference_error); 53 document.body.firstChild.dispatchEvent(new Event("error")); 54 parent.t3.done(); 55 }); 56 </script>