Wed, 31 Dec 2014 06:09:35 +0100
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: The last argument specifies the body (executable code)
13 of a function; any preceding arguments sepcify formal
14 parameters.
16 See the text for description of this section.
18 This test examples from the specification.
20 Author: christine@netscape.com
21 Date: 28 october 1997
23 */
24 var SECTION = "15.3.2.1";
25 var VERSION = "ECMA_1";
26 startTest();
27 var TITLE = "The Function Constructor";
29 writeHeaderToLog( SECTION + " "+ TITLE);
31 var MyObject = new Function( "value", "this.value = value; this.valueOf = new Function( 'return this.value' ); this.toString = new Function( 'return String(this.value);' )" );
33 var myfunc = new Function();
35 // not going to test toString here since it is implementation dependent.
36 // new TestCase( SECTION, "myfunc.toString()", "function anonymous() { }", myfunc.toString() );
38 myfunc.toString = Object.prototype.toString;
40 new TestCase( SECTION, "myfunc = new Function(); myfunc.toString = Object.prototype.toString; myfunc.toString()",
41 "[object Function]",
42 myfunc.toString() );
44 new TestCase( SECTION,
45 "myfunc.length",
46 0,
47 myfunc.length );
49 new TestCase( SECTION,
50 "myfunc.prototype.toString()",
51 "[object Object]",
52 myfunc.prototype.toString() );
54 new TestCase( SECTION,
55 "myfunc.prototype.constructor",
56 myfunc,
57 myfunc.prototype.constructor );
59 new TestCase( SECTION,
60 "myfunc.arguments",
61 null,
62 myfunc.arguments );
64 new TestCase( SECTION,
65 "var OBJ = new MyObject(true); OBJ.valueOf()",
66 true,
67 eval("var OBJ = new MyObject(true); OBJ.valueOf()") );
69 new TestCase( SECTION,
70 "OBJ.toString()",
71 "true",
72 OBJ.toString() );
74 new TestCase( SECTION,
75 "OBJ.toString = Object.prototype.toString; OBJ.toString()", "[object Object]",
76 eval("OBJ.toString = Object.prototype.toString; OBJ.toString()") );
78 new TestCase( SECTION,
79 "MyObject.toString = Object.prototype.toString; MyObject.toString()",
80 "[object Function]",
81 eval("MyObject.toString = Object.prototype.toString; MyObject.toString()") );
83 new TestCase( SECTION,
84 "MyObject.length",
85 1,
86 MyObject.length );
88 new TestCase( SECTION,
89 "MyObject.prototype.constructor",
90 MyObject,
91 MyObject.prototype.constructor );
93 new TestCase( SECTION,
94 "MyObject.arguments",
95 null,
96 MyObject.arguments );
98 test();