| Index: test/mjsunit/es6/array-iterator-turbo.js
|
| diff --git a/test/mjsunit/es6/array-iterator-turbo.js b/test/mjsunit/es6/array-iterator-turbo.js
|
| index afae0697fc7498501704c2ba359f2e30b527431a..c1b8d3207228887bf47249688ca3614ec8694923 100644
|
| --- a/test/mjsunit/es6/array-iterator-turbo.js
|
| +++ b/test/mjsunit/es6/array-iterator-turbo.js
|
| @@ -5,6 +5,21 @@
|
| // Flags: --turbo --turbo-escape --allow-natives-syntax
|
|
|
| "use strict";
|
| +
|
| +const kDeoptimized = 2;
|
| +const kTurbofanned = 7;
|
| +const kInterpreted = 8;
|
| +
|
| +function GetOptimizationStatus(fn) {
|
| + let status = %GetOptimizationStatus(fn);
|
| + switch (status) {
|
| + case kInterpreted: // Treat interpreted frames as unoptimized
|
| + status = kDeoptimized;
|
| + break;
|
| + }
|
| +
|
| + return status;
|
| +}
|
|
|
| let global = this;
|
| let tests = {
|
| @@ -103,27 +118,15 @@
|
|
|
| // TODO(bmeurer): FAST_HOLEY_DOUBLE_ELEMENTS maps generally deopt when
|
| // a hole is encountered. Test should be fixed once that is corrected.
|
| - let expect_deopt = /HOLEY_DOUBLE/.test(key);
|
| -
|
| - if (expect_deopt) {
|
| - assertUnoptimized(fn, '', key);
|
| - } else {
|
| - assertOptimized(fn, '', key);
|
| - }
|
| + let status = /HOLEY_DOUBLE/.test(key) ? kDeoptimized : kTurbofanned;
|
| +
|
| + assertEquals(status, GetOptimizationStatus(fn), key);
|
| assertEquals(expected, fn(array), key);
|
| - if (expect_deopt) {
|
| - assertUnoptimized(fn, '', key);
|
| - } else {
|
| - assertOptimized(fn, '', key);
|
| - }
|
| -
|
| - // Check no deopt when another array with the same map is used
|
| + assertEquals(status, GetOptimizationStatus(fn), key);
|
| +
|
| + // Check no deopt when another arra with the same map is used
|
| assertTrue(%HaveSameMap(array, array2), key);
|
| - if (expect_deopt) {
|
| - assertUnoptimized(fn, '', key);
|
| - } else {
|
| - assertOptimized(fn, '', key);
|
| - }
|
| + assertEquals(status, GetOptimizationStatus(fn), key);
|
| assertEquals(expected2, fn(array2), key);
|
|
|
| // CheckMaps bailout
|
| @@ -131,7 +134,7 @@
|
| [1, 2, 3], 2, { enumerable: false, configurable: false,
|
| get() { return 7; } });
|
| fn(newArray);
|
| - assertUnoptimized(fn, '', key);
|
| + assertEquals(kDeoptimized, GetOptimizationStatus(fn), key);
|
| }
|
| },
|
|
|
| @@ -219,12 +222,12 @@
|
| %OptimizeFunctionOnNextCall(sum);
|
| assertEquals(expected, sum(array), key);
|
|
|
| - assertOptimized(sum, '', key);
|
| + assertEquals(kTurbofanned, GetOptimizationStatus(sum), key);
|
|
|
| // Not deoptimized when called on typed array of same type / map
|
| assertTrue(%HaveSameMap(array, array2));
|
| assertEquals(expected2, sum(array2), key);
|
| - assertOptimized(sum, '', key);
|
| + assertEquals(kTurbofanned, GetOptimizationStatus(sum), key);
|
|
|
| // Throw when detached
|
| let clone = new array.constructor(array);
|
|
|