flex-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Peter Ent <p...@adobe.com.INVALID>
Subject Re: [FlexJS] more on undefined / non initialised values
Date Mon, 12 Jun 2017 15:16:09 GMT
Perhaps we can look to other languages for guidance. For example, in Swift:

var val:Boolean

is illegal. It MUST be initialized or declared to be optional:

var val:Boolean = false
var val:Boolean?

The Swift people felt that leaving variables uninitialized and defaulted
caused too many issues and so force values to be given. If you don't have
a value then you must declare it to be optional, in which case its value
is nil until it is assigned a value.

Neither AS nor JS has the luxury of syntax that enforces this, but perhaps
we could have the compiler issue a warning (at least) that scalar values
are uninitialized. 

‹peter

On 6/11/17, 4:21 AM, "Harbs" <harbs.lists@gmail.com> wrote:

>It seems like the general case is better to have the initialization.
>Thanks for implementing that.
>
>It would probably be nice for the compiler to be intelligent and only
>initialize if the code does not initialize too.
>
>So:
>
>var val:Boolean;
>// further down before val is actually accessed
>val = true;// or val = false;
>
>should not initialize val, but:
>
>var val:Boolean;
>// further down 
>if(val == someotherval){
>// do something
>}
>should initialize it.
>
>But I don¹t see this as critical for now.
>
>Harbs
>
>> On Jun 11, 2017, at 10:56 AM, Justin Mclean <justin@classsoftware.com>
>>wrote:
>> 
>> Hi,
>> 
>>> The changes you made look fine.
>> 
>> Do you want them as the default and an option to turn them off? I¹m
>>assuming you will you at some later point add other switches to turn
>>other optimisations (whatever they may be) on?
>> 
>>> Seems like eventually we'll have to initialize other types as well.
>> 
>> I¹d guestimate there would be a performance boost for string and for
>>object as well / but the size cost may be different. Won't know until I
>>or someone tries it.
>> 
>>> Safe, but inefficient at times.
>> 
>> So far I not seen any inefficiency in fact the opposite. But sure there
>>may be specific cases that perform better, please post any you find to
>>the list.
>> 
>> Thanks,
>> Justin
>


Mime
View raw message