1/* The contents of this file are subject to the Netscape Public
2 * License Version 1.1 (the "License"); you may not use this file
3 * except in compliance with the License. You may obtain a copy of
4 * the License at http://www.mozilla.org/NPL/
5 *
6 * Software distributed under the License is distributed on an "AS
7 * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
8 * implied. See the License for the specific language governing
9 * rights and limitations under the License.
10 *
11 * The Original Code is Mozilla Communicator client code, released March
12 * 31, 1998.
13 *
14 * The Initial Developer of the Original Code is Netscape Communications
15 * Corporation. Portions created by Netscape are
16 * Copyright (C) 1998 Netscape Communications Corporation. All
17 * Rights Reserved.
18 *
19 * Contributor(s):
20 *
21 */
22/**
23    File Name:          15.5.4.3-1.js
24    ECMA Section:       15.5.4.3 String.prototype.valueOf()
25
26    Description:        Returns this string value.
27
28                        The valueOf function is not generic; it generates a
29                        runtime error if its this value is not a String object.
30                        Therefore it connot be transferred to the other kinds of
31                        objects for use as a method.
32
33    Author:             christine@netscape.com
34    Date:               1 october 1997
35*/
36
37    var SECTION = "15.5.4.3-1";
38    var VERSION = "ECMA_1";
39    startTest();
40    var TITLE   = "String.prototype.valueOf";
41
42    writeHeaderToLog( SECTION + " "+ TITLE);
43
44    var testcases = getTestCases();
45    test();
46
47function getTestCases() {
48    var array = new Array();
49    var item = 0;
50
51    array[item++] = new TestCase( SECTION,   "String.prototype.valueOf.length", 0,      String.prototype.valueOf.length );
52
53    array[item++] = new TestCase( SECTION,   "String.prototype.valueOf()",        "",     String.prototype.valueOf() );
54    array[item++] = new TestCase( SECTION,   "(new String()).valueOf()",          "",     (new String()).valueOf() );
55    array[item++] = new TestCase( SECTION,   "(new String(\"\")).valueOf()",      "",     (new String("")).valueOf() );
56    array[item++] = new TestCase( SECTION,   "(new String( String() )).valueOf()","",    (new String(String())).valueOf() );
57    array[item++] = new TestCase( SECTION,   "(new String( \"h e l l o\" )).valueOf()",       "h e l l o",    (new String("h e l l o")).valueOf() );
58    array[item++] = new TestCase( SECTION,   "(new String( 0 )).valueOf()",       "0",    (new String(0)).valueOf() );
59    return ( array );
60}
61function test( array ) {
62    for ( tc=0; tc < testcases.length; tc++ ) {
63        testcases[tc].passed = writeTestCaseResult(
64                            testcases[tc].expect,
65                            testcases[tc].actual,
66                            testcases[tc].description +" = "+ testcases[tc].actual );
67    }
68    stopTest();
69    return ( testcases );
70}
71