Index: test/mjsunit/concurrent-initial-prototype-change.js |
diff --git a/test/mjsunit/parallel-initial-prototype-change.js b/test/mjsunit/concurrent-initial-prototype-change.js |
similarity index 86% |
rename from test/mjsunit/parallel-initial-prototype-change.js |
rename to test/mjsunit/concurrent-initial-prototype-change.js |
index 625b590fcc3a5c62ed0ba8bb7d48ca57a257c9cd..d5b1b9949173ec9916f3c2b63fa607ec3a6778e2 100644 |
--- a/test/mjsunit/parallel-initial-prototype-change.js |
+++ b/test/mjsunit/concurrent-initial-prototype-change.js |
@@ -26,7 +26,7 @@ |
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
// Flags: --allow-natives-syntax |
-// Flags: --concurrent-recompilation --concurrent-recompilation-delay=100 |
+// Flags: --concurrent-recompilation --block-concurrent-recompilation |
if (!%IsConcurrentRecompilationSupported()) { |
print("Concurrent recompilation is disabled. Skipping this test."); |
@@ -43,12 +43,15 @@ assertEquals(0.5, f1(arr, 0)); |
// Optimized code of f1 depends on initial object and array maps. |
%OptimizeFunctionOnNextCall(f1, "concurrent"); |
-// Trigger optimization in the background thread |
+// Kick off recompilation; |
assertEquals(0.5, f1(arr, 0)); |
-Object.prototype[1] = 1.5; // Invalidate current initial object map. |
+// Invalidate current initial object map after compile graph has been created. |
+Object.prototype[1] = 1.5; |
assertEquals(2, f1(arr, 1)); |
-// Not yet optimized while background thread is running. |
+// Not yet optimized since concurrent recompilation is blocked. |
assertUnoptimized(f1, "no sync"); |
+// Let concurrent recompilation proceed. |
+%UnblockConcurrentRecompilation(); |
// Sync with background thread to conclude optimization, which bails out |
// due to map dependency. |
assertUnoptimized(f1, "sync"); |