5 The attributes which are not included in Java ME are:
7 The Synthetic attribute (JVMS ??4.7.8)
8 The Signature attribute (JVMS ??4.7.9)
9 The SourceFile attribute (JVMS ??4.7.10)
10 The SourceDebugExtension attribute (JVMS ??4.7.11)
11 The LineNumberTable attribute (JVMS ??4.7.12)
12 The LocalVariableTable attribute (JVMS ??4.7.13)
13 The LocalVariableTypeTable attribute (JVMS ??4.7.14)
14 The Deprecated attribute (JVMS ??4.7.15)
15 The RuntimeVisibleAnnotations attribute (JVMS ??4.7.16)
16 The RuntimeInvisibleAnnotations attribute (JVMS ??4.7.17)
17 The RuntimeVisibleParameterAnnotations attribute (JVMS ??4.7.18)
18 The RuntimeInvisibleParameterAnnotations attribute (JVMS ??4.7.19)
19 The AnnotationDefault attribute (JVMS ??4.7.20)
20 The BootstrapMethod attribute (JVMS ??4.7.21)
22 And this is a list of every attribute, with ones not cared about marked:
25 +++ Not listed above, but should be gone due to lack of reflection.
26 *** Not needed at the VM level, but needed by Java compilers.
31 SourceDebugExtension---
36 RuntimeVisibleParameterAnnotations---***
37 RuntimeInvisibleParameterAnnotations---***
39 MethodParameters+++***
43 RuntimeVisibleAnnotations---***
44 RuntimeInvisibleAnnotations---***
47 LocalVariableTypeTable---
49 RuntimeVisibleTypeAnnotations+++***
50 RuntimeInvisibleTypeAnnotations+++***
52 So with all of the removals I only need to consider the following:
57 StackMap (for older J2ME code, similar to StackMapTable)
59 Which simplifies things greatly. I should however include some kind of debug
60 information with the line number table at least, so if exceptions are thrown
61 it can be determined where they are. The line number table would probably be
62 in an external map file if it is not feasible to include it.
66 I should also note that these 4 annotations, 1 is for fields, 1 is for methods,
67 and 2 are for codes. This means I can pretty much just completely skip parsing
68 annotations in class files because they are just pointless.
72 Need to keep an eye out for signature polymorphic signatures. I also believe I
73 will just not have a flag for `invokedynamic` override.
77 I do wonder how I can have a rather light decoding of fields and methods.
81 I suppose to reduce the static consant requirements and such, I will have
82 error codes for exceptions rather than having english derived messages. If you
83 have a small amount of storage space, then you might not want to waste it on
84 descriptive exception messages.
88 And I finished translating all the errors, that took about 2 hours to do.
92 Made a sub-reddit for this: <https://www.reddit.com/r/SquirrelJME/>. This
93 will be useful for technical support and feature requests and would be a bit
94 more public compared to e-mail.
98 One thing that might be best, would be to actually have fields and methods
99 which may be registered to a class.