remove wbg jank and dead code

This commit is contained in:
Toshit Chawda 2024-10-14 20:18:39 -07:00
parent c2570c1d86
commit b31a28a35b
No known key found for this signature in database
GPG key ID: 91480ED99E2B3D9D
5 changed files with 22 additions and 30 deletions

9
rewriter/Cargo.lock generated
View file

@ -196,9 +196,9 @@ dependencies = [
[[package]]
name = "bytemuck"
version = "1.18.0"
version = "1.19.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "94bbb0ad554ad961ddc5da507a12a29b14e4ae5bda06b19f575a3e6079d2e2ae"
checksum = "8334215b81e418a0a7bdb8ef0849474f40bb10c8b71f1c4ed315cff49f32494d"
dependencies = [
"bytemuck_derive",
]
@ -1001,6 +1001,7 @@ dependencies = [
"serde-wasm-bindgen",
"url",
"wasm-bindgen",
"web-sys",
]
[[package]]
@ -1011,9 +1012,9 @@ checksum = "583034fd73374156e66797ed8e5b0d5690409c9226b22d87cb7f19821c05d152"
[[package]]
name = "rustversion"
version = "1.0.17"
version = "1.0.18"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "955d28af4278de8121b7ebeb796b6a45735dc01436d898801014aced2773a3d6"
checksum = "0e819f2bc632f285be6d7cd36e25940d45b2391dd6d9b939e79de557f7014248"
[[package]]
name = "ryu"

View file

@ -37,6 +37,7 @@ serde = "1.0.204"
serde-wasm-bindgen = "0.6.5"
url = "2.5.2"
wasm-bindgen = "0.2.92"
web-sys = { version = "0.3.72", features = ["Url"] }
[dev-dependencies]
boa_engine = "0.19.0"

View file

@ -29,7 +29,7 @@ else
WASMOPTFLAGS=""
fi
time wasm-opt $WASMOPTFLAGS -O4 --vacuum --dce --enable-threads --enable-bulk-memory --enable-simd "$WASM" -o rewriter/out/optimized.wasm
time wasm-opt $WASMOPTFLAGS -tnh -O4 --vacuum --dce --enable-threads --enable-bulk-memory --enable-simd "$WASM" -o rewriter/out/optimized.wasm
mkdir dist/ || true

View file

@ -2,13 +2,10 @@ pub mod rewrite;
use std::{panic, str::FromStr};
use js_sys::{
global, Array, Function, Object,
Reflect::{self, construct},
};
use js_sys::{Function, Object, Reflect};
use rewrite::{rewrite, Config, EncodeFn};
use url::Url;
use wasm_bindgen::{prelude::*, throw_str};
use url::Url;
#[wasm_bindgen]
extern "C" {
@ -40,27 +37,23 @@ fn get_obj(obj: &JsValue, k: &str) -> JsValue {
Reflect::get(obj, &k.into()).unwrap()
}
fn get_bool(obj: &JsValue, k: &str) -> bool {
Reflect::get(obj, &k.into()).unwrap().as_bool().unwrap()
}
fn get_str(obj: &JsValue, k: &str) -> String {
Reflect::get(obj, &k.into()).unwrap().as_string().unwrap()
}
fn get_flag(scramjet: &Object, url: &str, flag: &str) -> bool {
let urlconstructor = get_obj(&global(), "URL");
let args = Array::new();
args.push(&JsValue::from_str(url));
let url = construct(&urlconstructor.dyn_into::<Function>().unwrap(), &args).unwrap();
let fenabled = get_obj(scramjet, "flagEnabled")
.dyn_into::<Function>()
.unwrap();
return fenabled
.call2(&JsValue::NULL, &JsValue::from_str(flag), &url)
.unwrap()
fenabled
.call2(
&JsValue::NULL,
&flag.into(),
&web_sys::Url::new(url).expect("invalid url").into(),
)
.expect("error in flagEnabled")
.as_bool()
.unwrap();
.expect("not bool returned from flagEnabled")
}
fn get_config(scramjet: &Object, url: &str) -> Config {

View file

@ -22,7 +22,6 @@ enum JsChange {
},
SourceTag {
tagstart: u32,
tagend: usize,
},
Assignment {
name: String,
@ -288,7 +287,6 @@ impl<'a> Visit<'a> for Rewriter {
if self.config.do_sourcemaps {
self.jschanges.push(JsChange::SourceTag {
tagstart: it.span.start,
tagend: it.span.end as usize,
});
}
walk::walk_function_body(self, it);
@ -480,7 +478,7 @@ pub fn rewrite(js: &str, url: Url, config: Config) -> Vec<u8> {
rhsspan: _,
op: _,
} => entirespan.start,
JsChange::SourceTag { tagstart, tagend } => *tagstart,
JsChange::SourceTag { tagstart } => *tagstart,
};
let b = match b {
JsChange::GenericChange { span, text: _ } => span.start,
@ -490,7 +488,7 @@ pub fn rewrite(js: &str, url: Url, config: Config) -> Vec<u8> {
rhsspan: _,
op: _,
} => entirespan.start,
JsChange::SourceTag { tagstart, tagend } => *tagstart,
JsChange::SourceTag { tagstart } => *tagstart,
};
a.cmp(&b)
});
@ -519,7 +517,7 @@ pub fn rewrite(js: &str, url: Url, config: Config) -> Vec<u8> {
let mut sourcemap: Vec<u8> = Vec::new();
if ast_pass.config.do_sourcemaps {
sourcemap.reserve(size_estimate * 2);
sourcemap.extend_from_slice(&format!("{}([", ast_pass.config.pushsourcemapfn).as_bytes());
sourcemap.extend_from_slice(format!("{}([", ast_pass.config.pushsourcemapfn).as_bytes());
}
let mut offset = 0;
@ -570,11 +568,10 @@ pub fn rewrite(js: &str, url: Url, config: Config) -> Vec<u8> {
offset = entirespan.end as usize;
}
JsChange::SourceTag { tagstart, tagend } => {
JsChange::SourceTag { tagstart } => {
let start = *tagstart as usize;
buffer.extend_from_slice(unsafe { js.get_unchecked(offset..start) }.as_bytes());
// let inject = format!("/*scramtag {} */", &js[start..*tagend]);
let inject = format!("/*scramtag {} {}*/", start, sourcetag);
buffer.extend_from_slice(inject.as_bytes());
@ -587,7 +584,7 @@ pub fn rewrite(js: &str, url: Url, config: Config) -> Vec<u8> {
if ast_pass.config.do_sourcemaps {
sourcemap.extend_from_slice(b"],");
sourcemap.extend_from_slice(b"\"");
sourcemap.extend_from_slice(&sourcetag.as_bytes());
sourcemap.extend_from_slice(sourcetag.as_bytes());
sourcemap.extend_from_slice(b"\");\n");
sourcemap.extend_from_slice(&buffer);