Before, receiveProps was skipped and only _receivePropsAndState was called (by setState, etc). My intent here was to catch when this code:

        var props = this._pendingProps || this.props;
        this._pendingProps = null;

        var transaction = ReactComponent.ReactReconcileTransaction.getPooled();
        // `receiveProps` will unset `_hasPendingUpdate`
        transaction.perform(this.receiveProps, this, props, transaction);
        ReactComponent.ReactReconcileTransaction.release(transaction);

uses `this.props` because there aren't any pending props.