diff options
author | Aaron O'Mullan <aaron.omullan@gmail.com> | 2021-03-31 16:37:38 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-03-31 10:37:38 -0400 |
commit | fec1b2a5a4324a7eecdfbb2471931f3b6b0139c5 (patch) | |
tree | 8a650553c2d70e047d9d7365f9ac8702ec9861a5 /cli/tests/unit/dispatch_bin_test.ts | |
parent | 6dc3549a818ad49b3907d18c93fd422a9cc743a5 (diff) |
refactor: new optimized op-layer using serde_v8 (#9843)
- Improves op performance.
- Handle op-metadata (errors, promise IDs) explicitly in the op-layer vs
per op-encoding (aka: out-of-payload).
- Remove shared queue & custom "asyncHandlers", all async values are
returned in batches via js_recv_cb.
- The op-layer should be thought of as simple function calls with little
indirection or translation besides the conceptually straightforward
serde_v8 bijections.
- Preserve concepts of json/bin/min as semantic groups of their
inputs/outputs instead of their op-encoding strategy, preserving these
groups will also facilitate partial transitions over to v8 Fast API for the
"min" and "bin" groups
Diffstat (limited to 'cli/tests/unit/dispatch_bin_test.ts')
-rw-r--r-- | cli/tests/unit/dispatch_bin_test.ts | 48 |
1 files changed, 3 insertions, 45 deletions
diff --git a/cli/tests/unit/dispatch_bin_test.ts b/cli/tests/unit/dispatch_bin_test.ts index b2d96f3b3..83053461d 100644 --- a/cli/tests/unit/dispatch_bin_test.ts +++ b/cli/tests/unit/dispatch_bin_test.ts @@ -8,9 +8,9 @@ import { const readErrorStackPattern = new RegExp( `^.* - at handleError \\(.*core\\.js:.*\\) - at binOpParseResult \\(.*core\\.js:.*\\) - at asyncHandle \\(.*core\\.js:.*\\).*$`, + at processErr \\(.*core\\.js:.*\\) + at opAsyncHandler \\(.*core\\.js:.*\\) + at handleAsyncMsgFromRust \\(.*core\\.js:.*\\).*$`, "ms", ); @@ -32,45 +32,3 @@ declare global { var core: any; // eslint-disable-line no-var } } - -unitTest(function binOpsHeaderTooShort(): void { - for (const op of ["op_read_sync", "op_read_async"]) { - const readOpId = Deno.core.ops()[op]; - const res = Deno.core.send( - readOpId, - new Uint8Array([ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - ]), - ); - - const headerByteLength = 4 * 4; - assert(res.byteLength > headerByteLength); - const view = new DataView( - res.buffer, - res.byteOffset + res.byteLength - headerByteLength, - headerByteLength, - ); - - const requestId = Number(view.getBigUint64(0, true)); - const status = view.getUint32(8, true); - const result = view.getUint32(12, true); - - assert(requestId === 0); - assert(status !== 0); - assertEquals(new TextDecoder().decode(res.slice(0, result)), "TypeError"); - assertEquals( - new TextDecoder().decode(res.slice(result, -headerByteLength)).trim(), - "Unparsable control buffer", - ); - } -}); |