observe-js CompoundObserver

Testing CompoundObserver of ObjectObservers

HTML

<script src="https://cdn.rawgit.com/Polymer/observe-js/0.5.5/src/observe.js"></script>
<p>If everything is working, you'll see two notifications below (one from each observer).</p>
<pre id="log"></pre>

CSS

#log {
    white-space: pre-wrap;
    margin-top: 1em;
}
body {
    padding: 1em;
}

JavaScript

console = {
    log: function log(str) {
        document.getElementById('log').textContent += str + '\n';
    }
};

var obj = { a: 1 };

console.log("Setting up observers.");
var objectObs = new ObjectObserver(obj);
objectObs.open(function () {
    console.log("  √ ObjectObserver notified");
});

obj.a = 12;

var compoundObs = new CompoundObserver();
compoundObs.addObserver(new ObjectObserver(obj));
compoundObs.open(function () {
    console.log("  √ CompoundObserver notified");
});

console.log("Modifying object.");
obj.a = 3;

console.log("Delivering ObjectObserver...");
objectObs.deliver();

console.log("Delivering CompoundObserver...");
compoundObs.deliver();

console.log("Closing observers.");
compoundObs.close();
objectObs.close();

console.log("Done.");