Some checks failed
CI/CD Pipeline / unit-tests (push) Failing after 1m16s
CI/CD Pipeline / integration-tests (push) Failing after 2m32s
CI/CD Pipeline / lint (push) Successful in 5m22s
CI/CD Pipeline / e2e-tests (push) Has been skipped
CI/CD Pipeline / build (push) Has been skipped
39 lines
1.1 KiB
JavaScript
39 lines
1.1 KiB
JavaScript
// src/common.ts
|
|
var kMovable = Symbol("Tinypool.kMovable");
|
|
var kTransferable = Symbol.for("Tinypool.transferable");
|
|
var kValue = Symbol.for("Tinypool.valueOf");
|
|
var kQueueOptions = Symbol.for("Tinypool.queueOptions");
|
|
function isTransferable(value) {
|
|
return value != null && typeof value === "object" && kTransferable in value && kValue in value;
|
|
}
|
|
function isMovable(value) {
|
|
return isTransferable(value) && value[kMovable] === true;
|
|
}
|
|
function markMovable(value) {
|
|
Object.defineProperty(value, kMovable, {
|
|
enumerable: false,
|
|
configurable: true,
|
|
writable: true,
|
|
value: true
|
|
});
|
|
}
|
|
function isTaskQueue(value) {
|
|
return typeof value === "object" && value !== null && "size" in value && typeof value.shift === "function" && typeof value.remove === "function" && typeof value.push === "function";
|
|
}
|
|
var kRequestCountField = 0;
|
|
var kResponseCountField = 1;
|
|
var kFieldCount = 2;
|
|
|
|
export {
|
|
kTransferable,
|
|
kValue,
|
|
kQueueOptions,
|
|
isTransferable,
|
|
isMovable,
|
|
markMovable,
|
|
isTaskQueue,
|
|
kRequestCountField,
|
|
kResponseCountField,
|
|
kFieldCount
|
|
};
|