diff options
Diffstat (limited to 'js/src/gdb/tests/test-asmjs.cpp')
-rw-r--r-- | js/src/gdb/tests/test-asmjs.cpp | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/js/src/gdb/tests/test-asmjs.cpp b/js/src/gdb/tests/test-asmjs.cpp new file mode 100644 index 000000000..a9f16f1a1 --- /dev/null +++ b/js/src/gdb/tests/test-asmjs.cpp @@ -0,0 +1,38 @@ +#include "gdb-tests.h" +#include "jsapi.h" + +#include <string.h> + +FRAGMENT(asmjs, segfault) { + using namespace JS; + + int line0 = __LINE__; + const char* bytes = "\n" + "function f(glob, ffi, heap) {\n" + " \"use asm\";\n" + " var f32 = new glob.Float32Array(heap);\n" + " function g(n) {\n" + " n = n | 0;\n" + " return +f32[n>>2];\n" + " }\n" + " return g;\n" + "}\n" + "\n" + "var func = f(this, null, new ArrayBuffer(0x10000));\n" + "func(0x10000 << 2);\n" + "'ok'\n"; + + CompileOptions opts(cx); + opts.setFileAndLine(__FILE__, line0 + 1); + opts.asmJSOption = JS::AsmJSOption::Enabled; + RootedValue rval(cx); + bool ok; + ok = false; + + ok = Evaluate(cx, opts, bytes, strlen(bytes), &rval); + + breakpoint(); + + (void) ok; + (void) rval; +} |