| #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; |
| } |