<?xml version="1.0" encoding="UTF-8"?>
<commits type="array">
  <commit>
    <parents type="array">
      <parent>
        <id>1df39ce9780f1b24dfd49716c99abe909781be46</id>
      </parent>
    </parents>
    <author>
      <name>Matthew Draper</name>
      <email>matthew@trebex.net</email>
    </author>
    <url>http://github.com/jbarnette/johnson/commit/887053b9fdbe37b642ac12760bf56eec695eb237</url>
    <id>887053b9fdbe37b642ac12760bf56eec695eb237</id>
    <committed-date>2009-10-09T20:41:24-07:00</committed-date>
    <authored-date>2009-10-09T20:41:24-07:00</authored-date>
    <message>Update target path for spidermonkey.so in extconf

(to match its new location, per my earlier change to Rakefile)</message>
    <tree>460287ba209bbc69f244a3e8185b54583f56b2e0</tree>
    <committer>
      <name>Matthew Draper</name>
      <email>matthew@trebex.net</email>
    </committer>
  </commit>
  <commit>
    <parents type="array">
      <parent>
        <id>46d4f089f34a90a0a4e2305de7a57e2cf903dd4f</id>
      </parent>
    </parents>
    <author>
      <name>Matthew Draper</name>
      <email>matthew@trebex.net</email>
    </author>
    <url>http://github.com/jbarnette/johnson/commit/1df39ce9780f1b24dfd49716c99abe909781be46</url>
    <id>1df39ce9780f1b24dfd49716c99abe909781be46</id>
    <committed-date>2009-10-03T20:55:00-07:00</committed-date>
    <authored-date>2009-10-03T20:47:56-07:00</authored-date>
    <message>Apply wrappers during RubyLandProxy creation.

This allows pure-ruby code to control how different JS values are
presented to the rest of ruby-land. Such wrappers provide for the most
common case, but there's also a need to be able to define a conversion
to be applied each time the proxy is required, too. And then we need
corresponding functionality in js-land.</message>
    <tree>3ebf7cec40693a5084236a1490b3b866c3074fd1</tree>
    <committer>
      <name>Matthew Draper</name>
      <email>matthew@trebex.net</email>
    </committer>
  </commit>
  <commit>
    <parents type="array">
      <parent>
        <id>48d6610ea8a2d8e22fa7bd2e067ba2d214b0bc18</id>
      </parent>
    </parents>
    <author>
      <name>Matthew Draper</name>
      <email>matthew@trebex.net</email>
    </author>
    <url>http://github.com/jbarnette/johnson/commit/46d4f089f34a90a0a4e2305de7a57e2cf903dd4f</url>
    <id>46d4f089f34a90a0a4e2305de7a57e2cf903dd4f</id>
    <committed-date>2009-10-03T20:55:00-07:00</committed-date>
    <authored-date>2009-10-03T09:08:23-07:00</authored-date>
    <message>Put the call-seq convention back how it was.</message>
    <tree>427af0a13b59ea13a70ba6bf11f86efe4f25d9ff</tree>
    <committer>
      <name>Matthew Draper</name>
      <email>matthew@trebex.net</email>
    </committer>
  </commit>
  <commit>
    <parents type="array">
      <parent>
        <id>be42be52244cd14ce6dced2c77dd23586c895f14</id>
      </parent>
    </parents>
    <author>
      <name>Matthew Draper</name>
      <email>matthew@trebex.net</email>
    </author>
    <url>http://github.com/jbarnette/johnson/commit/48d6610ea8a2d8e22fa7bd2e067ba2d214b0bc18</url>
    <id>48d6610ea8a2d8e22fa7bd2e067ba2d214b0bc18</id>
    <committed-date>2009-10-03T20:55:00-07:00</committed-date>
    <authored-date>2009-10-03T19:12:53-07:00</authored-date>
    <message>... and update the manifest.</message>
    <tree>818e1a89331afc2a9ac518cedb763378eaa0b5db</tree>
    <committer>
      <name>Matthew Draper</name>
      <email>matthew@trebex.net</email>
    </committer>
  </commit>
  <commit>
    <parents type="array">
      <parent>
        <id>08405b447d2db8c4abc3864860f9e798400ce653</id>
      </parent>
    </parents>
    <author>
      <name>Matthew Draper</name>
      <email>matthew@trebex.net</email>
    </author>
    <url>http://github.com/jbarnette/johnson/commit/be42be52244cd14ce6dced2c77dd23586c895f14</url>
    <id>be42be52244cd14ce6dced2c77dd23586c895f14</id>
    <committed-date>2009-10-03T07:39:16-07:00</committed-date>
    <authored-date>2009-10-03T07:21:02-07:00</authored-date>
    <message>Make J::SM::Runtime a subclass of J::Runtime.

