Classes | Defines

jsdIDebuggerService.h File Reference

#include "nsISupports.h"
#include "jsdebug.h"
#include "nsAString.h"
Include dependency graph for jsdIDebuggerService.h:

Classes

interface  jsdIDebuggerService
 Debugger service. More...
interface  jsdIFilter
 Object representing a pattern of global object and/or url the debugger should ignore. More...
interface  jsdINestCallback
 Pass an instance of one of these to jsdIDebuggerService::enterNestedEventLoop. More...
interface  jsdIFilterEnumerator
 Pass an instance of one of these to jsdIDebuggerService::enumerateFilters. More...
interface  jsdIScriptEnumerator
 Pass an instance of one of these to jsdIDebuggerService::enumerateScripts. More...
interface  jsdIContextEnumerator
 Pass an instance of one of these to jsdIDebuggerService::enumerateContexts. More...
interface  jsdIScriptHook
 Set jsdIDebuggerService::scriptHook to an instance of one of these. More...
interface  jsdICallHook
 Hook instances of this interface up to the jsdIDebuggerService::functionHook and toplevelHook properties. More...
interface  jsdIErrorHook
interface  jsdIExecutionHook
 Hook instances of this interface up to the jsdIDebuggerService::breakpointHook, debuggerHook, errorHook, interruptHook, and throwHook properties. More...
interface  jsdIEphemeral
 Objects which inherit this interface may go away, with (jsdIScript) or without (all others) notification. More...
interface  jsdIContext
 Context object. More...
interface  jsdIStackFrame
 Stack frame objects. More...
interface  jsdIScript
 Script object. More...
interface  jsdIValue
 Value objects. More...
interface  jsdIObject
 Properties specific to values which are also objects. More...
interface  jsdIProperty
 Representation of a property of an object. More...

Defines

#define NS_NO_VTABLE
#define JSDIDEBUGGERSERVICE_IID_STR   "dc0a24db-f8ac-4889-80d0-6016545a2dda"
#define JSDIDEBUGGERSERVICE_IID
#define NS_DECL_JSDIDEBUGGERSERVICE
#define NS_FORWARD_JSDIDEBUGGERSERVICE(_to)
#define NS_FORWARD_SAFE_JSDIDEBUGGERSERVICE(_to)
#define JSDIFILTER_IID_STR   "0c9189d9-4287-47a4-bca6-6ed65aaf737f"
#define JSDIFILTER_IID
#define NS_DECL_JSDIFILTER
#define NS_FORWARD_JSDIFILTER(_to)
#define NS_FORWARD_SAFE_JSDIFILTER(_to)
#define JSDINESTCALLBACK_IID_STR   "88bea60f-9b5d-4b39-b08b-1c3a278782c6"
#define JSDINESTCALLBACK_IID
#define NS_DECL_JSDINESTCALLBACK   NS_SCRIPTABLE NS_IMETHOD OnNest(void);
#define NS_FORWARD_JSDINESTCALLBACK(_to)   NS_SCRIPTABLE NS_IMETHOD OnNest(void) { return _to OnNest(); }
#define NS_FORWARD_SAFE_JSDINESTCALLBACK(_to)   NS_SCRIPTABLE NS_IMETHOD OnNest(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->OnNest(); }
#define JSDIFILTERENUMERATOR_IID_STR   "e391ba85-9379-4762-b387-558e38db730f"
#define JSDIFILTERENUMERATOR_IID
#define NS_DECL_JSDIFILTERENUMERATOR   NS_SCRIPTABLE NS_IMETHOD EnumerateFilter(jsdIFilter *filter);
#define NS_FORWARD_JSDIFILTERENUMERATOR(_to)   NS_SCRIPTABLE NS_IMETHOD EnumerateFilter(jsdIFilter *filter) { return _to EnumerateFilter(filter); }
#define NS_FORWARD_SAFE_JSDIFILTERENUMERATOR(_to)   NS_SCRIPTABLE NS_IMETHOD EnumerateFilter(jsdIFilter *filter) { return !_to ? NS_ERROR_NULL_POINTER : _to->EnumerateFilter(filter); }
#define JSDISCRIPTENUMERATOR_IID_STR   "5ba76b99-acb1-4ed8-a4e4-a716a7d9097e"
#define JSDISCRIPTENUMERATOR_IID
#define NS_DECL_JSDISCRIPTENUMERATOR   NS_SCRIPTABLE NS_IMETHOD EnumerateScript(jsdIScript *script);
#define NS_FORWARD_JSDISCRIPTENUMERATOR(_to)   NS_SCRIPTABLE NS_IMETHOD EnumerateScript(jsdIScript *script) { return _to EnumerateScript(script); }
#define NS_FORWARD_SAFE_JSDISCRIPTENUMERATOR(_to)   NS_SCRIPTABLE NS_IMETHOD EnumerateScript(jsdIScript *script) { return !_to ? NS_ERROR_NULL_POINTER : _to->EnumerateScript(script); }
#define JSDICONTEXTENUMERATOR_IID_STR   "d96af02e-3379-4db5-885d-fee28d178701"
#define JSDICONTEXTENUMERATOR_IID
#define NS_DECL_JSDICONTEXTENUMERATOR   NS_SCRIPTABLE NS_IMETHOD EnumerateContext(jsdIContext *executionContext);
#define NS_FORWARD_JSDICONTEXTENUMERATOR(_to)   NS_SCRIPTABLE NS_IMETHOD EnumerateContext(jsdIContext *executionContext) { return _to EnumerateContext(executionContext); }
#define NS_FORWARD_SAFE_JSDICONTEXTENUMERATOR(_to)   NS_SCRIPTABLE NS_IMETHOD EnumerateContext(jsdIContext *executionContext) { return !_to ? NS_ERROR_NULL_POINTER : _to->EnumerateContext(executionContext); }
#define JSDISCRIPTHOOK_IID_STR   "cf7ecc3f-361b-44af-84a7-4b0d6cdca204"
#define JSDISCRIPTHOOK_IID
#define NS_DECL_JSDISCRIPTHOOK
#define NS_FORWARD_JSDISCRIPTHOOK(_to)
#define NS_FORWARD_SAFE_JSDISCRIPTHOOK(_to)
#define JSDICALLHOOK_IID_STR   "191d2738-22e8-4756-b366-6c878c87d73b"
#define JSDICALLHOOK_IID
#define NS_DECL_JSDICALLHOOK   NS_SCRIPTABLE NS_IMETHOD OnCall(jsdIStackFrame *frame, PRUint32 type);
#define NS_FORWARD_JSDICALLHOOK(_to)   NS_SCRIPTABLE NS_IMETHOD OnCall(jsdIStackFrame *frame, PRUint32 type) { return _to OnCall(frame, type); }
#define NS_FORWARD_SAFE_JSDICALLHOOK(_to)   NS_SCRIPTABLE NS_IMETHOD OnCall(jsdIStackFrame *frame, PRUint32 type) { return !_to ? NS_ERROR_NULL_POINTER : _to->OnCall(frame, type); }
#define JSDIERRORHOOK_IID_STR   "cea9ab1a-4b5d-416f-a197-9ffa7046f2ce"
#define JSDIERRORHOOK_IID
#define NS_DECL_JSDIERRORHOOK   NS_SCRIPTABLE NS_IMETHOD OnError(const nsACString & message, const nsACString & fileName, PRUint32 line, PRUint32 pos, PRUint32 flags, PRUint32 errnum, jsdIValue *exc, PRBool *_retval NS_OUTPARAM);
#define NS_FORWARD_JSDIERRORHOOK(_to)   NS_SCRIPTABLE NS_IMETHOD OnError(const nsACString & message, const nsACString & fileName, PRUint32 line, PRUint32 pos, PRUint32 flags, PRUint32 errnum, jsdIValue *exc, PRBool *_retval NS_OUTPARAM) { return _to OnError(message, fileName, line, pos, flags, errnum, exc, _retval); }
#define NS_FORWARD_SAFE_JSDIERRORHOOK(_to)   NS_SCRIPTABLE NS_IMETHOD OnError(const nsACString & message, const nsACString & fileName, PRUint32 line, PRUint32 pos, PRUint32 flags, PRUint32 errnum, jsdIValue *exc, PRBool *_retval NS_OUTPARAM) { return !_to ? NS_ERROR_NULL_POINTER : _to->OnError(message, fileName, line, pos, flags, errnum, exc, _retval); }
#define JSDIEXECUTIONHOOK_IID_STR   "3a722496-9d78-4f0a-a797-293d9e8cb8d2"
#define JSDIEXECUTIONHOOK_IID
#define NS_DECL_JSDIEXECUTIONHOOK   NS_SCRIPTABLE NS_IMETHOD OnExecute(jsdIStackFrame *frame, PRUint32 type, jsdIValue **val NS_INOUTPARAM, PRUint32 *_retval NS_OUTPARAM);
#define NS_FORWARD_JSDIEXECUTIONHOOK(_to)   NS_SCRIPTABLE NS_IMETHOD OnExecute(jsdIStackFrame *frame, PRUint32 type, jsdIValue **val NS_INOUTPARAM, PRUint32 *_retval NS_OUTPARAM) { return _to OnExecute(frame, type, val, _retval); }
#define NS_FORWARD_SAFE_JSDIEXECUTIONHOOK(_to)   NS_SCRIPTABLE NS_IMETHOD OnExecute(jsdIStackFrame *frame, PRUint32 type, jsdIValue **val NS_INOUTPARAM, PRUint32 *_retval NS_OUTPARAM) { return !_to ? NS_ERROR_NULL_POINTER : _to->OnExecute(frame, type, val, _retval); }
#define JSDIEPHEMERAL_IID_STR   "46f1e23e-1dd2-11b2-9ceb-8285f2e95e69"
#define JSDIEPHEMERAL_IID
#define NS_DECL_JSDIEPHEMERAL
#define NS_FORWARD_JSDIEPHEMERAL(_to)
#define NS_FORWARD_SAFE_JSDIEPHEMERAL(_to)
#define JSDICONTEXT_IID_STR   "3e5c934d-6863-4d81-96f5-76a3b962fc2b"
#define JSDICONTEXT_IID
#define NS_DECL_JSDICONTEXT
#define NS_FORWARD_JSDICONTEXT(_to)
#define NS_FORWARD_SAFE_JSDICONTEXT(_to)
#define JSDISTACKFRAME_IID_STR   "0633ca73-105e-4e8e-bcc5-13405d61754a"
#define JSDISTACKFRAME_IID
#define NS_DECL_JSDISTACKFRAME
#define NS_FORWARD_JSDISTACKFRAME(_to)
#define NS_FORWARD_SAFE_JSDISTACKFRAME(_to)
#define JSDISCRIPT_IID_STR   "18e09893-f461-4b4b-94d3-776fb0069c6f"
#define JSDISCRIPT_IID
#define NS_DECL_JSDISCRIPT
#define NS_FORWARD_JSDISCRIPT(_to)
#define NS_FORWARD_SAFE_JSDISCRIPT(_to)
#define JSDIVALUE_IID_STR   "9cab158f-dc78-41dd-9d11-79e05cb3f2bd"
#define JSDIVALUE_IID
#define NS_DECL_JSDIVALUE
#define NS_FORWARD_JSDIVALUE(_to)
#define NS_FORWARD_SAFE_JSDIVALUE(_to)
#define JSDIOBJECT_IID_STR   "a735a94c-9d41-4997-8fcb-cfa8b649a5b7"
#define JSDIOBJECT_IID
#define NS_DECL_JSDIOBJECT
#define NS_FORWARD_JSDIOBJECT(_to)
#define NS_FORWARD_SAFE_JSDIOBJECT(_to)
#define JSDIPROPERTY_IID_STR   "4491ecd4-fb6b-43fb-bd6f-5d1473f1df24"
#define JSDIPROPERTY_IID
#define NS_DECL_JSDIPROPERTY
#define NS_FORWARD_JSDIPROPERTY(_to)
#define NS_FORWARD_SAFE_JSDIPROPERTY(_to)

