[webkit-reviews] review granted: [Bug 9179] Implement select.options.add() method : [Attachment 9174] Patch v2

bugzilla-request-daemon at opendarwin.org bugzilla-request-daemon at opendarwin.org
Mon Jul 3 18:02:15 PDT 2006


Darin Adler <darin at apple.com> has granted Darin Adler <darin at apple.com>'s
request for review:
Bug 9179: Implement select.options.add() method
http://bugzilla.opendarwin.org/show_bug.cgi?id=9179

Attachment 9174: Patch v2
http://bugzilla.opendarwin.org/attachment.cgi?id=9174&action=edit

------- Additional Comments from Darin Adler <darin at apple.com>
The reason getNumber returns a boolean is so that you don't have to make a
separate call to isNumber. And we don't use the function call syntax for type
casts -- instead we use C++ cast syntax. So this:

+    if (value->isNumber()) {
+	 double lengthValue;
+	 value->getNumber(lengthValue);
+	 if (lengthValue < 0.0)
+	     return;
+	 if (lengthValue > double(UINT_MAX))
+	     newLength = UINT_MAX;
+	 else
+	     newLength = unsigned(lengthValue);
+    }

should be:

    double lengthValue;
    if (value->getNumber(lengthValue)) {
	if (lengthValue < 0.0)
	    return;
	if (lengthValue > static_cast<double>(UINT_MAX))
	    newLength = UINT_MAX;
	else
	    newLength = static_cast<unsigned>(lengthValue);
    }

I'd like to see tests that cover a few more of the branches, for example
setting length to infinity and NaN. The code makes infinite try to set it to
UINT_MAX, NaN sets it to 0, although -1 doesn't change the existing length. Is
that really the behavior we want? If so, then lets make sure tests exercise
those cases and perhaps try them in other browsers.

r=me



More information about the webkit-reviews mailing list