Changeset 53893 in webkit
- Timestamp:
- Jan 26, 2010 8:45:37 PM (14 years ago)
- Location:
- trunk
- Files:
-
- 24 added
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/LayoutTests/ChangeLog
r53889 r53893 1 2010-01-26 Kent Tamura <tkent@chromium.org> 2 3 Reviewed by Darin Adler. 4 5 HTMLInputElement::valueAsNumber support except type=datetime-local. 6 https://bugs.webkit.org/show_bug.cgi?id=32696 7 8 input-valueasnumber-datetime-expected.txt and 9 input-valueasnumber-time-expected.txt have FAIL lines because they 10 test unimplemented features. 11 12 * fast/forms/input-valueasnumber-date-expected.txt: Added. 13 * fast/forms/input-valueasnumber-date.html: Added. 14 * fast/forms/input-valueasnumber-datetime-expected.txt: Added. 15 * fast/forms/input-valueasnumber-datetime.html: Added. 16 * fast/forms/input-valueasnumber-month-expected.txt: Added. 17 * fast/forms/input-valueasnumber-month.html: Added. 18 * fast/forms/input-valueasnumber-number-expected.txt: Added. 19 * fast/forms/input-valueasnumber-number.html: Added. 20 * fast/forms/input-valueasnumber-range-expected.txt: Added. 21 * fast/forms/input-valueasnumber-range.html: Added. 22 * fast/forms/input-valueasnumber-time-expected.txt: Added. 23 * fast/forms/input-valueasnumber-time.html: Added. 24 * fast/forms/input-valueasnumber-unsupported-expected.txt: Added. 25 * fast/forms/input-valueasnumber-unsupported.html: Added. 26 * fast/forms/input-valueasnumber-week-expected.txt: Added. 27 * fast/forms/input-valueasnumber-week.html: Added. 28 * fast/forms/script-tests/input-valueasnumber-date.js: Added. 29 * fast/forms/script-tests/input-valueasnumber-datetime.js: Added. 30 * fast/forms/script-tests/input-valueasnumber-month.js: Added. 31 * fast/forms/script-tests/input-valueasnumber-number.js: Added. 32 * fast/forms/script-tests/input-valueasnumber-range.js: Added. 33 * fast/forms/script-tests/input-valueasnumber-time.js: Added. 34 * fast/forms/script-tests/input-valueasnumber-unsupported.js: Added. 35 * fast/forms/script-tests/input-valueasnumber-week.js: Added. 36 1 37 2010-01-26 Kent Tamura <tkent@chromium.org> 2 38 -
trunk/WebCore/ChangeLog
r53892 r53893 1 2010-01-26 Kent Tamura <tkent@chromium.org> 2 3 Reviewed by Darin Adler. 4 5 HTMLInputElement::valueAsNumber support except type=datetime-local. 6 https://bugs.webkit.org/show_bug.cgi?id=32696 7 8 Tests: fast/forms/input-valueasnumber-date.html 9 fast/forms/input-valueasnumber-datetime.html 10 fast/forms/input-valueasnumber-month.html 11 fast/forms/input-valueasnumber-number.html 12 fast/forms/input-valueasnumber-range.html 13 fast/forms/input-valueasnumber-time.html 14 fast/forms/input-valueasnumber-unsupported.html 15 fast/forms/input-valueasnumber-week.html 16 17 * html/HTMLInputElement.cpp: 18 (WebCore::HTMLInputElement::valueAsNumber): 19 According to the specification, we should return NaN for invalid values. 20 (WebCore::HTMLInputElement::setValueAsNumber): 21 According to the specification, throws NOT_SUPPORTED_ERR for Infinitiy or NaN, 22 and throws INVALID_STATE_ERR for unsupported types. 23 (WebCore::HTMLInputElement::formStringToDouble): 24 According to the step 14 of Real Number in the specification, we 25 should round -0 to 0. 26 * html/HTMLInputElement.h: Declare valueAsNumber() and setValueAsNumber(). 27 * html/HTMLInputElement.idl: Add valueAsNumber. 28 1 29 2010-01-26 Dave Hyatt <hyatt@apple.com> 2 30 -
trunk/WebCore/html/HTMLInputElement.cpp
r53787 r53893 1466 1466 // If the step value is 1, use SecondFormat::Second. 1467 1467 setValue(dateTime.toString()); 1468 } 1469 1470 double HTMLInputElement::valueAsNumber() const 1471 { 1472 const double nan = numeric_limits<double>::quiet_NaN(); 1473 switch (inputType()) { 1474 case DATE: 1475 case DATETIME: 1476 case MONTH: 1477 case TIME: 1478 case WEEK: { 1479 ISODateTime dateTime; 1480 if (!formStringToISODateTime(inputType(), value(), &dateTime)) 1481 return nan; 1482 return dateTime.millisecondsSinceEpoch(); 1483 } 1484 case NUMBER: 1485 case RANGE: { 1486 double numberValue; 1487 if (!formStringToDouble(value(), &numberValue)) 1488 return nan; 1489 return numberValue; 1490 } 1491 1492 case BUTTON: 1493 case CHECKBOX: 1494 case COLOR: 1495 case DATETIMELOCAL: // FIXME: Unlike valueAsDate, valueAsNumber should support DATETIMELOCAL type. 1496 case EMAIL: 1497 case FILE: 1498 case HIDDEN: 1499 case IMAGE: 1500 case ISINDEX: 1501 case PASSWORD: 1502 case RADIO: 1503 case RESET: 1504 case SEARCH: 1505 case SUBMIT: 1506 case TELEPHONE: 1507 case TEXT: 1508 case URL: 1509 return nan; 1510 } 1511 ASSERT_NOT_REACHED(); 1512 return nan; 1513 } 1514 1515 void HTMLInputElement::setValueAsNumber(double newValue, ExceptionCode& ec) 1516 { 1517 if (!isfinite(newValue)) { 1518 ec = NOT_SUPPORTED_ERR; 1519 return; 1520 } 1521 switch (inputType()) { 1522 case DATE: 1523 case DATETIME: 1524 case MONTH: 1525 case TIME: 1526 case WEEK: 1527 setValueAsDate(newValue, ec); 1528 return; 1529 case NUMBER: 1530 case RANGE: 1531 setValue(formStringFromDouble(newValue)); 1532 return; 1533 1534 case DATETIMELOCAL: // FIXME: implement ISODateTime.toString() 1535 case BUTTON: 1536 case CHECKBOX: 1537 case COLOR: 1538 case EMAIL: 1539 case FILE: 1540 case HIDDEN: 1541 case IMAGE: 1542 case ISINDEX: 1543 case PASSWORD: 1544 case RADIO: 1545 case RESET: 1546 case SEARCH: 1547 case SUBMIT: 1548 case TELEPHONE: 1549 case TEXT: 1550 case URL: 1551 ec = INVALID_STATE_ERR; 1552 return; 1553 } 1554 ASSERT_NOT_REACHED(); 1555 return; 1468 1556 } 1469 1557 … … 2196 2284 return false; 2197 2285 // NaN and Infinity are not valid numbers according to the standard. 2198 if ( isnan(value) || isinf(value))2286 if (!isfinite(value)) 2199 2287 return false; 2288 // -0 -> 0 2289 if (!value) 2290 value = 0; 2200 2291 if (out) 2201 2292 *out = value; -
trunk/WebCore/html/HTMLInputElement.h
r52434 r53893 148 148 void setValueAsDate(double, ExceptionCode&); 149 149 150 double valueAsNumber() const; 151 void setValueAsNumber(double, ExceptionCode&); 152 150 153 virtual String placeholder() const; 151 154 virtual void setPlaceholder(const String&); -
trunk/WebCore/html/HTMLInputElement.idl
r53890 r53893 59 59 attribute [ConvertNullToNullString] DOMString value; 60 60 attribute Date valueAsDate setter raises(DOMException); 61 attribute double valueAsNumber setter raises(DOMException); 61 62 #if defined(ENABLE_DATALIST) && ENABLE_DATALIST 62 63 readonly attribute HTMLOptionElement selectedOption;
Note: See TracChangeset
for help on using the changeset viewer.