53 Commits

Author SHA1 Message Date
Volker Berlin
6923765683 add support for SWICH of strings 2020-03-05 21:31:15 +01:00
Volker Berlin
b1f775a33b A goto to the next address is like a NOP operation 2020-01-05 20:32:26 +01:00
Volker Berlin
724f39dc18 Warning for multiple CATCH blocks 2019-11-28 20:07:51 +01:00
Volker Berlin
ec898cad71 skip ELSE blocks on counting the stack 2019-09-29 13:47:45 +02:00
Volker Berlin
432baef4b4 fix end detecting of ELSE block and sub structures in the THEN block. 2019-09-25 22:32:41 +02:00
Volker Berlin
40375316e2 detect some optimization of GOTO jumps 2019-09-25 19:24:01 +02:00
Volker Berlin
ccbc633463 handle complex IF conditions 2019-08-02 22:39:04 +02:00
Volker Berlin
215d8ff70e calculate also the THEN position of an IF control structure 2019-08-02 11:11:10 +02:00
Volker Berlin
be77f59ac0 Add support for OR concatenated IF conditions 2019-07-29 19:15:47 +02:00
Volker Berlin
a019647094 fix && operator in if expression 2019-07-26 23:05:54 +02:00
Volker Berlin
b65027f156 fix push/pop value of compare instructions 2019-07-23 18:23:59 +02:00
Volker Berlin
cba37f1cef remove debug code 2019-04-02 20:57:00 +02:00
Volker Berlin
5e40f1603e pass the line number to the parsed instructions for a source map generation #6 2019-03-31 11:23:45 +02:00
Volker Berlin
66945d2974 improve "goto_w" support 2019-03-21 21:14:21 +01:00
Volker Berlin
0b3c1987f5 first support for "goto_w" Java bytecode instruction 2019-03-20 19:11:38 +01:00
Volker Berlin
1b6fd3c7a5 Replace the fix length of 3 byte for GOTO with a nextPosition because goto_w use 5 bytes. 2019-03-19 19:35:42 +01:00
Volker Berlin
86defc3792 improve exception handling 2019-03-09 13:22:40 +01:00
Volker Berlin
cd2f07733d improve the compiling of exceptions 2019-03-02 21:54:27 +01:00
Volker Berlin
09a9e66e42 Fix missing END of TRY CATCH with RETURN in CATCH block. 2019-02-23 14:59:43 +01:00
Volker Berlin
145a39079b use AnyType instead ValueType in the VariableManager 2019-01-20 19:58:23 +01:00
Volker Berlin
6196648cc0 add support for objects equals/not equals (if_acmpeq,if_acmpne) 2018-12-17 21:22:10 +01:00
Volker Berlin
ad30f90f48 implements ifnull and ifnotnull 2018-12-15 22:33:25 +01:00
Volker Berlin
ae08d21281 reorganize 2018-12-03 21:09:22 +01:00
Volker Berlin
f15e9c8341 experimental exception handling 2018-11-03 18:01:42 +01:00
Volker Berlin
ce3e2d7546 improve exception message 2018-10-13 21:51:34 +02:00
Volker
658b859b62 Fix the signum of compare operations in the text format. 2018-08-14 21:28:17 +02:00
Volker
0822d9af8c END can not be outside of parent block 2018-08-10 20:35:17 +02:00
Volker
9b554b114b calculate the block type of a if block for the conditional operator. 2018-08-10 18:52:29 +02:00
Volker
b1eb27c474 support dynamic result type for an if block 2018-08-05 14:45:18 +02:00
Volker
cc742b6259 docu 2018-08-03 18:29:53 +02:00
Volker
e3764913c3 negate compare condition of if operations in the branch manager instead on parsing the byte code. 2018-08-03 18:04:08 +02:00
Volker
fbe2d97fc6 Add negateCompare() and fix typos in method names. 2018-08-03 17:25:31 +02:00
Volker
ce82010721 pass the compare instruction of an IF operation to the branch manager 2018-08-03 15:17:07 +02:00
Volker
e1fa502b2d docu 2018-08-03 12:50:12 +02:00
Volker
f2942bffc5 Improve the loop compiling and add support for while{} loops with condition on loop start. 2018-08-02 12:18:31 +02:00
Volker
bab58acebe add branch operation after the creating the in memory model and not on
parsing.
2018-07-15 18:06:25 +02:00
Volker
dde69e55c9 Add java code position to the WasmInstruction 2018-07-09 17:18:15 +02:00
Volker
24bfe22a51 Use an intermediate model in the memory of the parsed Java bytecode. 2018-06-21 18:49:55 +02:00
Volker Berlin
0c83869a81 support the do while(condition) loop 2018-06-02 23:57:04 +02:00
Volker Berlin
9b3993450e Fix "switch" with multiple "case" values for one block. 2018-06-01 22:04:34 +02:00
Volker Berlin
675d0e76d6 remove unneeded code 2018-05-20 15:57:38 +02:00
Volker Berlin
c8ef4fd3c7 first steps to compile loops 2018-05-20 11:54:06 +02:00
Volker Berlin
59757b3927 make difference between tableswitch and lookupswitch clearer 2018-05-12 09:59:42 +02:00
Volker Berlin
6c971c6525 implements lookupswitch 2018-05-11 22:07:22 +02:00
Volker Berlin
3fa6f5670e convert the GOTO in a switch into "br" 2018-05-08 22:20:33 +02:00
Volker Berlin
0ece5f2dfe use the ValueStackManager to start the switch block on the value
declaration
2018-05-07 18:46:15 +02:00
Volker Berlin
57fca76063 make private again 2018-05-06 14:33:22 +02:00
Volker Berlin
8ed4a37413 handle the table switch operation 2018-05-05 21:43:30 +02:00
Volker Berlin
ac9758334d Split BlockOperator; handle the br operator 2018-05-04 20:52:54 +02:00
Volker Berlin
29ec5ace04 Improve error messages in BranchManager 2018-05-01 11:46:42 +02:00