aboutsummaryrefslogtreecommitdiff
path: root/tests/runtime_misuse.cpp
blob: d74d05ea4db9e0c06339182377961dc6941e4481 (plain)
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
#include <stdio.h>
#include <emscripten.h>

extern "C" {

int noted = 0;

char* EMSCRIPTEN_KEEPALIVE note(int n) {
  EM_ASM_({ Module.print([$0, $1]) }, n, noted);
  noted += n;
  EM_ASM_({ Module.print(['noted is now', $0]) }, noted);
  return "silly-string";
}

void free(void*) { // free is valid to call even after the runtime closes, so useful as a hack here for this test
  EM_ASM_({ Module.print(['reporting', $0]) }, noted);
  int result = noted;
  REPORT_RESULT();
}

}

int main() {
  EM_ASM( myJSCallback() ); // calls a global JS func
  return 0;
}