At least with the lack of invokedynamic support I do not have to worry about handling it. However, it is possible that a newer version of JavaME might support invokedynamic (since lambdas are useful and Java ME 8 is essentially 7). Therefor, I should take this into consideration.


Implementing it without actually needing it could end up being a waste however. So I will consider having room for it to be supported in the future but not actually implement it. However, not considering it at all would be simpler. On another note, I could support virtual environments such as Java and WebAssembly. So basically SquirrelJME could run on older Java VMs or in web browsers. Having it run on web browser would make demoing a bit easier without requiring users to download it, although local filesystem access and such would not be available. If I were to write a web browser for Java ME, I would likely only support WebAssembly since Javascript is a giant mess. A third-party Javascript library could be used instead to support that.


Constants would be best in their own class.


Since Java ME lacks EnumMap, I am going to have to roll my own.


However since I cannot reflect enumeration values, I essentially will just have to pass a list of entries. However that will require either a shared global or copes of much data. So I just need a kind of bitsit where I can check ordinals on, or just use a integer field then just have a manual flag bit check in there.


I should probably shorten all of the interpreter stuff to instead be for example JVM. That would be more compact and I would not need to type Interpreter. It would also likely look nicer too.


I do wonder though if the interpreted environment should match the one that would be compiled. That is, have an actual memory space as I would for a normal virtual machine compilation and actually use pointers to modify objects and such. That would make the compilation part a bit easier becuase I could use the native magic stuff for that. However, the magical stuff would be a bit abstracted so VM wise there would not be direct memory access from any of the core classes (at least there should not be any).