Define Documentation

#define JSDICALLHOOK_IID
Value:
{0x191d2738, 0x22e8, 0x4756, \
    { 0xb3, 0x66, 0x6c, 0x87, 0x8c, 0x87, 0xd7, 0x3b }}
#define JSDICALLHOOK_IID_STR   "191d2738-22e8-4756-b366-6c878c87d73b"
#define JSDICONTEXT_IID
Value:
{0x3e5c934d, 0x6863, 0x4d81, \
    { 0x96, 0xf5, 0x76, 0xa3, 0xb9, 0x62, 0xfc, 0x2b }}
#define JSDICONTEXT_IID_STR   "3e5c934d-6863-4d81-96f5-76a3b962fc2b"
#define JSDICONTEXTENUMERATOR_IID
Value:
{0xd96af02e, 0x3379, 0x4db5, \
    { 0x88, 0x5d, 0xfe, 0xe2, 0x8d, 0x17, 0x87, 0x01 }}
#define JSDICONTEXTENUMERATOR_IID_STR   "d96af02e-3379-4db5-885d-fee28d178701"
#define JSDIDEBUGGERSERVICE_IID
Value:
{0xdc0a24db, 0xf8ac, 0x4889, \
    { 0x80, 0xd0, 0x60, 0x16, 0x54, 0x5a, 0x2d, 0xda }}
#define JSDIDEBUGGERSERVICE_IID_STR   "dc0a24db-f8ac-4889-80d0-6016545a2dda"
#define JSDIEPHEMERAL_IID
Value:
{0x46f1e23e, 0x1dd2, 0x11b2, \
    { 0x9c, 0xeb, 0x82, 0x85, 0xf2, 0xe9, 0x5e, 0x69 }}
#define JSDIEPHEMERAL_IID_STR   "46f1e23e-1dd2-11b2-9ceb-8285f2e95e69"
#define JSDIERRORHOOK_IID
Value:
{0xcea9ab1a, 0x4b5d, 0x416f, \
    { 0xa1, 0x97, 0x9f, 0xfa, 0x70, 0x46, 0xf2, 0xce }}
#define JSDIERRORHOOK_IID_STR   "cea9ab1a-4b5d-416f-a197-9ffa7046f2ce"
#define JSDIEXECUTIONHOOK_IID
Value:
{0x3a722496, 0x9d78, 0x4f0a, \
    { 0xa7, 0x97, 0x29, 0x3d, 0x9e, 0x8c, 0xb8, 0xd2 }}
#define JSDIEXECUTIONHOOK_IID_STR   "3a722496-9d78-4f0a-a797-293d9e8cb8d2"
#define JSDIFILTER_IID
Value:
{0x0c9189d9, 0x4287, 0x47a4, \
    { 0xbc, 0xa6, 0x6e, 0xd6, 0x5a, 0xaf, 0x73, 0x7f }}
#define JSDIFILTER_IID_STR   "0c9189d9-4287-47a4-bca6-6ed65aaf737f"
#define JSDIFILTERENUMERATOR_IID
Value:
{0xe391ba85, 0x9379, 0x4762, \
    { 0xb3, 0x87, 0x55, 0x8e, 0x38, 0xdb, 0x73, 0x0f }}
#define JSDIFILTERENUMERATOR_IID_STR   "e391ba85-9379-4762-b387-558e38db730f"
#define JSDINESTCALLBACK_IID
Value:
{0x88bea60f, 0x9b5d, 0x4b39, \
    { 0xb0, 0x8b, 0x1c, 0x3a, 0x27, 0x87, 0x82, 0xc6 }}
#define JSDINESTCALLBACK_IID_STR   "88bea60f-9b5d-4b39-b08b-1c3a278782c6"
#define JSDIOBJECT_IID
Value:
{0xa735a94c, 0x9d41, 0x4997, \
    { 0x8f, 0xcb, 0xcf, 0xa8, 0xb6, 0x49, 0xa5, 0xb7 }}
#define JSDIOBJECT_IID_STR   "a735a94c-9d41-4997-8fcb-cfa8b649a5b7"
#define JSDIPROPERTY_IID
Value:
{0x4491ecd4, 0xfb6b, 0x43fb, \
    { 0xbd, 0x6f, 0x5d, 0x14, 0x73, 0xf1, 0xdf, 0x24 }}
#define JSDIPROPERTY_IID_STR   "4491ecd4-fb6b-43fb-bd6f-5d1473f1df24"
#define JSDISCRIPT_IID
Value:
{0x18e09893, 0xf461, 0x4b4b, \
    { 0x94, 0xd3, 0x77, 0x6f, 0xb0, 0x06, 0x9c, 0x6f }}
#define JSDISCRIPT_IID_STR   "18e09893-f461-4b4b-94d3-776fb0069c6f"
#define JSDISCRIPTENUMERATOR_IID
Value:
{0x5ba76b99, 0xacb1, 0x4ed8, \
    { 0xa4, 0xe4, 0xa7, 0x16, 0xa7, 0xd9, 0x09, 0x7e }}
#define JSDISCRIPTENUMERATOR_IID_STR   "5ba76b99-acb1-4ed8-a4e4-a716a7d9097e"
#define JSDISCRIPTHOOK_IID
Value:
{0xcf7ecc3f, 0x361b, 0x44af, \
    { 0x84, 0xa7, 0x4b, 0x0d, 0x6c, 0xdc, 0xa2, 0x04 }}
#define JSDISCRIPTHOOK_IID_STR   "cf7ecc3f-361b-44af-84a7-4b0d6cdca204"
#define JSDISTACKFRAME_IID
Value:
{0x0633ca73, 0x105e, 0x4e8e, \
    { 0xbc, 0xc5, 0x13, 0x40, 0x5d, 0x61, 0x75, 0x4a }}
