From 03433a0ef6a1bf4f245fa08adee3f2ef8d201780 Mon Sep 17 00:00:00 2001
From: Alex Crichton <alex@alexcrichton.com>
Date: Mon, 2 Apr 2018 09:58:27 -0700
Subject: [PATCH] Update to recent WasmBoundary abi changes

---
 crates/backend/src/codegen.rs | 11 +++++++++--
 src/lib.rs                    |  8 ++++----
 2 files changed, 13 insertions(+), 6 deletions(-)

diff --git a/crates/backend/src/codegen.rs b/crates/backend/src/codegen.rs
index 8778f1cc..e7f57379 100644
--- a/crates/backend/src/codegen.rs
+++ b/crates/backend/src/codegen.rs
@@ -156,7 +156,10 @@ impl ToTokens for ast::Struct {
 
             impl ::std::convert::From<#name> for ::wasm_bindgen::JsValue {
                 fn from(value: #name) -> Self {
-                    let ptr = ::wasm_bindgen::convert::WasmBoundary::into_js(value);
+                    let ptr = ::wasm_bindgen::convert::WasmBoundary::into_abi(
+                        value,
+                        unsafe { &mut ::wasm_bindgen::convert::GlobalStack::new() },
+                    );
 
                     #[wasm_import_module = "__wbindgen_placeholder__"]
                     extern {
@@ -164,7 +167,11 @@ impl ToTokens for ast::Struct {
                     }
 
                     unsafe {
-                        ::wasm_bindgen::JsValue::__from_idx(#new_fn(ptr))
+                        <::wasm_bindgen::JsValue as ::wasm_bindgen::convert::WasmBoundary>
+                            ::from_abi(
+                                #new_fn(ptr),
+                                unsafe { &mut ::wasm_bindgen::convert::GlobalStack::new() },
+                            )
                     }
                 }
             }
diff --git a/src/lib.rs b/src/lib.rs
index 9b8bc817..3b4c9bee 100644
--- a/src/lib.rs
+++ b/src/lib.rs
@@ -94,10 +94,10 @@ impl JsValue {
         }
     }
 
-    #[doc(hidden)]
-    pub unsafe fn __from_idx(idx: u32) -> JsValue {
-        JsValue { idx }
-    }
+    // #[doc(hidden)]
+    // pub unsafe fn __from_idx(idx: u32) -> JsValue {
+    //     JsValue { idx }
+    // }
     //
     // #[doc(hidden)]
     // pub fn __get_idx(&self) -> u32 {