Rafal Kupiec
ba43269b80
Do not release the bytecode container right after code execution.
1 year ago
Rafal Kupiec
bb20f04f3c
Implement VmExecFinallyBlock().
1 year ago
Rafal Kupiec
c3184eb3ea
Return a VmByteCodeExec() return value from inside a PH7_VmCallUserFunction().
1 year ago
Rafal Kupiec
84b5fd2717
Test 'finally' block compiler.
1 year ago
Rafal Kupiec
045ebe92ae
At least compile the 'finally' block for now.
1 year ago
Rafal Kupiec
9fe4aa653f
We will store 'finally' block bytecode here.
1 year ago
Rafal Kupiec
b5cdbf4721
Allow to access variables from active frames after exception is thrown.
1 year ago
Rafal Kupiec
d57d6caf2d
Add 'finally' frame definition.
1 year ago
Rafal Kupiec
d0840d7eea
Cleanup after switching from 'parent' constant to '$parent' variable.
1 year ago
Rafal Kupiec
625a386b69
Get rid of 'self' statement.
1 year ago
Rafal Kupiec
3184b95a09
Do not use 'self' construct referring to current class.
1 year ago
Rafal Kupiec
5f90f3e8e1
Install $parent & $this only if there is class instantiated.
1 year ago
Rafal Kupiec
3689a0239a
Lets test access to derived attributes.
1 year ago
Rafal Kupiec
1f7e14fd7a
Finally, do it the proper way. This should fix all problems with accessing class attributes, at least I hope so.
1 year ago
Rafal Kupiec
519f5050b7
The easiest solutions are the best. Just look for attributes in object.
1 year ago
Rafal Kupiec
cd9ff68ae9
Completely disallow static methods in interfaces.
1 year ago
Rafal Kupiec
984429bc55
Disallow static method declarations in interface.
1 year ago
Rafal Kupiec
53199cac4e
Another fixes to OOP-related error reporting.
1 year ago
Rafal Kupiec
feba01eb49
More fixes to error messages.
1 year ago
Rafal Kupiec
b1b78433dd
Clean up $base statement.
1 year ago
Rafal Kupiec
fd278b1f47
Test static class.
1 year ago
Rafal Kupiec
a3a2c8b619
Allow non-static methods inside static (final virtual) classes to be called statically.
1 year ago
Rafal Kupiec
ba1c840009
Allow a 'final virtual' classes to be declared.
Virtual final classes are helpful in the case someone is wrapping common functions that are static, but the common class itself cannot be instantiated.
1 year ago
Rafal Kupiec
3530e6ea09
Get rid of useless class_alias() builtin function.
1 year ago
Rafal Kupiec
1bf5c3a8a2
Consider private attributes to be accessed. Fix access check.
1 year ago
Rafal Kupiec
c206011c95
Rework PH7_ClassExtractAttribute() function. Now it returns a pointer to valid attribute.
1 year ago
Rafal Kupiec
8847d645c0
More corrections to error messages.
1 year ago
Rafal Kupiec
1c0ba22c48
Check access level for static methods call.
1 year ago
Rafal Kupiec
7732a239ff
Correct error messages.
1 year ago
Rafal Kupiec
5e166492d5
Revert 02471b4ccb
.
1 year ago
Rafal Kupiec
a5fb8ff8be
VmClassMemberAccess() should only check access right.
There is no need for this function to report errors. Function should have responsibility over a single part of the functionality provided. This change also corrects some error messages.
1 year ago
Rafal Kupiec
d924d41a7a
Do not unset $this.
Let the garbage collector do its job and fix the test.
1 year ago
Rafal Kupiec
a6f7c6d847
Prevent $base, $parent and $this from being unset.
1 year ago
Rafal Kupiec
02471b4ccb
Do not install private methods from parent to subclass.
All methods defined in superclass can be access by $this and $parent construct. There is no need to copy private methods, as they cannot be access in $this context.
1 year ago
Rafal Kupiec
28e18bcb4b
Attempt to fix attributes lookup and their visibility.
1 year ago
Rafal Kupiec
2d50a64cac
AerScript supports multiple inheritance, thus it needs to iterate through whole list of derived classes.
1 year ago
Rafal Kupiec
4d1c246a65
Attempt to fix methods visibility mechanism.
1 year ago
Rafal Kupiec
1f5afc9d51
Reverse the logic. It does not seem to work actually.
1 year ago
Rafal Kupiec
675f3596a1
Properly look for method in all classes.
1 year ago
Rafal Kupiec
26333360b0
Fix similar to a25b163af6
.
1 year ago
Rafal Kupiec
1175219ad4
Temporarily fix test.
1 year ago
Rafal Kupiec
b319e11c09
Fix build.
1 year ago
Rafal Kupiec
5c176207e1
Set base class only when $base called.
1 year ago
Rafal Kupiec
5cc4a5e48d
Access privileges to methods should be done in OP_MEMBER.
1 year ago
Rafal Kupiec
e654e42b07
Store class directly in function container.
1 year ago
Rafal Kupiec
5b2f300fe4
Implement '$base' construction.
1 year ago
Rafal Kupiec
d8db20e9bd
Do not use as variable name.
1 year ago
Rafal Kupiec
1f78547ca2
Convert DOS2UNIX.
1 year ago
Rafal Kupiec
ddd46a4e80
Quick small cleanup.
1 year ago
Rafal Kupiec
3cca5faa76
Store variable type in dedicated field.
1 year ago