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

Reply via email to