anchor.diff:    var reactFactory = internal.createFactory(clazz);
   
     return ([Map props, children]) {
  -    // Use the props hash code as a key to retrieve them later.
  -    var propKey = props.hashCode;
  -    componentProps[propKey] = props;
  +    // Copy the props into a new map, so that we can get a unique hash code to be used for
  +    // mapping the props between Dart and JS interop.
  +    var copiedProps = new Map.from(props ?? {});
  +    var propKey = copiedProps.hashCode;
  +    componentProps[propKey] = copiedProps;
   
       var jsProps = new internal.Props(propKey__: propKey);
       return reactFactory(jsProps, children);
  
positive.code:     }),
      componentDidUpdate: allowInteropCaptureThis((jsComponent, jsPrevProps, jsPrevState, jsPrevContext) {
        // Clean up the prop keys
        var prevProps = componentProps.remove(jsPrevProps["__propKey"]);
        var component = components[jsComponent];
        component.componentDidUpdate(prevProps, component._prevState);
      }),
  
negative.code:       component.componentWillUnmount();
      }),
      render: allowInteropCaptureThis((jsComponent) {
        // The returned element gets converted to a DartObject when running in JS, and
        // causes React gives up on rendering the component.
        // See: https://github.com/danschultz/react.dart/issues/1
        return components[jsComponent].render();
      })
    );
  