Sourceforge.net - The VCF's Project Host
   The VCF Website Home   |   Online Discussion Forums   |   Sourceforge.net Project Page   

vcf/JavaScriptKit/js-impl/jscntxt.h File Reference


Classes

struct  JSPropertyTreeEntry
struct  JSRuntime
struct  JSStackHeader
struct  JSResolvingKey
struct  JSResolvingEntry
struct  JSLocalRootChunk
struct  JSLocalRootStack
union  JSTempValueUnion
struct  JSTempValueRooter
struct  JSContext
struct  JSContext::JSGSNCache

Defines

#define JS_RUNTIME_METER(rt, which)
#define JS_RUNTIME_UNMETER(rt, which)
#define JS_KEEP_ATOMS(rt)   JS_ATOMIC_INCREMENT(&(rt)->gcKeepAtoms);
#define JS_UNKEEP_ATOMS(rt)   JS_ATOMIC_DECREMENT(&(rt)->gcKeepAtoms);
#define JS_STACK_SEGMENT(sh)   ((jsval *)(sh) + 2)
#define JSRESFLAG_LOOKUP   0x1
#define JSRESFLAG_WATCH   0x2
#define JSLRS_CHUNK_SHIFT   8
#define JSLRS_CHUNK_SIZE   JS_BIT(JSLRS_CHUNK_SHIFT)
#define JSLRS_CHUNK_MASK   JS_BITMASK(JSLRS_CHUNK_SHIFT)
#define JSLRS_NULL_MARK   ((uint32) -1)
#define JS_PUSH_TEMP_ROOT_COMMON(cx, tvr)
#define JS_PUSH_SINGLE_TEMP_ROOT(cx, val, tvr)
#define JS_PUSH_TEMP_ROOT(cx, cnt, arr, tvr)
#define JS_PUSH_TEMP_ROOT_MARKER(cx, marker_, tvr)
#define JS_PUSH_TEMP_ROOT_OBJECT(cx, obj, tvr)
#define JS_PUSH_TEMP_ROOT_STRING(cx, str, tvr)
#define JS_PUSH_TEMP_ROOT_GCTHING(cx, thing, tvr)
#define JS_POP_TEMP_ROOT(cx, tvr)
#define JS_TEMP_ROOT_EVAL(cx, cnt, val, expr)
#define GSN_CACHE_METER(cx, cnt)
#define JS_CLEAR_GSN_CACHE(cx)
#define JS_THREAD_ID(cx)   ((cx)->thread ? (cx)->thread->id : 0)
#define JS_HAS_OPTION(cx, option)   (((cx)->options & (option)) != 0)
#define JS_HAS_STRICT_OPTION(cx)   JS_HAS_OPTION(cx, JSOPTION_STRICT)
#define JS_HAS_WERROR_OPTION(cx)   JS_HAS_OPTION(cx, JSOPTION_WERROR)
#define JS_HAS_COMPILE_N_GO_OPTION(cx)   JS_HAS_OPTION(cx, JSOPTION_COMPILE_N_GO)
#define JS_HAS_ATLINE_OPTION(cx)   JS_HAS_OPTION(cx, JSOPTION_ATLINE)
#define JSVERSION_MASK   0x0FFF
#define JSVERSION_HAS_XML   0x1000
#define JSVERSION_NUMBER(cx)   ((cx)->version & JSVERSION_MASK)
#define JS_HAS_XML_OPTION(cx)
#define JS_HAS_NATIVE_BRANCH_CALLBACK_OPTION(cx)   JS_HAS_OPTION(cx, JSOPTION_NATIVE_BRANCH_CALLBACK)
#define js_LeaveLocalRootScope(cx)   js_LeaveLocalRootScopeWithResult(cx, JSVAL_NULL)
#define MSG_DEF(name, number, count, exception, format)   name = number,
#define JS_CHECK_STACK_SIZE(cx, lval)   ((jsuword)&(lval) > (cx)->stackLimit)

