By default ASM strips optional attributes, in order to keep them in the bytecode that is being readed you should pass an array of required attribute instances to {@link com.uwyn.rife.continuations.asm.ClassReader#accept(com.uwyn.rife.continuations.asm.ClassVisitor, com.uwyn.rife.continuations.asm.Attribute[], boolean) ClassReader.accept()} method. In order to add custom attributes to the manually constructed bytecode concrete subclasses of the {@link com.uwyn.rife.continuations.asm.Attribute Attribute} can be passed to the visitAttribute methods of the {@link com.uwyn.rife.continuations.asm.ClassVisitor ClassVisitor}, {@link com.uwyn.rife.continuations.asm.FieldVisitor FieldVisitor} and {@link com.uwyn.rife.continuations.asm.MethodVisitor MethodVisitor} interfaces. @since ASM 1.4.1