Commit Graph

247 Commits

Author SHA1 Message Date
Rafal Kupiec 798fd7d3b2
Remove unused and useless VM instruction.
The build was successful. Details
2019-05-01 12:33:51 +02:00
Rafal Kupiec d76441ad4c
Safely store only compatible values.
The build was successful. Details
2019-05-01 12:24:20 +02:00
Rafal Kupiec a726ab795a
Throw an error if $key or $value does not exist.
The build was successful. Details
2019-05-01 09:51:33 +02:00
Rafal Kupiec 5c1e0f0cce
Simplify the foreach() loop implementation.
The build was successful. Details
2019-04-30 23:59:02 +02:00
Rafal Kupiec 4d8d92092e
Refactor foreach() loop.
The build was successful. Details
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.
2019-04-30 23:38:59 +02:00
Rafal Kupiec 1156519af6
This is a compiler task to fill key and value variables names.
The build was successful. Details
2019-04-29 11:44:17 +02:00
Rafal Kupiec 62c315da9e
Call to undefined constant should lead to an error.
The build was successful. Details
2019-04-28 21:44:48 +02:00
Rafal Kupiec f09d4def2d
It's AerScript.
The build was successful. Details
2019-04-28 19:47:09 +02:00
Rafal Kupiec d6fca929ea
Callbacks can be just called.
The build was successful. Details
2019-04-28 19:36:27 +02:00
Rafal Kupiec 6593252bce
Remove get_defined_functions() built-in function.
The build was successful. Details
This function is useless in Aer, as it is fully OOP language and thus disallows functions declaration.
2019-04-28 19:31:58 +02:00
Rafal Kupiec d26bc99b68
There is no reason to trigger a low-level error in AerScript.
The build was successful. Details
AerScript is fully OOP language and supports exceptions that can be thrown at any time.
2019-04-28 19:27:24 +02:00
Rafal Kupiec 00c502c11b
Get rid of import_request_variables() builtin function. Its pure evil.
The build was successful. Details
2019-04-28 19:23:42 +02:00
Rafal Kupiec 9f4f6298c2
Do not create variable in foreach() loop automatically.
The build was successful. Details
2019-04-28 19:14:56 +02:00
Rafal Kupiec 8ab3919688
Class names should be case sensitive.
The build was successful. Details
2019-04-28 18:24:22 +02:00
Rafal Kupiec c443a38fec
Do not count compilation errors.
The build was successful. Details
Interpreter will abort script execution on first error found.
2019-04-24 23:22:06 +02:00
Rafal Kupiec 7c8259057b
PH7_VmThrowError() always breaks script execution on PH7_CTX_ERR.
The build was successful. Details
Thus code placed below will never get executed and is completely useless.
2019-04-24 18:30:24 +02:00
Rafal Kupiec 5b0b965199
Fix segmentation fault when trying to clone non-instantiated object.
The build was successful. Details
2019-04-24 16:51:43 +02:00
Rafal Kupiec 8f18ebf884
Update legal info.
The build was successful. Details
2019-04-20 19:53:16 +02:00
Rafal Kupiec c9203b6c91
New source code legal format.
The build was successful. Details
2019-04-20 19:29:15 +02:00
Rafal Kupiec a0405f2267
Always perform type validation when inserting value to an array.
The build was successful. Details
2019-04-19 07:08:29 +02:00
Rafal Kupiec 407bcf5a29
Fix segmentation fault on Program::__construct() call.
The build was successful. Details
2019-04-17 17:29:05 +02:00
Rafal Kupiec 9a82298451
Do not check parameters passed to constructor.
The build was successful. Details
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.
2019-04-17 12:18:55 +02:00
Rafal Kupiec 88d382b76b
Add missing VM OP descriptions.
The build was successful. Details
2019-04-16 19:12:39 +02:00
Rafal Kupiec ba8e9080ef
Implement OP_JMPLFB & OP_JMPLFE VM instructions.
The build was successful. Details
2019-04-16 12:46:58 +02:00
Rafal Kupiec 89f19133d5
Rename VM's jump instructions for better readability.
The build was successful. Details
2019-04-16 08:14:16 +02:00
Rafal Kupiec f9b518138e
Cleanup OP_LOAD instruction.
The build was successful. Details
2019-04-15 19:44:49 +02:00
Rafal Kupiec 517dffcbc1
Separate VM instruction for variable declaration (OP_DECLARE).
The build was successful. Details
2019-04-15 19:18:29 +02:00
Rafal Kupiec 1b248a17e7
Query the top active as well as all loop frames.
The build was successful. Details
2019-04-15 18:32:30 +02:00
Rafal Kupiec 661158d249
Simply throw memory error.
The build was successful. Details
2019-04-15 17:41:29 +02:00
Rafal Kupiec 94e06f3d3a
Do not duplicate the code; make a use of VmCreateMemObj().
The build was successful. Details
2019-04-15 17:14:14 +02:00
Rafal Kupiec 9e06322b57
Implement VmCreateMemObj().
The build was successful. Details
2019-04-15 17:04:44 +02:00
Rafal Kupiec c51b3dfa8a
Revert 89d5158d7e and a8a1a2cd51. Fix should be based on VM frames.
The build was successful. Details
2019-04-13 14:39:57 +02:00
Rafal Kupiec a8a1a2cd51
Fix variable declaration in loops.
The build has failed. Details
2019-04-11 13:28:47 +02:00
Rafal Kupiec 4eaf6a7117
AerScript is strict type hinting language, thus OP_TEQ & OP_TNE are not needed here.
The build was successful. Details
2019-04-11 06:25:20 +02:00
Rafal Kupiec 2a4e47e782
I hope this finally fixes the default argument value.
The build was successful. Details
2019-04-10 18:32:53 +02:00
Rafal Kupiec 95c9fd0f1f
Corrections in builtin library.
The build was successful. Details
2019-04-10 12:44:44 +02:00
Rafal Kupiec d8f9db8f9a
Proper implementation of is_callback() & is_callable(). First one only performs a check if variable type is callback, while the second checks if function exists and if can be called.
The build was successful. Details
2019-04-10 09:45:00 +02:00
Rafal Kupiec 65e38a364d
Do not try to call an array.
The build was successful. Details
2019-04-10 09:26:06 +02:00
Rafal Kupiec d6434ba19e
Try to report some line.
The build was successful. Details
2019-04-10 09:18:26 +02:00
Rafal Kupiec 447910ce2e
Fix callbacks.
The build was successful. Details
2019-04-10 09:08:10 +02:00
Rafal Kupiec 77795bea4c
Do not check for return value on OP_DONE.
The build was successful. Details
2019-04-08 13:51:54 +02:00
Rafal Kupiec 598dc9ce51
At least try to call callback and do not check for return value on OP_DONE.
The build was successful. Details
2019-04-08 13:49:12 +02:00
Rafal Kupiec 7443663dd8
Fixes in PH7_OP_LOAD_IDX instruction.
The build was successful. Details
2019-04-06 09:36:08 +02:00
Rafal Kupiec f6e2b549b6
Access to undefined array index should be reported as error.
The build was successful. Details
2019-04-06 09:21:09 +02:00
Rafal Kupiec a501dea661
Fix a typo.
The build was successful. Details
2019-04-05 20:17:44 +02:00
Rafal Kupiec 25001ae746
This should be an error, really.
The build was successful. Details
2019-04-05 20:14:08 +02:00
Rafal Kupiec 2de455aa01
Fix formatting.
The build was successful. Details
2019-04-05 20:12:55 +02:00
Rafal Kupiec 95fba30f9b
Better way to check arguments compatibility.
The build was successful. Details
2019-04-05 20:07:56 +02:00
Rafal Kupiec a06573408e
Better way to check arguments compatibility.
The build was successful. Details
2019-04-05 19:59:15 +02:00
Rafal Kupiec 5d369ba851
Fix static variables. Now access to non-initialized arrays member does not result in segmentation fault.
The build was successful. Details
2019-04-04 18:18:11 +02:00