Remove unused compiler function - PH7_CompileLangConstruct(). In AerScript, there are no such language constructs, that have syntax similiar to functions. If so, it is just a builtin function.Rafal Kupiec2019-05-04 18:53:11 +0200
Make constant declarations local. There are several changes in this commit: * first of all constants declared by 'const' statement should be local (declared in current scope / frame), * constants are declared by using OP_DECLARE instruction, * OP_LOADC browses both global and local constants container, * PH7_VmRegisterConstant() allows both global and local declarations. Since this commit, there are 3 kinds of constants: 1) global 2) local (in loop, closure, method) 3) class members. Actually there is no way to declare a global constant except the built-in constants.Rafal Kupiec2019-05-04 13:45:32 +0200
Refactor foreach() loop. In AerScript, the foreach() loop is syntatically more similiar to C#, than PHP. However the optional '$key => $value' construct is still available, because arrays in AerScript are still a hashmaps.Rafal Kupiec2019-04-30 23:38:59 +0200
Remove get_defined_functions() built-in function. This function is useless in Aer, as it is fully OOP language and thus disallows functions declaration.Rafal Kupiec2019-04-28 19:31:58 +0200
There is no reason to trigger a low-level error in AerScript. AerScript is fully OOP language and supports exceptions that can be thrown at any time.Rafal Kupiec2019-04-28 19:27:24 +0200
PH7_GenCompileError() always breaks script execution on E_ERROR. Thus code placed below will never get executed and is completely useless.Rafal Kupiec2019-04-24 23:12:59 +0200
PH7_VmThrowError() always breaks script execution on PH7_CTX_ERR. Thus code placed below will never get executed and is completely useless.Rafal Kupiec2019-04-24 18:30:24 +0200
PH7_VmThrowError() always breaks script execution on PH7_CTX_ERR. Thus code placed below will never get executed and is completely useless.Rafal Kupiec2019-04-24 18:09:41 +0200
PH7_GenCompileError() always breaks script execution on E_ERROR. Thus code placed below will never get executed and is completely useless.Rafal Kupiec2019-04-24 18:03:57 +0200
Remove array_same() builtin function. After last change, AerScript does not pass arrays as reference, so there is no chance to get this function return true, unless you pass array as reference.Rafal Kupiec2019-04-20 13:59:10 +0200
array_copy() is no longer needed. AerScript makes a copy of all arrays, except a situation when array is passed by reference. Thanks to that this ugly hack called an extension, introduced by Symisc can be removed.Rafal Kupiec2019-04-20 07:30:07 +0200
Fix PH7_HashmapDup(). This function needs to store the next index. Otherwise it will start to count from beginning, duplicating existing keys.Rafal Kupiec2019-04-19 20:16:42 +0200
This variable contains an array of booleans, really. And if we managed to insert a boolean value to an array of chars, this means we have a bug somewhere.Rafal Kupiec2019-04-19 06:40:16 +0200
Do not check parameters passed to constructor. There is no need to check parameters passed to constructor and emit a notice, because PH7_VmCallClassMethod() does the job. It tries to find a matching method if overloaded and checks all arguments passed. In case of any problems, it emits E_ERROR.Rafal Kupiec2019-04-17 12:18:55 +0200
Do not allow 'continue' statement in a switch case. Important rule while using continue statement is that, We can use continue statement only within the loops. Switch case is conditional block not a loop so we cannot execute the continue statement inside switch.Rafal Kupiec2019-04-17 11:13:29 +0200
Always pop the l-value on variable declaration. Otherwise, it might lead to unexpected behaviour including protected memory access and segmentation fault. This finally fixes#49.Piotr Likoski2019-04-16 20:15:38 +0200