in-operator-basic.js 881 B

1234567891011121314151617181920212223242526272829303132333435
  1. load("test-common.js");
  2. try {
  3. ["foo", 123, null, undefined].forEach(value => {
  4. assertThrowsError(() => {
  5. "prop" in value;
  6. }, {
  7. error: TypeError,
  8. message: "'in' operator must be used on an object"
  9. });
  10. });
  11. var o = {foo: "bar", bar: undefined};
  12. assert("" in o === false);
  13. assert("foo" in o === true);
  14. assert("bar" in o === true);
  15. assert("baz" in o === false);
  16. assert("toString" in o === true);
  17. var a = ["hello", "friends"];
  18. assert(0 in a === true);
  19. assert(1 in a === true);
  20. assert(2 in a === false);
  21. assert("0" in a === true);
  22. assert("hello" in a === false);
  23. assert("friends" in a === false);
  24. assert("length" in a === true);
  25. var s = new String("foo");
  26. assert("length" in s);
  27. console.log("PASS");
  28. } catch (e) {
  29. console.log("FAIL: " + e);
  30. }