JS custom class serialization... can't make it work...

I am trying to use a custom class in an editor window to hold and modify some values from my selected object. Everything works fine except that i can’t make it serialize the values in that class. So when i press play i lose the changed values in my selected object.
All i have found about this is in C#. In JS i have read that the class needs to derivate from System.Object to be serialized but it doesn’t work either.

class vehicleEditorWindow extends EditorWindow {
	
	class editorEngine extends System.Object{
		@SerializeField
		var engineTransform : Transform;		
		@SerializeField
		var enginePower : float;		
		@SerializeField
		var engineInertia : float;
	
		function editorEngine (transf : Transform, power : float, intertia : float){
			
			this.engineTransform = transf;			
			this.enginePower = power;			
			this.engineInertia = intertia;		 
		  
		} 
	
	}

@SerializeField
	var engines : editorEngine[]; 

function OnGUI (){

for ( var e = 0 ; e < engines.Length; e++){
										
					new GUILayout.Label ("Engine " + (e+1),  EditorStyles.boldLabel);	

				var curEngine = engines[e];					
					curEngine.engineTransform =new EditorGUILayout.ObjectField ("Engine transform",curEngine.engineTransform,typeof(Transform),true) as Transform;
					
					curEngine.enginePower = EditorGUILayout.FloatField ("Engine power", curEngine.enginePower);			
				
				}

}

function Update (){


			for (var f = 0 ; f < selectedObject.engines.Length ; f++){
			
				var curEngine = selectedObject.engines[f];
				var curEditorEngine = engines[f];
				
				 curEngine.engineTransform = curEditorEngine.engineTransform; 
				 curEngine.power = curEditorEngine.enginePower;
				 curEngine.inertia = curEditorEngine.engineInertia;
			
			}			

}

Anyway i might be completely mistaken on how to do this. I could modify directly the value of the selected object but i don’t want to serialize it there.

Solved… had to use EditorUtility.setDirty () on the script of my selected object via Selection.activeGameobject.GetComponent (Type) as parameter.