#include "CallData.h"
+namespace WTF {
+class Stopwatch;
+}
+
namespace JSC {
+class Exception;
class SourceCode;
}
namespace Inspector {
-typedef JSC::JSValue (*InspectorFunctionCallHandler)(JSC::ExecState* exec, JSC::JSValue functionObject, JSC::CallType callType, const JSC::CallData& callData, JSC::JSValue thisValue, const JSC::ArgList& args, JSC::JSValue* exception);
-typedef JSC::JSValue (*InspectorEvaluateHandler)(JSC::ExecState*, const JSC::SourceCode&, JSC::JSValue thisValue, JSC::JSValue* exception);
+typedef JSC::JSValue (*InspectorFunctionCallHandler)(JSC::ExecState* exec, JSC::JSValue functionObject, JSC::CallType callType, const JSC::CallData& callData, JSC::JSValue thisValue, const JSC::ArgList& args, NakedPtr<JSC::Exception>& returnedException);
+typedef JSC::JSValue (*InspectorEvaluateHandler)(JSC::ExecState*, const JSC::SourceCode&, JSC::JSValue thisValue, NakedPtr<JSC::Exception>& returnedException);
class InspectorEnvironment {
public:
virtual InspectorEvaluateHandler evaluateHandler() const = 0;
virtual void willCallInjectedScriptFunction(JSC::ExecState*, const String& scriptName, int scriptLine) = 0;
virtual void didCallInjectedScriptFunction(JSC::ExecState*) = 0;
+ virtual void frontendInitialized() = 0;
+ virtual Ref<WTF::Stopwatch> executionStopwatch() = 0;
};
} // namespace Inspector