#include <emscripten/bind.h>
#include <emscripten/val.h>
#include <string>
#include <iostream>
using namespace emscripten;
class MyType {
public:
void RunCallback(emscripten::val callback);
};
int main() {
EM_ASM(
let value = new Module.MyType();
value.RunCallback((e) => {
console.log("Received: " + e);
if (e !== "Hey") throw "Expected 'Hey', got " + e;
});
);
std::cout << "done" << std::endl;
}
EMSCRIPTEN_BINDINGS(my_module) {
register_optional<std::string>();
class_<MyType>("MyType")
.constructor<>()
.function("RunCallback", &MyType::RunCallback);
}