Commit graph

11 commits

Author SHA1 Message Date
Dan Stillman
09e53d85d5 Revert "Revert "Use Q instead of Task.spawn to run processUpdatedXML()""
This reverts commit 4334260865.
2014-06-20 03:47:01 -04:00
Dan Stillman
4334260865 Revert "Use Q instead of Task.spawn to run processUpdatedXML()"
Fixes "Q.async(...)(...) is undefined" sync error

This reverts commit ad8b81f4c7 (which
tried to fix Fx32+ compatibility).
2014-06-20 03:17:03 -04:00
Dan Stillman
ad8b81f4c7 Use Q instead of Task.spawn to run processUpdatedXML()
With Task.spawn, regular expressions in Zotero.DB were causing "too much
recursion" errors on Windows with JIT enabled.

This requires a change to Q to allow async() to take a generator instead
of a generator-maker (which is the reason it was using Task.spawn to
begin with).
2014-06-18 05:03:06 -04:00
Dan Stillman
55f044f87a Disable send() method in Q promise for Mozilla Task.jsm compatibility
Task.jsm allows not only generators but also iterators to be yielded,
using ``typeof yielded == 'Function'`` as the test for an iterator, but
since the Q promise includes a send() method, yielding a Q promise
instead of a Mozilla promise results in an infinite loop. To fix this,
we disable Q's send() method, which is just an outdated synonym for
invoke() anyway.

This will have to be done every time we update Q until send() is
removed, Task.jsm is changed, or we stop using Task.jsm with Q promises.
2013-07-22 20:27:53 -04:00
Simon Kornblith
6ef9a061f3 Only use Components.utils.methodjit when supported
As Boris Zbarsky pointed out in
https://bugzilla.mozilla.org/show_bug.cgi?id=878679,
the setTimeout() hack doesn't help in Firefox 23 and later. For now we
use the useMethodjit hack when available, so that performance won't
regress for Firefox 23, and cross our fingers that
https://bugzilla.mozilla.org/show_bug.cgi?id=776798 is fixed for
Firefox 24.
2013-06-06 19:38:48 -04:00
Simon Kornblith
1cee348f51 Revert "Remove use of Components.utils.methodjit"
This reverts commit 53a4d987b6.
2013-06-06 19:31:09 -04:00
Simon Kornblith
53a4d987b6 Remove use of Components.utils.methodjit
It appears that this flag can no longer be set in new-ish Nightlies.
This patch switches code that used nsITimers with the
Components.utils.methodjit hack to use setTimeout on the hidden DOM
window instead, so that we still get the JIT. (See
https://bugzilla.mozilla.org/show_bug.cgi?id=776798)

This might also mean that callbacks from doGet etc. no longer get JITed.
At some point, we should test this with the JIT profiler.
2013-06-05 18:12:52 -04:00
Dan Stillman
1575cfa84a Update Q library 2013-02-18 02:33:12 -05:00
Dan Stillman
0b89ccadf9 Update Q library 2012-12-11 03:30:47 -05:00
Simon Kornblith
bdfbfc10b2 Use methodjit... 2012-07-30 02:37:39 -04:00
Simon Kornblith
a35461e2fc Rename q.jsm to q.js, and use a version of q that's closer to the original and allows use in script tags as well 2012-07-10 15:27:38 -04:00
Renamed from resource/q.jsm (Browse further)