Variable Declaration caching bug??

Here is the very top of my Unity JS Script:

#pragma strict
var player:GameObject;
var maxtiles:int=17;
var tilesTerrain : GameObject[,] = new GameObject[maxtiles,maxtiles];
var tilesOverlay : GameObject[,] = new GameObject[maxtiles,maxtiles];

Previously I had been setting maxtiles to 10. well, everytime I run this script,
It still defaults to the old ‘10’ value within all future references in Startup(), etc… UNLESS I change to the following:

#pragma strict
var player:GameObject;
var maxtiles:int=17;
maxtiles=17;
var tilesTerrain : GameObject[,] = new GameObject[maxtiles,maxtiles];
var tilesOverlay : GameObject[,] = new GameObject[maxtiles,maxtiles];

Then it is actually set to 17!? If I pull that middle line back out, It goes back to the age-old setting of 10… wow. I’m sure i can’t duplicate this on a clean project, it must be some complex caching/queuing issue? Is there some “Full Refresh” or something I can run to fully rebuild stuff? I’m a Unity Newbie.
I’ve saved the script files, Even tried full .exe build and it still pops a 10 value up if that second assignment missing.

By default variables in Javascript/Unityscript are public. Public variables are set in the Inspector. The values you change above are only used the first time this script is attached to a game object. If you select the game object this script is attached to in the Hierarchy, in the inspector you will see a gear with a dropdown triangle on the right hand side. Opposite the script name. If you click on the dropdown, you will see Reset. If you select this value, it will again read the values in the from the script. Or you can edit the values in the Inspector.

Another solution is to make the variables private:

private var maxtiles:int = 17;

Private variables will not be shown in the inspector, and any changes you make in the script will be reflected when you play the game (without using Reset).