polyInliningFixedMethods.js 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  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 a() { }
  6. a.prototype.x = function () { WScript.Echo(1); this.y(); };
  7. a.prototype.y = function () { WScript.Echo("a"); };
  8. var a1 = new a();
  9. a1.f = function () { WScript.Echo(1); this.y(); };
  10. function b() { }
  11. b.prototype.p = 1;
  12. b.prototype.x = function () { WScript.Echo("b"); };
  13. b.prototype.f = function () { WScript.Echo("b1"); };
  14. b.prototype.y = function () { WScript.Echo("b"); };
  15. var b1 = new b();
  16. function pr(){};
  17. pr.f = function() {WScript.Echo("pr")};
  18. b.prototype = pr;
  19. b2 = new b();
  20. function Inheriter() {
  21. this.f = function () { WScript.Echo("f"); }
  22. }
  23. function c() { }
  24. c.prototype.x = function () { WScript.Echo(2); };
  25. c.prototype.q = 1;
  26. c.prototype.p = 1;
  27. Inheriter.prototype = a.prototype;
  28. c.prototype = new Inheriter();
  29. var c1 = new c();
  30. function d() { }
  31. d.prototype.x = function () { WScript.Echo(2); };
  32. d.prototype.r = 1;
  33. d.prototype.q = 1;
  34. d.prototype.p = 1;
  35. //Inheriter.prototype = b.prototype;
  36. d.prototype = new Inheriter();
  37. var d1 = new d();
  38. function foo(func) {
  39. func.f();
  40. }
  41. foo(b1);
  42. foo(b2);
  43. foo(b1);
  44. foo(d1);
  45. foo(a1);
  46. foo(b1);
  47. foo(c1);
  48. foo(d1);