summaryrefslogtreecommitdiff
path: root/core/modules.rs
diff options
context:
space:
mode:
authorBartek IwaƄczuk <biwanczuk@gmail.com>2020-02-15 01:18:36 +0100
committerGitHub <noreply@github.com>2020-02-15 01:18:36 +0100
commita0f015b1a39463ec0e98ec204ca727a5f023b200 (patch)
treec5c464756c2dd1be59787fb2a95433e5f290256e /core/modules.rs
parent87c329c45ac0e3382c115793094317df15cbe5bf (diff)
refactor: replace Arc<Box<..>> with Rc<..> (#3996)
Diffstat (limited to 'core/modules.rs')
-rw-r--r--core/modules.rs27
1 files changed, 12 insertions, 15 deletions
diff --git a/core/modules.rs b/core/modules.rs
index ee91c183a..29f6067cd 100644
--- a/core/modules.rs
+++ b/core/modules.rs
@@ -16,7 +16,7 @@ use std::collections::HashSet;
use std::fmt;
use std::future::Future;
use std::pin::Pin;
-use std::sync::Arc;
+use std::rc::Rc;
use std::task::Context;
use std::task::Poll;
@@ -74,7 +74,7 @@ pub struct RecursiveModuleLoad {
// Kind::Main
pub dyn_import_id: Option<DynImportId>,
pub state: LoadState,
- pub loader: Arc<Box<dyn Loader + Unpin>>,
+ pub loader: Rc<dyn Loader + Unpin>,
pub pending: FuturesUnordered<Pin<Box<SourceCodeInfoFuture>>>,
pub is_pending: HashSet<ModuleSpecifier>,
}
@@ -84,7 +84,7 @@ impl RecursiveModuleLoad {
pub fn main(
specifier: &str,
code: Option<String>,
- loader: Arc<Box<dyn Loader + Unpin>>,
+ loader: Rc<dyn Loader + Unpin>,
) -> Self {
let kind = Kind::Main;
let state = LoadState::ResolveMain(specifier.to_owned(), code);
@@ -95,7 +95,7 @@ impl RecursiveModuleLoad {
id: DynImportId,
specifier: &str,
referrer: &str,
- loader: Arc<Box<dyn Loader + Unpin>>,
+ loader: Rc<dyn Loader + Unpin>,
) -> Self {
let kind = Kind::DynamicImport;
let state =
@@ -110,7 +110,7 @@ impl RecursiveModuleLoad {
fn new(
kind: Kind,
state: LoadState,
- loader: Arc<Box<dyn Loader + Unpin>>,
+ loader: Rc<dyn Loader + Unpin>,
dyn_import_id: Option<DynImportId>,
) -> Self {
Self {
@@ -478,6 +478,7 @@ mod tests {
use std::error::Error;
use std::fmt;
use std::future::Future;
+ use std::sync::Arc;
use std::sync::Mutex;
struct MockLoader {
@@ -651,8 +652,7 @@ mod tests {
fn test_recursive_load() {
let loader = MockLoader::new();
let loads = loader.loads.clone();
- let mut isolate =
- EsIsolate::new(Box::new(loader), StartupData::None, false);
+ let mut isolate = EsIsolate::new(Rc::new(loader), StartupData::None, false);
let a_id_fut = isolate.load_module("/a.js", None);
let a_id = futures::executor::block_on(a_id_fut).expect("Failed to load");
@@ -711,8 +711,7 @@ mod tests {
fn test_circular_load() {
let loader = MockLoader::new();
let loads = loader.loads.clone();
- let mut isolate =
- EsIsolate::new(Box::new(loader), StartupData::None, false);
+ let mut isolate = EsIsolate::new(Rc::new(loader), StartupData::None, false);
let fut = async move {
let result = isolate.load_module("/circular1.js", None).await;
@@ -782,8 +781,7 @@ mod tests {
fn test_redirect_load() {
let loader = MockLoader::new();
let loads = loader.loads.clone();
- let mut isolate =
- EsIsolate::new(Box::new(loader), StartupData::None, false);
+ let mut isolate = EsIsolate::new(Rc::new(loader), StartupData::None, false);
let fut = async move {
let result = isolate.load_module("/redirect1.js", None).await;
@@ -845,7 +843,7 @@ mod tests {
let loader = MockLoader::new();
let loads = loader.loads.clone();
let mut isolate =
- EsIsolate::new(Box::new(loader), StartupData::None, false);
+ EsIsolate::new(Rc::new(loader), StartupData::None, false);
let mut recursive_load =
isolate.load_module("/main.js", None).boxed_local();
@@ -891,7 +889,7 @@ mod tests {
run_in_task(|mut cx| {
let loader = MockLoader::new();
let mut isolate =
- EsIsolate::new(Box::new(loader), StartupData::None, false);
+ EsIsolate::new(Rc::new(loader), StartupData::None, false);
let mut load_fut =
isolate.load_module("/bad_import.js", None).boxed_local();
let result = load_fut.poll_unpin(&mut cx);
@@ -919,8 +917,7 @@ mod tests {
fn recursive_load_main_with_code() {
let loader = MockLoader::new();
let loads = loader.loads.clone();
- let mut isolate =
- EsIsolate::new(Box::new(loader), StartupData::None, false);
+ let mut isolate = EsIsolate::new(Rc::new(loader), StartupData::None, false);
// In default resolution code should be empty.
// Instead we explicitly pass in our own code.
// The behavior should be very similar to /a.js.