Index: test/mjsunit/allocation-site-info.js |
diff --git a/test/mjsunit/allocation-site-info.js b/test/mjsunit/allocation-site-info.js |
index 626696be15828ea10f66ba2f153a71824f84c0b1..9b1f4bd3555d25eebffaf229537a81ba86753451 100644 |
--- a/test/mjsunit/allocation-site-info.js |
+++ b/test/mjsunit/allocation-site-info.js |
@@ -383,114 +383,4 @@ if (support_smi_only_arrays) { |
instanceof_check(realmBArray); |
assertUnoptimized(instanceof_check); |
- |
- // Case: make sure nested arrays benefit from allocation site feedback as |
- // well. |
- (function() { |
- // Make sure we handle nested arrays |
- function get_nested_literal() { |
- var literal = [[1,2,3,4], [2], [3]]; |
- return literal; |
- } |
- |
- obj = get_nested_literal(); |
- assertKind(elements_kind.fast, obj); |
- obj[0][0] = 3.5; |
- obj[2][0] = "hello"; |
- obj = get_nested_literal(); |
- assertKind(elements_kind.fast_double, obj[0]); |
- assertKind(elements_kind.fast_smi_only, obj[1]); |
- assertKind(elements_kind.fast, obj[2]); |
- |
- // A more complex nested literal case. |
- function get_deep_nested_literal() { |
- var literal = [[1], [[2], "hello"], 3, [4]]; |
- return literal; |
- } |
- |
- obj = get_deep_nested_literal(); |
- assertKind(elements_kind.fast_smi_only, obj[1][0]); |
- obj[0][0] = 3.5; |
- obj[1][0][0] = "goodbye"; |
- assertKind(elements_kind.fast_double, obj[0]); |
- assertKind(elements_kind.fast, obj[1][0]); |
- |
- obj = get_deep_nested_literal(); |
- assertKind(elements_kind.fast_double, obj[0]); |
- assertKind(elements_kind.fast, obj[1][0]); |
- })(); |
- |
- |
- // Make sure object literals with array fields benefit from the type feedback |
- // that allocation mementos provide. |
- (function() { |
- // A literal in an object |
- function get_object_literal() { |
- var literal = { |
- array: [1,2,3], |
- data: 3.5 |
- }; |
- return literal; |
- } |
- |
- obj = get_object_literal(); |
- assertKind(elements_kind.fast_smi_only, obj.array); |
- obj.array[1] = 3.5; |
- assertKind(elements_kind.fast_double, obj.array); |
- obj = get_object_literal(); |
- assertKind(elements_kind.fast_double, obj.array); |
- |
- function get_nested_object_literal() { |
- var literal = { |
- array: [[1],[2],[3]], |
- data: 3.5 |
- }; |
- return literal; |
- } |
- |
- obj = get_nested_object_literal(); |
- assertKind(elements_kind.fast, obj.array); |
- assertKind(elements_kind.fast_smi_only, obj.array[1]); |
- obj.array[1][0] = 3.5; |
- assertKind(elements_kind.fast_double, obj.array[1]); |
- obj = get_nested_object_literal(); |
- assertKind(elements_kind.fast_double, obj.array[1]); |
- |
- %OptimizeFunctionOnNextCall(get_nested_object_literal); |
- get_nested_object_literal(); |
- obj = get_nested_object_literal(); |
- assertKind(elements_kind.fast_double, obj.array[1]); |
- |
- // Make sure we handle nested arrays |
- function get_nested_literal() { |
- var literal = [[1,2,3,4], [2], [3]]; |
- return literal; |
- } |
- |
- obj = get_nested_literal(); |
- assertKind(elements_kind.fast, obj); |
- obj[0][0] = 3.5; |
- obj[2][0] = "hello"; |
- obj = get_nested_literal(); |
- assertKind(elements_kind.fast_double, obj[0]); |
- assertKind(elements_kind.fast_smi_only, obj[1]); |
- assertKind(elements_kind.fast, obj[2]); |
- |
- // A more complex nested literal case. |
- function get_deep_nested_literal() { |
- var literal = [[1], [[2], "hello"], 3, [4]]; |
- return literal; |
- } |
- |
- obj = get_deep_nested_literal(); |
- assertKind(elements_kind.fast_smi_only, obj[1][0]); |
- obj[0][0] = 3.5; |
- obj[1][0][0] = "goodbye"; |
- assertKind(elements_kind.fast_double, obj[0]); |
- assertKind(elements_kind.fast, obj[1][0]); |
- |
- obj = get_deep_nested_literal(); |
- assertKind(elements_kind.fast_double, obj[0]); |
- assertKind(elements_kind.fast, obj[1][0]); |
- })(); |
} |