Typedefs

typedef JSNativeIteratorState JSNativeIteratorState
typedef JSLocalRootChunk JSLocalRootChunk
typedef JSTempValueRooter JSTempValueRooter
typedef void(* JS_DLL_CALLBACK )(JSContext *cx, JSTempValueRooter *tvr)

Enumerations

enum  JSDestroyContextMode { JSDCM_NO_GC, JSDCM_MAYBE_GC, JSDCM_FORCE_GC, JSDCM_NEW_FAILED }
enum  JSRuntimeState { JSRTS_DOWN, JSRTS_LAUNCHING, JSRTS_UP, JSRTS_LANDING }
enum  JSErrNum {
  name, number, count, exception,
  JSErr_Limit
}

Functions

 JS_STATIC_ASSERT (sizeof(JSTempValueUnion)==sizeof(jsval))
void js_OnVersionChange (JSContext *cx)
void js_SetVersion (JSContext *cx, JSVersion version)
JSContextjs_NewContext (JSRuntime *rt, size_t stackChunkSize)
void js_DestroyContext (JSContext *cx, JSDestroyContextMode mode)
JSBool js_ValidContextPointer (JSRuntime *rt, JSContext *cx)
JSContextjs_ContextIterator (JSRuntime *rt, JSBool unlocked, JSContext **iterp)
JSBool js_StartResolving (JSContext *cx, JSResolvingKey *key, uint32 flag, JSResolvingEntry **entryp)
void js_StopResolving (JSContext *cx, JSResolvingKey *key, uint32 flag, JSResolvingEntry *entry, uint32 generation)
JSBool js_EnterLocalRootScope (JSContext *cx)
void js_LeaveLocalRootScopeWithResult (JSContext *cx, jsval rval)
void js_ForgetLocalRoot (JSContext *cx, jsval v)
int js_PushLocalRoot (JSContext *cx, JSLocalRootStack *lrs, jsval v)
void js_MarkLocalRoots (JSContext *cx, JSLocalRootStack *lrs)
const JSErrorFormatStringjs_GetErrorMessage (void *userRef, const char *locale, const uintN errorNumber)
void js_ReportOutOfMemory (JSContext *cx)
 JS_FRIEND_API (void) js_ReportErrorAgain(JSContext *cx
void js_ReportIsNotDefined (JSContext *cx, const char *name)

Variables

const char * message
const char JSErrorReportreport
JSErrorFormatString js_ErrorFormatString [JSErr_Limit]

Define Documentation

#define GSN_CACHE_METER cx,
cnt   ) 
 

#define JS_CHECK_STACK_SIZE cx,
lval   )     ((jsuword)&(lval) > (cx)->stackLimit)
 

#define JS_CLEAR_GSN_CACHE cx   ) 
 

Value:

JS_BEGIN_MACRO                                                            \
        (cx)->gsnCache.script = NULL;                                         \
        if ((cx)->gsnCache.table.ops) {                                       \
            JS_DHashTableFinish(&(cx)->gsnCache.table);                       \
            (cx)->gsnCache.table.ops = NULL;                                  \
        }                                                                     \
        GSN_CACHE_METER(cx, clears);                                          \
    JS_END_MACRO

#define JS_HAS_ATLINE_OPTION cx   )     JS_HAS_OPTION(cx, JSOPTION_ATLINE)
 

#define JS_HAS_COMPILE_N_GO_OPTION cx   )     JS_HAS_OPTION(cx, JSOPTION_COMPILE_N_GO)
 

#define JS_HAS_NATIVE_BRANCH_CALLBACK_OPTION cx   )     JS_HAS_OPTION(cx, JSOPTION_NATIVE_BRANCH_CALLBACK)
 

#define JS_HAS_OPTION cx,
option   )     (((cx)->options & (option)) != 0)
 

#define JS_HAS_STRICT_OPTION cx   )     JS_HAS_OPTION(cx, JSOPTION_STRICT)
 

