Thanks , 
I think this is the case .
Is it possible to change the closure compiler  ADVANCED_OPTIMIZATIONS to
SIMPLE_OPTIMIZATIONS? If yes how can I Do ?

Thanks again





Spiros




-----Original Message-----
From: Yishay Weiss [mailto:yishayj...@hotmail.com] 
Sent: Wednesday, June 26, 2019 4:26 PM
To: dev@royale.apache.org
Subject: RE: Js-release code not working for an object generated by
RemoteObject 

Maybe this [1] will help.



[1]
http://apache-royale-development.20373.n8.nabble.com/JSON-Objects-renaming-w
as-Re-ASDoc-Routing-Releases-td2304i20.html





________________________________
From: spiros <agg...@novusnet.gr>
Sent: Wednesday, June 26, 2019 2:19:56 PM
To: dev@royale.apache.org
Subject: Js-release code not working for an object generated by RemoteObject

Hi ,



I create this piece of code to demonstrate the problem  I discovered
recently

This is an event listener from a RemoteObject call that return an
ArrayCollection with 2 entries of type Object .





private function getComplexStructResultHandler(event:ResultEvent):void

{

       var result:ArrayCollection= event.result.data;

       display.text="BEGIN_DEBUG-->";

       for (var i:int=0 ;i<result.length; i++)

//for each (var data:Object in result)

       {

              var data:Object = result[i]

              trace(data);

              display.text = display.text + "BEGIN_ENTRY:"  + data.ID + ":"+
data.Description +":"+data.Item_Category_Code +":"+ data.Unit_Cost+
":END_ENRTY";

       }

display.text= display.text +"-->END_DEBUG";

}



The display  is a label on screen and I got this output  when I use the
js_debug version of code  :



BEGIN_DEBUG-->BEGIN_ENTRY:10000011:Windows Apache and Webapi net (JSON)
:20:11.00000000:END_ENRTYBEGIN_ENTRY:10000012:Windows Apache and Webapi net
(JSON) :20 :1200.22000000:END_ENRTY-->END_DEBUG



When I use the js_release output the output is :



BEGIN_DEBUG-->BEGIN_ENTRY:undefined:undefined:10000011:undefined:END_ENRTYBE
GIN_ENTRY:undefined:undefined:10000012:undefined:END_ENRTY-->END_DEBUG



As a result



data.ID is undefined

data.Description is undefined

data.Item_Category_Code has the data.ID field Data

data.Unit_Cost is undefined







the JavaScript code generated by compiler in debug is :

/**

* @private

* @param {mx.rpc.events.ResultEvent} event

*/

CFcommunication.prototype.CFcommunication_getComplexStructResultHandler =
function(event) {

  var /** @type {mx.collections.ArrayCollection} */ result =
event.result.data;

  this.display.text = "BEGIN_DEBUG-->";

  for (var /** @type {number} */ i = 0; i < result.length; i++) {

    var /** @type {Object} */ data = result.getProperty(i);

    org.apache.royale.utils.Language.trace(data);

    this.display.text = this.display.text + "BEGIN_ENTRY:" + data.ID + ":" +
data.Description + ":" + data.Item_Category_Code + ":" + data.Unit_Cost +
":END_ENRTY";

  }

  this.display.text = this.display.text + "-->END_DEBUG";

};



In release the code is :



prototype.gr=function(a)

{

       a=a.result.data;

       this.display.text='BEGIN_DEBUG--\x3e';

       for(var b=0;b<a.length;b++)

       {

              var c=a.pc(b);


this.display.text=this.display.text+'BEGIN_ENTRY:'+c.HD+':'+c.GD+':'+c.ID+':
'+c.JD+':END_ENRTY'

              }this.display.text+='--\x3eEND_DEBUG'

       };







When change this  line of code :

display.text = display.text + "BEGIN_ENTRY:"  + data.ID + ":"+
data.Description +":"+data.Item_Category_Code +":"+ data.Unit_Cost+
":END_ENRTY";

With this one

display.text = display.text + "BEGIN_ENTRY:"  + data["ID"] + ":"+
data["Description"] +":"+data["Item_Category_Code"] +":"+ data["Unit_Cost"]+
":END_ENRTY";



I get the correct results

And the generated code in js-release folder for this function is



prototype.gr=function(a)

{

       a=a.result.data;

       this.display.text='BEGIN_DEBUG--\x3e';

       for(var b=0;b<a.length;b++)

       {

              var c=a.pc(b);


this.display.text=this.display.text+'BEGIN_ENTRY:'+c.ID+':'+c.Description+':
'+c.Item_Category_Code+':'+c.Unit_Cost+':END_ENRTY'

       }

       this.display.text+='--\x3eEND_DEBUG'

}









Best regards





Spiros




Reply via email to