Index: test/mjsunit/array-literal-feedback.js |
diff --git a/test/mjsunit/array-literal-feedback.js b/test/mjsunit/array-literal-feedback.js |
index cfda0f6d5f6006d4aac3aa3e288066bd5fb421d5..ed9c4e879e4d6e22f0d3f49fcb00a5ac7ade7582 100644 |
--- a/test/mjsunit/array-literal-feedback.js |
+++ b/test/mjsunit/array-literal-feedback.js |
@@ -25,25 +25,9 @@ |
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE |
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
-// Flags: --allow-natives-syntax --smi-only-arrays --expose-gc |
+// Flags: --allow-natives-syntax --expose-gc |
// Flags: --noalways-opt |
-// Test element kind of objects. |
-// Since --smi-only-arrays affects builtins, its default setting at compile |
-// time sticks if built with snapshot. If --smi-only-arrays is deactivated |
-// by default, only a no-snapshot build actually has smi-only arrays enabled |
-// in this test case. Depending on whether smi-only arrays are actually |
-// enabled, this test takes the appropriate code path to check smi-only arrays. |
- |
-// support_smi_only_arrays = %HasFastSmiElements(new Array(1,2,3,4,5,6,7,8)); |
-support_smi_only_arrays = true; |
- |
-if (support_smi_only_arrays) { |
- print("Tests include smi-only arrays."); |
-} else { |
- print("Tests do NOT include smi-only arrays."); |
-} |
- |
var elements_kind = { |
fast_smi_only : 'fast smi only elements', |
fast : 'fast elements', |
@@ -73,58 +57,51 @@ function isHoley(obj) { |
} |
function assertKind(expected, obj, name_opt) { |
- if (!support_smi_only_arrays && |
- expected == elements_kind.fast_smi_only) { |
- expected = elements_kind.fast; |
- } |
assertEquals(expected, getKind(obj), name_opt); |
} |
-if (support_smi_only_arrays) { |
- |
- function get_literal(x) { |
- var literal = [1, 2, x]; |
- return literal; |
- } |
+function get_literal(x) { |
+ var literal = [1, 2, x]; |
+ return literal; |
+} |
- get_literal(3); |
- // It's important to store a from before we crankshaft get_literal, because |
- // mementos won't be created from crankshafted code at all. |
- a = get_literal(3); |
+get_literal(3); |
+// It's important to store a from before we crankshaft get_literal, because |
+// mementos won't be created from crankshafted code at all. |
+a = get_literal(3); |
%OptimizeFunctionOnNextCall(get_literal); |
- get_literal(3); |
- assertOptimized(get_literal); |
- assertTrue(%HasFastSmiElements(a)); |
- // a has a memento so the transition caused by the store will affect the |
- // boilerplate. |
- a[0] = 3.5; |
- |
- // We should have transitioned the boilerplate array to double, and |
- // crankshafted code should de-opt on the unexpected elements kind |
- b = get_literal(3); |
- assertTrue(%HasFastDoubleElements(b)); |
- assertEquals([1, 2, 3], b); |
- assertUnoptimized(get_literal); |
- |
- // Optimize again |
- get_literal(3); |
+get_literal(3); |
+assertOptimized(get_literal); |
+assertTrue(%HasFastSmiElements(a)); |
+// a has a memento so the transition caused by the store will affect the |
+// boilerplate. |
+a[0] = 3.5; |
+ |
+// We should have transitioned the boilerplate array to double, and |
+// crankshafted code should de-opt on the unexpected elements kind |
+b = get_literal(3); |
+assertTrue(%HasFastDoubleElements(b)); |
+assertEquals([1, 2, 3], b); |
+assertUnoptimized(get_literal); |
+ |
+// Optimize again |
+get_literal(3); |
%OptimizeFunctionOnNextCall(get_literal); |
- b = get_literal(3); |
- assertTrue(%HasFastDoubleElements(b)); |
- assertOptimized(get_literal); |
+b = get_literal(3); |
+assertTrue(%HasFastDoubleElements(b)); |
+assertOptimized(get_literal); |
- // Test: make sure allocation site information is updated through a |
- // transition from SMI->DOUBLE->FAST |
- (function() { |
- function bar(a, b, c) { |
- return [a, b, c]; |
- } |
+// Test: make sure allocation site information is updated through a |
+// transition from SMI->DOUBLE->FAST |
+(function() { |
+ function bar(a, b, c) { |
+ return [a, b, c]; |
+ } |
- a = bar(1, 2, 3); |
- a[0] = 3.5; |
- a[1] = 'hi'; |
- b = bar(1, 2, 3); |
- assertKind(elements_kind.fast, b); |
- })(); |
-} |
+ a = bar(1, 2, 3); |
+ a[0] = 3.5; |
+ a[1] = 'hi'; |
+ b = bar(1, 2, 3); |
+ assertKind(elements_kind.fast, b); |
+})(); |