Enforcing return value types

Lars T Hansen lth at acm.org
Mon Nov 12 23:50:58 PST 2007


I'm guessing you're just experiencing the effects of
http://bugs.ecmascript.org/ticket/285.  The correct behavior is a
run-time error in standard mode; compile-time error in strict mode.

--lars


On Nov 12, 2007 11:38 PM, Nathan de Vries <nathan at atnan.com> wrote:
> Hi everyone,
>
> What's the expected behaviour for a function returning a value, of which
> the type is contrary to the type defined in the function declaration?
>
> For example:
>
>     var func:Function = function():int {
>         return "This is not an int";
>     }
>     typeof(func()); // string
>
> Is this expected behaviour? Here's some similar Actionscript 3 code:
>
>     package {
>         class ReturnTest {
>             public function ReturnTest():void {
>                 returnInt();
>             }
>             private function returnInt():int {
>                 return "String instead";
>             }
>         }
>     }
>
> ...which produces the following compile-time error:
>
>     Implicit coercion of a value of type String to an unrelated type
>     int.
>
>
> Regards,
>
> --
> Nathan de Vries
>
> PS: Fantastic work with the Linux build of the reference implementation.
> I'm working my way through the overview documentation, and will probably
> have a poke at the SML when I'm feeling more game :).
>
> _______________________________________________
> Es4-discuss mailing list
> Es4-discuss at mozilla.org
> https://mail.mozilla.org/listinfo/es4-discuss
>
>



More information about the Es4-discuss mailing list