<?xml version="1.0" encoding="UTF-8"?>
<commits type="array">
  <commit>
    <parents type="array">
      <parent>
        <id>ca5014cb5bacc1a6618f17935e02990b02fddaa0</id>
      </parent>
    </parents>
    <author>
      <name>Paul J. Davis</name>
      <email>paul.joseph.davis@gmail.com</email>
    </author>
    <url>http://github.com/davisp/python-spidermonkey/commit/a2084f24770595cc3a2db751327fcf416b28eaaf</url>
    <id>a2084f24770595cc3a2db751327fcf416b28eaaf</id>
    <committed-date>2009-07-18T10:51:13-07:00</committed-date>
    <authored-date>2009-07-18T10:51:13-07:00</authored-date>
    <message>Removed cruft in the source directory.

Fixed MANIFEST.in with a pointer from Roberto.</message>
    <tree>87ceb371125e91055f7bb15fe7eacb86a6557257</tree>
    <committer>
      <name>Paul J. Davis</name>
      <email>paul.joseph.davis@gmail.com</email>
    </committer>
  </commit>
  <commit>
    <parents type="array">
      <parent>
        <id>f71efa14fb02f7cb5e283c3393536d6a12c9a9c7</id>
      </parent>
    </parents>
    <author>
      <name>Paul J. Davis</name>
      <email>paul.joseph.davis@gmail.com</email>
    </author>
    <url>http://github.com/davisp/python-spidermonkey/commit/ca5014cb5bacc1a6618f17935e02990b02fddaa0</url>
    <id>ca5014cb5bacc1a6618f17935e02990b02fddaa0</id>
    <committed-date>2009-07-07T12:23:50-07:00</committed-date>
    <authored-date>2009-07-07T12:23:50-07:00</authored-date>
    <message>Updated Gento package names. Thanks Scott T Silliman</message>
    <tree>4e78abba4fc17326fd7adb05470b2665b0d26fdb</tree>
    <committer>
      <name>Paul J. Davis</name>
      <email>paul.joseph.davis@gmail.com</email>
    </committer>
  </commit>
  <commit>
    <parents type="array">
      <parent>
        <id>6d5e357f9cd4ae3cfaaf25aafbf6c121cf519ac2</id>
      </parent>
    </parents>
    <author>
      <name>Paul J. Davis</name>
      <email>paul.joseph.davis@gmail.com</email>
    </author>
    <url>http://github.com/davisp/python-spidermonkey/commit/f71efa14fb02f7cb5e283c3393536d6a12c9a9c7</url>
    <id>f71efa14fb02f7cb5e283c3393536d6a12c9a9c7</id>
    <committed-date>2009-06-28T16:25:45-07:00</committed-date>
    <authored-date>2009-06-28T16:25:45-07:00</authored-date>
    <message>Pushing fix for [#21] to PyPI</message>
    <tree>3f631150a3b5a022924b47d8cef8a069f709a2ce</tree>
    <committer>
      <name>Paul J. Davis</name>
      <email>paul.joseph.davis@gmail.com</email>
    </committer>
  </commit>
  <commit>
    <parents type="array">
      <parent>
        <id>38872a8e736002095794a745e013dee66be25bd4</id>
      </parent>
    </parents>
    <author>
      <name>Paul J. Davis</name>
      <email>paul.joseph.davis@gmail.com</email>
    </author>
    <url>http://github.com/davisp/python-spidermonkey/commit/6d5e357f9cd4ae3cfaaf25aafbf6c121cf519ac2</url>
    <id>6d5e357f9cd4ae3cfaaf25aafbf6c121cf519ac2</id>
    <committed-date>2009-06-26T16:45:51-07:00</committed-date>
    <authored-date>2009-06-26T16:45:51-07:00</authored-date>
    <message>Fix segfaults when large numbers of contexts.

Turns out that I had an error in my logic about how to reference count
the python context object. I removed references to it from Python
objects that are wrapped in the JavaScript VM. I'm more than 50% certain that
this is correct as when the Python context dies, it'll destroy the
JSContext* and along with it all references to Python objects that need
refernces to the Context.

[#21 state:resolved]</message>
    <tree>f70696ccfc31719d988d2f65425db9725bb2401f</tree>
    <committer>
      <name>Paul J. Davis</name>
      <email>paul.joseph.davis@gmail.com</email>
    </committer>
  </commit>
  <commit>
    <parents type="array">
      <parent>
        <id>e8e69e9f5644907885c0b4bf4b0d5217e10443cd</id>
      </parent>
    </parents>
    <author>
      <name>Paul J. Davis</name>
      <email>paul.joseph.davis@gmail.com</email>
    </author>
    <url>http://github.com/davisp/python-spidermonkey/commit/38872a8e736002095794a745e013dee66be25bd4</url>
    <id>38872a8e736002095794a745e013dee66be25bd4</id>
    <committed-date>2009-06-14T16:39:40-07:00</committed-date>
    <authored-date>2009-06-14T16:39:40-07:00</authored-date>
    <message>Bumping the version before pushing to PyPi.</message>
    <tree>ce7701c802ff5e9f53e582ea4bfe5c45ca561d95</tree>
    <committer>
      <name>Paul J. Davis</name>
      <email>paul.joseph.davis@gmail.com</email>
    </committer>
  </commit>
  <commit>
    <parents type="array">
      <parent>
        <id>44e4423affa4b8eb9e2dcf04bcf1a1d3a0ef008e</id>
      </parent>
    </parents>
    <author>
      <name>Paul J. Davis</name>
      <email>paul.joseph.davis@gmail.com</email>
    </author>
    <url>http://github.com/davisp/python-spidermonkey/commit/e8e69e9f5644907885c0b4bf4b0d5217e10443cd</url>
    <id>e8e69e9f5644907885c0b4bf4b0d5217e10443cd</id>
    <committed-date>2009-06-14T16:36:52-07:00</committed-date>
    <authored-date>2009-06-14T16:36:52-07:00</authored-date>
    <message>Filter Python access with a function.

JavaScript requests for data from the Python VM can now be filtered by
specifying an access callback function on the Context instance. See the
README or test-access.py tests for API usage.

Thanks to Richard Boulton for the initial patch.</message>
    <tree>e46a1991c4f89ff9784afef578e115567d2267cf</tree>
    <committer>
      <name>Paul J. Davis</name>
      <email>paul.joseph.davis@gmail.com</email>
    </committer>
  </commit>
  <commit>
    <parents type="array">
      <parent>
        <id>69ea0b3ae9a5ed6635630f31d74465448c2d7f82</id>
      </parent>
    </parents>
    <author>
      <name>Paul J. Davis</name>
      <email>davisp@cube.hsd1.ma.comcast.net</email>
    </author>
    <url>http://github.com/davisp/python-spidermonkey/commit/44e4423affa4b8eb9e2dcf04bcf1a1d3a0ef008e</url>
    <id>44e4423affa4b8eb9e2dcf04bcf1a1d3a0ef008e</id>
    <committed-date>2009-06-03T21:37:38-07:00</committed-date>
    <authored-date>2009-05-28T17:04:35-07:00</authored-date>
    <message>Make the lighthouseapp.com link more prominent in the README.</message>
    <tree>d49a59ad3093e343beccc26e9238cfc304f0e00b</tree>
    <committer>
      <name>Paul J. Davis</name>
      <email>paul.joseph.davis@gmail.com</email>
    </committer>
  </commit>
  <commit>
    <parents type="array">
      <parent>
        <id>9e3989fd47239ac8599a03a678f029ae800113fa</id>
      </parent>
    </parents>
    <author>
      <name>Paul Davis</name>
      <email>davisp@davis-2318.neb.com</email>
    </author>
    <url>http://github.com/davisp/python-spidermonkey/commit/69ea0b3ae9a5ed6635630f31d74465448c2d7f82</url>
    <id>69ea0b3ae9a5ed6635630f31d74465448c2d7f82</id>
    <committed-date>2009-05-26T07:41:55-07:00</committed-date>
    <authored-date>2009-05-26T07:40:12-07:00</authored-date>
    <message>Fixes broken memory limit test.

Keiji Costantini reported the test as failing on Gentoo on amd64. I imagine the
64 bit might've had something to do with memory requirements for start up as it
seems just enough to get a working context on my 32 bit machine. I upped the
limit and memory usage of the test. Thanks Keiji.</message>
    <tree>24f1f5e6affae0fb8d262ccf462310b7b0c0c5ea</tree>
    <committer>
      <name>Paul Davis</name>
      <email>davisp@davis-2318.neb.com</email>
    </committer>
  </commit>
  <commit>
    <parents type="array">
      <parent>
        <id>888e8cbfd959f18273ac69c9910a952bd883ea04</id>
      </parent>
    </parents>
    <author>
      <name>Paul J. Davis</name>
      <email>davisp@cube.hsd1.ma.comcast.net</email>
    </author>
    <url>http://github.com/davisp/python-spidermonkey/commit/9e3989fd47239ac8599a03a678f029ae800113fa</url>
    <id>9e3989fd47239ac8599a03a678f029ae800113fa</id>
    <committed-date>2009-05-25T12:59:53-07:00</committed-date>
    <authored-date>2009-05-25T12:59:53-07:00</authored-date>
    <message>Remove spurious debugging statements.</message>
    <tree>ade6db98f5f069341547f1476ade511a61125dbf</tree>
    <committer>
      <name>Paul J. Davis</name>
      <email>davisp@cube.hsd1.ma.comcast.net</email>
    </committer>
  </commit>
  <commit>
    <parents type="array">
      <parent>
        <id>e75f991342e41d62647aa5f557eaff784598ff4b</id>
      </parent>
    </parents>
    <author>
      <name>Paul J. Davis</name>
      <email>davisp@cube.hsd1.ma.comcast.net</email>
    </author>
    <url>http://github.com/davisp/python-spidermonkey/commit/888e8cbfd959f18273ac69c9910a952bd883ea04</url>
    <id>888e8cbfd959f18273ac69c9910a952bd883ea04</id>
    <committed-date>2009-05-25T12:10:08-07:00</committed-date>
    <authored-date>2009-05-25T12:10:08-07:00</authored-date>
    <message>[#17] Fix context properties when value is `null`.

Thanks to Spahl for the report, patch, and test, and general awesomeness
at being so thorough.

[#17 state:resolved]</message>
    <tree>2ff34368776b76e69fde91a73400030fc4a6a90d</tree>
    <committer>
      <name>Paul J. Davis</name>
      <email>davisp@cube.hsd1.ma.comcast.net</email>
    </committer>
  </commit>
  <commit>
    <parents type="array">
      <parent>
        <id>ee6cfb8b67d11abb1f9f37dbd64ba3b64a032057</id>
      </parent>
    </parents>
    <author>
      <name>Paul Davis</name>
      <email>davisp@davis-2318.local</email>
    </author>
    <url>http://github.com/davisp/python-spidermonkey/commit/e75f991342e41d62647aa5f557eaff784598ff4b</url>
    <id>e75f991342e41d62647aa5f557eaff784598ff4b</id>
    <committed-date>2009-05-18T16:30:03-07:00</committed-date>
    <authored-date>2009-05-18T16:30:03-07:00</authored-date>
    <message>Fix integer property lookups.

    &gt;&gt;&gt; rt = spidermonkey.Runtime()
    &gt;&gt;&gt; cx = rt.new_context()
    &gt;&gt;&gt; cx.add_global(&quot;bang&quot;, [2, &quot;got me!&quot;])
    &gt;&gt;&gt; assert cx.execute(&quot;bang[1];&quot;) == &quot;got me!&quot;

Thanks to spahl for the report and fix.

[#16 state:resolved]</message>
    <tree>c45712b75fa86c591b6ce65ac6bda4bb6f6da88f</tree>
    <committer>
      <name>Paul Davis</name>
      <email>davisp@davis-2318.local</email>
    </committer>
  </commit>
  <commit>
    <parents type="array">
      <parent>
        <id>1e5357f37c44f435f7aa4137aef45d976562b0bb</id>
      </parent>
    </parents>
    <author>
      <name>Paul Davis</name>
      <email>davisp@davis-2318.hsd1.ma.comcast.net</email>
    </author>
    <url>http://github.com/davisp/python-spidermonkey/commit/ee6cfb8b67d11abb1f9f37dbd64ba3b64a032057</url>
    <id>ee6cfb8b67d11abb1f9f37dbd64ba3b64a032057</id>
    <committed-date>2009-05-17T13:59:44-07:00</committed-date>
    <authored-date>2009-05-17T13:59:44-07:00</authored-date>
    <message>Fixes global handling of &quot;function foo() {}&quot;

JavaScript acts a bit odd in this case in that the body of 'foo' is passed to
JS_Class.add_property but not JS_Class.set_property. For now I added an add_prop
method that special cases when the passed in value is a function and delegates
to set_prop.

While I was at it, I went ahead and added support for deleting global properties
as well. If your global handler has __delitem__ defined, it will now get called
for the JavaScript statement &quot;delete foo;&quot;

Thanks to Riccardo Pelizzi for the bug report.</message>
    <tree>5a508910cfe51b8279b95e8195bc73caa6940635</tree>
    <committer>
      <name>Paul Davis</name>
      <email>davisp@davis-2318.hsd1.ma.comcast.net</email>
    </committer>
  </commit>
  <commit>
    <parents type="array">
      <parent>
        <id>4134ea66e00b6c6b1d80266ef61073d836a81477</id>
      </parent>
    </parents>
    <author>
      <name>Paul Davis</name>
      <email>davisp@davis-2318.hsd1.ma.comcast.net</email>
    </author>
    <url>http://github.com/davisp/python-spidermonkey/commit/1e5357f37c44f435f7aa4137aef45d976562b0bb</url>
    <id>1e5357f37c44f435f7aa4137aef45d976562b0bb</id>
    <committed-date>2009-05-16T14:05:46-07:00</committed-date>
    <authored-date>2009-05-16T14:05:46-07:00</authored-date>
    <message>Updated the README for pkg-config dependancy.

Thanks to Mike West

[#5]</message>
    <tree>d9da750c2e24a6d2cca7861f2417ec1a9f065a7c</tree>
    <committer>
      <name>Paul Davis</name>
      <email>davisp@davis-2318.hsd1.ma.comcast.net</email>
    </committer>
  </commit>
  <commit>
    <parents type="array">
      <parent>
        <id>1fe8f0849dd97bf49016206b9ebe5b6b326cdd86</id>
      </parent>
    </parents>
    <author>
      <name>Paul Davis</name>
      <email>davisp@davis-2318.hsd1.ma.comcast.net</email>
    </author>
    <url>http://github.com/davisp/python-spidermonkey/commit/4134ea66e00b6c6b1d80266ef61073d836a81477</url>
    <id>4134ea66e00b6c6b1d80266ef61073d836a81477</id>
    <committed-date>2009-05-16T13:55:49-07:00</committed-date>
    <authored-date>2009-05-16T13:55:49-07:00</authored-date>
    <message>Fix for time limit constraints.

The root bug I think has to do with conversions between integral types. I
changed the Context.max_time method to be a bit less clever which will hopefully
fix things. I also updated the test_exceeds_time to fail more gracefully as per
suggestion.

Thanks to Mike West

[#15 state:open]</message>
    <tree>7f54d1eed3fd0b1e401081e8a8e0551087ae3cc9</tree>
    <committer>
      <name>Paul Davis</name>
      <email>davisp@davis-2318.hsd1.ma.comcast.net</email>
    </committer>
  </commit>
  <commit>
    <parents type="array">
      <parent>
        <id>c29ad86edfb992056dbc4b9f1c10f909149abe04</id>
      </parent>
    </parents>
    <author>
      <name>Paul Davis</name>
      <email>davisp@davis-2318.neb.com</email>
    </author>
    <url>http://github.com/davisp/python-spidermonkey/commit/1fe8f0849dd97bf49016206b9ebe5b6b326cdd86</url>
    <id>1fe8f0849dd97bf49016206b9ebe5b6b326cdd86</id>
    <committed-date>2009-05-14T08:49:39-07:00</committed-date>
    <authored-date>2009-05-14T08:49:39-07:00</authored-date>
    <message>Test for invalid octal.

I added a test that catches the JSError generated by invalid octal. Ricardo, can
you confirm whether this test passes or fails? You can run the tests like such:

    $ python setup.py test

[#12 state:open]</message>
    <tree>e71976cb4d1b9c4e74e79d9c5ee4b930d6e58329</tree>
    <committer>
      <name>Paul Davis</name>
      <email>davisp@davis-2318.neb.com</email>
    </committer>
  </commit>
  <commit>
    <parents type="array">
      <parent>
        <id>584ba6f0e3e7078d4a0eeed0c4094a31703a643a</id>
      </parent>
    </parents>
    <author>
      <name>Paul Davis</name>
      <email>davisp@davis-2318.local</email>
    </author>
    <url>http://github.com/davisp/python-spidermonkey/commit/c29ad86edfb992056dbc4b9f1c10f909149abe04</url>
    <id>c29ad86edfb992056dbc4b9f1c10f909149abe04</id>
    <committed-date>2009-05-11T18:21:16-07:00</committed-date>
    <authored-date>2009-05-11T18:21:01-07:00</authored-date>
    <message>Updated the README. Thanks Mark Lee.

[#12]</message>
    <tree>e1ee424df6be9ff7435d7de1702973e7c9a3019d</tree>
    <committer>
      <name>Paul Davis</name>
      <email>davisp@davis-2318.local</email>
    </committer>
  </commit>
  <commit>
    <parents type="array">
      <parent>
        <id>a245d0a5fa5fc550f959aa56ce402e1c5a6c3034</id>
      </parent>
    </parents>
    <author>
      <name>Paul Davis</name>
      <email>davisp@davis-2318.local</email>
    </author>
    <url>http://github.com/davisp/python-spidermonkey/commit/584ba6f0e3e7078d4a0eeed0c4094a31703a643a</url>
    <id>584ba6f0e3e7078d4a0eeed0c4094a31703a643a</id>
    <committed-date>2009-05-11T18:10:26-07:00</committed-date>
    <authored-date>2009-05-11T18:10:26-07:00</authored-date>
    <message>Updates to the build system.

Linking against the library works, but importing spidermonkey kills the Python
VM because of an unresolved symbol. Can't figure out if this is just OS X's
build of libmozjs or if I'm missing a flag.

[#12]</message>
    <tree>4b1dee59336a59512d3f997b5a53b6a6245b4041</tree>
    <committer>
      <name>Paul Davis</name>
      <email>davisp@davis-2318.local</email>
    </committer>
  </commit>
  <commit>
    <parents type="array">
      <parent>
        <id>10282bf67f59c40b3bf2e4413f758485bfec2e50</id>
      </parent>
    </parents>
    <author>
      <name>Paul Davis</name>
      <email>davisp@davis-2318.neb.com</email>
    </author>
    <url>http://github.com/davisp/python-spidermonkey/commit/a245d0a5fa5fc550f959aa56ce402e1c5a6c3034</url>
    <id>a245d0a5fa5fc550f959aa56ce402e1c5a6c3034</id>
    <committed-date>2009-05-11T08:06:23-07:00</committed-date>
    <authored-date>2009-05-11T08:06:23-07:00</authored-date>
    <message>Minor fixes.

Forgot to comment out a hack for OS X.
Missed a pointer cast to avoid compiler warnings.
Thanks to spahl for both.</message>
    <tree>914e5defe4798790ed0ba398f96150c57a6143c1</tree>
    <committer>
      <name>Paul Davis</name>
      <email>davisp@davis-2318.neb.com</email>
    </committer>
  </commit>
  <commit>
    <parents type="array">
      <parent>
        <id>28d3cd5ec06a60b8a4824eaa46ac13e41d7108a4</id>
      </parent>
    </parents>
    <author>
      <name>Paul Davis</name>
      <email>davisp@davis-2318.local</email>
    </author>
    <url>http://github.com/davisp/python-spidermonkey/commit/10282bf67f59c40b3bf2e4413f758485bfec2e50</url>
    <id>10282bf67f59c40b3bf2e4413f758485bfec2e50</id>
    <committed-date>2009-05-10T22:14:21-07:00</committed-date>
    <authored-date>2009-05-10T22:14:21-07:00</authored-date>
    <message>Version number bump.</message>
    <tree>160c7694d7e556b51c55d994901ac4c60d67c3fc</tree>
    <committer>
      <name>Paul Davis</name>
      <email>davisp@davis-2318.local</email>
    </committer>
  </commit>
  <commit>
    <parents type="array">
      <parent>
        <id>e203f17e196b811162a66a6446180513c0691ea5</id>
      </parent>
    </parents>
    <author>
      <name>Paul Davis</name>
      <email>davisp@davis-2318.local</email>
    </author>
    <url>http://github.com/davisp/python-spidermonkey/commit/28d3cd5ec06a60b8a4824eaa46ac13e41d7108a4</url>
    <id>28d3cd5ec06a60b8a4824eaa46ac13e41d7108a4</id>
    <committed-date>2009-05-10T22:08:12-07:00</committed-date>
    <authored-date>2009-05-10T22:08:12-07:00</authored-date>
    <message>Change exception types for resource exhaustion.

Out of memory is now signaled by a MemoryError
Too much CPU time is reported as a SystemError

I'm going to punt on the issue with specifying memory usage limits on contexts
when it really refernces the runtime. I don't see a good way to implement it
without quite a bit of work. It'll never be specifiable per context, only the
api might change to avoid confusion.

[#12 state:resolved]</message>
    <tree>6484938c00684c689a57fd69be6da1d21a322ffa</tree>
    <committer>
      <name>Paul Davis</name>
      <email>davisp@davis-2318.local</email>
    </committer>
  </commit>
  <commit>
    <parents type="array">
      <parent>
        <id>4d971051b2f223e6a68154a57f61a7024dad598b</id>
      </parent>
    </parents>
    <author>
      <name>Paul Davis</name>
      <email>davisp@davis-2318.local</email>
    </author>
    <url>http://github.com/davisp/python-spidermonkey/commit/e203f17e196b811162a66a6446180513c0691ea5</url>
    <id>e203f17e196b811162a66a6446180513c0691ea5</id>
    <committed-date>2009-05-10T21:52:18-07:00</committed-date>
    <authored-date>2009-05-10T21:52:18-07:00</authored-date>
    <message>API for limiting resource usage.

You can now enforce crude resource usage limits for scripts executing in the JS
VM. Its not overly granular and has some caveats, but it appears to work.

To limit the time a script can run:

    &gt;&gt;&gt; rt = spidermonkey.Runtime()
    &gt;&gt;&gt; cx = rt.new_context()
    &gt;&gt;&gt; cx.max_time(5) # Specified in seconds, returns the previous value.
    0
    &gt;&gt;&gt; cx.execute(&quot;while(true) {}&quot;)
    ...
    RuntimeError

To limit the amount of memory is similar:

    &gt;&gt;&gt; rt = spidermonkey.Runtime()
    &gt;&gt;&gt; cx = rt.new_context()
    &gt;&gt;&gt; cx.max_memory(10000) # Specified in bytes, returns the previous value.
    0
    &gt;&gt;&gt; cx.execute(&quot;var f = []; var b = 100000; while(b-- &gt; 0) f.push(b*0.9)&quot;)
    ...
    RuntimeError

At the moment this looks like its limiting resources per context when in reality
its per runtime. So if you limit to usage on a context, and some other script in
the context is running above that limit, the limited context will fail.

You can also get the current values without setting:

    &gt;&gt;&gt; cx.max_time(10)
    ...
    &gt;&gt;&gt; cx.max_time()
    10
    &gt;&gt;&gt; cx.max_memory(10000)
    ...
    &gt;&gt;&gt; cx.max_memory()
    10000

Some minor tweaks to make the memory limit specified on the Runtime and to
improve the reported errors to follow shortly.

[#12]</message>
    <tree>456470a91735853b4be7fcd4279a6ed411f834fe</tree>
    <committer>
      <name>Paul Davis</name>
      <email>davisp@davis-2318.local</email>
    </committer>
  </commit>
  <commit>
    <parents type="array">
      <parent>
        <id>786f808e62fd0a891ece4d60bff5626e2e1364cf</id>
      </parent>
    </parents>
    <author>
      <name>Paul Davis</name>
      <email>davisp@davis-2318.local</email>
    </author>
    <url>http://github.com/davisp/python-spidermonkey/commit/4d971051b2f223e6a68154a57f61a7024dad598b</url>
    <id>4d971051b2f223e6a68154a57f61a7024dad598b</id>
    <committed-date>2009-05-10T14:25:40-07:00</committed-date>
    <authored-date>2009-05-10T14:25:40-07:00</authored-date>
    <message>Support for global property handlers.

If you want to be able to global properties using some sort of active logic you
can now pass an object that has __getitem__ and __setitem__ defined to
Runtime.new_context(). Something like:

    &gt;&gt;&gt; rt = spidermonkey.Runtime()
    &gt;&gt;&gt; cx = rt.new_context({&quot;foo&quot;: &quot;bar&quot;})
    &gt;&gt;&gt; cx.execute(&quot;foo;&quot;)
    'bar'

[#9 state:resolved]</message>
    <tree>004a049e1b779c591d96cde76cd3e9e3b40dcf5e</tree>
    <committer>
      <name>Paul Davis</name>
      <email>davisp@davis-2318.local</email>
    </committer>
  </commit>
  <commit>
    <parents type="array">
      <parent>
        <id>d3f9770b7b0894e68834c5071714811810e7e01e</id>
      </parent>
    </parents>
    <author>
      <name>Paul Davis</name>
      <email>davisp@davis-2318.local</email>
    </author>
    <url>http://github.com/davisp/python-spidermonkey/commit/786f808e62fd0a891ece4d60bff5626e2e1364cf</url>
    <id>786f808e62fd0a891ece4d60bff5626e2e1364cf</id>
    <committed-date>2009-05-09T21:49:34-07:00</committed-date>
    <authored-date>2009-05-09T21:49:34-07:00</authored-date>
    <message>Add JS_[Begin|End]Request semantics.

This should wrap entries into the JS VM in JS_BeginRequest/JS_EndRequest calls.
I've added a setup.py debug flag to build spidermonkey in debug mode so that
calls into the VM requiring a request fail on an assert. To build in debug mode
you can do:

    python setup.py --debug $(ACTION)

I basically went through and added the calls where I thought they should go and
then turned on the debug build to get the ones I missed. Its quite possible I
still have some edge cases missing their required calls.

[#2 state:resolved]</message>
    <tree>397ffe5b9e2858d9ac2bb42d77d226b7f018d2ef</tree>
    <committer>
      <name>Paul Davis</name>
      <email>davisp@davis-2318.local</email>
    </committer>
  </commit>
  <commit>
    <parents type="array">
      <parent>
        <id>fd5307a25d574ec655e41929a8a4a1be860068ca</id>
      </parent>
    </parents>
    <author>
      <name>Paul Davis</name>
      <email>davisp@davis-2318.local</email>
    </author>
    <url>http://github.com/davisp/python-spidermonkey/commit/d3f9770b7b0894e68834c5071714811810e7e01e</url>
    <id>d3f9770b7b0894e68834c5071714811810e7e01e</id>
    <committed-date>2009-05-09T20:01:55-07:00</committed-date>
    <authored-date>2009-05-09T20:01:55-07:00</authored-date>
    <message>Removing cruft debugging statements.</message>
    <tree>e8e51a20be8fce0767d0a00a0258cb893c7a39a6</tree>
    <committer>
      <name>Paul Davis</name>
      <email>davisp@davis-2318.local</email>
    </committer>
  </commit>
  <commit>
    <parents type="array">
      <parent>
        <id>9eafe1941d7009b9c29e02d3057795677079a32a</id>
      </parent>
    </parents>
    <author>
      <name>Paul Davis</name>
      <email>davisp@davis-2318.local</email>
    </author>
    <url>http://github.com/davisp/python-spidermonkey/commit/fd5307a25d574ec655e41929a8a4a1be860068ca</url>
    <id>fd5307a25d574ec655e41929a8a4a1be860068ca</id>
    <committed-date>2009-05-09T19:33:01-07:00</committed-date>
    <authored-date>2009-05-09T19:33:01-07:00</authored-date>
    <message>'for each' iteration support in JavaScript.

Added the 'for each(var v in obj)' semantics to iteration.

[#1 state:resolved]</message>
    <tree>019adfb1154a52d5e517796a8cf5b225349a4c9e</tree>
    <committer>
      <name>Paul Davis</name>
      <email>davisp@davis-2318.local</email>
    </committer>
  </commit>
  <commit>
    <parents type="array">
      <parent>
        <id>74291c88fd3474b17901863697ec6af10b8a879c</id>
      </parent>
    </parents>
    <author>
      <name>Paul Davis</name>
      <email>davisp@davis-2318.local</email>
    </author>
    <url>http://github.com/davisp/python-spidermonkey/commit/9eafe1941d7009b9c29e02d3057795677079a32a</url>
    <id>9eafe1941d7009b9c29e02d3057795677079a32a</id>
    <committed-date>2009-05-09T18:52:05-07:00</committed-date>
    <authored-date>2009-05-09T18:51:42-07:00</authored-date>
    <message>Update for building on FreeBSD

Thanks sk89q for the patch.

[#13 state:resolved]</message>
    <tree>dd67d37f184fdedd40ec65d0215e6416adf08cd7</tree>
    <committer>
      <name>Paul Davis</name>
      <email>davisp@davis-2318.local</email>
    </committer>
  </commit>
  <commit>
    <parents type="array">
      <parent>
        <id>0d2d6d1435f0a5f1f1faf03be70f78eb32359d00</id>
      </parent>
      <parent>
        <id>ddb81d443f4ec0fcf773ee46a6072d1321cba06f</id>
      </parent>
    </parents>
    <author>
      <name>Paul Davis</name>
      <email>davisp@davis-2318.local</email>
    </author>
    <url>http://github.com/davisp/python-spidermonkey/commit/74291c88fd3474b17901863697ec6af10b8a879c</url>
    <id>74291c88fd3474b17901863697ec6af10b8a879c</id>
    <committed-date>2009-05-09T18:48:37-07:00</committed-date>
    <authored-date>2009-05-09T18:48:37-07:00</authored-date>
    <message>Merge branch 'jsiters'

Conflicts:
	tests/test-iterate.py</message>
    <tree>4bf6c89e3c425bb796a77b423fca7ba2e1bae356</tree>
    <committer>
      <name>Paul Davis</name>
      <email>davisp@davis-2318.local</email>
    </committer>
  </commit>
  <commit>
    <parents type="array">
      <parent>
        <id>1df3a57b40072cc23e07ecb0c98630e37fa85b13</id>
      </parent>
    </parents>
    <author>
      <name>Paul Davis</name>
      <email>davisp@davis-2318.local</email>
    </author>
    <url>http://github.com/davisp/python-spidermonkey/commit/ddb81d443f4ec0fcf773ee46a6072d1321cba06f</url>
    <id>ddb81d443f4ec0fcf773ee46a6072d1321cba06f</id>
    <committed-date>2009-05-09T18:47:39-07:00</committed-date>
    <authored-date>2009-05-09T18:16:41-07:00</authored-date>
    <message>Iteration over JavaSript objects in Python.

You can now do the 'for val in obj' syntax when obj is a wrapped JavaScript
object.

Thanks Mark Lee for the patch showing how to do this for arrays.

[#10 state:resolved]</message>
    <tree>4bf6c89e3c425bb796a77b423fca7ba2e1bae356</tree>
    <committer>
      <name>Paul Davis</name>
      <email>davisp@davis-2318.local</email>
    </committer>
  </commit>
  <commit>
    <parents type="array">
      <parent>
        <id>2afa3de459b122f6ae7927f4e8bf14deafae6dfb</id>
      </parent>
    </parents>
    <author>
      <name>Paul Davis</name>
      <email>davisp@puny.(none)</email>
    </author>
    <url>http://github.com/davisp/python-spidermonkey/commit/1df3a57b40072cc23e07ecb0c98630e37fa85b13</url>
    <id>1df3a57b40072cc23e07ecb0c98630e37fa85b13</id>
    <committed-date>2009-05-09T18:19:17-07:00</committed-date>
    <authored-date>2009-05-09T09:44:45-07:00</authored-date>
    <message>Initial JS iteration of Python objects.

This passes the basic tests. I need to add a check to detect if we're doing 'for
v in obj' vs 'for each (v in obj)' iteration as they behave differently in
JavaScript.</message>
    <tree>6633b5761584f3b716b75a3b6e1994ac9e2256d2</tree>
    <committer>
      <name>Paul Davis</name>
      <email>davisp@davis-2318.local</email>
    </committer>
  </commit>
  <commit>
    <parents type="array">
      <parent>
        <id>e0855919c9fecced176f5c93ea679bc02802df8a</id>
      </parent>
    </parents>
    <author>
      <name>Paul Davis</name>
      <email>davisp@davis-2318.l3u.neb.com</email>
    </author>
    <url>http://github.com/davisp/python-spidermonkey/commit/2afa3de459b122f6ae7927f4e8bf14deafae6dfb</url>
    <id>2afa3de459b122f6ae7927f4e8bf14deafae6dfb</id>
    <committed-date>2009-05-09T18:19:16-07:00</committed-date>
    <authored-date>2009-04-05T13:38:34-07:00</authored-date>
    <message>Should fix #7.

There doesn't appear to be a test_requires setup option so I just added
nosetests to the setup_requires list.

[#7 state:resolved]</message>
    <tree>8fca6b70c7367b5a93595f453c1ba7ec15a7689d</tree>
    <committer>
      <name>Paul Davis</name>
      <email>davisp@davis-2318.local</email>
    </committer>
  </commit>
</commits>
