Initial Save
This commit is contained in:
37
node_modules/core-js-pure/internals/detach-transferable.js
generated
vendored
Normal file
37
node_modules/core-js-pure/internals/detach-transferable.js
generated
vendored
Normal file
@@ -0,0 +1,37 @@
|
||||
'use strict';
|
||||
var globalThis = require('../internals/global-this');
|
||||
var getBuiltInNodeModule = require('../internals/get-built-in-node-module');
|
||||
var PROPER_STRUCTURED_CLONE_TRANSFER = require('../internals/structured-clone-proper-transfer');
|
||||
|
||||
var structuredClone = globalThis.structuredClone;
|
||||
var $ArrayBuffer = globalThis.ArrayBuffer;
|
||||
var $MessageChannel = globalThis.MessageChannel;
|
||||
var detach = false;
|
||||
var WorkerThreads, channel, buffer, $detach;
|
||||
|
||||
if (PROPER_STRUCTURED_CLONE_TRANSFER) {
|
||||
detach = function (transferable) {
|
||||
structuredClone(transferable, { transfer: [transferable] });
|
||||
};
|
||||
} else if ($ArrayBuffer) try {
|
||||
if (!$MessageChannel) {
|
||||
WorkerThreads = getBuiltInNodeModule('worker_threads');
|
||||
if (WorkerThreads) $MessageChannel = WorkerThreads.MessageChannel;
|
||||
}
|
||||
|
||||
if ($MessageChannel) {
|
||||
channel = new $MessageChannel();
|
||||
buffer = new $ArrayBuffer(2);
|
||||
|
||||
$detach = function (transferable) {
|
||||
channel.port1.postMessage(null, [transferable]);
|
||||
};
|
||||
|
||||
if (buffer.byteLength === 2) {
|
||||
$detach(buffer);
|
||||
if (buffer.byteLength === 0) detach = $detach;
|
||||
}
|
||||
}
|
||||
} catch (error) { /* empty */ }
|
||||
|
||||
module.exports = detach;
|
||||
Reference in New Issue
Block a user