[Laszlo-dev] For Review: Change 20100409-ptw-7 Summary: Make constraints and dependencies more debuggable and compatible
max at openlaszlo.org
Sun Apr 11 12:25:40 PDT 2010
One more thought:
I'm all for adding more pragmas but I wish there was a way to set them
in LZX, e.g. http://jira.openlaszlo.org/jira/browse/LPP-8763
On 4/11/10 5:22 AM, P T Withington wrote:
> [Adding Laszlo-Dev because of the wider issues raised here.]
> On 2010-04-10, at 09:03, André Bargull wrote:
>> In my opinion this change set tries to handle too much. It should be sufficient to handle the original error when there is no dependencies method for a function and just ignore any error in swf9+, similar to the swf8 and dhtml behaviour. For example the changes to the components introduce too much internal stuff, I don't think we want to introduce things like "$lzc$funcName_dependencies" into user-land (I consider all components as user-land!).
> See my proposal in response to Max regarding introducing a new<dependencies> tag. I don't think we want to rely on luck to have our constraints work, so I think this warning at least has use to core developers.
>> And searching for functions in constraints in the demo and docs directory gives these results:
>> - parseFloat(..)
>> - Number(..)
>> - thumbControl(..)
>> - getEventColor(..)
>> - formatToString(..)
>> - escapeText(..)
>> None of these functions is currently handled. And you don't want to add more exception rules for the compiler resp. handcrafted dependencies methods, do you?
> Good question. Possible answers (not mutually exclusive):
> 1) Preserve the status quo. Just turn off the warning about function dependencies. (I would keep the property-depencencies warning because it has a simple work-around, change your constraint from $always to $once; or if you really are expecting to track a non LzEventable value, propose an improvement to make that value trackable.)
> 2) Add a global #pragma that developers can use to enable the constraint warnings.
> 3) Add a local #pragma to turn off the warning on a per-constraint basis. An "I know what I am doing" flag.
> 4) Add the<dependencies> tag so developers can (a little more easily) write custom dependency functions
> 5) Add more exceptions to the compiler, although technically the exceptions that I add in this change are not 100% accurate (no amount of static analysis in ES3 can prove that `Math.round`, etc. have not been shadowed or rebound).
> Comments? Other ideas?
More information about the Laszlo-dev