| 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();
|
|
|