/js/src/jit-test/tests/basic/testAddAnyInconvertibleObject.js

http://github.com/zpao/v8monkey · JavaScript · 28 lines · 26 code · 2 blank · 0 comment · 7 complexity · 6d46c4ef7f343b12e14a54c39b58e002 MD5 · raw file

  1. function testAddAnyInconvertibleObject()
  2. {
  3. var count = 0;
  4. function toString() { ++count; if (count == 95) return {}; return "" + count; }
  5. var o = {valueOf: undefined, toString: toString};
  6. var threw = false;
  7. try
  8. {
  9. for (var i = 0; i < 100; i++)
  10. var q = 5 + o;
  11. }
  12. catch (e)
  13. {
  14. threw = true;
  15. if (i !== 94)
  16. return "expected i === 94, got " + i;
  17. if (q !== "594")
  18. return "expected q === '594', got " + q + " (type " + typeof q + ")";
  19. if (count !== 95)
  20. return "expected count === 95, got " + count;
  21. }
  22. if (!threw)
  23. return "expected throw with 5 + o"; // hey, a rhyme!
  24. return "pass";
  25. }
  26. assertEq(testAddAnyInconvertibleObject(), "pass");