diff --git a/src/cid.js b/src/cid.js index cbb5fd80..4736898f 100644 --- a/src/cid.js +++ b/src/cid.js @@ -87,19 +87,6 @@ export class CID { // Circular reference /** @readonly */ this.asCID = this - - // Configure private properties - Object.defineProperties(this, { - byteOffset: hidden, - byteLength: hidden, - - code: readonly, - version: readonly, - multihash: readonly, - bytes: readonly, - - asCID: hidden - }) } /** @@ -568,5 +555,3 @@ const encodeCID = (version, code, multihash) => { } const cidSymbol = Symbol.for('@ipld/js-cid/CID') -const readonly = { writable: false, configurable: false, enumerable: true } -const hidden = { writable: false, enumerable: false, configurable: false } diff --git a/test/test-cid.spec.js b/test/test-cid.spec.js index 5bdd3b1d..6de0f6c5 100644 --- a/test/test-cid.spec.js +++ b/test/test-cid.spec.js @@ -696,4 +696,16 @@ describe('CID', () => { const encoded = varint.encodeTo(2, new Uint8Array(32)) assert.throws(() => CID.decode(encoded), 'Invalid CID version 2') }) + + it('CID can be moved across JS realms', async () => { + const cid = CID.parse('bafybeif2pall7dybz7vecqka3zo24irdwabwdi4wc55jznaq75q7eaavvu') + const { port1: sender, port2: receiver } = new MessageChannel() + sender.postMessage(cid) + const cid2 = await new Promise((resolve) => { + receiver.onmessage = (event) => { resolve(event.data) } + }) + assert.strictEqual(cid2.asCID, cid2) + sender.close() + receiver.close() + }) })