Index: test/mjsunit/regress/regress-embedded-cons-string.js |
diff --git a/test/mjsunit/regress/regress-embedded-cons-string.js b/test/mjsunit/regress/regress-embedded-cons-string.js |
index 32b900b15b4dfde108c98b961ee7a42b3031da8a..b08a94257cc6cdb6c8bbad25cc7bbd8bbb56d11b 100644 |
--- a/test/mjsunit/regress/regress-embedded-cons-string.js |
+++ b/test/mjsunit/regress/regress-embedded-cons-string.js |
@@ -27,7 +27,7 @@ |
// Flags: --fold-constants --nodead-code-elimination |
// Flags: --expose-gc --allow-natives-syntax |
-// Flags: --concurrent-recompilation --concurrent-recompilation-delay=600 |
+// Flags: --concurrent-recompilation --block-concurrent-recompilation |
if (!%IsConcurrentRecompilationSupported()) { |
print("Concurrent recompilation is disabled. Skipping this test."); |
@@ -39,12 +39,14 @@ function test(fun) { |
fun(); |
// Mark for concurrent optimization. |
%OptimizeFunctionOnNextCall(fun, "concurrent"); |
- //Trigger optimization in the background. |
+ // Kick off recompilation. |
fun(); |
- //Tenure cons string. |
+ // Tenure cons string after compile graph has been created. |
gc(); |
- // In the mean time, concurrent recompiling is not complete yet. |
+ // In the mean time, concurrent recompiling is still blocked. |
assertUnoptimized(fun, "no sync"); |
+ // Let concurrent recompilation proceed. |
+ %UnblockConcurrentRecompilation(); |
// Concurrent recompilation eventually finishes, embeds tenured cons string. |
assertOptimized(fun, "sync"); |
// Visit embedded cons string during mark compact. |