to-number-exception.js 640 B

1234567891011121314151617181920212223242526272829303132333435363738
  1. load("test-common.js");
  2. try {
  3. const message = "oops, Value::to_number() failed";
  4. const o = { toString() { throw new Error(message); } };
  5. assertThrowsError(() => {
  6. +o;
  7. }, {
  8. error: Error,
  9. message
  10. });
  11. assertThrowsError(() => {
  12. o - 1;
  13. }, {
  14. error: Error,
  15. message
  16. });
  17. assertThrowsError(() => {
  18. "foo".charAt(o);
  19. }, {
  20. error: Error,
  21. message
  22. });
  23. assertThrowsError(() => {
  24. "bar".repeat(o);
  25. }, {
  26. error: Error,
  27. message
  28. });
  29. console.log("PASS");
  30. } catch (e) {
  31. console.log("FAIL: " + e);
  32. }