Similarly, invent a J::RubyLandProxy, which is the superclass of
J::SM::RubyLandProxy.

Neither of these classes are useful in themselves, without an
engine-specific subclass providing the real implementation... but their
separate existence should simplify documenting the user-relevant API.</message>
    <tree>4c957b6cd20aad91622ce4f8c10daf18e857dd96</tree>
    <committer>
      <name>Matthew Draper</name>
      <email>matthew@trebex.net</email>
    </committer>
  </commit>
  <commit>
    <parents type="array">
      <parent>
        <id>104d4ca795fe4a3f8c0c31d45909af22948901a9</id>
      </parent>
    </parents>
    <author>
      <name>Matthew Draper</name>
      <email>matthew@trebex.net</email>
    </author>
    <url>http://github.com/jbarnette/johnson/commit/08405b447d2db8c4abc3864860f9e798400ce653</url>
    <id>08405b447d2db8c4abc3864860f9e798400ce653</id>
    <committed-date>2009-10-02T19:11:13-07:00</committed-date>
    <authored-date>2009-10-02T19:11:13-07:00</authored-date>
    <message>Function#apply allows its second param to be null.

Also, be a bit more careful about what we let through; it doesn't have
to be an Array, but it does have to be convincingly array-like.</message>
    <tree>41f88874a0b4c475d910338639d1646e64e58046</tree>
    <committer>
      <name>Matthew Draper</name>
      <email>matthew@trebex.net</email>
    </committer>
  </commit>
  <commit>
    <parents type="array">
      <parent>
        <id>afb6861a06029ae6d849ec4ef8f2f544d6a751e9</id>
      </parent>
    </parents>
    <author>
      <name>Matthew Draper</name>
      <email>matthew@trebex.net</email>
    </author>
    <url>http://github.com/jbarnette/johnson/commit/104d4ca795fe4a3f8c0c31d45909af22948901a9</url>
    <id>104d4ca795fe4a3f8c0c31d45909af22948901a9</id>
    <committed-date>2009-10-02T08:39:36-07:00</committed-date>
    <authored-date>2009-10-02T08:39:36-07:00</authored-date>
    <message>Let SpiderMonkey do the UTF-8 string conversion.</message>
    <tree>26fbe24723b633e0803dc9090ad809fb42126f51</tree>
    <committer>
      <name>Matthew Draper</name>
      <email>matthew@trebex.net</email>
    </committer>
  </commit>
  <commit>
    <parents type="array">
      <parent>
        <id>1b5f0c61ef396a6e1f9e6c414a5747933afa0f02</id>
      </parent>
    </parents>
    <author>
      <name>Matthew Draper</name>
      <email>matthew@trebex.net</email>
    </author>
    <url>http://github.com/jbarnette/johnson/commit/afb6861a06029ae6d849ec4ef8f2f544d6a751e9</url>
    <id>afb6861a06029ae6d849ec4ef8f2f544d6a751e9</id>
    <committed-date>2009-09-27T07:17:39-07:00</committed-date>
    <authored-date>2009-09-27T07:17:39-07:00</authored-date>
    <message>Vague attempt to make the API look more documented.

Not really adding a lot of real information... and I think I've made a
mess of the call-seq presentation.</message>
    <tree>23afb6ff34080f140ca723e7bccc94cd3c190419</tree>
    <committer>
      <name>Matthew Draper</name>
      <email>matthew@trebex.net</email>
    </committer>
  </commit>
  <commit>
    <parents type="array">
      <parent>
        <id>cba8a9ad9710d0c9b48b4c68e758f3e4644b61f7</id>
      </parent>
    </parents>
    <author>
      <name>Matthew Draper</name>
      <email>matthew@trebex.net</email>
    </author>
    <url>http://github.com/jbarnette/johnson/commit/1b5f0c61ef396a6e1f9e6c414a5747933afa0f02</url>
    <id>1b5f0c61ef396a6e1f9e6c414a5747933afa0f02</id>
    <committed-date>2009-09-26T23:22:13-07:00</committed-date>
    <authored-date>2009-09-26T23:22:13-07:00</authored-date>
    <message>Works for me, so our OS support isn't quite that bad.

