mirror of
https://github.com/GoogleChromeLabs/squoosh.git
synced 2025-11-11 16:26:20 +00:00
moar stuff
This commit is contained in:
@@ -35,14 +35,6 @@ cfg_if! {
|
||||
// }
|
||||
// }
|
||||
|
||||
pub fn rust_wasm_syscall(index: usize, _data: *mut ()) -> usize {
|
||||
if index == 6 {
|
||||
1
|
||||
} else {
|
||||
0
|
||||
}
|
||||
}
|
||||
|
||||
#[wasm_bindgen]
|
||||
pub fn doit() -> u32 {
|
||||
let start = Instant::now();
|
||||
|
||||
@@ -1,10 +1,14 @@
|
||||
extern crate wasm_bindgen;
|
||||
|
||||
use wasm_bindgen::prelude::*;
|
||||
use std::time::{Instant};
|
||||
use std::thread::spawn;
|
||||
|
||||
#[wasm_bindgen]
|
||||
pub fn doit() -> u32 {
|
||||
let start = Instant::now();
|
||||
start.elapsed().as_secs() as u32
|
||||
pub fn doit() {
|
||||
// let child = spawn(move || -> u32 {
|
||||
// 5
|
||||
// });
|
||||
// let result = child.join().unwrap();
|
||||
let result = spawn();
|
||||
println!("Result: {}", result);
|
||||
}
|
||||
|
||||
47
codecs/oxipng/tmp/lol.js
Normal file
47
codecs/oxipng/tmp/lol.js
Normal file
@@ -0,0 +1,47 @@
|
||||
// const oxipng = require("./oxipng_wasm");
|
||||
const repl = require("repl");
|
||||
const fs = require("fs");
|
||||
|
||||
const dec = new TextDecoder();
|
||||
let buffer = '';
|
||||
async function init() {
|
||||
const { instance } = await WebAssembly.instantiate(
|
||||
fs.readFileSync("./target/wasm32-unknown-unknown/release/loltest.wasm"),
|
||||
{
|
||||
__wbindgen_placeholder__: {
|
||||
__wbindgen_describe(v) {
|
||||
console.log(`__wbindgen_desribe(${v})`);
|
||||
}
|
||||
},
|
||||
env: {
|
||||
// See https://github.com/rust-lang/rust/blob/master/src/libstd/sys/wasm/mod.rs
|
||||
rust_wasm_syscall(syscall, ptr) {
|
||||
switch(syscall) {
|
||||
case 1: // Write
|
||||
const [fd, dataPtr, len] = new Uint32Array(instance.exports.memory.buffer, ptr, 3 * 4);
|
||||
const fragment = new Uint8Array(instance.exports.memory.buffer, dataPtr, len);
|
||||
buffer += dec.decode(fragment);
|
||||
const idx = buffer.indexOf('\n');
|
||||
if(idx !== -1) {
|
||||
console.log(buffer.slice(0, idx));
|
||||
buffer = buffer.slice(idx);
|
||||
}
|
||||
return 1;
|
||||
case 6: // Time
|
||||
return 1;
|
||||
default:
|
||||
return 0; // False, unimplemented
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
);
|
||||
|
||||
try {
|
||||
instance.exports.doit();
|
||||
} catch{}
|
||||
const r = repl.start("node> ");
|
||||
r.context.i = instance;
|
||||
}
|
||||
|
||||
init();
|
||||
1737
codecs/oxipng/tmp/thread_mod.rs
Normal file
1737
codecs/oxipng/tmp/thread_mod.rs
Normal file
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user