Hi Dietrich
Thanks :)
There are two sets of changes – strict mode support (which is in the
strict-mode-support branch), and mods needed for QxCompiler. I will put them
up as pull requests once things settle down with QxCompiler, but in the mean
time both branches are based on vanilla Qoxodoo 5.0.1 (ie not including any of
my other branches) so there shouldn’t be a barrier for anyone to use my branch.
Strict mode fixes are:
(a) You cannot write to properties which do not have a getter; in various
places Qooxdoo will copy event properties back to the event object (which
AFAICT is a fix for IE8) but this raises an exception in strict mode so needs a
try/catch wrapper
(b) The global object is undefined, not “window” so if you want a global object
(like “q”) it needs the “window” qualifier
As for IE8 support – I’ve not tested it but AIUI strict mode will not cause
issues in IE8/IE9, and the changes I’ve made are backward compatible.
The QxCompiler fixes are to do with dependencies – basically, the load
dependencies of a Qooxdoo app are greatly complicated because classes can have
a defer() method, which allows code to be run before the app is fully loaded.
The way (I think/guess) that the generate.py does it is to recursively
interpret the code in .defer() and all of the methods it calls, ie it tries to
predict at compile-time what methods will be called at runtime so that it can
make sure that the load order is correct. As you can imagine this is
non-trivial, but IMHO this makes it easy for minor code changes to have a big
impact on load order and to cause unresolvable recursive dependency issues.
My solution is to not call the class .defer() method until all classes are
loaded (that’s not strictly possible because some classes .defer() must be
called, but the dependencies are a lot simpler). This solution needs a a
couple of backwards compatible mods, mostly in qx.Bootstrap, and these are in
the qxcompiler branch
There’s bit more detail here:
https://github.com/johnspackman/qxcompiler/blob/master/docs/Dependencies.md
Cheers
John
From: Dietrich Streifert <dietrich.streif...@googlemail.com>
Reply-To: qooxdoo Development <qooxdoo-devel@lists.sourceforge.net>
Date: Monday, 15 February 2016 at 08:04
To: qooxdoo Development <qooxdoo-devel@lists.sourceforge.net>
Subject: Re: [qooxdoo-devel] QxCompiler - add ES6, faster compilation, and
100% Javascript API to building applications
Hi John
Congratulations!
One question regarding this passage in the README.md:
NOTE While QxCompiler is backward compatible with generate.py and does not
require changes to your code, ES6 support requires that strict mode is enabled
and this can introduce a few minor compatibility issues; also, QxCompiler uses
a new trick for managing dependencies and for both of these reasons you must
use my fork of Qooxdoo (https://github.com/johnspackman/qooxdoo and use the
qxcompiler branch). My fork is based on Qooxdoo 5.0.1.
Could you explain which changes where necessary in qooxdoo to make it work
with your compiler? Would it maybe be possible to "document" those changes via
a pull request against qooxdoo/qooxdoo?
Another question is related to browser compatibilities: are they
changed/raised because of the ES6 and strict mode changes? Will it still run on
IE8?
Regards
Dietrich
------------------------------------------------------------------------------
Site24x7 APM Insight: Get Deep Visibility into Application Performance APM +
Mobile APM + RUM: Monitor 3 App instances at just $35/Month Monitor end-to-end
web transactions and take corrective actions now Troubleshoot faster and
improve end-user experience. Signup Now!
http://pubads.g.doubleclick.net/gampad/clk?id=272487151&iu=/4140_______________________________________________
qooxdoo-devel mailing list qooxdoo-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/qooxdoo-devel
------------------------------------------------------------------------------
Site24x7 APM Insight: Get Deep Visibility into Application Performance
APM + Mobile APM + RUM: Monitor 3 App instances at just $35/Month
Monitor end-to-end web transactions and take corrective actions now
Troubleshoot faster and improve end-user experience. Signup Now!
http://pubads.g.doubleclick.net/gampad/clk?id=272487151&iu=/4140
_______________________________________________
qooxdoo-devel mailing list
qooxdoo-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/qooxdoo-devel