array_length.js 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123
  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(args)
  6. {
  7. WScript.Echo(args);
  8. }
  9. var arr=new Array(2);
  10. arr[0]=1;
  11. arr.length="";
  12. write(arr.length);
  13. arr.length=null;
  14. write(arr.length);
  15. arr.length=4294967295;
  16. write(arr.length.toString());
  17. try {
  18. arr.length="-1";
  19. }
  20. catch (e)
  21. {
  22. write(e.message);
  23. }
  24. try {
  25. arr.length=4294967296;
  26. }
  27. catch (e)
  28. {
  29. write(e.message);
  30. }
  31. try {
  32. Array.length=10;
  33. write(Array.length);
  34. }
  35. catch (e)
  36. {
  37. write(e.message);
  38. }
  39. try {
  40. x = [];
  41. x.length = true;
  42. write(x.length);
  43. }
  44. catch(e)
  45. {
  46. write(e.message);
  47. }
  48. try {
  49. Object.prototype.length = function () {
  50. return this
  51. };
  52. (function () {
  53. ;
  54. for (var y in [void 0]) {
  55. y.length();
  56. }
  57. })();
  58. }
  59. catch (e) {
  60. write(e.message);
  61. }
  62. try {
  63. Object.prototype.length = function () {
  64. return this
  65. };
  66. var a = [10, 20, 24];
  67. WScript.Echo("prop = " + a.length);
  68. WScript.Echo("method = " + a.length());
  69. }
  70. catch (e) {
  71. write(e.message);
  72. }
  73. var a = { length: 10 };
  74. var b = Object.freeze(a);
  75. var c = Object.create(b);
  76. c.length = 88;
  77. WScript.Echo(c.length);
  78. WScript.Echo(b.length);
  79. var o = Object.freeze([]);
  80. var p = Object.create(o)
  81. p.length = 5
  82. WScript.Echo(p.length);
  83. WScript.Echo(o.length);
  84. var x = [];
  85. var y = Object.create(x);
  86. y.length = 7;
  87. WScript.Echo(y.length);
  88. WScript.Echo(x.length);
  89. var z = [];
  90. z.length = 3;
  91. WScript.Echo(z.length);
  92. function echo(m) { if (this.WScript) { WScript.Echo(m); } else { console.log(m); } }
  93. Object.defineProperty(Object.prototype, "length", { set: function() { echo("setter"); }, configurable: true });
  94. var a = [];
  95. var b = Object.create(a);
  96. b.length = 5;
  97. echo(b.length);
  98. function foo()
  99. {
  100. var arr = new Array(10);
  101. var x = arr.length--;
  102. arr[arr.length + 1] = 20;
  103. var y = --arr.length;
  104. return y;
  105. }
  106. WScript.Echo(foo());