xref: /third_party/node/lib/internal/test/transfer.js (revision 1cb0ef41)
1'use strict';
2
3const {
4  makeTransferable,
5  kClone,
6  kDeserialize,
7} = require('internal/worker/js_transferable');
8
9process.emitWarning(
10  'These APIs are for internal testing only. Do not use them.',
11  'internal/test/transfer');
12
13// Used as part of parallel/test-messaging-maketransferable.
14// This has to exist within the lib/internal/ path in order
15// for deserialization to work.
16
17class E {
18  constructor(b) {
19    this.b = b;
20  }
21}
22
23class F extends E {
24  constructor(b) {
25    super(b);
26    /* eslint-disable-next-line no-constructor-return */
27    return makeTransferable(this);
28  }
29
30  [kClone]() {
31    return {
32      data: { b: this.b },
33      deserializeInfo: 'internal/test/transfer:F',
34    };
35  }
36
37  [kDeserialize]({ b }) {
38    this.b = b;
39  }
40}
41
42module.exports = { E, F };
43