InsufficientArguments.js 2.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  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(msg) { WScript.Echo(msg); }
  6. function Getter() { write("GETTER"); return "GetterValue"; }
  7. function SafeCall(f)
  8. {
  9. try
  10. {
  11. f();
  12. }
  13. catch (e)
  14. {
  15. write(e.name);
  16. }
  17. }
  18. // Object.getOwnPropertyDescriptor
  19. write("Test 1");
  20. SafeCall(function() { Object.getOwnPropertyDescriptor(); });
  21. write("Test 2");
  22. SafeCall(function() { write(Object.getOwnPropertyDescriptor({})); });
  23. write("Test 3");
  24. SafeCall(function() { write(Object.getOwnPropertyDescriptor({'undefined':4}).value); });
  25. // Object.defineProperty
  26. write("Test 4");
  27. SafeCall(function() { Object.defineProperty(); });
  28. write("Test 5");
  29. SafeCall(function() { Object.defineProperty({}); });
  30. write("Test 6");
  31. SafeCall(function() { Object.defineProperty({}, 'foo'); });
  32. write("Test 7");
  33. SafeCall(function() { Object.defineProperty({},
  34. { toString : function() { throw {name:'MyError'}; } });
  35. });
  36. write("Test 8");
  37. SafeCall(function() { var obj = {};
  38. Object.defineProperty(obj, undefined, { value:4, writable:true });
  39. write(obj['undefined']);
  40. });
  41. // Object.defineProperties
  42. write("Test 9");
  43. SafeCall(function() { Object.defineProperties(); });
  44. write("Test 10");
  45. SafeCall(function() { Object.defineProperties({}); });
  46. // Array.prototype methods
  47. var obj = {};
  48. Object.defineProperty(obj, "length", { get:Getter, configurable:true });
  49. write("Test 11");
  50. SafeCall(function() { Array.prototype.every.call(obj); });
  51. write("Test 12");
  52. SafeCall(function() { Array.prototype.some.call(obj); });
  53. write("Test 13");
  54. SafeCall(function() { Array.prototype.forEach.call(obj); });
  55. write("Test 14");
  56. SafeCall(function() { Array.prototype.map.call(obj); });
  57. write("Test 15");
  58. SafeCall(function() { Array.prototype.filter.call(obj); });
  59. write("Test 16");
  60. SafeCall(function() { Array.prototype.reduce.call(obj); });
  61. write("Test 17");
  62. SafeCall(function() { Array.prototype.reduceRight.call(obj); });