private void DefineVariable(VariableAction variable) {
Debug.Assert(this.Debugger != null);
if (variable.IsGlobal) {
for(int i = 0; i < globalVars.Count; i ++) {
VariableAction oldVar = (VariableAction)this.globalVars[i];
if(oldVar.Name == variable.Name) { // Duplicate var definition
if(variable.Stylesheetid < oldVar.Stylesheetid) {
Debug.Assert(variable.VarKey != -1, "Variable was already placed and it should replace prev var.");
this.globalVars[i] = variable;
this.globalVarsCache = null;
}
return;
}
}
this.globalVars.Add(variable);
this.globalVarsCache = null;
}
else {
// local variables never conflict
localVars.Add(variable);
this.localVarsCache = null;
}
}