24# include <emscripten/bind.h>
25# include <emscripten/val.h>
26using namespace emscripten;
36val vec_to_js_array(
const std::vector<T>& v) {
37 val arr = val::array();
38 for (
const auto& x : v)
39 arr.call<
void>(
"push", x);
43std::vector<double> js_array_to_vec(
const val& arr) {
44 const unsigned n = arr[
"length"].as<
unsigned>();
45 std::vector<double> v;
47 for (
unsigned i = 0; i < n; ++i)
48 v.push_back(arr[i].as<
double>());
54EMSCRIPTEN_BINDINGS(coolprop_bindings) {
55 function(
"F2K", &
F2K);
64 enum_<CoolProp::parameters>(
"parameters")
152 enum_<CoolProp::input_pairs>(
"input_pairs")
197 enum_<CoolProp::phases>(
"phases")
208 enum_<CoolProp::backend_families>(
"backend_families")
224EMSCRIPTEN_BINDINGS(humid_air_bindings) {
233EMSCRIPTEN_BINDINGS(abstract_state_bindings) {
235 function(
"factory", &factory, allow_raw_pointers());
237 class_<CoolProp::AbstractState>(
"AbstractState")
315 "get_phase_envelope_data",
320 val obj = val::object();
321# define X(name) obj.set(#name, vec_to_js_array(d.name));