rhino1.7.7.testsrc.tests.ecma_3.Function.15.3.4.4-1.js Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of rhino Show documentation
Show all versions of rhino Show documentation
Rhino is an open-source implementation of JavaScript written entirely in Java. It is typically
embedded into Java applications to provide scripting to end users.
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
/*
*
* Date: 21 May 2002
* SUMMARY: ECMA conformance of Function.prototype.call
*
* Function.prototype.call(thisArg [,arg1 [,arg2, ...]])
*
* See ECMA-262 Edition 3 Final, Section 15.3.4.4
*/
//-----------------------------------------------------------------------------
var gTestfile = '15.3.4.4-1.js';
var UBound = 0;
var BUGNUMBER = 145791;
var summary = 'Testing ECMA conformance of Function.prototype.call';
var status = '';
var statusitems = [];
var actual = '';
var actualvalues = [];
var expect= '';
var expectedvalues = [];
function F0(a)
{
return "" + this + arguments.length;
}
function F1(a)
{
return "" + this + a;
}
function F2()
{
return "" + this;
}
/*
* Function.prototype.call.length should return 1
*/
status = inSection(1);
actual = Function.prototype.call.length;
expect = 1;
addThis();
/*
* When |thisArg| is not provided to the call() method, the
* called function must be passed the global object as |this|
*/
status = inSection(2);
actual = F0.call();
expect = "" + this + 0;
addThis();
/*
* If [,arg1 [,arg2, ...]] are not provided to the call() method,
* the called function should be invoked with an empty argument list
*/
status = inSection(3);
actual = F0.call("");
expect = "" + "" + 0;
addThis();
status = inSection(4);
actual = F0.call(true);
expect = "" + true + 0;
addThis();
/*
* Function.prototype.call(x) and
* Function.prototype.call(x, undefined) should return the same result
*/
status = inSection(5);
actual = F1.call(0, undefined);
expect = F1.call(0);
addThis();
status = inSection(6);
actual = F1.call("", undefined);
expect = F1.call("");
addThis();
status = inSection(7);
actual = F1.call(null, undefined);
expect = F1.call(null);
addThis();
status = inSection(8);
actual = F1.call(undefined, undefined);
expect = F1.call(undefined);
addThis();
/*
* Function.prototype.call() and
* Function.prototype.call(undefined) should return the same result
*/
status = inSection(9);
actual = F2.call(undefined);
expect = F2.call();
addThis();
/*
* Function.prototype.call() and
* Function.prototype.call(null) should return the same result
*/
status = inSection(10);
actual = F2.call(null);
expect = F2.call();
addThis();
//-----------------------------------------------------------------------------
test();
//-----------------------------------------------------------------------------
function addThis()
{
statusitems[UBound] = status;
actualvalues[UBound] = actual;
expectedvalues[UBound] = expect;
UBound++;
}
function test()
{
enterFunc('test');
printBugNumber(BUGNUMBER);
printStatus(summary);
for (var i=0; i
© 2015 - 2024 Weber Informatics LLC | Privacy Policy