• Home
  • Raw
  • Download

Lines Matching full:wasm

6 // https://github.com/WebAssembly/wasm-c-api/:
22 #include "src/wasm/c-api.h"
33 #include "src/compiler/wasm-compiler.h"
37 #include "src/wasm/leb-helper.h"
38 #include "src/wasm/module-instantiate.h"
39 #include "src/wasm/wasm-arguments.h"
40 #include "src/wasm/wasm-constants.h"
41 #include "src/wasm/wasm-engine.h"
42 #include "src/wasm/wasm-objects.h"
43 #include "src/wasm/wasm-result.h"
44 #include "src/wasm/wasm-serialization.h"
45 #include "third_party/wasm-api/wasm.h"
55 namespace wasm { namespace
72 ValKind V8ValueTypeToWasm(i::wasm::ValueType v8_valtype) { in V8ValueTypeToWasm()
74 case i::wasm::kI32: in V8ValueTypeToWasm()
76 case i::wasm::kI64: in V8ValueTypeToWasm()
78 case i::wasm::kF32: in V8ValueTypeToWasm()
80 case i::wasm::kF64: in V8ValueTypeToWasm()
82 case i::wasm::kRef: in V8ValueTypeToWasm()
83 case i::wasm::kOptRef: in V8ValueTypeToWasm()
85 case i::wasm::HeapType::kFunc: in V8ValueTypeToWasm()
87 case i::wasm::HeapType::kAny: in V8ValueTypeToWasm()
90 // TODO(wasm+): support new value types in V8ValueTypeToWasm()
94 // TODO(wasm+): support new value types in V8ValueTypeToWasm()
99 i::wasm::ValueType WasmValKindToV8(ValKind kind) { in WasmValKindToV8()
102 return i::wasm::kWasmI32; in WasmValKindToV8()
104 return i::wasm::kWasmI64; in WasmValKindToV8()
106 return i::wasm::kWasmF32; in WasmValKindToV8()
108 return i::wasm::kWasmF64; in WasmValKindToV8()
110 return i::wasm::kWasmFuncRef; in WasmValKindToV8()
112 return i::wasm::kWasmAnyRef; in WasmValKindToV8()
114 // TODO(wasm+): support new value types in WasmValKindToV8()
119 Name GetNameFromWireBytes(const i::wasm::WireBytesRef& ref, in GetNameFromWireBytes()
129 own<FuncType> FunctionSigToFuncType(const i::wasm::FunctionSig* sig) { in FunctionSigToFuncType()
143 own<ExternType> GetImportExportType(const i::wasm::WasmModule* module, in GetImportExportType()
144 const i::wasm::ImportExportKindCode kind, in GetImportExportType()
147 case i::wasm::kExternalFunction: { in GetImportExportType()
150 case i::wasm::kExternalTable: { in GetImportExportType()
151 const i::wasm::WasmTable& table = module->tables[index]; in GetImportExportType()
157 case i::wasm::kExternalMemory: { in GetImportExportType()
163 case i::wasm::kExternalGlobal: { in GetImportExportType()
164 const i::wasm::WasmGlobal& global = module->globals[index]; in GetImportExportType()
169 case i::wasm::kExternalTag: in GetImportExportType()
176 /// BEGIN FILE wasm-v8.cc
182 std::cerr << "Wasm API: " << s << " not supported yet!\n"; in WASM_UNIMPLEMENTED()
573 // TODO(wasm+): support new value types in make()
1055 size_t func_offset = module_offset - i::wasm::GetWasmFunctionOffset( in CreateFrameFromInternal()
1124 i::wasm::ModuleWireBytes bytes( in validate()
1127 i::wasm::WasmFeatures features = i::wasm::WasmFeatures::FromIsolate(isolate); in validate()
1128 return i::wasm::GetWasmEngine()->SyncValidate(isolate, features, bytes); in validate()
1136 i::wasm::ModuleWireBytes bytes( in make()
1138 i::wasm::WasmFeatures features = i::wasm::WasmFeatures::FromIsolate(isolate); in make()
1139 i::wasm::ErrorThrower thrower(isolate, "ignored"); in make()
1141 if (!i::wasm::GetWasmEngine() in make()
1151 const i::wasm::NativeModule* native_module = in imports()
1153 const i::wasm::WasmModule* module = native_module->module(); in imports()
1156 const std::vector<i::wasm::WasmImport>& import_table = module->import_table; in imports()
1160 const i::wasm::WasmImport& imp = import_table[i]; in imports()
1171 const i::wasm::NativeModule* native_module = module_obj->native_module(); in ExportsImpl()
1172 const i::wasm::WasmModule* module = native_module->module(); in ExportsImpl()
1175 const std::vector<i::wasm::WasmExport>& export_table = module->export_table; in ExportsImpl()
1179 const i::wasm::WasmExport& exp = export_table[i]; in ExportsImpl()
1192 i::wasm::NativeModule* native_module = in serialize()
1198 i::wasm::WasmSerializer serializer(native_module); in serialize()
1200 size_t size_size = i::wasm::LEBHelper::sizeof_u64v(binary_size); in serialize()
1204 i::wasm::LEBHelper::write_u64v(reinterpret_cast<uint8_t**>(&ptr), in serialize()
1226 if (!i::wasm::DeserializeNativeModule( in deserialize()
1275 return wasm::EXTERN_FUNC; in kind()
1277 if (obj->IsWasmGlobalObject()) return wasm::EXTERN_GLOBAL; in kind()
1278 if (obj->IsWasmTableObject()) return wasm::EXTERN_TABLE; in kind()
1279 if (obj->IsWasmMemoryObject()) return wasm::EXTERN_MEMORY; in kind()
1374 static constexpr i::wasm::ValueType kMarker = i::wasm::kWasmVoid;
1376 static i::Handle<i::PodArray<i::wasm::ValueType>> Serialize( in Serialize()
1380 i::Handle<i::PodArray<i::wasm::ValueType>> sig = in Serialize()
1381 i::PodArray<i::wasm::ValueType>::New(isolate, sig_size, in Serialize()
1390 i::wasm::ValueType marker = kMarker; in Serialize()
1398 static own<FuncType> Deserialize(i::PodArray<i::wasm::ValueType> sig) { in Deserialize()
1415 static int ResultArity(i::PodArray<i::wasm::ValueType> sig) { in ResultArity()
1423 static int ParamArity(i::PodArray<i::wasm::ValueType> sig) { in ParamArity()
1427 static i::PodArray<i::wasm::ValueType> GetSig( in GetSig()
1435 constexpr i::wasm::ValueType SignatureHelper::kMarker;
1492 const i::wasm::FunctionSig* sig = in param_arity()
1505 const i::wasm::FunctionSig* sig = in result_arity()
1525 const i::wasm::FunctionSig* sig, in PrepareFunctionData()
1526 const i::wasm::WasmModule* module) { in PrepareFunctionData()
1537 i::wasm::CWasmArgumentsPacker::TotalSize(sig)); in PrepareFunctionData()
1540 void PushArgs(const i::wasm::FunctionSig* sig, const Val args[], in PushArgs()
1541 i::wasm::CWasmArgumentsPacker* packer, StoreImpl* store) { in PushArgs()
1543 i::wasm::ValueType type = sig->GetParam(i); in PushArgs()
1545 case i::wasm::kI32: in PushArgs()
1548 case i::wasm::kI64: in PushArgs()
1551 case i::wasm::kF32: in PushArgs()
1554 case i::wasm::kF64: in PushArgs()
1557 case i::wasm::kRef: in PushArgs()
1558 case i::wasm::kOptRef: in PushArgs()
1562 case i::wasm::kRtt: in PushArgs()
1563 case i::wasm::kS128: in PushArgs()
1566 case i::wasm::kI8: in PushArgs()
1567 case i::wasm::kI16: in PushArgs()
1568 case i::wasm::kVoid: in PushArgs()
1569 case i::wasm::kBottom: in PushArgs()
1575 void PopArgs(const i::wasm::FunctionSig* sig, Val results[], in PopArgs()
1576 i::wasm::CWasmArgumentsPacker* packer, StoreImpl* store) { in PopArgs()
1579 i::wasm::ValueType type = sig->GetReturn(i); in PopArgs()
1581 case i::wasm::kI32: in PopArgs()
1584 case i::wasm::kI64: in PopArgs()
1587 case i::wasm::kF32: in PopArgs()
1590 case i::wasm::kF64: in PopArgs()
1593 case i::wasm::kRef: in PopArgs()
1594 case i::wasm::kOptRef: { in PopArgs()
1601 case i::wasm::kRtt: in PopArgs()
1602 case i::wasm::kS128: in PopArgs()
1605 case i::wasm::kI8: in PopArgs()
1606 case i::wasm::kI16: in PopArgs()
1607 case i::wasm::kVoid: in PopArgs()
1608 case i::wasm::kBottom: in PopArgs()
1665 const i::wasm::FunctionSig* sig = in call()
1671 i::wasm::CWasmArgumentsPacker packer(function_data->packed_args_size()); in call()
1822 i::wasm::ValueType i_type = WasmValKindToV8(type->content()->kind()); in make()
1848 case i::wasm::kI32: in get()
1850 case i::wasm::kI64: in get()
1852 case i::wasm::kF32: in get()
1854 case i::wasm::kF64: in get()
1856 case i::wasm::kRef: in get()
1857 case i::wasm::kOptRef: { in get()
1863 case i::wasm::kRtt: in get()
1864 case i::wasm::kS128: in get()
1867 case i::wasm::kI8: in get()
1868 case i::wasm::kI16: in get()
1869 case i::wasm::kVoid: in get()
1870 case i::wasm::kBottom: in get()
1898 // TODO(wasm+): support new value types in set()
1922 i::wasm::ValueType i_type; in make()
1925 i_type = i::wasm::kWasmFuncRef; in make()
1929 i_type = i::wasm::kWasmAnyRef; in make()
1937 if (minimum > i::wasm::max_table_init_entries()) return nullptr; in make()
1943 if (maximum > i::wasm::max_table_init_entries()) return nullptr; in make()
1953 DCHECK(i::wasm::max_table_init_entries() <= i::kMaxInt); in make()
1972 case i::wasm::HeapType::kFunc: in type()
1975 case i::wasm::HeapType::kAny: in type()
2008 if ((table->type() == i::wasm::kWasmFuncRef || table->type().has_index()) && in set()
2027 if ((table->type() == i::wasm::kWasmFuncRef || table->type().has_index()) && in grow()
2057 if (minimum > i::wasm::kSpecMaxMemoryPages) return nullptr; in make()
2061 if (maximum > i::wasm::kSpecMaxMemoryPages) return nullptr; in make()
2063 // TODO(wasm+): Support shared memory. in make()
2076 i::wasm::kWasmPageSize); in type()
2094 i::wasm::kWasmPageSize); in size()
2149 i::wasm::ErrorThrower thrower(isolate, "instantiation"); in make()
2151 i::wasm::GetWasmEngine()->SyncInstantiate( in make()
2237 } // namespace wasm
2239 // BEGIN FILE wasm-c.cc
2252 wasm::vec<T> it;
2253 explicit borrowed_vec(wasm::vec<T>&& v) : it(std::move(v)) {} in borrowed_vec()
2279 extern "C++" inline auto get_##name(wasm::own<Name>& x)->wasm_##name##_t* { \
2282 extern "C++" inline auto get_##name(const wasm::own<Name>& x) \
2286 extern "C++" inline auto release_##name(wasm::own<Name>&& x) \
2290 extern "C++" inline auto adopt_##name(wasm_##name##_t* x)->wasm::own<Name> { \
2377 wasm::vec, ) /* NOLINT(whitespace/parens) */ \
2381 auto v2 = wasm::vec<Name>::make_uninitialized(size); \
2395 WASM_DEFINE_VEC_BASE(name, Name, wasm::ownvec, *) \
2399 auto v2 = wasm::ownvec<Name>::make_uninitialized(size); \
2408 auto v2 = wasm::ownvec<Name>::make_uninitialized(v->size); \
2432 WASM_DEFINE_OWN(config, wasm::Config) in WASM_DEFINE_VEC_PLAIN()
2435 return release_config(wasm::Config::make()); in WASM_DEFINE_VEC_PLAIN()
2440 WASM_DEFINE_OWN(engine, wasm::Engine) in WASM_DEFINE_OWN()
2443 return release_engine(wasm::Engine::make()); in WASM_DEFINE_OWN()
2447 return release_engine(wasm::Engine::make(adopt_config(config))); in wasm_engine_new_with_config()
2452 WASM_DEFINE_OWN(store, wasm::Store) in WASM_DEFINE_OWN()
2455 return release_store(wasm::Store::make(engine)); in WASM_DEFINE_OWN()
2463 extern "C++" inline auto hide_mutability(wasm::Mutability mutability) in hide_mutability()
2469 -> wasm::Mutability { in reveal_mutability()
2470 return static_cast<wasm::Mutability>(mutability); in reveal_mutability()
2473 extern "C++" inline auto hide_limits(const wasm::Limits& limits) in hide_limits()
2478 extern "C++" inline auto reveal_limits(wasm_limits_t limits) -> wasm::Limits { in reveal_limits()
2479 return wasm::Limits(limits.min, limits.max); in reveal_limits()
2482 extern "C++" inline auto hide_valkind(wasm::ValKind kind) -> wasm_valkind_t { in hide_valkind()
2486 extern "C++" inline auto reveal_valkind(wasm_valkind_t kind) -> wasm::ValKind { in reveal_valkind()
2487 return static_cast<wasm::ValKind>(kind); in reveal_valkind()
2490 extern "C++" inline auto hide_externkind(wasm::ExternKind kind) in hide_externkind()
2496 -> wasm::ExternKind { in reveal_externkind()
2497 return static_cast<wasm::ExternKind>(kind); in reveal_externkind()
2512 WASM_DEFINE_TYPE(valtype, wasm::ValType) in WASM_DEFINE_TYPE()
2515 return release_valtype(wasm::ValType::make(reveal_valkind(k))); in WASM_DEFINE_TYPE()
2524 WASM_DEFINE_TYPE(functype, wasm::FuncType) in WASM_DEFINE_TYPE()
2528 return release_functype(wasm::FuncType::make(adopt_valtype_vec(params), in WASM_DEFINE_TYPE()
2542 WASM_DEFINE_TYPE(globaltype, wasm::GlobalType) in WASM_DEFINE_TYPE()
2546 return release_globaltype(wasm::GlobalType::make( in WASM_DEFINE_TYPE()
2560 WASM_DEFINE_TYPE(tabletype, wasm::TableType) in WASM_DEFINE_TYPE()
2565 wasm::TableType::make(adopt_valtype(element), reveal_limits(*limits))); in WASM_DEFINE_TYPE()
2578 WASM_DEFINE_TYPE(memorytype, wasm::MemoryType) in WASM_DEFINE_TYPE()
2581 return release_memorytype(wasm::MemoryType::make(reveal_limits(*limits))); in WASM_DEFINE_TYPE()
2590 WASM_DEFINE_TYPE(externtype, wasm::ExternType) in WASM_DEFINE_TYPE()
2597 return hide_externtype(static_cast<wasm::ExternType*>(ft)); in wasm_functype_as_externtype()
2600 return hide_externtype(static_cast<wasm::ExternType*>(gt)); in wasm_globaltype_as_externtype()
2603 return hide_externtype(static_cast<wasm::ExternType*>(tt)); in wasm_tabletype_as_externtype()
2606 return hide_externtype(static_cast<wasm::ExternType*>(mt)); in wasm_memorytype_as_externtype()
2611 return hide_externtype(static_cast<const wasm::ExternType*>(ft)); in wasm_functype_as_externtype_const()
2615 return hide_externtype(static_cast<const wasm::ExternType*>(gt)); in wasm_globaltype_as_externtype_const()
2619 return hide_externtype(static_cast<const wasm::ExternType*>(tt)); in wasm_tabletype_as_externtype_const()
2623 return hide_externtype(static_cast<const wasm::ExternType*>(mt)); in wasm_memorytype_as_externtype_const()
2627 return et->kind() == wasm::EXTERN_FUNC in wasm_externtype_as_functype()
2629 static_cast<wasm::FuncType*>(reveal_externtype(et))) in wasm_externtype_as_functype()
2633 return et->kind() == wasm::EXTERN_GLOBAL in wasm_externtype_as_globaltype()
2635 static_cast<wasm::GlobalType*>(reveal_externtype(et))) in wasm_externtype_as_globaltype()
2639 return et->kind() == wasm::EXTERN_TABLE in wasm_externtype_as_tabletype()
2641 static_cast<wasm::TableType*>(reveal_externtype(et))) in wasm_externtype_as_tabletype()
2645 return et->kind() == wasm::EXTERN_MEMORY in wasm_externtype_as_memorytype()
2647 static_cast<wasm::MemoryType*>(reveal_externtype(et))) in wasm_externtype_as_memorytype()
2653 return et->kind() == wasm::EXTERN_FUNC in wasm_externtype_as_functype_const()
2655 static_cast<const wasm::FuncType*>(reveal_externtype(et))) in wasm_externtype_as_functype_const()
2660 return et->kind() == wasm::EXTERN_GLOBAL in wasm_externtype_as_globaltype_const()
2662 static_cast<const wasm::GlobalType*>(reveal_externtype(et))) in wasm_externtype_as_globaltype_const()
2667 return et->kind() == wasm::EXTERN_TABLE in wasm_externtype_as_tabletype_const()
2669 static_cast<const wasm::TableType*>(reveal_externtype(et))) in wasm_externtype_as_tabletype_const()
2674 return et->kind() == wasm::EXTERN_MEMORY in wasm_externtype_as_memorytype_const()
2676 static_cast<const wasm::MemoryType*>(reveal_externtype(et))) in wasm_externtype_as_memorytype_const()
2682 WASM_DEFINE_TYPE(importtype, wasm::ImportType) in WASM_DEFINE_TYPE()
2686 return release_importtype(wasm::ImportType::make( in WASM_DEFINE_TYPE()
2704 WASM_DEFINE_TYPE(exporttype, wasm::ExportType) in WASM_DEFINE_TYPE()
2709 wasm::ExportType::make(adopt_byte_vec(name), adopt_externtype(type))); in WASM_DEFINE_TYPE()
2752 return hide_ref(static_cast<wasm::Ref*>(reveal_##name(r))); \
2759 return hide_ref(static_cast<const wasm::Ref*>(reveal_##name(r))); \
2767 WASM_DEFINE_OWN(shared_##name, wasm::Shared<Name>)
2769 WASM_DEFINE_REF_BASE(ref, wasm::Ref) in WASM_DEFINE_REF_BASE()
2779 inline auto hide_val(wasm::Val v) -> wasm_val_t { in WASM_DEFINE_REF_BASE()
2782 case wasm::I32: in WASM_DEFINE_REF_BASE()
2785 case wasm::I64: in WASM_DEFINE_REF_BASE()
2788 case wasm::F32: in WASM_DEFINE_REF_BASE()
2791 case wasm::F64: in WASM_DEFINE_REF_BASE()
2794 case wasm::ANYREF: in WASM_DEFINE_REF_BASE()
2795 case wasm::FUNCREF: in WASM_DEFINE_REF_BASE()
2804 inline auto release_val(wasm::Val v) -> wasm_val_t { in WASM_DEFINE_REF_BASE()
2807 case wasm::I32: in WASM_DEFINE_REF_BASE()
2810 case wasm::I64: in WASM_DEFINE_REF_BASE()
2813 case wasm::F32: in WASM_DEFINE_REF_BASE()
2816 case wasm::F64: in WASM_DEFINE_REF_BASE()
2819 case wasm::ANYREF: in WASM_DEFINE_REF_BASE()
2820 case wasm::FUNCREF: in WASM_DEFINE_REF_BASE()
2829 inline auto adopt_val(wasm_val_t v) -> wasm::Val { in WASM_DEFINE_REF_BASE()
2831 case wasm::I32: in WASM_DEFINE_REF_BASE()
2832 return wasm::Val(v.of.i32); in WASM_DEFINE_REF_BASE()
2833 case wasm::I64: in WASM_DEFINE_REF_BASE()
2834 return wasm::Val(v.of.i64); in WASM_DEFINE_REF_BASE()
2835 case wasm::F32: in WASM_DEFINE_REF_BASE()
2836 return wasm::Val(v.of.f32); in WASM_DEFINE_REF_BASE()
2837 case wasm::F64: in WASM_DEFINE_REF_BASE()
2838 return wasm::Val(v.of.f64); in WASM_DEFINE_REF_BASE()
2839 case wasm::ANYREF: in WASM_DEFINE_REF_BASE()
2840 case wasm::FUNCREF: in WASM_DEFINE_REF_BASE()
2841 return wasm::Val(adopt_ref(v.of.ref)); in WASM_DEFINE_REF_BASE()
2848 wasm::Val it; in WASM_DEFINE_REF_BASE()
2849 explicit borrowed_val(wasm::Val&& v) : it(std::move(v)) {} in WASM_DEFINE_REF_BASE()
2857 wasm::Val v2; in WASM_DEFINE_REF_BASE()
2859 case wasm::I32: in WASM_DEFINE_REF_BASE()
2860 v2 = wasm::Val(v->of.i32); in WASM_DEFINE_REF_BASE()
2862 case wasm::I64: in WASM_DEFINE_REF_BASE()
2863 v2 = wasm::Val(v->of.i64); in WASM_DEFINE_REF_BASE()
2865 case wasm::F32: in WASM_DEFINE_REF_BASE()
2866 v2 = wasm::Val(v->of.f32); in WASM_DEFINE_REF_BASE()
2868 case wasm::F64: in WASM_DEFINE_REF_BASE()
2869 v2 = wasm::Val(v->of.f64); in WASM_DEFINE_REF_BASE()
2871 case wasm::ANYREF: in WASM_DEFINE_REF_BASE()
2872 case wasm::FUNCREF: in WASM_DEFINE_REF_BASE()
2873 v2 = wasm::Val(adopt_ref(v->of.ref)); in WASM_DEFINE_REF_BASE()
2883 WASM_DEFINE_VEC_BASE(val, wasm::Val, wasm::vec, )
2887 auto v2 = wasm::vec<wasm::Val>::make_uninitialized(size); in wasm_val_vec_new()
2895 auto v2 = wasm::vec<wasm::Val>::make_uninitialized(v->size); in wasm_val_vec_copy()
2922 WASM_DEFINE_OWN(frame, wasm::Frame) in WASM_DEFINE_OWN()
2923 WASM_DEFINE_VEC_OWN(frame, wasm::Frame) in WASM_DEFINE_OWN()
2946 WASM_DEFINE_REF(trap, wasm::Trap) in WASM_DEFINE_REF()
2950 return release_trap(wasm::Trap::make(store, message_.it)); in WASM_DEFINE_REF()
2967 WASM_DEFINE_REF(foreign, wasm::Foreign) in WASM_DEFINE_REF()
2970 return release_foreign(wasm::Foreign::make(store)); in WASM_DEFINE_REF()
2975 WASM_DEFINE_SHARABLE_REF(module, wasm::Module) in WASM_DEFINE_SHARABLE_REF()
2979 return wasm::Module::validate(store, binary_.it); in WASM_DEFINE_SHARABLE_REF()
2985 return release_module(wasm::Module::make(store, binary_.it)); in wasm_module_new()
3005 return release_module(wasm::Module::deserialize(store, binary_.it)); in wasm_module_deserialize()
3014 return release_module(wasm::Module::obtain(store, shared)); in wasm_module_obtain()
3019 WASM_DEFINE_REF(func, wasm::Func) in WASM_DEFINE_REF()
3023 auto wasm_callback(void* env, const wasm::Val args[], wasm::Val results[]) in WASM_DEFINE_REF()
3024 -> wasm::own<wasm::Trap> { in WASM_DEFINE_REF()
3035 auto wasm_callback_with_env(void* env, const wasm::Val args[], in WASM_DEFINE_REF()
3036 wasm::Val results[]) -> wasm::own<wasm::Trap> { in WASM_DEFINE_REF()
3052 return release_func(wasm::Func::make(store, type, wasm_callback, in wasm_func_new()
3061 return release_func(wasm::Func::make(store, type, wasm_callback_with_env, in wasm_func_new_with_env()
3085 WASM_DEFINE_REF(global, wasm::Global) in WASM_DEFINE_REF()
3091 return release_global(wasm::Global::make(store, type, val_.it)); in WASM_DEFINE_REF()
3109 WASM_DEFINE_REF(table, wasm::Table) in WASM_DEFINE_REF()
3113 return release_table(wasm::Table::make(store, type, ref)); in WASM_DEFINE_REF()
3140 WASM_DEFINE_REF(memory, wasm::Memory) in WASM_DEFINE_REF()
3144 return release_memory(wasm::Memory::make(store, type)); in WASM_DEFINE_REF()
3167 WASM_DEFINE_REF(extern, wasm::Extern) in WASM_DEFINE_REF()
3168 WASM_DEFINE_VEC_OWN(extern, wasm::Extern) in WASM_DEFINE_REF()
3178 return hide_extern(static_cast<wasm::Extern*>(reveal_func(func))); in wasm_func_as_extern()
3181 return hide_extern(static_cast<wasm::Extern*>(reveal_global(global))); in wasm_global_as_extern()
3184 return hide_extern(static_cast<wasm::Extern*>(reveal_table(table))); in wasm_table_as_extern()
3187 return hide_extern(static_cast<wasm::Extern*>(reveal_memory(memory))); in wasm_memory_as_extern()
3191 return hide_extern(static_cast<const wasm::Extern*>(reveal_func(func))); in wasm_func_as_extern_const()
3194 return hide_extern(static_cast<const wasm::Extern*>(reveal_global(global))); in wasm_global_as_extern_const()
3197 return hide_extern(static_cast<const wasm::Extern*>(reveal_table(table))); in wasm_table_as_extern_const()
3200 return hide_extern(static_cast<const wasm::Extern*>(reveal_memory(memory))); in wasm_memory_as_extern_const()
3233 WASM_DEFINE_REF(instance, wasm::Instance) in WASM_DEFINE_REF()
3239 wasm::own<wasm::Trap> error; in WASM_DEFINE_REF()
3240 wasm_instance_t* instance = release_instance(wasm::Instance::make( in WASM_DEFINE_REF()
3241 store, module, reinterpret_cast<const wasm::Extern* const*>(imports), in WASM_DEFINE_REF()