#define JS_HAS_WERROR_OPTION cx   )     JS_HAS_OPTION(cx, JSOPTION_WERROR)
 

#define JS_HAS_XML_OPTION cx   ) 
 

Value:

#define JS_KEEP_ATOMS rt   )     JS_ATOMIC_INCREMENT(&(rt)->gcKeepAtoms);
 

#define js_LeaveLocalRootScope cx   )     js_LeaveLocalRootScopeWithResult(cx, JSVAL_NULL)
 

#define JS_POP_TEMP_ROOT cx,
tvr   ) 
 

Value:

JS_BEGIN_MACRO                                                            \
        JS_ASSERT((cx)->tempValueRooters == (tvr));                           \
        (cx)->tempValueRooters = (tvr)->down;                                 \
    JS_END_MACRO

#define JS_PUSH_SINGLE_TEMP_ROOT cx,
val,
tvr   ) 
 

Value:

JS_BEGIN_MACRO                                                            \
        (tvr)->count = -1;                                                    \
        (tvr)->u.value = val;                                                 \
        JS_PUSH_TEMP_ROOT_COMMON(cx, tvr);                                    \
    JS_END_MACRO

#define JS_PUSH_TEMP_ROOT cx,
cnt,
arr,
tvr   ) 
 

Value:

JS_BEGIN_MACRO                                                            \
        JS_ASSERT((ptrdiff_t)(cnt) >= 0);                                     \
        (tvr)->count = (ptrdiff_t)(cnt);                                      \
        (tvr)->u.array = (arr);                                               \
        JS_PUSH_TEMP_ROOT_COMMON(cx, tvr);                                    \
    JS_END_MACRO

#define JS_PUSH_TEMP_ROOT_COMMON cx,
tvr   ) 
 

Value:

JS_BEGIN_MACRO                                                            \
        JS_ASSERT((cx)->tempValueRooters != (tvr));                           \
        (tvr)->down = (cx)->tempValueRooters;                                 \
        (cx)->tempValueRooters = (tvr);                                       \
    JS_END_MACRO

#define JS_PUSH_TEMP_ROOT_GCTHING cx,
thing,
tvr   ) 
 

Value:

JS_BEGIN_MACRO                                                            \
        JS_ASSERT(JSVAL_IS_OBJECT((jsval)thing));                             \
        (tvr)->count = -1;                                                    \
        (tvr)->u.gcthing = (thing);                                           \
        JS_PUSH_TEMP_ROOT_COMMON(cx, tvr);                                    \
    JS_END_MACRO

#define JS_PUSH_TEMP_ROOT_MARKER cx,
marker_,
tvr   ) 
 

Value:

JS_BEGIN_MACRO                                                            \
        (tvr)->count = -2;                                                    \
        (tvr)->u.marker = (marker_);                                          \
        JS_PUSH_TEMP_ROOT_COMMON(cx, tvr);                                    \
    JS_END_MACRO

#define JS_PUSH_TEMP_ROOT_OBJECT cx,
obj,
tvr   ) 
 

Value:

JS_BEGIN_MACRO                                                            \
        (tvr)->count = -1;                                                    \
        (tvr)->u.object = (obj);                                              \
        JS_PUSH_TEMP_ROOT_COMMON(cx, tvr);                                    \
    JS_END_MACRO

#define JS_PUSH_TEMP_ROOT_STRING cx,
str,
tvr   ) 
 

Value:

JS_BEGIN_MACRO                                                            \
        (tvr)->count = -1;                                                    \
        (tvr)->u.string = (str);                                              \
        JS_PUSH_TEMP_ROOT_COMMON(cx, tvr);                                    \
    JS_END_MACRO

#define JS_RUNTIME_METER rt,
which   ) 
 

#define JS_RUNTIME_UNMETER rt,
which   ) 
 

