[Webkit-unassigned] [Bug 31331] step attribute and ValidityState.stepMismatch for type=number/range
bugzilla-daemon at webkit.org
bugzilla-daemon at webkit.org
Tue Nov 17 02:22:22 PST 2009
https://bugs.webkit.org/show_bug.cgi?id=31331
TAMURA, Kent <tkent at chromium.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Attachment #43246|0 |1
is obsolete| |
Attachment #43246|review? |
Flag| |
Attachment #43350| |review?
Flag| |
--- Comment #5 from TAMURA, Kent <tkent at chromium.org> 2009-11-17 02:22:21 PST ---
Created an attachment (id=43350)
--> (https://bugs.webkit.org/attachment.cgi?id=43350)
Proposed patch (rev.4)
(In reply to comment #4)
> (In reply to comment #3)
> > > Is it really right to call fabs on doubleValue - min? Is that the right thing
> > > to do with cases where doubleValue is < min?
> >
> > Yes. HTML5 draft doesn't define exceptional handling for such case and we need
> > to check stepMismatch.
>
> Did you send mail to HTML5 or WHATWG mentioning this is undefined? I'd like to
> see this case covered in the specification.
>
> I'm not sure absolute value is best for this. Perhaps we should treat negative
> numbers as if they were zero or always just use 1 in that case? Having the same
> behavior in edge cases can sometimes prevent accidental site incompatibilities
> so I'd prefer to have this defined in the specification and covered by test
> cases even if it's not.
I renamed the variable `min' here to `stepBase.'
I'm asking about this to WHATWG now, and have no reply yet.
If the spec will be updated as "stepMismatch is false if rangeUnderflow or
rangeOverflow", I'll upadte the code.
I don't think this section in the current spec is ambiguous.
We need to handle cases without min attribute. stepMismatch for
<input type=number step=2 value=-2> should be false, and
<input type=number step=2 value=-1> should be true
because the `step base' is 0 in these cases. So we must handle a case of
value < stepBase anyway.
> > > Is there a way to do this same check without hard-coding the value 52?
> >
> > I found DBL_MANT_DIG, which is 53. I replaced 52 with DBL_MANT_DIG.
> > Note: double's precision is 53-bit, and the fractional part size is 52-bit
> > because the most significant bit is omitted.
>
> Is DBL_MANT_DIG available on all the platforms we target?
It's defined in ISO C standard. I confirmed on Mac OS, VS 2005, and Linux.
If other ports have no DBL_MANT_DIG, we may add it to wtf/MathExtras.h.
> I suggest we break out the code to compute the default step and scale factor
> into a separate function with two out arguments (I'd use references for those,
> but others seem to often chose pointers for that purpose). Named something like
> getStep, getStepConstraints, getStepDefaults, getStepParameters, or something
> along those lines. That function can use a switch with return statements, and
> then have code after the switch that does:
Ok, I introduced getStepParameters(double*,double*).
--
Configure bugmail: https://bugs.webkit.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.
More information about the webkit-unassigned
mailing list