// Copyright 2009 the Sputnik authors.  All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.

/*---
info: |
    It is permissible but not necessary to have one argument for each formal
    parameter to be specified
es5id: 15.3.2.1_A2_T4
description: >
    Values of the function constructor arguments are "return"-s of
    various results
---*/

var i=0;

var p={toString:function(){return "arg"+(++i);}};

//CHECK#1
try {
  var f = Function(p, p, p, "return arg1+arg2+arg3;");
} catch (e) {
  $ERROR('#1: test failed');
}

//CHECK#2
if (!(f instanceof Function)){
  $ERROR('#2: It is permissible but not necessary to have one argument for each formal parameter to be specified');
}

//CHECK#3
if (f(4,"2","QUESTION") !== "42QUESTION") {
  $ERROR('#3: It is permissible but not necessary to have one argument for each formal parameter to be specified');
}
