Turul WebAssembly Cuprins

Apelarea funcțiilor

Mai târziu, când dorim să apelăm funcția noastră dinamică, vom avea nevoie de o funcție de invocare care să poată lua identificatorul funcției și argumentele.

Din nou, de vreme ce WebAssembly poate să trimită înainte și înapoi doar numere, iar toate numerele din JavaScript sunt numere reale pe 64 de biți, în cele din urmă, lucrurile vor arăta ca o funcție importată:

js_invoke_with_2_params(fn_handle:f64, a:f64, b:f64) -> f64

Punând totul laolaltă avem:

let log_handle = register_function("
  (param_a, param_b) => {
    // apelează cumva console_log  
  }");

let msg = "hello world";

js_invoke_with_2_params( log_handle,msg.as_ptr() as f64, 
    msg.len() as f64 );

Veți observa că există o problemă cu funcția noastră JavaScript. Are începutul și sfârșitul șirului UTF-8, dar nu și memoria acestuia!

Mascot Ferris