mirror of
https://github.com/denoland/deno.git
synced 2024-11-23 15:16:54 -05:00
16ae4a0d57
Co-authored-by: Luca Casonato <hello@lcas.dev>
19 lines
792 B
TypeScript
19 lines
792 B
TypeScript
import { assert, assertEquals } from "./test_util.ts";
|
|
|
|
// Basic tests for the structured clone algorithm. Mainly tests TypeScript
|
|
// typings. Actual functionality is tested in WPT.
|
|
|
|
Deno.test("self.structuredClone", async () => {
|
|
const arrayOriginal = ["hello world"];
|
|
const channelOriginal = new MessageChannel();
|
|
const [arrayCloned, portTransferred] = self
|
|
.structuredClone([arrayOriginal, channelOriginal.port2], {
|
|
transfer: [channelOriginal.port2],
|
|
});
|
|
assert(arrayOriginal !== arrayCloned); // not the same identity
|
|
assertEquals(arrayCloned, arrayOriginal); // but same value
|
|
channelOriginal.port1.postMessage("1");
|
|
await new Promise((resolve) => portTransferred.onmessage = () => resolve(1));
|
|
channelOriginal.port1.close();
|
|
portTransferred.close();
|
|
});
|