#define JSDISTACKFRAME_IID_STR   "0633ca73-105e-4e8e-bcc5-13405d61754a"
#define JSDIVALUE_IID
Value:
{0x9cab158f, 0xdc78, 0x41dd, \
    { 0x9d, 0x11, 0x79, 0xe0, 0x5c, 0xb3, 0xf2, 0xbd }}
#define JSDIVALUE_IID_STR   "9cab158f-dc78-41dd-9d11-79e05cb3f2bd"
#define NS_DECL_JSDICALLHOOK   NS_SCRIPTABLE NS_IMETHOD OnCall(jsdIStackFrame *frame, PRUint32 type);
#define NS_DECL_JSDICONTEXT
Value:
NS_IMETHOD GetJSContext(JSContext * *aJSContext); \
  NS_SCRIPTABLE NS_IMETHOD GetOptions(PRUint32 *aOptions); \
  NS_SCRIPTABLE NS_IMETHOD SetOptions(PRUint32 aOptions); \
  NS_SCRIPTABLE NS_IMETHOD GetVersion(PRInt32 *aVersion); \
  NS_SCRIPTABLE NS_IMETHOD SetVersion(PRInt32 aVersion); \
  NS_SCRIPTABLE NS_IMETHOD GetTag(PRUint32 *aTag); \
  NS_SCRIPTABLE NS_IMETHOD GetPrivateData(nsISupports * *aPrivateData); \
  NS_SCRIPTABLE NS_IMETHOD GetWrappedContext(nsISupports * *aWrappedContext); \
  NS_SCRIPTABLE NS_IMETHOD GetGlobalObject(jsdIValue * *aGlobalObject); \
  NS_SCRIPTABLE NS_IMETHOD GetScriptsEnabled(PRBool *aScriptsEnabled); \
  NS_SCRIPTABLE NS_IMETHOD SetScriptsEnabled(PRBool aScriptsEnabled);
#define NS_DECL_JSDICONTEXTENUMERATOR   NS_SCRIPTABLE NS_IMETHOD EnumerateContext(jsdIContext *executionContext);
#define NS_DECL_JSDIDEBUGGERSERVICE
#define NS_DECL_JSDIEPHEMERAL
Value:
NS_SCRIPTABLE NS_IMETHOD GetIsValid(PRBool *aIsValid); \
  NS_IMETHOD Invalidate(void);
#define NS_DECL_JSDIERRORHOOK   NS_SCRIPTABLE NS_IMETHOD OnError(const nsACString & message, const nsACString & fileName, PRUint32 line, PRUint32 pos, PRUint32 flags, PRUint32 errnum, jsdIValue *exc, PRBool *_retval NS_OUTPARAM);
#define NS_DECL_JSDIEXECUTIONHOOK   NS_SCRIPTABLE NS_IMETHOD OnExecute(jsdIStackFrame *frame, PRUint32 type, jsdIValue **val NS_INOUTPARAM, PRUint32 *_retval NS_OUTPARAM);
#define NS_DECL_JSDIFILTER
Value:
NS_SCRIPTABLE NS_IMETHOD GetFlags(PRUint32 *aFlags); \
  NS_SCRIPTABLE NS_IMETHOD SetFlags(PRUint32 aFlags); \
  NS_SCRIPTABLE NS_IMETHOD GetGlobalObject(nsISupports * *aGlobalObject); \
  NS_SCRIPTABLE NS_IMETHOD SetGlobalObject(nsISupports * aGlobalObject); \
  NS_SCRIPTABLE NS_IMETHOD GetUrlPattern(nsACString & aUrlPattern); \
  NS_SCRIPTABLE NS_IMETHOD SetUrlPattern(const nsACString & aUrlPattern); \
  NS_SCRIPTABLE NS_IMETHOD GetStartLine(PRUint32 *aStartLine); \
  NS_SCRIPTABLE NS_IMETHOD SetStartLine(PRUint32 aStartLine); \
  NS_SCRIPTABLE NS_IMETHOD GetEndLine(PRUint32 *aEndLine); \
  NS_SCRIPTABLE NS_IMETHOD SetEndLine(PRUint32 aEndLine);
#define NS_DECL_JSDIFILTERENUMERATOR   NS_SCRIPTABLE NS_IMETHOD EnumerateFilter(jsdIFilter *filter);
#define NS_DECL_JSDINESTCALLBACK   NS_SCRIPTABLE NS_IMETHOD OnNest(void);
#define NS_DECL_JSDIOBJECT
Value:
NS_IMETHOD GetJSDContext(JSDContext * *aJSDContext); \
  NS_IMETHOD GetJSDObject(JSDObject * *aJSDObject); \
  NS_SCRIPTABLE NS_IMETHOD GetCreatorURL(nsACString & aCreatorURL); \
  NS_SCRIPTABLE NS_IMETHOD GetCreatorLine(PRUint32 *aCreatorLine); \
  NS_SCRIPTABLE NS_IMETHOD GetConstructorURL(nsACString & aConstructorURL); \
  NS_SCRIPTABLE NS_IMETHOD GetConstructorLine(PRUint32 *aConstructorLine); \
  NS_SCRIPTABLE NS_IMETHOD GetValue(jsdIValue * *aValue);
#define NS_DECL_JSDIPROPERTY
Value:
NS_IMETHOD GetJSDContext(JSDContext * *aJSDContext); \
  NS_IMETHOD GetJSDProperty(JSDProperty * *aJSDProperty); \
  NS_SCRIPTABLE NS_IMETHOD GetFlags(PRUint32 *aFlags); \
  NS_SCRIPTABLE NS_IMETHOD GetAlias(jsdIValue * *aAlias); \
  NS_SCRIPTABLE NS_IMETHOD GetName(jsdIValue * *aName); \
  NS_SCRIPTABLE NS_IMETHOD GetValue(jsdIValue * *aValue); \
  NS_SCRIPTABLE NS_IMETHOD GetVarArgSlot(PRUint32 *aVarArgSlot);
#define NS_DECL_JSDISCRIPT
Value:
NS_IMETHOD GetJSDContext(JSDContext * *aJSDContext); \
  NS_IMETHOD GetJSDScript(JSDScript * *aJSDScript); \
  NS_SCRIPTABLE NS_IMETHOD GetVersion(PRInt32 *aVersion); \
  NS_SCRIPTABLE NS_IMETHOD GetTag(PRUint32 *aTag); \
  NS_SCRIPTABLE NS_IMETHOD GetFlags(PRUint32 *aFlags); \
  NS_SCRIPTABLE NS_IMETHOD SetFlags(PRUint32 aFlags); \
  NS_SCRIPTABLE NS_IMETHOD GetFileName(nsACString & aFileName); \
  NS_SCRIPTABLE NS_IMETHOD GetFunctionName(nsACString & aFunctionName); \
  NS_SCRIPTABLE NS_IMETHOD GetParameterNames(PRUint32 *count NS_OUTPARAM, PRUnichar ***paramNames NS_OUTPARAM); \
  NS_SCRIPTABLE NS_IMETHOD GetFunctionObject(jsdIValue * *aFunctionObject); \
  NS_SCRIPTABLE NS_IMETHOD GetFunctionSource(nsAString & aFunctionSource); \
  NS_SCRIPTABLE NS_IMETHOD GetBaseLineNumber(PRUint32 *aBaseLineNumber); \
  NS_SCRIPTABLE NS_IMETHOD GetLineExtent(PRUint32 *aLineExtent); \
  NS_SCRIPTABLE NS_IMETHOD GetCallCount(PRUint32 *aCallCount); \
  NS_SCRIPTABLE NS_IMETHOD GetMaxRecurseDepth(PRUint32 *aMaxRecurseDepth); \
  NS_SCRIPTABLE NS_IMETHOD GetMinExecutionTime(double *aMinExecutionTime); \
  NS_SCRIPTABLE NS_IMETHOD GetMaxExecutionTime(double *aMaxExecutionTime); \
  NS_SCRIPTABLE NS_IMETHOD GetTotalExecutionTime(double *aTotalExecutionTime); \
  NS_SCRIPTABLE NS_IMETHOD GetMinOwnExecutionTime(double *aMinOwnExecutionTime); \
  NS_SCRIPTABLE NS_IMETHOD GetMaxOwnExecutionTime(double *aMaxOwnExecutionTime); \
  NS_SCRIPTABLE NS_IMETHOD GetTotalOwnExecutionTime(double *aTotalOwnExecutionTime); \
  NS_SCRIPTABLE NS_IMETHOD ClearProfileData(void); \
  NS_SCRIPTABLE NS_IMETHOD PcToLine(PRUint32 pc, PRUint32 pcmap, PRUint32 *_retval NS_OUTPARAM); \
  NS_SCRIPTABLE NS_IMETHOD LineToPc(PRUint32 line, PRUint32 pcmap, PRUint32 *_retval NS_OUTPARAM); \
  NS_SCRIPTABLE NS_IMETHOD IsLineExecutable(PRUint32 line, PRUint32 pcmap, PRBool *_retval NS_OUTPARAM); \
  NS_SCRIPTABLE NS_IMETHOD SetBreakpoint(PRUint32 pc); \
  NS_SCRIPTABLE NS_IMETHOD ClearBreakpoint(PRUint32 pc); \
  NS_SCRIPTABLE NS_IMETHOD ClearAllBreakpoints(void);
