| Index: test/mjsunit/ensure-growing-store-learns.js
 | 
| diff --git a/test/mjsunit/ensure-growing-store-learns.js b/test/mjsunit/ensure-growing-store-learns.js
 | 
| index 1b7c21a4a8ecaf39f7301a65222c4d7586f4ece6..e64fe9392187088c594cccdb4a64f581d046fbe5 100644
 | 
| --- a/test/mjsunit/ensure-growing-store-learns.js
 | 
| +++ b/test/mjsunit/ensure-growing-store-learns.js
 | 
| @@ -2,18 +2,14 @@
 | 
|  // Use of this source code is governed by a BSD-style license that can be
 | 
|  // found in the LICENSE file.
 | 
|  
 | 
| -// Flags: --allow-natives-syntax --noverify-heap --noenable-slow-asserts
 | 
| -// Flags: --no-always-opt --crankshaft
 | 
| + // Flags: --allow-natives-syntax --noverify-heap --noenable-slow-asserts
 | 
|  
 | 
| -// --noverify-heap and --noenable-slow-asserts are set because the test is too
 | 
| -// slow with it on.
 | 
| + // --noverify-heap and --noenable-slow-asserts are set because the test is too
 | 
| + // slow with it on.
 | 
|  
 | 
| -assertFalse(isNeverOptimize());
 | 
| -assertFalse(isAlwaysOptimize());
 | 
| -
 | 
| -// Ensure that keyed stores work, and optimized functions learn if the
 | 
| -// store required change to dictionary mode. Verify that stores that grow
 | 
| -// the array into large object space don't cause a deopt.
 | 
| + // Ensure that keyed stores work, and optimized functions learn if the
 | 
| + // store required change to dictionary mode. Verify that stores that grow
 | 
| + // the array into large object space don't cause a deopt.
 | 
|  (function() {
 | 
|    var a = [];
 | 
|  
 | 
| @@ -64,24 +60,27 @@
 | 
|    %OptimizeFunctionOnNextCall(foo2);
 | 
|    foo2(a, 40);
 | 
|  
 | 
| -  assertOptimized(foo2);
 | 
| -  assertTrue(%HasFastSmiElements(a));
 | 
| +  // This test is way too slow without crankshaft.
 | 
| +  if (4 != %GetOptimizationStatus(foo2)) {
 | 
| +    assertOptimized(foo2);
 | 
| +    assertTrue(%HasFastSmiElements(a));
 | 
|  
 | 
| -  // Grow a large array into large object space through the keyed store
 | 
| -  // without deoptimizing. Grow by 10s. If we set elements too sparsely, the
 | 
| -  // array will convert to dictionary mode.
 | 
| -  a = new Array(99999);
 | 
| -  assertTrue(%HasFastSmiElements(a));
 | 
| -  for (var i = 0; i < 263000; i += 10) {
 | 
| -    foo2(a, i);
 | 
| +    // Grow a large array into large object space through the keyed store
 | 
| +    // without deoptimizing. Grow by 10s. If we set elements too sparsely, the
 | 
| +    // array will convert to dictionary mode.
 | 
| +    a = new Array(99999);
 | 
| +    assertTrue(%HasFastSmiElements(a));
 | 
| +    for (var i = 0; i < 263000; i += 10) {
 | 
| +      foo2(a, i);
 | 
| +    }
 | 
| +
 | 
| +    // Verify that we are over 1 page in size, and foo2 remains optimized.
 | 
| +    // This means we've smoothly transitioned to allocating in large object
 | 
| +    // space.
 | 
| +    assertTrue(%HasFastSmiElements(a));
 | 
| +    assertTrue(a.length * 4 > (1024 * 1024));
 | 
| +    assertOptimized(foo2);
 | 
|    }
 | 
| -
 | 
| -  // Verify that we are over 1 page in size, and foo2 remains optimized.
 | 
| -  // This means we've smoothly transitioned to allocating in large object
 | 
| -  // space.
 | 
| -  assertTrue(%HasFastSmiElements(a));
 | 
| -  assertTrue(a.length * 4 > (1024 * 1024));
 | 
| -  assertOptimized(foo2);
 | 
|  
 | 
|    %ClearFunctionTypeFeedback(foo2);
 | 
|  })();
 | 
| 
 |