ruffle/web/src/log_adapter.rs

24 lines
649 B
Rust
Raw Normal View History

use js_sys::Function;
use ruffle_core::backend::log::LogBackend;
use std::{cell::RefCell, rc::Rc};
use wasm_bindgen::{JsCast, JsValue};
pub struct WebLogBackend {
trace_observer: Rc<RefCell<JsValue>>,
}
impl WebLogBackend {
pub fn new(trace_observer: Rc<RefCell<JsValue>>) -> Self {
Self { trace_observer }
}
}
impl LogBackend for WebLogBackend {
fn avm_trace(&self, message: &str) {
2023-01-04 11:33:10 +00:00
tracing::info!(target: "avm_trace", "{}", message);
if let Some(function) = self.trace_observer.borrow().dyn_ref::<Function>() {
2021-06-05 10:53:23 +00:00
let _ = function.call1(function, &JsValue::from_str(message));
}
}
}