Commit Graph

  • 6f13c347d8 Set the proper type of array. belliash 2018-10-26 19:45:10 +02:00
  • 03cf969c31 Check for a type of array. belliash 2018-10-11 15:15:48 +02:00
  • b66515516e First check if array or object. belliash 2018-10-01 22:46:35 +02:00
  • 6293b8f5bf Do not try to dump empty array. belliash 2018-10-01 22:43:23 +02:00
  • c00080e190 Correct comment. belliash 2018-09-24 19:20:23 +02:00
  • b5eb268ce1 Do not allow to set a value of different type to the variable. belliash 2018-09-24 19:17:46 +02:00
  • 5f2f9d9c08 Set proper data type for static variables; belliash 2018-09-24 19:16:44 +02:00
  • 6e7bc74949 Put comment in right place. belliash 2018-09-24 13:39:50 +02:00
  • f26095658d Treat empty object as false. belliash 2018-09-24 13:38:33 +02:00
  • 2db1954779 Another bunch of fixes for object type. belliash 2018-09-24 13:34:22 +02:00
  • 550107235c Do not try to dump a non-instantiated object. belliash 2018-09-24 12:22:58 +02:00
  • 369cadfcda Tryeing to call a non-instantiated object should result in an error. belliash 2018-09-24 12:10:19 +02:00
  • f72d6c3922 Load data from array/object only if there is anything stored. belliash 2018-09-24 11:47:30 +02:00
  • 59fda6d797 Unref hashmap and object only if there is any data stored. belliash 2018-09-24 11:29:51 +02:00
  • ba0c250911 Fix test. belliash 2018-09-23 19:07:03 +02:00
  • 08296110fb Temporarily fix tests. belliash 2018-09-23 17:51:47 +02:00
  • dd774be005 Fix for() loop, do not use iP1 for OP_LOAD. belliash 2018-09-23 17:51:09 +02:00
  • ae0fde152c Create a variable only on OP_LOAD. belliash 2018-09-23 17:40:26 +02:00
  • 28a5fa59ad Duplicate variable name. Fix variable declaration. belliash 2018-09-22 17:54:59 +02:00
  • 514e07c7f3 Fix static variables not containing any value. belliash 2018-09-21 22:18:11 +02:00
  • f927667d85 Strictly check for data type of static variable declaration. belliash 2018-09-21 22:06:36 +02:00
  • 79e4bac7eb Remove no longer used PH7_CompileStatic(). belliash 2018-09-21 00:22:29 +02:00
  • bd4d146d0a Initial version of variable definition. belliash 2018-09-21 00:21:15 +02:00
  • 241c7d8168 First step to declare a variable with specified data type. belliash 2018-09-20 17:06:23 +02:00
  • e6e59d299e Fix method parameters. belliash 2018-09-19 19:27:50 +02:00
  • 9884f8288b Do not allow typecasting to unset a variable. belliash 2018-09-18 22:11:57 +02:00
  • 5a6af65cfa Object of wrong type passed as argument should be generate error. belliash 2018-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". belliash 2018-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. belliash 2018-09-16 19:52:24 +02:00
  • 3a16eced8a Push error if argument type does not match. belliash 2018-09-15 14:13:46 +02:00
  • 5504579566 Passing an object of different type as expected should result in error. belliash 2018-09-14 22:27:38 +02:00
  • faca9b7fb2 Another fix in debug trace. belliash 2018-09-14 22:22:37 +02:00
  • 94ae7d187b No data type for argument specified leads to E_ERROR. belliash 2018-09-14 21:33:31 +02:00
  • ca00cadba7 Use strict type hinting in all tests. belliash 2018-09-14 21:32:08 +02:00
  • 8b48786f29 Add missing data types. belliash 2018-09-14 08:47:16 +02:00
  • ecebbb6094 Use type hinting in standard library. belliash 2018-09-14 08:36:00 +02:00
  • 74b1c196f9 Treat invalid type name as error. belliash 2018-09-13 18:56:01 +02:00
  • d4992ff4ba At least try to report correct line number. belliash 2018-09-12 19:24:48 +02:00
  • 1e5538fc67 Remove useless fields in pVm. belliash 2018-09-11 17:52:28 +02:00
  • 58b7ceeae9 Get rid of $GLOBALS completely. belliash 2018-09-11 17:49:20 +02:00
  • 0804407582 Correct typo. belliash 2018-09-11 13:58:03 +02:00
  • e383536dc4 Do not store script arguments in $GLOBALS. belliash 2018-09-11 06:47:48 +02:00
  • 9ebc3dc61a Extract a list of parameters and pass them to Program::main(); belliash 2018-09-10 23:12:08 +02:00
  • 82e5dc1565 Add SyStrtok() declaration. belliash 2018-09-10 23:02:25 +02:00
  • 10d3bfe5e1 Correct comments. belliash 2018-09-10 20:17:42 +02:00
  • 7e754db07f Implement SyStrtok(); belliash 2018-09-10 20:16:46 +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. belliash 2018-09-07 12:04:51 +02:00
  • af1d59dab4 Don't try to get an integer representation of float. belliash 2018-09-07 06:49:50 +02:00
  • ac8b8b0fdb Don't try to get an integer representation of float. belliash 2018-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. belliash 2018-09-07 06:38:32 +02:00
  • 0a9cfce672 Group and add missing keywords. belliash 2018-09-06 19:47:06 +02:00
  • 43a36f070c Correct comments. belliash 2018-09-06 18:00:34 +02:00
  • cb8ddaab5f This is obsolete. belliash 2018-09-05 21:54:52 +02:00
  • 3887aa69a6 Never disable hash functions. belliash 2018-09-05 21:46:25 +02:00
  • c3a4c8de77 Never disable builtin functions. belliash 2018-09-05 20:47:07 +02:00
  • 00e1c842d5 Never disable builtin functions. belliash 2018-09-05 20:43:39 +02:00
  • ea4daa9335 Take last instruction being executed, not necessarily OP_CALL. belliash 2018-09-05 19:45:38 +02:00
  • 6387026e15 Do not limit the output buffering callbacks. belliash 2018-09-05 18:46:42 +02:00
  • 11ba0ce738 No need to store output length in VM. belliash 2018-09-05 18:33:53 +02:00
  • 404f5a2688 No need to store unique ID in VM. belliash 2018-09-05 18:24:34 +02:00
  • ae79cb57de No need to store information about line number in ph7_class struct. belliash 2018-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. belliash 2018-09-05 17:31:06 +02:00
  • 543176a2f4 Switch VM state to PH7_VM_INCL when including new file. belliash 2018-09-05 13:28:20 +02:00
  • d58249cb3f Use debug trace only if VM is really executing some code. belliash 2018-09-05 13:16:57 +02:00
  • 765d2cf3eb Another VM state. belliash 2018-09-05 13:13:36 +02:00
  • 8ca6deca4e Allow to set memory limit from SAPI. belliash 2018-09-04 11:52:55 +02:00
  • c00c91599f Enable unused API functions. belliash 2018-09-04 09:33:28 +02:00
  • 19eaaab081 Remove unused code. belliash 2018-09-04 09:19:15 +02:00
  • 1643d2ee94 Remove unused code. belliash 2018-09-04 09:18:13 +02:00
  • 03e452ea7b Shutdown library properly on error. belliash 2018-09-04 09:13:28 +02:00
  • 1daf17bcd4 Correct typo. belliash 2018-09-04 09:07:58 +02:00
  • d793d3ed70 Rename PH7_VmGenericError() to PH7_VmThrowError() belliash 2018-09-04 08:54:48 +02:00
  • 758ace0d1a Shutdown library properly on error. belliash 2018-09-04 08:49:38 +02:00
  • dc0a55c8c0 Cleanup old error handler. belliash 2018-09-04 08:38:41 +02:00
  • ac73632cb1 Use new error handler. belliash 2018-09-04 08:26:58 +02:00
  • bd44dba33c Use new error handler in modules. belliash 2018-09-03 20:19:12 +02:00
  • d85a517eb0 Rework trigger_error() builtin function. belliash 2018-09-03 19:27:38 +02:00
  • 0a28e492a7 error_reporting() is useless for Aer. Whole configuration should be done in config file. belliash 2018-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. belliash 2018-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. belliash 2018-09-03 16:43:08 +02:00
  • dd35b5b8b4 Uncaught exception message. belliash 2018-09-03 16:29:50 +02:00
  • d3d3dcc767 Partially switch to new error reporting. belliash 2018-09-03 16:16:32 +02:00
  • 5895141ae1 Add missing declarations. belliash 2018-09-03 10:59:20 +02:00
  • 0298299169 Extend SEQ field. belliash 2018-09-03 09:36:22 +02:00
  • 9c4eb59b49 Variable list of arguments for PH7_VmGenericError(); belliash 2018-09-03 09:30:23 +02:00
  • f176414bce Release VM and exit automatically, do not rely on VM. belliash 2018-09-03 08:40:18 +02:00
  • eea9eee6e5 Implement PH7_VmGenericError(); belliash 2018-09-03 08:19:14 +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. belliash 2018-09-02 20:15:17 +02:00
  • d135748bcd Always iterate through all frames. belliash 2018-09-02 18:53:23 +02:00
  • ea7955b6ee Remove useless VmExtractPeekDebugTrace(); belliash 2018-09-02 18:50:00 +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. belliash 2018-09-02 18:46:30 +02:00
  • 3e1d91e909 Add more comments. belliash 2018-09-02 18:45:01 +02:00
  • da198fcb44 Implement PH7_VmMemoryError(); belliash 2018-09-02 12:27:32 +02:00
  • 90ab131ce8 Do not append spaces. Instructions names are properly displayed without them. belliash 2018-09-01 20:28:16 +02:00
  • 8bfaa83b04 Correct typo. belliash 2018-09-01 20:19:10 +02:00
  • 4dae0bcc9e Always record last instruction. belliash 2018-09-01 19:56:36 +02:00
  • 383fe01943 Reserve 10KB for error reporting. belliash 2018-09-01 17:54:45 +02:00
  • 8fcb3c608a Remove duplicate of SySetUsed() macro. belliash 2018-08-31 23:45:46 +02:00
  • d9db6bbc26 There is no need for global working buffer in VM. belliash 2018-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. belliash 2018-08-31 08:30:59 +02:00