JSFiddle - React, Tailwind, and code Playground

by Glutamat

JavaScript

Object.defineProperty(Boolean.prototype, "equals", {
        enumerable: false,
        configurable: true,
        value: function (c) {
            return this == c;
        }
    });

Object.defineProperty(Number.prototype, "equals", {
        enumerable: false,
        configurable: true,
        value: function (c) {
            console.log (isNaN(this) && c != c)
            if (Number.prototype.equals.NaN == true && isNaN(this) && c != c) return true;
            return this == c;
        }
    });

Number.prototype.equals.NaN = false; //Set to true to return true for NaN == NaN

Object.defineProperty(String.prototype, "equals", {
        enumerable: false,
        configurable: true,
        value:Boolean.prototype.equals
    });

Object.defineProperty(Object.prototype, "equals", {
        enumerable: false,
        configurable: true,
        value: function (c,reference) {
            if (true === reference)
                return this === c;
            if (typeof this != typeof c) {
                return false;
            }
            var d = [Object.keys(this), Object.keys(c)],
                f = d[0].length;
            if (f !== d[1].length) {
                return false;
            }
            for (var e = 0; e < f; e++) {
                if (d[0][e] != d[1][e] || !this[d[0][e]].equals(c[d[1][e]])) {
                    return false;
                }
            }
            return true;
        }
    });
Object.defineProperty(Array.prototype, "equals", {
        enumerable: false,
        configurable: true,
        value: function (c,reference) {
            
            var d = this.length;
            if (d != c.length) {
                return false;
            }
            var f = Array.prototype.equals.sort(this.concat());
            c = Array.prototype.equals.sort(c.concat())
            if (reference){
                for (var e = 0; e < d; e++) {
                    if (f[e] != c[e] && !(Array.prototype.equals.NaN && f[e] !=...