[webkit-dev] js binding: function argument type checking

Dumitru Daniliuc dumi at chromium.org
Thu Aug 12 01:28:40 PDT 2010


if converting a JS argument to the type declared in the IDL file throws an
exception, the auto-generated code will throw a TYPE_MISMATCH_ERR. so i
think we just need to change toJS/toV8 to throw exceptions when conversions
fails instead of returning NULL (toString(), toInt32(), etc. already do
that).

dumi


On Wed, Aug 11, 2010 at 11:10 PM, Mo, Zhenyao <zhenyao at gmail.com> wrote:

> Actually it's a different issue.  What we want to do is not enforcing
> full arguments, but if an input argument is the wrong type, we raise a
> TypeError.
>
> Mo
>
> On Wed, Aug 11, 2010 at 7:13 PM, Adam Barth <abarth at webkit.org> wrote:
> > This sounds related to the recent addition of
> > [RequiresAllArguments=Raise].  Historically, we've been lax about
> > missing arguments.  I think the specs want us to be stricter, but last
> > time we discussed the topic, the read I got was that the compatibility
> > pain might not be worth the benefit.
> >
> > Adam
> >
> >
> > On Wed, Aug 11, 2010 at 7:06 PM, Mo, Zhenyao <zhenyao at gmail.com> wrote:
> >> Currently for a function's signature in WebKit, if an argument's type
> >> is a wrapper type (those JS objec ts that wrap c++ objects, for
> >> example, JSWebGLProgram, JSCSSRule, etc.) and if the input object's
> >> type does not match the signature, the input is casted to null and no
> >> TypeError is raised.
> >>
> >> Even though WebKit doesn't use Web IDL specially, I think we can look
> >> to the Web IDL spec for guidance on what the behavior should be.
> >> According to Web IDL spec (http://dev.w3.org/2006/webapi/WebIDL/),
> >> unless [AllowAny] is put in the signature, an TypeError should be
> >> raised if an argument type does not match its signature.  The new
> >> automatic code generation for overloaded functions in WebKit DOES
> >> raise TypeError when it fails to determine which overloaded variant to
> >> call.
> >>
> >> We definitely need to do the strict type checking for WebGL functions.
> >>  However, changing the default behavior of the IDL code generators
> >> might have a significant compatibility impact. It isn't clear to us
> >> whether the current behavior is intentional.  If yes, please let us
> >> know and we will try to fix the WebGL part only.  Otherwise we will
> >> modify the general rule instead.
> >> _______________________________________________
> >> webkit-dev mailing list
> >> webkit-dev at lists.webkit.org
> >> http://lists.webkit.org/mailman/listinfo.cgi/webkit-dev
> >>
> >
> _______________________________________________
> webkit-dev mailing list
> webkit-dev at lists.webkit.org
> http://lists.webkit.org/mailman/listinfo.cgi/webkit-dev
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.webkit.org/pipermail/webkit-dev/attachments/20100812/8a140cff/attachment.html>


More information about the webkit-dev mailing list