builtin_weakmap_test.go 679 B

1234567891011121314151617181920212223242526272829303132333435363738
  1. package goja
  2. import (
  3. "testing"
  4. )
  5. func TestWeakMap(t *testing.T) {
  6. vm := New()
  7. _, err := vm.RunString(`
  8. var m = new WeakMap();
  9. var m1 = new WeakMap();
  10. var key = {};
  11. m.set(key, true);
  12. m1.set(key, false);
  13. if (!m.has(key)) {
  14. throw new Error("has");
  15. }
  16. if (m.get(key) !== true) {
  17. throw new Error("value does not match");
  18. }
  19. if (!m1.has(key)) {
  20. throw new Error("has (m1)");
  21. }
  22. if (m1.get(key) !== false) {
  23. throw new Error("m1 value does not match");
  24. }
  25. m.delete(key);
  26. if (m.has(key)) {
  27. throw new Error("m still has after delete");
  28. }
  29. if (!m1.has(key)) {
  30. throw new Error("m1 does not have after delete from m");
  31. }
  32. `)
  33. if err != nil {
  34. t.Fatal(err)
  35. }
  36. }