Oh dear, I suspect the answer is not good.  Is it as bad as 4 and 3?

I'm going to guess that because `is` is expanded to handle our mixins, more 
blocks that you'd like, and probably the right-hand side of the expression is 
evaluated more than once, when it should not be.

Perhaps with Don's additional class model information now available at 
compile-time, we can make a much more intelligent decision here (at least in 
the case where the rhs is a known class).  And in the general case, we should 
just use a subroutine call, rather than trying to inline at all?

On 2011-04-06, at 08:48, André Bargull wrote:

> How many try-catch blocks will be generated by the following program?
> 1) 0 blocks
> 2) 1 block
> 3) 3 blocks
> 4) 12 blocks
> 
> Extra Question:
> What is the final value of "i" if "i" was initialized with 0?
> 1) 0
> 2) 1
> 3) 2
> 
> <canvas>
> <script when="immediate">
> #pragma "warnUndefinedReferences=true"
> #pragma "catchFunctionExceptions=true"
> a is b[i+=1]
> </script>
> </canvas>


Reply via email to