diff options
author | Matt A. Tobin <mattatobin@localhost.localdomain> | 2018-02-02 04:16:08 -0500 |
---|---|---|
committer | Matt A. Tobin <mattatobin@localhost.localdomain> | 2018-02-02 04:16:08 -0500 |
commit | 5f8de423f190bbb79a62f804151bc24824fa32d8 (patch) | |
tree | 10027f336435511475e392454359edea8e25895d /js/src/gdb/tests/test-unwind.cpp | |
parent | 49ee0794b5d912db1f95dce6eb52d781dc210db5 (diff) | |
download | UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar.gz UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar.lz UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar.xz UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.zip |
Add m-esr52 at 52.6.0
Diffstat (limited to 'js/src/gdb/tests/test-unwind.cpp')
-rw-r--r-- | js/src/gdb/tests/test-unwind.cpp | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/js/src/gdb/tests/test-unwind.cpp b/js/src/gdb/tests/test-unwind.cpp new file mode 100644 index 000000000..6c8b7b86a --- /dev/null +++ b/js/src/gdb/tests/test-unwind.cpp @@ -0,0 +1,52 @@ +#include "gdb-tests.h" +#include "jsapi.h" +#include "jit/JitOptions.h" + +#include <string.h> + +static bool +Something(JSContext* cx, unsigned argc, JS::Value* vp) +{ + JS::CallArgs args = CallArgsFromVp(argc, vp); + args.rval().setInt32(23); + breakpoint(); + return true; +} + +static const JSFunctionSpecWithHelp unwind_functions[] = { + JS_FN_HELP("something", Something, 0, 0, +"something()", +" Test function for test-unwind."), + JS_FS_HELP_END +}; + +FRAGMENT(unwind, simple) { + using namespace JS; + + JS::Rooted<JSObject*> global(cx, JS::CurrentGlobalOrNull(cx)); + if (!JS_DefineFunctionsWithHelp(cx, global, unwind_functions)) + return; + + // baseline-eager. + uint32_t saveThreshold = js::jit::JitOptions.baselineWarmUpThreshold; + js::jit::JitOptions.baselineWarmUpThreshold = 0; + + int line0 = __LINE__; + const char* bytes = "\n" + "function unwindFunctionInner() {\n" + " return something();\n" + "}\n" + "\n" + "function unwindFunctionOuter() {\n" + " return unwindFunctionInner();\n" + "}\n" + "\n" + "unwindFunctionOuter();\n"; + + CompileOptions opts(cx); + opts.setFileAndLine(__FILE__, line0 + 1); + RootedValue rval(cx); + Evaluate(cx, opts, bytes, strlen(bytes), &rval); + + js::jit::JitOptions.baselineWarmUpThreshold = saveThreshold; +} |