Describes the format of a JS error that is used either by the internal error reporting mechanism or by a user-defined error-reporting mechanism.
Syntax
JSErrorReport();
Properties
Name | Type | Description |
---|---|---|
filename |
const char * |
Indicates the source file or URL that produced the error condition. If NULL , the error is local to the script in the current HTML page. |
lineno |
unsigned |
Line number in the source that caused the error. |
column |
unsigned |
zero-based column index in line in the source that caused the error. |
isMuted |
bool |
The Web Platform allows scripts to be loaded from arbitrary cross-origin sources. This allows an attack by which a malicious website loads a sensitive file (say, a bank statement) cross-origin (using the user's cookies), and sniffs the generated syntax errors (via a window.onerror handler) for juicy morsels of its contents. To counter this attack, HTML5 specifies that script errors should be sanitized ("muted") when the script is not same-origin with the global for which it is loaded. Callers should set this flag for cross-origin scripts, and it will be propagated appropriately to child scripts and passed back in |
linebuf |
const char * |
Text of the line that caused the error, minus the trailing newline character. |
tokenptr |
const char * |
Pointer to the error token in *linebuf . |
uclinebuf |
const char16_t * |
Unicode line buffer. This is the buffer that contains the original data. |
uctokenptr |
const char16_t * |
Pointer to the error token in *uclinebuf . |
flags |
unsigned |
The logical OR of zero or more of the following flags:
The constant |
errorNumber |
unsigned |
The error number. |
ucmessage |
const char16_t * |
The default unicode error message. |
messageArgs |
const char16_t ** |
Arguments for the error message. |
exnType |
int16_t |
One of the JSExnType constants. |
Description
JSErrorReport
describes a single error that occurs in the execution of script.
In the event of an error, filename
will either contain the name of the external source file or URL containing the script (SCRIPT SRC=
) or NULL
, indicating that a script embedded in the current HTML page caused the error.
lineno
indicates the line number of the script containing the error. In the case of an error in a script embedded in the HTML page, lineno
indicates the HTML lineno where the script error is located.
linebuf
is a pointer to a user-defined buffer into which JS copies the offending line of the script.
tokenptr
is a pointer into linebuf
that identifies the precise location line of the problem within the offending line.
uclinebuf
is a pointer to a user-defined buffer into which JS copies the Unicode (original) version of the offending line of script.
uctokenptr
is a pointer into uclinebuf
that identifies the precise location line of the problem within the offending Unicode (original) version of the offending line.
To use JSErrorReport
, your application must define a variable of type JSErrorReport
and allocate a buffer to hold the text that generated the error condition. Set linebuf
to point at the buffer before your application executes a script. For Unicode scripts, define a second buffer that holds the Unicode version of the text the generated the error. For application that do not use Unicode, set uclinebuf
and uctokenptr
to NULL
.
Macros
Name | Description |
---|---|
JSREPORT_IS_WARNING(flags) |
Returns true if flags has JSREPORT_WARNING . |
JSREPORT_IS_EXCEPTION(flags) |
Returns true if flags has JSREPORT_EXCEPTION . |
JSREPORT_IS_STRICT(flags) |
Returns true if flags has JSREPORT_STRICT . |
JSREPORT_IS_STRICT_MODE_ERROR(flags) |
Returns true if flags has JSREPORT_STRICT_MODE_ERROR . |