Language and Script Engine
- Delphi XE4 is now supported, compiler hints for XE3 have been taken care of as well
- compiler now supports “in” operator across strings, for for instance “if subString in myString then” is equivalent to “if myString.Contains(subString) then“
- added standard “helpers” for most built-in functions operating on String, Integer, Float and Boolean. These roughly follow the Delphi & .Net conventions, though standard Maths functions are accessible directly (f.i. you can do “angle.Cos” directly, rather than have to go through “Math.Cos(angle)“)
- added some more string functions (DeleteLeft, DeleteRight, etc.)
- added support for EmptyParam for the COM connector
- added DivMod to the standard functions
- improved performance of DecodeDate/Time functions
- improvements and fixes for the JSON connector (now supports manipulating an existing JSON structure, creating, moving and deleting nodes)
- misc. fixes and improvements
Note that there aren’t specifics DPKs for XE4, you can just copy/rename the XE2 or XE DPKs.
Changes for SmartMobileStudio / JavaScript Codegen
In addition to the previous changes, the following will apply to the next version of SmartMS:
- support “for str in variant” which allows enumerating members of a raw JavaScript object (compiles to “for (str in v)”)
- improved code generation for functions with an “exit” statement
- added specific optimizations for string copies and testing (startswidth/endwidth)
- slightly faster code generation