#define NS_DECL_JSDISCRIPTENUMERATOR   NS_SCRIPTABLE NS_IMETHOD EnumerateScript(jsdIScript *script);
#define NS_DECL_JSDISCRIPTHOOK
Value:
NS_SCRIPTABLE NS_IMETHOD OnScriptCreated(jsdIScript *script); \
  NS_SCRIPTABLE NS_IMETHOD OnScriptDestroyed(jsdIScript *script);
#define NS_DECL_JSDISTACKFRAME
Value:
NS_IMETHOD GetJSDContext(JSDContext * *aJSDContext); \
  NS_IMETHOD GetJSDThreadState(JSDThreadState * *aJSDThreadState); \
  NS_IMETHOD GetJSDStackFrameInfo(JSDStackFrameInfo * *aJSDStackFrameInfo); \
  NS_SCRIPTABLE NS_IMETHOD GetIsNative(PRBool *aIsNative); \
  NS_SCRIPTABLE NS_IMETHOD GetIsDebugger(PRBool *aIsDebugger); \
  NS_SCRIPTABLE NS_IMETHOD GetIsConstructing(PRBool *aIsConstructing); \
  NS_SCRIPTABLE NS_IMETHOD GetCallingFrame(jsdIStackFrame * *aCallingFrame); \
  NS_SCRIPTABLE NS_IMETHOD GetExecutionContext(jsdIContext * *aExecutionContext); \
  NS_SCRIPTABLE NS_IMETHOD GetFunctionName(nsACString & aFunctionName); \
  NS_SCRIPTABLE NS_IMETHOD GetScript(jsdIScript * *aScript); \
  NS_SCRIPTABLE NS_IMETHOD GetPc(PRUint32 *aPc); \
  NS_SCRIPTABLE NS_IMETHOD GetLine(PRUint32 *aLine); \
  NS_SCRIPTABLE NS_IMETHOD GetCallee(jsdIValue * *aCallee); \
  NS_SCRIPTABLE NS_IMETHOD GetScope(jsdIValue * *aScope); \
  NS_SCRIPTABLE NS_IMETHOD GetThisValue(jsdIValue * *aThisValue); \
  NS_SCRIPTABLE NS_IMETHOD Eval(const nsAString & bytes, const nsACString & fileName, PRUint32 line, jsdIValue **result NS_OUTPARAM, PRBool *_retval NS_OUTPARAM);
#define NS_DECL_JSDIVALUE
Value:
NS_IMETHOD GetJSDContext(JSDContext * *aJSDContext); \
  NS_IMETHOD GetJSDValue(JSDValue * *aJSDValue); \
  NS_SCRIPTABLE NS_IMETHOD GetIsNative(PRBool *aIsNative); \
  NS_SCRIPTABLE NS_IMETHOD GetIsNumber(PRBool *aIsNumber); \
  NS_SCRIPTABLE NS_IMETHOD GetIsPrimitive(PRBool *aIsPrimitive); \
  NS_SCRIPTABLE NS_IMETHOD GetJsType(PRUint32 *aJsType); \
  NS_SCRIPTABLE NS_IMETHOD GetJsPrototype(jsdIValue * *aJsPrototype); \
  NS_SCRIPTABLE NS_IMETHOD GetJsParent(jsdIValue * *aJsParent); \
  NS_SCRIPTABLE NS_IMETHOD GetJsClassName(nsACString & aJsClassName); \
  NS_SCRIPTABLE NS_IMETHOD GetJsConstructor(jsdIValue * *aJsConstructor); \
  NS_SCRIPTABLE NS_IMETHOD GetJsFunctionName(nsACString & aJsFunctionName); \
  NS_SCRIPTABLE NS_IMETHOD GetBooleanValue(PRBool *aBooleanValue); \
  NS_SCRIPTABLE NS_IMETHOD GetDoubleValue(double *aDoubleValue); \
  NS_SCRIPTABLE NS_IMETHOD GetIntValue(PRInt32 *aIntValue); \
  NS_SCRIPTABLE NS_IMETHOD GetObjectValue(jsdIObject * *aObjectValue); \
  NS_SCRIPTABLE NS_IMETHOD GetStringValue(nsACString & aStringValue); \
  NS_SCRIPTABLE NS_IMETHOD GetPropertyCount(PRInt32 *aPropertyCount); \
  NS_SCRIPTABLE NS_IMETHOD GetProperties(jsdIProperty ***propArray NS_OUTPARAM, PRUint32 *length NS_OUTPARAM); \
  NS_SCRIPTABLE NS_IMETHOD GetProperty(const nsACString & name, jsdIProperty **_retval NS_OUTPARAM); \
  NS_SCRIPTABLE NS_IMETHOD Refresh(void); \
  NS_SCRIPTABLE NS_IMETHOD GetWrappedValue(void); \
  NS_SCRIPTABLE NS_IMETHOD GetScript(jsdIScript * *aScript);
#define NS_FORWARD_JSDICALLHOOK (   _to  )     NS_SCRIPTABLE NS_IMETHOD OnCall(jsdIStackFrame *frame, PRUint32 type) { return _to OnCall(frame, type); }
#define NS_FORWARD_JSDICONTEXT (   _to  ) 
Value:
NS_IMETHOD GetJSContext(JSContext * *aJSContext) { return _to GetJSContext(aJSContext); } \
  NS_SCRIPTABLE NS_IMETHOD GetOptions(PRUint32 *aOptions) { return _to GetOptions(aOptions); } \
  NS_SCRIPTABLE NS_IMETHOD SetOptions(PRUint32 aOptions) { return _to SetOptions(aOptions); } \
  NS_SCRIPTABLE NS_IMETHOD GetVersion(PRInt32 *aVersion) { return _to GetVersion(aVersion); } \
  NS_SCRIPTABLE NS_IMETHOD SetVersion(PRInt32 aVersion) { return _to SetVersion(aVersion); } \
  NS_SCRIPTABLE NS_IMETHOD GetTag(PRUint32 *aTag) { return _to GetTag(aTag); } \
  NS_SCRIPTABLE NS_IMETHOD GetPrivateData(nsISupports * *aPrivateData) { return _to GetPrivateData(aPrivateData); } \
  NS_SCRIPTABLE NS_IMETHOD GetWrappedContext(nsISupports * *aWrappedContext) { return _to GetWrappedContext(aWrappedContext); } \
  NS_SCRIPTABLE NS_IMETHOD GetGlobalObject(jsdIValue * *aGlobalObject) { return _to GetGlobalObject(aGlobalObject); } \
  NS_SCRIPTABLE NS_IMETHOD GetScriptsEnabled(PRBool *aScriptsEnabled) { return _to GetScriptsEnabled(aScriptsEnabled); } \
  NS_SCRIPTABLE NS_IMETHOD SetScriptsEnabled(PRBool aScriptsEnabled) { return _to SetScriptsEnabled(aScriptsEnabled); }
#define NS_FORWARD_JSDICONTEXTENUMERATOR (   _to  )     NS_SCRIPTABLE NS_IMETHOD EnumerateContext(jsdIContext *executionContext) { return _to EnumerateContext(executionContext); }
#define NS_FORWARD_JSDIDEBUGGERSERVICE (   _to  ) 
#define NS_FORWARD_JSDIEPHEMERAL (   _to  ) 
Value:
NS_SCRIPTABLE NS_IMETHOD GetIsValid(PRBool *aIsValid) { return _to GetIsValid(aIsValid); } \
  NS_IMETHOD Invalidate(void) { return _to Invalidate(); }
