concordancejs / concordance

Compare, format, diff and serialize any JavaScript value

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Add support for BigInt as a primitive

bitjson opened this issue · comments

Thanks for the awesome work on this library! It's been fantastic. Do you have any plans for supporting BigInt?

The following AVA test generates an error in Concordance (Node v10.10.0):

  t.deepEqual(
    {
      a: BigInt(0)
    },
    {
      b: BigInt(0)
    }
  );

Error:

/[project]/node_modules/concordance/lib/Registry.js:20

  Error thrown in test:

  TypeError {
    message: 'Invalid value used as weak map key',
  }

  Registry.alloc (node_modules/concordance/lib/Registry.js:20:14)
  describeComplex (node_modules/concordance/lib/describe.js:102:28)
  curriedComplex (node_modules/concordance/lib/describe.js:141:12)
  Object.describeAny (node_modules/concordance/lib/describe.js:148:9)
  Object.next (node_modules/concordance/lib/complexValues/object.js:107:48)
  Object.next (node_modules/concordance/lib/recursorUtils.js:59:44)
  Object.recursor (node_modules/concordance/lib/complexValues/object.js:185:31)
  compareDescriptors (node_modules/concordance/lib/compare.js:70:32)
  Object.compare (node_modules/concordance/lib/compare.js:100:16)

Yep let's do this.