JSFiddle - React, Tailwind, and code Playground

HTML

<script src="https://rawgithub.com/javascript/augment/master/augment.js"></script>
<ol></ol>

JavaScript

var ol = document.querySelector("ol");

var EventStream = augment(Object, function () {
    this.constructor = function () {
        this.listeners = [];
    };

    this.set = function (a) {
        var listeners = this.listeners;

        setTimeout(function () {
            listeners.forEach(function (listener) {
                listener(a);
            });
        }, 0);

        return this;
    };

    this.get = function (f) {
        this.listeners.push(f);
        return this;
    };
});

var fib = new EventStream;

fib.get(function (x) {
    ol.innerHTML += "<li>(" + x + ")</li>";
    fib.set([x[1], x[0] + x[1]]);
});

fib.set([0,1]);