#define NS_FORWARD_JSDIERRORHOOK (   _to  )     NS_SCRIPTABLE NS_IMETHOD OnError(const nsACString & message, const nsACString & fileName, PRUint32 line, PRUint32 pos, PRUint32 flags, PRUint32 errnum, jsdIValue *exc, PRBool *_retval NS_OUTPARAM) { return _to OnError(message, fileName, line, pos, flags, errnum, exc, _retval); }
#define NS_FORWARD_JSDIEXECUTIONHOOK (   _to  )     NS_SCRIPTABLE NS_IMETHOD OnExecute(jsdIStackFrame *frame, PRUint32 type, jsdIValue **val NS_INOUTPARAM, PRUint32 *_retval NS_OUTPARAM) { return _to OnExecute(frame, type, val, _retval); }
#define NS_FORWARD_JSDIFILTER (   _to  ) 
Value:
NS_SCRIPTABLE NS_IMETHOD GetFlags(PRUint32 *aFlags) { return _to GetFlags(aFlags); } \
  NS_SCRIPTABLE NS_IMETHOD SetFlags(PRUint32 aFlags) { return _to SetFlags(aFlags); } \
  NS_SCRIPTABLE NS_IMETHOD GetGlobalObject(nsISupports * *aGlobalObject) { return _to GetGlobalObject(aGlobalObject); } \
  NS_SCRIPTABLE NS_IMETHOD SetGlobalObject(nsISupports * aGlobalObject) { return _to SetGlobalObject(aGlobalObject); } \
  NS_SCRIPTABLE NS_IMETHOD GetUrlPattern(nsACString & aUrlPattern) { return _to GetUrlPattern(aUrlPattern); } \
  NS_SCRIPTABLE NS_IMETHOD SetUrlPattern(const nsACString & aUrlPattern) { return _to SetUrlPattern(aUrlPattern); } \
  NS_SCRIPTABLE NS_IMETHOD GetStartLine(PRUint32 *aStartLine) { return _to GetStartLine(aStartLine); } \
  NS_SCRIPTABLE NS_IMETHOD SetStartLine(PRUint32 aStartLine) { return _to SetStartLine(aStartLine); } \
  NS_SCRIPTABLE NS_IMETHOD GetEndLine(PRUint32 *aEndLine) { return _to GetEndLine(aEndLine); } \
  NS_SCRIPTABLE NS_IMETHOD SetEndLine(PRUint32 aEndLine) { return _to SetEndLine(aEndLine); }
#define NS_FORWARD_JSDIFILTERENUMERATOR (   _to  )     NS_SCRIPTABLE NS_IMETHOD EnumerateFilter(jsdIFilter *filter) { return _to EnumerateFilter(filter); }
#define NS_FORWARD_JSDINESTCALLBACK (   _to  )     NS_SCRIPTABLE NS_IMETHOD OnNest(void) { return _to OnNest(); }
#define NS_FORWARD_JSDIOBJECT (   _to  ) 
Value:
NS_IMETHOD GetJSDContext(JSDContext * *aJSDContext) { return _to GetJSDContext(aJSDContext); } \
  NS_IMETHOD GetJSDObject(JSDObject * *aJSDObject) { return _to GetJSDObject(aJSDObject); } \
  NS_SCRIPTABLE NS_IMETHOD GetCreatorURL(nsACString & aCreatorURL) { return _to GetCreatorURL(aCreatorURL); } \
  NS_SCRIPTABLE NS_IMETHOD GetCreatorLine(PRUint32 *aCreatorLine) { return _to GetCreatorLine(aCreatorLine); } \
  NS_SCRIPTABLE NS_IMETHOD GetConstructorURL(nsACString & aConstructorURL) { return _to GetConstructorURL(aConstructorURL); } \
  NS_SCRIPTABLE NS_IMETHOD GetConstructorLine(PRUint32 *aConstructorLine) { return _to GetConstructorLine(aConstructorLine); } \
  NS_SCRIPTABLE NS_IMETHOD GetValue(jsdIValue * *aValue) { return _to GetValue(aValue); }
#define NS_FORWARD_JSDIPROPERTY (   _to  ) 
Value:
NS_IMETHOD GetJSDContext(JSDContext * *aJSDContext) { return _to GetJSDContext(aJSDContext); } \
  NS_IMETHOD GetJSDProperty(JSDProperty * *aJSDProperty) { return _to GetJSDProperty(aJSDProperty); } \
  NS_SCRIPTABLE NS_IMETHOD GetFlags(PRUint32 *aFlags) { return _to GetFlags(aFlags); } \
  NS_SCRIPTABLE NS_IMETHOD GetAlias(jsdIValue * *aAlias) { return _to GetAlias(aAlias); } \
  NS_SCRIPTABLE NS_IMETHOD GetName(jsdIValue * *aName) { return _to GetName(aName); } \
  NS_SCRIPTABLE NS_IMETHOD GetValue(jsdIValue * *aValue) { return _to GetValue(aValue); } \
  NS_SCRIPTABLE NS_IMETHOD GetVarArgSlot(PRUint32 *aVarArgSlot) { return _to GetVarArgSlot(aVarArgSlot); }
#define NS_FORWARD_JSDISCRIPT (   _to  ) 
Value:
NS_IMETHOD GetJSDContext(JSDContext * *aJSDContext) { return _to GetJSDContext(aJSDContext); } \
  NS_IMETHOD GetJSDScript(JSDScript * *aJSDScript) { return _to GetJSDScript(aJSDScript); } \
  NS_SCRIPTABLE NS_IMETHOD GetVersion(PRInt32 *aVersion) { return _to GetVersion(aVersion); } \
  NS_SCRIPTABLE NS_IMETHOD GetTag(PRUint32 *aTag) { return _to GetTag(aTag); } \
  NS_SCRIPTABLE NS_IMETHOD GetFlags(PRUint32 *aFlags) { return _to GetFlags(aFlags); } \
  NS_SCRIPTABLE NS_IMETHOD SetFlags(PRUint32 aFlags) { return _to SetFlags(aFlags); } \
  NS_SCRIPTABLE NS_IMETHOD GetFileName(nsACString & aFileName) { return _to GetFileName(aFileName); } \
  NS_SCRIPTABLE NS_IMETHOD GetFunctionName(nsACString & aFunctionName) { return _to GetFunctionName(aFunctionName); } \
  NS_SCRIPTABLE NS_IMETHOD GetParameterNames(PRUint32 *count NS_OUTPARAM, PRUnichar ***paramNames NS_OUTPARAM) { return _to GetParameterNames(count, paramNames); } \
  NS_SCRIPTABLE NS_IMETHOD GetFunctionObject(jsdIValue * *aFunctionObject) { return _to GetFunctionObject(aFunctionObject); } \
  NS_SCRIPTABLE NS_IMETHOD GetFunctionSource(nsAString & aFunctionSource) { return _to GetFunctionSource(aFunctionSource); } \
  NS_SCRIPTABLE NS_IMETHOD GetBaseLineNumber(PRUint32 *aBaseLineNumber) { return _to GetBaseLineNumber(aBaseLineNumber); } \
  NS_SCRIPTABLE NS_IMETHOD GetLineExtent(PRUint32 *aLineExtent) { return _to GetLineExtent(aLineExtent); } \
  NS_SCRIPTABLE NS_IMETHOD GetCallCount(PRUint32 *aCallCount) { return _to GetCallCount(aCallCount); } \
  NS_SCRIPTABLE NS_IMETHOD GetMaxRecurseDepth(PRUint32 *aMaxRecurseDepth) { return _to GetMaxRecurseDepth(aMaxRecurseDepth); } \
  NS_SCRIPTABLE NS_IMETHOD GetMinExecutionTime(double *aMinExecutionTime) { return _to GetMinExecutionTime(aMinExecutionTime); } \
  NS_SCRIPTABLE NS_IMETHOD GetMaxExecutionTime(double *aMaxExecutionTime) { return _to GetMaxExecutionTime(aMaxExecutionTime); } \
  NS_SCRIPTABLE NS_IMETHOD GetTotalExecutionTime(double *aTotalExecutionTime) { return _to GetTotalExecutionTime(aTotalExecutionTime); } \
  NS_SCRIPTABLE NS_IMETHOD GetMinOwnExecutionTime(double *aMinOwnExecutionTime) { return _to GetMinOwnExecutionTime(aMinOwnExecutionTime); } \
  NS_SCRIPTABLE NS_IMETHOD GetMaxOwnExecutionTime(double *aMaxOwnExecutionTime) { return _to GetMaxOwnExecutionTime(aMaxOwnExecutionTime); } \
  NS_SCRIPTABLE NS_IMETHOD GetTotalOwnExecutionTime(double *aTotalOwnExecutionTime) { return _to GetTotalOwnExecutionTime(aTotalOwnExecutionTime); } \
  NS_SCRIPTABLE NS_IMETHOD ClearProfileData(void) { return _to ClearProfileData(); } \
  NS_SCRIPTABLE NS_IMETHOD PcToLine(PRUint32 pc, PRUint32 pcmap, PRUint32 *_retval NS_OUTPARAM) { return _to PcToLine(pc, pcmap, _retval); } \
  NS_SCRIPTABLE NS_IMETHOD LineToPc(PRUint32 line, PRUint32 pcmap, PRUint32 *_retval NS_OUTPARAM) { return _to LineToPc(line, pcmap, _retval); } \
  NS_SCRIPTABLE NS_IMETHOD IsLineExecutable(PRUint32 line, PRUint32 pcmap, PRBool *_retval NS_OUTPARAM) { return _to IsLineExecutable(line, pcmap, _retval); } \
  NS_SCRIPTABLE NS_IMETHOD SetBreakpoint(PRUint32 pc) { return _to SetBreakpoint(pc); } \
  NS_SCRIPTABLE NS_IMETHOD ClearBreakpoint(PRUint32 pc) { return _to ClearBreakpoint(pc); } \
  NS_SCRIPTABLE NS_IMETHOD ClearAllBreakpoints(void) { return _to ClearAllBreakpoints(); }
