MultipleContextStack.js 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  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. // ScriptFunc1()
  6. // ScriptFunc2()
  7. // Script1Func1()
  8. // Script1Func2()
  9. // Script2Func1()
  10. // Script2Func2()
  11. // ScriptFunc3()
  12. // Script1Func3()
  13. // Script2Func3()
  14. var script1 = WScript.LoadScript("\
  15. var scriptFunc2; \
  16. var scriptFunc3; \
  17. function Script1Func1() { scriptFunc2(); } \
  18. function Script1Func2() { Script1Func1(); } \
  19. function Script1Func3() { scriptFunc3(); } \
  20. function setFunc2(func) { scriptFunc2 = func; } \
  21. function setFunc3(func) { scriptFunc3 = func; }",
  22. "samethread");
  23. var script2 = WScript.LoadScript(" \
  24. var script1Func2; \
  25. var script1Func3; \
  26. function Script2Func1() { script1Func2(); } \
  27. function Script2Func2() { Script2Func1(); } \
  28. function Script2Func3() { script1Func3(); } \
  29. function setFunc2(func) { script1Func2 = func; } \
  30. function setFunc3(func) { script1Func3 = func; }",
  31. "samethread");
  32. function Func2() {
  33. Func1();
  34. }
  35. function Func3() {
  36. script2.Script2Func2();
  37. }
  38. function Func1() {
  39. var x = 1; /**bp:stack();locals(1);**/;
  40. }
  41. script2.setFunc2(script1.Script1Func2);
  42. script1.setFunc2(Func2);
  43. script1.setFunc3(Func3);
  44. script2.setFunc3(script1.Script1Func3);
  45. script2.Script2Func3();
  46. WScript.Echo("pass");