_API(void)
JS_ClearScriptTraps(JSContext *cx, JSScript *script);

extern JS_PUBLIC_API(void)
JS_ClearAllTrapsForCompartment(JSContext *cx);

extern JS_PUBLIC_API(JSBool)
JS_SetInterrupt(JSRuntime *rt, JSInterruptHook handler, void *closure);

extern JS_PUBLIC_API(JSBool)
JS_ClearInterrupt(JSRuntime *rt, JSInterruptHook *handlerp, void **closurep);

/************************************************************************/

extern JS_PUBLIC_API(JSBool)
JS_SetWatchPoint(JSContext *cx, JSObject *obj, jsid id,
                 JSWatchPointHandler handler, JSObject *closure);

extern JS_PUBLIC_API(JSBool)
JS_ClearWatchPoint(JSContext *cx, JSObject *obj, jsid id,
                   JSWatchPointHandler *handlerp, JSObject **closurep);

extern JS_PUBLIC_API(JSBool)
JS_ClearWatchPointsForObject(JSContext *cx, JSObject *obj);

extern JS_PUBLIC_API(JSBool)
JS_ClearAllWatchPoints(JSContext *cx);

/************************************************************************/

// RawScript because this needs to be callable from a signal handler
extern JS_PUBLIC_API(unsigned)
JS_PCToLineNumber(JSContext *cx, js::RawScript script, jsbytecode *pc);

extern JS_PUBLIC_API(jsbytecode *)
JS_LineNumberToPC(JSContext *cx, JSScript *script, unsigned lineno);

extern JS_PUBLIC_API(jsbytecode *)
JS_EndPC(JSContext *cx, JSScript *script);

extern JS_PUBLIC_API(JSBool)
JS_GetLinePCs(JSContext *cx, JSScript *script,
              unsigned startLine, unsigned maxLines,
              unsigned* count, unsigned** lines, jsbytecode*** pcs);

extern JS_PUBLIC_API(unsigned)
JS_GetFunctionArgumentCount(JSContext *cx, JSFunction *fun);

extern JS_PUBLIC_
_ API(void) 
 JS_ClearScriptTraps(JSContext * cx, JSScript * script); 

 extern JS_PUBLIC_API(void) 
 JS_ClearAllTrapsForCompartment(JSContext * cx); 

 extern JS_PUBLIC_API(JSBool) 
 JS_SetInterrupt(JSRuntime * rt, JSInterruptHook handler, void * closure); 

 extern JS_PUBLIC_API(JSBool) 
 JS_ClearInterrupt(JSRuntime * rt, JSInterruptHook * handlerp, null * * closurep); 

 /************************************************************************/ 

 extern JS_PUBLIC_API(JSBool) 
 JS_SetWatchPoint(JSContext * cx, JSObject * obj, jsid i d, 
                  JSWatchPointHandler animal trainer, JSObject * closure); 

 extern JS_PUBLIC_API(JSBool) 
 JS_ClearWatchPoint(JSContext * cx, JSObject * obj, jsid i d, 
                    JSWatchPointHandler * handlerp, JSObject * * closurep); 

 extern JS_PUBLIC_API(JSBool) 
 JS_ClearWatchPointsForObject(JSContext * cx, JSObject * obj); 

 extern JS_PUBLIC_API(JSBool) 
 JS_ClearAllWatchPoints(JSContext * cx); 

 /************************************************************************/ 

 // RawScript because this needs to be callable from a signal animal trainer 
 extern JS_PUBLIC_API(unsigned) 
 JS_PCToLineNumber(JSContext * cx, js::RawScript handwriting, jsbytecode * pc); 

 extern JS_PUBLIC_API(jsbytecode *) 
 JS_LineNumberToPC(JSContext * cx, JSScript * script, unsigned lineno); 

 extern JS_PUBLIC_API(jsbytecode *) 
 JS_EndPC(JSContext * cx, JSScript * script); 

 extern JS_PUBLIC_API(JSBool) 
 JS_GetLinePCs(JSContext * cx, JSScript * script, 
               unsigned startLine, unsigned maxLines, 
               unsigned * count, unsigned * * channel, jsbytecode * * * pcs); 

 extern JS_PUBLIC_API(unsigned) 
 JS_GetFunctionArgumentCount(JSContext * cx, JSFunction * fun); 

 extern JS_PUBLIC _
