slightlyoff/cassowary.js — pull request #45 by Timshel (2014-01-08 17:52:35+00:00)
Title: Start the hashCode at 1 to work with invalid check like !!x.hashCode

In HashTable.js the keyCode function is written as :

var keyCode = function(key) {
var kc = (!!key.hashCode) ? key.hashCode : key.toString();
return kc;
};

When the hashCode value is 0 then !!hashCode is false and the result of toString() is used.

On a Variable the toString is build using the current value, then when the internal value change it's hashCode change. Trying to fetch a stored Variable after a change of value will then fail (For example when doing solver.suggestValue)