[DOM4] Use new WebIDL [EnforceRange] attribute?

WebIDL has just introduced an [EnforceRange] attribute that alters the 
behavior of numeric conversions.  I argued for something like this using 
CharacterData.deleteData() as an example.  In DOM Level 2, it was 
specified to throw a TypeError for negative arguments, even though those 
arguments were unsigned long and WebIDL would automatically convert any 
negative arguments to positive.

The last time I checked, the Webkit browsers do throw TypeError for 
negative arguments (following DOM 2) and Firefox converts -1 to the 
maximum positive unsigned long value (following the current version of 
DOM4).

I'd like to suggest that the arguments to this (and similar) methods be 
declared with [EnforceRange], which would bring DOM4 back into alignment 
with the intent of DOM Level 2.  If someone passes -1 to deleteData(), I 
think it is safe to say that they don't really mean 2^32-1.  An error is 
the right thing here.

     David

Received on Friday, 9 September 2011 16:43:39 UTC