Package org.htmlunit.javascript
Class DebugFrameImpl
- java.lang.Object
-
- org.htmlunit.javascript.DebugFrameAdapter
-
- org.htmlunit.javascript.DebugFrameImpl
-
- All Implemented Interfaces:
org.htmlunit.corejs.javascript.debug.DebugFrame
public class DebugFrameImpl extends DebugFrameAdapter
HtmlUnit's implementation of the
DebugFrameinterface, which logs stack entries as well as exceptions. All logging is done at theTRACElevel. This class does a fairly good job of guessing names for anonymous functions when they are referenced by name from an existing object. See the Rhino documentation or the interface source code for more information on theDebugFrameinterface and its uses.Please note that this class is intended mainly to aid in the debugging and development of HtmlUnit itself, rather than the debugging and development of web applications.
- See Also:
DebuggerImpl
-
-
Field Summary
Fields Modifier and Type Field Description private org.htmlunit.corejs.javascript.debug.DebuggableScriptfunctionOrScript_private static java.lang.StringKEY_LAST_LINEprivate static java.lang.StringKEY_LAST_SOURCEprivate static org.apache.commons.logging.LogLOG
-
Constructor Summary
Constructors Constructor Description DebugFrameImpl(org.htmlunit.corejs.javascript.debug.DebuggableScript functionOrScript)Creates a new debug frame.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description private static java.lang.StringgetFirstLine(org.htmlunit.corejs.javascript.Context cx)Returns the line number of the first line in this frame's function or script, or???if it cannot be determined.private java.lang.StringgetFunctionName(org.htmlunit.corejs.javascript.Scriptable thisObj)Returns the name of the function corresponding to this frame, if it is a function and it has a name.private java.lang.StringgetParamName(int index)Returns the name of the parameter at the specified index, or???if there is no corresponding name.private static java.lang.StringgetSourceName(org.htmlunit.corejs.javascript.Context cx)Returns the name of this frame's source.voidonEnter(org.htmlunit.corejs.javascript.Context cx, org.htmlunit.corejs.javascript.Scriptable activation, org.htmlunit.corejs.javascript.Scriptable thisObj, java.lang.Object[] args)voidonExceptionThrown(org.htmlunit.corejs.javascript.Context cx, java.lang.Throwable t)voidonLineChange(org.htmlunit.corejs.javascript.Context cx, int lineNumber)private static java.lang.StringstringValue(java.lang.Object arg)-
Methods inherited from class org.htmlunit.javascript.DebugFrameAdapter
onDebuggerStatement, onExit
-
-
-
-
Field Detail
-
LOG
private static final org.apache.commons.logging.Log LOG
-
KEY_LAST_LINE
private static final java.lang.String KEY_LAST_LINE
- See Also:
- Constant Field Values
-
KEY_LAST_SOURCE
private static final java.lang.String KEY_LAST_SOURCE
- See Also:
- Constant Field Values
-
functionOrScript_
private final org.htmlunit.corejs.javascript.debug.DebuggableScript functionOrScript_
-
-
Method Detail
-
onEnter
public void onEnter(org.htmlunit.corejs.javascript.Context cx, org.htmlunit.corejs.javascript.Scriptable activation, org.htmlunit.corejs.javascript.Scriptable thisObj, java.lang.Object[] args)- Specified by:
onEnterin interfaceorg.htmlunit.corejs.javascript.debug.DebugFrame- Overrides:
onEnterin classDebugFrameAdapter
-
stringValue
private static java.lang.String stringValue(java.lang.Object arg)
-
onExceptionThrown
public void onExceptionThrown(org.htmlunit.corejs.javascript.Context cx, java.lang.Throwable t)- Specified by:
onExceptionThrownin interfaceorg.htmlunit.corejs.javascript.debug.DebugFrame- Overrides:
onExceptionThrownin classDebugFrameAdapter
-
onLineChange
public void onLineChange(org.htmlunit.corejs.javascript.Context cx, int lineNumber)- Specified by:
onLineChangein interfaceorg.htmlunit.corejs.javascript.debug.DebugFrame- Overrides:
onLineChangein classDebugFrameAdapter
-
getFunctionName
private java.lang.String getFunctionName(org.htmlunit.corejs.javascript.Scriptable thisObj)
Returns the name of the function corresponding to this frame, if it is a function and it has a name. If the function does not have a name, this method will try to return the name under which it was referenced. See this page for a good explanation of how thethisObjplays into this guess.- Parameters:
thisObj- the object via which the function was referenced, used to try to guess a function name if the function is anonymous- Returns:
- the name of the function corresponding to this frame
-
getParamName
private java.lang.String getParamName(int index)
Returns the name of the parameter at the specified index, or???if there is no corresponding name.- Parameters:
index- the index of the parameter whose name is to be returned- Returns:
- the name of the parameter at the specified index, or
???if there is no corresponding name
-
getSourceName
private static java.lang.String getSourceName(org.htmlunit.corejs.javascript.Context cx)
Returns the name of this frame's source.- Returns:
- the name of this frame's source
-
getFirstLine
private static java.lang.String getFirstLine(org.htmlunit.corejs.javascript.Context cx)
Returns the line number of the first line in this frame's function or script, or???if it cannot be determined. This is necessary because the line numbers provided by Rhino are unordered.- Returns:
- the line number of the first line in this frame's function or script, or
???if it cannot be determined
-
-