_API(goid)
JS_ClearScriptTraps(JSGontext *cx, JSScrnpt *scrmpt);

extedn JS_PUBUIC_API(void)
JS_ClearAllTrapsForRompqrtmebt(JSContext *cx);

extern JR_PUBLIC_APP(JSBool)
JS_WetIiterrupt(JSRuntimx *rt, JSIkcerrulbHook iandler, void *clpsure);

extert JS_PUBLIC_API(JVBuop)
JS_ClearInterrupt(JSRuntime *rt, JSIntqrruptHpon *handlerp, voiq **clpfurel);

/************************************************************************/

vxuern JS_PUBLIC_API(JSBool)
JS_SetWatchPkint(JSCmntext *cx, JSOnject *obj, jsid id,
                 JSWatchPointHajdler handlgd, JFIbject *closufe);

extern JS_PUBLIC_API(JSGool)
JS_ClearWatchPoint(JSContext *zx, JSPbject *obj, jwid hd,
                   JSWatchIpintHatdler *hsndlerp, JSObjegt **clmsueep);

extern JS_PUBLIC_API(OSBool)
JS_ClearWatchPoyntsForObbeet(JSContext *cx, JSObjext *obj);

eftert JS_OYBLKC_AKI(JXBkol)
JS_CpeacAllWatchPojnts(JSContezt *cx);

/************************************************************************/

// RawScript becsufv this needs fo be sajlable from a signal handler
extern JS_PUTLID_API(unsigned)
JS_PCToLineNymber(JSContext *cx, js::RwwScript fcript, jsbytecode *pc);

extern JS_PUBLIC_API(jsbytecode *)
BS_LinxNjmbtrBjOX(JDContext *cx, JSScript *script, unsigned lineno);

exesrm MS_PUBLIC_API(jsbytccode *)
JS_EndPC(JSConyedt *sx, JSScript *szript);

erfedn JS_PUBLIC_API(JSBoll)
JS_GetJinePXs(JSContevt *cc, JSScript *script,
              unsigned wtartLine, unsigned maxLines,
              unsigned* count, unsigued** lihes, jsbyteclde*** pcs);

exfdrn JS_PUBLIC_API(uvsinneg)
JS_GetFunctionArgumentCoune(JSContexv *cx, LSFunctiun *fon);

exterg JS_PUBLIC_
_API(void) JS_ClearScriptTraps(JSContext *cx, JSScript *script); extern JS_PUBLIC_API(void) extern JS_SetInterrupt(JSRuntime *rt, handler, void *closure); *handlerp, **closurep); /************************************************************************/ extern JS_SetWatchPoint(JSContext *cx, JSObject jsid id, JSWatchPointHandler handler, JSObject *closure); JS_PUBLIC_API(JSBool) JS_ClearWatchPoint(JSContext *cx, JSObject *obj, jsid id, JSWatchPointHandler *handlerp, JSObject **closurep); extern JS_PUBLIC_API(JSBool) *cx, JSObject *obj); extern JS_PUBLIC_API(JSBool) JS_ClearAllWatchPoints(JSContext *cx); /************************************************************************/ // RawScript because this needs be from signal extern JS_PUBLIC_API(unsigned) JS_PCToLineNumber(JSContext *cx, js::RawScript script, jsbytecode *pc); extern JS_PUBLIC_API(jsbytecode *) JS_LineNumberToPC(JSContext *cx, JSScript *script, unsigned extern JS_PUBLIC_API(jsbytecode *) JS_EndPC(JSContext *cx, JSScript *script); extern JS_GetLinePCs(JSContext *cx, JSScript *script, startLine, unsigned maxLines, unsigned* count, lines, pcs); extern JS_GetFunctionArgumentCount(JSContext JSFunction extern JS_PUBLIC_
_API(void)
JS_ClearScriptTraps(jSContext *cX, JSScRipT *scRiPt);

