newFunction.js 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. //-------------------------------------------------------------------------------------------------------
  2. // Copyright (C) Microsoft. All rights reserved.
  3. // Licensed under the MIT license. See LICENSE.txt file in the project root for full license information.
  4. //-------------------------------------------------------------------------------------------------------
  5. function write(v) { WScript.Echo(v + ""); }
  6. // No arguments
  7. var f = new Function();
  8. write(f());
  9. // Just the body
  10. var f0 = new Function("return 10;");
  11. write(f0());
  12. var f1 = new Function("a", "return a;");
  13. write(f1());
  14. write(f1(100));
  15. var f2 = new Function("a", "b", "return a+b;");
  16. write(f2());
  17. write(f2(10));
  18. write(f2(10,20));
  19. // All of f3? should be the same
  20. var f31 = new Function("a", "b", "c", "return a+b+c;");
  21. var f32 = new Function("a,b,c", "return a+b+c;");
  22. var f33 = new Function("a,b", "c", "return a+b+c;");
  23. write(f31());
  24. write(f32());
  25. write(f33());
  26. write(f31(10,20,30));
  27. write(f32(10,20,30));
  28. write(f33(10,20,30));
  29. // Check the name binding
  30. var x = "global";
  31. function fNameBinding() {
  32. var x = "local";
  33. var y = new Function("return x;");
  34. write(y());
  35. return x + " " + y();
  36. }
  37. write(fNameBinding());