Array.prototype.every.js 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. load("test-common.js");
  2. try {
  3. assert(Array.prototype.every.length === 1);
  4. assertThrowsError(() => {
  5. [].every(undefined);
  6. }, {
  7. error: TypeError,
  8. message: "undefined is not a function"
  9. });
  10. var arrayOne = ["serenity", { test: "serenity"} ];
  11. var arrayTwo = [true, false, 1, 2, 3, "3"];
  12. assert(arrayOne.every(value => value === "hello") === false);
  13. assert(arrayOne.every(value => value === "serenity") === false);
  14. assert(arrayOne.every((value, index, arr) => index < 2) === true);
  15. assert(arrayOne.every(value => typeof(value) === "string") === false);
  16. assert(arrayOne.every(value => arrayOne.pop()) === true);
  17. assert(arrayTwo.every((value, index, arr) => index > 0) === false);
  18. assert(arrayTwo.every((value, index, arr) => index >= 0) === true);
  19. assert(arrayTwo.every(value => typeof(value) !== "string") === false);
  20. assert(arrayTwo.every(value => typeof(value) === "number") === false);
  21. assert(arrayTwo.every(value => value > 0) === false);
  22. assert(arrayTwo.every(value => value >= 0 && value < 4) === true);
  23. assert(arrayTwo.every(value => arrayTwo.pop()) === true);
  24. assert(["", "hello", "friends", "serenity"].every(value => value.length >= 0) === true);
  25. assert([].every(value => value === 1) === true);
  26. arrayTwo = [true, false, 1, 2, 3, "3"];
  27. // Every only goes up to the original length.
  28. assert(arrayTwo.every((value, index, arr) => {
  29. arr.push("serenity");
  30. return value < 4;
  31. }) === true);
  32. console.log("PASS");
  33. } catch (e) {
  34. console.log("FAIL: " + e);
  35. }