summaryrefslogtreecommitdiff
path: root/core/shared_queue.js
diff options
context:
space:
mode:
authorKitson Kelly <me@kitsonkelly.com>2019-03-26 23:22:07 +1100
committerRyan Dahl <ry@tinyclouds.org>2019-03-26 08:22:07 -0400
commitc43cfedeba5d6ac96e1b1febed8549e750606e3f (patch)
tree7b3799259895acadf25294704ea03a9465051e9c /core/shared_queue.js
parented2977d3c0e9ab3295a3bb47b844b2953d608197 (diff)
namespace reorg: libdeno and DenoCore to Deno.core (#1998)
Diffstat (limited to 'core/shared_queue.js')
-rw-r--r--core/shared_queue.js35
1 files changed, 23 insertions, 12 deletions
diff --git a/core/shared_queue.js b/core/shared_queue.js
index 6c9a0326f..02aded748 100644
--- a/core/shared_queue.js
+++ b/core/shared_queue.js
@@ -1,5 +1,8 @@
// Copyright 2018-2019 the Deno authors. All rights reserved. MIT license.
+
(window => {
+ const GLOBAL_NAMESPACE = "Deno";
+ const CORE_NAMESPACE = "core";
const MAX_RECORDS = 100;
const INDEX_NUM_RECORDS = 0;
const INDEX_NUM_SHIFTED_OFF = 1;
@@ -8,8 +11,11 @@
const INDEX_RECORDS = 3 + MAX_RECORDS;
const HEAD_INIT = 4 * INDEX_RECORDS;
- let sharedBytes = null;
- let shared32 = null;
+ const Deno = window[GLOBAL_NAMESPACE];
+ const core = Deno[CORE_NAMESPACE];
+
+ let sharedBytes;
+ let shared32;
function assert(cond) {
if (!cond) {
@@ -92,10 +98,12 @@
reset();
}
+ assert(off != null);
+ assert(end != null);
return sharedBytes.subarray(off, end);
}
- let asyncHandler = null;
+ let asyncHandler;
function setAsyncHandler(cb) {
assert(asyncHandler == null);
asyncHandler = cb;
@@ -117,23 +125,22 @@
assert(shared32 == null);
sharedBytes = new Uint8Array(shared);
shared32 = new Int32Array(shared);
- // Callers should not call libdeno.recv, use setAsyncHandler.
- libdeno.recv(handleAsyncMsgFromRust);
+ // Callers should not call Deno.core.recv, use setAsyncHandler.
+ window.Deno.core.recv(handleAsyncMsgFromRust);
}
function dispatch(control, zeroCopy = null) {
// First try to push control to shared.
const success = push(control);
- // If successful, don't use first argument of libdeno.send.
+ // If successful, don't use first argument of core.send.
const arg0 = success ? null : control;
- return libdeno.send(arg0, zeroCopy);
+ return window.Deno.core.send(arg0, zeroCopy);
}
- assert(!window["DenoCore"]);
- window["DenoCore"] = {
+ const denoCore = {
setAsyncHandler,
dispatch,
- shared: {
+ sharedQueue: {
head,
numRecords,
size,
@@ -143,5 +150,9 @@
}
};
- init(libdeno.shared);
-})(this);
+ assert(window[GLOBAL_NAMESPACE] != null);
+ assert(window[GLOBAL_NAMESPACE][CORE_NAMESPACE] != null);
+ Object.assign(core, denoCore);
+
+ init(Deno.core.shared);
+})(globalThis);