gnash-commit
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Gnash-commit] gnash ChangeLog server/asobj/Global.cpp testsui...


From: zou lunkai
Subject: Re: [Gnash-commit] gnash ChangeLog server/asobj/Global.cpp testsui...
Date: Tue, 11 Sep 2007 14:10:16 +0800

>  #if OUTPUT_VERSION > 5
> +check_equals(Email.constructor, Function);
> +check_equals(Email.constructor.constructor, Function);
> +check_equals(Email.constructor.constructor.constructor, Function);
> ...

Background: Email is the name of a normal function.

In SWF5, the above checks are also expected to be passed, but don't
make much sense. Since in SWF5, Email.constructor.toString()  ==
'undefined'  and Function == undefined.

Gnash passed it by luck before with(1)Email.constructor.toString() ==
'[type Function]' and (2)initialized Function class for
SWF5(Function.toString() == '[type Function]'). But both (1) and (2)
were not the expected behaviour.

--zou





On 9/11/07, Zou Lunkai <address@hidden> wrote:
> CVSROOT:        /sources/gnash
> Module name:    gnash
> Changes by:     Zou Lunkai <zoulunkai>  07/09/11 05:46:32
>
> Modified files:
>        .              : ChangeLog
>        server/asobj   : Global.cpp
>        testsuite/actionscript.all: Function.as Inheritance.as Number.as
>                                    toString_valueOf.as
>
> Log message:
>        * server/asobj/Global.cpp: don't initialize Function class for SWF < 6.
>        * testsuite/actionscript.all/Inheritance.as,
>          testsuite/actionscript.all/Function.as: disable a few confusing
>          and duplicated(but correct) tests for SWF5. more passes.
>        * testsuite/actionscript.all/Number.as,
>          testsuite/actionscript.all/toString_valueOf.as: more passes.
>
> CVSWeb URLs:
> http://cvs.savannah.gnu.org/viewcvs/gnash/ChangeLog?cvsroot=gnash&r1=1.4265&r2=1.4266
> http://cvs.savannah.gnu.org/viewcvs/gnash/server/asobj/Global.cpp?cvsroot=gnash&r1=1.66&r2=1.67
> http://cvs.savannah.gnu.org/viewcvs/gnash/testsuite/actionscript.all/Function.as?cvsroot=gnash&r1=1.54&r2=1.55
> http://cvs.savannah.gnu.org/viewcvs/gnash/testsuite/actionscript.all/Inheritance.as?cvsroot=gnash&r1=1.36&r2=1.37
> http://cvs.savannah.gnu.org/viewcvs/gnash/testsuite/actionscript.all/Number.as?cvsroot=gnash&r1=1.28&r2=1.29
> http://cvs.savannah.gnu.org/viewcvs/gnash/testsuite/actionscript.all/toString_valueOf.as?cvsroot=gnash&r1=1.12&r2=1.13
>
> Patches:
> Index: ChangeLog
> ===================================================================
> RCS file: /sources/gnash/gnash/ChangeLog,v
> retrieving revision 1.4265
> retrieving revision 1.4266
> diff -u -b -r1.4265 -r1.4266
> --- ChangeLog   11 Sep 2007 00:17:43 -0000      1.4265
> +++ ChangeLog   11 Sep 2007 05:46:31 -0000      1.4266
> @@ -1,3 +1,12 @@
> +2007-09-11 Zou Lunkai <address@hidden>
> +
> +       * server/asobj/Global.cpp: don't initialize Function class for SWF < 
> 6.
> +       * testsuite/actionscript.all/Inheritance.as,
> +         testsuite/actionscript.all/Function.as: disable a few confusing
> +         and duplicated(but correct) tests for SWF5. more passes.
> +       * testsuite/actionscript.all/Number.as,
> +         testsuite/actionscript.all/toString_valueOf.as: more passes.
> +
>  2007-09-10  Rob Savoye  <address@hidden>
>
>        * macros/curl.m4: sed any "-L/usr/lib" off the output of
>
> Index: server/asobj/Global.cpp
> ===================================================================
> RCS file: /sources/gnash/gnash/server/asobj/Global.cpp,v
> retrieving revision 1.66
> retrieving revision 1.67
> diff -u -b -r1.66 -r1.67
> --- server/asobj/Global.cpp     24 Jul 2007 14:19:31 -0000      1.66
> +++ server/asobj/Global.cpp     11 Sep 2007 05:46:31 -0000      1.67
> @@ -17,7 +17,7 @@
>  // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
>  //
>
> -/* $Id: Global.cpp,v 1.66 2007/07/24 14:19:31 strk Exp $ */
> +/* $Id: Global.cpp,v 1.67 2007/09/11 05:46:31 zoulunkai Exp $ */
>
>  #ifdef HAVE_CONFIG_H
>  #include "config.h"
> @@ -377,11 +377,10 @@
>        init_member("setInterval", new builtin_function(timer_setinterval));
>        init_member("clearInterval", new 
> builtin_function(timer_clearinterval));
>
> -       // System and Function were added in Player Version 6, but
> +       // System was added in Player Version 6, but
>        // seem to be available even if SWF target version is
>        // inferior
>        system_class_init(*this); // System and System.capabilities
> -       function_class_init(*this);
>
>        // I find Stage object used in SWF5 movies, don't
>        // see a good reason not to enable this always
> @@ -442,7 +441,7 @@
>        //-----------------------
>        // SWF6
>        //-----------------------
> -
> +       function_class_init(*this);
>        // See: http://sephiroth.it/reference.php?id=717&cat=1
>        textsnapshot_class_init(*this);
>        init_member("LocalConnection", new 
> builtin_function(localconnection_new));
>
> Index: testsuite/actionscript.all/Function.as
> ===================================================================
> RCS file: /sources/gnash/gnash/testsuite/actionscript.all/Function.as,v
> retrieving revision 1.54
> retrieving revision 1.55
> diff -u -b -r1.54 -r1.55
> --- testsuite/actionscript.all/Function.as      31 Aug 2007 21:53:33 -0000    
>   1.54
> +++ testsuite/actionscript.all/Function.as      11 Sep 2007 05:46:31 -0000    
>   1.55
> @@ -21,7 +21,7 @@
>  // compile this test case with Ming makeswf, and then
>  // execute it like this gnash -1 -r 0 -v out.swf
>
> -rcsid="$Id: Function.as,v 1.54 2007/08/31 21:53:33 strk Exp $";
> +rcsid="$Id: Function.as,v 1.55 2007/09/11 05:46:31 zoulunkai Exp $";
>
>  #include "check.as"
>
> @@ -545,13 +545,19 @@
>
>  // Email is a Function instance, and it's "constructor" property
>  // tells us so
> +#if OUTPUT_VERSION == 5
> +// Function is supported in SWF6 and above
> +xcheck_equals(Email.constructor.toString(), undefined);
> +check_equals(Function, undefined);
> +#endif
>  check_equals(typeof(Email.constructor), 'function');
> -check_equals(Email.constructor, Function);
>  check_equals(typeof(Email.constructor.constructor), 'function');
> -check_equals(Email.constructor.constructor, Function);
>  check_equals(typeof(Email.constructor.constructor.constructor), 'function');
> -check_equals(Email.constructor.constructor.constructor, Function);
>  #if OUTPUT_VERSION > 5
> +check_equals(Email.constructor, Function);
> +check_equals(Email.constructor.constructor, Function);
> +check_equals(Email.constructor.constructor.constructor, Function);
> +
>  check(Email.hasOwnProperty('constructor'));
>  check(Email.constructor.hasOwnProperty('constructor'));
>  check(Email.constructor.constructor.hasOwnProperty('constructor'));
>
> Index: testsuite/actionscript.all/Inheritance.as
> ===================================================================
> RCS file: /sources/gnash/gnash/testsuite/actionscript.all/Inheritance.as,v
> retrieving revision 1.36
> retrieving revision 1.37
> diff -u -b -r1.36 -r1.37
> --- testsuite/actionscript.all/Inheritance.as   1 Sep 2007 09:40:06 -0000     
>   1.36
> +++ testsuite/actionscript.all/Inheritance.as   11 Sep 2007 05:46:32 -0000    
>   1.37
> @@ -21,7 +21,7 @@
>  // compile this test case with Ming makeswf, and then
>  // execute it like this gnash -1 -r 0 -v out.swf
>
> -rcsid="$Id: Inheritance.as,v 1.36 2007/09/01 09:40:06 strk Exp $";
> +rcsid="$Id: Inheritance.as,v 1.37 2007/09/11 05:46:32 zoulunkai Exp $";
>
>  #include "check.as"
>
> @@ -52,7 +52,8 @@
>  //       rather then on *SWF* version, in which case
>  //       we should completely avoid testing it.
>  //       Can anyone confirm ?
> -xcheck_equals(typeof(functionObject), 'undefined');
> +// This is because SWF5 does not support Function class.
> +check_equals(typeof(functionObject), 'undefined');
>  #endif
>
>  // functionObject '__proto__' is a reference to
> @@ -79,7 +80,9 @@
>
>  // Make 'userFunc' be a function (should inherit Function things)
>  var userFunc = function() {};
> +#if OUTPUT_VERSION > 5
>  check_equals (userFunc.__proto__, Function.prototype);
> +#endif
>  check_equals (userFunc.prototype.constructor, userFunc);
>  check_equals (userFunc.prototype.apply, undefined);
>  check_equals (userFunc.apply, Function.prototype.apply);
> @@ -125,7 +128,9 @@
>  {
>        if ( changeit ) this.__constructor__ = Object;
>  }
> +#if OUTPUT_VERSION > 5
>  check_equals(TypeChanger.__proto__, Function.prototype);
> +#endif
>
>  o1 = new TypeChanger(false);
>  check_equals(o1.__proto__, TypeChanger.prototype);
> @@ -232,7 +237,9 @@
>  check(SubObj1.prototype != undefined);
>  check_equals(SubObj1.prototype.constructor, SubObj1);
>
> +#if OUTPUT_VERSION > 5
>  check_equals(SubObj1.prototype.constructor.__proto__.constructor, Function);
> +#endif
>
>  //------------------------------------------------
>  // Test the 'extends' tag (require ming > 0.4.0.beta3)
> @@ -277,8 +284,9 @@
>  check(! DerivedClass1.prototype.hasOwnProperty('valueOf'));
>  check(! DerivedClass1.prototype.hasOwnProperty('constructor'));
>  check(DerivedClass1.hasOwnProperty('constructor'));
> -#endif
>  check_equals(DerivedClass1.constructor, Function);
> +#endif
> +
>  check_equals(DerivedClass1.prototype.__proto__.constructor, BaseClass1);
>  check_equals(DerivedClass1.prototype.__proto__, BaseClass1.prototype);
>
>
> Index: testsuite/actionscript.all/Number.as
> ===================================================================
> RCS file: /sources/gnash/gnash/testsuite/actionscript.all/Number.as,v
> retrieving revision 1.28
> retrieving revision 1.29
> diff -u -b -r1.28 -r1.29
> --- testsuite/actionscript.all/Number.as        25 Aug 2007 14:15:51 -0000    
>   1.28
> +++ testsuite/actionscript.all/Number.as        11 Sep 2007 05:46:32 -0000    
>   1.29
> @@ -27,7 +27,7 @@
>  // TODO: test with SWF target != 6 (the only one tested so far)
>  //
>
> -rcsid="$Id: Number.as,v 1.28 2007/08/25 14:15:51 strk Exp $";
> +rcsid="$Id: Number.as,v 1.29 2007/09/11 05:46:32 zoulunkai Exp $";
>
>  #include "check.as"
>
> @@ -288,7 +288,7 @@
>  xcheck_equals(typeof(Number.valueOf), 'undefined');
>  xcheck_equals(typeof(Number.__proto__), 'undefined');
>  xcheck_equals(typeof(Number.toString), 'undefined');
> -xcheck_equals(typeof(Function), 'undefined');
> +check_equals(typeof(Function), 'undefined');
>  #endif
>
>  a = 1;
>
> Index: testsuite/actionscript.all/toString_valueOf.as
> ===================================================================
> RCS file: 
> /sources/gnash/gnash/testsuite/actionscript.all/toString_valueOf.as,v
> retrieving revision 1.12
> retrieving revision 1.13
> diff -u -b -r1.12 -r1.13
> --- testsuite/actionscript.all/toString_valueOf.as      2 Sep 2007 00:12:48 
> -0000       1.12
> +++ testsuite/actionscript.all/toString_valueOf.as      11 Sep 2007 05:46:32 
> -0000      1.13
> @@ -46,11 +46,11 @@
>   check_equals(typeof(Function.prototype['valueOf']), 'function');
>  #else
>   // No Function Object in swf5???
> -  xcheck_equals(typeof(Function), 'undefined');
> +  check_equals(typeof(Function), 'undefined');
>
>   // Function Object in swf5 does not support toString and valueOf
> -  xcheck_equals(Function.prototype['toString'], undefined);
> -  xcheck_equals(Function.prototype['valueOf'], undefined);
> +  check_equals(Function.prototype['toString'], undefined);
> +  check_equals(Function.prototype['valueOf'], undefined);
>
>   // test 'function' is supported in swf5:)
>   x = function () {};
>
>
> _______________________________________________
> Gnash-commit mailing list
> address@hidden
> http://lists.gnu.org/mailman/listinfo/gnash-commit
>




reply via email to

[Prev in Thread] Current Thread [Next in Thread]