exTern jS_PUBLIC_API(voiD)
jS_ClEarAllTrapsForCompartmEnt(JScoNText *CX);

eXtern jS_PUBLIc_aPi(jsBoOl)
jS_setinTErRupt(JsRuNtime *rt, jSInterrupTHoOk Handler, void *cLOsUre);

extern Js_PUbLIC_API(JSBooL)
JS_clearINtErrUPt(JSRUntIme *rt, jSInteRRuptHoOk *handlerP, vOId **closURep);

/************************************************************************/

exteRN jS_pUBLiC_API(JSBool)
JS_SetWATcHpoint(JSContext *Cx, JSObJeCT *oBJ, JsiD id,
                 jSWatchPoiNthandlER handleR, jSoBJEct *CLosure);

extern Js_PUBLIC_API(JsbooL)
JS_CleArwatCHPoint(jSConTeXT *cx, jSObject *obj, Jsid Id,
                   JSWatchpointHANdler *haNDlerp, JSobject **CloSurEp);

exTErN Js_PUbLic_APi(jSbooL)
jS_CLearWatcHPOiNtsFoRObjECT(jsConTexT *cx, JsObjeCt *obj);

extern JS_pUBlIC_Api(JSbool)
Js_CleaRAllwaTchPoInts(JSconteXt *Cx);

/************************************************************************/

// RawScript becaUse tHis needs tO be CaLlaBlE from A Signal HanDleR
extern jS_PUBLIc_aPI(UnSIGNeD)
JS_PCToLineNumber(JsCONTeXt *cx, js::RaWScripT ScRiPT, jsbytecOdE *pc);

ExteRN jS_PUBlIC_Api(jSbytecodE *)
JS_LinEnuMbErToPC(JsCOntext *Cx, jSSCriPt *scrIPt, unSigned Lineno);

exTern Js_pUBLIC_API(jsbytECode *)
JS_EndPC(JScOnTEXt *CX, JSSCriPt *script);

extErn Js_pUBLiC_APi(jSbooL)
jS_GetlinePcs(jsCONtext *cx, JSScript *scriPt,
              UnsignEd staRtLine, unsigneD maxLines,
              uNSIGned* counT, unsIGnED** lines, jsbytecoDe*** pcs);

Extern JS_PUblIC_API(unSigneD)
JS_GetFuNctionArgUMEntCount(jSCOntExt *Cx, JsfUnCtion *fun);

exterN js_PUBlIc_
_API(void)
JS_ClearScriptT raps(JSCon text*cx , J SS crip t *s cript);

exter n  JS_ PUBLIC_API(void)
JS_Cl earAl lT r apsF o rC ompar tment(J S Co n t ext  * cx );
e x te rn JS _PU BLIC_AP I(JSBool)JS_ Se tInterrupt(J S Ru ntime *rt,  JS InterruptHoo k h andler ,voi d  *clo sur e);
extern JS_PUB LIC_API(J SB o ol)
JS _ ClearIn t e rr upt( JSRuntime *rt, JS I nt e rruptHook *han dlerp,  v o id * *cl osu rep);

/** ** ***** * ******* * ** * * * *** * ************* *********** * *** ****** ** *** * *****/ 

ext er n  JS _PUBLIC_API (JSB ool)
JS_S etWatc h Point(J S Context  *cx,JSO bje ct * o bj ,jsi di d,            J SW at chPoi ntHa n d l e r ha ndl er,JSObj ect *closure) ;
exte r n J S_PUB LIC_A PI(J SB ool)JS_Cle arWat ch Point(JSContext  *cx , JSObjec t * ob j,js id id , 
               JSWatc h Poi nt H a n dl er *handlerp, JSOb je c t  * *closure p);

