Commit graph

8 commits

Author SHA1 Message Date
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)