Object.setPrototypeOf.js 837 B

123456789101112131415161718192021222324252627282930313233343536
  1. load("test-common.js");
  2. try {
  3. assert(Object.setPrototypeOf.length === 2);
  4. assertThrowsError(() => {
  5. Object.setPrototypeOf();
  6. }, {
  7. error: TypeError,
  8. message: "Object.setPrototypeOf requires at least two arguments",
  9. });
  10. assertThrowsError(() => {
  11. Object.setPrototypeOf({}, "foo");
  12. }, {
  13. error: TypeError,
  14. message: "Prototype must be an object or null"
  15. });
  16. o = {};
  17. p = {};
  18. assert(Object.setPrototypeOf(o, p) === o);
  19. Object.preventExtensions(o);
  20. assertThrowsError(() => {
  21. Object.setPrototypeOf(o, {});
  22. }, {
  23. error: TypeError,
  24. message: "Object's [[SetPrototypeOf]] method returned false"
  25. });
  26. assert(Object.setPrototypeOf(o, p) === o);
  27. console.log("PASS");
  28. } catch (e) {
  29. console.log("FAIL: " + e);
  30. }