aboutsummaryrefslogtreecommitdiff
path: root/test/parallel/test-v8-serdes-sharedarraybuffer.js
blob: 01db30818153b806c81ee50b353e066ba4783710 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
/* global SharedArrayBuffer */
'use strict';

const common = require('../common');
const assert = require('assert');
const v8 = require('v8');

{
  const sab = new SharedArrayBuffer(64);
  const uint8array = new Uint8Array(sab);
  const ID = 42;

  const ser = new v8.Serializer();
  ser._getSharedArrayBufferId = common.mustCall(() => ID);
  ser.writeHeader();

  ser.writeValue(uint8array);

  const des = new v8.Deserializer(ser.releaseBuffer());
  des.readHeader();
  des.transferArrayBuffer(ID, sab);

  const value = des.readValue();
  assert.strictEqual(value.buffer, sab);
  assert.notStrictEqual(value, uint8array);
}