#define JS_STACK_SEGMENT sh   )     ((jsval *)(sh) + 2)
 

#define JS_TEMP_ROOT_EVAL cx,
cnt,
val,
expr   ) 
 

Value:

#define JS_THREAD_ID cx   )     ((cx)->thread ? (cx)->thread->id : 0)
 

#define JS_UNKEEP_ATOMS rt   )     JS_ATOMIC_DECREMENT(&(rt)->gcKeepAtoms);
 

#define JSLRS_CHUNK_MASK   JS_BITMASK(JSLRS_CHUNK_SHIFT)
 

#define JSLRS_CHUNK_SHIFT   8
 

#define JSLRS_CHUNK_SIZE   JS_BIT(JSLRS_CHUNK_SHIFT)
 

#define JSLRS_NULL_MARK   ((uint32) -1)
 

#define JSRESFLAG_LOOKUP   0x1
 

#define JSRESFLAG_WATCH   0x2
 

#define JSVERSION_HAS_XML   0x1000
 

#define JSVERSION_MASK   0x0FFF
 

#define JSVERSION_NUMBER cx   )     ((cx)->version & JSVERSION_MASK)
 

#define MSG_DEF name,
number,
count,
exception,
format   )     name = number,
 


Typedef Documentation

typedef void(* JS_DLL_CALLBACK)(JSContext *cx, JSTempValueRooter *tvr)
 

typedef struct JSLocalRootChunk JSLocalRootChunk
 

typedef struct JSNativeIteratorState JSNativeIteratorState
 

typedef struct JSTempValueRooter JSTempValueRooter
 


Enumeration Type Documentation

enum JSDestroyContextMode
 

Enumerator:
JSDCM_NO_GC 
JSDCM_MAYBE_GC 
JSDCM_FORCE_GC 
JSDCM_NEW_FAILED 

enum JSErrNum
 

Enumerator:
name 
number 
count 
exception 
JSErr_Limit 

enum JSRuntimeState
 

Enumerator:
JSRTS_DOWN 
JSRTS_LAUNCHING 
JSRTS_UP 
JSRTS_LANDING 


Function Documentation

JSContext* js_ContextIterator JSRuntime rt,
JSBool  unlocked,
JSContext **  iterp
 

void js_DestroyContext JSContext cx,
JSDestroyContextMode  mode
 

JSBool js_EnterLocalRootScope JSContext cx  ) 
 

void js_ForgetLocalRoot JSContext cx,
jsval  v
 

JS_FRIEND_API void   ) 
 

const JSErrorFormatString* js_GetErrorMessage void *  userRef,
const char *  locale,
const uintN  errorNumber
 

void js_LeaveLocalRootScopeWithResult JSContext cx,
jsval  rval
 

void js_MarkLocalRoots JSContext cx,
JSLocalRootStack lrs
 

JSContext* js_NewContext JSRuntime rt,
size_t  stackChunkSize
 

void js_OnVersionChange JSContext cx  ) 
 

int js_PushLocalRoot JSContext cx,
JSLocalRootStack lrs,
jsval  v
 

void js_ReportIsNotDefined JSContext cx,
const char *  name
 

void js_ReportOutOfMemory JSContext cx  ) 
 

void js_SetVersion JSContext cx,
JSVersion  version
 

JSBool js_StartResolving JSContext cx,
JSResolvingKey key,
uint32  flag,
JSResolvingEntry **  entryp
 

JS_STATIC_ASSERT sizeof(JSTempValueUnion = =sizeof(jsval)  ) 
 

void js_StopResolving JSContext cx,
JSResolvingKey key,
uint32  flag,
JSResolvingEntry entry,
uint32  generation
 

JSBool js_ValidContextPointer JSRuntime rt,
JSContext cx
 


Variable Documentation

JSErrorFormatString js_ErrorFormatString[JSErr_Limit]
 

const char* message
 

const char JSErrorReport* report
 

   Comments or Suggestions?    License Information