[whatwg] Canvas 2d methods

----- Original Message ----- 
From: "Ian Hickson" <ian@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 14:51:19 UTC