isEqualTo(obj) {
        if (this === obj) {
            return true;
        }
        if (!(obj instanceof Matrix)) {
            return false;
        }

        /** @type {!Matrix} */
        let other = obj;
        return this._width === other._width &&
            this._height === other._height &&
            Seq.range(this._buffer.length).every(i => this._buffer[i] === other._buffer[i]);
    }
Determines if the receiving matrix is equal to the given matrix.
This method returns false, instead of throwing, when given badly typed arguments.
@param {!Matrix|*} obj
@returns {!boolean}