mirror of
https://github.com/MercuryWorkshop/scramjet.git
synced 2025-05-13 06:20:02 -04:00
new js rewriter
This commit is contained in:
parent
d4abce1457
commit
3e54301a30
1 changed files with 29 additions and 3 deletions
|
@ -23,10 +23,36 @@ initSync(new WebAssembly.Module(
|
|||
Uint8Array.from(atob(self.WASM), c => c.charCodeAt(0))
|
||||
))
|
||||
|
||||
export function rewriteJs(js: string) {
|
||||
const f = rewrite_js(js);
|
||||
export function rewriteJs(js: string | ArrayBuffer) {
|
||||
let rewrites;
|
||||
|
||||
return f
|
||||
let before = performance.now();
|
||||
if (typeof js === "string") {
|
||||
rewrites = rewrite_js(js);
|
||||
} else {
|
||||
js = new TextDecoder().decode(js);
|
||||
rewrites = rewrite_js(js);
|
||||
}
|
||||
let after = performance.now();
|
||||
|
||||
console.log("Rewrite took", Math.floor((after - before) * 10) / 10, "ms");
|
||||
|
||||
let offset = 0;
|
||||
|
||||
for (const rewrite of rewrites) {
|
||||
if (rewrite.genericchange) {
|
||||
let change = rewrite.genericchange;
|
||||
let start = change.span.start + offset;
|
||||
let end = change.span.end + offset;
|
||||
let len = end - start;
|
||||
|
||||
js = js.slice(0, start) + change.text + js.slice(end);
|
||||
|
||||
offset += change.text.length - len;
|
||||
}
|
||||
}
|
||||
|
||||
return js;
|
||||
|
||||
// console.log(f)
|
||||
//
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue