Classes | Defines | Functions | Variables

jsobj.h File Reference

#include "jshash.h"
#include "jspubtd.h"
#include "jsprvtd.h"
Include dependency graph for jsobj.h:
This graph shows which files directly or indirectly include this file:

Classes

struct  PropertyDescriptor
struct  JSObjectOps
struct  JSObjectMap
struct  JSObject
struct  JSSharpObjectMap

Defines

#define STOBJ_GET_PROTO(obj)   ((obj)->getProto())
#define STOBJ_SET_PROTO(obj, proto)   ((obj)->setProto(proto))
#define STOBJ_CLEAR_PROTO(obj)   ((obj)->clearProto())
#define STOBJ_GET_PARENT(obj)   ((obj)->getParent())
#define STOBJ_SET_PARENT(obj, parent)   ((obj)->setParent(parent))
#define STOBJ_CLEAR_PARENT(obj)   ((obj)->clearParent())
#define OBJ_GET_PROTO(cx, obj)   STOBJ_GET_PROTO(obj)
#define OBJ_SET_PROTO(cx, obj, proto)   STOBJ_SET_PROTO(obj, proto)
#define OBJ_CLEAR_PROTO(cx, obj)   STOBJ_CLEAR_PROTO(obj)
#define OBJ_GET_PARENT(cx, obj)   STOBJ_GET_PARENT(obj)
#define OBJ_SET_PARENT(cx, obj, parent)   STOBJ_SET_PARENT(obj, parent)
#define OBJ_CLEAR_PARENT(cx, obj)   STOBJ_CLEAR_PARENT(obj)
#define JSSLOT_START(clasp)
#define JSSLOT_FREE(clasp)
#define MAX_DSLOTS_LENGTH   (JS_MAX(~uint32(0), ~size_t(0)) / sizeof(jsval) - 1)
#define MAX_DSLOTS_LENGTH32   (~uint32(0) / sizeof(jsval) - 1)
#define STOBJ_NSLOTS(obj)   ((obj)->dslots ? (uint32)(obj)->dslots[-1] : (uint32)JS_INITIAL_NSLOTS)
#define OBJ_CHECK_SLOT(obj, slot)   (JS_ASSERT(OBJ_IS_NATIVE(obj)), JS_ASSERT(slot < OBJ_SCOPE(obj)->freeslot))
#define LOCKED_OBJ_GET_SLOT(obj, slot)   (OBJ_CHECK_SLOT(obj, slot), STOBJ_GET_SLOT(obj, slot))
#define LOCKED_OBJ_SET_SLOT(obj, slot, value)   (OBJ_CHECK_SLOT(obj, slot), STOBJ_SET_SLOT(obj, slot, value))
#define OBJ_GET_SLOT(cx, obj, slot)
#define OBJ_SET_SLOT(cx, obj, slot, value)
#define THREAD_IS_RUNNING_GC(rt, thread)   ((rt)->gcRunning && (rt)->gcThread == (thread))
#define CX_THREAD_IS_RUNNING_GC(cx)   THREAD_IS_RUNNING_GC((cx)->runtime, (cx)->thread)
#define OBJ_GET_CLASS(cx, obj)   STOBJ_GET_CLASS(obj)
#define OPS_IS_NATIVE(ops)   JS_LIKELY((ops) == &js_ObjectOps || !(ops)->objectMap)
#define OBJ_IS_NATIVE(obj)   OPS_IS_NATIVE((obj)->map->ops)
#define JSSLOT_BLOCK_DEPTH   (JSSLOT_PRIVATE + 1)
#define OBJ_BLOCK_COUNT(cx, obj)   (OBJ_SCOPE(obj)->entryCount)
#define OBJ_BLOCK_DEPTH(cx, obj)   JSVAL_TO_INT(STOBJ_GET_SLOT(obj, JSSLOT_BLOCK_DEPTH))
#define OBJ_SET_BLOCK_DEPTH(cx, obj, depth)   STOBJ_SET_SLOT(obj, JSSLOT_BLOCK_DEPTH, INT_TO_JSVAL(depth))
#define SHARP_BIT   ((jsatomid) 1)
#define BUSY_BIT   ((jsatomid) 2)
#define SHARP_ID_SHIFT   2
#define IS_SHARP(he)   (JS_PTR_TO_UINT32((he)->value) & SHARP_BIT)
#define MAKE_SHARP(he)   ((he)->value = JS_UINT32_TO_PTR(JS_PTR_TO_UINT32((he)->value)|SHARP_BIT))
#define IS_BUSY(he)   (JS_PTR_TO_UINT32((he)->value) & BUSY_BIT)
#define MAKE_BUSY(he)   ((he)->value = JS_UINT32_TO_PTR(JS_PTR_TO_UINT32((he)->value)|BUSY_BIT))
#define CLEAR_BUSY(he)   ((he)->value = JS_UINT32_TO_PTR(JS_PTR_TO_UINT32((he)->value)&~BUSY_BIT))

