| <html> |
| <head> |
| <script src="../../resources/js-test-pre.js"></script> |
| </head> |
| <body> |
| <script> |
| description('This test exercises the source URL and line number that is embedded in JavaScript exceptions, which is displayed in places like the JavaScript console. It differs from <span style="font-family: monospace;">exception-linenums.html</span> in that the line numbers are derived from within the HTML source, not a JavaScript source file.'); |
| |
| function exceptionInFunction() |
| { |
| throw new Error(); |
| } |
| |
| var e = undefined; |
| |
| try { |
| // Raises an exception that gets picked up by KJS_CHECKEXCEPTION |
| document.documentElement.innerHTML(foo); |
| } catch (exception) { |
| e = exception; |
| } |
| shouldBe("typeof e.sourceURL", '"string"'); |
| shouldBe("e.line", '18'); |
| |
| e = undefined; |
| try { |
| // Raises an exception that gets picked up by KJS_CHECKEXCEPTIONVALUE |
| document.documentElement.appendChild('').prefix = ''; |
| } catch (exception) { |
| e = exception; |
| } |
| shouldBe("typeof e.sourceURL", '"string"'); |
| shouldBe("e.line", '28'); |
| |
| e = undefined; |
| try { |
| // Raises an exception that gets picked up by KJS_CHECKEXCEPTIONREFERENCE |
| document.documentElement.appendChild('').innerHTML = ''; |
| } catch (exception) { |
| e = exception; |
| } |
| shouldBe("typeof e.sourceURL", '"string"'); |
| shouldBe("e.line", '38'); |
| |
| e = undefined; |
| try { |
| // Raises an exception that gets picked up by KJS_CHECKEXCEPTIONLIST |
| document.getElementById(1()); |
| } catch (exception) { |
| e = exception; |
| } |
| shouldBe("typeof e.sourceURL", '"string"'); |
| shouldBe("e.line", '48'); |
| |
| e = undefined; |
| // Raises an exception inside a function to check that its line number |
| // isn't overwritten in the assignment node. |
| try { |
| var a = exceptionInFunction(); |
| } catch (exception) { |
| e = exception; |
| } |
| shouldBe("typeof e.sourceURL", '"string"'); |
| shouldBe("e.line", '11'); |
| </script> |
| <script src="../../resources/js-test-post.js"></script> |
| </body> |
| </html> |