瀏覽代碼

fix: compile fail for web

Jonathan Kelley 3 年之前
父節點
當前提交
dfc69c0905
共有 3 個文件被更改,包括 7 次插入0 次删除
  1. 3 0
      packages/interpreter/src/bindings.rs
  2. 3 0
      packages/interpreter/src/interpreter.js
  3. 1 0
      packages/web/src/dom.rs

+ 3 - 0
packages/interpreter/src/bindings.rs

@@ -17,6 +17,9 @@ extern "C" {
     #[wasm_bindgen(method)]
     pub fn PushRoot(this: &Interpreter, root: u64);
 
+    #[wasm_bindgen(method)]
+    pub fn PopRoot(this: &Interpreter);
+
     #[wasm_bindgen(method)]
     pub fn AppendChildren(this: &Interpreter, many: u32);
 

+ 3 - 0
packages/interpreter/src/interpreter.js

@@ -27,6 +27,9 @@ export class Interpreter {
     const node = this.nodes[root];
     this.stack.push(node);
   }
+  PopRoot() {
+    this.stack.pop();
+  }
   AppendChildren(many) {
     let root = this.stack[this.stack.length - (1 + many)];
     let to_add = this.stack.splice(this.stack.length - many);

+ 1 - 0
packages/web/src/dom.rs

@@ -105,6 +105,7 @@ impl WebsysDom {
         for edit in edits.drain(..) {
             match edit {
                 DomEdit::PushRoot { root } => self.interpreter.PushRoot(root),
+                DomEdit::PopRoot {} => self.interpreter.PopRoot(),
                 DomEdit::AppendChildren { many } => self.interpreter.AppendChildren(many),
                 DomEdit::ReplaceWith { root, m } => self.interpreter.ReplaceWith(root, m),
                 DomEdit::InsertAfter { root, n } => self.interpreter.InsertAfter(root, n),