--- /dev/null
+'use strict';
+
+var toPosInt = require('../../number/to-pos-integer')
+ , eq = require('../../object/eq')
+ , value = require('../../object/valid-value')
+
+ , hasOwnProperty = Object.prototype.hasOwnProperty;
+
+module.exports = function (other) {
+ var i, l;
+ (value(this) && value(other));
+ l = toPosInt(this.length);
+ if (l !== toPosInt(other.length)) return false;
+ for (i = 0; i < l; ++i) {
+ if (hasOwnProperty.call(this, i) !== hasOwnProperty.call(other, i)) {
+ return false;
+ }
+ if (!eq(this[i], other[i])) return false;
+ }
+ return true;
+};