constructor() {
    this.map = new Map();
  }
Needed to prevent stack overflow
while replacing complex objects
like components because we create
new objects with the CustomValue API
(.i.e `{ _custom: { ... } }`)