Index: test/mjsunit/osr-elements-kind.js |
diff --git a/test/mjsunit/osr-elements-kind.js b/test/mjsunit/osr-elements-kind.js |
index 2ad3c4348731e8886aed8023168c342b349741d8..518b9847430f93f7bf85daeeecee9797e3f75c9a 100644 |
--- a/test/mjsunit/osr-elements-kind.js |
+++ b/test/mjsunit/osr-elements-kind.js |
@@ -25,28 +25,13 @@ |
// (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 |
// Limit the number of stress runs to reduce polymorphism it defeats some of the |
// assumptions made about how elements transitions work because transition stubs |
// end up going generic. |
// Flags: --stress-runs=2 |
-// 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)); |
- |
-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', |
@@ -100,10 +85,6 @@ function getKind(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); |
} |
@@ -113,53 +94,51 @@ function assertKind(expected, obj, name_opt) { |
%NeverOptimizeFunction(convert_mixed); |
for (var i = 0; i < 1000000; i++) { } |
-if (support_smi_only_arrays) { |
- // This code exists to eliminate the learning influence of AllocationSites |
- // on the following tests. |
- var __sequence = 0; |
- function make_array_string() { |
- this.__sequence = this.__sequence + 1; |
- return "/* " + this.__sequence + " */ [0, 0, 0];" |
- } |
- function make_array() { |
- return eval(make_array_string()); |
- } |
+// This code exists to eliminate the learning influence of AllocationSites |
+// on the following tests. |
+var __sequence = 0; |
+function make_array_string() { |
+ this.__sequence = this.__sequence + 1; |
+ return "/* " + this.__sequence + " */ [0, 0, 0];" |
+} |
+function make_array() { |
+ return eval(make_array_string()); |
+} |
- function construct_smis() { |
- var a = make_array(); |
- a[0] = 0; // Send the COW array map to the steak house. |
- assertKind(elements_kind.fast_smi_only, a); |
- return a; |
- } |
- function construct_doubles() { |
- var a = construct_smis(); |
- a[0] = 1.5; |
- assertKind(elements_kind.fast_double, a); |
- return a; |
- } |
+function construct_smis() { |
+ var a = make_array(); |
+ a[0] = 0; // Send the COW array map to the steak house. |
+ assertKind(elements_kind.fast_smi_only, a); |
+ return a; |
+} |
+function construct_doubles() { |
+ var a = construct_smis(); |
+ a[0] = 1.5; |
+ assertKind(elements_kind.fast_double, a); |
+ return a; |
+} |
- // Test transition chain SMI->DOUBLE->FAST (crankshafted function will |
- // transition to FAST directly). |
- function convert_mixed(array, value, kind) { |
- array[1] = value; |
- assertKind(kind, array); |
- assertEquals(value, array[1]); |
- } |
- smis = construct_smis(); |
- convert_mixed(smis, 1.5, elements_kind.fast_double); |
+// Test transition chain SMI->DOUBLE->FAST (crankshafted function will |
+// transition to FAST directly). |
+function convert_mixed(array, value, kind) { |
+ array[1] = value; |
+ assertKind(kind, array); |
+ assertEquals(value, array[1]); |
+} |
+smis = construct_smis(); |
+convert_mixed(smis, 1.5, elements_kind.fast_double); |
- doubles = construct_doubles(); |
- convert_mixed(doubles, "three", elements_kind.fast); |
+doubles = construct_doubles(); |
+convert_mixed(doubles, "three", elements_kind.fast); |
- convert_mixed(construct_smis(), "three", elements_kind.fast); |
- convert_mixed(construct_doubles(), "three", elements_kind.fast); |
+convert_mixed(construct_smis(), "three", elements_kind.fast); |
+convert_mixed(construct_doubles(), "three", elements_kind.fast); |
- smis = construct_smis(); |
- doubles = construct_doubles(); |
- convert_mixed(smis, 1, elements_kind.fast); |
- convert_mixed(doubles, 1, elements_kind.fast); |
- assertTrue(%HaveSameMap(smis, doubles)); |
-} |
+smis = construct_smis(); |
+doubles = construct_doubles(); |
+convert_mixed(smis, 1, elements_kind.fast); |
+convert_mixed(doubles, 1, elements_kind.fast); |
+assertTrue(%HaveSameMap(smis, doubles)); |
// Throw away type information in the ICs for next stress run. |
gc(); |