/*
This file belongs to the Servoy development and deployment environment, Copyright (C) 1997-2010 Servoy BV
This program is free software; you can redistribute it and/or modify it under
the terms of the GNU Affero General Public License as published by the Free
Software Foundation; either version 3 of the License, or (at your option) any
later version.
This program is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details.
You should have received a copy of the GNU Affero General Public License along
with this program; if not, see http://www.gnu.org/licenses or write to the Free
Software Foundation,Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
*/
package com.servoy.j2db.scripting.info;
import com.servoy.j2db.scripting.IPrefixedConstantsObject;
public class ARGUMENTS implements IPrefixedConstantsObject
{
/**
* The number of arguments passed to the function.
*
* @sample
* function addNumbers(x, y) {
* if (arguments.length == addNumbers.length) {
* return (x + y);
* }
* else {
* return 0;
* }
* }
* var result = addNumbers(3, 4, 5);
* application.output(result); // returns 0
* result = addNumbers(3, 4);
* application.output(result); // returns 7
* result = addNumbers(103, 104);
* application.output(result); // returns 207
*
* @link https://developer.mozilla.org/en/JavaScript/Reference/Functions_and_function_scope/arguments/length
*
*/
public static final String length = "length"; //$NON-NLS-1$
/**
* The currently executing function.
*
* @sample
* function makeFactorialFunc() {
* application.output('making a factorial function!');
* return function(x) {
* if (x <= 1)
* return 1;
* return x * arguments.callee(x - 1);
* };
* }
* var result = makeFactorialFunc()(5); // returns 120 (5 * 4 * 3 * 2 * 1)
* application.output("Result = " + result);
*
* @link https://developer.mozilla.org/en/JavaScript/Reference/Functions_and_function_scope/arguments/callee
*
*/
public static final String callee = "callee"; //$NON-NLS-1$
public static String getArgPrefix()
{
return "arguments"; //$NON-NLS-1$
}
/**
* @see com.servoy.j2db.scripting.IPrefixedConstantsObject#getPrefix()
*/
public String getPrefix()
{
return "arguments"; //$NON-NLS-1$
}
/**
* @see java.lang.Object#toString()
*/
@Override
public String toString()
{
return "arguments object"; //$NON-NLS-1$
}
}