mirror of https://gitee.com/openkylin/nodejs.git
30 lines
852 B
JavaScript
30 lines
852 B
JavaScript
'use strict';
|
|
const common = require('../common');
|
|
const assert = require('assert');
|
|
const { MessageChannel } = require('worker_threads');
|
|
|
|
// Test that passing duplicate transferrables in the transfer list throws
|
|
// DataCloneError exceptions.
|
|
|
|
{
|
|
const { port1, port2 } = new MessageChannel();
|
|
port2.once('message', common.mustNotCall());
|
|
|
|
const port3 = new MessageChannel().port1;
|
|
assert.throws(() => {
|
|
port1.postMessage(port3, [port3, port3]);
|
|
}, /^DataCloneError: Transfer list contains duplicate MessagePort$/);
|
|
port1.close();
|
|
}
|
|
|
|
{
|
|
const { port1, port2 } = new MessageChannel();
|
|
port2.once('message', common.mustNotCall());
|
|
|
|
const buf = new Uint8Array(10);
|
|
assert.throws(() => {
|
|
port1.postMessage(buf, [buf.buffer, buf.buffer]);
|
|
}, /^DataCloneError: Transfer list contains duplicate ArrayBuffer$/);
|
|
port1.close();
|
|
}
|