ruby 1.8.7 (2009-06-12 patchlevel 174) [i486-linux]</message>
    <tree>9892700b1cc78e5c8334dcb70d77dcb65b3631e6</tree>
    <committer>
      <name>Matthew Draper</name>
      <email>matthew@trebex.net</email>
    </committer>
  </commit>
  <commit>
    <parents type="array">
      <parent>
        <id>19ac787081d2d5bc570dca6f1e09914c14746268</id>
      </parent>
    </parents>
    <author>
      <name>Matthew Draper</name>
      <email>matthew@trebex.net</email>
    </author>
    <url>http://github.com/jbarnette/johnson/commit/cba8a9ad9710d0c9b48b4c68e758f3e4644b61f7</url>
    <id>cba8a9ad9710d0c9b48b4c68e758f3e4644b61f7</id>
    <committed-date>2009-09-26T23:19:51-07:00</committed-date>
    <authored-date>2009-09-26T23:19:51-07:00</authored-date>
    <message>More tests for indexing by symbol.</message>
    <tree>42eff71a5fc24f496420f82b694eaa9620658269</tree>
    <committer>
      <name>Matthew Draper</name>
      <email>matthew@trebex.net</email>
    </committer>
  </commit>
  <commit>
    <parents type="array">
      <parent>
        <id>96c713e868ed3218c58a1e8b78d4b54d3aa24bf1</id>
      </parent>
    </parents>
    <author>
      <name>Matthew Draper</name>
      <email>matthew@trebex.net</email>
    </author>
    <url>http://github.com/jbarnette/johnson/commit/19ac787081d2d5bc570dca6f1e09914c14746268</url>
    <id>19ac787081d2d5bc570dca6f1e09914c14746268</id>
    <committed-date>2009-09-26T23:06:20-07:00</committed-date>
    <authored-date>2009-09-26T22:59:13-07:00</authored-date>
    <message>Treat symbols and strings equivalently in more places.</message>
    <tree>c5e16c7d8a021652d3b51af795a126d9b18219a3</tree>
    <committer>
      <name>Matthew Draper</name>
      <email>matthew@trebex.net</email>
    </committer>
  </commit>
  <commit>
    <parents type="array">
      <parent>
        <id>1a6d87d5d64d2828778eb0b1979942ed39aaed80</id>
      </parent>
    </parents>
    <author>
      <name>Matthew Draper</name>
      <email>matthew@trebex.net</email>
    </author>
    <url>http://github.com/jbarnette/johnson/commit/96c713e868ed3218c58a1e8b78d4b54d3aa24bf1</url>
    <id>96c713e868ed3218c58a1e8b78d4b54d3aa24bf1</id>
    <committed-date>2009-09-26T23:06:20-07:00</committed-date>
    <authored-date>2009-09-26T22:09:28-07:00</authored-date>
    <message>Global object treats symbols as strings.</message>
    <tree>8c146df12471663b81e826c1ca91d8ead8b3113f</tree>
    <committer>
      <name>Matthew Draper</name>
      <email>matthew@trebex.net</email>
    </committer>
  </commit>
  <commit>
    <parents type="array">
      <parent>
        <id>f11d801956b31bfe06da0193e63aba3163fe2038</id>
      </parent>
    </parents>
    <author>
      <name>Matthew Draper</name>
      <email>matthew@trebex.net</email>
    </author>
    <url>http://github.com/jbarnette/johnson/commit/1a6d87d5d64d2828778eb0b1979942ed39aaed80</url>
    <id>1a6d87d5d64d2828778eb0b1979942ed39aaed80</id>
    <committed-date>2009-09-26T23:06:20-07:00</committed-date>
    <authored-date>2009-09-26T22:05:18-07:00</authored-date>
    <message>Plug more (rather obscure/unlikely) possible root leaks.</message>
    <tree>3e26a6c45862376dcad1298685dbda88813bf02f</tree>
    <committer>
      <name>Matthew Draper</name>
      <email>matthew@trebex.net</email>
    </committer>
  </commit>
  <commit>
    <parents type="array">
      <parent>
        <id>41e8c350d63f7daa89f8903b1eeeee7c45157925</id>
      </parent>
    </parents>
    <author>
      <name>Matthew Draper</name>
      <email>matthew@trebex.net</email>
    </author>
    <url>http://github.com/jbarnette/johnson/commit/f11d801956b31bfe06da0193e63aba3163fe2038</url>
    <id>f11d801956b31bfe06da0193e63aba3163fe2038</id>
    <committed-date>2009-09-26T23:06:19-07:00</committed-date>
    <authored-date>2009-09-26T22:04:43-07:00</authored-date>
    <message>Test that breakpoints go away after the script is run once.</message>
    <tree>4485c3dba17c49d218376f6cb925579daa37abee</tree>
    <committer>
      <name>Matthew Draper</name>
      <email>matthew@trebex.net</email>
    </committer>
  </commit>
  <commit>
    <parents type="array">
      <parent>
        <id>6a687bed008a2dc0da34c36df0a69b6c0288919d</id>
      </parent>
    </parents>
    <author>
      <name>Matthew Draper</name>
      <email>matthew@trebex.net</email>
    </author>
    <url>http://github.com/jbarnette/johnson/commit/41e8c350d63f7daa89f8903b1eeeee7c45157925</url>
    <id>41e8c350d63f7daa89f8903b1eeeee7c45157925</id>
    <committed-date>2009-09-26T23:06:19-07:00</committed-date>
    <authored-date>2009-09-26T21:16:51-07:00</authored-date>
    <message>Omit #gc_zeal= if JS_SetGCZeal isn't there.</message>
    <tree>eed88ee9d242f570ed550ae9fa036377c543b86f</tree>
    <committer>
      <name>Matthew Draper</name>
      <email>matthew@trebex.net</email>
    </committer>
  </commit>
  <commit>
    <parents type="array">
      <parent>
        <id>90cb942ca6ae8c2ee6e3b8356c1f641b46dbd4ce</id>
      </parent>
    </parents>
    <author>
      <name>Matthew Draper</name>
      <email>matthew@trebex.net</email>
    </author>
    <url>http://github.com/jbarnette/johnson/commit/6a687bed008a2dc0da34c36df0a69b6c0288919d</url>
    <id>6a687bed008a2dc0da34c36df0a69b6c0288919d</id>
    <committed-date>2009-09-26T23:06:11-07:00</committed-date>
    <authored-date>2009-09-26T21:04:06-07:00</authored-date>
    <message>Breakpoint callbacks can raise exceptions.</message>
    <tree>5458a0d9851d50426890bde0a43538ac515f6fdc</tree>
    <committer>
      <name>Matthew Draper</name>
      <email>matthew@trebex.net</email>
    </committer>
  </commit>
  <commit>
    <parents type="array">
      <parent>
        <id>e19fef79dfbc3422100c28b5f9090e7483b3d388</id>
      </parent>
    </parents>
    <author>
      <name>Matthew Draper</name>
      <email>matthew@trebex.net</email>
    </author>
    <url>http://github.com/jbarnette/johnson/commit/90cb942ca6ae8c2ee6e3b8356c1f641b46dbd4ce</url>
    <id>90cb942ca6ae8c2ee6e3b8356c1f641b46dbd4ce</id>
    <committed-date>2009-09-26T10:42:03-07:00</committed-date>
    <authored-date>2009-09-26T10:42:03-07:00</authored-date>
    <message>Fix a few more root leaks in convert_to_ruby.

