File size: 651 Bytes
00df61d
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#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);
}