michael@0: // An iterator keeps its data alive. michael@0: michael@0: load(libdir + "iteration.js"); michael@0: michael@0: load(libdir + "referencesVia.js"); michael@0: var key = {}; michael@0: michael@0: function test(obj, edgeName) { michael@0: var iter = obj[std_iterator](); michael@0: referencesVia(iter, "**UNKNOWN SLOT 0**", obj); michael@0: referencesVia(obj, edgeName, key); michael@0: } michael@0: michael@0: test([key], "element[0]"); michael@0: test(Map([[key, 'value']]), "key"); michael@0: test(Set([key]), "key");