I suspect there are still more; I haven't done a complete read-through
with my new appreciation of everything that can cause problems.</message>
    <tree>b4c80477c032e92d474266979abedf4ac04689d8</tree>
    <committer>
      <name>Matthew Draper</name>
      <email>matthew@trebex.net</email>
    </committer>
  </commit>
  <commit>
    <parents type="array">
      <parent>
        <id>040939b93a73188e6911f164855a856bf05132ff</id>
      </parent>
    </parents>
    <author>
      <name>Matthew Draper</name>
      <email>matthew@trebex.net</email>
    </author>
    <url>http://github.com/jbarnette/johnson/commit/e19fef79dfbc3422100c28b5f9090e7483b3d388</url>
    <id>e19fef79dfbc3422100c28b5f9090e7483b3d388</id>
    <committed-date>2009-09-26T10:17:11-07:00</committed-date>
    <authored-date>2009-09-26T10:17:11-07:00</authored-date>
    <message>Check given debugger more carefully.</message>
    <tree>f14eaa4f2588376fb90100ff59e4426df9b20680</tree>
    <committer>
      <name>Matthew Draper</name>
      <email>matthew@trebex.net</email>
    </committer>
  </commit>
  <commit>
    <parents type="array">
      <parent>
        <id>375d56e29bb9b0bcf61393b4608abee380bd328b</id>
      </parent>
    </parents>
    <author>
      <name>Matthew Draper</name>
      <email>matthew@trebex.net</email>
    </author>
    <url>http://github.com/jbarnette/johnson/commit/040939b93a73188e6911f164855a856bf05132ff</url>
    <id>040939b93a73188e6911f164855a856bf05132ff</id>
    <committed-date>2009-09-26T08:42:45-07:00</committed-date>
    <authored-date>2009-09-26T08:42:45-07:00</authored-date>
    <message>Remove call_proc_by_oid -- remnant of a bygone implementation.</message>
    <tree>d0c0caebcfc92ec588dc648f40875e02c29edda5</tree>
    <committer>
      <name>Matthew Draper</name>
      <email>matthew@trebex.net</email>
    </committer>
  </commit>
  <commit>
    <parents type="array">
      <parent>
        <id>9e20c02ad9a48deec7d558ddbe2cef72764d93a8</id>
      </parent>
    </parents>
    <author>
      <name>Matthew Draper</name>
      <email>matthew@trebex.net</email>
    </author>
    <url>http://github.com/jbarnette/johnson/commit/375d56e29bb9b0bcf61393b4608abee380bd328b</url>
    <id>375d56e29bb9b0bcf61393b4608abee380bd328b</id>
    <committed-date>2009-09-25T20:27:29-07:00</committed-date>
    <authored-date>2009-09-25T20:27:29-07:00</authored-date>
    <message>Ensure iterators behave as per native JS objects/arrays.</message>
    <tree>048d1652cf7d6a54f3c920e637f1753d77ae4d93</tree>
    <committer>
      <name>Matthew Draper</name>
      <email>matthew@trebex.net</email>
    </committer>
  </commit>
  <commit>
    <parents type="array">
      <parent>
        <id>2a316a52d65ec7c9d9c49cd45ca8414e376eae30</id>
      </parent>
    </parents>
    <author>
      <name>Matthew Draper</name>
      <email>matthew@trebex.net</email>
    </author>
    <url>http://github.com/jbarnette/johnson/commit/9e20c02ad9a48deec7d558ddbe2cef72764d93a8</url>
    <id>9e20c02ad9a48deec7d558ddbe2cef72764d93a8</id>
    <committed-date>2009-09-25T20:03:01-07:00</committed-date>
    <authored-date>2009-09-25T20:03:01-07:00</authored-date>
    <message>Convert a static string each way during startup.

