Object.setPrototypeOf.js 648 B

1234567891011121314151617181920212223242526272829
  1. load("test-common.js");
  2. try {
  3. assert(Object.setPrototypeOf.length === 2);
  4. assertThrowsError(() => {
  5. Object.setPrototypeOf({}, "foo");
  6. }, {
  7. error: TypeError,
  8. message: "Prototype must be null or object"
  9. });
  10. o = {};
  11. p = {};
  12. assert(Object.setPrototypeOf(o, p) === o);
  13. Object.preventExtensions(o);
  14. assertThrowsError(() => {
  15. Object.setPrototypeOf(o, {});
  16. }, {
  17. error: TypeError,
  18. message: "Can't set prototype of non-extensible object"
  19. });
  20. assert(Object.setPrototypeOf(o, p) === o);
  21. console.log("PASS");
  22. } catch (e) {
  23. console.log("FAIL: " + e);
  24. }