go.ketch.com/lib/goja@v0.0.1/builtin_weakmap_test.go (about)

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