Seems to prevent a BOM occassionally showing up somewhere... there's
probably a better way to deal with that?</message>
    <tree>629763daf8ceea9772dad2394b07e1d58b73fa54</tree>
    <committer>
      <name>Matthew Draper</name>
      <email>matthew@trebex.net</email>
    </committer>
  </commit>
  <commit>
    <parents type="array">
      <parent>
        <id>2ad495866fdb7e98b2bbae0d6f0f7b03330c4a02</id>
      </parent>
    </parents>
    <author>
      <name>Matthew Draper</name>
      <email>matthew@trebex.net</email>
    </author>
    <url>http://github.com/jbarnette/johnson/commit/2a316a52d65ec7c9d9c49cd45ca8414e376eae30</url>
    <id>2a316a52d65ec7c9d9c49cd45ca8414e376eae30</id>
    <committed-date>2009-09-25T10:50:05-07:00</committed-date>
    <authored-date>2009-09-25T10:50:05-07:00</authored-date>
    <message>Treat JavaScript strings as UTF-16.

This isn't *quite* true, because ECMA says strings can contain unmatched
surrogates... but it should substantially improve our behaviour for more
&quot;normal&quot; situations.</message>
    <tree>95f892619e61797dbb8d6736976fea1386e534c8</tree>
    <committer>
      <name>Matthew Draper</name>
      <email>matthew@trebex.net</email>
    </committer>
  </commit>
  <commit>
    <parents type="array">
      <parent>
        <id>4694592e364ea14b11c98c570d202b3febf76cb7</id>
      </parent>
    </parents>
    <author>
      <name>Matthew Draper</name>
      <email>matthew@trebex.net</email>
    </author>
    <url>http://github.com/jbarnette/johnson/commit/2ad495866fdb7e98b2bbae0d6f0f7b03330c4a02</url>
    <id>2ad495866fdb7e98b2bbae0d6f0f7b03330c4a02</id>
    <committed-date>2009-09-25T10:48:18-07:00</committed-date>
    <authored-date>2009-09-25T10:48:18-07:00</authored-date>
    <message>Cover a number of potential root leaks.

