strings that are arguments for a function need to be put into the global string table. PrecompileIdent does this for the function name etc so it pulls from that during compiled eval
Adds the ability to declare defaults for function arguments
eg
function testFunc(%x = 1, %y = 1)
{
return %x + %y;
}
can now be called as
testFunc(10) and it will return the value of 11.
Changed:
if check on vals now return true if the value has a string value
%val = "test me" if(%val) will now return true since %val is not null
Script side:
string checks for "true" and "false" will now be parsed as integer values of 1 and 0.
TEST VIGOUROUSLY
If the statement is a terminating statement on slot assignment (such as %var[%i]++;), the stack has to be popped everytime slot arrays are used regardless of the expression type.