// Copyright 2018 the V8 project authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

// Flags: --allow-natives-syntax

function opt(a, b) {
  b[0] = 0;

  a.length;

  // TransitionElementsKind
  for (let i = 0; i < 1; i++)
      a[0] = 0;

  b[0] = 9.431092e-317;
}

%PrepareFunctionForOptimization(opt);

let arr1 = new Array(1);
arr1[0] = 'a';
opt(arr1, [0]);

let arr2 = [0.1];
opt(arr2, arr2);

%OptimizeFunctionOnNextCall(opt);

opt(arr2, arr2);
assertEquals(9.431092e-317, arr2[0]);