These were mostly found by inserting a random chance for an exception
into some of the conversion functions.</message>
    <tree>0a9c7ab18b5f93ccd64fe11563d6f57ac136392d</tree>
    <committer>
      <name>Matthew Draper</name>
      <email>matthew@trebex.net</email>
    </committer>
  </commit>
  <commit>
    <parents type="array">
      <parent>
        <id>1cf59759a34afd60bafca5233f1d1a0e2edbaa33</id>
      </parent>
    </parents>
    <author>
      <name>Matthew Draper</name>
      <email>matthew@trebex.net</email>
    </author>
    <url>http://github.com/jbarnette/johnson/commit/4694592e364ea14b11c98c570d202b3febf76cb7</url>
    <id>4694592e364ea14b11c98c570d202b3febf76cb7</id>
    <committed-date>2009-09-25T09:20:16-07:00</committed-date>
    <authored-date>2009-09-25T09:20:16-07:00</authored-date>
    <message>Wrap Function.prototype.apply to accept Ruby arrays.

In the process, fix Array#length to be a JS property, too.</message>
    <tree>0990cdaccc1f9c5a82094b5d9320ae7ac3ce188d</tree>
    <committer>
      <name>Matthew Draper</name>
      <email>matthew@trebex.net</email>
    </committer>
  </commit>
  <commit>
    <parents type="array">
      <parent>
        <id>d02834bbe77181ee9994d9dea63b6c39a78f9816</id>
      </parent>
    </parents>
    <author>
      <name>Matthew Draper</name>
      <email>matthew@trebex.net</email>
    </author>
    <url>http://github.com/jbarnette/johnson/commit/1cf59759a34afd60bafca5233f1d1a0e2edbaa33</url>
    <id>1cf59759a34afd60bafca5233f1d1a0e2edbaa33</id>
    <committed-date>2009-09-20T01:35:54-07:00</committed-date>
    <authored-date>2009-09-20T01:35:54-07:00</authored-date>
    <message>Ugly(!) work-around for a root leak in call_function_property.</message>
    <tree>6265b7cd30917be22a90e217632a7f1d2f0d93e4</tree>
    <committer>
      <name>Matthew Draper</name>
      <email>matthew@trebex.net</email>
    </committer>
  </commit>
  <commit>
    <parents type="array">
      <parent>
        <id>6074fee538143309b28c16f1b7b0998dc8d1d9c5</id>
      </parent>
    </parents>
    <author>
      <name>Matthew Draper</name>
      <email>matthew@trebex.net</email>
    </author>
    <url>http://github.com/jbarnette/johnson/commit/d02834bbe77181ee9994d9dea63b6c39a78f9816</url>
    <id>d02834bbe77181ee9994d9dea63b6c39a78f9816</id>
    <committed-date>2009-09-19T20:26:20-07:00</committed-date>
    <authored-date>2009-09-19T20:26:20-07:00</authored-date>
    <message>Destroy remaining proxies with the runtime.

