org.apache.bsf.debug.jsdi
Interface JsEngine
- Remote
- JsEngineStub, JsEngineStub
public interface JsEngine
extends Remote
Represents a remote engine as seen from the debugger.
It matches the notion of global object in JavaScript
specification. In other words, a JsEngine is an
execution context rather than an explicit engine.
This also means that a JsEngine is not multi-threaded,
there is only one execution being carried.
Hence, there is only one stack of JsContext for a
JsEngine. The stack is only accesible if the engine is
in a callback mode to the debugger, that is, the
execution is stopped at a breakpoint or after a stepping
order has completed.
Object | eval(String docname, String fnOrScript, int lineno) - Allow the debugger to evaluate an expression
within the current context.
|
JsContext | getContext(int depth) - Returns the JsContext at a certain depth.
|
int | getContextCount() - Returns the count of JsContext on the current stack.
|
JsCallbacks | getDebugger() - Return the current debugger.
|
JsObject | getGlobalObject() - Any execution in JavaScript happen with respect to a
global object, sort of the top-level name space for
properties.
|
String | getThread() - Returns name of the thread currently running in the engine
|
String | getThreadGroup() - Returns name of the ThreadGroup of the thread currently running in the engine
|
JsObject | getUndefinedValue() - As per ECMA specification, each JavaScript execution
defines a unique object for the undefined value.
|
boolean | isSuspended()
|
boolean | poll() - Allows the client debugger to poll the connection.
|
void | run() - Stepping commands:
run: resume execution until it finishes or a breakpoint is hit.
|
void | setDebugger(JsCallbacks debugger) - Set the associated debugger.
|
void | stepIn()
|
void | stepOut()
|
void | stepOver()
|
eval
public Object eval(String docname,
String fnOrScript,
int lineno)
throws RemoteException
Allow the debugger to evaluate an expression
within the current context.
getContext
public JsContext getContext(int depth)
throws RemoteException
Returns the JsContext at a certain depth.
Depth zero is the top of the stack, that is,
the inner execution context.
This is a valid call only if the engine is stopped
in a callback to the debugger (breakpoint or stepping
completed).
getContextCount
public int getContextCount()
throws RemoteException
Returns the count of JsContext on the current stack.
This is a valid call only if the engine is stopped
in a callback to the debugger (breakpoint or stepping
completed).
getDebugger
public JsCallbacks getDebugger()
throws RemoteException
Return the current debugger.
- the debugger, or null if none is attached.
getGlobalObject
public JsObject getGlobalObject()
throws RemoteException
Any execution in JavaScript happen with respect to a
global object, sort of the top-level name space for
properties. This is global object return by this call.
getThread
public String getThread()
throws RemoteException
Returns name of the thread currently running in the engine
getThreadGroup
public String getThreadGroup()
throws RemoteException
Returns name of the ThreadGroup of the thread currently running in the engine
getUndefinedValue
public JsObject getUndefinedValue()
throws RemoteException
As per ECMA specification, each JavaScript execution
defines a unique object for the undefined value.
isSuspended
public boolean isSuspended()
throws RemoteException
poll
public boolean poll()
throws RemoteException
Allows the client debugger to poll the connection.
run
public void run()
throws RemoteException
Stepping commands:
run: resume execution until it finishes or a breakpoint is hit.
stepIn: steps to the next statement, considering callee's statement if any.
stepOut: steps until the current JsContext exits.
stepOver: steps to the next statement within the same JsContext.
setDebugger
public void setDebugger(JsCallbacks debugger)
throws RemoteException
Set the associated debugger.
debugger
- the debugger to be used on callbacks from
the engine.
stepIn
public void stepIn()
throws RemoteException
stepOut
public void stepOut()
throws RemoteException
stepOver
public void stepOver()
throws RemoteException