Commit Graph

964 Commits

Author SHA1 Message Date
6b18e204cd
Always pop the l-value on variable declaration.
All checks were successful
The build was successful.
Otherwise, it might lead to unexpected behaviour including protected memory access and segmentation fault.
This finally fixes #49.
2019-04-16 20:15:38 +02:00
a5da714d61
Test while loop.
All checks were successful
The build was successful.
2019-04-16 19:31:24 +02:00
88d382b76b
Add missing VM OP descriptions.
All checks were successful
The build was successful.
2019-04-16 19:12:39 +02:00
2894c55dfa
Add some comments, to see if they are working.
All checks were successful
The build was successful.
2019-04-16 15:08:08 +02:00
0b11d59f9f
Remove this dirty hack.
All checks were successful
The build was successful.
This test should now work without it.
2019-04-16 13:59:10 +02:00
07e3a09999
Enter and leave a loop frame on every iteration.
All checks were successful
The build was successful.
This fixes strict variable declaration inside loops.
2019-04-16 13:51:58 +02:00
ba8e9080ef
Implement OP_JMPLFB & OP_JMPLFE VM instructions.
All checks were successful
The build was successful.
2019-04-16 12:46:58 +02:00
ef4f994e8b
Do not allow 'break' statement to take a parameter. This is strange construction introduced in PHP.
All checks were successful
The build was successful.
2019-04-16 12:34:53 +02:00
5fddbf8737
Do not allow 'continue' statement to take a parameter. This is strange construction introduced in PHP.
All checks were successful
The build was successful.
2019-04-16 12:32:01 +02:00
89f19133d5
Rename VM's jump instructions for better readability.
All checks were successful
The build was successful.
2019-04-16 08:14:16 +02:00
eb80dced3e
Correct comment.
All checks were successful
The build was successful.
2019-04-15 20:00:54 +02:00
f9b518138e
Cleanup OP_LOAD instruction.
All checks were successful
The build was successful.
2019-04-15 19:44:49 +02:00
517dffcbc1
Separate VM instruction for variable declaration (OP_DECLARE).
All checks were successful
The build was successful.
2019-04-15 19:18:29 +02:00
1b248a17e7
Query the top active as well as all loop frames.
All checks were successful
The build was successful.
2019-04-15 18:32:30 +02:00
661158d249
Simply throw memory error.
All checks were successful
The build was successful.
2019-04-15 17:41:29 +02:00
94e06f3d3a
Do not duplicate the code; make a use of VmCreateMemObj().
All checks were successful
The build was successful.
2019-04-15 17:14:14 +02:00
9e06322b57
Implement VmCreateMemObj().
All checks were successful
The build was successful.
2019-04-15 17:04:44 +02:00
0f0fc01a96
We need to distinguish the loop frames.
All checks were successful
The build was successful.
2019-04-13 20:21:47 +02:00
c51b3dfa8a
Revert 89d5158d7e and a8a1a2cd51. Fix should be based on VM frames.
All checks were successful
The build was successful.
2019-04-13 14:39:57 +02:00
583f43e1f7
Convert carriage return and line feed to line feed (UNIX line ending).
All checks were successful
The build was successful.
2019-04-13 14:37:04 +02:00
aea0d1a5ec
Workaround applied to make test working.
All checks were successful
The build was successful.
2019-04-13 14:35:27 +02:00
e3ad3eb84b
Another bug found that needs to be fixed before merge to master branch.
All checks were successful
The build was successful.
2019-04-13 14:32:43 +02:00
98898c16c5
Builtin library will be reworked later. Out of scope.
All checks were successful
The build was successful.
2019-04-13 09:09:25 +02:00
89d5158d7e
Fix build.
All checks were successful
The build was successful.
2019-04-11 13:31:17 +02:00
b302e8c2b2
Test static variables.
Some checks reported errors
The build has failed.
2019-04-11 13:29:44 +02:00
a8a1a2cd51
Fix variable declaration in loops.
Some checks reported errors
The build has failed.
2019-04-11 13:28:47 +02:00
ee0d189f0a
Add comments.
All checks were successful
The build was successful.
2019-04-11 11:37:07 +02:00
cdc0dade2a
Allow to store a character in string variable.
All checks were successful
The build was successful.
2019-04-11 11:33:00 +02:00
aae526b1d4
Closure as filter.
All checks were successful
The build was successful.
2019-04-11 09:10:03 +02:00
5cc803d07c
Another closure test comes in.
All checks were successful
The build was successful.
2019-04-11 08:58:54 +02:00
31f48b234b
This is already fixed.
All checks were successful
The build was successful.
2019-04-11 06:25:48 +02:00
4eaf6a7117
AerScript is strict type hinting language, thus OP_TEQ & OP_TNE are not needed here.
All checks were successful
The build was successful.
2019-04-11 06:25:20 +02:00
9c426b20cc
Factory design pattern test.
All checks were successful
The build was successful.
2019-04-10 20:22:13 +02:00
725b60cb88
Check switch block.
All checks were successful
The build was successful.
2019-04-10 20:01:17 +02:00
0c2b2c9df5
Class instance as argument.
All checks were successful
The build was successful.
2019-04-10 19:54:05 +02:00
493fcd0e92
Test complex expressions one more time.
All checks were successful
The build was successful.
2019-04-10 19:41:48 +02:00
57c6b3483a
Test strtr() builtin function.
All checks were successful
The build was successful.
2019-04-10 19:18:39 +02:00
ab4705518c
Another script for interpreter testing.
All checks were successful
The build was successful.
2019-04-10 19:12:44 +02:00
08307c5ad6
Let's test exceptions.
All checks were successful
The build was successful.
2019-04-10 18:59:26 +02:00
2a4e47e782
I hope this finally fixes the default argument value.
All checks were successful
The build was successful.
2019-04-10 18:32:53 +02:00
527a6ad689
Mark argument as well as object, when class name is supplied.
All checks were successful
The build was successful.
2019-04-10 13:58:24 +02:00
95c9fd0f1f
Corrections in builtin library.
All checks were successful
The build was successful.
2019-04-10 12:44:44 +02:00
46250f0cd8
IP address encode/decode test.
All checks were successful
The build was successful.
2019-04-10 11:28:57 +02:00
ee7b1e56ae
Another test of closure.
All checks were successful
The build was successful.
2019-04-10 11:19:29 +02:00
a4b5db4005
Formatting.
All checks were successful
The build was successful.
2019-04-10 09:52:20 +02:00
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.
All checks were successful
The build was successful.
2019-04-10 09:45:00 +02:00
65e38a364d
Do not try to call an array.
All checks were successful
The build was successful.
2019-04-10 09:26:06 +02:00
6b86f4c855
Add assertion test.
All checks were successful
The build was successful.
2019-04-10 09:23:23 +02:00
d6434ba19e
Try to report some line.
All checks were successful
The build was successful.
2019-04-10 09:18:26 +02:00
447910ce2e
Fix callbacks.
All checks were successful
The build was successful.
2019-04-10 09:08:10 +02:00