1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
|
#include <emscripten.h>
#include <stdio.h>
#include <vector>
EMSCRIPTEN_KEEPALIVE extern "C" void allocate_too_much() {
std::vector<int> x;
puts("allocating more than TOTAL_MEMORY; this will fail.");
x.resize(20 * 1024 * 1024);
puts("oh no, it didn't fail!");
}
int main() {
EM_ASM({
// Catch the failure here so we can report it.
try {
_allocate_too_much();
out("no abort happened");
} catch (e) {
assert(("" + e).indexOf("abort") >= 0, "expect an abort from new");
out("new aborted as expected");
}
});
}
|