This is better than trying to keep the runtime alive longer than the
proxies, because that breaks down during interpreter shutdown -- as
evidenced by the complaints that were appearing as soon as we had a
failing test, and upon an Interrupt.</message>
    <tree>ab1fd7ccdd501dbbc2e1205f3041487f6d8ef1fa</tree>
    <committer>
      <name>Matthew Draper</name>
      <email>matthew@trebex.net</email>
    </committer>
  </commit>
  <commit>
    <parents type="array">
      <parent>
        <id>bfb7e4ac47b0ef5291b42b474750b2f11da5213f</id>
      </parent>
    </parents>
    <author>
      <name>Matthew Draper</name>
      <email>matthew@trebex.net</email>
    </author>
    <url>http://github.com/jbarnette/johnson/commit/6074fee538143309b28c16f1b7b0998dc8d1d9c5</url>
    <id>6074fee538143309b28c16f1b7b0998dc8d1d9c5</id>
    <committed-date>2009-09-18T23:20:54-07:00</committed-date>
    <authored-date>2009-09-18T19:30:46-07:00</authored-date>
    <message>Ref-count the runtime from RubyLandProxy.

By storing a reference to the runtime in a long-lived location while
there are live proxies, we can ensure the proxies will be collected
first. Otherwise, when the whole proxy+runtime chain becomes
unreachable, they could be collected in any order... and having the
runtime go away while we still have proxies around makes SpiderMonkey
quite upset.</message>
    <tree>094fcb840fd1e390850f14ec303120a0e7f123bb</tree>
    <committer>
      <name>Matthew Draper</name>
      <email>matthew@trebex.net</email>
    </committer>
  </commit>
  <commit>
    <parents type="array">
      <parent>
        <id>d922393873dca67f9e862a8fc1b618ce879624b2</id>
      </parent>
    </parents>
    <author>
      <name>Matthew Draper</name>
      <email>matthew@trebex.net</email>
    </author>
    <url>http://github.com/jbarnette/johnson/commit/bfb7e4ac47b0ef5291b42b474750b2f11da5213f</url>
    <id>bfb7e4ac47b0ef5291b42b474750b2f11da5213f</id>
    <committed-date>2009-09-18T23:20:53-07:00</committed-date>
    <authored-date>2009-09-18T19:29:58-07:00</authored-date>
    <message>Optionally leak memory to provide more detailed root names.</message>
    <tree>d0076c40306f07f83fc84039851659c5ad79f213</tree>
    <committer>
      <name>Matthew Draper</name>
      <email>matthew@trebex.net</email>
    </committer>
  </commit>
  <commit>
    <parents type="array">
      <parent>
        <id>74b564b0bfaa9cec24f5e494a77119cad597f182</id>
      </parent>
    </parents>
    <author>
      <name>Matthew Draper</name>
      <email>matthew@trebex.net</email>
    </author>
    <url>http://github.com/jbarnette/johnson/commit/d922393873dca67f9e862a8fc1b618ce879624b2</url>
    <id>d922393873dca67f9e862a8fc1b618ce879624b2</id>
    <committed-date>2009-09-18T23:20:53-07:00</committed-date>
    <authored-date>2009-09-18T19:28:23-07:00</authored-date>
    <message>Allow explicit JS GC request from Ruby code.</message>
    <tree>a50a1ca06228fabdcedbed17c4c2b41559ebc874</tree>
    <committer>
      <name>Matthew Draper</name>
      <email>matthew@trebex.net</email>
    </committer>
  </commit>
  <commit>
    <parents type="array">
      <parent>
        <id>f6acf53b8e6988d923681216c6d50946b2835a2f</id>
      </parent>
    </parents>
    <author>
      <name>Matthew Draper</name>
      <email>matthew@trebex.net</email>
    </author>
    <url>http://github.com/jbarnette/johnson/commit/74b564b0bfaa9cec24f5e494a77119cad597f182</url>
    <id>74b564b0bfaa9cec24f5e494a77119cad597f182</id>
    <committed-date>2009-09-18T23:20:53-07:00</committed-date>
    <authored-date>2009-09-18T19:26:01-07:00</authored-date>
    <message>Add parentheses around assignment in conditional.</message>
    <tree>022b0c5c0ab7f38e77276fdfbc96eb0c6252442d</tree>
    <committer>
      <name>Matthew Draper</name>
      <email>matthew@trebex.net</email>
    </committer>
  </commit>
</commits>