Functions

jsvalSTOBJ_GET_SLOT (JSObject *obj, uintN slot)
void STOBJ_SET_SLOT (JSObject *obj, uintN slot, jsval value)
JSClassSTOBJ_GET_CLASS (const JSObject *obj)
JSBool js_DefineBlockVariable (JSContext *cx, JSObject *obj, jsid id, intN index)
JSObjectjs_NewWithObject (JSContext *cx, JSObject *proto, JSObject *parent, jsint depth)
JSObjectjs_NewBlockObject (JSContext *cx)
JSObjectjs_CloneBlockObject (JSContext *cx, JSObject *proto, JSStackFrame *fp)
JSBool js_PutBlockObject (JSContext *cx, JSBool normalUnwind)
JSBool js_XDRBlockObject (JSXDRState *xdr, JSObject **objp)
JSHashEntryjs_EnterSharpObject (JSContext *cx, JSObject *obj, JSIdArray **idap, jschar **sp)
void js_LeaveSharpObject (JSContext *cx, JSIdArray **idap)
void js_TraceSharpMap (JSTracer *trc, JSSharpObjectMap *map)
JSBool js_HasOwnPropertyHelper (JSContext *cx, JSLookupPropOp lookup, uintN argc, jsval *vp)
JSBool js_HasOwnProperty (JSContext *cx, JSLookupPropOp lookup, JSObject *obj, jsid id, JSObject **objp, JSProperty **propp)
JSBool js_PropertyIsEnumerable (JSContext *cx, JSObject *obj, jsid id, jsval *vp)
JSObjectjs_InitEval (JSContext *cx, JSObject *obj)
JSObjectjs_InitObjectClass (JSContext *cx, JSObject *obj)
JSObjectjs_InitClass (JSContext *cx, JSObject *obj, JSObject *parent_proto, JSClass *clasp, JSNative constructor, uintN nargs, JSPropertySpec *ps, JSFunctionSpec *fs, JSPropertySpec *static_ps, JSFunctionSpec *static_fs)
JSBool js_GetClassId (JSContext *cx, JSClass *clasp, jsid *idp)
JSObjectjs_NewObject (JSContext *cx, JSClass *clasp, JSObject *proto, JSObject *parent, size_t objectSize=0)
JSObjectjs_NewObjectWithGivenProto (JSContext *cx, JSClass *clasp, JSObject *proto, JSObject *parent, size_t objectSize=0)
JSObjectjs_NewObjectWithClassProto (JSContext *cx, JSClass *clasp, JSObject *proto, jsval privateSlotValue)
JSBool js_GetClassObject (JSContext *cx, JSObject *obj, JSProtoKey key, JSObject **objp)
JSBool js_SetClassObject (JSContext *cx, JSObject *obj, JSProtoKey key, JSObject *cobj)
JSBool js_FindClassObject (JSContext *cx, JSObject *start, jsid id, jsval *vp)
JSObjectjs_ConstructObject (JSContext *cx, JSClass *clasp, JSObject *proto, JSObject *parent, uintN argc, jsval *argv)
JSBool js_AllocSlot (JSContext *cx, JSObject *obj, uint32 *slotp)
void js_FreeSlot (JSContext *cx, JSObject *obj, uint32 slot)
bool js_GrowSlots (JSContext *cx, JSObject *obj, size_t nslots)
void js_ShrinkSlots (JSContext *cx, JSObject *obj, size_t nslots)
bool js_EnsureReservedSlots (JSContext *cx, JSObject *obj, size_t nreserved)
jsid js_CheckForStringIndex (jsid id)
void js_PurgeScopeChainHelper (JSContext *cx, JSObject *obj, jsid id)
JSScopePropertyjs_AddNativeProperty (JSContext *cx, JSObject *obj, jsid id, JSPropertyOp getter, JSPropertyOp setter, uint32 slot, uintN attrs, uintN flags, intN shortid)
JSScopePropertyjs_ChangeNativePropertyAttrs (JSContext *cx, JSObject *obj, JSScopeProperty *sprop, uintN attrs, uintN mask, JSPropertyOp getter, JSPropertyOp setter)
JSBool js_DefineProperty (JSContext *cx, JSObject *obj, jsid id, jsval value, JSPropertyOp getter, JSPropertyOp setter, uintN attrs)
JSBool js_DefineNativeProperty (JSContext *cx, JSObject *obj, jsid id, jsval value, JSPropertyOp getter, JSPropertyOp setter, uintN attrs, uintN flags, intN shortid, JSProperty **propp, uintN defineHow=0)
JSBool js_LookupProperty (JSContext *cx, JSObject *obj, jsid id, JSObject **objp, JSProperty **propp)
int js_LookupPropertyWithFlags (JSContext *cx, JSObject *obj, jsid id, uintN flags, JSObject **objp, JSProperty **propp)
JSPropCacheEntryjs_FindPropertyHelper (JSContext *cx, jsid id, JSBool cacheResult, JSObject **objp, JSObject **pobjp, JSProperty **propp)
JSBool js_FindProperty (JSContext *cx, jsid id, JSObject **objp, JSObject **pobjp, JSProperty **propp)
JSObjectjs_FindIdentifierBase (JSContext *cx, JSObject *scopeChain, jsid id)
JSObjectjs_FindVariableScope (JSContext *cx, JSFunction **funp)
JSBool js_NativeGet (JSContext *cx, JSObject *obj, JSObject *pobj, JSScopeProperty *sprop, uintN getHow, jsval *vp)
JSBool js_NativeSet (JSContext *cx, JSObject *obj, JSScopeProperty *sprop, bool added, jsval *vp)
JSBool js_GetPropertyHelper (JSContext *cx, JSObject *obj, jsid id, uintN getHow, jsval *vp)
JSBool js_GetProperty (JSContext *cx, JSObject *obj, jsid id, jsval *vp)
JSBool js_GetMethod (JSContext *cx, JSObject *obj, jsid id, uintN getHow, jsval *vp)
bool js_CheckUndeclaredVarAssignment (JSContext *cx)
JSBool js_SetPropertyHelper (JSContext *cx, JSObject *obj, jsid id, uintN defineHow, jsval *vp)
JSBool js_SetProperty (JSContext *cx, JSObject *obj, jsid id, jsval *vp)
JSBool js_GetAttributes (JSContext *cx, JSObject *obj, jsid id, JSProperty *prop, uintN *attrsp)
JSBool js_SetAttributes (JSContext *cx, JSObject *obj, jsid id, JSProperty *prop, uintN *attrsp)
JSBool js_DeleteProperty (JSContext *cx, JSObject *obj, jsid id, jsval *rval)
JSBool js_DefaultValue (JSContext *cx, JSObject *obj, JSType hint, jsval *vp)
JSBool js_Enumerate (JSContext *cx, JSObject *obj, JSIterateOp enum_op, jsval *statep, jsid *idp)
void js_MarkEnumeratorState (JSTracer *trc, JSObject *obj, jsval state)
void js_PurgeCachedNativeEnumerators (JSContext *cx, JSThreadData *data)
JSBool js_CheckAccess (JSContext *cx, JSObject *obj, jsid id, JSAccessMode mode, jsval *vp, uintN *attrsp)
JSBool js_Call (JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval)
JSBool js_Construct (JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval)
JSBool js_HasInstance (JSContext *cx, JSObject *obj, jsval v, JSBool *bp)
JSBool js_SetProtoOrParent (JSContext *cx, JSObject *obj, uint32 slot, JSObject *pobj, JSBool checkForCycles)
JSBool js_IsDelegate (JSContext *cx, JSObject *obj, jsval v, JSBool *bp)
JSBool js_GetClassPrototype (JSContext *cx, JSObject *scope, jsid id, JSObject **protop)
JSBool js_SetClassPrototype (JSContext *cx, JSObject *ctor, JSObject *proto, uintN attrs)
JSBool js_PrimitiveToObject (JSContext *cx, jsval *vp)
JSBool js_ValueToObject (JSContext *cx, jsval v, JSObject **objp)
JSObjectjs_ValueToNonNullObject (JSContext *cx, jsval v)
JSBool js_TryValueOf (JSContext *cx, JSObject *obj, JSType type, jsval *rval)
JSBool js_TryMethod (JSContext *cx, JSObject *obj, JSAtom *atom, uintN argc, jsval *argv, jsval *rval)
JSBool js_XDRObject (JSXDRState *xdr, JSObject **objp)
void js_TraceObject (JSTracer *trc, JSObject *obj)
void js_PrintObjectSlotName (JSTracer *trc, char *buf, size_t bufsize)
void js_Clear (JSContext *cx, JSObject *obj)
bool js_GetReservedSlot (JSContext *cx, JSObject *obj, uint32 index, jsval *vp)
bool js_SetReservedSlot (JSContext *cx, JSObject *obj, uint32 index, jsval v)
JSBool js_ReallocSlots (JSContext *cx, JSObject *obj, uint32 nslots, JSBool exactAllocation)
JSObjectjs_CheckScopeChainValidity (JSContext *cx, JSObject *scopeobj, const char *caller)
JSBool js_CheckPrincipalsAccess (JSContext *cx, JSObject *scopeobj, JSPrincipals *principals, JSAtom *caller)
JSObjectjs_GetWrappedObject (JSContext *cx, JSObject *obj)
const char * js_ComputeFilename (JSContext *cx, JSStackFrame *caller, JSPrincipals *principals, uintN *linenop)
JSBool js_IsCallable (JSObject *obj, JSContext *cx)
JSBool js_ReportGetterOnlyAssignment (JSContext *cx)
JSBool js_GetterOnlyPropertyStub (JSContext *cx, JSObject *obj, jsval id, jsval *vp)
uintN js_InferFlags (JSContext *cx, uintN defaultFlags)
JSBool js_Object (JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval)

Variables

const uint32 JS_INITIAL_NSLOTS = 5
const uint32 JSSLOT_PROTO = 0
const uint32 JSSLOT_PARENT = 1
const uint32 JSSLOT_PRIVATE = 2
const uint32 JSSLOT_PRIMITIVE_THIS = JSSLOT_PRIVATE
const uintptr_t JSSLOT_CLASS_MASK_BITS = 3
JSObjectOps js_ObjectOps
JSObjectOps js_WithObjectOps
JSClass js_ObjectClass
JSClass js_WithClass
JSClass js_BlockClass
const char js_watch_str []
const char js_unwatch_str []
const char js_hasOwnProperty_str []
const char js_isPrototypeOf_str []
const char js_propertyIsEnumerable_str []
const char js_defineGetter_str []
const char js_defineSetter_str []
const char js_lookupGetter_str []
const char js_lookupSetter_str []
const uintN JSDNP_CACHE_RESULT = 1
const uintN JSDNP_DONT_PURGE = 2
const uintN JSDNP_SET_METHOD = 4
const uintN JSGET_CACHE_RESULT = 1
const uintN JSGET_METHOD_BARRIER = 0
const uintN JSGET_NO_METHOD_BARRIER = 2

Define Documentation

#define BUSY_BIT   ((jsatomid) 2)
#define CLEAR_BUSY (   he  )     ((he)->value = JS_UINT32_TO_PTR(JS_PTR_TO_UINT32((he)->value)&~BUSY_BIT))
#define CX_THREAD_IS_RUNNING_GC (   cx  )     THREAD_IS_RUNNING_GC((cx)->runtime, (cx)->thread)
#define IS_BUSY (   he  )     (JS_PTR_TO_UINT32((he)->value) & BUSY_BIT)
#define IS_SHARP (   he  )     (JS_PTR_TO_UINT32((he)->value) & SHARP_BIT)
#define JSSLOT_BLOCK_DEPTH   (JSSLOT_PRIVATE + 1)
#define JSSLOT_FREE (   clasp  ) 
Value:
#define JSSLOT_START (   clasp  ) 
Value:
#define LOCKED_OBJ_GET_SLOT (   obj,
  slot 
)    (OBJ_CHECK_SLOT(obj, slot), STOBJ_GET_SLOT(obj, slot))
#define LOCKED_OBJ_SET_SLOT (   obj,
  slot,
  value 
)    (OBJ_CHECK_SLOT(obj, slot), STOBJ_SET_SLOT(obj, slot, value))
#define MAKE_BUSY (   he  )     ((he)->value = JS_UINT32_TO_PTR(JS_PTR_TO_UINT32((he)->value)|BUSY_BIT))
#define MAKE_SHARP (   he  )     ((he)->value = JS_UINT32_TO_PTR(JS_PTR_TO_UINT32((he)->value)|SHARP_BIT))
#define MAX_DSLOTS_LENGTH   (JS_MAX(~uint32(0), ~size_t(0)) / sizeof(jsval) - 1)
#define MAX_DSLOTS_LENGTH32   (~uint32(0) / sizeof(jsval) - 1)
#define OBJ_BLOCK_COUNT (   cx,
  obj 
)    (OBJ_SCOPE(obj)->entryCount)
#define OBJ_BLOCK_DEPTH (   cx,
  obj 
)    JSVAL_TO_INT(STOBJ_GET_SLOT(obj, JSSLOT_BLOCK_DEPTH))
#define OBJ_CHECK_SLOT (   obj,
  slot 
)    (JS_ASSERT(OBJ_IS_NATIVE(obj)), JS_ASSERT(slot < OBJ_SCOPE(obj)->freeslot))
#define OBJ_CLEAR_PARENT (   cx,
  obj 
)    STOBJ_CLEAR_PARENT(obj)
#define OBJ_CLEAR_PROTO (   cx,
  obj 
)    STOBJ_CLEAR_PROTO(obj)
#define OBJ_GET_CLASS (   cx,
  obj 
)    STOBJ_GET_CLASS(obj)
#define OBJ_GET_PARENT (   cx,
  obj 
)    STOBJ_GET_PARENT(obj)
#define OBJ_GET_PROTO (   cx,
  obj 
)    STOBJ_GET_PROTO(obj)
#define OBJ_GET_SLOT (   cx,
  obj,
  slot 
)
Value:
(OBJ_CHECK_SLOT(obj, slot),                                               \
     (OBJ_SCOPE(obj)->title.ownercx == cx)                                    \
     ? LOCKED_OBJ_GET_SLOT(obj, slot)                                         \
     : js_GetSlotThreadSafe(cx, obj, slot))
