|
|
1.1 ! root 1: /* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- ! 2: * ! 3: * The contents of this file are subject to the Netscape Public ! 4: * License Version 1.1 (the "License"); you may not use this file ! 5: * except in compliance with the License. You may obtain a copy of ! 6: * the License at http://www.mozilla.org/NPL/ ! 7: * ! 8: * Software distributed under the License is distributed on an "AS ! 9: * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or ! 10: * implied. See the License for the specific language governing ! 11: * rights and limitations under the License. ! 12: * ! 13: * The Original Code is Mozilla Communicator client code, released ! 14: * March 31, 1998. ! 15: * ! 16: * The Initial Developer of the Original Code is Netscape ! 17: * Communications Corporation. Portions created by Netscape are ! 18: * Copyright (C) 1998 Netscape Communications Corporation. All ! 19: * Rights Reserved. ! 20: * ! 21: * Contributor(s): ! 22: * ! 23: * Alternatively, the contents of this file may be used under the ! 24: * terms of the GNU Public License (the "GPL"), in which case the ! 25: * provisions of the GPL are applicable instead of those above. ! 26: * If you wish to allow use of your version of this file only ! 27: * under the terms of the GPL and not to allow others to use your ! 28: * version of this file under the NPL, indicate your decision by ! 29: * deleting the provisions above and replace them with the notice ! 30: * and other provisions required by the GPL. If you do not delete ! 31: * the provisions above, a recipient may use your version of this ! 32: * file under either the NPL or the GPL. ! 33: */ ! 34: ! 35: /* ! 36: * JS runtime exception classes. ! 37: */ ! 38: ! 39: #ifndef jsexn_h___ ! 40: #define jsexn_h___ ! 41: ! 42: JS_BEGIN_EXTERN_C ! 43: ! 44: /* ! 45: * Initialize the exception constructor/prototype hierarchy. ! 46: */ ! 47: extern JSObject * ! 48: js_InitExceptionClasses(JSContext *cx, JSObject *obj); ! 49: ! 50: /* ! 51: * String constants naming the exception classes. ! 52: */ ! 53: extern const char js_Error_str[]; ! 54: extern const char js_InternalError_str[]; ! 55: extern const char js_EvalError_str[]; ! 56: extern const char js_RangeError_str[]; ! 57: extern const char js_ReferenceError_str[]; ! 58: extern const char js_SyntaxError_str[]; ! 59: extern const char js_TypeError_str[]; ! 60: extern const char js_URIError_str[]; ! 61: ! 62: /* ! 63: * Given a JSErrorReport, check to see if there is an exception associated with ! 64: * the error number. If there is, then create an appropriate exception object, ! 65: * set it as the pending exception, and set the JSREPORT_EXCEPTION flag on the ! 66: * error report. Exception-aware host error reporters should probably ignore ! 67: * error reports so flagged. Returns JS_TRUE if an associated exception is ! 68: * found and set, JS_FALSE otherwise.. ! 69: */ ! 70: extern JSBool ! 71: js_ErrorToException(JSContext *cx, const char *message, JSErrorReport *reportp); ! 72: ! 73: /* ! 74: * Called if a JS API call to js_Execute or js_InternalCall fails; calls the ! 75: * error reporter with the error report associated with any uncaught exception ! 76: * that has been raised. Returns true if there was an exception pending, and ! 77: * the error reporter was actually called. ! 78: * ! 79: * The JSErrorReport * that the error reporter is called with is currently ! 80: * associated with a JavaScript object, and is not guaranteed to persist after ! 81: * the object is collected. Any persistent uses of the JSErrorReport contents ! 82: * should make their own copy. ! 83: * ! 84: * The flags field of the JSErrorReport will have the JSREPORT_EXCEPTION flag ! 85: * set; embeddings that want to silently propagate JavaScript exceptions to ! 86: * other contexts may want to use an error reporter that ignores errors with ! 87: * this flag. ! 88: */ ! 89: extern JSBool ! 90: js_ReportUncaughtException(JSContext *cx); ! 91: ! 92: extern JSErrorReport * ! 93: js_ErrorFromException(JSContext *cx, jsval exn); ! 94: ! 95: JS_END_EXTERN_C ! 96: ! 97: #endif /* jsexn_h___ */
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.