Handles.FreeRotateHandle
static function FreeRotateHandle(rotation: Quaternion, position: Vector3, size: float): Quaternion;
Parameters

rotation Orientation of the handle.
position Center of the handle in 3D space.
size The size of the handle.

Note: Use HandleUtility.GetHandleSize where you might want to have constant screen-sized handles.
Description

Make an unconstrained rotation handle.

The handle can rotate freely on all axes.


FreeRotate handle seen in the Scene View.
	// Create a simple rotate handle (half scale) on the 
	// target object that lets you freely rotate
	// the Object Without having to select the "Rotate" button
	
	@CustomEditor (FreeRotate)
	class FreeRotateHandleJS extends Editor {
		function OnSceneGUI () {
	        target.rot = Handles.FreeRotateHandle(target.rot, target.transform.position, 0.5);
	        if (GUI.changed)
	            EditorUtility.SetDirty (target);
	    }
	}
And the script attached to this Handle:
	@script ExecuteInEditMode()
	
	var rot : Quaternion = Quaternion.identity;
	
	function Update () {
		transform.rotation = rot;
	}