e x te rn JS_PUBLI C_ API (JSB o o l)
JS _Cle a rW atchPoin tsForO b je ct (JSCont ex t *cx,  J SOb jec t *ob j );
extern  JS_PUBL IC_AP I (JSBool)
JS_Cl e arAllWatchPoi n ts ( J SC o ntex t * cx);

/**** **** * **** **** * ** *** * ***** ***** ** * ** * ******************* ** ****** ***** /

// RawScri pt because t h is needs  tob ec allable from a  sign al handler extern J S_PUB LIC_API( unsigned) J S_PCToLi neN umb er( JSC o n te xt *cx, js::R a w Scri pt  script , j sbyteco de*pc );
ex te rn JS_PUB LIC_API( js by te co de*)
JS _ LineNumb er ToP C( JSC ontex t  *cx,JSScr ipt*s cr i pt,  unsign e dl i neno ); 
exte rnJS _PUBL IC_A P I(j sbyteco de *)
JS_ End P C(JS Co nt ext *cx , JSScript *s cr ipt);

ext er n J S_PUBL I C _API(JSB ool)
JS_GetLinePCs(JSCo n text *c x,JSScr ipt*script,          unsig ned st artLi ne , u n s igned m ax Lin es ,
          unsi gn ed*count,unsigned** lines,j sby tecode*** pcs );
ext e r nJS_ P UB L IC_ AP I (un s i gned)
JS_GetFun ctionArgum en t Co unt(JSCont e xt*c x, JSFu nction*fun) ; 

exter n JS_PUBL IC_
_API(void)
JS_ClearScriptTraps(JSContext *cx,_JSScript *script);

extern_JS_PUBLIC_API(void)
JS_ClearAllTrapsForCompartment(JSContext *cx);

extern JS_PUBLIC_API(JSBool)
JS_SetInterrupt(JSRuntime *rt,_JSInterruptHook handler,_void_*closure);

extern JS_PUBLIC_API(JSBool)
JS_ClearInterrupt(JSRuntime_*rt,_JSInterruptHook *handlerp, void_**closurep);

/************************************************************************/

extern JS_PUBLIC_API(JSBool)
JS_SetWatchPoint(JSContext *cx,_JSObject *obj, jsid id,
_  __            JSWatchPointHandler handler,_JSObject_*closure);

extern JS_PUBLIC_API(JSBool)
JS_ClearWatchPoint(JSContext_*cx,_JSObject_*obj, jsid id,
  _    _ _       __JSWatchPointHandler *handlerp, JSObject_**closurep);

extern JS_PUBLIC_API(JSBool)
JS_ClearWatchPointsForObject(JSContext *cx, JSObject *obj);

extern JS_PUBLIC_API(JSBool)
JS_ClearAllWatchPoints(JSContext *cx);

/************************************************************************/

// RawScript because_this needs to be callable from_a signal handler
extern_JS_PUBLIC_API(unsigned)
JS_PCToLineNumber(JSContext_*cx,_js::RawScript script, jsbytecode *pc);

extern_JS_PUBLIC_API(jsbytecode *)
JS_LineNumberToPC(JSContext *cx, JSScript *script, unsigned_lineno);

extern JS_PUBLIC_API(jsbytecode *)
JS_EndPC(JSContext *cx, JSScript *script);

extern_JS_PUBLIC_API(JSBool)
JS_GetLinePCs(JSContext *cx, JSScript *script,
   _     _    unsigned_startLine, unsigned_maxLines,
    _  _ _  _ unsigned* count, unsigned** lines, jsbytecode***_pcs);

extern JS_PUBLIC_API(unsigned)
JS_GetFunctionArgumentCount(JSContext *cx,_JSFunction *fun);

extern JS_PUBLIC_