///|
pub fn wasm_frontend_embedding_environment(
  runtime_symbol_prefix~ : String = "wasmoon",
  hidden_context_type~ : @milkir.Type? = Some(Ptr),
  cancellation_safepoints~ : Bool = false,
  context_shape~ : @wasmoon_jit.ContextShape = Legacy,
) -> @wasm_frontend.EmbeddingEnvironment {
  let vm = @wasmoon_jit.shaped_vmcontext_layout(context_shape)
  let memory = @wasmoon_jit.memory_descriptor_layout()
  EmbeddingEnvironment(
    runtime_symbol_prefix~,
    hidden_context_type~,
    runtime_layout=Some({
      memory0_base_offset: vm.memory0_base_offset,
      memory0_size_offset: vm.memory0_size_offset,
      func_table_offset: vm.func_table_offset,
      table0_base_offset: vm.table0_base_offset,
      table0_elements_offset: vm.table0_elements_offset,
      globals_offset: vm.globals_offset,
      tables_offset: vm.tables_offset,
      table_sizes_offset: vm.table_sizes_offset,
      memories_offset: vm.memories_offset,
      pointer_stride: vm.pointer_stride,
      global_value_stride: vm.global_value_stride,
      table_entry_value_offset: vm.table_entry_value_offset,
      table_entry_stride: vm.table_entry_stride,
      func_table_entry_stride: vm.func_table_entry_stride,
    }),
    memory_descriptor_layout=Some({
      base_offset: memory.base_offset,
      current_length_offset: memory.current_length_offset,
    }),
    cancellation_safepoints~,
  )
}