diff options
Diffstat (limited to 'js/src/jit-test/tests/gc/bug-1138390.js')
-rw-r--r-- | js/src/jit-test/tests/gc/bug-1138390.js | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/js/src/jit-test/tests/gc/bug-1138390.js b/js/src/jit-test/tests/gc/bug-1138390.js new file mode 100644 index 000000000..f0f46e2fb --- /dev/null +++ b/js/src/jit-test/tests/gc/bug-1138390.js @@ -0,0 +1,28 @@ +if (!("startgc" in this && + "offThreadCompileScript" in this && + "runOffThreadScript" in this)) +{ + quit(); +} + +if (helperThreadCount() == 0) + quit(); + +gczeal(0); +gc(); + +// Start an incremental GC that includes the atoms zone +startgc(0); +var g = newGlobal(); + +// Start an off thread compilation that will not run until GC has finished +if ("gcstate" in this) + assertEq(gcstate(), "Mark"); +g.offThreadCompileScript('23;', {}); + +// Wait for the compilation to finish, which must finish the GC first +assertEq(23, g.runOffThreadScript()); +if ("gcstate" in this) + assertEq(gcstate(), "NotActive"); + +print("done"); |