X-Git-Url: https://git.saurik.com/apple/javascriptcore.git/blobdiff_plain/b5422865f473faf3977f31b96a635c4c8c4ede09..9dae56ea45a0f5f8136a5c93d6f3a7f99399ca73:/kjs/debugger.h diff --git a/kjs/debugger.h b/kjs/debugger.h deleted file mode 100644 index 6aa15e2..0000000 --- a/kjs/debugger.h +++ /dev/null @@ -1,225 +0,0 @@ -// -*- c-basic-offset: 2 -*- -/* - * This file is part of the KDE libraries - * Copyright (C) 1999-2001 Harri Porten (porten@kde.org) - * Copyright (C) 2001 Peter Kelly (pmk@post.com) - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - * - */ - -#ifndef _KJSDEBUGGER_H_ -#define _KJSDEBUGGER_H_ - -#include -#include "protect.h" - -namespace KJS { - - class DebuggerImp; - class ExecState; - class JSGlobalObject; - class JSObject; - class JSValue; - class SourceCode; - class UString; - class List; - - /** - * @internal - * - * Provides an interface which receives notification about various - * script-execution related events such as statement execution and function - * calls. - * - * WARNING: This interface is still a work in progress and is not yet - * offically publicly available. It is likely to change in binary incompatible - * (and possibly source incompatible) ways in future versions. It is - * anticipated that at some stage the interface will be frozen and made - * available for general use. - */ - class Debugger { - public: - - /** - * Creates a new debugger - */ - Debugger(); - - /** - * Destroys the debugger. If the debugger is attached to any global objects, - * it is automatically detached. - */ - virtual ~Debugger(); - - DebuggerImp *imp() const { return rep; } - - /** - * Attaches the debugger to specified global object. This will cause this - * object to receive notification of events during execution. - * - * If the global object is deleted, it will detach the debugger. - * - * Note: only one debugger can be attached to a global object at a time. - * Attaching another debugger to the same global object will cause the - * original debugger to be detached. - * - * @param The global object to attach to. - * - * @see detach() - */ - void attach(JSGlobalObject*); - - /** - * Detach the debugger from a global object. - * - * @param The global object to detach from. If 0, the debugger will be - * detached from all global objects to which it is attached. - * - * @see attach() - */ - void detach(JSGlobalObject*); - - /** - * Called to notify the debugger that some javascript source code has - * been parsed. For calls to Interpreter::evaluate(), this will be called - * with the supplied source code before any other code is parsed. - * Other situations in which this may be called include creation of a - * function using the Function() constructor, or the eval() function. - * - * The default implementation does nothing. Override this method if - * you want to process this event. - * - * @param exec The current execution state - * @param sourceId The ID of the source code (corresponds to the - * sourceId supplied in other functions such as atStatement() - * @param sourceURL Where the source code that was parsed came from - * @param source The source code that was parsed - * @param startingLineNumber The line number at which parsing started - * @param errorLine The line number at which parsing encountered an - * error, or -1 if the source code was valid and parsed successfully - * @param errorMsg The error description, or null if the source code - was valid and parsed successfully - * @return true if execution should be continue, false if it should - * be aborted - */ - virtual bool sourceParsed(ExecState*, const SourceCode&, int errorLine, const UString& errorMsg) = 0; - - /** - * Called when all functions/programs associated with a particular - * sourceId have been deleted. After this function has been called for - * a particular sourceId, that sourceId will not be used again. - * - * The default implementation does nothing. Override this method if - * you want to process this event. - * - * @param exec The current execution state - * @param sourceId The ID of the source code (corresponds to the - * sourceId supplied in other functions such as atLine() - * @return true if execution should be continue, false if it should - * be aborted - */ - virtual bool sourceUnused(ExecState *exec, intptr_t sourceID); - - /** - * Called when an exception is thrown during script execution. - * - * The default implementation does nothing. Override this method if - * you want to process this event. - * - * @param exec The current execution state - * @param sourceId The ID of the source code being executed - * @param lineno The line at which the error occurred - * @param exceptionObj The exception object - * @return true if execution should be continue, false if it should - * be aborted - */ - virtual bool exception(ExecState *exec, intptr_t sourceID, int lineno, - JSValue *exception); - - bool hasHandledException(ExecState *, JSValue *); - - /** - * Called when a line of the script is reached (before it is executed) - * - * The default implementation does nothing. Override this method if - * you want to process this event. - * - * @param exec The current execution state - * @param sourceId The ID of the source code being executed - * @param firstLine The starting line of the statement that is about to be - * executed - * @param lastLine The ending line of the statement that is about to be - * executed (usually the same as firstLine) - * @return true if execution should be continue, false if it should - * be aborted - */ - virtual bool atStatement(ExecState *exec, intptr_t sourceID, int firstLine, - int lastLine); - /** - * Called on each function call. Use together with @ref #returnEvent - * if you want to keep track of the call stack. - * - * Note: This only gets called for functions that are declared in ECMAScript - * source code or passed to eval(), not for internal KJS or - * application-supplied functions. - * - * The default implementation does nothing. Override this method if - * you want to process this event. - * - * @param exec The current execution state - * @param sourceId The ID of the source code being executed - * @param lineno The line that is about to be executed - * @param function The function being called - * @param args The arguments that were passed to the function - * line is being executed - * @return true if execution should be continue, false if it should - * be aborted - */ - virtual bool callEvent(ExecState *exec, intptr_t sourceID, int lineno, - JSObject *function, const List &args); - - /** - * Called on each function exit. The function being returned from is that - * which was supplied in the last callEvent(). - * - * Note: This only gets called for functions that are declared in ECMAScript - * source code or passed to eval(), not for internal KJS or - * application-supplied functions. - * - * The default implementation does nothing. Override this method if - * you want to process this event. - * - * @param exec The current execution state - * @param sourceId The ID of the source code being executed - * @param lineno The line that is about to be executed - * @param function The function being called - * @return true if execution should be continue, false if it should - * be aborted - */ - virtual bool returnEvent(ExecState *exec, intptr_t sourceID, int lineno, - JSObject *function); - - private: - DebuggerImp *rep; - HashMap > latestExceptions; - - public: - static int debuggersPresent; - }; - -} - -#endif