/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- * * The contents of this file are subject to the Netscape Public * License Version 1.1 (the "License"); you may not use this file * except in compliance with the License. You may obtain a copy of * the License at http://www.mozilla.org/NPL/ * * Software distributed under the License is distributed on an "AS * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or * implied. See the License for the specific language governing * rights and limitations under the License. * * The Original Code is mozilla.org code. * * The Initial Developer of the Original Code is Netscape * Communications Corporation. Portions created by Netscape are * Copyright (C) 1998 Netscape Communications Corporation. All * Rights Reserved. * * Contributor(s): */ #include "nsISupports.idl" #include "nsIConsoleMessage.idl" [scriptable, uuid(fc9e5a94-1dd1-11b2-888b-d8907b2c6996)] interface nsIScriptError : nsIConsoleMessage { /** pseudo-flag for default case */ const unsigned long ERROR = 0x0; /** message is warning */ const unsigned long WARNING = 0x1; /** exception was thrown for this case - exception-aware hosts can ignore */ const unsigned long EXCEPTION = 0x2; // XXX check how strict is implemented these days. /** error or warning is due to strict option */ const unsigned long STRICT = 0x4; readonly attribute wstring fileName; readonly attribute PRUint32 lineNumber; readonly attribute wstring sourceLine; readonly attribute PRUint32 columnNumber; readonly attribute PRUint32 flags; readonly attribute wstring category; }; // jband asks: save more info for debuggy stuff in console? // e.g. title of window, maybe weak reference to originating window? // maybe just way to get from url to loaded document. // struct JSErrorReport { // const char *filename; /* source file name, URL, etc., or null */ // uintN lineno; /* source line number */ // const char *linebuf; /* offending source line without final \n */ // const char *tokenptr; /* pointer to error token in linebuf */ // const jschar *uclinebuf; /* unicode (original) line buffer */ // const jschar *uctokenptr; /* unicode (original) token pointer */ // uintN flags; /* error/warning, etc. */ // uintN errorNumber; /* the error number, e.g. see js.msg */ // const jschar *ucmessage; /* the (default) error message */ // const jschar **messageArgs; /* arguments for the error message */ // };