ForInInline.js 1.4 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. var obj = { a: 1, b: 2, c:3 };
  6. var obj2 = { d: 1, e: 2, f:3 };
  7. var obj3 = { g: 1, h: 2, i:3 };
  8. var obj4 = { j: 1, k: 2, l:3 };
  9. var inlinee = function() { return ""; };
  10. function func(obj, obj2, obj3, obj4)
  11. {
  12. for (var s in obj) {
  13. WScript.Echo("outter " + s);
  14. forin_inlinee(obj2, obj3);
  15. }
  16. forin4(obj, obj2, obj3, obj4);
  17. }
  18. function forin_inlinee(obj2, obj3)
  19. {
  20. for (var s in obj2) {
  21. WScript.Echo("inner " + s);
  22. forin_inlinee2(obj3);
  23. }
  24. }
  25. function forin_inlinee2(obj3)
  26. {
  27. for (var s in obj3) {
  28. WScript.Echo("inner3 " + s);
  29. }
  30. }
  31. function forin4(obj, obj2, obj3, obj4)
  32. {
  33. for (var s in obj) {
  34. for (var s1 in obj2) {
  35. for (var s2 in obj3) {
  36. for (var s3 in obj4) {
  37. WScript.Echo(inlinee() + s + s1 + s2 + s3);
  38. }
  39. }
  40. }
  41. }
  42. }
  43. func(obj, obj2, obj3, obj4);
  44. func(obj, obj2, obj3, obj4);
  45. func(obj, obj2, obj3, obj4);
  46. inlinee = function() { return " "; } // force a bailout
  47. func(obj, obj2, obj3, obj4);