arguments1.js 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  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. // jshost -trace:perfhint d:\testbins1\test.js -off:simplejit -maxinterpretcount:1
  6. var target = function (arg) {
  7. var string = "that: " + this.that +
  8. ", arg: " + arg;
  9. return string;
  10. };
  11. var that = { that: "that" };
  12. function arguments_test1(arg1) {
  13. target.apply(that, arguments);
  14. }
  15. function arguments_test1_fixed() {
  16. target.apply(that, arguments);
  17. }
  18. function arguments_test2() {
  19. var k = 10;
  20. arguments[arguments.length] = 'end';
  21. target.apply(that, arguments);
  22. }
  23. function arguments_test3() {
  24. var arr = [];
  25. for (var i in arguments) {
  26. arr.push(arguments[i]);
  27. }
  28. arr.push('end');
  29. target.apply(that, arr);
  30. }
  31. function arguments_test2_fixed() {
  32. var k = arguments.length;
  33. var arr = [];
  34. for (var i = 0; i < k; i++) {
  35. arr[i] = arguments[i];
  36. }
  37. arr.push('end');
  38. target.apply(that, arr);
  39. }
  40. var arg = "arg";
  41. var iter = 100;
  42. function Run() {
  43. for (var i = 0; i < iter; i++) {
  44. arguments_test1(arg);
  45. }
  46. for (var i = 0; i < iter; i++) {
  47. arguments_test1_fixed(arg);
  48. }
  49. for (var i = 0; i < iter; i++) {
  50. arguments_test2(arg);
  51. }
  52. for (var i = 0; i < iter; i++) {
  53. arguments_test3(arg);
  54. }
  55. for (var i = 0; i < iter; i++) {
  56. arguments_test2_fixed(arg);
  57. }
  58. }
  59. Run();