- From: Stefan Haustein <sh@kobjects.org>
- Date: Mon, 03 Jul 2006 00:21:37 +0200
Hi, I would like to second the request for returning the context in drawing methods that currently return null. I think the following example illustrates why "with" is considered harmful: var lineWidth = 10; var lineHeight = 20; with(ctx){ fillRect(0, 0, lineWidth, lineHeight); } Best regards, Stefan Haustein Andrew Fedoniouk wrote: > > ----- Original Message ----- From: "Ian Hickson" <ian at hixie.ch> > To: "Andrew Fedoniouk" <news at terrainformatica.com> > Cc: <vladimir at pobox.com>; "Benjamin Joffe" <canvasgame at gmail.com>; > <whatwg at whatwg.org> > Sent: Sunday, July 02, 2006 2:18 PM > Subject: Re: [whatwg] Canvas 2d methods > > >> On Sun, 2 Jul 2006, Andrew Fedoniouk wrote: >>> >>> 1) if it is declared as >>> var foo = something; in current frame then >>> foo.bar(); >>> foo.baz(); >>> then execution is quite efficient. >>> >>> But >>> with(something) >>> { >>> bar(); >>> baz(); >>> } >>> >>> still requires scan of the whole universe in the worst case. >> >> But this isn't the worst case! It's the best case -- you know exactly >> what >> a 2D context's members are. >> >> >>> Consider this: >>> >>> with(ctx) >>> { >>> bar( some_var_name ); >>> } >>> >>> runtime will scan full chain of ctx for some_var_name. What for? >> >> It will scan *exactly* the same places as it would have if you didn't >> have >> the "with", plus the context itself. > > And that ctx is pretty heavy thing. > Again, "with" was considered harmful - that was the inital idea of > discussion. > >> >> >> Anyway, this is all a straw man -- this isn't the reason that the spec >> doesn't allow this. It doesn't allow this because Safari didn't do it >> this >> way in the first place, and changing it would likely introduce bugs >> (while >> still not helping authors for some time anyway). > > As far as I can see return value is not defined at all in: > http://developer.apple.com/documentation/AppleApplications/Reference/SafariJSRef/Classes/Canvas.html#//apple_ref/js/Canvas.lineTo > > So the proposal is just to define them as returning 'this' instead of > nothing. > > Andrew Fedoniouk. > http://terrainformatioca.com > > > >
Received on Sunday, 2 July 2006 15:21:37 UTC