method to rotate a Vector3 around a Vector3 by specified direction and degrees

I have created a way to calculate a Vector3 that is rotated around another Vector3, but I would like a way that uses proper Vector3 math (i.e not using an empty gameObject). Can anyone help?

CartesianCoordinates = new Vector3[12];

var myEmpty : GameObject = new GameObject("GameObject") as GameObject;
var thePivot : Vector3 = Vector3.zero;
var rotatedAngleX : float = 60.0;

for (var c : int = 0; c < 12; c ++)
{
    myEmpty.transform.position = CartesianCoordinates
;
        myEmpty.transform.RotateAround( thePivot, -Vector3.right, rotatedAngleX );
        CartesianCoordinates[c] = myEmpty.transform.position;
    }

Sorry, I don’t use JS - but check out:

// otherVector is your Vector3 relative to the origin (so you'll have to convert from world space before doing this)    
Quaternion q = Quaternion.AngleAxis(30, Vector3.up);
Vector3 rotatedVector = q * otherVector;