|
|
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.