#define NS_FORWARD_JSDISCRIPTENUMERATOR (   _to  )     NS_SCRIPTABLE NS_IMETHOD EnumerateScript(jsdIScript *script) { return _to EnumerateScript(script); }
#define NS_FORWARD_JSDISCRIPTHOOK (   _to  ) 
Value:
NS_SCRIPTABLE NS_IMETHOD OnScriptCreated(jsdIScript *script) { return _to OnScriptCreated(script); } \
  NS_SCRIPTABLE NS_IMETHOD OnScriptDestroyed(jsdIScript *script) { return _to OnScriptDestroyed(script); }
#define NS_FORWARD_JSDISTACKFRAME (   _to  ) 
Value:
NS_IMETHOD GetJSDContext(JSDContext * *aJSDContext) { return _to GetJSDContext(aJSDContext); } \
  NS_IMETHOD GetJSDThreadState(JSDThreadState * *aJSDThreadState) { return _to GetJSDThreadState(aJSDThreadState); } \
  NS_IMETHOD GetJSDStackFrameInfo(JSDStackFrameInfo * *aJSDStackFrameInfo) { return _to GetJSDStackFrameInfo(aJSDStackFrameInfo); } \
  NS_SCRIPTABLE NS_IMETHOD GetIsNative(PRBool *aIsNative) { return _to GetIsNative(aIsNative); } \
  NS_SCRIPTABLE NS_IMETHOD GetIsDebugger(PRBool *aIsDebugger) { return _to GetIsDebugger(aIsDebugger); } \
  NS_SCRIPTABLE NS_IMETHOD GetIsConstructing(PRBool *aIsConstructing) { return _to GetIsConstructing(aIsConstructing); } \
  NS_SCRIPTABLE NS_IMETHOD GetCallingFrame(jsdIStackFrame * *aCallingFrame) { return _to GetCallingFrame(aCallingFrame); } \
  NS_SCRIPTABLE NS_IMETHOD GetExecutionContext(jsdIContext * *aExecutionContext) { return _to GetExecutionContext(aExecutionContext); } \
  NS_SCRIPTABLE NS_IMETHOD GetFunctionName(nsACString & aFunctionName) { return _to GetFunctionName(aFunctionName); } \
  NS_SCRIPTABLE NS_IMETHOD GetScript(jsdIScript * *aScript) { return _to GetScript(aScript); } \
  NS_SCRIPTABLE NS_IMETHOD GetPc(PRUint32 *aPc) { return _to GetPc(aPc); } \
  NS_SCRIPTABLE NS_IMETHOD GetLine(PRUint32 *aLine) { return _to GetLine(aLine); } \
  NS_SCRIPTABLE NS_IMETHOD GetCallee(jsdIValue * *aCallee) { return _to GetCallee(aCallee); } \
  NS_SCRIPTABLE NS_IMETHOD GetScope(jsdIValue * *aScope) { return _to GetScope(aScope); } \
  NS_SCRIPTABLE NS_IMETHOD GetThisValue(jsdIValue * *aThisValue) { return _to GetThisValue(aThisValue); } \
  NS_SCRIPTABLE NS_IMETHOD Eval(const nsAString & bytes, const nsACString & fileName, PRUint32 line, jsdIValue **result NS_OUTPARAM, PRBool *_retval NS_OUTPARAM) { return _to Eval(bytes, fileName, line, result, _retval); }
#define NS_FORWARD_JSDIVALUE (   _to  ) 
Value:
NS_IMETHOD GetJSDContext(JSDContext * *aJSDContext) { return _to GetJSDContext(aJSDContext); } \
  NS_IMETHOD GetJSDValue(JSDValue * *aJSDValue) { return _to GetJSDValue(aJSDValue); } \
  NS_SCRIPTABLE NS_IMETHOD GetIsNative(PRBool *aIsNative) { return _to GetIsNative(aIsNative); } \
  NS_SCRIPTABLE NS_IMETHOD GetIsNumber(PRBool *aIsNumber) { return _to GetIsNumber(aIsNumber); } \
  NS_SCRIPTABLE NS_IMETHOD GetIsPrimitive(PRBool *aIsPrimitive) { return _to GetIsPrimitive(aIsPrimitive); } \
  NS_SCRIPTABLE NS_IMETHOD GetJsType(PRUint32 *aJsType) { return _to GetJsType(aJsType); } \
  NS_SCRIPTABLE NS_IMETHOD GetJsPrototype(jsdIValue * *aJsPrototype) { return _to GetJsPrototype(aJsPrototype); } \
  NS_SCRIPTABLE NS_IMETHOD GetJsParent(jsdIValue * *aJsParent) { return _to GetJsParent(aJsParent); } \
  NS_SCRIPTABLE NS_IMETHOD GetJsClassName(nsACString & aJsClassName) { return _to GetJsClassName(aJsClassName); } \
  NS_SCRIPTABLE NS_IMETHOD GetJsConstructor(jsdIValue * *aJsConstructor) { return _to GetJsConstructor(aJsConstructor); } \
  NS_SCRIPTABLE NS_IMETHOD GetJsFunctionName(nsACString & aJsFunctionName) { return _to GetJsFunctionName(aJsFunctionName); } \
  NS_SCRIPTABLE NS_IMETHOD GetBooleanValue(PRBool *aBooleanValue) { return _to GetBooleanValue(aBooleanValue); } \
  NS_SCRIPTABLE NS_IMETHOD GetDoubleValue(double *aDoubleValue) { return _to GetDoubleValue(aDoubleValue); } \
  NS_SCRIPTABLE NS_IMETHOD GetIntValue(PRInt32 *aIntValue) { return _to GetIntValue(aIntValue); } \
  NS_SCRIPTABLE NS_IMETHOD GetObjectValue(jsdIObject * *aObjectValue) { return _to GetObjectValue(aObjectValue); } \
  NS_SCRIPTABLE NS_IMETHOD GetStringValue(nsACString & aStringValue) { return _to GetStringValue(aStringValue); } \
  NS_SCRIPTABLE NS_IMETHOD GetPropertyCount(PRInt32 *aPropertyCount) { return _to GetPropertyCount(aPropertyCount); } \
  NS_SCRIPTABLE NS_IMETHOD GetProperties(jsdIProperty ***propArray NS_OUTPARAM, PRUint32 *length NS_OUTPARAM) { return _to GetProperties(propArray, length); } \
  NS_SCRIPTABLE NS_IMETHOD GetProperty(const nsACString & name, jsdIProperty **_retval NS_OUTPARAM) { return _to GetProperty(name, _retval); } \
  NS_SCRIPTABLE NS_IMETHOD Refresh(void) { return _to Refresh(); } \
  NS_SCRIPTABLE NS_IMETHOD GetWrappedValue(void) { return _to GetWrappedValue(); } \
  NS_SCRIPTABLE NS_IMETHOD GetScript(jsdIScript * *aScript) { return _to GetScript(aScript); }
#define NS_FORWARD_SAFE_JSDICALLHOOK (   _to  )     NS_SCRIPTABLE NS_IMETHOD OnCall(jsdIStackFrame *frame, PRUint32 type) { return !_to ? NS_ERROR_NULL_POINTER : _to->OnCall(frame, type); }
#define NS_FORWARD_SAFE_JSDICONTEXT (   _to  ) 
Value:
NS_IMETHOD GetJSContext(JSContext * *aJSContext) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetJSContext(aJSContext); } \
  NS_SCRIPTABLE NS_IMETHOD GetOptions(PRUint32 *aOptions) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetOptions(aOptions); } \
  NS_SCRIPTABLE NS_IMETHOD SetOptions(PRUint32 aOptions) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetOptions(aOptions); } \
  NS_SCRIPTABLE NS_IMETHOD GetVersion(PRInt32 *aVersion) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetVersion(aVersion); } \
  NS_SCRIPTABLE NS_IMETHOD SetVersion(PRInt32 aVersion) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetVersion(aVersion); } \
  NS_SCRIPTABLE NS_IMETHOD GetTag(PRUint32 *aTag) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetTag(aTag); } \
  NS_SCRIPTABLE NS_IMETHOD GetPrivateData(nsISupports * *aPrivateData) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetPrivateData(aPrivateData); } \
  NS_SCRIPTABLE NS_IMETHOD GetWrappedContext(nsISupports * *aWrappedContext) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetWrappedContext(aWrappedContext); } \
  NS_SCRIPTABLE NS_IMETHOD GetGlobalObject(jsdIValue * *aGlobalObject) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetGlobalObject(aGlobalObject); } \
  NS_SCRIPTABLE NS_IMETHOD GetScriptsEnabled(PRBool *aScriptsEnabled) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetScriptsEnabled(aScriptsEnabled); } \
  NS_SCRIPTABLE NS_IMETHOD SetScriptsEnabled(PRBool aScriptsEnabled) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetScriptsEnabled(aScriptsEnabled); }
