Object Slots
The layout of object slots for my instances.
Entries
The continuation that invoked this one, or nil for the outermost continuation. When a continuation is not directly created by an L1Operation.L1Ext_doPushLabel, it will have a type pushed on it. This type is checked against any value that the callee attempts to return to it. This supports link-time type strengthening at call sites.
The L2Chunk which can be resumed directly by the Interpreter to effect continued execution.
An instance of ContinuationRegisterDumpDescriptor, which holds a collection of AvailObject and Long values. These values are stored in the continuation for an L2Chunk to use as it wishes, but it's simply ignored when a chunk becomes invalid, since the unoptimizedChunk and its L1InstructionStepper always rely solely on the pure L1 state.
Properties
In Java it was possible to define this interface in such a way that the name method was abstract and implemented by each specific Enum, but Kotlin breaks this mechanism. BUT – we're able to cast this to Enum to get to that field. I believe this code gets copied down into each specific Enum subclass, so the dynamic type check for the cast is trivially eliminated in each case. And worst case, Hotspot will be able to inline calls to this from sites that are known to be Enums.
In Java it was possible to define this interface in such a way that the ordinal() method was abstract and implemented by each specific Enum, but Kotlin breaks this mechanism. BUT – we're able to cast this to Enum to get to that field. I believe this code gets copied down into each specific Enum subclass, so the dynamic type check for the cast is trivially eliminated in each case. And worst case, Hotspot will be able to inline calls to this from sites that are known to be Enums.
Functions
Returns the enum constant of this type with the specified name. The string must match exactly an identifier used to declare an enum constant in this type. (Extraneous whitespace characters are not permitted.)
Returns an array containing the constants of this enum type, in the order they're declared.