Many native types represent "complex" objects (i.e. larger than 4 bytes). The script language automatically keeps track of these objects and deletes them from memory when they are no longer used (that is, when nothing in the script references them any longer). The types which benefit from automatic deletion are:
Other object types must be explicitly destroyed with the appropriate native function when you are done using them.
Normally, comparing two "complex" objects with the == or != operators will only compare the object reference, not the contained object data. However, a few types will compare the contained data instead. These types are:
Point(1, 2) == Point(1, 2) // True
"test string" == "test string" // True (note: this is case sensitive)
AbilityCommand("move", 0) == AbilityCommand("move", 0) // True
Order(abilCmd) == Order(abilCmd) // False (two different order instances)
RegionEmpty() == RegionEmpty() // False (two different region instances)
string, text + operator will concatenate the strings or text point +/- operators will add or subtract the x and y components of the points