#define NS_FORWARD_SAFE_JSDICONTEXTENUMERATOR (   _to  )     NS_SCRIPTABLE NS_IMETHOD EnumerateContext(jsdIContext *executionContext) { return !_to ? NS_ERROR_NULL_POINTER : _to->EnumerateContext(executionContext); }
#define NS_FORWARD_SAFE_JSDIDEBUGGERSERVICE (   _to  ) 
#define NS_FORWARD_SAFE_JSDIEPHEMERAL (   _to  ) 
Value:
NS_SCRIPTABLE NS_IMETHOD GetIsValid(PRBool *aIsValid) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetIsValid(aIsValid); } \
  NS_IMETHOD Invalidate(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->Invalidate(); }
#define NS_FORWARD_SAFE_JSDIERRORHOOK (   _to  )     NS_SCRIPTABLE NS_IMETHOD OnError(const nsACString & message, const nsACString & fileName, PRUint32 line, PRUint32 pos, PRUint32 flags, PRUint32 errnum, jsdIValue *exc, PRBool *_retval NS_OUTPARAM) { return !_to ? NS_ERROR_NULL_POINTER : _to->OnError(message, fileName, line, pos, flags, errnum, exc, _retval); }
#define NS_FORWARD_SAFE_JSDIEXECUTIONHOOK (   _to  )     NS_SCRIPTABLE NS_IMETHOD OnExecute(jsdIStackFrame *frame, PRUint32 type, jsdIValue **val NS_INOUTPARAM, PRUint32 *_retval NS_OUTPARAM) { return !_to ? NS_ERROR_NULL_POINTER : _to->OnExecute(frame, type, val, _retval); }
#define NS_FORWARD_SAFE_JSDIFILTER (   _to  ) 
Value:
NS_SCRIPTABLE NS_IMETHOD GetFlags(PRUint32 *aFlags) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetFlags(aFlags); } \
  NS_SCRIPTABLE NS_IMETHOD SetFlags(PRUint32 aFlags) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetFlags(aFlags); } \
  NS_SCRIPTABLE NS_IMETHOD GetGlobalObject(nsISupports * *aGlobalObject) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetGlobalObject(aGlobalObject); } \
  NS_SCRIPTABLE NS_IMETHOD SetGlobalObject(nsISupports * aGlobalObject) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetGlobalObject(aGlobalObject); } \
  NS_SCRIPTABLE NS_IMETHOD GetUrlPattern(nsACString & aUrlPattern) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetUrlPattern(aUrlPattern); } \
  NS_SCRIPTABLE NS_IMETHOD SetUrlPattern(const nsACString & aUrlPattern) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetUrlPattern(aUrlPattern); } \
  NS_SCRIPTABLE NS_IMETHOD GetStartLine(PRUint32 *aStartLine) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetStartLine(aStartLine); } \
  NS_SCRIPTABLE NS_IMETHOD SetStartLine(PRUint32 aStartLine) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetStartLine(aStartLine); } \
  NS_SCRIPTABLE NS_IMETHOD GetEndLine(PRUint32 *aEndLine) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetEndLine(aEndLine); } \
  NS_SCRIPTABLE NS_IMETHOD SetEndLine(PRUint32 aEndLine) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetEndLine(aEndLine); }
#define NS_FORWARD_SAFE_JSDIFILTERENUMERATOR (   _to  )     NS_SCRIPTABLE NS_IMETHOD EnumerateFilter(jsdIFilter *filter) { return !_to ? NS_ERROR_NULL_POINTER : _to->EnumerateFilter(filter); }
#define NS_FORWARD_SAFE_JSDINESTCALLBACK (   _to  )     NS_SCRIPTABLE NS_IMETHOD OnNest(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->OnNest(); }
#define NS_FORWARD_SAFE_JSDIOBJECT (   _to  ) 
Value:
NS_IMETHOD GetJSDContext(JSDContext * *aJSDContext) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetJSDContext(aJSDContext); } \
  NS_IMETHOD GetJSDObject(JSDObject * *aJSDObject) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetJSDObject(aJSDObject); } \
  NS_SCRIPTABLE NS_IMETHOD GetCreatorURL(nsACString & aCreatorURL) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetCreatorURL(aCreatorURL); } \
  NS_SCRIPTABLE NS_IMETHOD GetCreatorLine(PRUint32 *aCreatorLine) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetCreatorLine(aCreatorLine); } \
  NS_SCRIPTABLE NS_IMETHOD GetConstructorURL(nsACString & aConstructorURL) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetConstructorURL(aConstructorURL); } \
  NS_SCRIPTABLE NS_IMETHOD GetConstructorLine(PRUint32 *aConstructorLine) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetConstructorLine(aConstructorLine); } \
  NS_SCRIPTABLE NS_IMETHOD GetValue(jsdIValue * *aValue) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetValue(aValue); }
#define NS_FORWARD_SAFE_JSDIPROPERTY (   _to  ) 
Value:
NS_IMETHOD GetJSDContext(JSDContext * *aJSDContext) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetJSDContext(aJSDContext); } \
  NS_IMETHOD GetJSDProperty(JSDProperty * *aJSDProperty) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetJSDProperty(aJSDProperty); } \
  NS_SCRIPTABLE NS_IMETHOD GetFlags(PRUint32 *aFlags) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetFlags(aFlags); } \
  NS_SCRIPTABLE NS_IMETHOD GetAlias(jsdIValue * *aAlias) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetAlias(aAlias); } \
  NS_SCRIPTABLE NS_IMETHOD GetName(jsdIValue * *aName) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetName(aName); } \
  NS_SCRIPTABLE NS_IMETHOD GetValue(jsdIValue * *aValue) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetValue(aValue); } \
  NS_SCRIPTABLE NS_IMETHOD GetVarArgSlot(PRUint32 *aVarArgSlot) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetVarArgSlot(aVarArgSlot); }
#define NS_FORWARD_SAFE_JSDISCRIPT (   _to  ) 
Value:
NS_IMETHOD GetJSDContext(JSDContext * *aJSDContext) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetJSDContext(aJSDContext); } \
  NS_IMETHOD GetJSDScript(JSDScript * *aJSDScript) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetJSDScript(aJSDScript); } \
  NS_SCRIPTABLE NS_IMETHOD GetVersion(PRInt32 *aVersion) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetVersion(aVersion); } \
  NS_SCRIPTABLE NS_IMETHOD GetTag(PRUint32 *aTag) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetTag(aTag); } \
  NS_SCRIPTABLE NS_IMETHOD GetFlags(PRUint32 *aFlags) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetFlags(aFlags); } \
  NS_SCRIPTABLE NS_IMETHOD SetFlags(PRUint32 aFlags) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetFlags(aFlags); } \
  NS_SCRIPTABLE NS_IMETHOD GetFileName(nsACString & aFileName) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetFileName(aFileName); } \
  NS_SCRIPTABLE NS_IMETHOD GetFunctionName(nsACString & aFunctionName) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetFunctionName(aFunctionName); } \
  NS_SCRIPTABLE NS_IMETHOD GetParameterNames(PRUint32 *count NS_OUTPARAM, PRUnichar ***paramNames NS_OUTPARAM) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetParameterNames(count, paramNames); } \
  NS_SCRIPTABLE NS_IMETHOD GetFunctionObject(jsdIValue * *aFunctionObject) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetFunctionObject(aFunctionObject); } \
  NS_SCRIPTABLE NS_IMETHOD GetFunctionSource(nsAString & aFunctionSource) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetFunctionSource(aFunctionSource); } \
  NS_SCRIPTABLE NS_IMETHOD GetBaseLineNumber(PRUint32 *aBaseLineNumber) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetBaseLineNumber(aBaseLineNumber); } \
  NS_SCRIPTABLE NS_IMETHOD GetLineExtent(PRUint32 *aLineExtent) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetLineExtent(aLineExtent); } \
  NS_SCRIPTABLE NS_IMETHOD GetCallCount(PRUint32 *aCallCount) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetCallCount(aCallCount); } \
  NS_SCRIPTABLE NS_IMETHOD GetMaxRecurseDepth(PRUint32 *aMaxRecurseDepth) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetMaxRecurseDepth(aMaxRecurseDepth); } \
  NS_SCRIPTABLE NS_IMETHOD GetMinExecutionTime(double *aMinExecutionTime) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetMinExecutionTime(aMinExecutionTime); } \
  NS_SCRIPTABLE NS_IMETHOD GetMaxExecutionTime(double *aMaxExecutionTime) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetMaxExecutionTime(aMaxExecutionTime); } \
  NS_SCRIPTABLE NS_IMETHOD GetTotalExecutionTime(double *aTotalExecutionTime) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetTotalExecutionTime(aTotalExecutionTime); } \
  NS_SCRIPTABLE NS_IMETHOD GetMinOwnExecutionTime(double *aMinOwnExecutionTime) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetMinOwnExecutionTime(aMinOwnExecutionTime); } \
  NS_SCRIPTABLE NS_IMETHOD GetMaxOwnExecutionTime(double *aMaxOwnExecutionTime) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetMaxOwnExecutionTime(aMaxOwnExecutionTime); } \
  NS_SCRIPTABLE NS_IMETHOD GetTotalOwnExecutionTime(double *aTotalOwnExecutionTime) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetTotalOwnExecutionTime(aTotalOwnExecutionTime); } \
  NS_SCRIPTABLE NS_IMETHOD ClearProfileData(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->ClearProfileData(); } \
  NS_SCRIPTABLE NS_IMETHOD PcToLine(PRUint32 pc, PRUint32 pcmap, PRUint32 *_retval NS_OUTPARAM) { return !_to ? NS_ERROR_NULL_POINTER : _to->PcToLine(pc, pcmap, _retval); } \
  NS_SCRIPTABLE NS_IMETHOD LineToPc(PRUint32 line, PRUint32 pcmap, PRUint32 *_retval NS_OUTPARAM) { return !_to ? NS_ERROR_NULL_POINTER : _to->LineToPc(line, pcmap, _retval); } \
  NS_SCRIPTABLE NS_IMETHOD IsLineExecutable(PRUint32 line, PRUint32 pcmap, PRBool *_retval NS_OUTPARAM) { return !_to ? NS_ERROR_NULL_POINTER : _to->IsLineExecutable(line, pcmap, _retval); } \
  NS_SCRIPTABLE NS_IMETHOD SetBreakpoint(PRUint32 pc) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetBreakpoint(pc); } \
  NS_SCRIPTABLE NS_IMETHOD ClearBreakpoint(PRUint32 pc) { return !_to ? NS_ERROR_NULL_POINTER : _to->ClearBreakpoint(pc); } \
  NS_SCRIPTABLE NS_IMETHOD ClearAllBreakpoints(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->ClearAllBreakpoints(); }
