That's interesting! Do you have an idea how they implemented bindings between arbitrary JS objects? Polling?
It uses ES5 getters and setters to replace the property and react to changes. This is what makes it realtime, after the set all bound properties will have their new values.