| Index: test/mjsunit/array-constructor-feedback.js
|
| diff --git a/test/mjsunit/array-constructor-feedback.js b/test/mjsunit/array-constructor-feedback.js
|
| index 865b8ba44fc06bcfcdbe3105fae0c067bf0ba281..45ea0d53e107077bda59080854d9e375cd6ad7b0 100644
|
| --- a/test/mjsunit/array-constructor-feedback.js
|
| +++ b/test/mjsunit/array-constructor-feedback.js
|
| @@ -26,7 +26,7 @@
|
| // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
|
| // Flags: --allow-natives-syntax --expose-gc
|
| -// Flags: --noalways-opt
|
| +// Flags: --no-always-opt --crankshaft
|
|
|
| // Test element kind of objects.
|
|
|
| @@ -72,7 +72,7 @@ function assertKind(expected, obj, name_opt) {
|
| a[0] = 3.5;
|
| b = bar0(Array);
|
| assertKind(elements_kind.fast_double, b);
|
| - %OptimizeFunctionOnNextCall(bar0);
|
| + %OptimizeFunctionOnNextCall(bar0);
|
| b = bar0(Array);
|
| assertKind(elements_kind.fast_double, b);
|
| assertOptimized(bar0);
|
| @@ -81,18 +81,15 @@ function assertKind(expected, obj, name_opt) {
|
| assertUnoptimized(bar0)
|
| // When it's re-optimized, we should call through the full stub
|
| bar0(Array);
|
| - %OptimizeFunctionOnNextCall(bar0);
|
| + %OptimizeFunctionOnNextCall(bar0);
|
| b = bar0(Array);
|
| - // This only makes sense to test if we allow crankshafting
|
| - if (4 != %GetOptimizationStatus(bar0)) {
|
| - // We also lost our ability to record kind feedback, as the site
|
| - // is megamorphic now.
|
| - assertKind(elements_kind.fast_smi_only, b);
|
| - assertOptimized(bar0);
|
| - b[0] = 3.5;
|
| - c = bar0(Array);
|
| - assertKind(elements_kind.fast_smi_only, c);
|
| - }
|
| + // We also lost our ability to record kind feedback, as the site
|
| + // is megamorphic now.
|
| + assertKind(elements_kind.fast_smi_only, b);
|
| + assertOptimized(bar0);
|
| + b[0] = 3.5;
|
| + c = bar0(Array);
|
| + assertKind(elements_kind.fast_smi_only, c);
|
| })();
|
|
|
|
|
| @@ -106,7 +103,7 @@ function assertKind(expected, obj, name_opt) {
|
| a[0] = "a string";
|
| a = bar(10);
|
| assertKind(elements_kind.fast, a);
|
| - %OptimizeFunctionOnNextCall(bar);
|
| + %OptimizeFunctionOnNextCall(bar);
|
| a = bar(10);
|
| assertKind(elements_kind.fast, a);
|
| assertOptimized(bar);
|
| @@ -124,7 +121,7 @@ function assertKind(expected, obj, name_opt) {
|
|
|
| barn(1, 2, 3);
|
| barn(1, 2, 3);
|
| - %OptimizeFunctionOnNextCall(barn);
|
| + %OptimizeFunctionOnNextCall(barn);
|
| barn(1, 2, 3);
|
| assertOptimized(barn);
|
| a = barn(1, "oops", 3);
|
| @@ -141,17 +138,14 @@ function assertKind(expected, obj, name_opt) {
|
| }
|
| a = bar();
|
| bar();
|
| - %OptimizeFunctionOnNextCall(bar);
|
| + %OptimizeFunctionOnNextCall(bar);
|
| b = bar();
|
| - // This only makes sense to test if we allow crankshafting
|
| - if (4 != %GetOptimizationStatus(bar)) {
|
| - assertOptimized(bar);
|
| - %DebugPrint(3);
|
| - b[0] = 3.5;
|
| - c = bar();
|
| - assertKind(elements_kind.fast_smi_only, c);
|
| - assertOptimized(bar);
|
| - }
|
| + assertOptimized(bar);
|
| + %DebugPrint(3);
|
| + b[0] = 3.5;
|
| + c = bar();
|
| + assertKind(elements_kind.fast_smi_only, c);
|
| + assertOptimized(bar);
|
| })();
|
|
|
|
|
| @@ -161,7 +155,7 @@ function assertKind(expected, obj, name_opt) {
|
| function bar() { return new Array(); }
|
| bar();
|
| bar();
|
| - %OptimizeFunctionOnNextCall(bar);
|
| + %OptimizeFunctionOnNextCall(bar);
|
| a = bar();
|
| assertTrue(a instanceof Array);
|
|
|
| @@ -180,7 +174,7 @@ function assertKind(expected, obj, name_opt) {
|
| function bar(len) { return new Array(len); }
|
| bar(0);
|
| bar(0);
|
| - %OptimizeFunctionOnNextCall(bar);
|
| + %OptimizeFunctionOnNextCall(bar);
|
| a = bar(0);
|
| assertOptimized(bar);
|
| assertFalse(isHoley(a));
|
| @@ -192,10 +186,8 @@ function assertKind(expected, obj, name_opt) {
|
| a = bar(0);
|
| assertOptimized(bar);
|
| // Crankshafted functions don't use mementos, so feedback still
|
| - // indicates a packed array is desired. (unless --nocrankshaft is in use).
|
| - if (4 != %GetOptimizationStatus(bar)) {
|
| - assertFalse(isHoley(a));
|
| - }
|
| + // indicates a packed array is desired.
|
| + assertFalse(isHoley(a));
|
| })();
|
|
|
| // Test: Make sure that crankshaft continues with feedback for large arrays.
|
|
|