#define NS_FORWARD_SAFE_JSDISCRIPTENUMERATOR (   _to  )     NS_SCRIPTABLE NS_IMETHOD EnumerateScript(jsdIScript *script) { return !_to ? NS_ERROR_NULL_POINTER : _to->EnumerateScript(script); }
#define NS_FORWARD_SAFE_JSDISCRIPTHOOK (   _to  ) 
Value:
NS_SCRIPTABLE NS_IMETHOD OnScriptCreated(jsdIScript *script) { return !_to ? NS_ERROR_NULL_POINTER : _to->OnScriptCreated(script); } \
  NS_SCRIPTABLE NS_IMETHOD OnScriptDestroyed(jsdIScript *script) { return !_to ? NS_ERROR_NULL_POINTER : _to->OnScriptDestroyed(script); }
#define NS_FORWARD_SAFE_JSDISTACKFRAME (   _to  ) 
Value:
NS_IMETHOD GetJSDContext(JSDContext * *aJSDContext) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetJSDContext(aJSDContext); } \
  NS_IMETHOD GetJSDThreadState(JSDThreadState * *aJSDThreadState) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetJSDThreadState(aJSDThreadState); } \
  NS_IMETHOD GetJSDStackFrameInfo(JSDStackFrameInfo * *aJSDStackFrameInfo) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetJSDStackFrameInfo(aJSDStackFrameInfo); } \
  NS_SCRIPTABLE NS_IMETHOD GetIsNative(PRBool *aIsNative) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetIsNative(aIsNative); } \
  NS_SCRIPTABLE NS_IMETHOD GetIsDebugger(PRBool *aIsDebugger) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetIsDebugger(aIsDebugger); } \
  NS_SCRIPTABLE NS_IMETHOD GetIsConstructing(PRBool *aIsConstructing) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetIsConstructing(aIsConstructing); } \
  NS_SCRIPTABLE NS_IMETHOD GetCallingFrame(jsdIStackFrame * *aCallingFrame) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetCallingFrame(aCallingFrame); } \
  NS_SCRIPTABLE NS_IMETHOD GetExecutionContext(jsdIContext * *aExecutionContext) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetExecutionContext(aExecutionContext); } \
  NS_SCRIPTABLE NS_IMETHOD GetFunctionName(nsACString & aFunctionName) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetFunctionName(aFunctionName); } \
  NS_SCRIPTABLE NS_IMETHOD GetScript(jsdIScript * *aScript) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetScript(aScript); } \
  NS_SCRIPTABLE NS_IMETHOD GetPc(PRUint32 *aPc) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetPc(aPc); } \
  NS_SCRIPTABLE NS_IMETHOD GetLine(PRUint32 *aLine) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetLine(aLine); } \
  NS_SCRIPTABLE NS_IMETHOD GetCallee(jsdIValue * *aCallee) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetCallee(aCallee); } \
  NS_SCRIPTABLE NS_IMETHOD GetScope(jsdIValue * *aScope) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetScope(aScope); } \
  NS_SCRIPTABLE NS_IMETHOD GetThisValue(jsdIValue * *aThisValue) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetThisValue(aThisValue); } \
  NS_SCRIPTABLE NS_IMETHOD Eval(const nsAString & bytes, const nsACString & fileName, PRUint32 line, jsdIValue **result NS_OUTPARAM, PRBool *_retval NS_OUTPARAM) { return !_to ? NS_ERROR_NULL_POINTER : _to->Eval(bytes, fileName, line, result, _retval); }
#define NS_FORWARD_SAFE_JSDIVALUE (   _to  ) 
Value:
NS_IMETHOD GetJSDContext(JSDContext * *aJSDContext) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetJSDContext(aJSDContext); } \
  NS_IMETHOD GetJSDValue(JSDValue * *aJSDValue) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetJSDValue(aJSDValue); } \
  NS_SCRIPTABLE NS_IMETHOD GetIsNative(PRBool *aIsNative) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetIsNative(aIsNative); } \
  NS_SCRIPTABLE NS_IMETHOD GetIsNumber(PRBool *aIsNumber) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetIsNumber(aIsNumber); } \
  NS_SCRIPTABLE NS_IMETHOD GetIsPrimitive(PRBool *aIsPrimitive) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetIsPrimitive(aIsPrimitive); } \
  NS_SCRIPTABLE NS_IMETHOD GetJsType(PRUint32 *aJsType) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetJsType(aJsType); } \
  NS_SCRIPTABLE NS_IMETHOD GetJsPrototype(jsdIValue * *aJsPrototype) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetJsPrototype(aJsPrototype); } \
  NS_SCRIPTABLE NS_IMETHOD GetJsParent(jsdIValue * *aJsParent) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetJsParent(aJsParent); } \
  NS_SCRIPTABLE NS_IMETHOD GetJsClassName(nsACString & aJsClassName) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetJsClassName(aJsClassName); } \
  NS_SCRIPTABLE NS_IMETHOD GetJsConstructor(jsdIValue * *aJsConstructor) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetJsConstructor(aJsConstructor); } \
  NS_SCRIPTABLE NS_IMETHOD GetJsFunctionName(nsACString & aJsFunctionName) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetJsFunctionName(aJsFunctionName); } \
  NS_SCRIPTABLE NS_IMETHOD GetBooleanValue(PRBool *aBooleanValue) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetBooleanValue(aBooleanValue); } \
  NS_SCRIPTABLE NS_IMETHOD GetDoubleValue(double *aDoubleValue) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetDoubleValue(aDoubleValue); } \
  NS_SCRIPTABLE NS_IMETHOD GetIntValue(PRInt32 *aIntValue) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetIntValue(aIntValue); } \
  NS_SCRIPTABLE NS_IMETHOD GetObjectValue(jsdIObject * *aObjectValue) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetObjectValue(aObjectValue); } \
  NS_SCRIPTABLE NS_IMETHOD GetStringValue(nsACString & aStringValue) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetStringValue(aStringValue); } \
  NS_SCRIPTABLE NS_IMETHOD GetPropertyCount(PRInt32 *aPropertyCount) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetPropertyCount(aPropertyCount); } \
  NS_SCRIPTABLE NS_IMETHOD GetProperties(jsdIProperty ***propArray NS_OUTPARAM, PRUint32 *length NS_OUTPARAM) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetProperties(propArray, length); } \
  NS_SCRIPTABLE NS_IMETHOD GetProperty(const nsACString & name, jsdIProperty **_retval NS_OUTPARAM) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetProperty(name, _retval); } \
  NS_SCRIPTABLE NS_IMETHOD Refresh(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->Refresh(); } \
  NS_SCRIPTABLE NS_IMETHOD GetWrappedValue(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetWrappedValue(); } \
  NS_SCRIPTABLE NS_IMETHOD GetScript(jsdIScript * *aScript) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetScript(aScript); }
#define NS_NO_VTABLE