I was under the impression the syntax was strictly as follows:
(obj).variable = value;
If GM is suddenly allowing that sort of thing, I will remove all checks related to assignment operators. That will add compatibility with stream structures like cout, anyway.
It's always allowed that sort of thing. It doesn't care about the brackets:
(((((script())).meh.hello))) = (script().derp);
(variable) = value;
It's all perfectly valid. Only thing that isn't valid is:
variable.(loc) = value