<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array"/>
  <modified type="array">
    <modified>
      <diff>@@ -30,7 +30,6 @@ D/fdlibm////
 /jsbool.h/3.11/Tue Jun 24 17:39:41 2008//
 /jsclist.h/3.8/Tue Jun 24 17:39:41 2008//
 /jscntxt.c/3.136/Tue Jun 24 17:39:41 2008//
-/jscntxt.h/3.204/Tue Jun 24 17:39:41 2008//
 /jscompat.h/3.9/Tue Jun 24 17:39:41 2008//
 /jsconfig.h/3.46/Tue Jun 24 17:39:41 2008//
 /jsconfig.mk/3.9/Tue Jun 24 17:39:41 2008//
@@ -60,7 +59,6 @@ D/fdlibm////
 /jshash.c/3.20/Tue Jun 24 17:39:41 2008//
 /jshash.h/3.11/Tue Jun 24 17:39:41 2008//
 /jsify.pl/3.1/Tue Jun 24 17:39:41 2008//
-/jsinterp.c/3.498/Tue Jun 24 17:39:41 2008//
 /jsinterp.h/3.93/Tue Jun 24 17:39:41 2008//
 /jsinvoke.c/3.1/Tue Jun 24 17:39:41 2008//
 /jsiter.c/3.102/Tue Jun 24 17:39:41 2008//
@@ -98,7 +96,6 @@ D/fdlibm////
 /jsscan.h/3.53/Tue Jun 24 17:39:41 2008//
 /jsscope.c/3.87/Tue Jun 24 17:39:41 2008//
 /jsscope.h/3.59/Tue Jun 24 17:39:41 2008//
-/jsscript.c/3.180/Tue Jun 24 17:39:41 2008//
 /jsscript.h/3.45/Tue Jun 24 17:39:41 2008//
 /jsshell.msg/3.6/Tue Jun 24 17:39:41 2008//
 /jsstddef.h/1.8/Tue Jun 24 17:39:41 2008//
@@ -119,3 +116,6 @@ D/fdlibm////
 /resource.h/3.2/Tue Jun 24 17:39:41 2008//
 /rules.mk/3.16/Tue Jun 24 17:39:41 2008//
 /win32.order/1.6/Tue Jun 24 17:39:41 2008//
+/jscntxt.h/3.205/Sun Jul  6 10:03:00 2008//
+/jsinterp.c/3.499/Sun Jul  6 10:03:00 2008//
+/jsscript.c/3.181/Sun Jul  6 10:03:00 2008//</diff>
      <filename>vendor/spidermonkey/CVS/Entries</filename>
    </modified>
    <modified>
      <diff>@@ -61,10 +61,12 @@ JS_BEGIN_EXTERN_C
 
 /*
  * js_GetSrcNote cache to avoid O(n^2) growth in finding a source note for a
- * given pc in a script.
+ * given pc in a script.  We use the script-&gt;code pointer to tag the cache,
+ * instead of the script address itself, so that source notes are always found
+ * by offset from the bytecode with which they were generated.
  */
 typedef struct JSGSNCache {
-    JSScript        *script;
+    jsbytecode      *code;
     JSDHashTable    table;
 #ifdef JS_GSNMETER
     uint32          hits;
@@ -79,7 +81,7 @@ typedef struct JSGSNCache {
 
 #define GSN_CACHE_CLEAR(cache)                                                \
     JS_BEGIN_MACRO                                                            \
-        (cache)-&gt;script = NULL;                                               \
+        (cache)-&gt;code = NULL;                                                 \
         if ((cache)-&gt;table.ops) {                                             \
             JS_DHashTableFinish(&amp;(cache)-&gt;table);                             \
             (cache)-&gt;table.ops = NULL;                                        \</diff>
      <filename>vendor/spidermonkey/jscntxt.h</filename>
    </modified>
    <modified>
      <diff>@@ -3688,10 +3688,10 @@ interrupt:
 
 #define BINARY_OP(OP)                                                         \
     JS_BEGIN_MACRO                                                            \
-        FETCH_NUMBER(cx, -1, d2);                                             \
         FETCH_NUMBER(cx, -2, d);                                              \
+        FETCH_NUMBER(cx, -1, d2);                                             \
         d = d OP d2;                                                          \
-        regs.sp--;                                                                 \
+        regs.sp--;                                                            \
         STORE_NUMBER(cx, -1, d);                                              \
     JS_END_MACRO
 </diff>
      <filename>vendor/spidermonkey/jsinterp.c</filename>
    </modified>
    <modified>
      <diff>@@ -1532,7 +1532,7 @@ js_DestroyScript(JSContext *cx, JSScript *script)
     if (script-&gt;principals)
         JSPRINCIPALS_DROP(cx, script-&gt;principals);
 
-    if (JS_GSN_CACHE(cx).script == script)
+    if (JS_GSN_CACHE(cx).code == script-&gt;code)
         JS_CLEAR_GSN_CACHE(cx);
 
     /*
@@ -1633,7 +1633,7 @@ js_GetSrcNoteCached(JSContext *cx, JSScript *script, jsbytecode *pc)
     if ((uint32)target &gt;= script-&gt;length)
         return NULL;
 
-    if (JS_GSN_CACHE(cx).script == script) {
+    if (JS_GSN_CACHE(cx).code == script-&gt;code) {
         JS_METER_GSN_CACHE(cx, hits);
         entry = (GSNCacheEntry *)
                 JS_DHashTableOperate(&amp;JS_GSN_CACHE(cx).table, pc,
@@ -1655,7 +1655,7 @@ js_GetSrcNoteCached(JSContext *cx, JSScript *script, jsbytecode *pc)
         }
     }
 
-    if (JS_GSN_CACHE(cx).script != script &amp;&amp;
+    if (JS_GSN_CACHE(cx).code != script-&gt;code &amp;&amp;
         script-&gt;length &gt;= GSN_CACHE_THRESHOLD) {
         JS_CLEAR_GSN_CACHE(cx);
         nsrcnotes = 0;
@@ -1681,7 +1681,7 @@ js_GetSrcNoteCached(JSContext *cx, JSScript *script, jsbytecode *pc)
                     entry-&gt;sn = sn;
                 }
             }
-            JS_GSN_CACHE(cx).script = script;
+            JS_GSN_CACHE(cx).code = script-&gt;code;
             JS_METER_GSN_CACHE(cx, fills);
         }
     }</diff>
      <filename>vendor/spidermonkey/jsscript.c</filename>
    </modified>
  </modified>
  <removed type="array"/>
  <parents type="array">
    <parent>
      <id>5c40882c3aba3ce1f26bb07fee4593cc1199888b</id>
    </parent>
  </parents>
  <author>
    <name>John Barnette</name>
    <email>jbarnette@gmail.com</email>
  </author>
  <url>http://github.com/jbarnette/johnson/commit/eb003e58b22a30591c9b2ed0eedc172ee837ae25</url>
  <id>eb003e58b22a30591c9b2ed0eedc172ee837ae25</id>
  <committed-date>2008-07-06T03:03:57-07:00</committed-date>
  <authored-date>2008-07-06T03:03:57-07:00</authored-date>
  <message>Updating SpiderMonkey.</message>
  <tree>f951a16c909bdde81462ee45b98e0e804fe84f5d</tree>
  <committer>
    <name>John Barnette</name>
    <email>jbarnette@gmail.com</email>
  </committer>
</commit>
