45 Commits

Author SHA1 Message Date
Volker Berlin
442e0c896c
Use the normal break handling for the GOTO in the CASEs of an SWITCH. This eliminates the need to calculate the end of the SWITCH structure. #43 2022-06-06 15:21:14 +02:00
Volker Berlin
bf58d2968a
Change the used Wasm instruction from IF ELSE END to BLOCK BLOCK BR_IF END END to solve problems of complex if expressions. 2022-05-26 21:50:45 +02:00
Volker Berlin
9acda37be4
fix conditionals expressions as method parameters in a SWITCH. 2022-05-07 21:19:48 +02:00
Volker Berlin
f52c41ae14 fix loop detection for nested loops 2022-03-13 14:16:31 +01:00
Volker Berlin
9f0f82bb06 Use also RETURN in the BranchManager to calculate the IF THEN ELSE blocks. 2022-02-19 22:15:56 +01:00
Volker Berlin
86f95ad3bb fix WHILE loop after a return 2022-02-13 13:18:32 +01:00
Volker Berlin
71d2b91895 fix a while loop in ELSE after an return. 2022-01-30 14:34:39 +01:00
Volker Berlin
ec7f23a35f Fix a loop inside an ELSE block 2022-01-23 16:48:40 +01:00
Volker Berlin
27faeada39 fix concatenated conditional operators 2022-01-01 21:03:06 +01:00
Volker Berlin
d68c74f032 Normalize empty THEN blocks to fix concated conditional operators 2021-12-26 20:17:15 +01:00
Volker Berlin
effd5813c9 Handle a GOTO instruction that come from a CONTINUE in a loop. 2021-11-16 21:28:11 +01:00
Volker Berlin
87be1faafe Handle Conditional operator inside an if expression 2021-10-24 15:29:12 +02:00
Volker Berlin
4e9e5ca069 Fix IF construct with conditional operator inside THEN. 2021-05-16 18:44:23 +02:00
Volker Berlin
a0d56ddcc3 fix IF with complex && and || operations. see #17 2020-05-27 21:21:50 +02:00
Volker Berlin
8f1cc4bf97 fix IF-GOTO analyzing for multiple sub IF inside the THEN part. 2020-05-25 19:28:47 +02:00
Volker Berlin
f383ef26e8 fix bug with cascaded if blocks 2020-05-17 13:57:30 +02:00
Volker Berlin
63384e359a fix do while with multiple conditions 2020-03-21 21:16:10 +01:00
Volker Berlin
ab95396471 never break inside conditional operator 2020-03-21 15:58:50 +01:00
Volker Berlin
62b16ac07e Fix switch blocks with string cases and add tests. 2020-03-07 17:01:59 +01:00
Volker Berlin
40375316e2 detect some optimization of GOTO jumps 2019-09-25 19:24:01 +02:00
Volker Berlin
fd0a22121c reorder the script engines for testing 2019-08-27 18:25:31 +02:00
Volker Berlin
ccbc633463 handle complex IF conditions 2019-08-02 22:39:04 +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
40bb69fd16 Improve test speed by executing all tests of an wasm file at once. 2019-06-17 19:00:16 +02:00
Volker Berlin
3af321a076 Use a temporary hack for SpiderMonkey WasmTextToBinary 2019-04-22 16:21:02 +02:00
Volker Berlin
97e3c9616f Skip some Tests for SpiderMonkeyWat because bugs in WasmTextToBinary 2019-04-20 15:11:08 +02:00
Volker Berlin
9653520c2b Rewrite the LocalVariableManager to handle the Java reuse of a variable slot with different type. 2019-04-14 14:29:09 +02:00
Volker
fcaa15d22d Fix SWITCH start position detection and replace erroneous ValueStackManager 2018-08-11 18:12:40 +02:00
Volker
0822d9af8c END can not be outside of parent block 2018-08-10 20:35:17 +02:00
Volker
b5296e6268 test for conditional operator 2018-08-10 18:52:50 +02:00
Volker
ec10240c52 add tests for compare of non int data values 2018-08-03 19:42:20 +02:00
Volker
2a45895a62 activate for loop test 2018-08-03 18:05:03 +02:00
Volker
ca673d84ee more tests for "do while" and "while" loops. 2018-08-02 12:19:20 +02:00
Volker
6554e0fae3 Use annotation package from jwebassembly-api library 2018-06-11 18:47:10 +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
7c0e5d84fb first loop test 2018-05-20 16:16:11 +02:00
Volker Berlin
2cb0988e68 Implements more if(compare) operation codes 2018-05-12 13:48:07 +02:00
Volker Berlin
6c971c6525 implements lookupswitch 2018-05-11 22:07:22 +02:00
Volker Berlin
903c2e0e28 first switch test 2018-05-08 22:21:22 +02:00
Volker Berlin
97283a1d39 new branch manager with internal hierarchy. 2018-03-30 17:33:23 +02:00
Volker Berlin
01386051af Test for iflt 2018-03-27 20:05:06 +02:00
Volker Berlin
8d7ea08f64 implements byte code ifne 2018-03-25 21:06:18 +02:00
Volker Berlin
d26b9bbb94 first step of a "if" implementation 2018-03-25 12:57:04 +02:00