No subject


Wed Aug 1 07:28:53 PDT 2012


1. If x is NaN, +=E2=88=9E, or =E2=88=92=E2=88=9E, then throw a TypeError.
2. Set x to sign(x) * floor(abs(x)).
3. If x < =E2=88=92(2^53 =E2=88=92 1) or x > 2^53 =E2=88=92 1, then throw a=
 TypeError.
4. Return the IDL long long value that represents the same numeric value as=
 x.

Note that there are similar cases for unsigned long long.

The binding code generator says:

return "toInt64($value)" if $type eq "unsigned long long" or $type eq "long=
 long";

and toInt64 defined in bindings/v8/V8Binding.h is:

    inline long long toInt64(v8::Local<v8::Value> value)
    {
        return static_cast<long long>(value->IntegerValue());
    }

... so there are no guard checks.=20

This causes IndexedDB to fail the test http://w3c-test.org/webapps/IndexedD=
B/tests/submissions/Ms2ger/idbfactory_open9.htm

We could special case this in the IDB code, or change toInt64 to incorporat=
e the checks from WebIDL and call throwTypeError().

--=20
Configure bugmail: https://bugs.webkit.org/userprefs.cgi?tab=3Demail
------- You are receiving this mail because: -------
You are the assignee for the bug.=


More information about the webkit-unassigned mailing list