summaryrefslogtreecommitdiff
path: root/core/ops.rs
diff options
context:
space:
mode:
authorBartek IwaƄczuk <biwanczuk@gmail.com>2021-01-05 22:10:50 +0100
committerGitHub <noreply@github.com>2021-01-05 22:10:50 +0100
commit46c0cab763380a1ecbdf93e309257de4e37a7341 (patch)
tree232992fc9a79bb312144e2426759c41b0afd15c6 /core/ops.rs
parent0d41e21b0e9b46cc179eff42c215439fb672964b (diff)
refactor(core): simplify Deno.core initialisation, remove stale TODO (#8847)
This commit rewrites initialisation of the "shared queue" and in effect prevents from double execution of "core/core.js" and "core/error.js". Previously both of these files were executed every time a "JsRuntime" was created. That lead to a situation where one copy of each script was included in the snapshot and then another copy would be executed after loading the snapshot. Effectively "JsRuntime::shared_init" was removed; instead execution of those scripts and actual initialisation of shared queue was split into two helper functions: "JsRuntime::js_init" and "JsRuntime::share_queue_init". Additionally stale TODO comments were removed.
Diffstat (limited to 'core/ops.rs')
-rw-r--r--core/ops.rs9
1 files changed, 3 insertions, 6 deletions
diff --git a/core/ops.rs b/core/ops.rs
index 2907d2552..d29159e9c 100644
--- a/core/ops.rs
+++ b/core/ops.rs
@@ -41,11 +41,8 @@ pub struct OpState {
gotham_state: GothamState,
}
-impl Default for OpState {
- // TODO(ry) Only deno_core should be able to construct an OpState. But I don't
- // know how to make default private. Maybe rename to
- // pub(crate) fn new() -> OpState
- fn default() -> OpState {
+impl OpState {
+ pub(crate) fn new() -> OpState {
OpState {
resource_table: Default::default(),
op_table: OpTable::default(),
@@ -119,7 +116,7 @@ impl Default for OpTable {
#[test]
fn op_table() {
- let state = Rc::new(RefCell::new(OpState::default()));
+ let state = Rc::new(RefCell::new(OpState::new()));
let foo_id;
let bar_id;