is this Angular?

I like this feature of Angular so I made my own

by Darby Rathbone

HTML

focused : <span class='second' id='focus'></span>

<br/>first : <span>{{first}}</span>
<br/>second : <span>{{second}}</span>
<br/>third : <span>{{third}}</span>
<br/><span>{{count}}</span><br/>
<input type="text" value="{{first}}" />
<input class='first' type='text' data-id='first' data-set="value" value=''></input>
<input class='second' type='text' data-id='second' data-set="value" value=''></input>
<input class='third' type='text' data-id='third' data-set="value" value=''></input>
<input class='count' type='text' data-id='count' data-set="value" value='0'></input>

JavaScript

function toArray(list) {
    return Array.prototype.slice.call(list);
}
var list = {}, replacements = {},
re = /(\{\{)(\w+)(\}\})/gi,
    list2 = [],
    re2 = /(.*?)(?:\{\{)(\w+)(?:\}\})(.*?)/gi;
[].slice.call(document.querySelectorAll('*')).forEach(function (e) {
    [].slice.call(e.childNodes).forEach(function (f) {
        if (f.nodeValue) f.nodeValue = f.nodeValue.replace(re2, function (a, before,b,after) {
            var index = -1;
            if (!list2[b]) {
                list2[b]=((function () {
                    var value = b;
                    var v = {
                        string: b,
                        array: [f],
                        set value(e) {
                            value = e;
                            this.array = this.array.concat([].slice.call(document.querySelectorAll("."+b)));
                        this.array = this.array.filter(function(h,i){return this.array.indexOf(h) ===i},this);
                            this.array.forEach(function (g) {
                            if(g.hasOwnProperty('nodeValue'))
                        g.nodeValue = e;
                       // console.dir(g);
                            if(g.dataset && g.dataset.set){
                        
                        g[g.dataset.set]=e;
                        
                    }
                            });
                        },
                        get value() {
                            return value;
                        }
                    };
                        v.value = b;
                    return v;
                })());
            } else {
                list2[b].array.push(f);
            }
            return b;
        });
    });
});
console.log(list2);
/* document.body.innerHTML = document.body.innerHTML.replace(re, function (b, a, c) {

        ///this finds {{c}}
        if (!list.hasOwnProperty(c)) {
            list[c] = c;

            Object.defineProperty(replacements, c, {
              ...