transform.rotation increment slows to a stop

I'm trying to have a plane continuously rotate as long as the left or right arrow key is down. It seems to work to a point then slows down to barely moving. Is there anything I'm missing? I'm just incrementing the transform.rotation.y value in the update function.

function Update () {
    if (Input.GetKey("left")){
        transform.rotation.y -=rotateValue * Time.deltaTime;
    }
    if (Input.GetKey("right")){
        transform.rotation.y += Time.deltaTime * rotateValue;
    }
}

`transform.rotation` is a quaternion. What you're doing when you're decrementing/incrementing the y-field is basically changing the axis to rotate around rather than actually rotating. What you're after is most likely `transform.eulerAngles` or in the way I personally prefer:

transform.rotation *= Quaternion.AngleAxis(rotateValue * Time.deltaTime, Vector3.up);