| //------------------------------------------------------------------------------------------------------- |
| // Copyright (C) Microsoft. All rights reserved. |
| // Licensed under the MIT license. See LICENSE.txt file in the project root for full license information. |
| //------------------------------------------------------------------------------------------------------- |
| |
| function write(v) { WScript.Echo(v + ""); } |
| |
| // No arguments |
| var f = new Function(); |
| write(f()); |
| |
| // Just the body |
| var f0 = new Function("return 10;"); |
| write(f0()); |
| |
| |
| var f1 = new Function("a", "return a;"); |
| write(f1()); |
| write(f1(100)); |
| |
| |
| var f2 = new Function("a", "b", "return a+b;"); |
| write(f2()); |
| write(f2(10)); |
| write(f2(10,20)); |
| |
| |
| // All of f3? should be the same |
| var f31 = new Function("a", "b", "c", "return a+b+c;"); |
| var f32 = new Function("a,b,c", "return a+b+c;"); |
| var f33 = new Function("a,b", "c", "return a+b+c;"); |
| |
| write(f31()); |
| write(f32()); |
| write(f33()); |
| |
| write(f31(10,20,30)); |
| write(f32(10,20,30)); |
| write(f33(10,20,30)); |
| |
| |
| // Check the name binding |
| var x = "global"; |
| function fNameBinding() { |
| var x = "local"; |
| var y = new Function("return x;"); |
| |
| write(y()); |
| |
| return x + " " + y(); |
| } |
| |
| write(fNameBinding()); |
| |