heyujie
2021-05-20 6ebdefb4a5b2be82a8c452c0bb4624f3d85a17b7
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
"use strict";
 
var toPosInt          = require("../../number/to-pos-integer")
  , eq                = require("../../object/eq")
  , value             = require("../../object/valid-value")
  , objHasOwnProperty = Object.prototype.hasOwnProperty;
 
module.exports = function (other) {
    var i, length;
    value(this);
    value(other);
    length = toPosInt(this.length);
    if (length !== toPosInt(other.length)) return false;
    for (i = 0; i < length; ++i) {
        if (objHasOwnProperty.call(this, i) !== objHasOwnProperty.call(other, i)) {
            return false;
        }
        if (!eq(this[i], other[i])) return false;
    }
    return true;
};