func: bool funcPtrCall(const ModuleCompiler::FuncPtrTable& table, MDefinition* const Call& call, MDefinition** def) if ( inDeadCode ( ) )  inline bool inDeadCode() const return curBlock_ == nullptr ; MConstant * mask = MConstant :: New ( alloc ( ) , Int32Value ( table . mask ( ) ) ) ; return * alloc_ ; TempAllocator &     alloc() const MBitAnd * maskedIndex = MBitAnd :: NewAsmJS ( alloc ( ) , index , mask ) ; return * alloc_ ; TempAllocator &     alloc() const MAsmJSLoadFuncPtr * ptrFun = MAsmJSLoadFuncPtr :: New ( alloc ( ) , table . globalDataOffset ( ) , maskedIndex ) ; return * alloc_ ; TempAllocator &     alloc() const MIRType returnType = table . sig ( ) . retType ( ) . toMIRType ( ) ; MIRType toMIRType() const switch ( which_ )  return MIRType_Double ; return MIRType_Float32 ; return MIRType_Int32 ; return MIRType_Int32x4 ; return MIRType_Float32x4 ; return MIRType_None ; return retType_ ; RetType retType() const return callPrivate ( MAsmJSCall :: Callee ( ptrFun ) , call , returnType , def ) ; bool callPrivate(MAsmJSCall::Callee callee, const Call& call, MIRType returnType, MDefinition** def) if ( inDeadCode ( ) )  uint32_t line , column ; CallSiteDesc :: Kind kind = CallSiteDesc :: Kind ( - 1 ) ; switch ( callee . which ( ) )  kind = CallSiteDesc :: Relative; kind = CallSiteDesc :: Register; kind = CallSiteDesc :: Register; MAsmJSCall * ins = MAsmJSCall :: New ( alloc ( ) , CallSiteDesc ( line , column , kind ) , callee , call . regArgs_ , returnType , call . spIncrement_ ) ; if ( ! ins )  curBlock_ -> add ( ins ); * def = ins; 