#define OBJ_IS_NATIVE (   obj  )     OPS_IS_NATIVE((obj)->map->ops)
#define OBJ_SET_BLOCK_DEPTH (   cx,
  obj,
  depth 
)    STOBJ_SET_SLOT(obj, JSSLOT_BLOCK_DEPTH, INT_TO_JSVAL(depth))
#define OBJ_SET_PARENT (   cx,
  obj,
  parent 
)    STOBJ_SET_PARENT(obj, parent)
#define OBJ_SET_PROTO (   cx,
  obj,
  proto 
)    STOBJ_SET_PROTO(obj, proto)
#define OBJ_SET_SLOT (   cx,
  obj,
  slot,
  value 
)
Value:
JS_BEGIN_MACRO                                                            \
        OBJ_CHECK_SLOT(obj, slot);                                            \
        if (OBJ_SCOPE(obj)->title.ownercx == cx)                              \
            LOCKED_OBJ_SET_SLOT(obj, slot, value);                            \
        else                                                                  \
            js_SetSlotThreadSafe(cx, obj, slot, value);                       \
    JS_END_MACRO
#define OPS_IS_NATIVE (   ops  )     JS_LIKELY((ops) == &js_ObjectOps || !(ops)->objectMap)
#define SHARP_BIT   ((jsatomid) 1)
#define SHARP_ID_SHIFT   2
#define STOBJ_CLEAR_PARENT (   obj  )     ((obj)->clearParent())
#define STOBJ_CLEAR_PROTO (   obj  )     ((obj)->clearProto())
#define STOBJ_GET_PARENT (   obj  )     ((obj)->getParent())
#define STOBJ_GET_PROTO (   obj  )     ((obj)->getProto())
#define STOBJ_NSLOTS (   obj  )     ((obj)->dslots ? (uint32)(obj)->dslots[-1] : (uint32)JS_INITIAL_NSLOTS)
#define STOBJ_SET_PARENT (   obj,
  parent 
)    ((obj)->setParent(parent))
#define STOBJ_SET_PROTO (   obj,
  proto 
)    ((obj)->setProto(proto))
#define THREAD_IS_RUNNING_GC (   rt,
  thread 
)    ((rt)->gcRunning && (rt)->gcThread == (thread))

