Никак не могу найти, где ошибка... Вроде бы все написано логично. Вот код:

Код:
Output("??? mField["+fromPieceName+"].val="+mField[fromPieceName].val);
Output("??? fromVal="+fromVal);
if ((fromVal==undefined) || (fromVal==NaN)) {
Output("YESSS!!!");
fromVal = mField[fromPieceName].val;
} else {
Output("NOOO....");
}
А вот отладочная печать:

Код:
??? mField[mc_0].val=31
??? fromVal=NaN
NOOO....
То есть - fromVal, если верить отладочной печати, равно NaN - и в то же время ((fromVal==undefined) || (fromVal==NaN)) дает false