anchor.diff:    }
   
     /// Wrapper for [Component.componentWillReceiveProps].
  -  var componentWillReceiveProps =
  -      allowInteropCaptureThis((ReactComponent jsThis, InteropProps newArgs, [reactInternal]) => zone.run(() {
  +  void componentWillReceiveProps(ReactComponent jsThis, InteropProps newArgs, [reactInternal]) => zone.run(() {
       var component = jsThis.props.internal.component;
       var nextProps = _getNextProps(component, newArgs);
       component.nextProps = nextProps;
       component.componentWillReceiveProps(nextProps);
  -  }));
  +  });
   
     /// Wrapper for [Component.shouldComponentUpdate].
  -  var shouldComponentUpdate =
  -      allowInteropCaptureThis((ReactComponent jsThis, InteropProps newArgs, nextState, nextContext) => zone.run(() {
  +  bool shouldComponentUpdate(ReactComponent jsThis, InteropProps newArgs, nextState, nextContext) => zone.run(() {
       Component component = jsThis.props.internal.component;
   
       if (component.shouldComponentUpdate(component.nextProps, component.nextState)) {
  
positive.code:       _afterPropsChange(component, newArgs);
        return false;
      }
    }));
  
    /// Wrapper for [Component.componentWillUpdate].
    var componentWillUpdate =
        allowInteropCaptureThis((ReactComponent jsThis, newArgs, nextState, [nextContext]) => zone.run(() {
      Component component = jsThis.props.internal.component;
      component.componentWillUpdate(component.nextProps, component.nextState);
      _afterPropsChange(component, newArgs);
    }));
  
    /// Wrapper for [Component.componentDidUpdate].
    ///
    /// Uses [prevState] which was transferred from [Component.nextState] in [componentWillUpdate].
    var componentDidUpdate =
        allowInteropCaptureThis((ReactComponent jsThis, InteropProps prevProps, prevState, prevContext) => zone.run(() {
      var prevInternalProps = prevProps.internal.props;
      Component component = jsThis.props.internal.component;
      component.componentDidUpdate(prevInternalProps, component.prevState);
    }));
  
    /// Wrapper for [Component.componentWillUnmount].
    var componentWillUnmount = allowInteropCaptureThis((ReactComponent jsThis, [reactInternal]) => zone.run(() {
      var internal = jsThis.props.internal;
      internal.isMounted = false;
      internal.component.componentWillUnmount();
    }));
  
    /// Wrapper for [Component.render].
    var render = allowInteropCaptureThis((ReactComponent jsThis) => zone.run(() {
      return jsThis.props.internal.component.render();
    }));
  
    /// Create the JS [`ReactClass` component class](https://facebook.github.io/react/docs/top-level-api.html#react.createclass)
    /// with wrapped functions.
    ReactClass reactComponentClass = React.createClass(new ReactClassConfig(
        displayName: componentFactory().displayName,
        componentWillMount: componentWillMount,
        componentDidMount: skipMethods.contains('componentDidMount') ? null : componentDidMount,
        componentWillReceiveProps: componentWillReceiveProps,
        shouldComponentUpdate: shouldComponentUpdate,
        componentWillUpdate: componentWillUpdate,
        componentDidUpdate: skipMethods.contains('componentDidUpdate') ? null : componentDidUpdate,
        componentWillUnmount: componentWillUnmount,
        getDefaultProps: getDefaultProps,
        getInitialState: getInitialState,
        render: render
    ));
  
    // Cache default props and store them on the ReactClass so they can be used
  
negative.code:   var zone = Zone.current;
  
    /// Wrapper for [Component.getDefaultProps].
    EmptyObject getDefaultProps() => zone.run(() {
      return new EmptyObject();
    });
  
    /// Wrapper for [Component.getInitialState].
    EmptyObject getInitialState(ReactComponent jsThis) => zone.run(() {
      var internal = jsThis.props.internal;
      var redraw = () {
        if (internal.isMounted) {
  