mirror of
https://github.com/denoland/deno.git
synced 2025-01-11 00:21:05 -05:00
refactor(core): Improve code readability in core.js (#8345)
This commit is contained in:
parent
b63fe3f35c
commit
671f96025a
1 changed files with 28 additions and 30 deletions
58
core/core.js
58
core/core.js
|
@ -97,26 +97,23 @@ SharedQueue Binary Layout
|
||||||
}
|
}
|
||||||
|
|
||||||
function getMeta(index) {
|
function getMeta(index) {
|
||||||
if (index < numRecords()) {
|
if (index >= numRecords()) {
|
||||||
const buf = shared32[INDEX_OFFSETS + 2 * index];
|
|
||||||
const opId = shared32[INDEX_OFFSETS + 2 * index + 1];
|
|
||||||
return [opId, buf];
|
|
||||||
} else {
|
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
const buf = shared32[INDEX_OFFSETS + 2 * index];
|
||||||
|
const opId = shared32[INDEX_OFFSETS + 2 * index + 1];
|
||||||
|
return [opId, buf];
|
||||||
}
|
}
|
||||||
|
|
||||||
function getOffset(index) {
|
function getOffset(index) {
|
||||||
if (index < numRecords()) {
|
if (index >= numRecords()) {
|
||||||
if (index == 0) {
|
|
||||||
return HEAD_INIT;
|
|
||||||
} else {
|
|
||||||
const prevEnd = shared32[INDEX_OFFSETS + 2 * (index - 1)];
|
|
||||||
return (prevEnd + 3) & ~3;
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
if (index == 0) {
|
||||||
|
return HEAD_INIT;
|
||||||
|
}
|
||||||
|
const prevEnd = shared32[INDEX_OFFSETS + 2 * (index - 1)];
|
||||||
|
return (prevEnd + 3) & ~3;
|
||||||
}
|
}
|
||||||
|
|
||||||
function push(opId, buf) {
|
function push(opId, buf) {
|
||||||
|
@ -124,7 +121,9 @@ SharedQueue Binary Layout
|
||||||
const end = off + buf.byteLength;
|
const end = off + buf.byteLength;
|
||||||
const alignedEnd = (end + 3) & ~3;
|
const alignedEnd = (end + 3) & ~3;
|
||||||
const index = numRecords();
|
const index = numRecords();
|
||||||
if (alignedEnd > shared32.byteLength || index >= MAX_RECORDS) {
|
const shouldNotPush = alignedEnd > shared32.byteLength ||
|
||||||
|
index >= MAX_RECORDS;
|
||||||
|
if (shouldNotPush) {
|
||||||
// console.log("shared_queue.js push fail");
|
// console.log("shared_queue.js push fail");
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
@ -170,15 +169,15 @@ SharedQueue Binary Layout
|
||||||
if (buf) {
|
if (buf) {
|
||||||
// This is the overflow_response case of deno::JsRuntime::poll().
|
// This is the overflow_response case of deno::JsRuntime::poll().
|
||||||
asyncHandlers[opId](buf);
|
asyncHandlers[opId](buf);
|
||||||
} else {
|
return;
|
||||||
while (true) {
|
}
|
||||||
const opIdBuf = shift();
|
while (true) {
|
||||||
if (opIdBuf == null) {
|
const opIdBuf = shift();
|
||||||
break;
|
if (opIdBuf == null) {
|
||||||
}
|
break;
|
||||||
assert(asyncHandlers[opIdBuf[0]] != null);
|
|
||||||
asyncHandlers[opIdBuf[0]](opIdBuf[1]);
|
|
||||||
}
|
}
|
||||||
|
assert(asyncHandlers[opIdBuf[0]] != null);
|
||||||
|
asyncHandlers[opIdBuf[0]](opIdBuf[1]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -214,15 +213,14 @@ SharedQueue Binary Layout
|
||||||
function processResponse(res) {
|
function processResponse(res) {
|
||||||
if ("ok" in res) {
|
if ("ok" in res) {
|
||||||
return res.ok;
|
return res.ok;
|
||||||
} else {
|
|
||||||
const ErrorClass = getErrorClass(res.err.className);
|
|
||||||
if (!ErrorClass) {
|
|
||||||
throw new Error(
|
|
||||||
`Unregistered error class: "${res.err.className}"\n ${res.err.message}\n Classes of errors returned from ops should be registered via Deno.core.registerErrorClass().`,
|
|
||||||
);
|
|
||||||
}
|
|
||||||
throw new ErrorClass(res.err.message);
|
|
||||||
}
|
}
|
||||||
|
const ErrorClass = getErrorClass(res.err.className);
|
||||||
|
if (!ErrorClass) {
|
||||||
|
throw new Error(
|
||||||
|
`Unregistered error class: "${res.err.className}"\n ${res.err.message}\n Classes of errors returned from ops should be registered via Deno.core.registerErrorClass().`,
|
||||||
|
);
|
||||||
|
}
|
||||||
|
throw new ErrorClass(res.err.message);
|
||||||
}
|
}
|
||||||
|
|
||||||
async function jsonOpAsync(opName, args = {}, ...zeroCopy) {
|
async function jsonOpAsync(opName, args = {}, ...zeroCopy) {
|
||||||
|
|
Loading…
Reference in a new issue