Function Documentation

JSScopeProperty* js_AddNativeProperty ( JSContext cx,
JSObject obj,
jsid  id,
JSPropertyOp  getter,
JSPropertyOp  setter,
uint32  slot,
uintN  attrs,
uintN  flags,
intN  shortid 
)
JSBool js_AllocSlot ( JSContext cx,
JSObject obj,
uint32 slotp 
)
JSBool js_Call ( JSContext cx,
JSObject obj,
uintN  argc,
jsval argv,
jsval rval 
)
JSScopeProperty* js_ChangeNativePropertyAttrs ( JSContext cx,
JSObject obj,
JSScopeProperty sprop,
uintN  attrs,
uintN  mask,
JSPropertyOp  getter,
JSPropertyOp  setter 
)
JSBool js_CheckAccess ( JSContext cx,
JSObject obj,
jsid  id,
JSAccessMode  mode,
jsval vp,
uintN attrsp 
)
jsid js_CheckForStringIndex ( jsid  id  ) 
JSBool js_CheckPrincipalsAccess ( JSContext cx,
JSObject scopeobj,
JSPrincipals principals,
JSAtom caller 
)
JSObject* js_CheckScopeChainValidity ( JSContext cx,
JSObject scopeobj,
const char *  caller 
)
bool js_CheckUndeclaredVarAssignment ( JSContext cx  ) 
void js_Clear ( JSContext cx,
JSObject obj 
)
JSObject* js_CloneBlockObject ( JSContext cx,
JSObject proto,
JSStackFrame fp 
)
const char* js_ComputeFilename ( JSContext cx,
JSStackFrame caller,
JSPrincipals principals,
uintN linenop 
)
JSBool js_Construct ( JSContext cx,
JSObject obj,
uintN  argc,
jsval argv,
jsval rval 
)
JSObject* js_ConstructObject ( JSContext cx,
JSClass clasp,
JSObject proto,
JSObject parent,
uintN  argc,
jsval argv 
)
JSBool js_DefaultValue ( JSContext cx,
JSObject obj,
JSType  hint,
jsval vp 
)
JSBool js_DefineBlockVariable ( JSContext cx,
JSObject obj,
jsid  id,
intN  index 
)
JSBool js_DefineNativeProperty ( JSContext cx,
JSObject obj,
jsid  id,
jsval  value,
JSPropertyOp  getter,
JSPropertyOp  setter,
uintN  attrs,
uintN  flags,
intN  shortid,
JSProperty **  propp,
uintN  defineHow = 0 
)
JSBool js_DefineProperty ( JSContext cx,
JSObject obj,
jsid  id,
jsval  value,
JSPropertyOp  getter,
JSPropertyOp  setter,
uintN  attrs 
)
JSBool js_DeleteProperty ( JSContext cx,
JSObject obj,
jsid  id,
jsval rval 
)
bool js_EnsureReservedSlots ( JSContext cx,
JSObject obj,
size_t  nreserved 
)
JSHashEntry* js_EnterSharpObject ( JSContext cx,
JSObject obj,
JSIdArray **  idap,
jschar **  sp 
)
JSBool js_Enumerate ( JSContext cx,
JSObject obj,
JSIterateOp  enum_op,
jsval statep,
jsid idp 
)
JSBool js_FindClassObject ( JSContext cx,
JSObject start,
jsid  id,
jsval vp 
)
JSObject* js_FindIdentifierBase ( JSContext cx,
JSObject scopeChain,
jsid  id 
)
JSBool js_FindProperty ( JSContext cx,
jsid  id,
JSObject **  objp,
JSObject **  pobjp,
JSProperty **  propp 
)
JSPropCacheEntry* js_FindPropertyHelper ( JSContext cx,
jsid  id,
JSBool  cacheResult,
JSObject **  objp,
JSObject **  pobjp,
JSProperty **  propp 
)
JSObject* js_FindVariableScope ( JSContext cx,
JSFunction **  funp 
)
void js_FreeSlot ( JSContext cx,
JSObject obj,
uint32  slot 
)
JSBool js_GetAttributes ( JSContext cx,
JSObject obj,
jsid  id,
JSProperty prop,
uintN attrsp 
)
JSBool js_GetClassId ( JSContext cx,
JSClass clasp,
jsid idp 
)
JSBool js_GetClassObject ( JSContext cx,
JSObject obj,
JSProtoKey  key,
JSObject **  objp 
)
JSBool js_GetClassPrototype ( JSContext cx,
JSObject scope,
jsid  id,
JSObject **  protop 
)
JSBool js_GetMethod ( JSContext cx,
JSObject obj,
jsid  id,
uintN  getHow,
jsval vp 
)
JSBool js_GetProperty ( JSContext cx,
JSObject obj,
jsid  id,
jsval vp 
)
JSBool js_GetPropertyHelper ( JSContext cx,
JSObject obj,
jsid  id,
uintN  getHow,
jsval vp 
)
bool js_GetReservedSlot ( JSContext cx,
JSObject obj,
uint32  index,
jsval vp 
)
JSBool js_GetterOnlyPropertyStub ( JSContext cx,
JSObject obj,
jsval  id,
jsval vp 
)
JSObject* js_GetWrappedObject ( JSContext cx,
JSObject obj 
)
bool js_GrowSlots ( JSContext cx,
JSObject obj,
size_t  nslots 
)
JSBool js_HasInstance ( JSContext cx,
JSObject obj,
jsval  v,
JSBool bp 
)
JSBool js_HasOwnProperty ( JSContext cx,
JSLookupPropOp  lookup,
JSObject obj,
jsid  id,
JSObject **  objp,
JSProperty **  propp 
)
JSBool js_HasOwnPropertyHelper ( JSContext cx,
JSLookupPropOp  lookup,
uintN  argc,
jsval vp 
)
uintN js_InferFlags ( JSContext cx,
uintN  defaultFlags 
)
JSObject* js_InitClass ( JSContext cx,
JSObject obj,
JSObject parent_proto,
JSClass clasp,
JSNative  constructor,
uintN  nargs,
JSPropertySpec ps,
JSFunctionSpec fs,
JSPropertySpec static_ps,
JSFunctionSpec static_fs 
)
JSObject* js_InitEval ( JSContext cx,
JSObject obj 
)
JSObject* js_InitObjectClass ( JSContext cx,
JSObject obj 
)
JSBool js_IsCallable ( JSObject obj,
JSContext cx 
)
JSBool js_IsDelegate ( JSContext cx,
JSObject obj,
jsval  v,
JSBool bp 
)
void js_LeaveSharpObject ( JSContext cx,
JSIdArray **  idap 
)
JSBool js_LookupProperty ( JSContext cx,
JSObject obj,
jsid  id,
JSObject **  objp,
JSProperty **  propp 
)
int js_LookupPropertyWithFlags ( JSContext cx,
JSObject obj,
jsid  id,
uintN  flags,
JSObject **  objp,
JSProperty **  propp 
)
void js_MarkEnumeratorState ( JSTracer trc,
JSObject obj,
jsval  state 
)
JSBool js_NativeGet ( JSContext cx,
JSObject obj,
JSObject pobj,
JSScopeProperty sprop,
uintN  getHow,
jsval vp 
)
JSBool js_NativeSet ( JSContext cx,
JSObject obj,
JSScopeProperty sprop,
bool  added,
jsval vp 
)
JSObject* js_NewBlockObject ( JSContext cx  ) 
JSObject* js_NewObject ( JSContext cx,
JSClass clasp,
JSObject proto,
JSObject parent,
size_t  objectSize = 0 
)
JSObject* js_NewObjectWithClassProto ( JSContext cx,
JSClass clasp,
JSObject proto,
jsval  privateSlotValue 
)
JSObject* js_NewObjectWithGivenProto ( JSContext cx,
JSClass clasp,
JSObject proto,
JSObject parent,
size_t  objectSize = 0 
)
JSObject* js_NewWithObject ( JSContext cx,
JSObject proto,
JSObject parent,
jsint  depth 
)
JSBool js_Object ( JSContext cx,
JSObject obj,
uintN  argc,
jsval argv,
jsval rval 
)
JSBool js_PrimitiveToObject ( JSContext cx,
jsval vp 
)
void js_PrintObjectSlotName ( JSTracer trc,
char *  buf,
size_t  bufsize 
)
JSBool js_PropertyIsEnumerable ( JSContext cx,
JSObject obj,
jsid  id,
jsval vp 
)
void js_PurgeCachedNativeEnumerators ( JSContext cx,
JSThreadData data 
)
void js_PurgeScopeChainHelper ( JSContext cx,
JSObject obj,
jsid  id 
)
JSBool js_PutBlockObject ( JSContext cx,
JSBool  normalUnwind 
)
JSBool js_ReallocSlots ( JSContext cx,
JSObject obj,
uint32  nslots,
JSBool  exactAllocation 
)
JSBool js_ReportGetterOnlyAssignment ( JSContext cx  ) 
JSBool js_SetAttributes ( JSContext cx,
JSObject obj,
jsid  id,
JSProperty prop,
uintN attrsp 
)
JSBool js_SetClassObject ( JSContext cx,
JSObject obj,
JSProtoKey  key,
JSObject cobj 
)
JSBool js_SetClassPrototype ( JSContext cx,
JSObject ctor,
JSObject proto,
uintN  attrs 
)
JSBool js_SetProperty ( JSContext cx,
JSObject obj,
jsid  id,
jsval vp 
)
JSBool js_SetPropertyHelper ( JSContext cx,
JSObject obj,
jsid  id,
uintN  defineHow,
jsval vp 
)
JSBool js_SetProtoOrParent ( JSContext cx,
JSObject obj,
uint32  slot,
JSObject pobj,
JSBool  checkForCycles 
)
bool js_SetReservedSlot ( JSContext cx,
JSObject obj,
uint32  index,
jsval  v 
)
void js_ShrinkSlots ( JSContext cx,
JSObject obj,
size_t  nslots 
)
void js_TraceObject ( JSTracer trc,
JSObject obj 
)
void js_TraceSharpMap ( JSTracer trc,
JSSharpObjectMap map 
)
JSBool js_TryMethod ( JSContext cx,
JSObject obj,
JSAtom atom,
uintN  argc,
jsval argv,
jsval rval 
)
JSBool js_TryValueOf ( JSContext cx,
JSObject obj,
JSType  type,
jsval rval 
)
JSObject* js_ValueToNonNullObject ( JSContext cx,
jsval  v 
)
JSBool js_ValueToObject ( JSContext cx,
jsval  v,
JSObject **  objp 
)
JSBool js_XDRBlockObject ( JSXDRState xdr,
JSObject **  objp 
)
JSBool js_XDRObject ( JSXDRState xdr,
JSObject **  objp 
)
JSClass* STOBJ_GET_CLASS ( const JSObject obj  )  [inline]
jsval& STOBJ_GET_SLOT ( JSObject obj,
uintN  slot 
) [inline]
void STOBJ_SET_SLOT ( JSObject obj,
uintN  slot,
jsval  value 
) [inline]

Variable Documentation

const char js_defineGetter_str[]
const char js_defineSetter_str[]
const char js_hasOwnProperty_str[]
const char js_isPrototypeOf_str[]
const char js_lookupGetter_str[]
const char js_lookupSetter_str[]
const char js_unwatch_str[]
const char js_watch_str[]
const uintptr_t JSSLOT_CLASS_MASK_BITS = 3
const uint32 JSSLOT_PARENT = 1
const uint32 JSSLOT_PROTO = 0