| Index: src/compiler/wasm-compiler.cc
 | 
| diff --git a/src/compiler/wasm-compiler.cc b/src/compiler/wasm-compiler.cc
 | 
| index dd223bb84177f1b3622b09ec71474b459e5540a6..7caaebc4b54dedd00bcda2932bec6b515f7934ef 100644
 | 
| --- a/src/compiler/wasm-compiler.cc
 | 
| +++ b/src/compiler/wasm-compiler.cc
 | 
| @@ -2376,8 +2376,7 @@ Node* WasmGraphBuilder::ToJS(Node* node, wasm::LocalType type) {
 | 
|    }
 | 
|  }
 | 
|  
 | 
| -Node* WasmGraphBuilder::BuildJavaScriptToNumber(Node* node, Node* context,
 | 
| -                                                Node* effect, Node* control) {
 | 
| +Node* WasmGraphBuilder::BuildJavaScriptToNumber(Node* node, Node* context) {
 | 
|    Callable callable = CodeFactory::ToNumber(jsgraph()->isolate());
 | 
|    CallDescriptor* desc = Linkage::GetStubCallDescriptor(
 | 
|        jsgraph()->isolate(), jsgraph()->zone(), callable.descriptor(), 0,
 | 
| @@ -2385,7 +2384,7 @@ Node* WasmGraphBuilder::BuildJavaScriptToNumber(Node* node, Node* context,
 | 
|    Node* stub_code = jsgraph()->HeapConstant(callable.code());
 | 
|  
 | 
|    Node* result = graph()->NewNode(jsgraph()->common()->Call(desc), stub_code,
 | 
| -                                  node, context, effect, control);
 | 
| +                                  node, context, *effect_, *control_);
 | 
|  
 | 
|    *effect_ = result;
 | 
|  
 | 
| @@ -2505,8 +2504,10 @@ Node* WasmGraphBuilder::BuildChangeTaggedToFloat64(Node* value) {
 | 
|  
 | 
|  Node* WasmGraphBuilder::FromJS(Node* node, Node* context,
 | 
|                                 wasm::LocalType type) {
 | 
| +  DCHECK_NE(wasm::kAstStmt, type);
 | 
| +
 | 
|    // Do a JavaScript ToNumber.
 | 
| -  Node* num = BuildJavaScriptToNumber(node, context, *effect_, *control_);
 | 
| +  Node* num = BuildJavaScriptToNumber(node, context);
 | 
|  
 | 
|    // Change representation.
 | 
|    SimplifiedOperatorBuilder simplified(jsgraph()->zone());
 | 
| @@ -2531,9 +2532,6 @@ Node* WasmGraphBuilder::FromJS(Node* node, Node* context,
 | 
|        break;
 | 
|      case wasm::kAstF64:
 | 
|        break;
 | 
| -    case wasm::kAstStmt:
 | 
| -      num = jsgraph()->Int32Constant(0);
 | 
| -      break;
 | 
|      default:
 | 
|        UNREACHABLE();
 | 
|        return nullptr;
 | 
| @@ -2786,14 +2784,16 @@ void WasmGraphBuilder::BuildWasmToJSWrapper(Handle<JSReceiver> target,
 | 
|      call = graph()->NewNode(jsgraph()->common()->Call(desc), pos, args);
 | 
|    }
 | 
|  
 | 
| +  *effect_ = call;
 | 
| +
 | 
|    // Convert the return value back.
 | 
| -  Node* ret;
 | 
| -  Node* val =
 | 
| -      FromJS(call, HeapConstant(isolate->native_context()),
 | 
| -             sig->return_count() == 0 ? wasm::kAstStmt : sig->GetReturn());
 | 
| -  Node* pop_size = jsgraph()->Int32Constant(0);
 | 
| -    ret = graph()->NewNode(jsgraph()->common()->Return(), pop_size, val, call,
 | 
| -                           start);
 | 
| +  Node* i32_zero = jsgraph()->Int32Constant(0);
 | 
| +  Node* val = sig->return_count() == 0
 | 
| +                  ? i32_zero
 | 
| +                  : FromJS(call, HeapConstant(isolate->native_context()),
 | 
| +                           sig->GetReturn());
 | 
| +  Node* ret = graph()->NewNode(jsgraph()->common()->Return(), i32_zero, val,
 | 
| +                               *effect_, start);
 | 
|  
 | 
|    MergeControlToEnd(jsgraph(), ret);
 | 
|  }
 | 
| 
 |