Classes | Defines | Functions

jsscope.h File Reference

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

Classes

struct  JSScope
struct  JSEmptyScope
struct  JSScopeProperty

Defines

#define SPROP_INVALID_SLOT   0xffffffff
#define SCOPE_CAPACITY(scope)   JS_BIT(JS_DHASH_BITS-(scope)->hashShift)
#define SPROP_MARK   0x01
#define SPROP_IS_ALIAS   0x02
#define SPROP_HAS_SHORTID   0x04
#define SPROP_FLAG_SHAPE_REGEN   0x08
#define SPROP_IS_METHOD   0x10
#define SPROP_IN_DICTIONARY   0x20
#define SPROP_COLLISION   ((jsuword)1)
#define SPROP_REMOVED   ((JSScopeProperty *) SPROP_COLLISION)
#define SPROP_IS_FREE(sprop)   ((sprop) == NULL)
#define SPROP_IS_REMOVED(sprop)   ((sprop) == SPROP_REMOVED)
#define SPROP_IS_LIVE(sprop)   ((sprop) > SPROP_REMOVED)
#define SPROP_FLAG_COLLISION(spp, sprop)
#define SPROP_HAD_COLLISION(sprop)   ((jsuword)(sprop) & SPROP_COLLISION)
#define SPROP_FETCH(spp)   SPROP_CLEAR_COLLISION(*(spp))
#define SPROP_CLEAR_COLLISION(sprop)   ((JSScopeProperty *) ((jsuword)(sprop) & ~SPROP_COLLISION))
#define SPROP_STORE_PRESERVING_COLLISION(spp, sprop)
#define SPROP_USERID(sprop)
#define SLOT_IN_SCOPE(slot, scope)   ((slot) < (scope)->freeslot)
#define SPROP_HAS_VALID_SLOT(sprop, scope)   SLOT_IN_SCOPE((sprop)->slot, scope)
#define SPROP_HAS_STUB_GETTER(sprop)   (!(sprop)->getter)
#define SPROP_HAS_STUB_SETTER(sprop)   (!(sprop)->setter)
#define SPROP_HAS_STUB_GETTER_OR_IS_METHOD(sprop)   (SPROP_HAS_STUB_GETTER(sprop) || (sprop)->isMethod())
#define METER(x)
#define SPROP_IS_SHARED_PERMANENT(sprop)   ((~(sprop)->attrs & (JSPROP_SHARED | JSPROP_PERMANENT)) == 0)

Functions

bool JS_IS_SCOPE_LOCKED (JSContext *cx, JSScope *scope)
JSScopeOBJ_SCOPE (JSObject *obj)
uint32 OBJ_SHAPE (JSObject *obj)
JSObjectjs_CastAsObject (JSPropertyOp op)
jsval js_CastAsObjectJSVal (JSPropertyOp op)
uint32 js_GenerateShape (JSContext *cx, bool gcLocked)
JSScopejs_GetMutableScope (JSContext *cx, JSObject *obj)
void js_TraceId (JSTracer *trc, jsid id)
void js_SweepScopeProperties (JSContext *cx)
bool js_InitPropertyTree (JSRuntime *rt)
void js_FinishPropertyTree (JSRuntime *rt)

Define Documentation

#define METER (   x  ) 
#define SCOPE_CAPACITY (   scope  )     JS_BIT(JS_DHASH_BITS-(scope)->hashShift)
#define SLOT_IN_SCOPE (   slot,
  scope 
)    ((slot) < (scope)->freeslot)
#define SPROP_CLEAR_COLLISION (   sprop  )     ((JSScopeProperty *) ((jsuword)(sprop) & ~SPROP_COLLISION))
#define SPROP_COLLISION   ((jsuword)1)
#define SPROP_FETCH (   spp  )     SPROP_CLEAR_COLLISION(*(spp))
#define SPROP_FLAG_COLLISION (   spp,
  sprop 
)
Value:
(*(spp) = (JSScopeProperty *)         \
                                         ((jsuword)(sprop) | SPROP_COLLISION))
#define SPROP_FLAG_SHAPE_REGEN   0x08
#define SPROP_HAD_COLLISION (   sprop  )     ((jsuword)(sprop) & SPROP_COLLISION)
#define SPROP_HAS_SHORTID   0x04
#define SPROP_HAS_STUB_GETTER (   sprop  )     (!(sprop)->getter)
#define SPROP_HAS_STUB_GETTER_OR_IS_METHOD (   sprop  )     (SPROP_HAS_STUB_GETTER(sprop) || (sprop)->isMethod())
#define SPROP_HAS_STUB_SETTER (   sprop  )     (!(sprop)->setter)
#define SPROP_HAS_VALID_SLOT (   sprop,
  scope 
)    SLOT_IN_SCOPE((sprop)->slot, scope)
#define SPROP_IN_DICTIONARY   0x20
#define SPROP_INVALID_SLOT   0xffffffff
#define SPROP_IS_ALIAS   0x02
#define SPROP_IS_FREE (   sprop  )     ((sprop) == NULL)
#define SPROP_IS_LIVE (   sprop  )     ((sprop) > SPROP_REMOVED)
#define SPROP_IS_METHOD   0x10
#define SPROP_IS_REMOVED (   sprop  )     ((sprop) == SPROP_REMOVED)
#define SPROP_IS_SHARED_PERMANENT (   sprop  )     ((~(sprop)->attrs & (JSPROP_SHARED | JSPROP_PERMANENT)) == 0)
#define SPROP_MARK   0x01
#define SPROP_REMOVED   ((JSScopeProperty *) SPROP_COLLISION)
#define SPROP_STORE_PRESERVING_COLLISION (   spp,
  sprop 
)
Value:
(*(spp) = (JSScopeProperty *) ((jsuword)(sprop)                           \
                                   | SPROP_HAD_COLLISION(*(spp))))
#define SPROP_USERID (   sprop  ) 
Value:
(((sprop)->flags & SPROP_HAS_SHORTID) ? INT_TO_JSVAL((sprop)->shortid)    \
                                          : ID_TO_VALUE((sprop)->id))

Function Documentation

JSObject* js_CastAsObject ( JSPropertyOp  op  )  [inline]
jsval js_CastAsObjectJSVal ( JSPropertyOp  op  )  [inline]
void js_FinishPropertyTree ( JSRuntime rt  ) 
uint32 js_GenerateShape ( JSContext cx,
bool  gcLocked 
)
JSScope* js_GetMutableScope ( JSContext cx,
JSObject obj 
)
bool js_InitPropertyTree ( JSRuntime rt  ) 
bool JS_IS_SCOPE_LOCKED ( JSContext cx,
JSScope scope 
) [inline]
void js_SweepScopeProperties ( JSContext cx  ) 
void js_TraceId ( JSTracer trc,
jsid  id 
)
JSScope* OBJ_SCOPE ( JSObject obj  )  [inline]
uint32 OBJ_SHAPE ( JSObject obj  )  [inline]