summaryrefslogtreecommitdiff
path: root/Source/JavaScriptCore/runtime/CallData.h
diff options
context:
space:
mode:
authorLorry Tar Creator <lorry-tar-importer@lorry>2017-06-27 06:07:23 +0000
committerLorry Tar Creator <lorry-tar-importer@lorry>2017-06-27 06:07:23 +0000
commit1bf1084f2b10c3b47fd1a588d85d21ed0eb41d0c (patch)
tree46dcd36c86e7fbc6e5df36deb463b33e9967a6f7 /Source/JavaScriptCore/runtime/CallData.h
parent32761a6cee1d0dee366b885b7b9c777e67885688 (diff)
downloadWebKitGtk-tarball-master.tar.gz
Diffstat (limited to 'Source/JavaScriptCore/runtime/CallData.h')
-rw-r--r--Source/JavaScriptCore/runtime/CallData.h45
1 files changed, 28 insertions, 17 deletions
diff --git a/Source/JavaScriptCore/runtime/CallData.h b/Source/JavaScriptCore/runtime/CallData.h
index 3bbac734f..53043aaf1 100644
--- a/Source/JavaScriptCore/runtime/CallData.h
+++ b/Source/JavaScriptCore/runtime/CallData.h
@@ -10,7 +10,7 @@
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
- * 3. Neither the name of Apple Computer, Inc. ("Apple") nor the names of
+ * 3. Neither the name of Apple Inc. ("Apple") nor the names of
* its contributors may be used to endorse or promote products derived
* from this software without specific prior written permission.
*
@@ -26,39 +26,50 @@
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
-#ifndef CallData_h
-#define CallData_h
+#pragma once
#include "JSCJSValue.h"
+#include <wtf/NakedPtr.h>
namespace JSC {
class ArgList;
+class Exception;
class ExecState;
class FunctionExecutable;
class JSObject;
class JSScope;
-enum CallType {
- CallTypeNone,
- CallTypeHost,
- CallTypeJS
+enum class CallType : unsigned {
+ None,
+ Host,
+ JS
};
typedef EncodedJSValue (JSC_HOST_CALL *NativeFunction)(ExecState*);
-union CallData {
- struct {
- NativeFunction function;
- } native;
- struct {
- FunctionExecutable* functionExecutable;
- JSScope* scope;
- } js;
+struct CallData {
+ union {
+ struct {
+ NativeFunction function;
+ } native;
+ struct {
+ FunctionExecutable* functionExecutable;
+ JSScope* scope;
+ } js;
+ };
+};
+
+enum class ProfilingReason {
+ API,
+ Microtask,
+ Other
};
JS_EXPORT_PRIVATE JSValue call(ExecState*, JSValue functionObject, CallType, const CallData&, JSValue thisValue, const ArgList&);
+JS_EXPORT_PRIVATE JSValue call(ExecState*, JSValue functionObject, CallType, const CallData&, JSValue thisValue, const ArgList&, NakedPtr<Exception>& returnedException);
-} // namespace JSC
+JS_EXPORT_PRIVATE JSValue profiledCall(ExecState*, ProfilingReason, JSValue functionObject, CallType, const CallData&, JSValue thisValue, const ArgList&);
+JS_EXPORT_PRIVATE JSValue profiledCall(ExecState*, ProfilingReason, JSValue functionObject, CallType, const CallData&, JSValue thisValue, const ArgList&, NakedPtr<Exception>& returnedException);
-#endif // CallData_h
+} // namespace JSC