diff options
Diffstat (limited to 'node_modules/fast-deep-equal/es6')
| -rw-r--r-- | node_modules/fast-deep-equal/es6/index.d.ts | 2 | ||||
| -rw-r--r-- | node_modules/fast-deep-equal/es6/index.js | 72 | ||||
| -rw-r--r-- | node_modules/fast-deep-equal/es6/react.d.ts | 2 | ||||
| -rw-r--r-- | node_modules/fast-deep-equal/es6/react.js | 79 | 
4 files changed, 155 insertions, 0 deletions
| diff --git a/node_modules/fast-deep-equal/es6/index.d.ts b/node_modules/fast-deep-equal/es6/index.d.ts new file mode 100644 index 0000000..c7eb9c7 --- /dev/null +++ b/node_modules/fast-deep-equal/es6/index.d.ts @@ -0,0 +1,2 @@ +declare const equal: (a: any, b: any) => boolean; +export = equal; diff --git a/node_modules/fast-deep-equal/es6/index.js b/node_modules/fast-deep-equal/es6/index.js new file mode 100644 index 0000000..d980be2 --- /dev/null +++ b/node_modules/fast-deep-equal/es6/index.js @@ -0,0 +1,72 @@ +'use strict'; + +// do not edit .js files directly - edit src/index.jst + + +  var envHasBigInt64Array = typeof BigInt64Array !== 'undefined'; + + +module.exports = function equal(a, b) { +  if (a === b) return true; + +  if (a && b && typeof a == 'object' && typeof b == 'object') { +    if (a.constructor !== b.constructor) return false; + +    var length, i, keys; +    if (Array.isArray(a)) { +      length = a.length; +      if (length != b.length) return false; +      for (i = length; i-- !== 0;) +        if (!equal(a[i], b[i])) return false; +      return true; +    } + + +    if ((a instanceof Map) && (b instanceof Map)) { +      if (a.size !== b.size) return false; +      for (i of a.entries()) +        if (!b.has(i[0])) return false; +      for (i of a.entries()) +        if (!equal(i[1], b.get(i[0]))) return false; +      return true; +    } + +    if ((a instanceof Set) && (b instanceof Set)) { +      if (a.size !== b.size) return false; +      for (i of a.entries()) +        if (!b.has(i[0])) return false; +      return true; +    } + +    if (ArrayBuffer.isView(a) && ArrayBuffer.isView(b)) { +      length = a.length; +      if (length != b.length) return false; +      for (i = length; i-- !== 0;) +        if (a[i] !== b[i]) return false; +      return true; +    } + + +    if (a.constructor === RegExp) return a.source === b.source && a.flags === b.flags; +    if (a.valueOf !== Object.prototype.valueOf) return a.valueOf() === b.valueOf(); +    if (a.toString !== Object.prototype.toString) return a.toString() === b.toString(); + +    keys = Object.keys(a); +    length = keys.length; +    if (length !== Object.keys(b).length) return false; + +    for (i = length; i-- !== 0;) +      if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false; + +    for (i = length; i-- !== 0;) { +      var key = keys[i]; + +      if (!equal(a[key], b[key])) return false; +    } + +    return true; +  } + +  // true if both NaN, false otherwise +  return a!==a && b!==b; +}; diff --git a/node_modules/fast-deep-equal/es6/react.d.ts b/node_modules/fast-deep-equal/es6/react.d.ts new file mode 100644 index 0000000..c7eb9c7 --- /dev/null +++ b/node_modules/fast-deep-equal/es6/react.d.ts @@ -0,0 +1,2 @@ +declare const equal: (a: any, b: any) => boolean; +export = equal; diff --git a/node_modules/fast-deep-equal/es6/react.js b/node_modules/fast-deep-equal/es6/react.js new file mode 100644 index 0000000..98e2f9b --- /dev/null +++ b/node_modules/fast-deep-equal/es6/react.js @@ -0,0 +1,79 @@ +'use strict'; + +// do not edit .js files directly - edit src/index.jst + + +  var envHasBigInt64Array = typeof BigInt64Array !== 'undefined'; + + +module.exports = function equal(a, b) { +  if (a === b) return true; + +  if (a && b && typeof a == 'object' && typeof b == 'object') { +    if (a.constructor !== b.constructor) return false; + +    var length, i, keys; +    if (Array.isArray(a)) { +      length = a.length; +      if (length != b.length) return false; +      for (i = length; i-- !== 0;) +        if (!equal(a[i], b[i])) return false; +      return true; +    } + + +    if ((a instanceof Map) && (b instanceof Map)) { +      if (a.size !== b.size) return false; +      for (i of a.entries()) +        if (!b.has(i[0])) return false; +      for (i of a.entries()) +        if (!equal(i[1], b.get(i[0]))) return false; +      return true; +    } + +    if ((a instanceof Set) && (b instanceof Set)) { +      if (a.size !== b.size) return false; +      for (i of a.entries()) +        if (!b.has(i[0])) return false; +      return true; +    } + +    if (ArrayBuffer.isView(a) && ArrayBuffer.isView(b)) { +      length = a.length; +      if (length != b.length) return false; +      for (i = length; i-- !== 0;) +        if (a[i] !== b[i]) return false; +      return true; +    } + + +    if (a.constructor === RegExp) return a.source === b.source && a.flags === b.flags; +    if (a.valueOf !== Object.prototype.valueOf) return a.valueOf() === b.valueOf(); +    if (a.toString !== Object.prototype.toString) return a.toString() === b.toString(); + +    keys = Object.keys(a); +    length = keys.length; +    if (length !== Object.keys(b).length) return false; + +    for (i = length; i-- !== 0;) +      if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false; + +    for (i = length; i-- !== 0;) { +      var key = keys[i]; + +      if (key === '_owner' && a.$$typeof) { +        // React-specific: avoid traversing React elements' _owner. +        //  _owner contains circular references +        // and is not needed when comparing the actual elements (and not their owners) +        continue; +      } + +      if (!equal(a[key], b[key])) return false; +    } + +    return true; +  } + +  // true if both NaN, false otherwise +  return a!==a && b!==b; +}; | 
