1f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch/* 2f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch * Copyright (C) 2009 Google Inc. All rights reserved. 3f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch * 4f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch * Redistribution and use in source and binary forms, with or without 5f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch * modification, are permitted provided that the following conditions are 6f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch * met: 7f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch * 8f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch * * Redistributions of source code must retain the above copyright 9f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch * notice, this list of conditions and the following disclaimer. 10f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch * * Redistributions in binary form must reproduce the above 11f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch * copyright notice, this list of conditions and the following disclaimer 12f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch * in the documentation and/or other materials provided with the 13f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch * distribution. 14f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch * * Neither the name of Google Inc. nor the names of its 15f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch * contributors may be used to endorse or promote products derived from 16f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch * this software without specific prior written permission. 17f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch * 18f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 19f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 20f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 21f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 22f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 23f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 24f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 25f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 26f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 27f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 28f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 29f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch */ 30f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch 31f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch#ifndef V8_INSPECTOR_V8FUNCTIONCALL_H_ 32f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch#define V8_INSPECTOR_V8FUNCTIONCALL_H_ 33f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch 34f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch#include "src/inspector/string-16.h" 35f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch 36f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch#include "include/v8.h" 37f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch 38f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdochnamespace v8_inspector { 39f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch 40f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdochclass V8InspectorImpl; 41f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch 42f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdochclass V8FunctionCall { 43f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch public: 44f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch V8FunctionCall(V8InspectorImpl*, v8::Local<v8::Context>, v8::Local<v8::Value>, 45f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch const String16& name); 46f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch 47f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch void appendArgument(v8::Local<v8::Value>); 48f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch void appendArgument(const String16&); 49f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch void appendArgument(int); 50f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch void appendArgument(bool); 51f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch 52f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch v8::Local<v8::Value> call(bool& hadException, bool reportExceptions = true); 53f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch v8::Local<v8::Value> callWithoutExceptionHandling(); 54f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch 55f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch protected: 56f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch V8InspectorImpl* m_inspector; 57f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch v8::Local<v8::Context> m_context; 58f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch std::vector<v8::Local<v8::Value>> m_arguments; 59f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch v8::Local<v8::String> m_name; 60f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch v8::Local<v8::Value> m_value; 61f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch}; 62f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch 63f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch} // namespace v8_inspector 64f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch 65f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch#endif // V8_INSPECTOR_V8FUNCTIONCALL_H_ 66