/[jscoverage]/trunk/js/jscntxt.h
ViewVC logotype

Diff of /trunk/js/jscntxt.h

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 332 by siliconforks, Thu Oct 23 19:03:33 2008 UTC revision 399 by siliconforks, Tue Dec 9 03:37:47 2008 UTC
# Line 108  Line 108 
108  # define CLS(T)  void*  # define CLS(T)  void*
109  #endif  #endif
110    
 /*  
  * Fragment quick cache entry.  
  */  
 typedef struct JSFragmentCacheEntry {  
     jsbytecode*             pc;  
     CLS(nanojit::Fragment)  fragment;  
 } JSFragmentCacheEntry;  
   
 #define JS_FRAGMENT_CACHE_LOG2  2  
 #define JS_FRAGMENT_CACHE_SIZE  JS_BIT(JS_FRAGMENT_CACHE_LOG2)  
 #define JS_FRAGMENT_CACHE_MASK  JS_BITMASK(JS_FRAGMENT_CACHE_LOG2)  
   
111  /*  /*
112   * Trace monitor. Every JSThread (if JS_THREADSAFE) or JSRuntime (if not   * Trace monitor. Every JSThread (if JS_THREADSAFE) or JSRuntime (if not
113   * JS_THREADSAFE) has an associated trace monitor that keeps track of loop   * JS_THREADSAFE) has an associated trace monitor that keeps track of loop
# Line 138  Line 126 
126      uint32                  globalShape;      uint32                  globalShape;
127      CLS(SlotList)           globalSlots;      CLS(SlotList)           globalSlots;
128      CLS(TypeMap)            globalTypeMap;      CLS(TypeMap)            globalTypeMap;
     JSFragmentCacheEntry    fcache[JS_FRAGMENT_CACHE_SIZE];  
129      jsval                   *recoveryDoublePool;      jsval                   *recoveryDoublePool;
130      jsval                   *recoveryDoublePoolPtr;      jsval                   *recoveryDoublePoolPtr;
131    
132        /* Fragmento for the regular expression compiler. This is logically
133         * a distinct compiler but needs to be managed in exactly the same
134         * way as the real tracing Fragmento. */
135        CLS(nanojit::Fragmento) reFragmento;
136    
137        /* Keep a list of recorders we need to abort on cache flush. */
138        CLS(TraceRecorder)      abortStack;
139  } JSTraceMonitor;  } JSTraceMonitor;
140    
141  #ifdef JS_TRACER  #ifdef JS_TRACER
# Line 338  Line 333 
333      JSCList             trapList;      JSCList             trapList;
334      JSCList             watchPointList;      JSCList             watchPointList;
335    
336      /* Client opaque pointer */      /* Client opaque pointers */
337      void                *data;      void                *data;
338    
339  #ifdef JS_THREADSAFE  #ifdef JS_THREADSAFE
# Line 491  Line 486 
486      jsuword             nativeEnumCache[NATIVE_ENUM_CACHE_SIZE];      jsuword             nativeEnumCache[NATIVE_ENUM_CACHE_SIZE];
487    
488      /*      /*
489         * Runtime-wide flag set to true when any Array prototype has an indexed
490         * property defined on it, creating a hazard for code reading or writing
491         * over a hole from a dense Array instance that is not prepared to look up
492         * the proto chain (the writing case must involve a check for a read-only
493         * element, which cannot be shadowed).
494         */
495        JSBool              anyArrayProtoHasElement;
496    
497        /*
498       * Various metering fields are defined at the end of JSRuntime. In this       * Various metering fields are defined at the end of JSRuntime. In this
499       * way there is no need to recompile all the code that refers to other       * way there is no need to recompile all the code that refers to other
500       * fields of JSRuntime after enabling the corresponding metering macro.       * fields of JSRuntime after enabling the corresponding metering macro.
# Line 851  Line 855 
855      /* Interpreter activation count. */      /* Interpreter activation count. */
856      uintN               interpLevel;      uintN               interpLevel;
857    
858      /* Client opaque pointer */      /* Client opaque pointers. */
859      void                *data;      void                *data;
860        void                *data2;
861    
862      /* GC and thread-safe state. */      /* GC and thread-safe state. */
863      JSStackFrame        *dormantFrameChain; /* dormant stack frame to scan */      JSStackFrame        *dormantFrameChain; /* dormant stack frame to scan */
# Line 921  Line 926 
926          JS_POP_TEMP_ROOT(mContext, &mTvr);          JS_POP_TEMP_ROOT(mContext, &mTvr);
927      }      }
928    
929      protected:
930        JSContext *mContext;
931    
932    private:    private:
933  #ifndef AIX  #ifndef AIX
934      static void *operator new(size_t);      static void *operator new(size_t);
935      static void operator delete(void *, size_t);      static void operator delete(void *, size_t);
936  #endif  #endif
937    
     JSContext *mContext;  
938      JSTempValueRooter mTvr;      JSTempValueRooter mTvr;
939  };  };
940    

Legend:
Removed from v.332  
changed lines
  Added in v.399

  ViewVC Help
Powered by ViewVC 1.1.24