diff --git a/rewriter/build.sh b/rewriter/build.sh index fb2b62f..825bd40 100755 --- a/rewriter/build.sh +++ b/rewriter/build.sh @@ -22,7 +22,7 @@ else : "${FEATURES:=}" fi -RUSTFLAGS='-C target-feature=+atomics,+bulk-memory,+simd128 -Zlocation-detail=none' cargo build --lib --target wasm32-unknown-unknown -Z build-std=panic_abort,std -Z build-std-features=panic_immediate_abort --no-default-features --features "$FEATURES" --release +RUSTFLAGS='-C target-feature=+atomics,+bulk-memory,+simd128 -Zlocation-detail=none -Zfmt-debug=none' cargo build --lib --target wasm32-unknown-unknown -Z build-std=panic_abort,std -Z build-std-features=panic_immediate_abort --no-default-features --features "$FEATURES" --release wasm-bindgen --target web --out-dir out/ target/wasm32-unknown-unknown/release/rewriter.wasm sed -i 's/import.meta.url/""/g' out/rewriter.js diff --git a/rewriter/src/error.rs b/rewriter/src/error.rs index d920d1c..1b7a65f 100644 --- a/rewriter/src/error.rs +++ b/rewriter/src/error.rs @@ -1,3 +1,4 @@ +use js_sys::Error; use thiserror::Error; use wasm_bindgen::{JsError, JsValue}; @@ -20,7 +21,7 @@ pub enum RewriterError { impl From for RewriterError { fn from(value: JsValue) -> Self { - Self::Js(format!("{:?}", value)) + Self::Js(Error::from(value).to_string().into()) } } @@ -31,16 +32,16 @@ impl From for JsValue { } impl RewriterError { - pub fn not_str(x: &str, obj: &JsValue) -> Self { - Self::Not(format!("{:?} in {:?}", x, obj), "string") + pub fn not_str(x: &str) -> Self { + Self::Not(x.to_string(), "string") } - pub fn not_fn(obj: JsValue) -> Self { - Self::Not(format!("{:?}", obj), "function") + pub fn not_fn(x: &str) -> Self { + Self::Not(x.to_string(), "function") } - pub fn not_bool(obj: &JsValue) -> Self { - Self::Not(format!("{:?}", obj), "bool") + pub fn not_bool(x: &str) -> Self { + Self::Not(x.to_string(), "bool") } } diff --git a/rewriter/src/lib.rs b/rewriter/src/lib.rs index 73cf106..c88d054 100644 --- a/rewriter/src/lib.rs +++ b/rewriter/src/lib.rs @@ -60,7 +60,7 @@ fn get_obj(obj: &JsValue, k: &str) -> Result { fn get_str(obj: &JsValue, k: &str) -> Result { Reflect::get(obj, &k.into())? .as_string() - .ok_or_else(|| RewriterError::not_str(k, obj)) + .ok_or_else(|| RewriterError::not_str(k)) } fn set_obj(obj: &Object, k: &str, v: &JsValue) -> Result<()> { @@ -74,14 +74,14 @@ fn set_obj(obj: &Object, k: &str, v: &JsValue) -> Result<()> { fn get_flag(scramjet: &Object, url: &str, flag: &str) -> Result { let fenabled = get_obj(scramjet, "flagEnabled")? .dyn_into::() - .map_err(RewriterError::not_fn)?; + .map_err(|_| RewriterError::not_fn("scramjet.flagEnabled"))?; let ret = fenabled.call2( &JsValue::NULL, &flag.into(), &web_sys::Url::new(url)?.into(), )?; - ret.as_bool().ok_or_else(|| RewriterError::not_bool(&ret)) + ret.as_bool().ok_or_else(|| RewriterError::not_bool("scramjet.flagEnabled return value")) } fn get_config(scramjet: &Object, url: &str) -> Result { @@ -123,7 +123,7 @@ fn create_rewriter_output( let errs: Vec<_> = out .1 .into_iter() - .map(|x| format!("{:?}", x.with_source_code(src.clone()))) + .map(|x| format!("{}", x.with_source_code(src.clone()))) .collect(); let obj = Object::new(); @@ -145,7 +145,12 @@ pub fn rewrite_js( scramjet: &Object, ) -> Result { let before = Instant::now(); - let out = rewrite(&js, Url::from_str(url)?, scramtag(), get_config(scramjet, url)?)?; + let out = rewrite( + &js, + Url::from_str(url)?, + scramtag(), + get_config(scramjet, url)?, + )?; let after = Instant::now(); create_rewriter_output(out, script_url, js, after - before) @@ -162,7 +167,12 @@ pub fn rewrite_js_from_arraybuffer( let js = unsafe { String::from_utf8_unchecked(js) }; let before = Instant::now(); - let out = rewrite(&js, Url::from_str(url)?, scramtag(), get_config(scramjet, url)?)?; + let out = rewrite( + &js, + Url::from_str(url)?, + scramtag(), + get_config(scramjet, url)?, + )?; let after = Instant::now(); create_rewriter_output(out, script_url, js, after - before)