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

Mo, Zhenyao zhenyao at gmail.com
Wed Aug 11 19:06:27 PDT 2010


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.


More information about the webkit-dev mailing list