> JSON Objects are not destroyed.

Yeah. I know, but untyped js literals are pretty much useless in minified 
Royale apps.

> Propose a way to determine that a data structure
> is external and what the compiler should generate and implement it.  IMO,
> the answer is to create ValueObjects.  That is essentially typedefs and
> AFAIK, there is no way to automate typedef generation.

I already made a suggestion once:

For untyped Objects, the compiler could convert dot notation to bracket 
notation.

The other half of that would be to convert all object literals to “quoted” 
literals automatically.

So if I have a function:

function parseMyJson(json:String):Object{
        return JSON.parse(json);
}

var myProps:Object = parseMyJson(json);

var name:string = myProps.name;

Would become:

function parseMyJson(json){
        return JSON.parse(json);
}

var myProps = parseMyJson(json);

var name = myProps["name"];

And this:
var myObj:Object = {
        name: "foo",
        age : 30
}

Would become:
var myObj = {
        "name": "foo",
        "age" : 30
}

These two features would have solved almost all minification issues I’ve run 
into.

I’d love to work on this myself, but I’m still not up to making any major 
changes to the compiler… :-(

> On Feb 5, 2018, at 6:13 PM, Alex Harui <[email protected]> wrote:
> 
> 
> 
> On 2/5/18, 2:01 AM, "Gabe Harbs" <[email protected]> wrote:
> 
>> I’ll try to work on this. It’s pretty slow loading the debug build.
>> 
>> I still maintain there should be a compiler setting or language feature
>> to prevent objects produced from JSON being destroyed on minification.
> 
> JSON Objects are not destroyed.  The code referencing their fields by name
> has those names changed.  Propose a way to determine that a data structure
> is external and what the compiler should generate and implement it.  IMO,
> the answer is to create ValueObjects.  That is essentially typedefs and
> AFAIK, there is no way to automate typedef generation.
> 
> Also, you can turn off minification for the app as a whole.
> 
> Other ideas welcome,
> -Alex
> 
>> This remains a pain point for developing apps and having to create VOs
>> for every API is a drag.
>> 
>>> On Feb 5, 2018, at 10:21 AM, Alex Harui <[email protected]>
>>> wrote:
>>> 
>>> 
>>> 
>>> On 2/4/18, 1:10 AM, "Gabe Harbs" <[email protected]> wrote:
>>> 
>>>> Typo. I meant js-reease.
>>> 
>>> Yeah, at some later point in time someone should build Value Objects for
>>> the JSON and get js-release working.  Maybe after this release.  I'm
>>> just
>>> trying to make the ASDoc useful.
>>> 
>>> I'm going to add Events to the class detail page and anchor links from
>>> the
>>> lists to the details and maybe a simple search-for-class feature, then I
>>> think it will be time for a release.
>>> 
>>> -Alex
>>>> 
>>>>> On Feb 4, 2018, at 8:08 AM, Alex Harui <[email protected]>
>>>>> wrote:
>>>>> 
>>>>>> 1. Why is bin-release not working?
>>>>> 
>>>>> Do you mean SWF support?
>>>> 
>>> 
>> 
> 

Reply via email to