Inspector should display information about non-object exceptions
https://bugs.webkit.org/show_bug.cgi?id=114123

Reviewed by Adele Peterson.

Source/JavaScriptCore:

Make sure we store the right stack information, even when throwing
a primitive.

* interpreter/CallFrame.h:
(JSC::ExecState::clearSupplementaryExceptionInfo):
(ExecState):
* interpreter/Interpreter.cpp:
(JSC::Interpreter::addStackTraceIfNecessary):
(JSC::Interpreter::throwException):

Source/WebCore:

Make use of the stack trace for line information when we're reporting
an exception

* bindings/js/JSDOMBinding.cpp:
(WebCore::reportException):

LayoutTests:

All these tests throw primitives as exceptions, and now they have source
and line number information

* fast/dom/exception-getting-event-handler-expected.txt:
* fast/dom/javascript-url-exception-isolation-expected.txt:
* fast/dom/nested-script-exceptions-expected.txt:
* fast/events/onerror-no-constructor-expected.txt:
* fast/events/window-onerror13-expected.txt:
* fast/events/window-onerror16-expected.txt:
* fast/events/window-onerror2-expected.txt:
* fast/events/window-onerror8-expected.txt:
* fast/js/uncaught-exception-line-number-expected.txt:
* fast/sub-pixel/inline-block-with-padding-expected.txt:
* platform/mac/fast/AppleScript/001-expected.txt:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@147872 268f45cc-cd09-0410-ab3c-d52691b4dbfc
diff --git a/Source/JavaScriptCore/interpreter/CallFrame.h b/Source/JavaScriptCore/interpreter/CallFrame.h
index 716115ba..746d334 100644
--- a/Source/JavaScriptCore/interpreter/CallFrame.h
+++ b/Source/JavaScriptCore/interpreter/CallFrame.h
@@ -68,6 +68,11 @@
         // But they're used in many places in legacy code, so they're not going away any time soon.
 
         void clearException() { globalData().exception = JSValue(); }
+        void clearSupplementaryExceptionInfo()
+        {
+            globalData().exceptionStack = RefCountedArray<StackFrame>();
+        }
+
         JSValue exception() const { return globalData().exception; }
         bool hadException() const { return globalData().exception; }