| <html> |
| <head> |
| <style> |
| body { white-space: normal; } |
| <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-in-html-1.html</span> in that it only works if <a href="https://bugs.webkit.org/show_bug.cgi?id=6314">Bugzilla Bug 6314</a> has been fixed.'); |
| |
| 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", '23'); |
| |
| 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", '33'); |
| |
| 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", '43'); |
| |
| 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", '53'); |
| |
| 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", '16'); |
| </script> |
| <script src="../../resources/js-test-post.js"></script> |
| </body> |
| </html> |