anchor.diff:        return {};
       }),
       componentWillMount: allowInteropCaptureThis((jsComponent) => components[jsComponent].componentWillMount()),
  -    componentDidMount: allowInteropCaptureThis((jsComponent) {
  -      var component = components[jsComponent];
  -      component.componentDidMount();
  -    }),
  +    componentDidMount: allowInteropCaptureThis((jsComponent) => components[jsComponent].componentDidMount()),
       shouldComponentUpdate: allowInteropCaptureThis((jsComponent, jsNextArgs, jsNextState, jsNextContext) {
         var component = components[jsComponent];
  -      var nextProps = componentProps[jsNextArgs["__propKey"]];
  +      var nextProps = componentProps[jsNextArgs["propKey__"]];
   
         if (component.shouldComponentUpdate(nextProps, component._nextState)) {
           return true;
  
positive.code:     }),
      componentWillUpdate: allowInteropCaptureThis((jsComponent, jsNextArgs, jsNextState, jsPrevContext) {
        var component = components[jsComponent];
        var nextProps = componentProps[jsNextArgs["__propKey"]];
  
        component.componentWillUpdate(nextProps, component._nextState);
        component._props = nextProps;
  
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();
      })
    );
  