On Wed, Jun 22, 2011 at 3:14 AM, David Levin <le...@chromium.org> wrote:
> On Tue, Jun 21, 2011 at 11:43 PM, Glenn Maynard <gl...@zewt.org> wrote: > >> On Wed, Jun 22, 2011 at 1:57 AM, David Levin <le...@chromium.org> wrote: >> >>> Let's say the call doesn't throw when given a type B that isn't >>> transferrable. >>> Let's also say some later changes the javascript code and uses B after >>> the postMessage call. >>> Everything work. No throw is done and B isn't "gutted" because it isn't >>> transferrable. >>> >> >> Throwing for unsupported objects will break common, reasonable uses, >> making everyone jump hoops to use transfer. Not throwing will only break >> code that seriously misuses the API, by listing objects for transfer and >> then continuing to use the object. >> > > Code always seriously misuses apis. See Raymond Chen's blog for numerous > examples if you have any doubt (http://blogs.msdn.com/b/oldnewthing/). > You didn't respond to the rest of my mail, where I pointed out that the misuse case will end up broken anyway as everyone will likely use a wrapper to get the no-exception behavior. You'd have to, to support older browsers which don't support transfer for as many types. Making people use a helper function like that is just making them jump an unnecessary hoop. -- Glenn Maynard