js/src/tests/ecma/FunctionObjects/15.3.5-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.

michael@0 1 /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
michael@0 2 /* This Source Code Form is subject to the terms of the Mozilla Public
michael@0 3 * License, v. 2.0. If a copy of the MPL was not distributed with this
michael@0 4 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
michael@0 5
michael@0 6
michael@0 7 /**
michael@0 8 File Name: 15.3.5-1.js
michael@0 9 ECMA Section: 15.3.5 Properties of Function Instances
michael@0 10 new Function(p1, p2, ..., pn, body )
michael@0 11
michael@0 12 Description:
michael@0 13
michael@0 14 15.3.5.1 length
michael@0 15
michael@0 16 The value of the length property is usually an integer that indicates
michael@0 17 the "typical" number of arguments expected by the function. However,
michael@0 18 the language permits the function to be invoked with some other number
michael@0 19 of arguments. The behavior of a function when invoked on a number of
michael@0 20 arguments other than the number specified by its length property depends
michael@0 21 on the function.
michael@0 22
michael@0 23 15.3.5.2 prototype
michael@0 24 The value of the prototype property is used to initialize the internal [[
michael@0 25 Prototype]] property of a newly created object before the Function object
michael@0 26 is invoked as a constructor for that newly created object.
michael@0 27
michael@0 28 15.3.5.3 arguments
michael@0 29
michael@0 30 The value of the arguments property is normally null if there is no
michael@0 31 outstanding invocation of the function in progress (that is, the function has been called
michael@0 32 but has not yet returned). When a non-internal Function object (15.3.2.1) is invoked, its
michael@0 33 arguments property is "dynamically bound" to a newly created object that contains the
michael@0 34 arguments on which it was invoked (see 10.1.6 and 10.1.8). Note that the use of this
michael@0 35 property is discouraged; it is provided principally for compatibility with existing old code.
michael@0 36
michael@0 37 Author: christine@netscape.com
michael@0 38 Date: 28 october 1997
michael@0 39
michael@0 40 */
michael@0 41
michael@0 42 var SECTION = "15.3.5-2";
michael@0 43 var VERSION = "ECMA_1";
michael@0 44 startTest();
michael@0 45 var TITLE = "Properties of Function Instances";
michael@0 46
michael@0 47 writeHeaderToLog( SECTION + " "+TITLE);
michael@0 48
michael@0 49 var MyObject = new Function( 'a', 'b', 'c', 'this.a = a; this.b = b; this.c = c; this.value = a+b+c; this.valueOf = new Function( "return this.value" )' );
michael@0 50
michael@0 51 new TestCase( SECTION, "MyObject.length", 3, MyObject.length );
michael@0 52 new TestCase( SECTION, "typeof MyObject.prototype", "object", typeof MyObject.prototype );
michael@0 53 new TestCase( SECTION, "typeof MyObject.prototype.constructor", "function", typeof MyObject.prototype.constructor );
michael@0 54 new TestCase( SECTION, "MyObject.arguments", null, MyObject.arguments );
michael@0 55
michael@0 56 test();

mercurial