On 2023-07-11 13:26, Mark Waddingham via use-livecode wrote:
Anyway, we'll try and figure out what has changed to cause the change
in behavior - at the very least we can go back and add a 'breaking
change' warning to the release note for the change which caused the
issue.
Okay so after a bit of digging I can confirm that this is down to an
unintended consequence of implementation constant expressions.
The behavior prior to that feature was:
You are allowed to assign and evaluate variables whose name is the same
as property keywords which can only appear as object properties (i.e.
require an OF afterwards) and are not also constant keywords ('left' and
'right' I think are the only two which are object properties and
constants).
Further, if explicitVariables is true then you cannot declare such
variables, but you can evaluate them. (In this case, they would act as
unquoted literals - you can still assign indirectly using do with
explicitVars turned off at the time of the do).
The reason it was changed was to fix a problem with the constants 'left'
and 'right' being used in constant initializer expressions - but at the
expense of object only properties not being able to be variables. That
problem needs to be resolved in a different way.
So this is a bug/regression - not so much because of the use of 'tExt'
(text) but because scripts which use any object property keyword as a
variable name will break. As many object property keywords are not
dictionary words - but compounds or contractions - this means that even
scripts which conform to the long standing rule could fall foul.
Warmest Regards,
Mark.
--
Mark Waddingham ~ m...@livecode.com ~ http://www.livecode.com/
LiveCode: Build Amazing Things
_______________________________________________
use-livecode mailing list
use-livecode@lists.runrev.com
Please visit this url to subscribe, unsubscribe and manage your subscription
preferences:
http://lists.runrev.com/mailman/listinfo/use-livecode