The exception tables for IDBObjectStore's add() and put() methods include:
"The calculated key for the insertion was not a valid key. Also thrown if the calculated key for any of the indexes which belong to this object store had a calculated key which was not a valid key"
However, consensus was reached that if the calculated key for an index is not a valid key then that index is simply skipped rather than failing the add()/put() -see "steps for storing a record into an object store".
I believe the second sentence ("Also thrown if...") should be removed.