diff --git a/src/codeobject.h b/src/codeobject.h index e6bb0bf2..80ad7bea 100644 --- a/src/codeobject.h +++ b/src/codeobject.h @@ -78,6 +78,16 @@ struct CodeObjectSerializer{ buffer += END; } + void write_none(){ + buffer += 'N'; + buffer += END; + } + + void write_ellipsis(){ + buffer += 'E'; + buffer += END; + } + void write_bool(bool v){ buffer += 'b'; buffer += v ? '1' : '0'; diff --git a/src/vm.h b/src/vm.h index c8c6b3e6..7f415441 100644 --- a/src/vm.h +++ b/src/vm.h @@ -1569,6 +1569,8 @@ inline void CodeObjectSerializer::write_object(VM *vm, PyObject *obj){ else if(is_float(obj)) write_float(_CAST(f64, obj)); else if(is_type(obj, vm->tp_str)) write_str(_CAST(Str&, obj)); else if(is_type(obj, vm->tp_bool)) write_bool(_CAST(bool, obj)); + else if(obj == vm->None) write_none(); + else if(obj == vm->Ellipsis) write_ellipsis(); else{ throw std::runtime_error(fmt(OBJ_NAME(vm->_t(obj)).escape(), " is not serializable")); }