9884f8288b
Do not allow typecasting to unset a variable.
belliash2018-09-18 22:11:57 +02:00
5a6af65cfa
Object of wrong type passed as argument should be generate error.
belliash2018-09-17 22:06:53 +02:00
82998ffd0f
Silently typecast integer value to float. This is a necessary step, to allow passing integer numbers. Otherwise, every float variable would need a floating point value. In other words, "float $x = 5" is allowed construct. Without this simple change, only accepted construction was "float $x = 5.0".
belliash2018-09-16 20:02:34 +02:00
58103ea5fe
Mark method/closure call frame as active. It is impossible to dump the frame during its initialization, as it does not contain all necessary information. Such frame should be skipped. After initialization is done, the frame has to be marked as active just before evaluating a function body.
belliash2018-09-16 19:52:24 +02:00
3a16eced8a
Push error if argument type does not match.
belliash2018-09-15 14:13:46 +02:00
5504579566
Passing an object of different type as expected should result in error.
belliash2018-09-14 22:27:38 +02:00
eb79ed500e
Store float values in an union. Single variable cannot have many values of different types. This also saves some memory, because union allocates memory just for one of its members.
belliash2018-09-07 12:04:51 +02:00
af1d59dab4
Don't try to get an integer representation of float.
belliash2018-09-07 06:49:50 +02:00
ac8b8b0fdb
Don't try to get an integer representation of float.
belliash2018-09-07 06:43:07 +02:00
9ee0f1954c
Do not omit the floating point. Every modern hardware, including embedded devices, should support floating point numbers.
belliash2018-09-07 06:38:32 +02:00
0a9cfce672
Group and add missing keywords.
belliash2018-09-06 19:47:06 +02:00
c3a4c8de77
Never disable builtin functions.
belliash2018-09-05 20:47:07 +02:00
00e1c842d5
Never disable builtin functions.
belliash2018-09-05 20:43:39 +02:00
ea4daa9335
Take last instruction being executed, not necessarily OP_CALL.
belliash2018-09-05 19:45:38 +02:00
6387026e15
Do not limit the output buffering callbacks.
belliash2018-09-05 18:46:42 +02:00
11ba0ce738
No need to store output length in VM.
belliash2018-09-05 18:33:53 +02:00
404f5a2688
No need to store unique ID in VM.
belliash2018-09-05 18:24:34 +02:00
ae79cb57de
No need to store information about line number in ph7_class struct.
belliash2018-09-05 17:42:10 +02:00
894dbe47d6
Allow compiler to specify line number, on which instruction has been generated. This also fixes line number on OP_CLASS_INIT and OP_INTERFACE_INIT.
belliash2018-09-05 17:31:06 +02:00
543176a2f4
Switch VM state to PH7_VM_INCL when including new file.
belliash2018-09-05 13:28:20 +02:00
d58249cb3f
Use debug trace only if VM is really executing some code.
belliash2018-09-05 13:16:57 +02:00
0a28e492a7
error_reporting() is useless for Aer. Whole configuration should be done in config file.
belliash2018-09-03 19:11:44 +02:00
fd4206a227
Remove error_log() builtin function and corresponding PH7_VM_CONFIG_ERR_LOG_HANDLER. It was not fully implemented and such feature should be implemented in separate module or on developers own.
belliash2018-09-03 19:03:05 +02:00
109f4e981a
Aer does not support custom error handlers. Errors are used only internally to emit notifications about compilation/execution problems. They should not be catched and handled by custom handlers, but properly configured (to be displayed or logged). Instead developers should use exceptions that can be catched with try-catch block.
belliash2018-09-03 16:43:08 +02:00
a2acf64272
VmExtractDebugTrace() provides information about a kind of call. Both VmExtractDebugTrace() and VmDebugTrace structure should provide information whether it was object call or a static method call.
belliash2018-09-02 20:15:17 +02:00
d135748bcd
Always iterate through all frames.
belliash2018-09-02 18:53:23 +02:00
f89af70ab2
Fix VmExtractDebugTrace(); If there is no information about class in the frame (when closure was called), pClassName should point always to NULL.
belliash2018-09-02 18:46:30 +02:00
4dae0bcc9e
Always record last instruction.
belliash2018-09-01 19:56:36 +02:00
383fe01943
Reserve 10KB for error reporting.
belliash2018-09-01 17:54:45 +02:00
8fcb3c608a
Remove duplicate of SySetUsed() macro.
belliash2018-08-31 23:45:46 +02:00
d9db6bbc26
There is no need for global working buffer in VM.
belliash2018-08-31 23:34:35 +02:00
67ce98d924
Look for executed OP_CALL. Each function contains a list of all instructions inside, thus we should consider only OP_CALL that has already been executed. As the list is browsed from bottom to top, no more checks are necessary. The first match is what we are looking for.
belliash2018-08-31 08:30:59 +02:00