Commit Graph
100 Commits
Author SHA1 Message Date
belliash 07e3a09999 Enter and leave a loop frame on every iteration.
The build was successful.
This fixes strict variable declaration inside loops.
2019-04-16 13:51:58 +02:00
belliash ba8e9080ef Implement OP_JMPLFB & OP_JMPLFE VM instructions.
The build was successful.
2019-04-16 12:46:58 +02:00
belliash ef4f994e8b Do not allow 'break' statement to take a parameter. This is strange construction introduced in PHP.
The build was successful.
2019-04-16 12:34:53 +02:00
belliash 5fddbf8737 Do not allow 'continue' statement to take a parameter. This is strange construction introduced in PHP.
The build was successful.
2019-04-16 12:32:01 +02:00
belliash 89f19133d5 Rename VM's jump instructions for better readability.
The build was successful.
2019-04-16 08:14:16 +02:00
belliash eb80dced3e Correct comment.
The build was successful.
2019-04-15 20:00:54 +02:00
belliash f9b518138e Cleanup OP_LOAD instruction.
The build was successful.
2019-04-15 19:44:49 +02:00
belliash 517dffcbc1 Separate VM instruction for variable declaration (OP_DECLARE).
The build was successful.
2019-04-15 19:18:29 +02:00
belliash 1b248a17e7 Query the top active as well as all loop frames.
The build was successful.
2019-04-15 18:32:30 +02:00
belliash 661158d249 Simply throw memory error.
The build was successful.
2019-04-15 17:41:29 +02:00
belliash 94e06f3d3a Do not duplicate the code; make a use of VmCreateMemObj().
The build was successful.
2019-04-15 17:14:14 +02:00
belliash 9e06322b57 Implement VmCreateMemObj().
The build was successful.
2019-04-15 17:04:44 +02:00
belliash 0f0fc01a96 We need to distinguish the loop frames.
The build was successful.
2019-04-13 20:21:47 +02:00
belliash c51b3dfa8a Revert 89d5158d7e and a8a1a2cd51. Fix should be based on VM frames.
The build was successful.
2019-04-13 14:39:57 +02:00
belliash 583f43e1f7 Convert carriage return and line feed to line feed (UNIX line ending).
The build was successful.
2019-04-13 14:37:04 +02:00
belliash aea0d1a5ec Workaround applied to make test working.
The build was successful.
2019-04-13 14:35:27 +02:00
belliash e3ad3eb84b Another bug found that needs to be fixed before merge to master branch.
The build was successful.
2019-04-13 14:32:43 +02:00
belliash 98898c16c5 Builtin library will be reworked later. Out of scope.
The build was successful.
2019-04-13 09:09:25 +02:00
belliash 89d5158d7e Fix build.
The build was successful.
2019-04-11 13:31:17 +02:00
belliash b302e8c2b2 Test static variables.
The build has failed.
2019-04-11 13:29:44 +02:00
belliash a8a1a2cd51 Fix variable declaration in loops.
The build has failed.
2019-04-11 13:28:47 +02:00
belliash ee0d189f0a Add comments.
The build was successful.
2019-04-11 11:37:07 +02:00
belliash cdc0dade2a Allow to store a character in string variable.
The build was successful.
2019-04-11 11:33:00 +02:00
belliash aae526b1d4 Closure as filter.
The build was successful.
2019-04-11 09:10:03 +02:00
belliash 5cc803d07c Another closure test comes in.
The build was successful.
2019-04-11 08:58:54 +02:00
belliash 31f48b234b This is already fixed.
The build was successful.
2019-04-11 06:25:48 +02:00
belliash 4eaf6a7117 AerScript is strict type hinting language, thus OP_TEQ & OP_TNE are not needed here.
The build was successful.
2019-04-11 06:25:20 +02:00
belliash 9c426b20cc Factory design pattern test.
The build was successful.
2019-04-10 20:22:13 +02:00
belliash 725b60cb88 Check switch block.
The build was successful.
2019-04-10 20:01:17 +02:00
belliash 0c2b2c9df5 Class instance as argument.
The build was successful.
2019-04-10 19:54:05 +02:00
belliash 493fcd0e92 Test complex expressions one more time.
The build was successful.
2019-04-10 19:41:48 +02:00
belliash 57c6b3483a Test strtr() builtin function.
The build was successful.
2019-04-10 19:18:39 +02:00
belliash ab4705518c Another script for interpreter testing.
The build was successful.
2019-04-10 19:12:44 +02:00
belliash 08307c5ad6 Let's test exceptions.
The build was successful.
2019-04-10 18:59:26 +02:00
belliash 2a4e47e782 I hope this finally fixes the default argument value.
The build was successful.
2019-04-10 18:32:53 +02:00
belliash 527a6ad689 Mark argument as well as object, when class name is supplied.
The build was successful.
2019-04-10 13:58:24 +02:00
belliash 95c9fd0f1f Corrections in builtin library.
The build was successful.
2019-04-10 12:44:44 +02:00
belliash 46250f0cd8 IP address encode/decode test.
The build was successful.
2019-04-10 11:28:57 +02:00
belliash ee7b1e56ae Another test of closure.
The build was successful.
2019-04-10 11:19:29 +02:00
belliash a4b5db4005 Formatting.
The build was successful.
2019-04-10 09:52:20 +02:00
belliash 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.
2019-04-10 09:45:00 +02:00
belliash 65e38a364d Do not try to call an array.
The build was successful.
2019-04-10 09:26:06 +02:00
belliash 6b86f4c855 Add assertion test.
The build was successful.
2019-04-10 09:23:23 +02:00
belliash d6434ba19e Try to report some line.
The build was successful.
2019-04-10 09:18:26 +02:00
belliash 447910ce2e Fix callbacks.
The build was successful.
2019-04-10 09:08:10 +02:00
belliash f0e50678e3 Optimize the code a bit.
The build was successful.
2019-04-10 08:52:06 +02:00
belliash 8810a86a2c Fix for typoecasting callback to string.
The build was successful.
2019-04-10 08:50:04 +02:00
belliash b0165e5702 Do not reset blob when typecasting from string to callback.
The build was successful.
2019-04-10 06:57:14 +02:00
belliash 77ebce7acf Parser takes care about nested arrays.
The build was successful.
2019-04-10 06:18:49 +02:00
belliash c1e30d4c68 Another problem found.
The build was successful.
2019-04-08 17:21:25 +02:00
belliash ad3c6e6d7e Closure event test.
The build was successful.
2019-04-08 13:58:40 +02:00
belliash 77795bea4c Do not check for return value on OP_DONE.
The build was successful.
2019-04-08 13:51:54 +02:00
belliash 598dc9ce51 At least try to call callback and do not check for return value on OP_DONE.
The build was successful.
2019-04-08 13:49:12 +02:00
belliash d74b182235 Properly typecast callback to boolean.
The build was successful.
2019-04-08 13:32:50 +02:00
belliash b320d35cf7 Test char to int conversion.
The build was successful.
2019-04-08 10:32:31 +02:00
belliash c2b3cc1a2f Test magic methods.
The build was successful.
2019-04-08 10:24:32 +02:00
belliash db0bbf713b We need to fix callbacks.
The build was successful.
2019-04-08 09:37:47 +02:00
belliash 580d1af308 More tests to go.
The build was successful.
2019-04-08 09:31:58 +02:00
belliash 58b63a9f16 Another simple test.
The build was successful.
2019-04-08 08:57:45 +02:00
belliash 67f40db553 Typehinting test.
The build was successful.
2019-04-06 17:01:28 +02:00
belliash 1679420f4c Get rid of some invisible escape characters.
The build was successful.
2019-04-06 17:00:15 +02:00
belliash d34c8ceafb Fix void dump.
The build was successful.
2019-04-06 16:51:32 +02:00
belliash bda8316e1b Add interface tests (OOP).
The build was successful.
2019-04-06 16:02:20 +02:00
belliash 1fd161e394 This will be done in scope of ticket #48.
The build was successful.
2019-04-06 10:00:58 +02:00
belliash 246b097fad Update TODO list.
The build was successful.
2019-04-06 09:36:33 +02:00
belliash 7443663dd8 Fixes in PH7_OP_LOAD_IDX instruction.
The build was successful.
2019-04-06 09:36:08 +02:00
belliash f6e2b549b6 Access to undefined array index should be reported as error.
The build was successful.
2019-04-06 09:21:09 +02:00
belliash 72c420cc85 Correct another typo.
The build was successful.
2019-04-05 20:21:26 +02:00
belliash a501dea661 Fix a typo.
The build was successful.
2019-04-05 20:17:44 +02:00
belliash 25001ae746 This should be an error, really.
The build was successful.
2019-04-05 20:14:08 +02:00
belliash 2de455aa01 Fix formatting.
The build was successful.
2019-04-05 20:12:55 +02:00
belliash 95fba30f9b Better way to check arguments compatibility.
The build was successful.
2019-04-05 20:07:56 +02:00
belliash a06573408e Better way to check arguments compatibility.
The build was successful.
2019-04-05 19:59:15 +02:00
belliash 39f698476f This is not the right way to go - revert 465336b23b.
The build was successful.
2019-04-05 12:30:38 +02:00
belliash 465336b23b Mark void variable as well as NULL, and dump NULL as void.
The build was successful.
2019-04-05 11:52:15 +02:00
belliash a1151d598b Do not emit warning when assigning NULL to resource.
The build was successful.
2019-04-05 11:42:40 +02:00
belliash 5765ff3fd6 Additional tasks to be done.
The build was successful.
2019-04-05 11:14:32 +02:00
belliash 3359b99128 Test complex expressions.
The build was successful.
2019-04-05 09:43:07 +02:00
belliash afe978e366 Test call by dereferencing array.
The build was successful.
2019-04-05 09:22:47 +02:00
belliash 4d07a10336 One more callback test.
The build was successful.
2019-04-05 09:13:29 +02:00
belliash cfc0342a10 Let's test operators precedence.
The build was successful.
2019-04-05 09:08:11 +02:00
belliash 62d8451d12 Add multiple inheritance test.
The build was successful.
2019-04-05 08:52:30 +02:00
belliash 5bfa60724a Add new test - brainfuck interpreter.
The build was successful.
2019-04-05 08:07:06 +02:00
belliash fcd4e8d6a6 The readdir() function should return empty string instead of false.
The build was successful.
2019-04-05 07:54:47 +02:00
belliash 72dc44c152 Another fix for OP_DONE instruction.
The build was successful.
2019-04-05 07:45:53 +02:00
belliash 74f954b852 Fix OP_DONE instruction.
The build was successful.
2019-04-05 07:01:07 +02:00
belliash 5d369ba851 Fix static variables. Now access to non-initialized arrays member does not result in segmentation fault.
The build was successful.
2019-04-04 18:18:11 +02:00
belliash 9880f9963e Fix static and non-static class attributes. Now access to non-initialized arrays member does not result in segmentation fault.
The build was successful.
2019-04-04 18:15:41 +02:00
belliash c789b875f4 Description after problem investigation.
The build was successful.
2019-04-04 12:29:52 +02:00
belliash 1db4fc0515 Another problem found so far, workaround applied in 7ec7ade171.
The build was successful.
2019-04-04 12:07:47 +02:00
belliash dc44ee31b8 Add new test - luhn verification.
The build was successful.
2019-04-04 11:53:50 +02:00
belliash 7ec7ade171 Return a character from string if it is not ar array.
The build was successful.
2019-04-04 11:51:25 +02:00
belliash 01c210984e Further optimisations.
The build was successful.
2019-04-03 13:57:29 +02:00
belliash 5eeceb6927 Try to optimize the code a bit.
The build was successful.
2019-04-03 13:43:31 +02:00
belliash 9acd6fbcb2 Do not typecast NULL to StdClass.
The build was successful.
2019-04-03 09:34:32 +02:00
belliash 4467ca6dce Attempt to fix static variables.
The build has failed.
2019-04-03 09:02:49 +02:00
belliash 5463da88b0 Attempt to fix non-static class attributes.
The build was successful.
2019-04-03 08:32:59 +02:00
belliash 8d3b7f303f Allow to assign any value if data type is not specified.
The build was successful.
2019-04-03 08:11:55 +02:00
belliash d4d00db458 Attempt to fix static class attributes.
The build was successful.
2019-04-03 07:00:17 +02:00
belliash 8133c3dd6f Make a use of PH7_MemObjSafeStore().
The build was successful.
2019-04-03 06:37:35 +02:00