Ivan Kylchik
|
eb3ac74c3f
|
Move out intrinsic evaluation from interpreter class
|
2020-06-24 16:12:54 +03:00 |
|
Ivan Kylchik
|
6eae77572a
|
Move stack trace inside Stack class
|
2020-06-24 16:12:54 +03:00 |
|
Ivan Kylchik
|
e00dc76645
|
Simplify constructor interpretation
Unified case with secondary and primary constructors
|
2020-06-24 16:12:53 +03:00 |
|
Ivan Kylchik
|
cf63a5f52b
|
Replace some casts to Primitive with corresponding extension calls
|
2020-06-24 16:12:53 +03:00 |
|
Ivan Kylchik
|
5791ecd4f7
|
Remove redundant suspend modifiers
|
2020-06-24 16:12:53 +03:00 |
|
Ivan Kylchik
|
cb0eb008f8
|
Implement correct access to stack
Rewrote work with data and implement Stack class that work over Frame
|
2020-06-24 16:12:53 +03:00 |
|
Ivan Kylchik
|
06e6c7cdf5
|
Implement interpretation for object with overridden methods
|
2020-06-24 16:12:53 +03:00 |
|
Ivan Kylchik
|
fe7abb7132
|
Remove unnecessary code about handling KotlinNullPointerException
This part of code was necessary because jvm threw
KotlinNullPointerException, but js expected NullPointerException.
|
2020-06-24 16:12:53 +03:00 |
|
Ivan Kylchik
|
2f41eef797
|
Replace throw of interpreter errors by throw of InterpreterException
|
2020-06-24 16:12:53 +03:00 |
|
Ivan Kylchik
|
aed78f3c9b
|
Bound commands limit and throw interpreter exception upon exceeding
|
2020-06-24 16:12:52 +03:00 |
|
Ivan Kylchik
|
be42ae470d
|
Simplify extraction logic of receiver in ir call interpreter
|
2020-06-24 16:12:52 +03:00 |
|
Ivan Kylchik
|
2189fe5796
|
Add suspend modifier to getNextLabel method in Label interface
|
2020-06-24 16:12:52 +03:00 |
|
Ivan Kylchik
|
fd51a9a085
|
Change signature in getArgsForMethodInvocation method
|
2020-06-24 16:12:52 +03:00 |
|
Ivan Kylchik
|
30e352ea27
|
Move Variable data class to separate file
|
2020-06-24 16:12:52 +03:00 |
|
Ivan Kylchik
|
ef4e4881b7
|
Implement spread operator interpretation
|
2020-06-24 16:12:52 +03:00 |
|
Ivan Kylchik
|
c9e5b6a234
|
Unify value arguments interpretation
|
2020-06-24 16:12:52 +03:00 |
|
Ivan Kylchik
|
520f2455b3
|
Create and implement ExecutionResult interface to use as return status
This is replacement for Code enum class that was returned from
methods of interpreter earlier
|
2020-06-24 16:12:51 +03:00 |
|
Ivan Kylchik
|
77978637a8
|
Move all classes from State.kt into separate files
|
2020-06-24 16:12:51 +03:00 |
|
Ivan Kylchik
|
530252eea8
|
Move State.kt in separate package
|
2020-06-24 16:12:51 +03:00 |
|
Ivan Kylchik
|
7e7a5fe736
|
Add reference to sub class in Complex class
This is replacement for instance field
|
2020-06-24 16:12:51 +03:00 |
|
Ivan Kylchik
|
ad7055b8a0
|
Move additional stack filling in ExceptionState class
|
2020-06-24 16:12:51 +03:00 |
|
Ivan Kylchik
|
900e78b39b
|
Add hashCode, equals and toString methods from String in builtin map
|
2020-06-24 16:12:51 +03:00 |
|
Ivan Kylchik
|
82acf7deb6
|
Change getting function receiver for method with multiple overridden
|
2020-06-24 16:12:50 +03:00 |
|
Ivan Kylchik
|
0400a62014
|
Improve receivers search in data pool
|
2020-06-24 16:12:50 +03:00 |
|
Ivan Kylchik
|
b6cf17af1b
|
Save context of inline and local functions
|
2020-06-24 16:12:50 +03:00 |
|
Ivan Kylchik
|
28d6752315
|
Change usages of IrFunctionImpl to more common IrSimpleFunction
|
2020-06-24 16:12:50 +03:00 |
|
Ivan Kylchik
|
c45993b2b1
|
Implement interpretation for return statements with labels
|
2020-06-24 16:12:50 +03:00 |
|
Ivan Kylchik
|
5c845da18a
|
Implement interpretation for unsigned numbers
|
2020-06-24 16:12:50 +03:00 |
|
Ivan Kylchik
|
b175f46315
|
Implement interpretation of Char and Long classes from js stdlib
|
2020-06-24 16:12:50 +03:00 |
|
Ivan Kylchik
|
2310a04e4e
|
Add toString, hashCode and equals primitives methods in ir builtin map
|
2020-06-24 16:12:49 +03:00 |
|
Ivan Kylchik
|
00366197f8
|
Implement interpretation of Enum class hashCode method
|
2020-06-24 16:12:49 +03:00 |
|
Ivan Kylchik
|
6a9f4cf8b7
|
Change interpretCall to be able to interpret data class copy method
|
2020-06-24 16:12:49 +03:00 |
|
Ivan Kylchik
|
bab4407c0a
|
Implement interpretation for destructing declaration
|
2020-06-24 16:12:49 +03:00 |
|
Ivan Kylchik
|
ff6e06aa14
|
Implement regular expression interpretation
|
2020-06-24 16:12:49 +03:00 |
|
Ivan Kylchik
|
4d80d17b23
|
Implement interpretation for expect enum class
|
2020-06-24 16:12:49 +03:00 |
|
Ivan Kylchik
|
731fb9bc70
|
Make ir interpreter to work with minimal dependence on ir lowerings
|
2020-06-24 16:12:48 +03:00 |
|
Ivan Kylchik
|
4c1727b82e
|
Move intrinsic handling inside IrInterpreter class
|
2020-06-24 16:12:48 +03:00 |
|
Ivan Kylchik
|
27e2faa778
|
Implement enum interpretation
|
2020-06-24 16:12:48 +03:00 |
|
Ivan Kylchik
|
d6a45dfe75
|
Implement instance of check in compile time
|
2020-06-24 16:12:48 +03:00 |
|
Ivan Kylchik
|
0a70277240
|
Make stack trace from exceptions more precise
Additional information is retrieved from original stack trace when
exception happened during wrapper invocation.
|
2020-06-24 16:12:48 +03:00 |
|
Ivan Kylchik
|
18d29f7d98
|
Make possible to create arrays with their constructors
|
2020-06-24 16:12:47 +03:00 |
|
Ivan Kylchik
|
aca889a95b
|
Add inc, dec methods in ir builtins map and remove toString and equals
|
2020-06-24 16:12:47 +03:00 |
|
Ivan Kylchik
|
169a2f361c
|
Add support for cause field in exceptions
|
2020-06-24 16:12:47 +03:00 |
|
Ivan Kylchik
|
6af47ad7b3
|
Implement basic stack trace reporting if unhandled exception appear
|
2020-06-24 16:12:47 +03:00 |
|
Ivan Kylchik
|
66dbd1af34
|
Mark all IrInterpreter methods as suspend
This change is used to get rid of unhandled StackOverflowError and
to be able to manually throw it.
|
2020-06-24 16:12:47 +03:00 |
|
Ivan Kylchik
|
2985e8bcd3
|
Clean up code of ir builtins map generator
|
2020-06-24 16:12:47 +03:00 |
|
Ivan Kylchik
|
cbc9c19faf
|
Add methods for message and clause from Throwable in ir builtins map
|
2020-06-24 16:12:46 +03:00 |
|
Ivan Kylchik
|
d9279bff73
|
Introduce ExceptionState class responsible for all kind of exceptions
|
2020-06-24 16:12:46 +03:00 |
|
Ivan Kylchik
|
be3eb98fbd
|
Introduce new Common state that represent common object
This is a replacement for Complex, that are now an abstract class.
|
2020-06-24 16:12:46 +03:00 |
|
Ivan Kylchik
|
4345294ac1
|
Add all methods from Any class in ir builtins map
|
2020-06-24 16:12:46 +03:00 |
|