var processedBag = new WeakSet(); var nextObject = getNext(); while (nextObject !== null){ // Check if already processed this similar object? if (!processedBag.has(nextObject)){ // If not, process it and memorize process(nextObject); processedBag.add(nextObject); } nextObject = getNext(); }
let ws = new WeakSet(); let symbol = Symbol(); let wrapped = Object(symbol); ws.add(wrapped);
var touch = (function() { var seen = new WeakSet(); return function(value) { if(seen.has(value)) return true; seen.add(value); }; })(); function convert(object) { if(touch(object)) return; extend(object, yunoprototype); // Made up. }; function unconvert(object) { if(untouch(object)) return; // Imagine it exists. del_props(object, Object.keys(yunoprototype)); // Never do this IRL. };