44 lines
1.1 KiB
Rust
44 lines
1.1 KiB
Rust
mod qjs;
|
|
mod sig;
|
|
|
|
pub use qjs::*;
|
|
pub use sig::*; // TODO
|
|
|
|
fn main() {
|
|
let context = QuickJSContext::new().unwrap();
|
|
|
|
let script = r##"
|
|
function __EXPORT(f) { eval('__PUBLIC_' + f + '=' + f); }
|
|
|
|
function getName() {
|
|
console.info("=========================");
|
|
for (var i = 0; i < arguments.length; i++) {
|
|
console.info(i, ' ----> ', arguments[i]);
|
|
}
|
|
return 'hatter';
|
|
}
|
|
function helloAb(a, b) {
|
|
console.info("Hello: ", a);
|
|
console.info("Hello: ", b);
|
|
}
|
|
function main(p) {
|
|
console.log(p);
|
|
return 1;
|
|
}
|
|
|
|
__EXPORT('getName');
|
|
__EXPORT('helloAb');
|
|
"##;
|
|
|
|
context.init(script).unwrap();
|
|
// let mut map = HashMap::new();
|
|
// map.insert("name", "hatter");
|
|
// let r = context.run_js(&map);
|
|
// println!("{:?}", r);
|
|
let r = context.call_fn("getName", "[1, 'hatter', 'jiang']");
|
|
println!("{:?}", r);
|
|
let r = context.call_fn("helloAb", "['hatter', 'jiang']");
|
|
println!("{:?}", r);
|
|
}
|
|
|