You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@royale.apache.org by GitBox <gi...@apache.org> on 2020/02/01 21:21:45 UTC

[GitHub] [royale-compiler] greg-dove opened a new issue #115: Changes to static init have caused some regressions in js-release mode

greg-dove opened a new issue #115: Changes to static init have caused some regressions in js-release mode
URL: https://github.com/apache/royale-compiler/issues/115
 
 
   the change to 'accessor' implementations for static initializations has caused some issues with minified code no longer working (which did work previously).
   
   Example:
   ```
   	public class BrokenStatics
   	{
   
   		public static var myStaticObject:Object = {'value':'myStaticObjInstance'};
   
   		public static var myStaticArray:Array = new Array(20);
   
   		public static var staticQName:QName = new QName('staticQName');
   
   		public static var myStaticNamespace:Namespace = new Namespace('myStaticNamespace');
   		
   		public function BrokenStatics() {
   			COMPILE::JS{
   				//these work
   				console.log('BrokenStatics checking myStaticVar:' , myStaticObject );
   				console.log('BrokenStatics checking myStaticArray:' , myStaticArray );
   				//these don't work (they used to work)
   				console.log('BrokenStatics checking staticQName:' , staticQName );
   				console.log('BrokenStatics checking myStaticNamespace:' , myStaticNamespace );
   				//this will work:
   				console.log('BrokenStatics checking BrokenStatics[\'myStaticNamespace\']:' , BrokenStatics['myStaticNamespace'] );
   			}
   		}
   	}
   ```
   In the above class, the first two static inits do not have the accessor implementation applied in js-debug code and continue to work in release mode. The next two *do* have the accessor wrapping applied, but now the direct access to them does not work in minified code. (the value *is* available via the non-minified variable names, so BrokenStatics['myStaticNamespace'] will work for example)
   
   output of 'new BrokenStatics()' :
   ```
   BrokenStatics checking myStaticVar: {value: "myStaticObjInstance"}
   BrokenStatics checking myStaticArray: (20) [empty × 20]
   BrokenStatics checking staticQName: undefined
   BrokenStatics checking myStaticNamespace: undefined
   BrokenStatics checking BrokenStatics['myStaticNamespace']: Rp {Za: "myStaticNamespace", Eb: undefined}
   ```
   

----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
users@infra.apache.org


With regards,
Apache Git Services