js/src/tests/ecma/FunctionObjects/15.3.2.1-2.js

Wed, 31 Dec 2014 06:09:35 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Wed, 31 Dec 2014 06:09:35 +0100
changeset 0
6474c204b198
permissions
-rw-r--r--

Cloned upstream origin tor-browser at tor-browser-31.3.0esr-4.5-1-build1
revision ID fc1c9ff7c1b2defdbc039f12214767608f46423f for hacking purpose.

     1 /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
     2 /* This Source Code Form is subject to the terms of the Mozilla Public
     3  * License, v. 2.0. If a copy of the MPL was not distributed with this
     4  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
     7 /**
     8    File Name:          15.3.2.1.js
     9    ECMA Section:       15.3.2.1 The Function Constructor
    10    new Function(p1, p2, ..., pn, body )
    12    Description:
    13    Author:             christine@netscape.com
    14    Date:               28 october 1997
    16 */
    17 var SECTION = "15.3.2.1-2";
    18 var VERSION = "ECMA_1";
    19 startTest();
    20 var TITLE   = "The Function Constructor";
    22 writeHeaderToLog( SECTION + " "+ TITLE);
    25 var myfunc1 = new Function("a","b","c", "return a+b+c" );
    26 var myfunc2 = new Function("a, b, c",   "return a+b+c" );
    27 var myfunc3 = new Function("a,b", "c",  "return a+b+c" );
    29 myfunc1.toString = Object.prototype.toString;
    30 myfunc2.toString = Object.prototype.toString;
    31 myfunc3.toString = Object.prototype.toString;
    33 new TestCase( SECTION,  "myfunc1 = new Function('a','b','c'); myfunc.toString = Object.prototype.toString; myfunc.toString()",
    34 	      "[object Function]",
    35 	      myfunc1.toString() );
    37 new TestCase( SECTION,  "myfunc1.length",                            3,                      myfunc1.length );
    38 new TestCase( SECTION,  "myfunc1.prototype.toString()",              "[object Object]",      myfunc1.prototype.toString() );
    40 new TestCase( SECTION,  "myfunc1.prototype.constructor",             myfunc1,                myfunc1.prototype.constructor );
    41 new TestCase( SECTION,  "myfunc1.arguments",                         null,                   myfunc1.arguments );
    42 new TestCase( SECTION,  "myfunc1(1,2,3)",                            6,                      myfunc1(1,2,3) );
    43 new TestCase( SECTION,  "var MYPROPS = ''; for ( var p in myfunc1.prototype ) { MYPROPS += p; }; MYPROPS",
    44 	      "",
    45 	      eval("var MYPROPS = ''; for ( var p in myfunc1.prototype ) { MYPROPS += p; }; MYPROPS") );
    47 new TestCase( SECTION,  "myfunc2 = new Function('a','b','c'); myfunc.toString = Object.prototype.toString; myfunc.toString()",
    48 	      "[object Function]",
    49 	      myfunc2.toString() );
    50 new TestCase( SECTION,  "myfunc2.length",                            3,                      myfunc2.length );
    51 new TestCase( SECTION,  "myfunc2.prototype.toString()",              "[object Object]",      myfunc2.prototype.toString() );
    53 new TestCase( SECTION,  "myfunc2.prototype.constructor",             myfunc2,                 myfunc2.prototype.constructor );
    54 new TestCase( SECTION,  "myfunc2.arguments",                         null,                   myfunc2.arguments );
    55 new TestCase( SECTION,  "myfunc2( 1000, 200, 30 )",                 1230,                    myfunc2(1000,200,30) );
    56 new TestCase( SECTION,  "var MYPROPS = ''; for ( var p in myfunc2.prototype ) { MYPROPS += p; }; MYPROPS",
    57 	      "",
    58 	      eval("var MYPROPS = ''; for ( var p in myfunc2.prototype ) { MYPROPS += p; }; MYPROPS") );
    60 new TestCase( SECTION,  "myfunc3 = new Function('a','b','c'); myfunc.toString = Object.prototype.toString; myfunc.toString()",
    61 	      "[object Function]",
    62 	      myfunc3.toString() );
    63 new TestCase( SECTION,  "myfunc3.length",                            3,                      myfunc3.length );
    64 new TestCase( SECTION,  "myfunc3.prototype.toString()",              "[object Object]",      myfunc3.prototype.toString() );
    65 new TestCase( SECTION,  "myfunc3.prototype.valueOf() +''",           "[object Object]",      myfunc3.prototype.valueOf() +'' );
    66 new TestCase( SECTION,  "myfunc3.prototype.constructor",             myfunc3,                 myfunc3.prototype.constructor );
    67 new TestCase( SECTION,  "myfunc3.arguments",                         null,                   myfunc3.arguments );
    68 new TestCase( SECTION,  "myfunc3(-100,100,NaN)",                    Number.NaN,              myfunc3(-100,100,NaN) );
    70 new TestCase( SECTION,  "var MYPROPS = ''; for ( var p in myfunc3.prototype ) { MYPROPS += p; }; MYPROPS",
    71 	      "",
    72 	      eval("var MYPROPS = ''; for ( var p in myfunc3.prototype ) { MYPROPS += p; }; MYPROPS") );
    73 test();

mercurial